Posts Tagged ‘Homebridge’

Sonntag, 29. Juni 2025

Xiaomi Standventilatoren (Fans) in Homebridge einbinden

Es funktioniert, ist in meinem Fall aber komplizierter als ursprünglich gedacht. Aus zwei Gründen:

Xiaomi-„Heimatserver“ in China

Meine Xiaomi Mi Home App ist aus historischen Gründen seit Jahren auf Xiaomi-Servern in China eingerichtet.

Damit konnte ich aber einen kürzlich gekauften Xiaomi Mi Smart Standing Fan 2 Lite (interne Kennung: dmaker.fan.1c) für eine gerade zusätzlich erstellte Wohnung nicht registrieren — die Assoziierung über die iOS App auf dem iPhone schlug irgendwie immer bei etwa 50 Prozent fehl.

Ich habe deshalb für die zusätzliche Wohnung ein neues Konto eröffnet, und dieses auf Schweiz eingestellt.

Damit konnte ich den Lüfter mit der Xiaomi Mi Home App mit dem WiFi verbinden, er erscheint nun in der App unter macOS, welche mit meinem Zweitkonto registriert ist.

Token

Doch so ein Lüfter ist nur halb so lustig, wenn man ihn nicht auch in Apple HomeKit eingebunden hat, und ihn mittels der Siri-Spracherkennung eines Apple HomePods bedienen kann.

Hier kommt bei mir Homebridge zur Anwendung: Das Plugin homebridge-xiaomi-fan exponiert Xiaomi Lüfter gegenüber Apple HomeKit.

Randbemerkung: Dass die Fans dabei mit zig „Buttons“ exponiert werden, und sogar einer „Bulb“, finde ich nicht so schön. Item.

Das Problem: Ich musste den „Token“ des Fans irgendwie auslesen und in der Homebridge-Konfiguration hinterlegen. Neben der IP des Geräts, als nichts mit „auto discovery“.

Gar nicht so einfach, denn das Kommandozeilen-Tool eines anderen Entwicklers — Xiaomi-cloud-tokens-extractor funktioniert aktuell nicht mehr.

Doch verzweifelt nicht, die erste Option in Obtain Mi Home device token bringt die Lösung: Mi Home Toolkit.

Den deutschen Heimatserver ausgewählt (Schweiz existiert nicht im Drop Down), eingeloggt — und da steht er im Klartext, der Token. Einziges Problem: Das Element war mit Version 1.2.1 der App nicht selektierbar, weshalb Copy & Paste nicht funktionierte. Ungefähr eine Stunde, nachdem ich den Feature Request platziert hatte, war Version 1.2.2 live, welche das Problem behob.

WICHTIG: Ich vertraue diesen Wrapper-Applikationen nicht, auch wenn sie Open Source sind — zu einfach ist es, die Zugangsdaten mittels eines kleinen HTTP-Requests noch an einen Drittserver zu senden. Ich habe das Kennwort deshalb nach der erfolgreichen Einbindung vorsichtshalber noch einmal geändert.

Tags: , , , , , , , ,
Labels: Home Automation

Keine Kommentare | neuen Kommentar verfassen

Donnerstag, 3. November 2022

Homebridge stürzt kurz nach dem Start ab: „EISDIR: illegal operation on a directory, read“

Gestern kam meine Homebridge-Installation nach Anpassungen an der Konfiguration und der Umwandlung in ein systemd Service nicht mehr richtig hoch — gefühlt 30–60 Sekunden nach dem Start verschwand der Prozess.

Indem man Homebridge mit dem Debug-Parameter (-D, oder --debug) von der Kommandozeile manuell startet …

$ homebridge -D -U /var/lib/homebridge

… erkennt man kurz vor dem Ende der Ausführung folgenden Log-Event:

Got SIGTERM, shutting down Homebridge...

systemd meldet, dass der Prozess sich mit Exit Code 143 verabschiedet hat.

