Skip to content

Flying-Bolt/HOMI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Important

Dieses Repository ist umgezogen und wird auf GitHub nicht mehr gepflegt. Die aktuelle Version und die weitere Entwicklung gibt es nur noch auf Codeberg: https://codeberg.org/Flying-Bolt/HOMI


HOMI

Latest Release License

Dein Smart-Home auf dem Handgelenk. HOMI ist eine Wear-OS-App (plus Smartphone-Begleiter), mit der du Geräte in deinem Zuhause per einfachem HTTP-Aufruf direkt von der Uhr steuerst — Türöffner, Licht, Steckdosen, Rollläden, und mehr. Und du kannst dir Live-Werte anzeigen lassen: Batterie-Ladestand, Temperaturen, aktuelle Leistung. Funktioniert mit allem, was sich über eine URL ansprechen lässt: Tasmota, Shelly, ioBroker (simple-api) und ähnliche.

HOMI auf der Galaxy Watch

Dies ist die öffentliche Download- & Anleitungs-Seite. Der Quellcode liegt in einem separaten, privaten Repository.


Inhalt


Was HOMI kann

  • Frei konfigurierbare Buttons auf der Uhr, in Gruppen organisiert (horizontal wischen).
  • Drei Button-Typen — für jeden Zweck der richtige:
    • 🔘 Tap – ein Druck löst eine URL aus (Tür öffnen, Szene starten, Impuls geben).
    • 🔀 Schalter – Ein/Aus mit zwei URLs und optionaler Status-Anzeige (Button leuchtet voll = Ein, gedimmt = Aus).
    • 📊 Wert – zeigt einen Live-Wert aus einer URL an (z. B. 56 %, 23.4 °C, 420 W).
  • Konfiguration am Smartphone: Buttons anlegen, Icon/Farbe/URL wählen, direkt testen — und per Knopfdruck an die Uhr senden.
  • Bestätigung vor Ausführung (optional, pro Button) — schützt sicherheitskritische Aktionen (Tür, Garage, Tor) vor versehentlichen Taps.
  • Eigenständig auf der Uhr – läuft auch ohne gekoppeltes Phone weiter, solange WLAN da ist.
  • Lokal & privat – kein Cloud-Dienst, kein Tracking, keine Konten. HOMI spricht nur die Adressen an, die du einträgst.

So funktioniert das (Konzept)

HOMI ist im Kern ganz einfach: Beim Tippen eines Buttons schickt die Uhr einen HTTP-Request an eine URL deiner Wahl. Was dort passiert, bestimmt dein Smart-Home-Gerät.

   [ Galaxy Watch ]                         [ Dein Gerät im WLAN ]
        HOMI         ──── HTTP GET ────►     Tasmota / Shelly /
   tippt Button                              ioBroker / …
                     ◄─── Antwort ──────     z. B. {"POWER":"ON"}
  • Aktion auslösen (Tap / Schalter): HOMI ruft eine URL auf, die etwas tut (z. B. Steckdose einschalten).
  • Status/Wert lesen (Schalter-Status / Wert): HOMI ruft eine URL auf, die etwas zurückgibt, und liest mit einem regulären Ausdruck den interessanten Teil aus der Antwort heraus.

Mehr ist es nicht — aber damit lässt sich erstaunlich viel bauen. 👇


Download

Alle Releases findest du unter Releases. Es gibt zwei APKs:

Datei Gerät
HOMI-mobile-*.apk Android-Smartphone (Begleiter-App zur Konfiguration)
HOMI-wear-*.apk Galaxy Watch / Wear-OS-Gerät

ℹ️ Die APKs sind mit dem Standard-Android-Debug-Key signiert, damit du sie ohne Play-Store-Schlüssel direkt installieren kannst. Für die private Nutzung im eigenen Netz ist das völlig in Ordnung.


Installation

