NEWS
[HowTo] ioBroker unter Docker auf Synology DiskStation
-
@Troya Da scheint in was mit dem npm Paket "which" nicht zu stimmen. Vielleicht hilft ein "npm rebuild" innerhalb des iobroker-ordners. Aber Achtung, das könnte etwas Zeit in Anspruch nehmen...
Vielleicht reicht auch schon ein "npm install which". Bin da aber kein Spezi...MfG,
André -
@dos1973 Hast du mal den Threat durchsucht? Da gab's hier mal was mit ner Datei die gelöscht/ geändert werden muss.... Meine das hätte ich hier gelesen.
MfG,
André -
@dos1973 sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
ich hatte Netz config (/29) angelegt, das erlaubt mir 6 Hosts - geht aber nicht?!?
Das ist eigentlich der richtige Weg. Wie war deine Konfig? Bei mir läuft es so... Wenn die Container sich nicht erreichen können, dann kannst du die beiden Container noch zusätzlich in ein bridge Netzwerk hängen. Über das zweite Netz können Sie dann untereinander kommunizieren...
MfG,
André -
mit tatkräftiger Unterstützung von @duffbeer2000 und einer Teamviewer Session haben wir es hinbekommen.
Die Datei muss gelöscht werden. Damit werde alle container und Netze entfernt
/volume1/@docker/network/files/local-kv.db
Danke @duffbeer2000 !
-
@andre
Ja, nachdem es richtig konfiguriert und eingestellt ist, klappt es mit mehreren Clients im macvlan. Alle sehen sich ... -
@andre
Danke, habs ausprobiert.
Leider weiterhin der gleich Fehler bei Zwave, die Befehle geben auch Fehler aus:npm rebuild:
/home/iobroker/.cache/node-gyp/10.17.0/include/node/v8config.h:324:3: note: in definition of macro ‘V8_DEPRECATED’ declarator __attribute__((deprecated(message))) ^~~~~~~~~~ binding.target.mk:103: die Regel für Ziel „Release/obj.target/binding/src/BluetoothHciSocket.o“ scheiterte make: *** [Release/obj.target/binding/src/BluetoothHciSocket.o] Fehler 1 make: Verzeichnis „/opt/iobroker/node_modules/bluetooth-hci-socket/build“ wird verlassen gyp ERR! build error gyp ERR! stack Error: `make` failed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:193:23) gyp ERR! stack at ChildProcess.emit (events.js:198:13) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12) gyp ERR! System Linux 4.4.59+ gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" gyp ERR! cwd /opt/iobroker/node_modules/bluetooth-hci-socket gyp ERR! node -v v10.17.0 gyp ERR! node-gyp -v v5.0.3 gyp ERR! not ok npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! bluetooth-hci-socket@0.5.1 install: `node-gyp rebuild` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the bluetooth-hci-socket@0.5.1 install script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! /home/iobroker/.npm/_logs/2019-11-28T21_07_10_391Z-debug.log
npm install which:
root@iobroker:/opt/iobroker# npm install which npm WARN enoent ENOENT: no such file or directory, open '/opt/iobroker/node_modules/iobroker.radar/package.json' npm ERR! Maximum call stack size exceeded npm ERR! A complete log of this run can be found in:
Scheint auch irgendwas mit dem Radar und/oder bluetooth Adapter zu sein oder? Habe die beiden eben deinstalliert...moment, ich starte iobroker neu...ne hat auch nicht gefruchtet...moment...habe nochmal"npm rebuild which" (irgendwie aus dem kopf falsch erinnert, hoffe hab nichts kaputt gemacht)ausgeführt:
root@iobroker:/opt/iobroker# npm rebuild which which@1.3.1 /opt/iobroker/node_modules/iobroker.chromecast/node_modules/which which@1.3.1 /opt/iobroker/node_modules/which
Jetzt lief die Installation durch!
Leider startet die Instanz nicht(ich meine so sah auch der Fehler aus wenn ich den Zwave Adapter direkt aus dem "alten" Backup starte):
host.iobroker 2019-11-28 22:26:29.353 info "system.adapter.zwave.0" disabled host.iobroker 2019-11-28 22:26:13.947 info Restart adapter system.adapter.zwave.0 because enabled host.iobroker 2019-11-28 22:26:13.947 info instance system.adapter.zwave.0 terminated with code 0 (NO_ERROR) host.iobroker 2019-11-28 22:26:13.947 error Caught by controller[0]: at Module.load (internal/modules/cjs/loader.js:653:32) host.iobroker 2019-11-28 22:26:13.947 error Caught by controller[0]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10) host.iobroker 2019-11-28 22:26:13.947 error Caught by controller[0]: at Module._compile (internal/modules/cjs/loader.js:778:30) host.iobroker 2019-11-28 22:26:13.946 error Caught by controller[0]: at Object.<anonymous> (/opt/iobroker/node_modules/iobroker.zwave/node_modules/openzwave-shared/lib/openzwave-shared.js:27:19) host.iobroker 2019-11-28 22:26:13.946 error Caught by controller[0]: at require (internal/modules/cjs/helpers.js:25:18) host.iobroker 2019-11-28 22:26:13.946 error Caught by controller[0]: at Module.require (internal/modules/cjs/loader.js:692:17) host.iobroker 2019-11-28 22:26:13.946 error Caught by controller[0]: at Function.Module._load (internal/modules/cjs/loader.js:585:3) host.iobroker 2019-11-28 22:26:13.946 error Caught by controller[0]: at tryModuleLoad (internal/modules/cjs/loader.js:593:12) host.iobroker 2019-11-28 22:26:13.946 error Caught by controller[0]: at Module.load (internal/modules/cjs/loader.js:653:32) host.iobroker 2019-11-28 22:26:13.945 error Caught by controller[0]: at Object.Module._extensions..node (internal/modules/cjs/loader.js:807:18) host.iobroker 2019-11-28 22:26:13.945 error Caught by controller[0]: Error: libopenzwave.so.1.6: cannot open shared object file: No such file or directory zwave.0 2019-11-28 22:26:13.434 info (820) Terminated (NO_ERROR): Without reason zwave.0 2019-11-28 22:26:13.433 info (820) terminating zwave.0 2019-11-28 22:26:13.403 error at Module.load (internal/modules/cjs/loader.js:653:32) zwave.0 2019-11-28 22:26:13.403 error at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10) zwave.0 2019-11-28 22:26:13.403 error at Module._compile (internal/modules/cjs/loader.js:778:30) zwave.0 2019-11-28 22:26:13.403 error at Object.<anonymous> (/opt/iobroker/node_modules/iobroker.zwave/node_modules/openzwave-shared/lib/openzwave-shared.js:27:19) zwave.0 2019-11-28 22:26:13.403 error at require (internal/modules/cjs/helpers.js:25:18) zwave.0 2019-11-28 22:26:13.403 error at Module.require (internal/modules/cjs/loader.js:692:17) zwave.0 2019-11-28 22:26:13.403 error at Function.Module._load (internal/modules/cjs/loader.js:585:3) zwave.0 2019-11-28 22:26:13.403 error at tryModuleLoad (internal/modules/cjs/loader.js:593:12) zwave.0 2019-11-28 22:26:13.403 error at Module.load (internal/modules/cjs/loader.js:653:32) zwave.0 2019-11-28 22:26:13.403 error at Object.Module._extensions..node (internal/modules/cjs/loader.js:807:18) zwave.0 2019-11-28 22:26:13.403 error (820) Error: libopenzwave.so.1.6: cannot open shared object file: No such file or directory zwave.0 2019-11-28 22:26:13.402 error (820) uncaught exception: libopenzwave.so.1.6: cannot open shared object file: No such file or directory zwave.0 2019-11-28 22:26:13.244 info (820) starting. Version 1.7.0 in /opt/iobroker/node_modules/iobroker.zwave, node: v10.17.0 host.iobroker 2019-11-28 22:26:10.671 info instance system.adapter.zwave.0 started with pid 820
Nachtrag1:
Der Fehler soll mit ldconfig behoben werden laut Known issuesEs passiert aber nichts:
root@iobroker:/opt/iobroker# sudo ldconfig root@iobroker:/opt/iobroker# sudo ldconfig /usr/local root@iobroker:/opt/iobroker# sudo ldconfig /usr/local/lib64 root@iobroker:/opt/iobroker# root@iobroker:/opt/iobroker# sudo ldconfig -v ldconfig: Kann »stat()« für »/usr/local/lib64« nicht aufrufen: Datei oder Verzeichnis nicht gefunden ldconfig: Pfad »/lib/x86_64-linux-gnu« mehrfach angegeben ldconfig: Pfad »/usr/lib/x86_64-linux-gnu« mehrfach angegeben /usr/lib/x86_64-linux-gnu/libfakeroot: libfakeroot-0.so -> libfakeroot-tcp.so /usr/local/lib: ldconfig: Es ist nicht möglich, den Status (stat()) der Datei /usr/local/lib/libopenzwave.so zu lesen: Datei oder Verzeichnis nicht gefunden /lib/x86_64-linux-gnu: libglib-2.0.so.0 -> libglib-2.0.so.0.5000.3 [...] libSegFault.so -> libSegFault.so libBrokenLocale.so.1 -> libBrokenLocale-2.24.so ldconfig: /lib/x86_64-linux-gnu/ld-2.24.so is the dynamic linker, ignoring ld-linux-x86-64.so.2 -> ld-2.24.so /usr/lib/x86_64-linux-gnu: libpython2.7.so.1.0 -> libpython2.7.so.1.0 [...] libapt-pkg.so.5.0 -> libapt-pkg.so.5.0.1 /lib: /usr/lib: root@iobroker:/opt/iobroker#
probiere gleich das nochmal
Nachtrag 2:
Hat leider nicht geholfen den Zwave und openzwave ordner zu löschen und danach das zu machen.auch ein anschließendes "sudo ldconfig" verhält sich wie oben...
Nachtrag 3:
Habe im ioBroker nochmals die Instanz und den Adapter gelöscht und neu installiert.
Jetzt bin ich weiter und es heißt nur noch:host.iobroker 2019-11-29 10:29:55.190 info Do not restart adapter system.adapter.zwave.0 because desired by instance host.iobroker 2019-11-29 10:29:55.189 error instance system.adapter.zwave.0 terminated by request of the instance itself and will not be restarted, before user restarts it. zwave.0 2019-11-29 10:29:54.676 info (848) Terminated (ADAPTER_REQUESTED_TERMINATION): failed to start driver zwave.0 2019-11-29 10:29:54.675 error (848) failed to start driver host.iobroker 2019-11-29 10:29:41.500 info instance system.adapter.zwave.0 started with pid 848
Vermute der Aeotec-USB-Dongle wird nicht richtig durchgereicht?!
Nachtrag 4:
Es waren wohl zu wenig Berechtigungen auf dem /dev/ttyACM0 im Container:root@iobroker:/dev# ls -l /dev/ttyACM* crw------- 1 root root 166, 0 Nov 29 13:19 /dev/ttyACM0 root@iobroker:/dev# chmod 777 /dev/ttyACM0 root@iobroker:/dev# ls -l /dev/ttyACM* crwxrwxrwx 1 root root 166, 0 Nov 29 13:19 /dev/ttyACM0
nach einem Neustart der Zwave-Instanz flattern nun endlich die Nodes rein! und Zwave wird grün
Allerdings bleibt chmod 777 /dev/ttyACM0 nach dem neustart nicht erhalten...
Nachtrag 5:
Puh, ich glaub jetzt habe ichs. Der GitHub-Beitrag löst das Problem mit Zwave & den Berechtigungen bzgl. ttyACM0.
Es gibt aktuell die 4.0.1beta die das Problem behebt.Falls @andre das liest, ich habe auch die 4.0.1beta laufen und berichte bei Fehlern.
Gruß Daniel
-
Seit dem Umstieg auf die V4 werden bei mir die Abfragen auf die Astrozeit nur noch in 12h angezeigt? Wie kann ich das wieder ändern? Im den Umgebungsvariabeln vom Docker sind die richtigen Daten eingetragen...
-
Hallo zusammen,
ich suche schon eine Weile, bin aber langsam am verzweifeln. Ich nutze IObroker im Docker auf meiner Synology Disk Station im Bridge Netzwerk. Nun kriege ich mit dem UPnP Adapter leider keine Daten, da die Audio Station scheinbar den UDP-Port 1900 belegt und ich die Ports nicht weiterleiten kann.
Gibt es dafür irgendeine brauchbare Lösung?
-
@Snapergy macvlan - dann hat der Container eine IP für sich.
-
kann ich das einfach noch so ändern oder muss ich dazu alles neu aufsetzen?
-
Ja, Deine iobroker Daten bleiben und können weiter verwendet werden, trotzdem Backup machen!!
-
also nochmal einen neuen container aufsetzen mit dem verweis auf den "alten" datenordner oder kann ich den aktuellen container anpassen? Bei zweiterem, kann ich einfach die anleitung buanet nutzen?
-
Die Anleitung von buanet funktioniert mit deinen bisherigen iobroker daten. Ob ein „Umbau“ geht weiß ich nicht.
-
Gibt es vielleicht jemanden, der weiß ob ein "Umbau" geht?
-
du kannst das Netzwerk Interface eines Docker Containers wechseln. Fahre den Container runter und wechsele dann auf der Synology in der Docker Anwendung das Interface. Anschließend ioBroker wieder hochfahren.
Bevor du das tust, ändere in deinen iobBroker Adaptern wir z.B. Admin die Listener Adresse zu 0.0.0.0 . Sonst kannst du den Adapter später nicht erreichen.
Mein ioBroker Docker Container hat 2 MACVLAN Adressen aus unterschiedlichen Netzen (VLANs). In den einen Netz hängen alle Smarthome Geräte und kommen nicht mehr in das Internet, das ich nicht allen Herstellern über den Weg traue.VG
Stuebi -
danke für deine Antwort, dh. Macvlan mittels anleitung einreichten, cointainer runterfahren, netzwerk interface auf macvlan ändern, container hochfahren und anschließend in den iobroker adaptern (alle?) die Listener Adresse ändern?
-
@Snapergy sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
danke für deine Antwort, dh. Macvlan mittels anleitung einreichten, cointainer runterfahren, netzwerk interface auf macvlan ändern, container hochfahren und anschließend in den iobroker adaptern (alle?) die Listener Adresse ändern?
Du könntest auch einfach den einen Container (den im Bridge-Mode) beenden und einen weiteren mit macvlan starten. Somit kannst du ach immer wieder zum alten Zustand zurück - wichtig ist nur das von Stuebi angesprochenen bzgl. Listener-Config vom admin.0 auf 0.0.0.0. Wenn das vergessen wurde kann man das aber auch über die Shell konfigurieren.
@Stuebi sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Mein ioBroker Docker Container hat 2 MACVLAN Adressen aus unterschiedlichen Netzen (VLANs). In den einen Netz hängen alle Smarthome Geräte und kommen nicht mehr in das Internet, das ich nicht allen Herstellern über den Weg traue.
Kannst du dazu etwas mehr sagen?
-
Ein zweiter Container, der auf die gleichen Datenordner zugreift? Sorry für die vielen Fragen, aber gerade bei der Docker-Geschichte bin ich noch nicht ganz firm. Habe ich dann zwei Iobroker Instanzen laufen? Wie unterscheide ich dann auf welche ich zugreife?
-
@Snapergy , es gibt hier 1000 verschiedene Wege. Du kannst z.B. dein ioBroker Verzeichnis auf der Synolgy welches in dem docker Container gemounted wird kopieren. Dann fährst du den alten Container runter und startest den neuen Container mit mount auf das eben kopierte Verzeichnis. Wenn alles klappt, super, sonst nimmst du wieder den alten Container.
-
Die Kopie mache ich aber eigentlich nur aus Backup-Zwecken, damit ich wieder schnell in den Bridge zurückwechseln könnte. Eigentlich kann ich den neuen Container auch auf meinem ursprünglichen mounten?
Meine Problem ist, dass ich einige Prozesse habe, die auf mein gemountetes Verzeichnis aufsetzen (Backup, etc.), die ich ungern anpassen möchte, deshalb würde ich gerne das ursprüngliche Verzeichnis (bzw. dessen Namen) beibehalten. Sollte der neue Container mit Macvlan nicht funktionieren, kann ich ja der Kopie wieder den ursprünglichen Namen geben und den alten Container starten. So sollte es doch meines Erachtens nach gehen, oder?