NEWS
[HowTo] ioBroker unter Docker auf Synology DiskStation
-
Hallo Andre,
ich wollte den iobroker admin aktualisieren…
Das ging leider nicht, weil der aktuelle js-controller nicht vorhanden war.
Via Terminal folgendes eingeben:
npm install iobroker.js-controller --production
Mit folender Ausgabe:
! npm WARN deprecated node-uuid@1.4.8: Use uuid module instead
! npm WARN prefer global node-gyp@3.6.2 should be installed with -g
! iobroker.js-controller@1.2.3 install /opt/iobroker/node_modules/iobroker.js-co
! ntroller
! node iobroker.js setup first
! iobroker@1.0.0 /opt/iobroker
! └─┬ iobroker.js-controller@1.2.3
! ├── iobroker.admin@3.1.6
! ├─┬ npm@2.15.12
! │ ├── ansi@0.3.1
! │ ├── ansicolors@0.3.2
! │ ├── ansistyles@0.1.3
! │ ├── archy@1.0.0
! │ ├── async-some@1.0.2
! │ ├── char-spinner@1.0.1
! │ ├── chmodr@1.0.2
! │ ├── cmd-shim@2.0.2
! │ ├─┬ columnify@1.5.4
! │ │ └─┬ wcwidth@1.0.1
! │ │ └─┬ defaults@1.0.3
! │ │ └── clone@1.0.3
! │ ├─┬ config-chain@1.1.11
! │ │ └── proto-list@1.2.4
! │ ├─┬ dezalgo@1.0.3
! │ │ └── asap@2.0.6
! │ ├── editor@1.0.0
! │ ├── fs-vacuum@1.2.10
! │ ├─┬ fs-write-stream-atomic@1.0.10
! │ │ └── iferr@0.1.5
! │ ├── fstream-npm@1.1.1
! │ ├── github-url-from-git@1.4.0
! │ ├── github-url-from-username-repo@1.0.2
! │ ├── imurmurhash@0.1.4
! │ ├─┬ init-package-json@1.9.6
! │ │ ├── promzard@0.3.0
! │ │ └─┬ validate-npm-package-name@3.0.0
! │ │ └── builtins@1.0.3
! │ ├── lockfile@1.0.3
! │ ├─┬ lru-cache@4.0.2
! │ │ ├── pseudomap@1.0.2
! │ │ └── yallist@2.1.2
! │ ├─┬ node-gyp@3.6.2
! │ │ ├── nopt@3[39m
! │ │ └── builtins@0.0.7
! │ ├── which@1.2.14
! │ └── write-file-atomic@1.1.4
! ├─┬ socket.io@1.7.4
! │ └─┬ engine.io@1.8.5
! │ └── ws@1.1.5
! ├─┬ socket.io-client@1.7.4
! │ └── engine.io-client@1.8.5
! ├─┬ tar@4.3.0
! │ ├─┬ minipass@2.2.1
! │ │ └── yallist@3.0.2
! │ └── yallist@3.0.2
! └── UNMET PEER DEPENDENCY winston@2.4.0
! .0.6
! │ │ └── semver@5.3.0
! │ ├── normalize-git-url@3.0.2
! │ ├── normalize-package-data@2.3.8
! │ ├── npm-cache-filename@1.0.2
! │ ├─┬ npm-install-checks@1.0.7
! │ │ └─┬ npmlog@2.0.4
! │ │ └── gauge@1.2.7
! │ ├── npm-package-arg@4.1.1
! │ ├─┬ npm-registry-client@7.2.1
! │ │ ├─┬ concat-stream@1.6.0
! │ │ │ ├─┬ readable-stream@2.3.3
! │ │ │ │ ├── isarray@1.0.0
! │ │ │ │ └── string_decoder@1.0.3
! │ │ │ └── typedarray@0.0.6
! │ │ └─┬ npmlog@3.1.2
! │ │ └─┬ gauge@2.6.0
! │ │ └── has-color@0.1.7
! │ ├── npm-user-validate@0.1.5
! │ ├─┬ npmlog@2.0.4
! │ │ └─┬ gauge@1.2.7
! │ │ ├── lodash.pad@4.5.1
! │ │ ├── lodash.padend@4.6.1
! │ │ └── lodash.padstart@4.6.1
! │ ├── opener@1.4.3
! │ ├── path-is-inside@1.0.2
! │ ├─┬ read-installed@4.0.3
! │ │ ├── debuglog@1.0.1
! │ │ ├── readdir-scoped-modules@1.0.2
! │ │ └── util-extend@1.0.3
! │ ├─┬ read-package-json@2.0.12
! │ │ ├── json-parse-better-errors@1.0.1
! │ │ └── slash@1.0.0
! │ ├─┬ readable-stream@2.1.5
! │ │ ├── buffer-shims@1.0.0
! │ │ └── isarray@1.0.0
! │ ├── realize-package-specifier@3.0.3
! │ ├─┬ request@2.74.0
! │ │ ├─┬ bl@1.1.2
! │ │ │ └─┬ readable-stream@2.0.6
! │ │ │ └── isarray@1.0.0
! │ │ ├── caseless@0.11.0
! │ │ ├─┬ form-data@1.0.1
! │ │ │ └── async@2.6.0
! │ │ ├─┬ har-validator@2.0.6
! │ │ │ ├─┬ chalk@1.1.3
! │ │ │ │ ├── ansi-styles@2.2.1
! │ │ │ │ ├── escape-string-regexp@1.0.5
! │ │ │ │ ├── has-ansi@2.0.0
! │ │ │ │ └── supports-color@2.0.0
! │ │ │ └─┬ is-my-json-valid@2.17.1
! │ │ │ ├── generate-function@2.0.0
! │ │ │ ├─┬ generate-object-property@1.2.0
! │ │ │ │ └── is-property@1.0.2
! │ │ │ └── jsonpointer@4.0.1
! │ │ ├── node-uuid@1.4.8
! │ │ ├── qs@6.2.3
! │ │ └── tunnel-agent@0.4.3
! │ ├── retry@0.10.1
! │ ├── semver@5.1.1
! │ ├─┬ sha@2.0.1
! │ │ └─┬ readable-stream@2.3.3
! │ │ ├── isarray@1.0.0
! │ │ └── string_decoder@1.0.3
! │ ├── slide@1.1.6
! │ ├── sorted-object@2.0.1
! │ ├── text-table@0.2.0
! │ ├── umask@1.1.0
! │ ├─┬ validate-npm-package-name@2.2.2[37;40mnpm WARN enoent ENOENT: no such fi
! le or directory, open '/opt/iobroker/node_modules/engine.io/package.json'
! npm WARN enoent ENOENT: no such file or directory, open '/opt/iobroker/node_modu
! les/greenlock/package.json'
! npm WARN enoent ENOENT: no such file or directory, open '/opt/iobroker/node_modu
! les/engine.io-client/package.json'
! npm WARN enoent ENOENT: no such file or directory, open '/opt/iobroker/node_modu
! les/jszip/package.json'
! npm WARN enoent ENOENT: no such file or directory, open '/opt/iobroker/node_modu
! les/winston/package.json'
! npm WARN winston-daily-rotate-file@1.7.2 requires a peer of winston@2.x but none
! was installed.Seit dem startet iobroker nicht mehr mit folgender Ausgabe…
! root@buanet-iobroker1:/opt/iobroker# iobroker start
! Starting iobroker controller daemon…
! /opt/iobroker/node_modules/daemonize2/lib/daemonize.js:136
! throw new Error(msg.error);
! ^
! Error: Error: Cannot find module 'winston/lib/winston/common'
! at Function.Module._resolveFilename (module.js:469:15)
! at Function.Module._load (module.js:417:25)
! at Module.require (module.js:497:17)
! at require (internal/module.js:20:19)
! at Object. <anonymous>(/opt/iobroker/node_modules/winston-daily-rotate-file/
! index.js:6:14)
! at Module._compile (module.js:570:32)
! at Object.Module._extensions..js (module.js:579:10)
! at Module.load (module.js:487:32)
! at tryModuleLoad (module.js:446:12)
! at Function.Module._load (module.js:438:3)
! at ChildProcess. <anonymous>(/opt/iobroker/node_modules/daemonize2/lib/daemo
! nize.js:136:19)
! at emitTwo (events.js:106:13)
! at ChildProcess.emit (events.js:191:7)
! at process.nextTick (internal/child_process.js:787:12)
! at _combinedTickCallback (internal/process/next_tick.js:73:7)
! at process._tickCallback (internal/process/next_tick.js:104:9)</anonymous></anonymous>
Ich bin am verzweifeln, google konnte mir auch nicht weiter helfen.Vielen Dank
Gruß Dirk `
Hallo Dirk,
hast du mal versucht alle npm-Pakete, die das Logfile mit "no such file or directory" anmeckert manuell zu installieren?
Dazu musst du nur in den iobroker ordner und dann per npm installieren, in etwa so:
cd /opt/iobroker npm install engine.io npm install greenlock ...
Am Ende vielleicht nochmal den js-controller drüber installieren…
Angaben ohne Gewähr, aber so würde ich dran gehen...
MfG,
André
-
Hallo zusammen,
irgendwie habe ich mit der Installation des Ganzen ein wenig ein Problem.
Vielleicht übersehe ich auch etwas…
Laut Anleitung packe ich meine ursprüngliche Installation mittels tar in ein Archiv.
soweit so gut..
bei den nachfolgenden Schritten komme ich jedoch irgendwie nicht weiter...
` > Anschließend das tar-Archiv in das Transfer-Verzeichnis kopieren und das Terminal des Containers über die Docker-Oberfläche öffnen. Die folgenden Befehle stoppen ioBroker im Container und entpacken das Archiv.
cd /opt/iobroker
pkill io
cd /opt/transfer
tar -xf iobroker_verzeichnis.tar
Schritt 3: ioBroker für den Start auf neuem System vorbereiten und starten
An dieser Stelle ist ioBroker noch nicht lauffähig, da sich mit dem Umzug auf die DS in der Regel auch der Hostname geändert hat. Um ioBroker den neuen Hostname mit zu teilen reicht ein einfacher Befehl, ausgeführt im ioBroker-Verzeichnis über das Terminal des Docker-Containers:
cd /opt/iobroker
iobroker host this
Anschließend sollte sich ioBroker wieder starten lassen: `
Wenn ich das Archiv in das Docker-Transfer-Verzeichnis kopiere, welches auf /opt/transfer gemounted ist und es dort wie angegeben entpacke, entsteht in /opt/transfer ein Unterverzeichnis /opt welches mein iobroker-Verzeichnis und die Daten enthält.
folge ich dann weiter der Anleitung, würde ja nie meine Installation gestartet, sondern weiterhin die im Container vorinstallierte.
Lösche ich den Inhalt von docker_iobroker/mount und kopiere dann die Dateien per WinSCP rüber startet nur der js-controller aber sonst nichts weiter.
Was mache ich denn hier an der Stelle falsch?
Gruss
Silvio `
Hallo Silvio,
hast du dich mal mit dem tar-befehl beschäftigt? darüber kann man unter anderem auch steuern wo die Dateien beim Entpacken wiederhergestellt werden. Dabei unbedingt das Achtung aus meinem Tutorial beachten:
` > Gehen wir also mal davon aus wir haben einen Raspberry Pi als Quellsystem mit dem Verzeichnis /opt/iobroker als ioBroker-Verzeichnis. IoBroker selbst ist natürlich gestoppt.
Zum (ver-)packen deines ioBroker-Verzeichnisses braucht es nur einen Befehl:
tar -cPf /opt/iobroker_verzeichnis.tar /opt/iobroker
Achtung! Den Parameter „P“ nur verwenden, wenn auf dem Quellsystem (Raspberry Pi) und Zielsystem (Docker-Container) das ioBroker-Verzeichnis den selben Pfad (/opt/iobroker) besitzt. Für mehr Infos bitte selbst zum Thema „tar“ recherchieren. `
Außerdem beim Umziehen auch diesen Teil beachten:
` > Schritt 3: ioBroker für den Start auf neuem System vorbereiten und starten
An dieser Stelle ist ioBroker noch nicht lauffähig, da sich mit dem Umzug auf die DS in der Regel auch der Hostname geändert hat. Um ioBroker den neuen Hostname mit zu teilen reicht ein einfacher Befehl, ausgeführt im ioBroker-Verzeichnis über das Terminal des Docker-Containers:
cd /opt/iobroker
iobroker host this
Anschließend sollte sich ioBroker wieder starten lassen:
node node_modules/iobroker.js-controller/controller.js >/opt/scripts/docker_iobroker_log.txt 2>&1 & `
Wenn das nicht hilft brauche ich die Einzelnen Schritte und genutzten Befehle, dann kann ich versuchen das nachzuvollziehen.
MfG,
André
-
Hello!
new container and problem
i dont stop iobroker
!
![](</s><URL url=)<link_text text="https://image.prntscr.com/image/1DOPTWl ... yCc6Yg.png">https://image.prntscr.com/image/1DOPTWluTqiEHBjgyCc6Yg.png</link_text>" /> -
Hello!
new container and problem
i dont stop iobroker
!
![](</s><URL url=)<link_text text="https://image.prntscr.com/image/1DOPTWl ... yCc6Yg.png">https://image.prntscr.com/image/1DOPTWluTqiEHBjgyCc6Yg.png</link_text>" />` ~~usepkill io
and the start command is different also
node node_modules/iobroker.js-controller/controller.js >/opt/scripts/docker_iobroker_log.txt 2>&1 & ````~~
-
Hallo André,
ich habe deinen Container auf meine QNAP TS 251+ installiert und nach kleinen Startschwierigkeiten zum Laufen gebracht. Diesen Fred habe ich von vorn bis hinten mit großem Interesse gelesen. Vielen Dank für Dein großes Engagement!
Ich möchte diesen Fred keinesfalls kapern, von daher kann ich auch gerne ein neues Thema aufmachen, da ich eine QNAP spezifische Frage habe und es hier hauptsächlich um Synology geht.
Ich sehe auf dem QNAP in der Container Station keine Möglichkeit das iobroker Verzeichnis auf das NAS auszulagern, so wie es in der erweiterten Konfiguration beschrieben ist.
Geht das auch über Terminalbefehle? Falls dem so ist, welche sind das? Ich bin absoluter Linux-Laie und habe mich bei meiner derzeitigen Installation auf dem Raspi von Tutorial zu Tutorial gehangelt. :shock:
Dann gleich noch eine zweite Frage. Macht es Sinn, um die Platten im NAS nicht immer zu wecken, den Container und die iobroker Daten auf eine externe SSD am NAS auszulagern? Sollte der Container mit auf die SSD oder reichen die iobroker Daten?
Danke für Deine/Eure Mühe
Grüße Andreas
-
Hallo André,
ich habe deinen Container auf meine QNAP TS 251+ installiert und nach kleinen Startschwierigkeiten zum Laufen gebracht. Diesen Fred habe ich von vorn bis hinten mit großem Interesse gelesen. Vielen Dank für Dein großes Engagement!
Ich möchte diesen Fred keinesfalls kapern, von daher kann ich auch gerne ein neues Thema aufmachen, da ich eine QNAP spezifische Frage habe und es hier hauptsächlich um Synology geht.
Ich sehe auf dem QNAP in der Container Station keine Möglichkeit das iobroker Verzeichnis auf das NAS auszulagern, so wie es in der erweiterten Konfiguration beschrieben ist.
Geht das auch über Terminalbefehle? Falls dem so ist, welche sind das? Ich bin absoluter Linux-Laie und habe mich bei meiner derzeitigen Installation auf dem Raspi von Tutorial zu Tutorial gehangelt. :shock:
Dann gleich noch eine zweite Frage. Macht es Sinn, um die Platten im NAS nicht immer zu wecken, den Container und die iobroker Daten auf eine externe SSD am NAS auszulagern? Sollte der Container mit auf die SSD oder reichen die iobroker Daten?
Danke für Deine/Eure Mühe
Grüße Andreas `
Hallo Andreas,
sorry, was QNAP angeht, habe ich absolut keine Vorstellung wie das dort gehandhabt wird, geschweige den wie die "Container Station ausschaut. Generell sollte es aber einen Weg geben, wie man auch dort Verzeichnisse vom QNAP in den Container mountet. Das ist eine Grundfunktion und wichtige Säule der Docker-Philosophie (Stichwort "Austauschbarkeit des Containers ohne Datenverlust"). Schau mal hier: https://docs.docker.com/storage/volumes/
Was das Auslagern auf die SSD angeht, da kann ich nicht einmal bei der DiskStation was zu sagen. Ich habe eine 24/7 Umgebung. Mit Plex Media Server, Web-Server und TV-Server kommt meine DS sowieso nie zur Ruhe, sodass ich mir ehrlich gesagt darüber noch nie Gedanken gemacht habe.
Wenn du aber vor hast, deine Platten entsprechend zu schonen, dann müsste theoretisch schon alles dorthin umziehen. Andernfalls würden die Platten sicher immer wieder geweckt werden (vermute ich)…
Sorry, dass ich dir da wenig helfen kann. Trotzdem viel Erfolg!
MfG,
André
-
Hallo André,
zuerst einmal danke dür das Docker File.
Bis jetzt lief alles super nur bin ich gestern auf ein Problem gesoßen in Verbindung mit dem
MQTT Broker/Client Adapter in der Version 1.4.2
Die Portweiterleitungen habe ich Kknfiguriert Port: 1883
Ich erhalte keinen grünen Punkt bei Instanten für den mqtt
Im Log stehen diese Fehlermeldungen, mit dennen ich nicht zurecht komme.
Hast du vieleicht eine Idee?
host.iobroker-beta 2018-02-22 13:04:44.952 info Restart adapter system.adapter.mqtt.0 because enabled
host.iobroker-beta 2018-02-22 13:04:44.952 error instance system.adapter.mqtt.0 terminated with code 0 (OK)
Caught 2018-02-22 13:04:44.952 error by controller[0]: port: 1883 }
Caught 2018-02-22 13:04:44.952 error by controller[0]: address: '0.0.0.0',
Caught 2018-02-22 13:04:44.952 error by controller[0]: syscall: 'listen',
Caught 2018-02-22 13:04:44.951 error by controller[0]: errno: 'EADDRINUSE',
Caught 2018-02-22 13:04:44.951 error by controller[0]: code: 'EADDRINUSE',
Caught 2018-02-22 13:04:44.951 error by controller[0]: at process._tickCallback (internal/process/next_tick.js:104:9)
Caught 2018-02-22 13:04:44.951 error by controller[0]: at _combinedTickCallback (internal/process/next_tick.js:83:11)
Caught 2018-02-22 13:04:44.951 error by controller[0]: at net.js:1408:9
Caught 2018-02-22 13:04:44.951 error by controller[0]: at listen (net.js:1298:10)
Caught 2018-02-22 13:04:44.951 error by controller[0]: at Server._listen2 (net.js:1262:14)
Caught 2018-02-22 13:04:44.951 error by controller[0]: at exports._exceptionWithHostPort (util.js:1043:20)
Caught 2018-02-22 13:04:44.950 error by controller[0]: at Object.exports._errnoException (util.js:1020:11)
Caught 2018-02-22 13:04:44.950 error by controller[0]: { Error: listen EADDRINUSE 0.0.0.0:1883
mqtt.0 2018-02-22 13:04:44.942 info terminating
mqtt.0 2018-02-22 13:04:44.435 error at process._tickCallback (internal/process/next_tick.js:104:9)
mqtt.0 2018-02-22 13:04:44.435 error at _combinedTickCallback (internal/process/next_tick.js:83:11)
mqtt.0 2018-02-22 13:04:44.435 error at net.js:1408:9
mqtt.0 2018-02-22 13:04:44.435 error at listen (net.js:1298:10)
mqtt.0 2018-02-22 13:04:44.435 error at Server._listen2 (net.js:1262:14)
mqtt.0 2018-02-22 13:04:44.435 error at exports._exceptionWithHostPort (util.js:1043:20)
mqtt.0 2018-02-22 13:04:44.435 error at Object.exports._errnoException (util.js:1020:11)
mqtt.0 2018-02-22 13:04:44.435 error Error: listen EADDRINUSE 0.0.0.0:1883
mqtt.0 2018-02-22 13:04:44.434 error uncaught exception: listen EADDRINUSE 0.0.0.0:1883
mqtt.0 2018-02-22 13:04:44.181 info starting. Version 1.4.2 in /opt/iobroker/node_modules/iobroker.mqtt, node: v6.12.3
host.iobroker-beta 2018-02-22 13:04:43.698 info instance system.adapter.mqtt.0 started with pid 2841
Kann es daran liegen das es die IO Broker Beta version ist?
Ich habe auch den Adapter 1.4.1 probiert das gleiche Bild.
Hat vielleicht jemand eine Idee?
Ich behelfe mir gerade damit, dass ich einen mosquito auf einem Pi1 am Start habe, aber das kann nicht die Lösung sein.
Über eine Rückmeldung würde ich mich freuen.
Gruß
Micha
-
was ist das für ein Docker File ???
-
habe eine Notlösung für mich gefunden, bis mqtt als Broker in ioBroker-beta läuft
ich habe mir im docker hub: ncarlier/mqtt als Dockerfile gezogen und port ext: 1883 auf port Docker:1883 aktiviert
In deinem Dockerfile: bunanet/iobroker-Beta das Port ext: 1884 auf port Docker:1883 geroutet.
den mqqt Adapter vers 1.4.2 auf port 1883 konfiguriert
das geht nun erstmal auch wenn es nicht so schön ist.
Gruß
Micha
-
Gibt es irgendetwas zu beachten beim Update von Adaptern?
Von der iobroker Weboberfläche aus beendet er es mit Fehler 10:
$ ./iobroker upgrade geofency Update geofency from @0.2.0 to @0.3.1 npm install iobroker.geofency@0.3.1 --production --prefix "/opt/iobroker" (System call) npm WARN enoent ENOENT: no such file or directory, open '/opt/iobroker/node_modules/body-parser/package.json'npm WARN enoent ENOENT: no such file or directory, open '/opt/iobroker/node_modules/express/package.json' npm WARN enoent ENOENT: no such file or directory, open '/opt/iobroker/node_modules/express-session/package.json' npm WARN enoent ENOENT: no such file or directory, open '/opt/iobroker/node_modules/finalhandler/package.json'npm WARN enoent ENOENT: no such file or directory, open '/opt/iobroker/node_modules/greenlock/package.json' npm WARN enoent ENOENT: no such file or directory, open '/opt/iobroker/node_modules/http-errors/package.json' npm WARN enoent ENOENT: no such file or directory, open '/opt/iobroker/node_modules/iobroker.javascript/package.json' npm WARN enoent ENOENT: no such file or directory, open '/opt/iobroker/node_modules/iobroker.telegram/package.json' npm WARN enoent ENOENT: no such file or directory, open '/opt/iobroker/node_modules/iobroker.telegram/node_modules/node-telegram-bot-api/package.json' npm WARN enoent ENOENT: no such file or directory, open '/opt/iobroker/node_modules/iobroker.admin/node_modules/http-errors/package.json' npm WARN enoent ENOENT: no such file or directory, open '/opt/iobroker/node_modules/iobroker.telegram/node_modules/node-telegram-bot-api/node_modules/debug/package.json'npm WARN enoent ENOENT: no such file or directory, open '/opt/iobroker/node_modules/iobroker.telegram/node_modules/node-telegram-bot-api/node_modules/pump/package.json' npm WARN enoent ENOENT: no such file or directory, open '/opt/iobroker/node_modules/iobroker.telegram/node_modules/node-telegram-bot-api/node_modules/bl/node_modules/readable-stream/package.json'npm WARN virtual-tsc@0.3.4 requires a peer of @types/node@* but none was installed. npm WARN virtual-tsc@0.3.4 requires a peer of typescript@^2.0.0 but none was installed. npm ERR! Linux 4.4.15+ npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "install" "iobroker.geofency@0.3.1" "--production" "--prefix" "/opt/iobroker" npm ERR! node v6.12.2 npm ERR! npm v3.10.10 npm ERR! path /opt/iobroker/node_modules/iobroker.geofency/node_modules/request/node_modules/http-signature/node_modules/.bin/sshpk-verify npm ERR! code EEXIST npm ERR! Refusing to delete /opt/iobroker/node_modules/iobroker.geofency/node_modules/request/node_modules/http-signature/node_modules/.bin/sshpk-verify: is outside /opt/iobroker/node_modules/iobroker.geofency/node_modules/request/node_modules/http-signature/node_modules/sshpk and not a link npm ERR! File exists: /opt/iobroker/node_modules/iobroker.geofency/node_modules/request/node_modules/http-signature/node_modules/.bin/sshpk-verify npm ERR! Move it away, and try again. npm ERR! Please include the following file with any support request:npm ERR! /opt/iobroker/npm-debug.log npm ERR! code 1 ERROR: Cannot find io-package.json in /opt/iobroker/node_modules/iobroker.geofency ERROR: process exited with code 10
-
habe eine Notlösung für mich gefunden, bis mqtt als Broker in ioBroker-beta läuft
ich habe mir im docker hub: ncarlier/mqtt als Dockerfile gezogen und port ext: 1883 auf port Docker:1883 aktiviert
In deinem Dockerfile: bunanet/iobroker-Beta das Port ext: 1884 auf port Docker:1883 geroutet.
den mqqt Adapter vers 1.4.2 auf port 1883 konfiguriert
das geht nun erstmal auch wenn es nicht so schön ist.
Gruß
Micha ` Hallo Micha,
sorry, aber ich kann dir gerade absolut nicht folgen. Ich kenne zwar mqtt nicht, aber das was du jetzt gemacht hast, ist doch praktisch einen Docker Container mit mqtt zu installieren auf den sich der mqtt Adapter vom iobroker verbindet… So ist es ja meines Erachtens auch richtig...
Was genau soll ich denn jetzt deiner Meinung mach im Docker Image noch hinzufügen? Sorry, dass ich so doof frage, aber ich verstehe es gerade einfach nicht...
Btw, die Fehlermeldung "EADDRINUSE" deutet in der Regel darauf hin, dass der Port den du verwenden willst schon in Benutzung ist...
MfG,
André
Gesendet von meinem Smartphone mit Tapatalk
-
Gibt es irgendetwas zu beachten beim Update von Adaptern?
Von der iobroker Weboberfläche aus beendet er es mit Fehler 10:
$ ./iobroker upgrade geofency Update geofency from @0.2.0 to @0.3.1 npm install iobroker.geofency@0.3.1 --production --prefix "/opt/iobroker" (System call) npm WARN enoent ENOENT: no such file or directory, open '/opt/iobroker/node_modules/body-parser/package.json'npm WARN enoent ENOENT: no such file or directory, open '/opt/iobroker/node_modules/express/package.json' npm WARN enoent ENOENT: no such file or directory, open '/opt/iobroker/node_modules/express-session/package.json' npm WARN enoent ENOENT: no such file or directory, open '/opt/iobroker/node_modules/finalhandler/package.json'npm WARN enoent ENOENT: no such file or directory, open '/opt/iobroker/node_modules/greenlock/package.json' npm WARN enoent ENOENT: no such file or directory, open '/opt/iobroker/node_modules/http-errors/package.json' npm WARN enoent ENOENT: no such file or directory, open '/opt/iobroker/node_modules/iobroker.javascript/package.json' npm WARN enoent ENOENT: no such file or directory, open '/opt/iobroker/node_modules/iobroker.telegram/package.json' npm WARN enoent ENOENT: no such file or directory, open '/opt/iobroker/node_modules/iobroker.telegram/node_modules/node-telegram-bot-api/package.json' npm WARN enoent ENOENT: no such file or directory, open '/opt/iobroker/node_modules/iobroker.admin/node_modules/http-errors/package.json' npm WARN enoent ENOENT: no such file or directory, open '/opt/iobroker/node_modules/iobroker.telegram/node_modules/node-telegram-bot-api/node_modules/debug/package.json'npm WARN enoent ENOENT: no such file or directory, open '/opt/iobroker/node_modules/iobroker.telegram/node_modules/node-telegram-bot-api/node_modules/pump/package.json' npm WARN enoent ENOENT: no such file or directory, open '/opt/iobroker/node_modules/iobroker.telegram/node_modules/node-telegram-bot-api/node_modules/bl/node_modules/readable-stream/package.json'npm WARN virtual-tsc@0.3.4 requires a peer of @types/node@* but none was installed. npm WARN virtual-tsc@0.3.4 requires a peer of typescript@^2.0.0 but none was installed. npm ERR! Linux 4.4.15+ npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "install" "iobroker.geofency@0.3.1" "--production" "--prefix" "/opt/iobroker" npm ERR! node v6.12.2 npm ERR! npm v3.10.10 npm ERR! path /opt/iobroker/node_modules/iobroker.geofency/node_modules/request/node_modules/http-signature/node_modules/.bin/sshpk-verify npm ERR! code EEXIST npm ERR! Refusing to delete /opt/iobroker/node_modules/iobroker.geofency/node_modules/request/node_modules/http-signature/node_modules/.bin/sshpk-verify: is outside /opt/iobroker/node_modules/iobroker.geofency/node_modules/request/node_modules/http-signature/node_modules/sshpk and not a link npm ERR! File exists: /opt/iobroker/node_modules/iobroker.geofency/node_modules/request/node_modules/http-signature/node_modules/.bin/sshpk-verify npm ERR! Move it away, and try again. npm ERR! Please include the following file with any support request:npm ERR! /opt/iobroker/npm-debug.log npm ERR! code 1 ERROR: Cannot find io-package.json in /opt/iobroker/node_modules/iobroker.geofency ERROR: process exited with code 10 ```` `
Nein, eigentlich nicht. Bis jetzt hat es bei mir mit allen Adaptern immer so geklappt. Sobald ich Zeit finde kann ich ja den geofency Adapter bei mir mal testen.
Alternativ mal die Fehlermeldung googlen und ggf. den Adapter mal per Kommandozeile updaten.
MfG,
André
Gesendet von meinem Smartphone mit Tapatalk
-
Danke, André!
Der Fehler trat bei allen Adaptern auf. Irgendwas muss da komplett schief gelaufen sein. Ich hatte damals bei der Installation auch einfach meinen raspi-iobroker-Ordner über den raspi-Docker-Ordner kopiert, vielleicht stimmt jetzt etwas dadurch nicht mehr.
Habe jetzt den Docker komplett neu aufgesetzt, und mittels der iobroker backup-Funktion ein Backup wiederhergestellt. Mal sehen, was beim nächsten Adapterupdate passiert. Scheint jetzt erstmal alles fehlerfrei zu laufen.
dDanke für das Dockerimage und den Support!
edit: Adapterupdates klappen wieder.
-
Hey und Hallo,
gib es was neues zum Yahka Adapter unter dem Docker Image. Es läuft bei mir auch alles einwandfrei im Docker, außer dem Yahka Adapter. Der ist zwar grün und alles läuft, aber ich sehe nichts in Home auf dem iOS Device. Auf dem Raspberrypi, von wo mein Backup herkommt, welches ich verwendet habe läuft alles.
Gibt es hier einen Tipp? Wäre schade, wenn man dafür extra wieder einen PI bräuchte, wenn die Synology doch sowieso läuft.
-
Hey und Hallo,
gib es was neues zum Yahka Adapter unter dem Docker Image. Es läuft bei mir auch alles einwandfrei im Docker, außer dem Yahka Adapter. Der ist zwar grün und alles läuft, aber ich sehe nichts in Home auf dem iOS Device. Auf dem Raspberrypi, von wo mein Backup herkommt, welches ich verwendet habe läuft alles.
Gibt es hier einen Tipp? Wäre schade, wenn man dafür extra wieder einen PI bräuchte, wenn die Synology doch sowieso läuft. `
Hallo,
von mir gibt's dahingehend nichts neues. Da muss die community ran. Ich habe nur ein altes Ipad, das keine ios Updates mehr bekommt und daher homekit schlicht nicht unterstützt… Anschaffung eines neuen ios Device ist nicht geplant. Sorry. Aber vielleicht hat es ja mittlerweile jemand zum laufen bekommen?
MfG,
André
Gesendet von meinem Smartphone mit Tapatalk
-
Hallo André,
kannst du kurz erklären wie du einen weiteren Container gleichzeitig laufen lassen kannst. Irgendwo weiter vorne im Thread hast du das in einem Satz erwähnt z.B. für eigene Entwicklungen.
Ich habe es bei mir versucht mit diversen Einstellungen. Komme aber nie von außen auf die Admin-Seite.
Hast du dafür ein neues Netzwerk definiert? Und dann ggf. Port weitergeleitet?
Danke und Gruß
AlGu
-
IMHO musst Du für den zweiten Container andere/freie Ports von außen auf die inneren/bekannten Ports weiterleiten.
Also alle Standard-Ports die von außen erreichbar sein müssen, musst Du quasi "umleiten".
-
Gibt es irgendetwas zu beachten beim Update von Adaptern? `
Da frage ich mich, warum du die Adapter nicht direkt über die ioBroker-Admin-Seite aktualisierst? Das läuft bei mir immer problemlos durch. Über die Konsole gehe ich ausschließlich beim js-controller. Und selbst da habe ich es die letzten beiden Male "on the fly" getan, ohne den ioBroker vorher zu stoppen. Nach einem Neustart des Containers war dann jedes Mal die aktuelle Version des js-controllers installiert. Vielleicht nicht unbedingt die eleganteste Methode, aber einem geschenkten Barsch…
Mit dem ioBroker im Docker-Container meiner DS718+ bin ich nach wie vor sehr zufrieden. Soweit läuft alles rund. Den yahka-Adapter nutze ich nicht, da ich das mit einer Homebridge auf nem Raspi erledige. Aber es gab auch mit der Homebridge in einem Docker-Container Probleme, weil die einfach nicht gefunden werden konnte von meinen iOS-Geräten. Kürzlich habe ich https://github.com/marcoraddatz/homebridge-docker/issues/42 den Hinweis gelesen, den DS_HOSTNAME mal auf den des ioBroker statt der DiskStation zu setzen. Selbst probiert habe ich das aber noch nicht, da ich mich mittlerweile mit der Raspi-Homebridge gut arrangiert habe.
Bis dann,
Thorsten
-
Hallo Zusammen,
da ich immer wieder höre, dass einzelne Adapter (z.B yahka oder harmony) im Docker Probleme machen, habe ich nochmal ein bisschen recherchiert.
Es scheint als gäbe es in vielen Fällen ein Kommunikationsproblem zwischen dem Docker-Container und dem Lokalen Netzwerk, sodass Geräte nicht gefunden werden oder auch den ioBroker (bzw. den bereitgestellten Dienst) im Netz nicht finden.
Vermutlich liegt das Problem darin begründet, dass der Docker Container keine eigenen Netzwerkschnittstelle besitzt, sondern lediglich das Interface der DS mit nutzt. So werden zum Beispiel Multicast-Pakete, welche für die automatische Erkennung (Auto-Discovery) von Devices im Netzwerk verwendet werden nicht an den Container weiter gereicht.
In der Folge kommt es dann zu solchen Fehlerbildern, in denen Devices vom Adapter nicht "gefunden" werden können.
Aktuell habe ich keine direkte und praktikable Lösung dazu parat. Die einzige Empfehlung, die ich geben kann ist, solche Adapter über eine Multihost-Konfiguration auf einen ioBroker Slave aus zu lagern. So mache ich es auch bereits mit Adaptern die gesonderte Hardware benötigen (die ich z.B. nicht an der DS betreiben will oder kann).
Eine Anleitung zum Thema Multihost, konkret: das Anbinden eines Raspberry Pi als Slave an einen ioBroker-Docker Container, arbeite ich gerade aus. Leider kann ich aktuell noch nicht absehen wann die entsprechende Anleitung fertig sein wird.
Betroffen sind aktuell meiner Meinung nach der Yahka- und der Harmony-Adapter.
Falls jemand in diesem Thema tiefer drin steckt und weitere Erkenntnisse hat, darf er sich gerne bei mir melden.
MfG,
André
-
Vielen Dank für deine Mühe und Zeit die du hier investierst.
Bei mir ging von einen auf den anderen Tag der yahka-Adapter auch nicht mehr.
Habe dann auf der Synology den Bonjour-Dienst deaktiviert.
Und siehe da - es funktionierte wieder.
Es kann also nicht sein, dass irgendwelche Pakete nicht weiter gereicht werden.
Ich denke, dass sich irgendetwas "beisst" bei den Diensten untereinander.