1. Phone-App (Smartphone)

  1. Auf dem Phone die Release-Seite öffnen und die HOMI-mobile-*.apk herunterladen.
  2. Im Browser/Datei-Manager auf die APK tippen.
  3. Android fragt nach „Installation aus unbekannten Quellen" – der jeweiligen App (z. B. Chrome, Files) die Erlaubnis erteilen.
  4. Installieren → App startet als HOMI.

2. Watch-App (Galaxy Watch / Wear OS)

Wear OS bietet keinen direkten APK-Installer auf der Uhr – die App wird per ADB „sideloaded". Einmalig etwas Aufwand, danach läuft's.

Vorbereitung auf der Uhr: Einstellungen → Watch-Info → Software-Info → Build-Nummer 7× tippen (schaltet Entwickleroptionen frei) → Entwickleroptionen → WLAN-Debugging aktivieren.

Auf dem PC (mit installierten Android Platform-Tools):

# 1. PC und Uhr im gleichen WLAN. Auf der Uhr:
#    Entwickleroptionen → WLAN-Debugging → "Gerät mit Pairing-Code koppeln"
#    -> zeigt IP:PORT (Pairing) und einen 6-stelligen Code.
adb pair <IP>:<PAIRING-PORT>        # Code eingeben

# 2. Verbinden (der WLAN-Debugging-Hauptschirm zeigt einen ANDEREN IP:PORT):
adb connect <IP>:<DEBUG-PORT>

# 3. APK aus dem Release installieren:
adb -s <IP>:<DEBUG-PORT> install -r HOMI-wear-*.apk

Pairing-Port und Debug-Port sind zwei verschiedene Ports. Bei älteren Wear-Geräten (vor Wear OS 4) entfällt der Pairing-Schritt – dort genügt adb connect <IP>:<PORT>.


Buttons konfigurieren

