NEWS
[HowTo] ioBroker unter Docker auf Synology DiskStation
-
@glasfaser
Ja, einmal reinen Tisch machen, ist vermutlich nicht verkehrt. Also...-
Neuen leeren Ordner /volume1/docker/iobroker angelegt.
Laut dem Tipp von André https://docs.buanet.de/iobroker-docker-image/docs/#backup habe ich darin das letzte *_backupiobroker.tar.gz abgelegt. Nur das, nicht die zigbee, javascripts und jarvis Backups. -
Dann neuen Container aufgesetzt mit buanet/iobroker:latest**-v7**
-
Ports, Volumes Env und Reources eingetragen und los.
Das Backup wurde erkannt und verwendet.
----- Step 2 of 5: Detecting ioBroker installation ----- IoBroker backup file detected in /opt/iobroker. [DEBUG] Backup file name: iobroker_2023_01_04-02_40_10_backupiobroker.tar.gz Preparing restore... Done.
Dann installierte er alle Adapter in alphabetischer Reihenfolge. Bis web.01.
Zigbee nicht - aber dafür gibt es ja auch ein separates Backup.Nur: Nun war Schluss. Das Log endet mit
host.iobroker check instance "system.adapter.web.0" for host "7f5574fa2a98" host.iobroker check instance "system.adapter.web.1" for host "7f5574fa2a98"
Keine Bewegung mehr im Log, Container healthy, aber nicht erreichbar über ip:8081
Im Log stand der fette Hinweis:
!!!! Check /opt/iobroker/log/restore.log to see if restore was successful. !!!! !!!! When ioBroker now starts it will reinstall all Adapters automatically. !!!! !!!! This might be take a looooong time! Please be patient! !!!! !!!! You can view installation process by taking a look at ioBroker log. !!!!
Daher habe ich wirklich lange auf Neustarts und Activitäten in der Konsole verzichtet.
Aber da das restore.log abschloss mit System successfully restored! habe ich nach einer Stunde für mich beschlossen, dass der Container evtl. nur noch im Debug-Modus sein dürfte und ich den Container mal neu starten könnte.Also nochmal gestartet... Nachdem wieder nichts passierte, dann doch ein Blick in die Konsole (iob logs --watch)
2023-01-05 08:00:44.230 - info: host.iobroker iobroker.js-controller version 4.0.23 js-controller starting 2023-01-05 08:00:44.236 - info: host.iobroker Copyright (c) 2014-2022 bluefox, 2014 hobbyquaker 2023-01-05 08:00:44.237 - info: host.iobroker hostname: iobroker, node: v16.19.0 2023-01-05 08:00:44.237 - info: host.iobroker ip addresses: 172.17.0.4 2023-01-05 08:00:46.287 - info: host.iobroker connected to Objects and States 2023-01-05 08:00:46.365 - info: host.iobroker added notifications configuration of host 2023-01-05 08:00:47.251 - info: host.iobroker Delete host system.host.7f5574fa2a98 2023-01-05 08:00:47.479 - info: host.iobroker Delete state "system.host.iobroker.versions.nodeCurrent" 2023-01-05 08:00:47.481 - info: host.iobroker 50 instances found 2023-01-05 08:00:47.506 - warn: host.iobroker does not start any instances on this host 2023-01-05 08:00:47.563 - info: host.iobroker Delete state "system.host.iobroker.versions.nodeNewest" 2023-01-05 08:00:47.615 - info: host.iobroker Delete state "system.host.iobroker.versions.nodeNewestNext" 2023-01-05 08:00:47.666 - info: host.iobroker Delete state "system.host.iobroker.versions.npmCurrent" 2023-01-05 08:00:47.718 - info: host.iobroker Delete state "system.host.iobroker.versions.npmNewest" 2023-01-05 08:00:47.769 - info: host.iobroker Delete state "system.host.iobroker.versions.npmNewestNext" 2023-01-05 08:00:47.821 - info: host.iobroker Some obsolete host states deleted. 2023-01-05 09:03:15.119 - info: host.iobroker received SIGTERM 2023-01-05 09:03:15.153 - info: host.iobroker terminated 2023-01-05 09:04:49.311 - info: host.iobroker iobroker.js-controller version 4.0.23 js-controller starting 2023-01-05 09:04:49.317 - info: host.iobroker Copyright (c) 2014-2022 bluefox, 2014 hobbyquaker 2023-01-05 09:04:49.318 - info: host.iobroker hostname: iobroker, node: v16.19.0 2023-01-05 09:04:49.319 - info: host.iobroker ip addresses: 172.17.0.4 2023-01-05 09:04:51.374 - info: host.iobroker connected to Objects and States 2023-01-05 09:04:51.456 - info: host.iobroker added notifications configuration of host 2023-01-05 09:04:52.408 - info: host.iobroker 50 instances found 2023-01-05 09:04:52.427 - warn: host.iobroker does not start any instances on this host
Ansonsten nix. Bei einem Blick in iobroker list instances fällt dann auf, dass er zigbee.0 listet, aber laut Log nur bis web.1 kommt und dann dort verharrt.
system.adapter.web.0 : web : 7f5574fa2a98 - disabled, port: 8082, bind: 0.0.0.0, run as: admin system.adapter.web.1 : web : 7f5574fa2a98 - disabled, port: 8083, bind: 0.0.0.0, run as: admin system.adapter.zigbee.0 : zigbee : 7f5574fa2a98 - disabled, port: /dev/ttyUSB0 + instance is alive
Sollte ich mal das zigbee.0 Backup wiederherstellen (geht das über iob restore)? Oder umgekehrt: Den Adapter löschen und nach einem erfolgreichen Start über die Weboberfläche wieder installieren?
-
-
@clfberlin sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
habe ich darin das letzte *_backupiobroker.tar.gz abgelegt.
host.iobroker check instance "system.adapter.web.0" for host "7f5574fa2a98"
warn: host.iobroker does not start any instances on this host
und dann im Terminal
pkill -u iobroker iobroker host this
Container danach neu starten
-
-
@glasfaser
Ah, der Hostname. Verstanden.
So hat dann auch der Erststart funktioniert. Adapter kamen nach und nach. Zigbee noch auf 1.8.9 (das Backup war noch vor dem Update). Und Hosts ist hier auch noch auf 4.0.23.Vor dem Start der Instanzen habe ich dann noch die anderen Backups in das Verzeichnis kopiert. Also javascripts, jarvis und zigbee.
Danach habe ich die Instanzen gestartet. Spannung bei Zigbee.0 - aber nach kurzer Wartezeit erschienen die Devices (Stand: Backup).Soweit hat alles prima geklappt - vielen Dank!
Eine größere Herausforderung ist nun noch:
-
Es fehlen die Visualisierungen (File index.html not found: {} bei Runtime und Editor)
Intuitiv würde ich ja sagen: Die kopiere ich via File Station vom Ordner-alt in Ordner-neu. Also vor allem Dateien in /iobroker-data/files/vis. Aber André warnte ja vor Rumkopiererei. Daher die Frage: Dateien kopieren? Oder gibt es einen anderen Weg? -
Es fehlen Bilder Icons (in der Menüleiste z.B. die Icons für die Shortcuts Skripte, Zigbee, Kommandos und Homebridge. Sowie auf der VIS Einstiegsseite die Logos für Runtime und Editor. Oder in Bildpfaden:
/adapter/javascript/javascript.png
/adapter/zigbee/zigbee.png
/adapter/text2command/text2command.png
/adapter/ham/ham.png
Diese PNGs scheinen aber physisch vorzuliegen, zumindest (Beispiel HAM:) in r/iobroker-data/files/ham.admin/ham.png und in /node_modules/iobroker.ham/admin/ham.png.
Ich mache erst einmal Backups und bringe dann Hosts auf den aktuellen Stand.
-
-
@clfberlin sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
fehlen die Visualisierungen (File index.html not found: {} bei Runtime und Editor)
hierzu ..
https://forum.iobroker.net/topic/61629/gelöst-system-adapter-vis-0-file-edit-html-not-found
Sorry ... vergaß , das im VIS ein Bug ist bei einer Restore
-
@clfberlin sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Vor dem Start der Instanzen habe ich dann noch die anderen Backups in das Verzeichnis kopiert. Also javascripts, jarvis und zigbee.
Welche anderen ... ist doch alles im Backup enthalten !?
-
Welche anderen ... ist doch alles im Backup enthalten !?
Ah, ich erstelle mit jedem Backup eine
- iobroker_backupiobroker.tar.gz sowie
- jarvis.0_backupiobroker.tar.gz
- javascripts.0_backupiobroker.tar.gz
- zigbee.0_backupiobroker.tar.gz
Die iobroker enthält bereits die drei anderen? War mir gar nicht klar.
Sorry ... vergaß , das im VIS ein Bug ist bei einer Restore
Ah, danke - in der Tat begann er nach install adapter vis@1.4.0 die Dateien nochmal rüber zu holen.
VIS ist jetzt wieder auf 1.4.15 und läuft. Und die Icons hat er dann auch irgendwann selbst wieder entdeckt.
Soweit, so gut. Bis zum letzten Schritt sah alles prima aus. Aber jetzt bin ich wieder bei dem Problem, das mein Fiasko mit der alten Umgebung eingeleitet hatte:
Nach dem Update des Zigbee-Adapters auf 1.8.10 fehlen dort jetzt alle Geräte (die vor dem Update noch zu sehen waren).Neustart der Instanz: Keine Änderung
Neustart des Containers: Keine Änderung
Nun der Versuch: Restore der zigbee.0_backupiobroker.tar.gz
Jetzt kommt beim Start der Zigbee-Konfigurationsseite nur noch die Fehlermeldung "You need save and run adapter before pairing!"Geschaut, ob /dev/ttyUSB0 zu sehen ist. Ja.
Nochmal USB aus- und eingesteckt.
Dann ist das passiert, wovor schon André gewarnt hatte (was bei mir aber vorher nie passiert war): Der Zigbee-Stick war plötzlich ttyUSB1. Nochmal aus- und eingesteckt. Dann wieder ttyUSB0.
Bringt aber alles nichts, Zigbee bleibt bei der Fehlermeldung.
Das ist wie bei der anderen Installation. Dort brachte kam er von einem iob fix Versuch in der Konsole anschließend nicht mehr wieder. Daher lasse ich das jetzt mal.Stand ist also:
Vor dem Update des Zigbee-Adapters alles ok
Nach dem Update auf 1.8.10 Verbindungsprobleme -
@clfberlin sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Jetzt kommt beim Start der Zigbee-Konfigurationsseite nur noch die Fehlermeldung "You need save and run adapter before pairing!"
Geschaut, ob /dev/ttyUSB0 zu sehen ist. Ja.
Nochmal USB aus- und eingesteckt.Der Stick wird auch bei dir erkannt , sonst hättest du so eine Meldung
Beispiel :
Starting zigbee-herdsman problem : "Error while opening serialport 'Error: Error: No such file or directory, cannot open
und nur damit :
Jetzt kommt beim Start der Zigbee-Konfigurationsseite nur noch die Fehlermeldung "You need save and run adapter before pairing!"
kann man nicht viel anfangen .
Daher jetzt eine bitte , da es jetzt allgemein im ioBroker Docker läuft und nichts mehr mit dem Thread zu tun hat ,
einen neuen Thread darüber zu eröffenen und da kann man dir weiterhelfen .
( vollständige Logausgabe beim Zigbee Adapterstart usw. ) -
Daher jetzt eine bitte , da es jetzt allgemein im ioBroker Docker läuft und nichts mehr mit dem Thread zu tun hat ,
einen neuen Thread darüber zu eröffenen und da kann man dir weiterhelfen .
( vollständige Logausgabe beim Zigbee Adapterstart usw. )
Danke! Habe es jetzt hier aufgemacht: https://forum.iobroker.net/topic/61747/problem-nach-update-auf-zigbee-1-18-10
Ich vermute aber tatsächlich ein Synology-spezifisches Problem. Denn er verliert scheinbar doch die Verbindung zum USB-Stick, obwohl die Instanz grün bleibt. Aber das habe ich alles unter oben genanntem Link geschrieben.
Merci und Grüße, clfberlin -
Hallo zusammen,
auch auf die Gefahr hin, eine passende Antwort in den mehr als 2.000 Kommentaren über mir übersehen zu haben, stelle ich meine Frage:
Aktuell habe ich die letzte Docker Version im Einsatz (gestern neu installiert).
Mein Host Status zeigt mir das hier an:
Ist es korrekt, dass "irgendwann" mal ein neues Image gebaut wird, dass dann auch den neuen js Controller enthält?Und habt ihr eine Lösung dafür, ob und wie man mitbekommt, wann auf Docker Hub ein neues Image verfügbar ist?
Danke euch
Henri -
@hennerich sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Ist es korrekt, dass "irgendwann" mal ein neues Image gebaut wird, dass dann auch den neuen js Controller enthält?
Das ist korrekt, Du kannst den js-Controller manuell updaten, u.a. hier: https://smarthome.buanet.de/2020/10/iobroker-docker-container-updates-upgrades/
beschrieben.pkill -u iobroker iobroker update iobroker upgrade self
Und habt ihr eine Lösung dafür, ob und wie man mitbekommt, wann auf Docker Hub ein neues Image verfügbar ist?
Ich habe dafür leider keine Lösung.
-
@hennerich Bei Github registrieren und diese Seite unter Watch beobachten: https://github.com/buanet/ioBroker.docker/releases
Oder dem Channel bei Dircord folgen: https://discord.com/channels/743167951875604501/890637548160946306 -
@hennerich sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Ist es korrekt, dass "irgendwann" mal ein neues Image gebaut wird, dass dann auch den neuen js Controller enthält?
Nicht irgendwann. Das Aktuelle Image hat bereits die aktuelle js-controller Version und sollte sie auch immer innerhalb eines Tages automatisch bekommen!
ABER: Das bringt dir nichts. Der js-controller befindet sich im ioBroker Ordner, den du hoffentlich aus dem Container heraus gemountet hast. Baust du jetzt einen neuen Container aus dem aktuellen Image, hängst du den Ordner wieder rein und deine js-controller Version bleibt wie sie ist. Steht auch alles in der Doku: https://docs.buanet.de/de/iobroker-docker-image/docs/#aktualisierung-update@hennerich sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Und habt ihr eine Lösung dafür, ob und wie man mitbekommt, wann auf Docker Hub ein neues Image verfügbar ist?
Entweder du abbonierst die Releases (dann bekommst du aber nur neue Releases mit) oder du schaust dir mal Watchtower an. Den kann man auch so betreiben, dass er nur prüft und informiert und nicht selbstständig updatet. Der reagiert dann auch darauf, wenn ein Image im selben release neu erstellt wurde.
Andere Alternative: Falls du Portainer benutzt ist vielleicht die Business Version interessant. Bis zu 5 Nodes kann man da kostenlos nutzen. Dort wird dir m.W. auch angezeigt, wenn es neue Versionen eines Images gibt.
MfG,
André -
@andre Dazu hätte ich direkt auch mal eine Frage, die aber die Docker-Container im Allgemeinen betrifft.
Wenn ich einen Docker-Container im bridge-Modus betreibe (also nicht über Portainer), dann ist es ja mitunter erforderlich, Ports freizugeben. Möchte ich für den Container nun ein neues Image erstellen, dann stoppe ich in der Regel das alte Image. Das Problem beim Neuanlegen ist nun aber, dass trotz des Stopps die Ports weiterhin blockiert sind. Ich muss also erst den alten Container löschen, bevor ich den neuen mit identischen Ports betreiben kann. Gibt es dafür einen Workaround?
Ich nutze absichtlich nicht den Portainer, weil es mir damit irgendwie nicht gelungen ist, meine nativ auf der DS laufende SQL-Datenbank (mariaDB) in den ioBroker einzubinden. Mir war das dann irgendwie zu müßig, so dass ich mich gegen den Portainer entschieden hatte. Zudem gab es auch hier und da Probleme, wenn ich ein bestehende Konfiguration ändern wollte.
Das Problem mit den Ports habe ich jetzt übrigens nicht beim ioBroker-Container, weil der bei mir im host-Modus läuft. Aber ich dachte mir, ich frag trotzdem mal.
-
@marc-berg sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Du kannst den js-Controller manuell updaten
Hierzu vielleicht noch ein kleiner Hinweis für diejenigen, den den Docker-Container direkt über die DS ausführen. Um die Terminal-Kommandos zum Killen des ioBrokers auszuführen, muss man eine neue bash öffnen. Dazu einfach auf "Erstellen" und dann auf die automtisch hinzugefügte "bash" klicken. Fertig.
Nach jedem Schließen des Fenstern verschwindet die bash wieder automatisch und muss dann ggf. erneut angelegt werden.
-
@dtp sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Wenn ich einen Docker-Container im bridge-Modus betreibe (also nicht über Portainer)
Das hat nichts miteinander zu tun! Portainer ist nur eine grafische Oberfläche für den Docker Dienst.
@dtp sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
dann ist es ja mitunter erforderlich, Ports freizugeben
Wenn du eine Container über ein Bridge Netzwerk betreibst, musst du die Ports, die von Außen erreichbar sein sollen freigeben.
@dtp sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Möchte ich für den Container nun ein neues Image erstellen, dann stoppe ich in der Regel das alte Image.
Du erstellst vermutlich Container und nicht Images. Images sind die Grundlage der Container. Aus einem Image kannst du beliebig viele Container starten.
@dtp sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
dass trotz des Stopps die Ports weiterhin blockiert sind.
Das mag sein. Habe ich noch nicht ausprobiert.
@dtp sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Gibt es dafür einen Workaround?
Wenn es wirklich so ist, denke ich nicht.
@dtp sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Ich nutze absichtlich nicht den Portainer, weil es mir damit irgendwie nicht gelungen ist, meine nativ auf der DS laufende SQL-Datenbank (mariaDB) in den ioBroker einzubinden.
Kann ich nicht nachvollziehen. Wenn du einen Container in einem Bridge Netzwerk laufen hast, dann ist der Host in der Regel das Gateway in diesem Netzwerk. Du solltest dich also über die Gateway-Adresse auf ein SQL DB die auf dem Host läuft verbinden können.
@dtp sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Zudem gab es auch hier und da Probleme, wenn ich ein bestehende Konfiguration ändern wollte.
Ja, die Web UI hat so ihre Tücken. Grundsätzlich gilt: Bestehende Container lassen sich nicht ändern, nur neu Anlegen (deswegen heißt der Button im Portainer auch "duplicate/ edit").
Schau dir mal Portainer Stacks aka docker-compose an. Das funktioniert besser als die WebUI.MfG,
André -
@dtp sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
@andre Dazu hätte ich direkt auch mal eine Frage, die aber die Docker-Container im Allgemeinen betrifft.
Wenn ich einen Docker-Container im bridge-Modus betreibe (also nicht über Portainer), dann ist es ja mitunter erforderlich, Ports freizugeben. Möchte ich für den Container nun ein neues Image erstellen, dann stoppe ich in der Regel das alte Image. Das Problem beim Neuanlegen ist nun aber, dass trotz des Stopps die Ports weiterhin blockiert sind. Ich muss also erst den alten Container löschen, bevor ich den neuen mit identischen Ports betreiben kann. Gibt es dafür einen Workaround?
Zeig mal bitte die Meldung, die besagt, dass die Ports belegt sein sollen. Das kann dann nur eine Synology Spezialität sein. In einer nativen Docker-Umgebung kann ich mehrere Container mit gleichen Portfreigaben anlegen, kann natürlich nur einen starten.
-
@marc-berg sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Das kann dann nur eine Synology Spezialität sein
Ist so ...
-
@codierknecht
Eine Google-Suche ergibt, dass du auf der Synology wohl nicht allein mit dem Problem bist.Was spricht dagegen, den Container vorher zu löschen?
-
@marc-berg sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Eine Google-Suche ergibt, dass du auf der Synology wohl nicht allein mit dem Problem bist.
Mir ist das völlig Wumpe. Aber @dtp dürfte das sicher interessieren