Apple HomeKit (Siri) mit IP-Symcon verbinden

Hallöle,

wollte nur mal kurz einen Zwischenbescheid geben, dass ich Symcon mit Homekit auf einem Synology-NAS DS-918+ unter Docker am Laufen habe.

Da ich die letzten Wochen etwas Gelegenheit hatte, mich im Zuge einer Kamera-Integration etwas intensiver mit den Niederungen von HAP auseinander zusetzen, ist es mir nun zwischenzeitlich gelungen, diese Kombination ans Laufen zu bekommen. Auf der Syno läuft auch weiterhin der Bonjour-Dienst für Syno-Services, da Syno den avahi-daemon etwas aufgebohrt hat

MIt der wichtigste Punkte ist der Folgende:

  • Docker darf nicht im HOST-Modus betrieben werden, da auf dem Default-Interface docker0 kein bridging erfolgt und bei Verwendung dieses Netzwerkmodus weitere Einschränkungen im Hinblick auf zusätzliche Netzwerke existieren. Stattdessen müssen alle Ports statisch bei der Container-Erstellung angegeben werden

  • Es ist ein eigenes Hostnetz mittels Macvlan zu erstellen, ich habe das so gelöst, dass ich die IP-Adresse dieses eigenen Interfaces in meinen normalen Bereich 192.168.x.x gelegt habe:

Es hat ab dem Zeitpunkt funktioniert, als ich im symcon image sowohl den avahi-daemon als auch dbus und diverse dbus-tools installiert und eine bestimmte Reihenfolge eingehalten habe. Man kann zwar in der avahi-daemon.conf den Zugriff via dbus deaktivieren, wenn der avahi-daemon aber mit dbus-Support kompiliert ist, funktioniert das trotzdem nicht. Und für alpine-linux habe ich nur das avahi-Paket mit dbus-Support gefunden

Auch hat der normale dbus autolaunch wegen mangelndem X11 nicht funktioniert, der manuelle dbus-launch ist ebenfalls gescheitert. Nachdem ich nun aber den dbus service „manuell“ starte, funktioniert auch der avahi-daemon (die PID muss ggfs. zuvor gelöscht werden, je nachdem wie der dbus Service zuvor angehalten wurde)

Was auf jede Fall notwendig ist: sobald der avahi beendet und neugestartet wird, muss zwingend die Instanzkonfiguration für DNS-SD in Symcon aufgerufen werden, damit sich Symcon wieder bei Homekit „anmeldet“. KOntrollieren kann man das dann mit dem avahi-browser

Außerdem ist mir aufgefallen, dass von Symcon nicht immer der alte Service via DNS-SD abgemeldet wird, wenn im Bereich HomekitBridge der Name/ID/Port umbenannt wird etc. Dies führt dann entweder zu Dubletten, die im Zuge der Namensauflösung als -1, -2 etc. aufgelöst werden, oder aber eben zu Paring-Fehlern durch den bereits vorhandenen Namen

Ich werde die nächsten Tage hoffentlich dazukommen, das nochmals mit Standard-Symcon Image zu testen und eine kleine Anleitung zu liefern.

Auf jeden Fall funktioniert es bei mir bisher mit Homekit gut bis auf die folgenden Punkte:

1.) Nach einem Neustart des dbus/avahi muss Symcon den Dienst wieder via DNS-SD erneut registrieren, bevor die HOME-APP das Vorhandensein erkennt

2.) Nach dem Neustart von 1.) werden in der HOME-App nur aktive Accessories als solche erkannt. Für alle anderen ACCs muss man zuerst einmal auf den Button zum Ausschalten klicken, dann wieder aktivieren, dann tut es.
=>Das dürfte bei mir aberr ein Problem des KNX-Moduls sein, so dass Symcon nicht den richtigen Status an HomekitBridge übergeben kann und erst nach aus und wieder einschalten des jeweiligen ACCs die HOME-App den Status korrekt übermittelt bekommt.

Greetings,

Torsten

So, nun ein paar Infos zum Nachbau:

  • Erzeugung manuell, Verwaltung des Ganzen via Portainer
  • Zu Testzwecken kann über die Console bereits getestet werden, allerding sind die Änderungen spätestens mit einer Neuerzeugung des Containers gelöscht, wenn man Images wie Watchtower einsetzt

Aus diesem Grund fände ich es nicht schlecht, wenn diese Funktionalität bereits mit in das symcon-Image wandern könnte, ggfs. mittels Spezialschalter