Alles passiert in der Phone-App:

  1. Gruppe anlegen (z. B. „Türen", „Licht", „Energie") und darin Buttons hinzufügen.
  2. Pro Button: Icon, Farbe, Typ (Tap / Schalter / Wert) und die URL(s) wählen.
  3. Mit dem Testen-Button prüfen, ob alles antwortet. ✅
  4. Oben auf das Senden-Symbol (✈) tippen → die Konfiguration wandert auf die Uhr.

Gruppen-Übersicht in der HOMI-Phone-App
Die Gruppen-Übersicht in der Phone-App. Oben: Senden (✈), Teilen, QR-Import, Datei-Import.

Icon-Picker in der HOMI-Phone-App
Der Icon-Picker: kuratierte Symbole für Türen, Licht, Energie, Sensoren u. v. m. — durchsuchbar.

💡 In allen folgenden Beispielen ist 192.168.1.50 nur ein Platzhalter — ersetze ihn durch die IP deines Geräts. Leerzeichen in URLs werden als %20 geschrieben.


🔘 Tap — eine Aktion auslösen

Der einfachste Typ: ein Druck = ein Request. Kein Status, keine Rückmeldung außer „hat geklappt / Fehler".

Du brauchst nur: eine URL.

Beispiel — Türöffner per Tasmota-Impuls:

URL:   http://192.168.1.50/cm?cmnd=Power%20On

Beispiel — Szene/Skript in ioBroker starten:

URL:   http://192.168.1.50:8087/set/0_userdata.0.szene_kino?value=true

🔒 Tipp für Tür/Garage/Tor: Schalte im Editor „Bestätigung vor Ausführung" ein. Dann fragt die Uhr vor dem Auslösen kurz nach — kein versehentliches Öffnen mehr.


🔀 Schalter — Ein/Aus mit Status

Ein Schalter hat zwei Aktionen (Ein und Aus) und kann optional den aktuellen Zustand anzeigen: voll leuchtend = Ein, gedimmt = Aus, grau = unbekannt.

Schalter-Konfiguration im Phone-Editor
Schalter im Editor — URL EIN/AUS, optionale Status-URL + Regex. (URLs hier durch Platzhalter ersetzt.)

Du brauchst:

Feld Pflicht? Wofür
URL EIN wird beim Einschalten aufgerufen
URL AUS wird beim Ausschalten aufgerufen
Status-URL optional wird periodisch abgefragt, um den Zustand zu erkennen
Regex EIN / Regex AUS wenn Status-URL gesetzt erkennen „Ein" bzw. „Aus" in der Antwort (siehe Regex-Kapitel)
Polling-Intervall wie oft der Status geholt wird (0 / 10 / 30 / 60 s)

So funktioniert die Status-Erkennung: HOMI ruft die Status-URL auf und prüft die Antwort — passt „Regex EIN", ist der Schalter an; passt „Regex AUS", ist er aus.

Beispiel — Tasmota-Steckdose mit Status:

URL EIN:     http://192.168.1.50/cm?cmnd=Power%20On
URL AUS:     http://192.168.1.50/cm?cmnd=Power%20Off
Status-URL:  http://192.168.1.50/cm?cmnd=Power
   Antwort:  {"POWER":"ON"}
Regex EIN:   "POWER":"ON"
Regex AUS:   "POWER":"OFF"

Beispiel — Shelly (Gen2 / Plus):

URL EIN:     http://192.168.1.51/rpc/Switch.Set?id=0&on=true
URL AUS:     http://192.168.1.51/rpc/Switch.Set?id=0&on=false
Status-URL:  http://192.168.1.51/rpc/Switch.GetStatus?id=0
   Antwort:  {"id":0,"output":true,"apower":42.5, ...}
Regex EIN:   "output":true
Regex AUS:   "output":false

Beispiel — ioBroker-Datenpunkt (simple-api):

URL EIN:     http://192.168.1.50:8087/set/zigbee.0.abcd.state?value=true
URL AUS:     http://192.168.1.50:8087/set/zigbee.0.abcd.state?value=false
Status-URL:  http://192.168.1.50:8087/get/zigbee.0.abcd.state
   Antwort:  {"val":true, ...}
Regex EIN:   "val":true
Regex AUS:   "val":false

⚠️ Häufigste Stolperfalle bei ioBroker: Die Status-URL muss /get/ sein, nicht /set/! /set/ schreibt den Wert (und liefert HTTP 422 zurück) — /get/ liest ihn. Wenn der Button grau bleibt oder erst nach mehrmaligem Drücken reagiert, ist fast immer die Status-URL oder das Regex schuld → mit „Status testen" prüfen.


📊 Wert — Live-Werte anzeigen

Ein Wert-Button schaltet nichts — er zeigt eine Zahl aus deinem Smart-Home, z. B. 56 %, 23.4 °C, 420 W. Ein Tap aktualisiert ihn sofort, dazwischen pollt HOMI im eingestellten Intervall.

Wert-Konfiguration im Phone-Editor
Wert im Editor — Wert-URL, Wert-Regex (Fang-Gruppe 1) und feste Einheit. (URL hier durch Platzhalter ersetzt.)

Du brauchst:

Feld Pflicht? Wofür
Wert-URL liefert die Antwort mit dem Wert
Wert-Regex Fang-Gruppe 1 = der angezeigte Wert (siehe Regex-Kapitel)
Einheit (fester Text) optional feste Einheit, z. B. %, °C, W — hat Vorrang
Einheit (Regex) optional Einheit aus der Antwort lesen (Fang-Gruppe 1)
Polling-Intervall 0 = nur beim Tap, sonst 10 / 30 / 60 s

Beispiel — Batterie-Ladestand (ioBroker):

Wert-URL:    http://192.168.1.50:8087/get/e3dc.0.EMS.BAT_SOC
   Antwort:  {"val":56, ...}
Wert-Regex:  "val":(\d+(?:\.\d+)?)      →  zeigt  56
Einheit:     %                          →  Anzeige:  56 %

Beispiel — Temperatur (Tasmota-Sensor):

Wert-URL:    http://192.168.1.50/cm?cmnd=Status%2010
   Antwort:  ... "Temperature":23.4 ...
Wert-Regex:  "Temperature":([\d.]+)     →  zeigt  23.4
Einheit:     °C                          →  Anzeige:  23.4 °C

Beispiel — Aktuelle Leistung (Shelly):

Wert-URL:    http://192.168.1.51/rpc/Switch.GetStatus?id=0
   Antwort:  ... "apower":420.7 ...
Wert-Regex:  "apower":([\d.]+)          →  zeigt  420.7
Einheit:     W                           →  Anzeige:  420.7 W

Bonus — Einheit aus der Antwort lesen (statt fest eintippen):

   Antwort:  ... "val":56,"unit":"%" ...
Wert-Regex:    "val":(\d+)              →  56
Einheit-Regex: "unit":"([^"]+)"         →  %

