NEWS
iobroker im Docker - hm.rpc keine Verbindung
-
@smarti2015 sagte in iobroker im Docker - hm.rpc keine Verbindung:
@paul53 sagte in iobroker im Docker - hm.rpc keine Verbindung:
t die IP-Adresse des Container-Hosts?
Also der Container hat die IP: 172.17.0.8, die Raspberrymatic 192.168.178.99. Shelly und die Yeelight sind ebenfalls im 192.168.178.0/24 Kann das schon das Problem sein? Wie muss ich den Container dann richtig einbinden? Der Docker-Rechner hat die 192.168.178.208. Muss ich den iobroker Container dann unter Netzwerk von Bridge auf host stellen?
und wie sehen deine Einstellungen im hm-rpc aus?
wenn du
@smarti2015 sagte in iobroker im Docker - hm.rpc keine Verbindung:
alle Einstellungen übernommen
kpönnen die ja nicht auf die neue Installation passen, dort ist die Situation ja eine andere
-
@smarti2015 sagte: Der Docker-Rechner hat die 192.168.178.208.
Gib diese IP-Adresse unter "ZUSÄTZLICHE EINTELLUNGEN": "Adapter Callback Adresse" ein.
-
ip päckchen dürfen die netzwerk-segment grenzen nicht überschreiten. das filtert der router aus. nacher können die päckchen von
192.168.178.99 die Adresse 172.17.0.8 nicht erreichen.
ich gehe davon aus, das du ein C-Klasse-netz definiert hast (erkennbar an der Netzwerkmaske (255.255.255.0). Daher ist ein Netz 192.168.178.0 bis .255um das zu lösen musst du die eingangs-ports im docker-container auf den host durchreichen. aktuell dürfte das nur 8081 sein.
damit ist der iobroker auf diesem port unter der ip-adresse des docker-hosts erreichbar.
wenn jetzt noch mehr geräte auf den ports kommunizieren wollen, dann müssen die ebenfalls beim start des container mit angegeben und damit auf dem host durchgereicht werden.ich selbst verwende iobroker mit macvlan. damit erhält der docker-container eine eigenständige ip-adresse.
das vereinfacht zumindest die sache, wenn die notwendigen ports auf dem host schon belegt sind.auch habe ich alle container über docker-compose files (bzw stacks in portainer) definiert. das macht die sache auch nocheinmal erheblich einfacher mal schnell eine parameteranpassung durchzuführen.
-
Also so ist die Situation und so hab ich eingestellt:
Docker - 192.168.178.208
ioBroker Container - 172.17.0.8 (Netzwerk auf bridge)
RaspberryMatic - 192.168.178.99 -
@paul53 sagte in iobroker im Docker - hm.rpc keine Verbindung:
r "ZUSÄTZLICHE EINTELLUNGEN": "Adapter Callback Adresse" ein.
Hab ich gemacht, aber leider ändert das nichts.
-
@smarti2015 sagte: ioBroker Container - 172.17.0.8 (Netzwerk auf bridge)
Adapter Adresse: 172.17.0.8 selektieren
EDIT: Ich habe keine Ahnung, ob eine Bridge von 192.168.178.208 nach 172.17.0.8 durchreicht. Da Du aus dem Fritzbox-Netz den ioBroker-Admin erreichst, gehe ich mal davon aus.
-
Ok jetzt hat es geklappt. Vielen Dank! Mit der Callback IP und der richtigen Adapter Adresse geht es nun.
Bleibt das Problem mit Shelly und Yeelight und ich denke es wird noch andere Adapter betreffen.
Wie bekomme ich da eine Verbindung aus dem Container 172.17.0.8 ins -> 192.168.200.0/24 -
Ich habe jetzt zwar die Geräte von der Raspberrymatic drin, aber die Werte sehen irgendwie komisch aus:
So sollte es eigentlich auch aussehen, wie in der ioBroker Version auf meinem Linux Rechner:
-
@smarti2015 hm-rega richtig konfiguriert?
-
Na da hab ich nur die IP vom Raspberrymatic hinterlegt, mehr hab ich da nie gemacht.
-
@smarti2015 sagte in iobroker im Docker - hm.rpc keine Verbindung:
mehr hab ich da nie gemacht.
und den Container auch in der RM in der Firewall freigegeben?
-
@homoran sagte in iobroker im Docker - hm.rpc keine Verbindung:
nd den Container auch in der RM in der Firewall freigegeben?
Die Firewall auf dem Docker Ubuntu Server ist inaktiv.
-
@smarti2015 sagte in iobroker im Docker - hm.rpc keine Verbindung:
Die Firewall auf dem Docker Ubuntu Server ist inaktiv.
danach habe ich nicht gefragt!
@homoran sagte in iobroker im Docker - hm.rpc keine Verbindung:
in der RM in der Firewall
wobei RM für RaspberryMatic steht
-
@homoran sagte in iobroker im Docker - hm.rpc keine Verbindung:
wobei RM für RaspberryMatic steht
Oh sry hab ich falsch verstanden, dacht du meinst vielleicht Real-Machine. Ok also in der RM hab ich unter Einstellungen > Firewall konfigurieren die IP von Container und vom Docker eingetragen, ist das an dieser Stelle richtig?
-
@smarti2015 sagte in iobroker im Docker - hm.rpc keine Verbindung:
ist das an dieser Stelle richtig?
definitiv nicht!
Du hast die rpc für alle IPs freigegeben, dann brauchst du auch nicht nochmal einzelne IPs unten freizugeben.
Dafür hast du alle Ports gesperrt und nur den 2001 freigegebenDas passt nicht
-
@homoran
Oh also die IPs wieder raus und oben auf Port offen stellen? -
@smarti2015 sagte in iobroker im Docker - hm.rpc keine Verbindung:
Oh also die IPs wieder raus und oben auf Port offen stellen?
Was ja irgendwie am Sinn einer Firewall vorbeigeht.
Aber da können auch noch ganz andere Effekte wegen deines Container zu dem Problem führen.
Da kenne ich mich nicht mit aus, ich weiß schon warum ich mir keine Container antue -
Ok ach dann lass ich das so wie es grad ist mit dem Linux ioBroker, der läuft ja super. Dachte nur in einem Container ist das auch ne schicke Sache, aber da gibt es mir jetzt einfach zu viele Probleme. Ich danke euch!
-
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) verbindenHM-RPC HomeMatic IP-Daemon:
Port 2010 (für HTTP) bzw. 42010 (für HTTPS) verbindenHM-RPC CuX-Daemon:
Port 8700 (für HTTP) bzw. 8701 (für HTTPS) verbindenIn 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
-
Ergänzung,
wenn man Probleme mit bereits durch andere Applikationen belegten Ports auf dem Host System hat, kann man auch ein macvlan Netz anlegen und damit dem Container eine richtige eigene ip im Netz geben.