NEWS
Smartmeter Exception nach Umzug von Docker /var/lib/docker
-
Hallo zusammen,
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:
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?
Viele Grüße
Jo
-
Soweit mir bekannt musst du den USB Port Durchreichen
https://forum.iobroker.net/search?term=Docker usb&in=titlesposts&page=2
-
@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:
$ ./iobroker add smartmeter --host 6d0f1bdd8703 NPM version: 6.14.4 npm install iobroker.smartmeter@3.1.2 --loglevel error --prefix "/opt/iobroker" (System call) sh: 1: prebuild-install: Permission denied
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.
Viele Grüße
Jo
-
Du musst mal gucken, ob das zusätzliche Device zufällig mit der Flag noexec gemountet ist. Das darf es nämlich nicht.
Und du hättest auch nicht unbedingt das komplette Verzeichnis von Docker umziehen müssen, es reicht ja auch, wenn du den Container so startest, dass nur die Dateien von iobroker usw. auf dem externen Datenträger liegen.
Also mit
-v "/mnt/usb-stick/iobroker:/opt/iobroker" o.ä. -
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
-
Du musst in Portainer unter "Volume mapping" dann rechts das blaue "Bind" anklicken
-
@Holzlenkrad, statt Volume also Bind nutzen? Ok, probiere ich aus. Danke für den Tipp!