NEWS
[HowTo] ioBroker unter Docker auf Synology DiskStation
-
Ich denke schon.
Habe aber mit VMs keine Erfahrung
Gruß
Rainer
-
Hi Rainer,
kein Problem. Ich lasse es erst mal so.
Falls mir jemand der Docker-Experten noch einen Hinweis geben könnte, wäre ich aber trotzdem dankbar.
Gruß,
Thorsten
-
@dtp:Kurze Frage.
Ich habe das ioBroker-Abbild auf meiner DS718+ installiert, als ich noch 2 GB RAM hatte. Später habe ich dann auf 6 GB aufgerüstet. Dies hat der Docker auch direkt erkannt. Mir scheint nur, dass der ioBroker irgendwie immer noch von 2 GB RAM ausgeht. Oder täusche ich mich da?
2018-01-01_16h57_13.png
2018-01-01_16h58_28.png
Falls nein, wie bringe ich dem ioBroker bei, dass insgesamt 6 GB zur Verfügung stehen? Oder muss ich das Abbild dazu neu installieren?
Gruß,
Thorsten
PS.: Bei mir läuft der ioBroker mit sämtlichen Adaptern übrigens einwandfrei.
PPS.: Frohes Neues natürlich. `
Ich würde mir da keine großen Gedanken machen. Denke dass der Container schlicht die RAM Änderung der DS nicht mit bekommt/ bekommen kann. Vermutlich würde es reichen den Container zu löschen und neu an zu legen (sofern der ioBroker-Ordner auf die DS ausgelagert wurde).MfG,
André
-
Hallo André,
erstmal vielen Dank für Deine Einsatz, damit war ein ein leichtes ioBroker in Docker auf der DiskStation zu installieren.
Ich habe aber auch das Problem mit dem HomeKit Adapter, dieser startet sich nicht - Fehlermeldung:
! host.ioBroker 2018-01-02 18:29:24.013 error instance system.adapter.yahka.0 terminated with code 1 ()
! Caught 2018-01-02 18:29:24.013 error by controller[0]: at Object.Module._extensions..js (module.js:579:10)
! Caught 2018-01-02 18:29:24.013 error by controller[0]: at Module._compile (module.js:570:32)
! Caught 2018-01-02 18:29:24.012 error by controller[0]: at Object. (/opt/iobroker/node_modules/iobroker.yahka/node_modules/hap-nodejs/node_modules/mdns/lib/dns_sd.js:24:20)
! Caught 2018-01-02 18:29:24.012 error by controller[0]: at require (internal/module.js:20:19)
! Caught 2018-01-02 18:29:24.012 error by controller[0]: at Module.require (module.js:497:17)
! Caught 2018-01-02 18:29:24.012 error by controller[0]: at Function.Module._load (module.js:438:3)
! Caught 2018-01-02 18:29:24.012 error by controller[0]: at tryModuleLoad (module.js:446:12)
! Caught 2018-01-02 18:29:24.012 error by controller[0]: at Module.load (module.js:487:32)
! Caught 2018-01-02 18:29:24.012 error by controller[0]: at Object.Module._extensions..node (module.js:597:18)
! Caught 2018-01-02 18:29:24.012 error by controller[0]: at Error (native)
! Caught 2018-01-02 18:29:24.012 error by controller[0]: Error: /opt/iobroker/node_modules/iobroker.yahka/node_modules/hap-nodejs/node_modules/mdns/build/Release/dns_sd_bindings.node: wrong ELF class: ELFCLASS32
! Caught 2018-01-02 18:29:24.012 error by controller[0]: ^
! Caught 2018-01-02 18:29:24.012 error by controller[0]: throw ex;
! Caught 2018-01-02 18:29:24.011 error by controller[0]: /opt/iobroker/node_modules/iobroker.yahka/node_modules/hap-nodejs/node_modules/mdns/lib/dns_sd.js:35Die Prozesse "dbus-daemon –system", avahi-daemon laufen. Bonjour hatte ich auch schon abgeschaltet aber mit dem selben Ergebnis.
Was kann ich noch tun? Wenn du irgendetwas benötigst, Logs oder etwas anderes lass es mich wissen.
Danke!
Gruß
Alex
-
Ich würde mir da keine großen Gedanken machen. Denke dass der Container schlicht die RAM Änderung der DS nicht mit bekommt/ bekommen kann. Vermutlich würde es reichen den Container zu löschen und neu an zu legen (sofern der ioBroker-Ordner auf die DS ausgelagert wurde). `
Hi André,
danke für Deine Info. Hab mal eben einfach ein neues ioBroker-Abbild erzeugt und vorher das alte umbenannt. War kein Problem und lief innerhalb von Sekunden. Allerdings wurde mir exakt die gleiche Speicherauslastung vom ioBroker angezeigt. Zudem ergab eine Abfrage mit
vmstat -s
im alten Abbild, dass die 6 GB wohl korrekt erkannt wurden. Hab dann das neue Abbild wieder gelöscht und bin zum alten zurück. Alles gut.
Gruß,
Thorsten
-
@ask:Ich habe aber auch das Problem mit dem HomeKit Adapter, dieser startet sich nicht - Fehlermeldung: `
Kurze Frage. Hast Du die Homebridge im Docker-Abbild des ioBroker installiert? Das würde ich ehrlich gesagt nicht machen, sondern ein neues Abbild erzeugen, das unabhängig vom ioBroker-Abbild ist.
Bei mir startet die Homebridge dann zwar korrekt, nur leider kann die Home App sie nicht finden. Aber das ist kein Problem des ioBroker-Abbilds.
Gruß,
Thorsten
-
@dtp:@ask:Ich habe aber auch das Problem mit dem HomeKit Adapter, dieser startet sich nicht - Fehlermeldung: `
Kurze Frage. Hast Du die Homebridge im Docker-Abbild des ioBroker installiert? Das würde ich ehrlich gesagt nicht machen, sondern ein neues Abbild erzeugen, das unabhängig vom ioBroker-Abbild ist.
Bei mir startet die Homebridge dann zwar korrekt, nur leider kann die Home App sie nicht finden. Aber das ist kein Problem des ioBroker-Abbilds.
Gruß,
Thorsten `
Homebridge?
Sinn des Homekit-Adapters im ioBroker ist, die Homebridge nicht mehr zu benötigen.
Bis zum letzten Docker-Update (vermute ich) hat der Adapter einwandfrei im Docker funktioniert.
Ob es nun am Docker oder am Image liegt kann ich allerdings nicht genau sagen. Wie gesagt, hat es schon reibungslos funktioniert.
Gruß Carsten
-
Wie Carsten geschrieben hat, Homebridge benutze ich nicht sondern den HomeKit-Adapter im ioBroker.
Gruß
Alex
-
Da der HK-Adapter ja früher funktionierte habe ich mal bei Synology nachgefragt, um herauszufinden was die geändert haben.
Das ist die Antwort:
! ` > Sehr geehrter Kunde,
vielen Dank für Ihre Anfrage.
Mit dem letzten Update haben wir lediglich einen Fehler mit bestimmten Containern behoben: https://www.synology.com/en-us/releaseNote/Docker
Wenn der Container gestartet werden kann, aber nicht mit Ihrem Apple Home Kit kommuniziert, dann müssten Sie sich zwecks support bitte an den Maintainer des jeweiligen Containers zu wenden (http://forum.iobroker.net/), da wir leider mit der Konfiguration der Container nicht behilflich sein dürfen und können. `
Mit mehr habe ich auch nicht wirklich gerechnet.
-
Da der HK-Adapter ja früher funktionierte habe ich mal bei Synology nachgefragt, um herauszufinden was die geändert haben.
Das ist die Antwort:
! ` > Sehr geehrter Kunde,
vielen Dank für Ihre Anfrage.
Mit dem letzten Update haben wir lediglich einen Fehler mit bestimmten Containern behoben: https://www.synology.com/en-us/releaseNote/Docker
Wenn der Container gestartet werden kann, aber nicht mit Ihrem Apple Home Kit kommuniziert, dann müssten Sie sich zwecks support bitte an den Maintainer des jeweiligen Containers zu wenden (http://forum.iobroker.net/), da wir leider mit der Konfiguration der Container nicht behilflich sein dürfen und können. `
Mit mehr habe ich auch nicht wirklich gerechnet. `
Hast du mal eine Version früher geschaut… am 15.11. gab es ja ein größeres Update des Docker Pakets (Update Docker Daemnon usw...). Das hat mir z.B. die Problematik mit dem Hostname eingebracht...
Wie auch immer... ich würde gerne was zum Homekit-Problem tun, weiß aber nicht was... Wie bereits geschrieben kann ich installieren und er wird grün. Die Funktion kann ich nicht prüfen, weil mein altes iPad keine iOS Updates mehr bekommt und ich somit kein Device besitze welches mit dem Adapter kommunizieren könnte... Falls es eine andere Möglichkeit gibt, lasst es mich wissen.
MfG,
André
-
Ach verdammt,
irgendwie läuft das noch immer nicht richtig.
Der Homekit-Adapter läuft zwar aber vom iOS aus finde ich keine HomeKit Bridge.
… `
Hallo Carsten,
ist das immer noch der Stand? Also dass die Bridge nicht gefunden wird? Beim recherchieren zu yahka habe ich hier noch was gefunden:
http://forum.iobroker.net/viewtopic.php … hka#p39425
Falls die Bridge nicht mehr erkannt wird, hilft es oftmals den "Username" zu ändern. Dieser muss immer in Form einer MAC-Adresse eingegeben werden. `
Vielleicht ist es ja nur noch eine Kelinigkeit? Nachdem ja Avahi und dbus laufen…
Außerdem habe ich gesehen, dass in der Konfiguration des yahka ein Port hinterlegt ist. Standard ist 0 (automatisch). Wenn ich recht erinnere, dann hast du ioBroker ja mit Portforwarding laufen... Hast du dort mal probiert einen festen Port zu verwenden?
MfG,
André
-
So, seit drei Tagen hab ich meinen ioBroker nun auch auf der DS718+ laufen.
Diese hat zwar zur Zeit nur die 2GB RAM aber so wie es aussieht läuft alles Rund, zumindestens bis jetzt.
Hab nur zwei kleinere Probleme:
Problem 1
Dieses Skript funktionert nicht mehr.
var debug = true; // zum debuggen) /** Täglich um 4 Uhr früh den Kalendereintrag auslesen **/ schedule("* 4 * * *", function() { if( getState("ical.0.events.TD").val === true) { if(debug) log("Tagdienst: JA"); setState ("hm-rega.0.12176", true); } else { if(debug) log("Tagdienst: NEIN"); setState ("hm-rega.0.12176", false); } });
Anscheinend startet der shedul das Script nicht mehr.
Hab nur keine Idee warum nicht.
Problem 2
Das mit der automatschen Datensicherung hab ich auch noch nicht hinbekommen.
-
Hallo Carsten,
ist das immer noch der Stand? Also dass die Bridge nicht gefunden wird? Beim recherchieren zu yahka habe ich hier noch was gefunden:
http://forum.iobroker.net/viewtopic.php … hka#p39425
Falls die Bridge nicht mehr erkannt wird, hilft es oftmals den "Username" zu ändern. Dieser muss immer in Form einer MAC-Adresse eingegeben werden. `
Vielleicht ist es ja nur noch eine Kelinigkeit? Nachdem ja Avahi und dbus laufen… `
Ich hatte versucht eine neue ID einzutragen aber Apple findet nichts im Netzwerk.Außerdem habe ich gesehen, dass in der Konfiguration des yahka ein Port hinterlegt ist. Standard ist 0 (automatisch). Wenn ich recht erinnere, dann hast du ioBroker ja mit Portforwarding laufen… Hast du dort mal probiert einen festen Port zu verwenden?
MfG,
André `
Ja, das hatte ich versucht.
Sobald ich etwas mehr Zeit habe werde ich mir mal nen RPI als Multihost-Zwischenlösung aufsetzen.
Bis dahin hoffe ich noch auf einen Geistesblitz
-
So, habe nun, als absoluter Anfänger, auch den iobroker auf meiner DS1515+ am Laufen.
Vielen Dank für das ausführliche und wirklich gut gemachte Tutorial
Bei mir habe ich nur das Problem, dass auf der admin Seite, obwohl ich 8GB Arbeitsspeicher in der Synology verbaut habe, folgendes angezeigt wird:
Insgesamt RAM verbraucht: 311 MB / Frei: 183 MB (2%) [Host: ioBroker - 7 Prozesse]
Woran liegt das?
Grüße
nova
4947_bildschirmfoto_2018-01-17_um_14.04.25.png
4947_bildschirmfoto_2018-01-17_um_14.06.40.png -
@ask:Wie Carsten geschrieben hat, Homebridge benutze ich nicht sondern den HomeKit-Adapter im ioBroker. `
Ah sorry, das habe ich dann etwas falsch interpretiert. Ich nutze den yahka-Adapter nicht, weil er mir zu aufwändig in der Konfiguration ist. Da ziehe ich die Homebridge eindeutig vor.
Aber es scheint da ein grundsätzliches Problem mit dem Zugriff der Home App unter iOS auf den Docker-Container zu geben. Ich habe es nämlich ebenfalls bisher nicht geschafft, auf meine Homebridge zuzugreifen, wenn sie im Docker läuft. Richte ich sie dagegen mit dem exakt gleichen config-json-File und denselben Plugins auf einem Raspi 3 ein, wird sie sofort problemlos erkannt. Ich bin deshalb wieder zurück zum Raspi 3.
Das hilft euch jetzt nicht viel; ich weiß. Aber vielleicht grenzt es die Fehlersuche etwas ein.
-
So, seit drei Tagen hab ich meinen ioBroker nun auch auf der DS718+ laufen.
Diese hat zwar zur Zeit nur die 2GB RAM aber so wie es aussieht läuft alles Rund, zumindestens bis jetzt.
Hab nur zwei kleinere Probleme:
Problem 1
Dieses Skript funktionert nicht mehr.
var debug = true; // zum debuggen) /** Täglich um 4 Uhr früh den Kalendereintrag auslesen **/ schedule("* 4 * * *", function() { if( getState("ical.0.events.TD").val === true) { if(debug) log("Tagdienst: JA"); setState ("hm-rega.0.12176", true); } else { if(debug) log("Tagdienst: NEIN"); setState ("hm-rega.0.12176", false); } });
Anscheinend startet der shedul das Script nicht mehr.
Hab nur keine Idee warum nicht.
Problem 2
Das mit der automatschen Datensicherung hab ich auch noch nicht hinbekommen. `
ich habe die gleiche Station.. bei mir lüppt der schedule…
die Datensicherung kannst du über die Aufgabensteuerung anlegen..
-
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 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 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é