Scrollt man hoch, sieht man (bei mir) Warnungen von Plugins, und eine echte Fehlermeldung:

Error: EISDIR: illegal operation on a directory, read
    at Object.readSync (node:fs:748:3)
    at tryReadSync (node:fs:448:20)
    at Object.readFileSync (node:fs:494:19)
    at LocalStorage.parseDirSync (/usr/local/apps/homebridge/node_modules/node-persist/src/local-storage.js:637:35)
    at LocalStorage.parseDataDirSync (/usr/local/apps/homebridge/node_modules/node-persist/src/local-storage.js:572:21)
    at LocalStorage.initSync (/usr/local/apps/homebridge/node_modules/node-persist/src/local-storage.js:145:14)
    at HAPStorage.storage (/usr/local/apps/homebridge/node_modules/hap-nodejs/src/lib/model/HAPStorage.ts:25:25)
    at Function.HAPStorage.storage (/usr/local/apps/homebridge/node_modules/hap-nodejs/src/lib/model/HAPStorage.ts:13:26)
    at Function.AccessoryInfo.load (/usr/local/apps/homebridge/node_modules/hap-nodejs/src/lib/model/AccessoryInfo.ts:272:30)
    at Bridge. (/usr/local/apps/homebridge/node_modules/hap-nodejs/src/lib/Accessory.ts:1160:41)
    at step (/usr/local/apps/homebridge/node_modules/tslib/tslib.js:144:27)
    at Object.next (/usr/local/apps/homebridge/node_modules/tslib/tslib.js:125:57)
    at /usr/local/apps/homebridge/node_modules/tslib/tslib.js:118:75
    at new Promise ()
    at __awaiter (/usr/local/apps/homebridge/node_modules/tslib/tslib.js:114:16)
    at Bridge.Accessory.publish (/usr/local/apps/homebridge/node_modules/hap-nodejs/dist/lib/Accessory.js:928:38)

Zuerst ignorierte ich diesen Eintrag, weil ich mir nicht vorstellen konnte, dass eine „illegal operation on a directory“ die Anwendung zum Absturz bringen kann. Ich hatte mich getäuscht: Wie in Error: EISDIR: illegal operation on a directory, read beschrieben stürzt Homebridge tatsächlich ab, wenn sich im Ordner persist ein Unterordner befindet. Dies war bei mir der Fall, weil mein Installationsscript einen cp Befehl nicht korrekt ausführte.

Nachdem ich den Ordner gelöscht hatte, startete Homebridge wieder problemlos.

Tags: , , , , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 25. September 2022

Shelly 2.5 zur Steuerung von Rollladen

Die Frau weilt drei Wochen geschäftlich im Ausland — genau der richtige Zeitpunkt, die eigene Wohnung noch intelligenter zu machen!

Zwei Rollladen-Schalter/Taster unserer Wohnung waren bereits mit Shelly 2.5 ausgerüstet, damit man diese via Internet und Siri Sprachkommandos (via Homebridge und den zwei Shelly-Plugins homebridge-shelly und homebridge-shelly-ng) steuern konnte. Nun war es an der Zeit, sechs weitere Rollladen um- respektive aufzurüsten.

Mit einem gelernten Elektriker im Kollegenkreis mit den nötigen Werkzeugen, Kabeln und Wagos ein erstaunlich rasch realisierbares Unterfangen.

