NEWS
[HowTo] ioBroker unter Docker auf Synology DiskStation
-
In einem Forum habe ich gelesen, dass man bei dem "dashbutton-Problem" folgenden Befehl ausführen soll:
root@z-iobroker-beta:/usr/bin# sudo setcap 'cap_net_raw,cap_net_admin+eip' $(readlink -f $(which node)) sudo: Hostname z-iobroker-beta kann nicht aufgelöst werden Failed to set capabilities on file `/usr/bin/node' (Operation not supported) The value of the capability argument is not permitted for a file. Or the file is not a regular (non-symlink) file root@z-iobroker-beta:/usr/bin#
Wenn ich mit der neuen Meldung weiter google komme ich auf 2 Einträge die sich auf das Filesystem beziehen:
- https://serverfault.com/questions/665709/allowing-node-js-applications-to-run-on-port-80
- https://serverfault.com/questions/801037/allowing-node-js-applications-to-run-libpcap-without-sudo-symlink-issue
Damit bin ich mit meinem Latein am Ende
Magisch ist auch, dass der getcap-Befehl unter meinem V2-Docker gar nicht vorhanden ist.
Werde es die Tage vielleicht nochmal mit einem leeren Container ohne migrierte Daten versuchen.Gruß, Ralf
-
@rostnagel sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
okay, soweit klar
ist es normal nicht so wenn in das feld etwas eintippe das dann vorschläge kommen? bei mir kommt da nix. d.h. ich muss die genaue bezeichnung vom image wissen bzw die version.
Ja, du musst die genaue Version wissen. Es sei denn du hast das Image vorher schon herunter geladen, dann bekommst du in dem Feld auch Vorschläge...
jap, die zusätzlichen treiber und BT geschichten hatte ich schon installiert
habe aber keinen zugriff auf den BT stick.unter V2 hat es gereicht den container mit hoher priorität laufen zu lassen...
schade..Das sollte auch unter V3 genauso funktionieren. Da hat sich nichts geändert. Kannst du denn den Bluetooth Stick über die Kommandozeile im Container sehen?
MfG,
André -
Zur installation von zusätzlichen Linux Paketen könnt ihr auch eine Umgebungsvariable benutzen. in diesem Fall die Variable "PACKAGES" (Siehe hier). Die manuelle Installatation innerhalb eines Containers ist kein guter Weg, da du diesen Schritt immer wiederholen musst, wenn du einen neuen Container erstellst...
@Holzlenkrad sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Ach so, hier hieß es schon ein paar Mal, dass der Kernel der Diskstation einen Bug in Verbindung mit dem Netmode host hat.
Das ist korrekt, allerdings habe ich im aktuellen Beta (v3.0.2) dazu was getan. Dort sollte der "Host-mode" wieder funktionieren.
sudo setcap 'cap_net_raw,cap_net_admin+eip' $(readlink -f $(which node))
Sollte im aktuellen Beta nicht funktionieren, da das Image statt "sudo" den Befehl "gosu" verwendet.
Capabilities wie "NET_ADMIN" oder "NET_RAW" sollten/ müssen bei Bedarf auch in den erweiterten Container-Einstellungen gesetzt werden. Geht allerdings nur im Portainer:
MfG,
André -
@dbathlon sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
NTBA_FIX_319
Ich bezweifle dass diese ENV in meinem Image irgendeine Auswirkung hat, da ich sie nicht definiert habe.
Soweit ich das sehe kommt die Fehlermeldung vom Adapter und ist aktuell nur ein Hinweis dass das "Automatic enabling of cancellation of promises" in Zukunft nicht mehr so funktionieren wird.
Da muss aber der Adapter-Entwickler ran. Am Besten den Fehler mal als Issue zum Adapter bei Github posten. -
@dbathlon sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Gesagt getan und habe den Container editiert und die ENV hinzugefügt. Leider habe ich das Problem, dass die zusätzliche ENV nicht übernommen wird.
Das habe ich übrigens auch schon ein paar mal beobachaten können. Vermute mal, dass das ein Portainer-Problem ist. Wenn ich die ENV ändern will muss ich immer den Umweg über einen neuen Container machen... Über Edit geht es wohl nicht.
-
ich weiss jetzt nicht irgendwo hatte ich schon mal gefragt.
Ich würde gerne die MACVLAN Ips vergeben in einem Bereich 200-220.
Was muss ich beim erstellen für ein subnetz angeben ?
Subnet 192.168.2.0/24 hab ich aktuell da svergibt aber die Ips direkt bei 1 .. die sind jedoch schon von der fritzbox vergeben ... -
@ChrisXY
Foto von weiter oben... -
Danke ich bin 2 mal durchgegangen habe es übersehen. Verstehe ich trotzdem noch nicht so ganz Kann ich nicht sagen nur IPS 200-220 vergeben?
-
du meinst ich soll den Fehler iobroker-community-adapters/ioBroker.telegram im Github melden? Der Fehler scheint ja bekannt zu sein und es gibt ein Issue dazu aber in der node-telegram-bot-api. Ich denke mal, dass der Adapter diese API benutzt. Der permanent fix ist ja, die Environment Variable zu setzen.
-
@ChrisXY ich verstehe nicht genau was du machen willst. Du hast ja dein Netzwerk Subnetz zu Hause 192.168.2.0/24. Die 192.168.2.1 ist dein Gateway bzw. deine Fritzbox und dein DHCP Server? Willst du jetzt für das MACVLAN ein neuen Subnetz erstellen oder einfach dem iobroker die IP 192.168.2.200 geben?
-
@ChrisXY sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
ich weiss jetzt nicht irgendwo hatte ich schon mal gefragt.
Ich würde gerne die MACVLAN Ips vergeben in einem Bereich 200-220.
Was muss ich beim erstellen für ein subnetz angeben ?
Subnet 192.168.2.0/24 hab ich aktuell da svergibt aber die Ips direkt bei 1 .. die sind jedoch schon von der fritzbox vergeben ...Deshalb empfehle ich die Verwendung von MACVLAN an erfahrene Benutzer mit Netzwerkkenntnissen. Das Thema ist nämlich gar nicht so einfach...
@ChrisXY sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Kann ich nicht sagen nur IPS 200-220 vergeben?
Genau das geht nämlich nicht! Du musst in deinem Docker ein bestimmtes Netzwerk definieren, damit nur bestimmte IP-Adressen verwendet werden. Docker ist und hat keinen herkömmlichen "DHCP".
Bei Heise gibt es einen Netzwerkrechner. Mit diesem kannst du dir ein passendes Netz "errechnen" lassen. Zum Beispiel so:
Das wäre jetzt das kleinste Netz das die Adressen von 200 bis 220 enthält. CIDR-Suffix 27, Netzwerkadresse .192.
Allerdings enthält das Netz nicht nur 200 bis 220 sondern noch ein paar mehr Adressen:Bitte niemals 192.168.2.0/24 angeben. Da sind Probleme vorprogrammiert...
Meine Empfehlung: Überlege ob du solch ein Netz überhaupt brauchst oder doch nur dem ioBroker eine eigene IP über MACVLAN gönnst (wie im Tutorial beschrieben).
Falls du die anderen IPs für andere Container verwenden willst, überlege ob das sinnvoll ist. Ein Redis- oder Maria-DB-Container kommt auch mit einem Bridge-Netzwerk und die Weiterleitung eines einzelnen Ports zurecht. Wenn z.B. ioBroker auf einen Redis-Container zugreifen soll, dann hänge beide (ioBroker zusätzlich, Redis ausschließlich) in ein bridged Netzwerk und die beiden können miteinander (docker-intern) kommunizieren....MfG,
André -
@dbathlon sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
du meinst ich soll den Fehler iobroker-community-adapters/ioBroker.telegram im Github melden? Der Fehler scheint ja bekannt zu sein und es gibt ein Issue dazu aber in der node-telegram-bot-api. Ich denke mal, dass der Adapter diese API benutzt. Der permanent fix ist ja, die Environment Variable zu setzen.
Ja, das wäre der Weg...
Ich verstehe das so: der Fehler ist in der node-telegram-bot-api bekannt. Der Entwickler des Telegram-Adapters hat diese API in seinen Adapter integriert. Es gibt einen Fix, den muss der Entwickler des Adapters selbst integrieren...
Die "Environment Variable" von der bei dem verlinkten Git-Issue gesprochen wird, ist nicht die "Docker-ENV"...
Erklärung zum allgemeinen Begriff hier: https://de.wikipedia.org/wiki/UmgebungsvariableAber nochmal für mich, wo bekommst du denn den Fehler angezeigt? Ich nutze auch den telegram-Adapter, habe aber diesbezüglich nichts im Log....
MfG,
André -
Hi Andre,
Hab jetzt mal die Host Version installiert läuft ohne Probleme einzige was ich habe ist das ich den Zigbee Adapter nicht ans laufen bekomme.
Das habe ich im Log stehen.
zigbee.0 2019-06-26 09:20:10.156 error Error while starting zigbee-shepherd!. Error: Error: No such file or directory, cannot open /dev/ttyACM0Grüße Steffen
-
@andre ok, dann hatte ich doch einen Denkfehler.
Ich bekomme die Meldung beim ersten Starten des Containers. Nach dieser Meldung hört der Log auf und es kommt gar nichts mehr. Der iobroker ist mMn auch nicht gestartet, ich bekomme über die Oberfläche jedenfalls keinen Zugriff und es steht nicht im Log iobroker started oder so etwas ähnliches. (Wobei ich nicht ausschließen will, dass ich etwas falsch konfiguriert habe (MACVLAN Methode))
-
@Homer-J
Du musst sicherlich erst noch das Device in den Docker Container rein reichen. Am besten direkt per /dev/serial/by-id/ wenn das mit Synology funktioniert. -
@andre VIelen dank für die Ausführliche erklärung
Ich denke ich muss mir generell etwas mit den IPs Überlegen Bekomme bald eine USG die meine Fritzbox ersetzen soll. Dann will ich auch mit VLANs arbeiten für die ganzen Smarthome Geräte und IP Kameras hab da so 15 Stück aktuellAber gar nicht so einfach. Ich werde mir das also nochmal Überlegen wenn es in die Umsetzung geht.
-
@Homer-J
Wie @Holzlenkrad schon sagt. Du musst schauen dass das Device in den Container durchgereicht wird. Ggf. musst du den Container mit erweiterten Rechten ausstatten. Ich selbst kann dazu wenig sagen, weil ich an meiner DS keine weitere Hardware für ioBroker nutze...MfG,
André -
@dbathlon
Poste doch bitte mal das komplette Log, damit ich sehen kann was du meinst. -
@andre OK, ich habe nochmal von vorne angefangen (frische Kopie) und Environment angepasst:
PACKAGES → nano libpcap-dev. Sicherheitshalber auch NET_ADMIN und NET_RAW aktiviert.gosu führt dann leider auch nicht zum Erfolg, es erscheint die gleiche Meldung wie bei der nativen Ausführung:
root@z-iobroker-beta:/opt/iobroker# gosu root setcap 'cap_net_raw,cap_net_admin+eip' $(readlink -f $(which node)) Failed to set capabilities on file `/usr/bin/node' (Operation not supported) The value of the capability argument is not permitted for a file. Or the file is not a regular (non-symlink) file root@z-iobroker-beta:/opt/iobroker# setcap 'cap_net_raw,cap_net_admin+eip' $(readlink -f $(which node)) Failed to set capabilities on file `/usr/bin/node' (Operation not supported) The value of the capability argument is not permitted for a file. Or the file is not a regular (non-symlink) file
Magisch, unter der V2 lief das nach der Installation der libpcap-dev auf Anhieb ohne weitere Eingriffe.
Gruß, Ralf
-
@andre sorry,
wollte ich schon früher machen, ich war aber unterwegs ohne Zugriff auf die Logs., ----------------------------------------, ----- Image-Version: 3.0.2beta -----, ----- 2019-06-23 21:27:34 -----, ----------------------------------------, , Startupscript running..., , Installing additional packages..., The following packages will be installed: nano, Installing additional packages done..., , Changing permissions upon first run (This might take a while! Please be patient!)..., Changing permissions done..., , Starting ioBroker..., , ----------------------------------------, ------- ioBroker Logging -------, ----------------------------------------, , host.iobrokerv3Test check instance "system.adapter.admin.0" for host "iobrokerv3Test", host.iobrokerv3Test check instance "system.adapter.discovery.0" for host "iobrokerv3Test", host.iobrokerv3Test check instance "system.adapter.hm-rpc.0" for host "iobrokerv3Test", host.iobrokerv3Test check instance "system.adapter.hm-rpc.1" for host "iobrokerv3Test", host.iobrokerv3Test check instance "system.adapter.hm-rega.0" for host "iobrokerv3Test", host.iobrokerv3Test check instance "system.adapter.sony-bravia.0" for host "iobrokerv3Test", host.iobrokerv3Test check instance "system.adapter.fritzbox.0" for host "iobrokerv3Test", host.iobrokerv3Test check instance "system.adapter.web.0" for host "iobrokerv3Test", host.iobrokerv3Test check instance "system.adapter.vis.0" for host "iobrokerv3Test", host.iobrokerv3Test check instance "system.adapter.scenes.0" for host "iobrokerv3Test", host.iobrokerv3Test check instance "system.adapter.ical.0" for host "iobrokerv3Test", host.iobrokerv3Test check instance "system.adapter.javascript.0" for host "iobrokerv3Test", host.iobrokerv3Test check instance "system.adapter.fakeroku.0" for host "iobrokerv3Test", host.iobrokerv3Test check instance "system.adapter.tankerkoenig.0" for host "iobrokerv3Test", host.iobrokerv3Test check instance "system.adapter.tvspielfilm.0" for host "iobrokerv3Test", host.iobrokerv3Test check instance "system.adapter.synology.0" for host "iobrokerv3Test", host.iobrokerv3Test check instance "system.adapter.zigbee.0" for host "iobrokerv3Test", host.iobrokerv3Test check instance "system.adapter.vis-bars.0" for host "iobrokerv3Test", host.iobrokerv3Test check instance "system.adapter.vis-history.0" for host "iobrokerv3Test", host.iobrokerv3Test check instance "system.adapter.vis-hqwidgets.0" for host "iobrokerv3Test", host.iobrokerv3Test check instance "system.adapter.vis-jqui-mfd.0" for host "iobrokerv3Test", host.iobrokerv3Test check instance "system.adapter.vis-justgage.0" for host "iobrokerv3Test", host.iobrokerv3Test check instance "system.adapter.vis-timeandweather.0" for host "iobrokerv3Test", host.iobrokerv3Test check instance "system.adapter.vis-players.0" for host "iobrokerv3Test", host.iobrokerv3Test check instance "system.adapter.vis-metro.0" for host "iobrokerv3Test", host.iobrokerv3Test check instance "system.adapter.dwd.0" for host "iobrokerv3Test", host.iobrokerv3Test check instance "system.adapter.weatherunderground.0" for host "iobrokerv3Test", host.iobrokerv3Test check instance "system.adapter.yr.0" for host "iobrokerv3Test", host.iobrokerv3Test check instance "system.adapter.feiertage.0" for host "iobrokerv3Test", host.iobrokerv3Test check instance "system.adapter.fullcalendar.0" for host "iobrokerv3Test", host.iobrokerv3Test check instance "system.adapter.daswetter.0" for host "iobrokerv3Test", host.iobrokerv3Test check instance "system.adapter.history.0" for host "iobrokerv3Test", host.iobrokerv3Test check instance "system.adapter.harmony.0" for host "iobrokerv3Test", host.iobrokerv3Test check instance "system.adapter.telegram.0" for host "iobrokerv3Test", host.iobrokerv3Test check instance "system.adapter.vis-colorpicker.0" for host "iobrokerv3Test", Sun, 23 Jun 2019 19:29:46 GMT node-telegram-bot-api deprecated Automatic enabling of cancellation of promises is deprecated., In the future, you will have to enable it yourself., See https://github.com/yagop/node-telegram-bot-api/issues/319. at module.js:653:30, ,
Und danach kommt einfach nichts mehr.