HTTP-Grundlagen

Du musst kein Profi sein — aber diese vier Dinge helfen:

  • GET vs. POST (Feld „Methode"): Die allermeisten Smart-Home-URLs funktionieren mit GET (Standard). POST brauchst du nur, wenn dein Gerät es verlangt (dann kannst du unter Erweitert einen Body mitschicken).
  • %20 = Leerzeichen: URLs vertragen keine echten Leerzeichen. Power On wird zu Power%20On.
  • Header (unter Erweitert, eine pro Zeile als Key: Wert): nötig z. B. für eine Authentifizierung:
    Authorization: Bearer dein-token-hier
    
  • Port: ioBroker simple-api läuft typischerweise auf :8087, Tasmota/Shelly auf dem Standard-Port (kein : nötig).

Reguläre Ausdrücke — die Geheimwaffe

„Regex" klingt nach Zauberei, ist aber nur eine Suchschablone: Du beschreibst, wie der gesuchte Text aussieht, und HOMI findet ihn in der Antwort deines Geräts. Zwei Anwendungen:

  1. Schalter-Status: Das Regex muss in der Antwort irgendwo vorkommen (kein exakter Treffer nötig). Kommt „Regex EIN" vor → an; kommt „Regex AUS" vor → aus.
  2. Wert anzeigen: Hier zählt die Fang-Gruppe — der Teil in runden Klammern ( ). Genau dieser Teil wird als Wert angezeigt.

Der Spickzettel

Muster Bedeutung matcht z. B.
\d eine Ziffer (0–9) 4
\d+ eine oder mehr Ziffern 420
\. ein echter Punkt .
[\d.]+ Ziffern und Punkt 23.4
\d+(?:\.\d+)? Ganzzahl oder Dezimalzahl 56 oder 56.5
-?\d+ optional negativ -7
[^"]+ alles außer Anführungszeichen kWh
\s* beliebig viele Leerzeichen (auch keine)
true|false das eine oder das andere true
( … ) Fang-Gruppe = angezeigter Wert

Von der Antwort zum Regex

Schau dir die Antwort deines Geräts an (am besten direkt im Browser aufrufen) und „umschreibe" den interessanten Teil:

Antwort:     {"val":56.5,"ack":true}
Ziel:        die 56.5
Regex:       "val":([\d.]+)
                    └─────┘  Fang-Gruppe → 56.5
Antwort:     {"POWER":"ON"}
Ziel:        erkennen, dass es AN ist
Regex EIN:   "POWER":"ON"      (muss vorkommen → an)
Regex AUS:   "POWER":"OFF"

🧪 Du musst nichts raten: Der Editor hat zu jedem Typ einen Test-Button („Status testen" / „Wert holen"). Er ruft live deine URL auf und zeigt, was erkannt wurde — Regex anpassen, nochmal testen, fertig.

💡 Robustheit: Halte Regex so locker wie nötig. "val":\s*true matcht auch "val": true (mit Leerzeichen). Für Werte ist ([\d.]+) meist robuster als eine exakte Zahl.


🔬 JSON ausschlachten

„Und was kann ich da jetzt alles rausholen?" — Erstaunlich viel. Eine einzige Status-Antwort steckt oft voller Werte: Leistung, Spannung, Strom, Temperatur, Zählerstände, Online-Status … Mit je einem kleinen Wert-Regex machst du daraus dein eigenes Mini-Dashboard am Handgelenk. ⌚

Ein echtes Beispiel: Shelly Pro 2 PM (zwei Kanäle)

Antwort von …/rpc/Shelly.GetStatus — der Übersicht halber gekürzt (Shelly liefert das in Wirklichkeit als eine einzige Zeile):

{"cloud":{"connected":false},"mqtt":{"connected":true},
 "switch:0":{"id":0,"output":true,"apower":-592.9,"voltage":231.6,"current":2.551,"pf":1.00,"aenergy":{"total":1559924.685},"temperature":{"tC":60.5,"tF":140.9}},
 "switch:1":{"id":1,"output":true,"apower":3377.3,"voltage":231.7,"current":15.771,"pf":0.93,"aenergy":{"total":803062.588},"temperature":{"tC":82.3,"tF":180.1}},
 "ws":{"connected":false}}
🔎 Was steckt da eigentlich alles drin? (Feld-Übersicht)

Eine einzige Shelly.GetStatus-Antwort liefert dutzende Werte — hier die wichtigsten (jeder kann ein eigener HOMI-Button werden):

Netzwerk & Cloud: cloud.connected, mqtt.connected, ws.connected (je true/false), eth.ip (IP-Adresse), wifi.status (connected / disconnected).

Eingänge: input:0.state, input:1.state (true/false).

Pro Kanal (switch:0 / switch:1):

Feld Bedeutung
output Kanal an/aus (true/false)
apower Momentanleistung in W (negativ = Einspeisung)
voltage Spannung in V
current Strom in A
freq Netzfrequenz in Hz
pf Leistungsfaktor (0–1)
aenergy.total Zählerstand in Wh
temperature.tC / .tF Kanaltemperatur °C / °F
counts.on_time Einschaltdauer in s

System (sys): mac (MAC), time / unixtime (Uhrzeit), uptime (s), ram_free / fs_free (Speicher), available_updates.stable.version (verfügbares Update), alt…name / desc (Gerätemodell, hier „Shelly Pro 2 PM").

Das Problem: Schlüssel kommen mehrfach vor

Schau genau hin: "apower", "voltage", "tC", "output" gibt es zweimal (Kanal 0 und Kanal 1), "connected" sogar dreimal (Cloud, MQTT, WS). HOMI nimmt aber immer den ersten Treffer — ein nacktes "apower":(-?[\d.]+) liefert also stur Kanal 0.

Die Lösung: Kontext davorstellen 🎯

Häng den eindeutigen Eltern-Schlüssel davor und überspringe den Rest mit .*?:

"switch:1".*?"apower":(-?[\d.]+)
   │         │
   │         └─ .*?  = „beliebig viele Zeichen, aber so wenige wie möglich"
   └─ erst zu Kanal 1 springen …                     (non-greedy)

.*? frisst alles zwischen Anker und Zielwert — klappt prima, weil die Antwort eine Zeile ist. So ziehst du jeden Wert exakt aus dem richtigen Kanal:

Du willst… Wert-Regex Anzeige
Leistung Kanal 0 (negativ = Einspeisung!) "switch:0".*?"apower":(-?[\d.]+) -592.9
Leistung Kanal 1 "switch:1".*?"apower":(-?[\d.]+) 3377.3
Spannung Kanal 1 "switch:1".*?"voltage":([\d.]+) 231.7
Strom Kanal 1 "switch:1".*?"current":([\d.]+) 15.771
Temperatur Kanal 0 "switch:0".*?"tC":([\d.]+) 60.5
Temperatur Kanal 1 "switch:1".*?"tC":([\d.]+) 82.3
Zählerstand Kanal 1 "switch:1".*?"total":([\d.]+) 803062.588
Kanal 1 an? (Schalter-Status) "switch:1".*?"output":(true|false) Treffer → an
MQTT verbunden? "mqtt":\{"connected":(true|false) true

💡 HOMI zeigt immer Fang-Gruppe 1. Für zwei Werte (z. B. beide Kanal-Temperaturen) legst du einfach zwei Buttons an — jeder mit seinem eigenen Kontext-Regex. Aus einem Dual-Channel-Messgerät wird so ein hübsches 2-Button-Duo.

🧩 Arrays gezielt umschiffen. Manche Felder sind Arrays, z. B. "by_minute":[10067.719,10368.898,…]. Willst du den Gesamtwert, ziel einfach auf den Skalar daneben: "total":([\d.]+) greift die einzelne Zahl, das […]-Array bleibt unangetastet.

🔧 Beide Werte in einem Regex? Für Tools, die auch Gruppe 2 auswerten (z. B. der ioBroker-Parser-Adapter), geht's in einem Abwasch: "switch:0".*?"tC":([-0-9.]+).*?"switch:1".*?"tC":([-0-9.]+) legt Kanal-0-Temp in Gruppe 1 und Kanal-1-Temp in Gruppe 2. HOMI nutzt nur Gruppe 1 — hier bleibst du bei zwei Buttons mit je einem Kontext-Regex.

Nicht nur Zahlen! 🎭

Die Fang-Gruppe darf auch Text oder true/false liefern — der Wert-Modus zeigt einfach an, was drinsteht:

{"state":"charging","online":true,"mode":"eco"}
Du willst… Regex Anzeige
Lade-Status als Text "state":"([^"]+)" charging
Online? "online":(true|false) true
Betriebsmodus "mode":"([^"]+)" eco

