@jgee2 Lass mich raten, du hast kein neues iobroker_data Verzeichnis angelegt sondern nur den Inhalt gelöscht? Wenn ja ist das logisch da in dem Verzeichnis auch versteckte Dateien sind. Daher sagte ich auch "erstelle dir ein neues iobroker_data-Verzeichnis"
Nein, das root-Verzeichnis war ein neues mit einem anderen Namen. Das Backup war bereits defekt. Der ioBroker hat sogar gestartet und alle Adapter ausgeführt (Daten wurden an influxDB gesendet und mit dem KNX-Bus ausgetauscht), aber die Weboberfläche des Admin-Adapters wollte nicht starten. Ältere Backups waren zu alt für meinen Zweck. Mittlerweile habe ich alles wieder hergestellt und bin dadurch etwas schlauer geworden als zuvor.
super Tipp, danke dir! Schaue ich mir nachher direkt an. Der größte Aufwand war tatsächlich, die Scripte aus der JSON-File herauszuziehen und wieder in Betrieb zu nehmen.
Hi! Das habe ich gemacht. Die Fehlermeldung beim Starten des Containers war sinngemäß, dass Dateien im Verzeichnis entdeckt wurden, die kein ioBroker Backup wären. Da habe ich dann aufgegeben. Vermutlich war das Backup bereits korrupt. Hab was draus gelernt: Meine ioBroker-Instanz wird bei mir jetzt genauso pfleglich behandelt, wie auch andere Daten. Backups mache ich jetzt regelmäßig und automatisch...
ja, da habe ich viel durcheinander gebracht, bitte entschuldige. Versucht hatte ich tatsächlich ein Update des js-controllers, das dann fehlgeschlagen ist. Nochmals danke für deine Hilfe.
Leider bekomme ich auch mit deiner Anleitung hier den Container nicht zum Laufen. Weder im Bridge- noch im Host-Modus. Ich habe daraufhin einen neuen ("nackten") Container installiert und darin mein Backup mit "iobroker restore 0" hergestellt. Sobald das Backup wiederhergestellt wurde, funktioniert auch der Container nicht mehr. Ich scheine mir da richtig was kaputt gemacht zu haben.
Ich habe bereits begonnen, alles neu aufsetzen, das ist soweit lediglich Arbeit... Nur einige meiner Javascripts würde ich gerne wiederherstellen, da da viel Arbeit reingeflossen ist. Weißt du (oder sonst jemand), wie ich aus dem ioBroker Backup einzelne Teile, nämlich die eigenen Javascript-Dateien, wiederherstellen kann? Soweit ich das sehen kann, liegen die alle in einer ziemlich großen JSON-Datei, in meinem Fall 8 MB. Da hat mein Atom Editor große Schwierigkeiten mit...
Seit letzter Woche habe ich den ioBroker auch auf einer Synology Diskstation innerhalb eines Docker Containers laufen, so wie André das auf seinem hervorragenden Blog beschrieben hat.
Heute habe ich versucht, NPM von Version 10 auf 12 zu aktualisieren, so wie in dem Blog beschrieben. Leider hat der Neustart nicht mehr geklappt.
Danach habe ich versucht, den JS-controller neu zu installieren, was zu dieser Fehlermeldung geführt hat:
root@xyz:/opt/iobroker# pkill io
root@xyz:/opt/iobroker# npm install iobroker.js-controller –-production
sudo: Die Audit-Nachricht kann nicht gesendet werden: Die Operation ist nicht erlaubt
npm ERR! code EINVALIDTAGNAME
npm ERR! Invalid tag name "–-production": Tags may not have any characters that encodeURIComponent encodes.
npm ERR! A complete log of this run can be found in:
npm ERR! /opt/iobroker/.npm/_logs/2020-04-27T11_26_04_789Z-debug.log
Das Log File zeigt folgendes:
0 info it worked if it ends with ok
1 verbose cli [ '/usr/bin/node',
1 verbose cli '/usr/bin/npm',
1 verbose cli 'install',
1 verbose cli 'iobroker.js-controller',
1 verbose cli '–-production' ]
2 info using npm@6.14.4
3 info using node@v10.20.1
4 verbose config Skipping project config: /opt/iobroker/.npmrc. (matches userconfig)
5 verbose npm-session b424af1cc19f8c6a
6 silly install loadCurrentTree
7 silly install readLocalPackageData
8 silly fetchPackageMetaData error for iobroker.js-controller@^3.0.19 install iobroker.js-controller –-production is not a legal HTTP header value
9 timing stage:rollbackFailedOptional Completed in 5ms
10 timing stage:runTopLevelLifecycles Completed in 2794ms
11 verbose stack Error: Invalid tag name "–-production": Tags may not have any characters that encodeURIComponent encodes.
11 verbose stack at invalidTagName (/usr/lib/node_modules/npm/node_modules/npm-package-arg/npa.js:91:15)
11 verbose stack at fromRegistry (/usr/lib/node_modules/npm/node_modules/npm-package-arg/npa.js:296:13)
11 verbose stack at resolve (/usr/lib/node_modules/npm/node_modules/npm-package-arg/npa.js:81:12)
11 verbose stack at npa (/usr/lib/node_modules/npm/node_modules/npm-package-arg/npa.js:52:10)
11 verbose stack at /usr/lib/node_modules/npm/lib/install/deps.js:227:14
11 verbose stack at /usr/lib/node_modules/npm/node_modules/slide/lib/async-map.js:52:35
11 verbose stack at Array.forEach (<anonymous>)
11 verbose stack at /usr/lib/node_modules/npm/node_modules/slide/lib/async-map.js:52:11
11 verbose stack at Array.forEach (<anonymous>)
11 verbose stack at asyncMap (/usr/lib/node_modules/npm/node_modules/slide/lib/async-map.js:51:8)
11 verbose stack at exports.getAllMetadata (/usr/lib/node_modules/npm/lib/install/deps.js:224:3)
11 verbose stack at Installer.loadArgMetadata (/usr/lib/node_modules/npm/lib/install.js:366:3)
11 verbose stack at /usr/lib/node_modules/npm/lib/install.js:701:16
11 verbose stack at BB.join.then (/usr/lib/node_modules/npm/lib/install/read-shrinkwrap.js:33:16)
11 verbose stack at tryCatcher (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/util.js:16:23)
11 verbose stack at Promise._settlePromiseFromHandler (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:517:31)
12 verbose cwd /opt/iobroker
13 verbose Linux 3.10.105
14 verbose argv "/usr/bin/node" "/usr/bin/npm" "install" "iobroker.js-controller" "–-production"
15 verbose node v10.20.1
16 verbose npm v6.14.4
17 error code EINVALIDTAGNAME
18 error Invalid tag name "–-production": Tags may not have any characters that encodeURIComponent encodes.
19 verbose exit [ 1, true ]
Leider übersteigt dies meine Kenntnisse. Kann mir jemand helfen oder einen Tipp geben?
Hallo @Holzlenkrad! Danke für deine Antwort. Mit dem zusätzlichen Device meinst du nicht den USB-Lesekopf auf den Smartmeter zugreifen will, sondern das Speichermedium auf dem jetzt das iobroker-Verzeichnis liegt oder? Das wird ohne noexec flag in der fstab gemountet. Ich nutze Portainer und habe dort keine Möglichkeit gefunden, das Container-Volume auf ein anderes Medium zu mounten. Daher habe ich mich entschlossen, das gesamte Verzeichnis umzuziehen. Eine Lösung habe ich noch nicht gefunden. Dummerweise läuft nach dem Umzug des gesamten iobroker-Verzeichnises auch der KNX-Adapter nicht mehr. Ich habe ein größeres Speichermedium bestellt und werde alles sauber neu einrichten. Viele Grüße Jo
@wendy2702 Daran liegt es leider nicht. Das Device ist in iobroker verfügbar und sendet Daten. Das Problem scheint mir eher hier, in Zeile 6, zu liegen:
host.6d0f1bdd8703 install adapter smartmeter
upload [5] smartmeter.admin /opt/iobroker/node_modules/iobroker.smartmeter/admin/words.js words.js application/javascript
upload [4] smartmeter.admin /opt/iobroker/node_modules/iobroker.smartmeter/admin/tooltip.css tooltip.css text/css
upload [3] smartmeter.admin /opt/iobroker/node_modules/iobroker.smartmeter/admin/smartmeter.png smartmeter.png image/png
upload [2] smartmeter.admin /opt/iobroker/node_modules/iobroker.smartmeter/admin/smartmeter.jpg smartmeter.jpg image/jpeg
upload [1] smartmeter.admin /opt/iobroker/node_modules/iobroker.smartmeter/admin/questionmark.png questionmark.png image/png
upload [0] smartmeter.admin /opt/iobroker/node_modules/iobroker.smartmeter/admin/index.html index.html text/html
host.6d0f1bdd8703 object system.adapter.smartmeter created/updated
host.6d0f1bdd8703 create instance smartmeter
host.6d0f1bdd8703 object smartmeter.0.info.connection created
host.6d0f1bdd8703 object smartmeter.0.info created
host.6d0f1bdd8703 object system.adapter.smartmeter.0.sigKill created
host.6d0f1bdd8703 object system.adapter.smartmeter.0.eventLoopLag created
host.6d0f1bdd8703 object system.adapter.smartmeter.0.outputCount created
host.6d0f1bdd8703 object system.adapter.smartmeter.0.inputCount created
host.6d0f1bdd8703 object system.adapter.smartmeter.0.uptime created
host.6d0f1bdd8703 object system.adapter.smartmeter.0.memRss created
host.6d0f1bdd8703 object system.adapter.smartmeter.0.memHeapTotal created
host.6d0f1bdd8703 object system.adapter.smartmeter.0.memHeapUsed created
host.6d0f1bdd8703 object system.adapter.smartmeter.0.cputime created
host.6d0f1bdd8703 object system.adapter.smartmeter.0.cpu created
host.6d0f1bdd8703 object system.adapter.smartmeter.0.compactMode created
host.6d0f1bdd8703 object system.adapter.smartmeter.0.connected created
host.6d0f1bdd8703 object system.adapter.smartmeter.0.alive created
host.6d0f1bdd8703 object system.adapter.smartmeter.0 created
process exited with code 0
Kann mir jemand sagen, wie ich das Problem lösen kann? Momentan tendiere ich dazu, einfach eine größere Micro-SD zu nutzen und das Problem damit zu umgehen.
nachdem ich in diesem Forum keine Lösung für mein Problem finden konnte, hier nun mein erster Beitrag. Ich hoffe, ich mache dabei alles richtig.
Ich bin kein versierter Linux-, Docker- oder ioBroker-Profi, weshalb ich nun auch vor folgendem Problem stehe, das ich ohne Hilfe nicht lösen kann:
Mein ioBroker läuft auf einem Raspberry Pi 4B mit Debian Buster Light in einem Docker Container vom Image buanet/iobroker. Die Container verwalte ich mit Portainer. Alle Images und Adapter sind "latest" und wurden gestern frisch installiert. Der Smartmeter-Adapter (Version 3.1.2) lief ohne Probleme und konnte von /dev/ttyUSB0 Daten lesen und im ioBroker bereitstellen, bis ich das Docker Default-Verzeichnis /var/lib/docker gemäß dieser Anleitung auf ein anderes Speichermedium umgezogen habe.
Danach habe ich alle Docker-Container neu erstellt, und die laufen auch ohne Probleme. Auch der ioBroker-Container und die Adapter funktionieren, bis auf den Smartmeter-Adapter. Der wirft im Log folgende Exception:
host.8c0fcaf3bc7c 2020-04-14 16:36:41.220 error instance system.adapter.smartmeter.0 terminated with code 1 (JS_CONTROLLER_STOPPED)
host.8c0fcaf3bc7c 2020-04-14 16:36:41.220 error Caught by controller[0]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
host.8c0fcaf3bc7c 2020-04-14 16:36:41.219 error Caught by controller[0]: at Module._compile (internal/modules/cjs/loader.js:778:30)
host.8c0fcaf3bc7c 2020-04-14 16:36:41.219 error Caught by controller[0]: at Object.<anonymous> (/opt/iobroker/node_modules/@serialport/bindings/lib/linux.js:2:36)
host.8c0fcaf3bc7c 2020-04-14 16:36:41.219 error Caught by controller[0]: at bindings (/opt/iobroker/node_modules/@serialport/bindings/node_modules/bindings/bindings.js:112:48)
host.8c0fcaf3bc7c 2020-04-14 16:36:41.218 error Caught by controller[0]: at require (internal/modules/cjs/helpers.js:25:18)
host.8c0fcaf3bc7c 2020-04-14 16:36:41.218 error Caught by controller[0]: at Module.require (internal/modules/cjs/loader.js:692:17)
host.8c0fcaf3bc7c 2020-04-14 16:36:41.217 error Caught by controller[0]: at Function.Module._load (internal/modules/cjs/loader.js:585:3)
host.8c0fcaf3bc7c 2020-04-14 16:36:41.217 error Caught by controller[0]: at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
host.8c0fcaf3bc7c 2020-04-14 16:36:41.217 error Caught by controller[0]: at Module.load (internal/modules/cjs/loader.js:653:32)
host.8c0fcaf3bc7c 2020-04-14 16:36:41.217 error Caught by controller[0]: at Object.Module._extensions..node (internal/modules/cjs/loader.js:807:18)
host.8c0fcaf3bc7c 2020-04-14 16:36:41.217 error Caught by controller[0]: Error: /opt/iobroker/node_modules/@serialport/bindings/build/Release/bindings.node: failed to map segment from shared object
host.8c0fcaf3bc7c 2020-04-14 16:36:41.216 error Caught by controller[0]: ^
host.8c0fcaf3bc7c 2020-04-14 16:36:41.216 error Caught by controller[0]: throw e;
host.8c0fcaf3bc7c 2020-04-14 16:36:41.216 error Caught by controller[0]: /opt/iobroker/node_modules/@serialport/bindings/node_modules/bindings/bindings.js:121
host.8c0fcaf3bc7c 2020-04-14 16:36:40.390 info instance system.adapter.smartmeter.0 started with pid 973
host.8c0fcaf3bc7c 2020-04-14 16:36:10.381 info Restart adapter system.adapter.smartmeter.0 because enabled
Auffällig ist, dass der Adapter in der ioBroker-Konfiguration die Portliste nicht mehr erstellen kann. Per SSH habe ich daraufhin als root auf dem Raspberry geprüft, dass das Device /dev/ttyUSB0 noch funktioniert und Daten sendet. Auch in der Shell des ioBroker-Containers habe ich das geprüft. Auch dort sendet das Device fleißig Daten.
Habe ich durch die Verzeichnis-Änderung womöglich ein Rechte-Problem erzeugt? In der Container-Shell habe ich ja vermutlich andere Rechte als der ioBroker.
Da ich, wie gesagt Gelegenheitsbastler bin, bin ich mit dem Fehler und Lösungen leider überfordert. Ich weiß auch nicht, welche weiteren Informationen ihr bräuchtet, um mir zu helfen. Und einen Dump von allem, was mir relevant erscheint, möchte ich euch ersparen. Kann mir jemand helfen und sagen, welche Informationen er/sie dafür bräuchte?