1.) Erzeugung des Docker-Netzwerks

  • SSH-Verbindung mit dem NAS
  • Docker-Netzwerk:

docker network create -d macvlan --subnet=192.168.0.0/24 --gateway=192.168.0.1 --ip-range 192.168.0.232/29 -o parent=eth0 symconnet

Ich habe also eine feste IP aus meinem normalen Bereich verwendet, keinesfalls funktioniert die 172.x.x.x IP des Bridge-Netzwerks ohne Anpassung von IPTABLES etc.

2.) Erzeugung des Containers

Erzeugt wird der Container bei mir auf dem NAS via SSH mit:

docker run --name symcon5 --hostname symcon5 -p 3777:3777 -p 52000:52000 -p 5353:5353 -p 34592:34592 -v /volume1/docker/symcon/data:/var/lib/symcon -v /volume1/docker/symcon/log:/var/log/symcon -v /volume1/docker/symcon:/root symcon/symcon:stable

3.) Hinzufügen des neu erzeugten Netzwerks zum Container

Im Portainer dann unter den Container auswählen und unter Netzwerk das bestehende Bridge-Netzwerk löschen (Leave Network) und das neue Netzwerk hinzufügen (Join Network)

4.) Hinzufügen der Pakete und Starten des Dienstes

apk add dbus
apk add avahi
dbus-daemon --system --fork --systemd-activation
avahi-daemon -D

optional:
apk add avahi-tools (für den avahi-browser, z.B. die Anzeige der symcon DNS-SD messages: avahi-browse -r _hap._tcp)

ggfs. ist zuvor die dbus pid zu löschen, je nachdem, wo /var/run liegt und wie dbus beendet wurde, löschen mit rm /var/run/dbus.pid

Wie schon erwähnt, muss ein DNS-SD Publish erfolgen, nachdem der avahi-Dienst läuft, ansonsten tut das nicht. Es reicht im DNS-SD Modul auf editieren des zu registrierenden Hosts zu gehen und ohne Änderung mit OK den Edit-Modus zu beenden und die obligatorische Frage, ob gespeichert werden soll, zu bestätigen. Wäre zu überlegen, wie man das automatisiert.

@paresy
Wäre schön, wenn Du eine Möglichkeit findest, das ins Image zu integrieren.

Ansonsten viel Spaß :slight_smile:

Torsten

Dank Kai ist für fast alle Geräte die Doku vorhanden und im Master Branch gemerged.

@todro2002: Ich schaue mal was sich machen lässt bzgl. den avahi Paketen. Danke für deine ausführliche Anleitung!

paresy

Der Rest kommt noch.
Mal schauen, evtl. kann man ja noch Beispiele angeben, zum Beispiel für die Thermostate oder so.

Grüße,
Kai

Gesendet von iPhone mit Tapatalk

Klar! Wer Beispiele oder Verbesserungsvorschläge hat, kann gerne ein neues Thema dazu eröffnen - dann bauen wir diese mit ein :slight_smile:

paresy

Ich habe die Doku mal im ersten Thread hinzugefügt.

Grüße,
Kai

Ich bin hier zwar nicht 100%-ig richtig, aber ich hoffe unter euch hat jemand einen entscheidenden Hinweis/Tipp für mich!
Und zwar startet der Apple Bonjour Dienst auf meinem Windows IP-Symcon Server nicht durch und somit kann ich das HomeKit Modul nicht nutzen!
Ich habe in den letzten Wochen schon ‚unendlich‘ viel Zeit investiert, aber ich komme nicht weiter.

Grundsätzlich

[ul]
[li]Mein IP-Symcon Server ist ein Windows 10 Enterprise 64-Bit [Version 10.0.17763.194].
[/li] Hier lässt sich einfach der Apple Bonjour Dienst nicht starten -> siehe unten für weitere Details/Fehlermeldungen
[li]Auf meinem Notebook „Windows 10 Pro 64-Bit [Version 10.0.17134.471]“ läuft Bonjour ohne Probleme
[/li][li]Auf meinem zweit PC „Windows 10 Enterprise 64-Bit [Version 10.0.17134.471]“ kann ich den Bonjour Dienst auch nicht zum Laufen bringen
[/li][/ul]
Note: Da ich mit diesem Problem schon seit der Veröffentlichung von IP-Symcon v5.0 kämpfe und dazwischen schon einige Windows Update gekommen sind, glaube ich nicht, dass es an einer genauen Windows Version liegt. Derzeit habe ich das HomeKit Modul auf einen zusätzlichen Raspberry Pi laufen, aber das ist eine uncooles Setup …

