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?