NEWS
[HowTo] ioBroker unter Docker auf Synology DiskStation
-
@Bongo sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Für V3 heißt es in der Anleitung von Andre „Mit dem Bridged Mode hingegen kann man als Einsteiger nicht viel falsch machen. Allerdings muss hierbei jeder benötigte (Kommunikations-)Port separat als Weiterleitung im Container eingetragen sein.“.
Bisher bin ich mit dem Host-Modus ausgekommen. Obwohl es ja nicht funktionieren soll. Oder gilt das nur für die V3?
Das gilt nur für die V3.
Jedenfalls fühle ich mich als Netzwerk-Einsteiger und würde es mit dem Bridge-Mode versuchen. Aber in der Anleitung wird der Bridge-Mode vernachlässigt. Wo muss man in Portainer die Ports konfigurieren? Muss man unbedingt neue Ports definieren? Hatte bisher ja auch keine Probleme.
Kann vielleicht jemand kurz die Konfiguration des Bridge-Mode erklären?
Wie André schon schreibt, muss jeder Port der benötigt wird für deinen Container, auf einen Port nach "aussen" gelegt werden.
Du hast ja im Bridgemodus nicht mehr eine 192.168.x.x Adresse in Deinem Netzwerk, sondern eine 172.17.0.x (in meinem Fall), somit kannst Du von einem Laptop bzw anderen PC da nicht drauf zugreifen, da es die IP-Adresse in Deinem Netzwerk so nicht gibt. Dies übernimmt Docker für Dich.
Jetzt brauchst Du für ioBroker den Port 8081 und für die vis 8082 als Beispiel.
Da kommt jetzt das Portmapping ins Spiel.
Du musst Deinem Container sagen, auf welchen Port er ausserhalb hören soll und wohin er intern leiten soll.
Beispiel:
Deine DS hat 192.168.0.1
Jetzt machst Du ein Portmapping des Ports 12333 auf intern 8081 und 12334 auf 8082.
Dies kannst Du in Deinem Container unter EDIT - Ports Configuration - Port mapping machen:
Vorne den host lässt Du mit 0.0.0.0 stehen, der nimmt sich dann automatisch die IP Deiner DS.
Wenn Du jetzt Deine DS mit http://192.168.0.1:12333 aufrufst, dann leitet der in den Dockercontainer auf die 8081 weiter und Du siehst die Adminseite vom ioBroker.Dies hat den Vorteil, dass Du auch mehrere ioBrocker-Container zB zum testen fahren kannst, ohne das sich die Ports behindern, denn Du vergibst ja "freie" Ports.
Du kannst natürlich nicht den Port 5000 benutzen, den braucht die DS selber oder diverse andere, die eventuell Pakete auf der DS benutzen.Wie Du siehst, im Grunde ganz simple
-
@tugsi
Danke, das bringt mich schon mal weiter.
Habe nun auch das Port mapping in Portainer gefunden. Die Umleitung von 8081 und 8082 im Bridge-Mode funktioniert dank deiner Hardcopy.
Aber Homematic macht Probleme. Es werden Statusänderungen in ioBroker an Homematic-Geräte übertragen aber der umgekehrte Weg wenn zum Beispiel ein Homematic-Lichtschalter getätigt wird, wird der Status nicht in ioBroker übertragen.
Das hängt natürlich/vermutlich mit den Ports zusammen. Aber ich checke das nicht.
Hier mein Port mapping:
Und die Einstellung im Adapter:
Vielleicht kann noch ein Homematicer helfen. -
Ist vielleicht zu diesem Zeitpunkt eine ziemlich dämliche Frage, aber wo liegen eigentlich die Vorteile der Version 3 mit MACVLAN gegenüber der Version 2 mit node v8.16.0?
-
Sagt mal, funktionieren bei euch die hm-rpc-Instanzen? Bei mir werden sie irgendwie nicht aktualisiert.
-
-
@dtp sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Sagt mal, funktionieren bei euch die hm-rpc-Instanzen? Bei mir werden sie irgendwie nicht aktualisiert.
Willkommen im Club. Ich komme auch nicht klar:
@Bongo sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:Ich bin davon ausgegangen, das es ein Unvermögen meinerseits ist. Jedenfalls konnte ich bisher keine für mich hilfreiche Info finden.
Es wäre gut zu wissen ob es überhaupt mit Homematic-Adapter funktioniert. In meinem Fall im Bridge-Mode.
Gibt es Jemanden, der eine funktionierende Homematic Umgebung betreibt? Oder gibt es definitive Erkenntnisse, dass es in einem bestimmten Mode nicht funktioniert?
-
@Bongo
bei mir funktioniert es. aktuell mit macvlan via eth1 (zweites Netzwerkkabel und zweite ip an der DS)
Vorher war ich im Host Modus (auch mit dem aktuellen V3 Container) ging auch.Ich musste jetzt immer nur in den rpc Instanzen die "richtige IP" auswählen, vorher lief es immer mit "auf alle ip horchen"
-
@dslraser: Ich habe jetzt mal die Callback-IP in den hm-rpc-Instanzen auf die IP-Adresse des ioBroker-Admin gesetzt. Das scheint das Problem gelöst zu haben. Mal sehen.
-
@dtp
welcher Netzwerkmodus läuft bei Dir ?
(Host, Bridge oder macvlan ?) -
@dtp sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
@dslraser: Ich habe jetzt mal die Callback-IP in den hm-rpc-Instanzen auf die IP-Adresse des ioBroker-Admin gesetzt. Das scheint das Problem gelöst zu haben. Mal sehen.
Hatte mal meine drei Thermostate angeschaut und gesehen, dass die auch nicht mehr aktualisiert wurden, ist mir gar nicht aufgefallen.
Einiges ausprobiert und auch die Objekte mal gelöscht, aber es wurden keine Thermostate mehr gefunden.
Erst als ich gerade die IP meines Containers (MACVLAN) als Callback angegeben habe, wurden die Objekte wieder neu angelegt und aktualisiert -
@dslraser sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
welcher Netzwerkmodus läuft bei Dir ?
MACVLAN
-
Ihr seid die Profis und benutzt MACVLAN
Mit Bridge bekomme ich es nicht am Laufen. hm-rpc.1 läuft zwar aber ich bekomme keine Rückmeldung von den Geräten.
Bei hm-rpc.0 kommt:hm-rpc.0 2019-06-04 16:44:30.055 error init error: Error: response timeout hm-rpc.0 2019-06-04 16:44:25.046 info binrpc client is trying to connect to 192.168.178.22:2001/ with ["xmlrpc_bin://192.168.178.14:12001","hm-rpc.0"] hm-rpc.0 2019-06-04 16:44:25.046 info binrpc server is trying to listen on 192.168.178.14:12001 hm-rpc.0 2019-06-04 16:44:24.763 info starting. Version 1.9.11 in /opt/iobroker/node_modules/iobroker.hm-rpc, node: v8.16.0
Ich habe jetzt noch versucht die V3 im Host-Modus zu installieren. Funktioniert!
Es sollte ja eigentlich wegen eines Fehlers im DSM-Kernels nicht funktionieren. Was war da das genaue Problem? Besteht das Problem nicht mehr? Oder kann es bei bestimmten Konstellationen noch kommen? -
@dslraser
Wenn ich jetzt noch den JS-Controller updaten möchte, reicht da einfach dies zu machen?cd /opt/iobroker npm rebuild
Mit
sudo mv reinstall.sh reinstall.dos sudo tr -d '\r' < reinstall.dos > reinstall.sh sudo chmod +x reinstall.sh sudo ./reinstall.sh
hast du ja wenn ich es richtig sehe, zuerst die reinstall.sh in reinstall.dos umgewandelt, dann wieder retour um linuxtauglich zu sein.
Also sind die 4 Zeilen nicht zu machen?
Einnpm rebuild
reicht um den JS-Controller upzudaten? -
@Negalein
ich habe es damit gemacht.sudo mv reinstall.sh reinstall.dos sudo tr -d '\r' < reinstall.dos > reinstall.sh sudo chmod +x reinstall.sh sudo ./reinstall.sh
-
@dslraser sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
ich habe es damit gemacht.
Dann mach ich es auch damit
-
@Negalein
dauert aber ne Weile... -
@dslraser sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
ich habe es damit gemacht.
Ich hoffe, ein reinstall ist nicht bei jedem Update des js-controllers unter der Version 3 des ioBroker-Docker-Containers notwendig. Unter der Version 2 genügte mir im laufenden Betrieb immer ein "iobroker update iobroker upgrade self" und binnen einer Minute war die Sache erledigt. Ich brauchte den ioBroker nicht mal dafür zu stoppen. Lediglich ein Neustart des Containers war am Ende notwendig.
Nachdem ich bei mir den oben beschriebenen reinstall durchführte (was eigentlich nicht unbedingt notwendig war, weil ich auch schon unter der Version 2 node v8.16.0 laufen hatte), gab es plötzlich das Problem, dass meine tr-064-Instanz (für die FRITZ!Box) nur noch Fehlermeldungen produzierte. Hab dann das update des js-controllers unter der Version 2 durchgeführt und das Verzeichnis wieder neu in Version 3 gemountet. Das soll aber natürlich keine Dauerlösung sein.
-
https://forum.iobroker.net/topic/22803/js-controller-1-5-11-ab-sofort-im-stable-repository
Known Issues:
Beim Testen gab es Feedbacks das der tr-064 Adapter nach der Installation des neuen js-controllers nicht mehr funktioniert. Das liegt nicht am controller, sondern daran das npm irgendwie Module manchmal umsortiert. Bei vielen Usern half ein "npm install soef" im ioBroker Verzeichnis. Wenn nicht finden wir im Forum bestimmt eine Lösung. Die Alternative ist die neue Community Version des tr-064 Adapters (siehe https://forum.iobroker.net/topic/22782/aufruf-test-community-version-vom-tr-064-adapter).
Von folgenden Adaptern gelten Minimalversionen: javascript >= 3.6.5, dasWetter >= 2.7.1, upnp >= 1.0.4npm i soef --production --prefix /opt/iobroker/node_modules/iobroker.tr-064
-
startet dein Container normal nach dem obigen Update?
Ich kann ihn nicht mehr automatisch starten.
-
@Negalein
Ich bin jetzt kein "gutes Update Beispiel" mehr.Ich habe mir zuerst für den Notfall alles gesichert.
Nun habe ich mir die Mühe gemacht mal einen komplett neuen V3 Container zu erstellen (den alten gibt es auch noch...umbenannt in iobroker_alt)Danach habe ich alle Adapter im neuen ioBroker einzeln installiert (vorher auch ein neues mount Verzeichnis) Bei den meisten Adaptern konnte ich die Einstellungen aus der alten Installation exportieren, da wo nicht, habe ich Screenshots gemacht.
Mein iobroker Container lief schon von den ersten Tagen an und wurde immer upgedatet usw...(und viel ausprobiert)
Jetzt wollte ich mal einen komplett sauberen haben.
Erstaunliches Ergebnis zeigt das Backup.Alte Installation - Backup über 500 MB
Neue Installation - Backup ca 120 MBAlso war da schon viel "Müll" im alten.
Nun habe ich macvlan auf eth1 mit zweitem Netzwerkkabel.
Alles läuft Top und auch schneller als bisher. Auch das Backup Script von @andre läuft durch und der Container samt ioBroker startet automatisch neu.jscontroller ist auf 1.5.12