NEWS
Conbee DeConz - Could not connect
-
@oetzi Scheint fast so, als würde deconz nicht laufen. Da Phoscon sichtbar ist, scheint die Verbindung in den Container zu funktionieren. Phoscon ist "nur" eine Webseite, braucht aber den Port von deconz.
-
@succo_J Ich habe aktuell genau das gleiche Problem. Der Aufbau bei mir ist fast wie bei @oetzi.
Mein deconz docker container ist gestartet und kann auch über das Web Frontend Zugegriffen werden. Ich glaube das Problem hängt irgendwie mit den MACVLAN zusammen.
Ich kann im iobroker Container alles anpingen, ausser die Synology NAS wo halt über den Port 8082 (bei mir so eingestellt) auch der deconz liegt. -
So wie ich das verstanden habe sieht @oetzi nur die Webseite, darin aber kein Gateway.
Bitte mal in den container schauen:
docker exec -it Containername bash
netstat -tulpen | grep deCONZ
Da sollte deconz auftauchen: einmal Port 80 und einmal die 8080.Dann noch
service deconz statusAm Ende aus dem Container raus mit exit
-
Hier hatte der User @onkel-ede mit ähnlichen Problemen zu kämpfen. Eventuell kontaktiert ihr ihn mal.
https://forum.iobroker.net/topic/39625/diverse-probleme-mit-deconz-2-05-84/42
-
Danke, dass ihr das Problem wieder aufgreift!
@Gilly said in Conbee DeConz - Could not connect:
@oetzi Für mich sieht es so aus, also ob du den Ping absetzen kannst er aber nicht erfolgreich ist. Hier steht doch 100% loss oder?
Oh man, du hast absolut recht, da hatte ich aber einen gewaltigen Knick in der Optik!
Also besteht in der Tat ein Verbindungsproblem. Interessant, dass du @Gilly ähnliches Probleme hast. Hoffentlich kriegen wir sie beide gelöst.@succo_J : Habe ich gerade ausprobiert, aber er hat ein Problem mit dem netstat Befehlt?!
root@OETZISNAS:~# docker exec -it Deconz-Zigbee bash root@Deconz-Zigbee:/# netstat -tulpen | grep deCONZ bash: netstat: command not found
@haselchen : Danke für den Hinweis!
Die MACVLAN Geschichte kriege ich jetzt nicht spontan hin. Werde mich da aber zeitnah mal ranwagen.
Ich habe gesehen, dass Gilly dort schon am nachbohren ist, da hänge ich mich jetzt mal dran und warte dort auf eine Antwort -
@oetzi Ohje, kein netstat im Container.
Dann eben: lsof -i | grep deCONZ -
@succo_J
Jep, das gehtHier die Ergebnisse:
root@Deconz-Zigbee:/# lsof -i | grep deCONZ deCONZ 8 root 6u IPv4 46551 0t0 TCP *:http-alt (LISTEN) deCONZ 8 root 10u IPv4 47698 0t0 TCP *:omniorb (LISTEN) deCONZ 8 root 11u IPv4 47777 0t0 UDP *:1900 deCONZ 8 root 15u IPv4 41014241 0t0 TCP OETZISNAS.fritz.box:omniorb->DESKTOP-4N9C27Q.fritz.box:53954 (ESTABLISHED) deCONZ 8 root 16u IPv4 41225800 0t0 TCP OETZISNAS.fritz.box:http-alt->DESKTOP-4N9C27Q.fritz.box:54453 (ESTABLISHED) root@Deconz-Zigbee:/# service deconz status deconz: unrecognized service
-
@oetzi Mit den Link von @haselchen konnte ich mit etwas spielen das Problem lösen.
Hier hatte der User @onkel-ede mit ähnlichen Problemen zu kämpfen. Eventuell kontaktiert ihr ihn mal.
https://forum.iobroker.net/topic/39625/diverse-probleme-mit-deconz-2-05-84/42
Es liegt echt an der Kombination, wenn beide Docker Images auf dem gleichen Rechner/Nas laufen
- iobroker mit MACVLAN als Netzwerk und
- deconz mit Host als Netzwerk.
Ich hatte das MACVLAN so aufgebaut, wie von André (buanet) beschrieben. Dies funktioniert aber so nicht, da man vom MACVLAN nicht auf das Host Netzwerk zugreifen kann.
Wenn man das MACVLAN Netzwerk so anlegt, dass man dort mehrere Images verwenden kann, klappt es wunderbar.
Ich habe für die Konfiguration folgendes verwendet:- IPV4 Subnet - 192.168.178.0/24
- IPV4 IP range - 192.168.178.192/27
Im Container->Netzwerk kann man dann noch die IP angeben, welche man haben möchte.
Ich hoffe es Hilft weiter. -
@oetzi Deconz läuft bei dir zwar irgendwie, aber mich wundert, dass im Container *:omniorb steht. Sollte da nicht http für Port 80 stehen? Um die Portnummer zu sehen brauchen wir:
lsof -Pni | grep deCONZ
Dann kannst du mal vergleichen, ob dieser eine Port nicht umgebogen wird.Die letzte Zeile ist auch mysteriös. Der Aufruf des Dienstes hat irgendeine Macke.
-
@Gilly
Oh cool, danke für die Info. Sobald ich ausreichend Zeit finde, werde ich mich da dran geben.@succo_J
Trotzdem forsche ich auch gerne mit dir weiter an dem aktuellen Setting
Hilf mir mal bitte auf die Sprünge, was du genau versuchst herauszufinden.
Nach meinem (sicher laienhaften) Verständnis zeigt lsof ja Sockets von Anwendungen an.root@Deconz-Zigbee:/# lsof -Pni | grep deCONZ deCONZ 8 root 6u IPv4 46551 0t0 TCP *:8080 (LISTEN) deCONZ 8 root 10u IPv4 47698 0t0 TCP *:8088 (LISTEN) deCONZ 8 root 11u IPv4 47777 0t0 UDP *:1900 deCONZ 8 root 17u IPv4 44589884 0t0 TCP 192.168.178.139:8088->192.168.178.129:54784 (ESTABLISHED)
Also scheint der Container auf 3 Ports zu lauschen.
Der 8080 ist auch der, über den ich die Phoscon Seite aufrufe:
Kommen wir hier denn überhaupt weiter oder liegt das Problem nicht vielleicht außerhalb des DeConz Containers, nämlich in der Docker Konfiguration (MACVLAN)?!
-
@oetzi Dein Port 8088 ist der für die API. Wenn der vom Docker nicht umgebogen wird, versuche den statt der 80 im ioBroker.
-
@succo_J
Leider geht das auch nicht.deconz.0 2021-01-04 14:42:18.717 error (23080) Could not connect to deConz/Phoscon. Error: connect EHOSTUNREACH 192.168.178.139:8088
Hätte aber nicht dann auch der Ping von der .200 auf die .139 funktionieren müssen?
-
@oetzi Keine Ahnung ob Ping mit Docker vielleicht ein Problem hat. Mir fallen nur noch zwei Möglichkeiten ein. Entweder Docker macht die 8088 nicht publik oder dieser Port wird auf eine ganz andere Nummer umgebogen.
Deshalb mal: docker inspect Deconz-Zigbee und nach NetworkSetting suchen.
Hier mal ein Beispiel von einem anderen Container:
"NetworkSettings": { "Bridge": "", "SandboxID": "77e745ec8f5d996698cc7cbd89519c9340cc5d7e28c799d0e838d91e77cbd155", "HairpinMode": false, "LinkLocalIPv6Address": "", "LinkLocalIPv6PrefixLen": 0, "Ports": { "7071/tcp": [ { "HostIp": "0.0.0.0", "HostPort": "7071" } ], "8083/tcp": [ { "HostIp": "0.0.0.0", "HostPort": "9083" } ]
Da wird Port 7071 einfach durchgereicht und die interne 8083 als 9083 veröffenlicht.
Villeicht findet sich bei dir dort eine Zuordnung zur 8088...
-
Mhh, die Ports-Einstellung sieht arg dünn aus bei mir
"NetworkSettings": { "Bridge": "", "SandboxID": "c275fd38b4c8c4b644a86829f61d43481a86082ab4dcfb7d9cb051252a1ee31f", "HairpinMode": false, "LinkLocalIPv6Address": "", "LinkLocalIPv6PrefixLen": 0, "Ports": {}, "SandboxKey": "/var/run/docker/netns/default", "SecondaryIPAddresses": null, "SecondaryIPv6Addresses": null, "EndpointID": "", "Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "IPAddress": "", "IPPrefixLen": 0, "IPv6Gateway": "", "MacAddress": "", "Networks": { "host": { "IPAMConfig": null, "Links": null, "Aliases": null, "NetworkID": "c6aa4c8511fca2ee1707474cf074cf7ec02e4be8f78f63daa286ddffeebe5992", "EndpointID": "fc9431f2ba366e9416561626201e7afd94b492d30eeab1fbdfd5eade156a1251", "Gateway": "", "IPAddress": "", "IPPrefixLen": 0, "IPv6Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "MacAddress": "", "DriverOpts": null }
-
@Gilly said in Conbee DeConz - Could not connect:
Wenn man das MACVLAN Netzwerk so anlegt, dass man dort mehrere Images verwenden kann, klappt es wunderbar.
Ich habe für die Konfiguration folgendes verwendet:IPV4 Subnet - 192.168.178.0/24
IPV4 IP range - 192.168.178.192/27Im Container->Netzwerk kann man dann noch die IP angeben, welche man haben möchte.
Ich habe jetzt verschiedenes ausprobiert, kriege es aber irgendwie nicht hin.
Als erstes habe ich eine neue MACVLAN CONF "docker_macvlan_conf" angelegt mit folgenden Parametern:
- IPV4 Subnet - 192.168.178.0/24
- IPV4 IP range - 192.168.178.200/29
Nach meinem Verständnis sollten mit der 29er Maskierung nun 8 IP Adressen möglich sein (200-207). Eine (bei mir .200) kann ich dann dem ioBroker Container geben und die andere (bei mir .201) dem Deconz.
Dann habe ich ein neues Netzwerk (für Deconz) anlegt:
- Name: deconz_macvlan_201
- Conf: docker_macvlan_conf
Das hat noch funktioniert. Wenn ich jetzt aber ein zweites Netzwerk (für den ioBroker) anlegen will und die gleiche conf auswähle:
- Name: iobroker_macvlan_200
- Conf: docker_macvlan_conf
Kriege ich folgende Fehlermeldung:
Failure Pool overlaps with other one on this address space
Wo ist mein Denkfehler, bzw. was habe ich vergessen oder falsch gemacht?
-
- Laut Netzwerkrechner von heise, kann man bei deiner Konfiguration einen Bereich von 200-206 verwenden.
- Du musst nur eine Netzwerkkonfiguration "docker_macvlan_conf" und ein Netzwerk anlegen "docker_macvlan". (Den gleichen Fehler hatte ich aber auch gemacht )
Ich mache das nicht auf der Kommandozeile sondern direkt über Portainer. Da kann man dann den Netzwerk noch die Wunsch-IP mit angeben.
-
Ein ganz dickes Dankeschön geht an @Gilly, der mit mir gestern Abend das Problem gelöst hat!
Damit der ein oder andere damit leichter zurecht kommt, versuche ich das ganze mal zusammen zu fassen und die Hürden zu nennen, die ich gestern noch nehmen musste:
Grundlage für die grundsätzliche Einrichtung von ioBroker unter Docker ist die wohl sehr bekannte Anleitung hier:
https://smarthome.buanet.de/2019/05/iobroker-unter-docker-auf-der-synology-diskstation-v3/
An der Stelle wo im Tutorial die "iob_public_conf" angelegt wird, setzt meine Ergänzung hier an.
Ich nutze Portainer für die gesamte Einrichtung.Grundproblem nochmal zusammengefasst: Wenn ein Container per MACVLAN (iobroker) arbeitet, ein anderer aber über HOST (deconz) angebunden ist, können diese nicht miteinander kommunizieren. (Hier kann man ein paar mehr Details zu der Problem nachlesen: https://www.synology-forum.de/threads/macvlan-zugriff-auf-den-host.103178/)
Lösungsweg
- Anlegen einer Netzwerkkonfiguration mit mehr als einer IP Adresse in der Range, um eben mehrere Container per MACVLAN versorgen zu können
Beispiel:
Zu beachten:
- Die IP Range auf größer 1 IP Adresse setzen. Folgender Calculator hilft dabei. http://www.subnet-calculator.com/cidr.php
- In meinem Beispiel habe ich folgende Range gewählt: 192.168.178.200/29 --> Dies führt dazu, dass folgende IPs zur Verfügung stehen: 192.168.178.200 - 192.168.178.207
- Nun noch dran denken, dass ihr in eurem Router / DHCP Server konfiguriert, dass dieser Bereich nicht vergeben wird, um Adresskonflikte durch Doppeltvergabe zu vermeiden.
-
MACVLAN Netzwerk mit neuer Konfig anlegen
Beispiel:
Hinweis: Die Einträge unter "Containers in Network" sollten zunächst leer sein bzw. die Einträge kommen später hinzu. -
Netzwerk dem 1. Container zuweisen
Container > ioBroker auswählen (draufklicken/Details aufrufen)
Dann ganz unten bei "join a network" das gerade angelegte Netzwerk auswählen und ggf. bereits vorhandene alte Netzwerke rausschmeißen "Leave Network".
3.1 Netzwerkdetails des Containers anpassen
Wählt "Edit" des Containers aus.
Achtung Fallstrick: Das geht nur aus der Detailansicht eines Containers, nicht auf der Übersicht, wo ihr alle Container seht (warum auch immer).
3.2 Dem Container eine feste IP aus der Range vergeben
Bei mir die 192.168.178.200
Fallstrick: Unter Network muss erneut erneut das Netzwerk (bei mir "docker_macvlan") ausgewählt werden. Das übernimmt er irgendwie nicht.--> Jetzt auf "Deploy the Container" klicken und drauf hoffen, dass kein Fehler auftritt
Fallstrick (zumindest bei mir):
Unter "Command & Logging" > Entrypoint sollte nur /start.sh stehen. Bei mir stand am Anfang /tini,--,/start.sh und damit hat das Deployment nicht funktioniert.
- Das GLEICHE Netzwerk dem 2. Container zuweisen
Jetzt macht ihr mit dem 2. Container genau das gleiche, nur das ihr logischerweise eine andere feste IP aus der Range vergebt (z. B. .201).
Zu beachten: Wirklich das gleiche Netzwerk nutzen, kein 2. über die gleiche conf oder ähnliches verwenden.
Das sollte es gewesen sein.
Ich konnte danach den Deconz Container aus dem ioBroker Container anpingen und mir einen API Key holen:
@Gilly Kannst du mal drüber gucken, ob ich irgendeinen Fallstrick oder sonstiges vergessen habe?
- Anlegen einer Netzwerkkonfiguration mit mehr als einer IP Adresse in der Range, um eben mehrere Container per MACVLAN versorgen zu können
-
@oetzi Da hast du dir aber sehr viel Mühe gegeben. Passt soweit
-
@oetzi Sehr schön aufgearbeitet. Wenn du das Ganze jetzt noch in einen Stack verpackst sparst du dir sogar die (leider Portainer bedingten) Fallstricke und deployst die Container inkl. des MACVLAN mit einem Klick.
Schau mal hier, vielleicht ist das was für dich:https://smarthome.buanet.de/2021/01/arbeiten-mit-portainer-stacks/
MfG,
André -
@andre
Hallo
habe eigentlich erfolgreich den Iobroker Container angelegt, wollte ihn jetzt nochmals anlegen, allerdings bringe ich es nicht mehr zusammen.
Grund ist, es kommt immer diese Fehlermeldung.Habe alles gleich gemacht wie zuvor. Einzig habe ich diesmal bei Netzwerk MACVLAN genommen. Was ich zuvor erstellt habe.
Kann mir wer helfen.