JSON-Bausteine (Spickzettel)

In der Antwort steht… …dann nimm Holt raus
"x":123 (Ganzzahl) "x":(\d+) 123
"x":12.5 (Dezimal) "x":([\d.]+) 12.5
"x":-3.5 (auch negativ) "x":(-?[\d.]+) -3.5
"x":true (Wahrheitswert) "x":(true|false) true
"x":"text" (String) "x":"([^"]+)" text
"x":[230,231,229] (1. Array-Wert) "x":\[([\d.]+) 230
Schlüssel kommt mehrfach vor "kontext".*?"x":(…) gezielt der richtige
evtl. Leerzeichen nach dem : "x":\s*(\d+) (egal)

Drei Profi-Tipps 🧠

  1. Der erste Treffer gewinnt. Kommt ein Schlüssel mehrfach vor, gib Kontext mit ("switch:1".*?…) — sonst bekommst du immer den ersten.
  2. Negativ & Nachkomma gratis: (-?[\d.]+) deckt -592.9, 0, 23.4 ab — perfekt für Einspeise-Leistung oder Außentemperatur.
  3. Im Zweifel „Wert holen". Ruf die URL einmal im Browser auf, schau dir die echte Antwort an und teste den Regex im Editor live — anpassen, bis die Anzeige stimmt. 30 Sekunden, fertig. ⏱️ (Mini-Detail: .*? funktioniert, weil die Antwort eine Zeile ist. Käme das JSON jemals mit Zeilenumbrüchen, bräuchte es den „Dotall"-Modus — bei den üblichen API-Antworten nicht nötig.)