Trotzdem lauern bei der Installation einige Fallstricke. Hier wie man sie umgehen oder beheben kann:

  • Einbindung ins WiFi-Netzwerk: Ich habe aufgehört, hierzu die Shelly.app unter iOS zu verwenden. Stattdessen suche ich mit dem iPhone in der Liste der gefunden WiFi Access Points den Shelly Access-Point (shelly25-%MAC%), verbinde mich darauf, und wähle dann in Safari auf dem iPhone http://192.168.33.1/ an. In der Web-Oberfläche gebe ich unter Internet & Security dann die Zugangsdaten meines Netzwerks ein, speichere, wähle mich mit dem iPhone wieder in mein eigentliches WiFi-Netzwerk ein und adoptiere das Gerät dann mit der Shelly.app.
  • Steuerungskabel falsch herum angeschlossen: Nachdem mein erster Bekannter zwei Shelly 2.5 angeschlossen hatte, funktionierten die physischen Taster wie vor dem Einbau. Nach oben gedrückt, Rollladen fuhr nach oben. Nach unten gedrückt, Rollladen fuhr nach unten. Kein Problem. Bei der Installation des Elektrikers waren aber alle Anschlüsse vertauscht, wenn ich die Storen über das Web-Interface herunter- oder nach oben fahren liess. Kein Problem, die Shelly-Entwickler haben das vorausgesehen und bieten unter Settings die Option Reverse Directions an. Aktiviert, und alles war gut. Ein wenig später dann doch ein Problem: Der Druck auf die physische Nach oben-Taste liess die Storen herunterfahren, und der Druck auf die Nach unten-Taste nach oben. Damit auch hier alles wie erwartet funktioniert, musste ich auch noch Swap Inputs aktivieren. Rückblickend logisch, beides umzuschalten.
  • Stopptaster funktioniert nicht mehr wie vorher: Die Wohnung war umgebaut, und die Frau kehrte nach Hause zurück. Am ersten Arbeitstag nach der Rückkehr dann die laute Beschwerde: Bei Druck auf den physischen Taster fuhr die Store entweder hoch, oder runter. Wenn man den Kontakt des Knopfes entfernte, stoppte die Rolllade nicht, und auch die Storen liessen sich in ruhendem Zustand mit kurzem Tastendruck nicht mehr in vordefinierten Winkeln schrägt stellen. Zum Glück wiesen die zwei als erste installierten Shelly 2.5 dieses Verhalten nicht auf, weshalb ich wusste, dass das Problem entweder softwaretechnisch- oder (weniger gut) durch Ausbau und Neu-Verkabelung zu lösen war. Zum Glück tat es wieder eine Einstellung unter Settings: Button Type von Toggle auf Momentary schalten. Und schon funktionierten die Rollladen wirklich wie gewohnt.

Screenshots

Fazit

Wie alle Smart Home-Lösungen haben auch Shellys ihre Eigenheiten, aber ich bin mir nicht sicher, ob sich oben genannte Probleme mit anderer Hard- und Software so einfach lösen lassen. Als Eigenheimbesitzer, der sein zu Hause auf ein Smart Home umbauen möchte, sind Shellys in Kombination mit Homebridge etwas vom Besten, was mir untergekommen ist. Ich bin innert 12 Monaten ein grosser Shelly-Fan geworden!

Tags: , , , , , , , ,
Labels: Smart Home

Keine Kommentare | neuen Kommentar verfassen

Mittwoch, 30. März 2022

Unsere Storen lassen sich nicht mehr (ganz) mit HomeKit steuern

Unsere Storen bedienen wir über Shellys, welche über HomeBridge mit Apples HomeKit gekoppelt sind.

Seit dem Update auf iOS 15.4 funktionieren folgende Kommandos nicht mehr:

„Hey Siri, open the Bedroom blinds“

„Hey Siri, close the Bedroom blinds“

Als temporärer Workaround funktioniert Folgendes:

„Hey Siri, set Bedroom blind position to 100“ [öffnen]

„Hey Siri, set Bedroom blind position to 0“ [schliessen]

Das Problem ist im Internet dokumentiert: iOS 15.4 – Siri no longer understands how to operate my blinds sowie HomeKit – Siri stopped working with Rollershutters.

Hoffen wir, dass 15.4.x Abhilfe schaffen wird.

Tags: , , , , , , ,
Labels: Apple

Keine Kommentare | neuen Kommentar verfassen