Hallo zusammen,
ich hatte dasselbe Proben und habe es nun gelöst. Die Lösung ist eigentlich einfach: Die Ports müssen im Docker-Container freigegeben werden. Der Docker-Container von iobroker hört per default nur auf 8081 und 8082. Da iobroker für viele Adapter gemacht wurde, müssen alle für die jeweiligen Adapter benötigten Ports gesondert freigegeben werden.
Der Docker-Container muss für Homematic hinsichtlich der Ports daher wie folgt erweitert werden:
HM-Rega:
keine Anpassung notwendig (benötigt keine gesonderten Ports)
HM-RPC rfd-Daemon:
Port 2001 (für HTTP) bzw. 42001 (für HTTPS) verbinden
HM-RPC HomeMatic IP-Daemon:
Port 2010 (für HTTP) bzw. 42010 (für HTTPS) verbinden
HM-RPC CuX-Daemon:
Port 8700 (für HTTP) bzw. 8701 (für HTTPS) verbinden
In den Adaptereinstellungen muss bei rfd und HmIP jeweils [IPv4] 0.0.0.0 als Adapter-Adresse eingetragen werden, da hostseitig nur die internen Adressen (172....) bzw. die Loopbackadresse (127.0.0.1) zur Verfügung stehen und für eine Callback-Adresse aber die externe benötigt wird. Deshalb muss der Adapter auf alle Adressen hören. Beim Port nichts eintragen (systemseitig wird dann 0 eingetragen - das ist ausreichend). Damit hört der Adapter auf alle eingehenden Anfragen. Da die Homematic-Zentrale die Anfragen an den Port zurückzusenden scheint, an dem sie dort eingehen (z. B. 42001) funktioniert die Verbindung dann, da der Port auch beim Docker geöffnet ist und der Adapter automatisch darauf lauscht.
Bei meinem Docker-Container sind somit aktuell folgende Ports durchgeleitet:
- 8081:8081
- 8082:8082
- 42001:42001
- 42010:42010
- 8701:8701
Homematic-Seitig muss darauf geachtet werden, dass die Ports dann in der Firewall freigegeben sind:
Noch ein Tipp an der Stelle: Generell werden bei einem Docker-Container bei der Aktualisierung immer alle Daten gelöscht. Das bedeutet für den iobroker, dass auch alle Konfigurationen und historischen Daten weg sind. Daher ist es bei Docker-Containern - so auch beim iobroker - obligatorisch, dass man das Datenverzeichnist extern verlinken kann und so Daten persistent speichern kann. Das sollte jeder beim Anlegen des Containers (später geht es nicht mehr) machen. Infos gibt es hier: https://hub.docker.com/r/buanet/iobroker/
Dort dann unter der Übersichrift "Persistent data".
Ich hoffe das hilft euch.
Grüße