🍳 Praxis-Kochbuch

Fertige Rezepte zum Abtippen — IP anpassen, fertig.

Steckdose schalten (Tasmota) — mit Status-Anzeige
Typ:         Schalter
URL EIN:     http://192.168.1.50/cm?cmnd=Power%20On
URL AUS:     http://192.168.1.50/cm?cmnd=Power%20Off
Status-URL:  http://192.168.1.50/cm?cmnd=Power
Regex EIN:   "POWER":"ON"
Regex AUS:   "POWER":"OFF"
Intervall:   30 s
Licht schalten (Shelly Plus) — mit Status-Anzeige
Typ:         Schalter
URL EIN:     http://192.168.1.51/rpc/Switch.Set?id=0&on=true
URL AUS:     http://192.168.1.51/rpc/Switch.Set?id=0&on=false
Status-URL:  http://192.168.1.51/rpc/Switch.GetStatus?id=0
Regex EIN:   "output":true
Regex AUS:   "output":false
Intervall:   30 s
Beliebigen Datenpunkt schalten (ioBroker)
Typ:         Schalter
URL EIN:     http://192.168.1.50:8087/set/DEIN.DATENPUNKT?value=true
URL AUS:     http://192.168.1.50:8087/set/DEIN.DATENPUNKT?value=false
Status-URL:  http://192.168.1.50:8087/get/DEIN.DATENPUNKT     ← /get/, nicht /set/!
Regex EIN:   "val":true
Regex AUS:   "val":false
Intervall:   30 s
Batterie-Ladestand anzeigen (ioBroker)
Typ:         Wert
Wert-URL:    http://192.168.1.50:8087/get/DEIN.BAT_SOC
Wert-Regex:  "val":(\d+(?:\.\d+)?)
Einheit:     %
Intervall:   60 s
Temperatur anzeigen (Tasmota / Shelly)
Typ:         Wert
Wert-URL:    http://192.168.1.50/cm?cmnd=Status%2010
Wert-Regex:  "Temperature":([\d.]+)
Einheit:     °C
Intervall:   60 s
Garagentor öffnen (Tap, mit Sicherheits-Rückfrage)
Typ:         Tap
URL:         http://192.168.1.50/cm?cmnd=Power%20On
Bestätigung vor Ausführung:  AN   ← fragt vor dem Öffnen nach

