Hallo zusammen, auf der Rückfahrt von den Ferien habe ich an der Kompatibilität von Gladys mit HomeKit (und damit mit Siri) für Apple-Fans gearbeitet (stell dir vor, deine Gladys steuerbar mit deiner Uhr). Ich bin vielleicht naiv, aber in den letzten Jahren vertraue ich Apple mehr als Amazon/Google in Bezug auf den Datenschutz (insbesondere bei der Spracherkennung).
Lampen mit Ein-/Ausschalten, Helligkeit, Farben und Farbtemperatur
Schalter mit Ein-/Ausschalten
Temperatursensoren
Für eine erste Version sollte das ausreichen, ich werde weitere Geräte nach und nach hinzufügen.
Ich habe nur mit virtuellen Geräten getestet und werde Hilfe benötigen, um echte Geräte zu testen, sobald das Docker-Image verfügbar ist.
Technisch gesehen verwandelt die Integration Gladys in eine HomeKit-kompatible Bridge (etwas wie die Bridges von Philips Hue, Xiaomi…), sodass es ausreicht, Gladys mit deiner Home-App zu verbinden, um alle mit Gladys verbundenen Geräte (die derzeit kompatiblen) in deinem HomeKit-Netzwerk zu sehen. Ich verwende Hap-Nodejs, um das HomeKit-Protokoll in Nodejs nachzubilden (für diejenigen, die die Software Homebridge kennen, ist das ihre Bibliothek).
Auf der Code-Seite muss ich die Struktur noch verbessern, den Frontend-Teil hinzufügen und sicherstellen, dass es funktioniert, wenn man ein Docker-Image verwendet. Ich hoffe, euch bald einen PR vorschlagen zu können, aber es sieht gut aus!
Ich habe eine kleine Organisationsfrage für diejenigen, die bereits Entwicklungen mit Zigbee-Geräten testen. Ihr verwendet einen separaten Zigbee-Key oder ihr verwendet den von eurer Produktion auf eurem Test-PC? Und genauso bei den Geräten, habt ihr einige Entwicklungsgeräte zusätzlich oder schafft ihr es, eure Geräte in der Entwicklung und Produktion gleichzeitig zu nutzen?
Hallo @bertrandda,
Kleine Frage zum Testen, weil ich von Apple keine Ahnung habe. Das war schon immer ein Rätsel für mich und eine Quelle der Frustration, weil ich nicht das tun kann, was ich will.
Ich habe ein iPad, das in einer Schublade herumliegt, reicht das zum Testen oder brauche ich noch etwas anderes?
Schönen Tag noch!
Hallo, du brauchst ein Gerät, das mit iPhone, iPad oder iPod touch kompatibel ist. In deinem Fall mit dem iPad: Schau, ob deine Version von iPadOS die App „Haus“ enthält
Sobald du es installiert hast, empfehle ich dir, ein neues virtuelles Zuhause zu erstellen. Wenn die Tests dazu führen, dass du Änderungen an der Integration vornehmen musst, kannst du dieses virtuelle Zuhause auf einmal löschen und nicht Gerät für Gerät. Schau hier, um ein Zuhause hinzuzufügen: Weitere Zuhause mit dem iPad hinzufügen - Apple Support (DE)
Es gibt eine kleine Beschreibung auf der Integrationsseite, aber ich muss noch eine vollständige Dokumentation schreiben. Wenn du weitere Hilfe benötigst, zögere nicht, mich zu fragen.
Mein iPad ist kompatibel.
Allerdings, ist es für dich möglich/kompliziert, mir ein Docker-Testimage zu bauen?
Ich habe nicht die geringste Ahnung, wie man einen PR testet.
Falls nicht möglich, werde ich es später anschauen, aber ich werde es anschauen
Bisher funktioniert nur der Code im Entwicklermodus, ich habe vor ein paar Tagen ein Docker-Image erstellt, aber es funktioniert nicht. Ich muss das alles debuggen, die Geräte werden nicht in der Home-App hinzugefügt.
Ich werde dich benachrichtigen, wenn alles zum Testen bereit ist.
Hallo @GBoulvin, auf welchem OS möchtest du das Docker-Image testen? Derzeit teste ich von Docker auf macOS aus und es gibt einen Verbindungsfehler beim Hinzufügen von Gladys zu HomeKit. Nach etwas Recherche auf der Seite von homebridge und hap-nodejs scheint das Problem vom Parameter --network=host zu kommen, der auf mac/windows nicht funktioniert.
Falls du ein Linux-System verwendest, könntest du das Image testen und versuchen, Gladys mit deiner Home-App zu verbinden und mir bestätigen, ob es funktioniert? Das Image ist auf Docker verfügbar: bertrandda/gladys:homekit.
Ich versuche weiterhin, das Problem auf mac/windows über Docker zu lösen. Soweit ich verstanden habe, liegt das Problem bei mDNS. Wenn das HomeKit-Protokoll ein Gerät (hier die Gladys-Bridge) verfügbar macht, sollte es eine mDNS-Anfrage senden, um den HomeKit-Apps mitzuteilen, dass es im Netzwerk ist. Ich sehe die mDNS-Anfrage in Wireshark, wenn ich in der Entwicklungsumgebung arbeite, aber sobald ich Docker verwende, scheint die mDNS-Anfrage nicht im lokalen Netzwerk wahrgenommen zu werden, als ob sie im Container blockiert wird. Falls jemand Erfahrung mit Docker oder mDNS hat, könnte ich bitte etwas Hilfe bekommen?
Hallo!
Mach dir keine Sorgen, es funktioniert!
Hardware:
RPi 2 mit dem Standard-Bullseye 32-Bit-Betriebssystem.
Die vorher vorgeschlagene Docker-Image-Installation war erfolgreich, keine Anmerkungen.
Getestet: nur Tasmota, Steckdosen und Lampen.
Wie?
Hinzufügen von zwei Tasmota-Geräten
Aktivieren der Apple-Integration
Starten der ‹ Haus ›-App auf dem iPad
Scannen des von der Gladys-Integration generierten QR-Codes
Super Neuigkeit, danke für dein Feedback @GBoulvin. Es gibt also tatsächlich ein Problem mit network=host auf Mac/Windows. Ich werde den Verbindungsvorgang in der Dokumentation ergänzen.
Bei dem Fehler „Keine Antwort“ scheint es daran zu liegen, dass das iPad/iPhone (wenn es im Standby-Modus ist) nicht dauerhaft mit dem HomeKit-Netzwerk verbunden bleibt und daher einige Sekunden benötigt, um sich erneut zu verbinden. Allerdings, wenn du einen HomePod oder eine Apple TV hast, können diese als HomeKit-Hub dienen, da diese Geräte immer mit dem Heimnetzwerk verbunden sind. Dadurch wird das HomeKit-Netzwerk nie unterbrochen (https://www.reddit.com/r/HomeKit/comments/t55bw4/comment/hz3zf9a/?utm_source=share&utm_medium=web2x&context=3).
Getestet auf RPI4 (klassische Gladys-Installation, Ersetzen des Docker-Images durch das von @bertrandda)
Beim Starten tritt folgender Fehler auf Der Dienst kann nicht gestartet werden
2022-10-03T10:08:01+0200 <warn> service.start.js:44 (Service.start) Der Dienst homekit kann nicht gestartet werden TypeError: Die Eigenschaft 'service' von undefined kann nicht gelesen werden
bei HomeKitHandler.buildService (/src/server/services/homekit/lib/buildService.js:27:47)
bei /src/server/services/homekit/lib/buildAccessory.js:23:26
bei Array.forEach (<anonymous>)
bei HomeKitHandler.buildAccessory (/src/server/services/homekit/lib/buildAccessory.js:22:27)
bei /src/server/services/homekit/lib/createBridge.js:34:62
bei Array.map (<anonymous>)
bei HomeKitHandler.createBridge (/src/server/services/homekit/lib/createBridge.js:34:41)
bei Object.start (/src/server/services/homekit/index.js:25:5)
bei Service.start (/src/server/lib/service/service.start.js:33:7)
Entschuldige bitte @cicoub13, ich habe eine Überprüfung bei der Erstellung des HomeKit-Gateways vergessen. Ich behebe das und aktualisiere das Image schnell. Danke, dass du es trotzdem getestet hast.
Daran bin ich vorbeigegangen!
Top @bertrandda danke, dass du dich damit beschäftigt hast
Ich bin mit deinen Überlegungen zur Privatsphäre zumindest beim Protokoll weitgehend einverstanden. Ich hätte fast das HomeKit-Protokoll für meine Smart-Home-Geräte gewählt.
Glaubst du, dass es möglich sein wird, HomeKit nur mit Gladys zu nutzen, ohne ein Apple-Gerät?
Das ist erledigt @cicoub13, das Bild wurde aktualisiert, jetzt sollte es auch für dich funktionieren.
Hallo @lmilcent, ich bin mir nicht sicher, was du meinst. Der Sinn von HomeKit ist, dass es mit der Apple-Haus-App (für die manuelle Steuerung) oder mit Siri (Sprachsteuerung) funktioniert. Diese beiden Apps sind nur auf Apple-Geräten verfügbar, wenn du keines hast, denke ich nicht, dass es sinnvoll ist, diesen Dienst auf deinem Gladys zu aktivieren. Normalerweise erlaubt dir das HomeKit-Netzwerk nicht, andere Geräte zu Gladys hinzuzufügen. Ich weiß nicht, ob du Google Home oder Alexa ein bisschen ausprobiert hast, aber es sollte ähnlich sein. Du fügst deine Geräte auf der einen Seite zu Gladys hinzu (über Zigbee, Zwave, Bluetooth…), dann öffnest du die Verbindung mit Alexa/Google Home/HomeKit und diese drei Dienste können mit deinen Gladys-Geräten interagieren. Kurz gesagt, ohne Apple-Gerät wird es funktionieren, aber es wird nutzlos sein.
@lmilcent du hast die Integration umgekehrt! Der Sinn der HomeKit-Integration besteht darin, Geräte von Gladys auf dem iPhone und mit Siri steuerbar zu machen, ähnlich wie die Integration von Alexa oder Google Home.