Fehlerbeschreibung(en): Ich hab schon Apple Bonjour v3.0, v3.1.0.1, iTunes, … probiert, bekomme aber den Dienst nicht zum Laufen

Nachdem ich versuche den ‚Bonjour Dienst‘ zu starten, finde ich im Windows EventLog folgenden Eintrag:
2018-12-14_Windows-Protokolle.png

----------------
Windows Event-Log
Name der fehlerhaften Anwendung: mDNSResponder.exe, Version: 3.1.0.1, Zeitstempel: 0x55cbcce6
Name des fehlerhaften Moduls: mDNSResponder.exe, Version: 3.1.0.1, Zeitstempel: 0x55cbcce6
Ausnahmecode: 0xc0000409
Fehleroffset: 0x00000000000437c3
ID des fehlerhaften Prozesses: 0x1944
Startzeit der fehlerhaften Anwendung: 0x01d493c62bf2929c
Pfad der fehlerhaften Anwendung: C:\Program Files\Bonjour\mDNSResponder.exe
Pfad des fehlerhaften Moduls: C:\Program Files\Bonjour\mDNSResponder.exe
Berichtskennung: a2f96975-bfe3-435b-bd69-08ab1948fb99
Vollständiger Name des fehlerhaften Pakets: 
Anwendungs-ID, die relativ zum fehlerhaften Paket ist: 
------------------

Wenn ich versuche den ‚mDNSResponder.exe‘ mit Parameter ‚-server‘ mit dem Sysinternals process dump utility aus der CMD zu starten, bekomme ich folgendes:

Der Prozess Dump davon sieht folgendermaßen aus:

Wenn ich den Bonjour SDK installiere und ein Beispielprojekt mit Visual Studio debugge, bekomme ich folgende ‚COMException‘ zu Gesicht:

Gestern habe ich mir sogar den Source Code vom ‚mDNSResponder‘ von Source Browser heruntergeladen i[/i].
Diesen konnte ich sogar ohne Probleme erfolgreich Kompilieren und somit den ‚mDNSResponder -server‘ mit Debug Ausgabe starten bzw. Schritt für Schritt durchdebuggen.
Aber auch das hat mir noch nicht den entscheidenden Hinweis/Durchbruch gebracht.
Wenn ich den „mDNSResponder.exe -server“ mit Debug starte bekomme ich diese Fehlermeldung:

Direktes Debugging mit Visual Studio. Aber hier scheitere ich leider an meinen ‚C‘ Kenntnissen

Ich hoffe, einer von euch kann mir mit diesen Infos weiterhelfen …
D A N K E Günter

Ich frage mal ganz doof… Ist Windows frisch installieren eine Option? Das löst ziemlich sicher das Problem - und wenn du nach und nach alles installierst, wirst du den Übeltäter finden, der nicht mitspielen will.

pares

Hallo,

hab 2 iphones mit ios 11.2.
ich kann auf beiden phones mit gleichem (aber und auch mit unterschiedlichem code) die verbindung in der homeapp mit einer homekitbridge hergestellen und dann auch von beiden Geräten bedienen. Nach einer gewissen Zeit verabschiedet sich aber ein phone mit allen geräten komplett und ich muss das Haus neu einrichten.

Woran kann das liegen ?
Gibt es einen weg, HomeApp und Symcon zu koppeln ohne jedes Mal die ganzen Gerätschaften neu einrichten zu müssen?

Danke für eure tips …

Hallo zusammen,

erst einmal großes Lob an das Entwicklungsteam. Die Einrichtung hat auf anhieb funktioniert (ESXi VM Ubuntu 18.04, Symcon 5.0 Revision 93cb63bbeb2) und die ersten HomeMatic Geräte lassen sich auf dem iPhone und MacBook problemlos schalten.

Jetzt wollte ich meinen Denon AVR integrieren. MuteID und VolumeID hinzugefügt, alles scheint ok, nur im HomeKit wird mir das Ganze als nicht unterstützt angezeigt? Jemand ne Idee was das Problem ist?

Danke im Voraus.
Grüße

@Box ist auf beiden iPhones die selbe Apple ID in Benutzung?

@7weazel7, die Lautsprecher funktionieren in der Home App nicht. Mit der Eve App zum Beispiel kannst du diese aber nutzen.