Tipps & Fehlersuche

Symptom Ursache & Lösung
Button bleibt grau / „?" Status-URL oder Regex passt nicht. Bei ioBroker: /get/ statt /set/. → „Status testen" im Editor.
HTTP 422 / 400 Falscher Endpoint — typisch /set/ als Status-URL bei ioBroker. Auf /get/ ändern.
„Zeitüberschreitung" Gerät nicht erreichbar: IP falsch, Gerät aus, oder Uhr nicht im richtigen WLAN.
Wert zeigt „—" Wert-Regex matcht nicht. → „Wert holen", Antwort ansehen, Regex anpassen (oft hilft ([\d.]+)).
Roter „Kein WLAN" trotz WLAN In v2.3.6 behoben — auf die aktuelle Version aktualisieren.
Schalter reagiert erst nach mehrmaligem Tippen In v2.3.4 behoben — bitte aktualisieren.
Label abgeschnitten Auf der Uhr werden max. 8 Zeichen angezeigt — kurze Labels wählen.

🧰 Goldene Regel: Jede URL lässt sich vorab im Browser testen (einfach aufrufen) und im Editor mit dem Test-Button prüfen, bevor du an die Uhr sendest.


Hinweise & Einschränkungen

  • HOMI steuert lokale Geräte im eigenen Netz (HTTP). Externe/HTTPS-URLs gehen ebenfalls, wenn das Zielgerät sie unterstützt.
  • Im Energiesparmodus schaltet Wear OS das WLAN ab und blockiert Apps daran, es zu reaktivieren – HOMI kann das nicht umgehen und zeigt dann einen Hinweis.
  • Keine Telemetrie, keine Cloud, keine Konten. Deine URLs und Tokens bleiben auf deinen Geräten.

Lizenz

Apache License 2.0 — siehe auch NOTICE.

🤖 App & Doku mitentwickelt mit Claude Code (Opus 4.8).

About

HOMI - Smart-Home am Handgelenk: konfigurierbare Buttons auf der Galaxy Watch (Wear OS) + Phone-Begleiter, steuert Tasmota, Shelly, ioBroker & Co. per HTTP. Anleitung & APK-Downloads. [Umgezogen nach Codeberg: codeberg.org/Flying-Bolt/HOMI]

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors