Offizielles FHEM Docker Basis Image für verschiedene Plattformen

Begonnen von Loredo, 28 Juli 2018, 21:24:57

Vorheriges Thema - Nächstes Thema

ch.eick

#2220
Hey Rob,

Das fhem als Python Paket sind Funktionen im Python, um Nachrichten ans Fhem zu schicken.

Im Moment bin ich noch nicht in der Lage einen eigenen Container zu bauen. Ich wüsste auch nicht, wie ich dann dort die Kommunikation z.b. zwischen der MySQL Datenbank, Fhem und eine Paramerter Übergabe umsetzen sollte.
Virtuelle Python Umgebungen sind mir noch unbekannt, wenn es dazu eine Vorlage gibt und wie man das in den Fhem Container bringt könnte ich das man probieren. Letztlich müssten dann aber ja doch die Python Pakete da irgend wie rein.
Meine PV_KI_PROGNOSE.py bekommt beim Aufruf Parameter, holt sich damit eine MySQL Tabelle und schreibt das Ergebnis wieder in die DB, bzw auch ins Fhem. Damit Fhem auch den Status kennt wird dieser ebenfalls ins Fhem geschrieben.

Meine Kenntnisse beschränken sich auf das Zusammenkopieren und Anpassen vorhandener Implementierungen.
Mit Containern die mit mqtt kommunizieren komme ich jedoch schon recht gut zurecht.

VG Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Sidey

Zitat von: cbl am 15 April 2025, 21:33:58
=> => # 2025-04-15T21:23:28,3195,SOAP-Lite-1.27| Failed to install distribution, because of installing some dependencies failed
=> => # 2025-04-15T21:23:28,3195| --
=> => # 2025-04-15T21:23:28,3195| Installation failed. The direct cause of the failure comes from the following packages/distributions; you may want to grep this log file by them:
 => => # 2025-04-15T21:23:28,3195|  * Net-SSLeay-1.94

Da auch das Dockerfile, mit dem ich erfolgreich im Februar das Image bauen konnte, nicht mehr funktioniert, hat sich etwas drumherum verändert. Die Frage ist, was? Beim erneuten Bauen wurde auch ein neues FHEM-Image gezogen. Hat sich darin etwas bezüglich cpm verändert?

Beide genannten CPAN Pakete sind im Image bereits enthalten, sie liegen unterhalb von /usr/src/app/core.

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

rob

Zitat von: ch.eick am 15 April 2025, 22:34:31...
Das fhem als Python Paket sind Funktionen im Python, um Nachrichten ans Fhem zu schicken.
...
OK verstanden, dann vergiss bitte meinen Hinweis. Da war ich auf dem falschen Dampfer  ;D  O:-)

VG
rob

cbl

Zitat von: Sidey am 15 April 2025, 22:54:15
Zitat von: cbl am 15 April 2025, 21:33:58
=> => # 2025-04-15T21:23:28,3195,SOAP-Lite-1.27| Failed to install distribution, because of installing some dependencies failed
=> => # 2025-04-15T21:23:28,3195| --
=> => # 2025-04-15T21:23:28,3195| Installation failed. The direct cause of the failure comes from the following packages/distributions; you may want to grep this log file by them:
 => => # 2025-04-15T21:23:28,3195|  * Net-SSLeay-1.94

Da auch das Dockerfile, mit dem ich erfolgreich im Februar das Image bauen konnte, nicht mehr funktioniert, hat sich etwas drumherum verändert. Die Frage ist, was? Beim erneuten Bauen wurde auch ein neues FHEM-Image gezogen. Hat sich darin etwas bezüglich cpm verändert?

Beide genannten CPAN Pakete sind im Image bereits enthalten, sie liegen unterhalb von /usr/src/app/core.

Grüße Sidey

Hallo,

Danke für die schnelle Antwort. Dann habe ich die falschen als Beispiel genannt (werde sie aber natürlich gleich aus dem Dockerfile entfernen und gleich prüfen, was ich noch doppelt habe).

Das Paket, das ich hinzufügen möchte, ist AI::DecisionTree. Die Meldung ist dieselbe.


Gruß
Christian

Sidey

Zitat von: cbl am 16 April 2025, 10:08:44Das Paket, das ich hinzufügen möchte, ist AI::DecisionTree. Die Meldung ist dieselbe.

Das ist auch schon enthalten.


Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

cbl

Zitat von: Sidey am 16 April 2025, 18:57:25
Zitat von: cbl am 16 April 2025, 10:08:44Das Paket, das ich hinzufügen möchte, ist AI::DecisionTree. Die Meldung ist dieselbe.

Das ist auch schon enthalten.

Grüße Sidey

Das SolarForecast-Modul ist da anderer Meinung. Dann muss ich da mal forschen.

Danke für dir Aufklärung. Ich hatte die cpm-Logeinträge nicht in diese Richtung interpretiert. Aber das ist natürlich kein FHEM-Thema.

Gruß
Christian

cbl

Zitat von: cbl am 16 April 2025, 22:18:14
Zitat von: Sidey am 16 April 2025, 18:57:25
Zitat von: cbl am 16 April 2025, 10:08:44Das Paket, das ich hinzufügen möchte, ist AI::DecisionTree. Die Meldung ist dieselbe.

Das ist auch schon enthalten.

Grüße Sidey

Das SolarForecast-Modul ist da anderer Meinung. Dann muss ich da mal forschen.

Danke für dir Aufklärung. Ich hatte die cpm-Logeinträge nicht in diese Richtung interpretiert. Aber das ist natürlich kein FHEM-Thema.

Hallo,

ich hatte jetzt etwas mehr Zeit und habe genauer geschaut:

Ich verwende ein frisch gebautes fhem-docker-bookworm-5.1-threaded-Image. Das zeigen mir DockerImage in FHEM sowie der Docker Inspector auch an.
Im Container finde ich in unter /usr/src/app/core/lib/perl5 und /usr/src/app/3rdparty/lib/perl5 keine Spuren von AI::DecisionTree. Das Modul SolarForecast meckert auch, dass das Modul fehlt.

Wenn ich im Container eine manuelle Installation versuche mit cpan install AI::DecisionTree, scheitert die jedoch auch.

Checksum for /root/.cpan/sources/authors/id/E/ET/ETJ/GraphViz-2.26.tar.gz ok
Configuring E/ET/ETJ/GraphViz-2.26.tar.gz with Makefile.PL
Can't exec "dot": No such file or directory at Makefile.PL line 21.
Please install Graphviz from http://www.graphviz.org/.

Das lese ich so, dass es nicht am FHEM-Docker-Image sondern gerade generell am AI::DecisionTree oder konkreter der Voraussetzung GraphViz, die gerade nicht sauber über CPAN installierbar ist, scheitert.

Richtig?

Gruß
Christian

passibe

Versuch es mal über apt mit dem debian-paket libai-decisiontree-perl

Sidey

Zitat von: passibe am 17 April 2025, 23:48:34Versuch es mal über apt mit dem debian-paket libai-decisiontree-perl

Das funktioniert nicht, das kannst Du gleich lassen.
Ich muss später mal schauen warum es fehlt. Es sollte vorhanden sein aber das Logo ist so endlos lange und mit dem Handy klappt die Suche nicht :(

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

Sidey

Zitat von: cbl am 17 April 2025, 23:44:39Das lese ich so, dass es nicht am FHEM-Docker-Image sondern gerade generell am AI::DecisionTree oder konkreter der Voraussetzung GraphViz, die gerade nicht sauber über CPAN installierbar ist, scheitert.

Ich habe den Fehler gefunden. AI::DecisionTree ist nicht installiert, sollte es aber sein.
Der BUILD neuer Images für einen Test läuft, aber so eine Stunde wird es mindestens dauern bis die für einen Test verfügbar sind.

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

cbl

Zitat von: Sidey am 18 April 2025, 12:11:58
Zitat von: cbl am 17 April 2025, 23:44:39Das lese ich so, dass es nicht am FHEM-Docker-Image sondern gerade generell am AI::DecisionTree oder konkreter der Voraussetzung GraphViz, die gerade nicht sauber über CPAN installierbar ist, scheitert.

Ich habe den Fehler gefunden. AI::DecisionTree ist nicht installiert, sollte es aber sein.
Der BUILD neuer Images für einen Test läuft, aber so eine Stunde wird es mindestens dauern bis die für einen Test verfügbar sind.

Grüße Sidey

Vielen Dank, Sidey!


Gleich die Folgefrage:
Für Text2Speech mit Sonos2Mqtt bräuchte ich mp3wrap. Laut Anleitung bei GitHub geschieht das ebenso wie bei den Perl-Packages über das Dockerfile.

        RUN <<EOF
          LC_ALL=C DEBIAN_FRONTEND=noninteractive apt-get update
          LC_ALL=C DEBIAN_FRONTEND=noninteractive apt-get install -qqy --no-install-recommends mp3wrap
          LC_ALL=C apt-get autoremove -qqy && LC_ALL=C apt-get clean
        EOF

Beim Bau wie im laufenden Container scheitert die Installation an haufenweise unkonfigurierten Dependencies. Die erste Fehlermeldung schon nach "Reading package list" beim Ausführen von apt-get sieht so aus:

Iconv.c: loadable library and perl binaries are mismatched (got first handshake key 0xa880080, needed 0xa400080)
Die Internetrecherche deutet darauf hin, dass hier über den Paketmanager sowie über cpan installierte Perl-Packages im Konflikt stehen.

Viele Grüße
Christian

Sidey

Zitat von: cbl am 18 April 2025, 12:25:44Gleich die Folgefrage:
Für Text2Speech mit Sonos2Mqtt bräuchte ich mp3wrap. Laut Anleitung bei GitHub geschieht das ebenso wie bei den Perl-Packages über das Dockerfile.

mp3wrap ist auch enthalten :)
Was aber vermutlich nicht geht ist MP3::Info usw. denn jemand war vor 10 Jahren so schlau es in FHEM mit abzulegen:
https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/lib/MP3

Ich vermute aber mal, dass die FHEM Module es von da nicht nutzen.
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

Sidey

Zitat von: cbl am 18 April 2025, 12:25:44Für Text2Speech mit Sonos2Mqtt bräuchte ich mp3wrap.


Kannst Du bitte einmal mit dem bugfix Image testen:
https://github.com/fhem/fhem-docker/pkgs/container/fhem-docker/398318795?tag=dev-graphwiz-threaded-bookworm

Ich habe es mir geladen und sowohl DevisionTree als auch mp3wrap sind vorhanden:
root@85b1c9479fdf:/opt/fhem# ls -l /usr/src/app/core/lib/perl5/x86_64-linux-gnu-thread-multi/AI/DecisionTree.pm
-r--r--r-- 1 root root 22889 Mär  3  2012 /usr/src/app/core/lib/perl5/x86_64-linux-gnu-thread-multi/AI/DecisionTree.pm
root@85b1c9479fdf:/opt/fhem#
root@85b1c9479fdf:/opt/fhem# mp3wrap -a
Mp3Wrap Version 0.5 (2003/Jan/16). See README and COPYING for more!

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

cbl

Zitat von: Sidey am 18 April 2025, 15:29:33
Zitat von: cbl am 18 April 2025, 12:25:44Für Text2Speech mit Sonos2Mqtt bräuchte ich mp3wrap.


Kannst Du bitte einmal mit dem bugfix Image testen:
https://github.com/fhem/fhem-docker/pkgs/container/fhem-docker/398318795?tag=dev-graphwiz-threaded-bookworm

Ich habe es mir geladen und sowohl DevisionTree als auch mp3wrap sind vorhanden:
root@85b1c9479fdf:/opt/fhem# ls -l /usr/src/app/core/lib/perl5/x86_64-linux-gnu-thread-multi/AI/DecisionTree.pm
-r--r--r-- 1 root root 22889 Mär  3  2012 /usr/src/app/core/lib/perl5/x86_64-linux-gnu-thread-multi/AI/DecisionTree.pm
root@85b1c9479fdf:/opt/fhem#
root@85b1c9479fdf:/opt/fhem# mp3wrap -a
Mp3Wrap Version 0.5 (2003/Jan/16). See README and COPYING for more!

Vielen Dank, hatte ich schon gesehen und den Bau meines daraus entstehenden Images angestoßen. Das ist nun fertig und ich habe den Container neu gestartet mit frischem Image.
Abgesehen von einem Haufen Warnings beim Containerstart zu "when", "given" und "Smartmatch" als deprecated Befehle in PERL, die es vorher nicht gab, scheint es zu funktionieren:

2025.04.18 15:40:51 1: PERL WARNING: when is deprecated at ./FHEM/55_DWD_OpenData.pm line 927.
...
2025.04.18 15:40:56 1: PERL WARNING: given is deprecated at lib/FHEM/Core/Weather.pm line 227.
...
2025.04.18 15:40:57 1: PERL WARNING: Smartmatch is deprecated at ./FHEM/11_OWDevice.pm line 601.

Der Healthcheck des Docker-Devices in FHEM, der vorher nicht gemeckert hat, ist nun nicht erfolgreich (bzw. wird vermutlich gar nicht ausgeführt, sodass es die Ergebnisdatei nicht gibt):
Read result file: Cannot open /tmp/health-check.result: No such file or directory
AI/DecisionTree.pm ist da (bei mir entsprechend der Architektur unter /usr/src/app/core/lib/perl5/arm-linux-gnueabihf-thread-multi-64int/AI)
Und mp3wrap gibt es auch.

Vielen Dank für deine Hilfe!


Gruß
Christian

passibe

Zitat von: cbl am 18 April 2025, 15:56:13Abgesehen von einem Haufen Warnings beim Containerstart zu "when", "given" und "Smartmatch" als deprecated Befehle in PERL, die es vorher nicht gab, scheint es zu funktionieren:
Siehe dazu diesen Thread ab hier: https://forum.fhem.de/index.php?topic=83097.msg1339444#msg1339444