Grüße,
Kai

Man sollte hier immer bei Apple bleiben. Eve kann nur das was Apple freigibt. So die Aussage von Eve, schon vor einigen Zeiten.

Ohne Frage immer noch die beste Visu.

Allerdings die letzten Updates von Eve…

Sie sind ja bestrebt. Nur wenn der Herr nicht will.

Gesendet von iPad mit Tapatalk

Hallo KaiS,

Danke für Antwort.
Ja es haben beide Phones die gleiche AppleID.

Wie gesagt, ein paar minuten lang, kann man auch gleichzeitig mit beiden Phones das Haus steuern …

@Box: Du kann immer nur genau ein Gerät pairen. Wenn du ein zweites in der Bridge pairst, dann wird das erste entfernt.Die anderen Geräte müssen über die Home App freigegeben werden. Wenn es die selbe AppleID ist, sollte alles über die iCloud synchronisiert werden.

paresy

Hallo Paresy,

genauso verhält sich die Bridge…

Was mich nur wundert, ist dass es überhaupt für eine Zeit lang geht.
Da drängt sich der Gedanke auf, man könnte theoretisch sofwareseitig den „Rausschmiss“ unterbinden. Denn die HomeApp mit der IPS Bridge funktioniert ja zunächst auch ohne Icloud, was super ist, wenn man seine Kommunikatin nicht mit Icloud oder Amazon teilen möchte…
Und was wäre andernfalls die alternative, wenn man zB ein Haus hat indem man mehrere Ipads zur Sprachstuerung verteilt hat? Etwa pro Ipad eine weitere Bridge anlegen? und alle Geräte jedes Mal neu konfigurieren?

Kann man denn ein der echten Apple Homebridge mehrere IOS Geräte koppeln ?

viele Grüße
Box

Wie sieht es den mit der neuen Geräteklasse aus : Klingel / Video Klingel ?

Ohne Abo, mit HomeKit: Netatmo zeigt „Smart Video Doorbell“ › iphone-ticker.de

Wann wird die kommen ? Hat jemand schon Infos ?

Wir haben uns dazu noch keine Gedanken gemacht.

Grüße,
Kai

Gesendet von iPhone mit Tapatalk

Schade wäre schön wenn das bald kommt, habe zwar keine Ahnung wie das das dann auf dem iPhone sich auswirkt, aber ich hoffe, Apple denkt sich das so:

Es klingelt, auf dem iPhone kommt eine Pushnachricht rein und wenn man es dann in die Hand nimmt, zeigt es die Kamera an.

Mit Audio / Video: Es klingelt und auf dem iPhone kommt ein Anruf rein, mit Videovorschau von der Klingel…

Hier ein kurzes Feedback zu Post #548

Der Übeltäter war die Software ‚MOXA NPort Administrator‘ von meinem 16 Port RS232 Serial Device Server (NPort 5610-16)
Das hat mich viel Zeit gekostet das herauszufinden bzw. eine Tage eine Lösung dafür zu suchen.

Details: Die Installation vom MOXA NPort Administrator ist kein Problem. Ich könnte die Software auch starten und der Apple Bonjour Dienst funktioniert noch.
Sobald man aber im NPort Administrator die ‚Search‘ Funktion ausführt ist der Apple Bonjour Dienst tot.
Mit Windows Images Backups und Wiederherstellungspunkten habe ich das ca. 10 Mal getestet und dabei Registry und Filesystem Snapshots angefertigt und verglichen. Aber keine Change das genaue Problem zu finden.
Das Gute ist, dass der ‚NPort Windows Driver Manger‘ diese Probleme nicht verursacht -> den braucht man ja unbedingt um die Seriellen Ports nutzen zu können.
Den NPort Administrator hab ich auf dem IP-Symcon Rechner nicht mehr installiert und benutze ihn bei Bedarf von einen andern Rechner aus …

Screenshots:

Hallo,

eine Testinstallation auf ubuntu docker mit portainer läuft auf Anhieb. Im Host Modus müssen keine Ports gemappt werden. Sehr schön.

Auch die Homebridge funktioniert wenn man die Pakete nachinstalliert und den DNS-SD restart ausführt.
Ich verstehe, dass die Verwendung in einem getrennten Docker Netzwerk schwierig ist, aber im Host Mode wäre sie leicht.

Gibt es Pläne den Homekit Support umzusetzen?

So ist docker für mich nicht brauchbar.

danke Sebastian