NEWS
IoBroker im Docker - USV durchreichen
-
Das ist mein IoBroker Container
Der dazugehörige Stack
version: "2" services: iobroker: container_name: iobroker image: buanet/iobroker:latest-v9 hostname: iobroker restart: unless-stopped networks: default: ipv4_address: 10.10.8.222 ports: - "3493:3493" #NUT - "1010:1010" #PIHOLE - "8091:8091" #Backitup - "9081:9081" #Backitup - "9082:9082" #Backitup #- "1880:1880" #node-red - "1882:1882" #mqtt - "1883:1883" #mqtt - "1884:1884" #mqtt - "2001:2001" #homematic - "2010:2010" #homematic - "8081:8081" #iobroker admin - "8082:8082" #vis - "8087:8087" #Simple API - "7070:7070" #EVCC - "53:53" # Pihole environment: - IOB_STATESDB_HOST=redis - IOB_STATESDB_PORT=6379 - IOB_STATESDB_TYPE=redis - IOB_OBJECTSDB_HOST=redis - IOB_OBJECTSDB_PORT=6379 - IOB_OBJECTSDB_TYPE=redis - IOB_BACKITUP_EXTDB=true - PACKAGES=redis-tools #- SETGID=1200 #- SETUID=1200 volumes: - /volume1/docker/iobroker/iob-data:/opt/iobroker depends_on: - redis redis: container_name: redis image: redis:latest hostname: redis restart: unless-stopped networks: default: ipv4_address: 10.10.8.223 ports: - "6379:6379" volumes: - /volume1/docker/iobroker/iob-redis/:/data networks: default: name: mvl external: true
Das ist das Netzwerk was ich angelegt habe:
Das ist meine Konfiguration der USV auf der Syno...die erste IP ist die IoBroker IP (glaube die brauche ich nicht)
Das sind die Einstellungen vom NUT Adapter
Und das ist die Fehlermeldung die IoBroker auswirft
-
@frana120500
Na, das sieht doch schon fast gut aus
Jetzt noch die Einstellungen im NUT-Adapter:
NUT Server IP: 172.20.0.1 Das ist die IP der Synology deines Netzwerkes nas_iobroker_bridge.Was soll das für ein Benutzername und Passwort der UPS sein? Das sollte leer bleiben.
Später kannst du das interne Netzwerk in deinen Stack einbauen.
Du hast ein schönes Beispiel für einen Stack. Ich arbeite teilweise mit Stacks aber nicht von Anfang an für den ioBroker. Ich kopier mir mal deinen Stack als Vorlage.
-
@bongo tha, und da gibt man 1x die richtige IP ein und schon ist der Adapter grün. Ich danke dir vielmals für deine (und den anderen natürlich auch) Hilfe.
Das mit dem Einbau des internen Netzwerks in den IoBroker Stack musst du mir aber trotzdem nochmal näher erklären. Da kann ich nicht ganz folgen.
-
@frana120500 sagte in IoBroker im Docker - USV durchreichen:
Das mit dem Einbau des internen Netzwerks in den IoBroker Stack musst du mir aber trotzdem nochmal näher erklären. Da kann ich nicht ganz folgen.
Das habe ich selbst noch nicht gemacht. Theoretisch könnte sich die IP 172.20.0.2 des ioBroker beim nöchsten Restart des Docker Containers ändern. Irgendwie kann man es im Stack fest definieren. Aber wie gesagt, ich müsste selbst erst recherchieren. Im Momant fehlt mir dazu die Zeit.
Ich hab mir übrigens eine USV-Wartung nach diesem Video und Skript gebaut:
https://youtu.be/kf_yaXGj-_0?si=tAPuV4AIAw4aXof3
-
@frana120500 sagte in IoBroker im Docker - USV durchreichen:
Das mit dem Einbau des internen Netzwerks in den IoBroker Stack musst du mir aber trotzdem nochmal näher erklären. Da kann ich nicht ganz folgen.
Du referenzierst im Stack (Abschnitt "networks") beide Netzwerke und kannst beim Service "iobroker" dann auch beide inkl. der festen IP angeben:
version: "2" services: iobroker: container_name: iobroker image: buanet/iobroker:latest-v9 hostname: iobroker restart: unless-stopped networks: default: ipv4_address: 10.10.8.222 bridge: ipv4_address: 172.20.0.2 ports: - "3493:3493" #NUT - "1010:1010" #PIHOLE - "8091:8091" #Backitup - "9081:9081" #Backitup - "9082:9082" #Backitup #- "1880:1880" #node-red - "1882:1882" #mqtt - "1883:1883" #mqtt - "1884:1884" #mqtt - "2001:2001" #homematic - "2010:2010" #homematic - "8081:8081" #iobroker admin - "8082:8082" #vis - "8087:8087" #Simple API - "7070:7070" #EVCC - "53:53" # Pihole environment: - IOB_STATESDB_HOST=redis - IOB_STATESDB_PORT=6379 - IOB_STATESDB_TYPE=redis - IOB_OBJECTSDB_HOST=redis - IOB_OBJECTSDB_PORT=6379 - IOB_OBJECTSDB_TYPE=redis - IOB_BACKITUP_EXTDB=true - PACKAGES=redis-tools #- SETGID=1200 #- SETUID=1200 volumes: - /volume1/docker/iobroker/iob-data:/opt/iobroker depends_on: - redis networks: default: name: mvl external: true bridge: name: nas_iobroker_bridge external: true
Hast du PiHole mit in den iobroker Container installiert oder warum gibt es dafür Portmappings? Den Port 3493 für NUT musst du auch nicht mappen.
-
@marc-berg MOin, danke dir, dass probiere ich aus.
Nee die Ports hatte ich nur gemappt weil ich ausschließen wollte, dass der NUT und der PiHole Adapter deswegen nicht grün werden. Sind noch Altlasten die ich rauswerfen muss
-
@marc-berg Vielen Dank Marc... das funzt einwandfrei. Habe ich wieder was gelernt.
-
Ich muss jetzt aber nochmal was fragen. Wir haben ja vorher gesagt, das es externe und interne Netze gibt und das Container nicht untereinander kommunizieren können, außer ich baue eine Brücke in Form eines neuen Netzwerkes.
Jetzt möchte ich in Container A (EVCC) eine GET Abfrage aus Container B (Iobroker) machen.
Das ist der Befehl: http://10.10.8.222:8082/getPlainValue/volvo.0.vid.status.batteryChargeLevel.value?json
Die 10.10.8.222 ist ja die externe macvlan IP von meinem Iobroker
Wenn ich den o. g. Befehl an meinem Rechner absetze, erhalte ich den korrekten Wert zurück. Wenn ich den vom EVCC Container abrufe, erhalte ich als Fehlermeldung dial tcp 10.10.8.222:8082: connect: no route to host
Hat jetzt mit der Eingangsfrage nix zu tun, aber da habe ich gerade ein Verständnisproblem.
-
@frana120500 sagte in IoBroker im Docker - USV durchreichen:
EVCC
Du fügst dem Container A das Netzwerk nas_iobroker_bridge zu.
Die interne IP vom ioBroker ist 172.20.0.2
Der Befehl heißt:
http://172.20.0.2:8082/getPlainValue/volvo.0.vid.status.batteryChargeLevel.value?json -
@marc-berg
Du kennst dich mit Stacks aus!
Ich habe vor ein paar Jahren versäumt den ioBroker Container mit einem Stack zu erzeugen und starten.
Kann ich nachträglich einen Stack machen ohne dass ich mir den ioBroker zerschieße? -
Das dachte ich mir auch, aber da bekomme ich diese Fehlermeldung
Der Container A läuft im Host Netzwerk
-
Eigentlich ja, aber nicht so wie du denkst.
Container werden ja so definiert, das alles weggeworfen werden kann und die dauerhaften Anteile in einem oder mehreren volumes sich befinden.
Da sich die gesamte iobroker Installation ( /opt/iobroker) in einem
Eigenen volume definiert ist, kannst du einen neuen Container erzeugen in dem das vorhandene volume von Iobroker verwendet wird.
Wenn du in deinem Container nie andere Software installiert hast oder sonstige Änderungen vorgenommen hast die sich nicht in einem volume befinden, dann hast du keine Probleme
Falls ja, sind diese nach der neugenerierung des Containers weg. -
@frana120500
Da bin ich jetzt auch überfragt. -
@frana120500 sagte in IoBroker im Docker - USV durchreichen:
Das dachte ich mir auch, aber da bekomme ich diese Fehlermeldung
Der Container A läuft im Host NetzwerkEs gibt ein paar Regeln, wann eine Kommunikation (ohne weitere Routingregeln) möglich ist oder nicht:
Container1 in ... Container2 in ... Kommunikation möglich? Bridge A Bridge A ja MACVLAN MACVLAN ja Hostnetzwerk / Host Bridge ja Hostnetzwerk / Host MACVLAN nein Bridge A Bridge B nein Bridge MACVLAN nein Ein Sonderfall, den du ja auch umgesetzt hast: wenn ein Container in Bridge- UND MACVLAN steckt. Dann ist der Host nur über das Bridge-Gateway zu erreichen.
-
@bongo sagte in IoBroker im Docker - USV durchreichen:
Kann ich nachträglich einen Stack machen ohne dass ich mir den ioBroker zerschieße?
Wie @OliverIO schon geschrieben hat, wenn du das selbe Volume beibehältst, sind keine Probleme zu erwarten. Einen Punkt würde ich noch hinzufügen: Auch der Hostname sollte beibehalten werden, sonst kann es zu unerwünschten Effekten kommen. Dies ist im Stack aber ohne weiteres möglich. Wenn du einen vom Containernamen abweichenden Hostname haben möchtest, dann einfach per:
hostname: xyz
im Stack ergänzen.
-
@marc-berg perfekt. Vielen vielen Dank für die Hilfe.