Neues Modul: ESPEInk für e-Paper Displays (Name geändert, war ESP8266EInk)

Begonnen von eki, 02 Oktober 2019, 10:24:53

Vorheriges Thema - Nächstes Thema

hajo23

Zitat von: maltejahn am 20 Mai 2022, 14:31:31
...

Neues Problemchen:

In Proplanta lasse ich mir per Userreadings ein neuen Eintrag erstellen der x (y) mit x= Windgeschwindigkeit, y= Wind in Boen
sein soll:
fc0_windboen_18 {ReadingsVal("WetterProplanta","fc0_wind18",0).' ('.ReadingsVal("WetterProplanta","fc0_gust18",0).')'},

Es wird auch ein reading erstellt, z.B.
Allerdings, wenn ich darauf wie auf jedes andere Reading zugreife erhalte ich diese Meldung:
2022.05.20 14:27:04 1: PERL WARNING: Argument "25.2 (61.2)" isn't numeric in sprintf at ./FHEM/89_ESPEInk.pm line 1320.
mit
textreading#WetterProplanta:fc0_windboen_18{%2.1f}#360#585#11#0#000000#/usr/share/fonts/truetype/msttcorefonts/arialbd.ttf#0#0

Das wollte ich deshalb so machen, weil ich ja Reading1 + " (" + Reading2 + ")" als string erstellen möchte, wobei die Readings variabel in deren Breite sind(Anzahl Zeichen)

Danke für die Unterstützung bisher!
Malte

Ich tippe auf {%2.1f} in deiner textreading-Definition. In fc0_windboen_18 wird deshalb eine Zahl erwartet, Du lieferst aber einen Text "25.2 (61.2)".

maltejahn

Hallo und vielen Dank! Einfach nur das Reading übernehmen ohne die Formatierung funktioniert ...

Grüße
Malte

Borkk

Hallo Zusammen,

ich stehe gerade vor einem Rätsel. Ich habe seit Jahren ein Waveshare E-Paper Display völlig störungsfrei am laufen. Doch seit 1.6. wird das Display nicht mehr aktualisiert. Leider bin ich erst jetzt dazu gekommen, mich mal darum zu kümmern. Mit Erstaunen muss ich nun feststellen, das die komplette ESPEInk Konfig einfach nicht mehr da ist??? Und das schon ne ganze Weile. Ich konnte es selbst in alten Ständen in der ConfigDB, nicht mehr finden. Was ein Schreck, denn die Definition des 7.3" Display ist sehr umfangreich und hat eine Menge Zeit gekostet. Zum Glück hatte ich noch einen alten SQLDump, wo das Display noch drin war.

Jetzt kommt aber mein eigentliches Problem. ESPEInk lässt sich nicht mehr installieren?!?!?

Wenn ich ein:
define ep_flur ESPEInk /opt/fhem/www/images/custom/display_hd.png
Kommt ein:
Cannot load module ESPEInk
Auf ein reload 89_ESPEink.pm regiert FHEM mit:

2024.07.14 08:44:47 1: reload: Error:Modul 89_ESPEInk deactivated:
 Can't locate GD.pm in @INC (you may need to install the GD module) (@INC contains: ./FHEM/lib ./lib ./FHEM . /usr/src/app/core/lib/perl5/5.36.3/x86_64-linux-gnu /usr/src/app/core/lib/perl5/5.36.3 /usr/src/app/core/lib/perl5/x86_64-linux-gnu /usr/src/app/core/lib/perl5 /usr/local/lib/perl5/site_perl/5.36.3/x86_64-linux-gnu /usr/local/lib/perl5/site_perl/5.36.3 /usr/local/lib/perl5/vendor_perl/5.36.3/x86_64-linux-gnu /usr/local/lib/perl5/vendor_perl/5.36.3 /usr/local/lib/perl5/5.36.3/x86_64-linux-gnu /usr/local/lib/perl5/5.36.3) at ./FHEM/89_ESPEInk.pm line 24.
BEGIN failed--compilation aborted at ./FHEM/89_ESPEInk.pm line 24.

Ich verwende "fhem/fhem-minimal:latest" im Docker sowohl auf einer Synology als auch auf einem Cloud_Server. Ich habe die Rechte und alle Dateien geprüft und ich habe es auf 3 Instanzen und auch mit dem "vollen" FHEM Image "fhem/fhem:latest getestet. Es kommt immer der gleiche Fehler.

Hat jemand eine Idee? Es kann natürlich auch am Docker Image liegen.
Docker@DS220+ FHEM, ConBeeII, Homebridge, Nginx ReverseProxy, ConfigDB, MQTT, NodeRed, InfluxDB, Grafana,
Raspberrymatic@Raspi3: HmIP Akt- /Sensoren, Shelly´s, Tibber Puls, Alexa, ASC, Gardena, Netatmo, E-Paper, FritzBox; Tado°, HOMEMODE, iBeacon, OLED ; ESP32/8266, SwitchBot ...

rob

Hallo Borkk.

Zitat von: Borkk am 14 Juli 2024, 08:54:31...
Ich verwende "fhem/fhem-minimal:latest" im Docker ... und auch mit dem "vollen" FHEM Image "fhem/fhem:latest getestet. Es kommt immer der gleiche Fehler.

Hat jemand eine Idee? Es kann natürlich auch am Docker Image liegen.

Liegt es aus meiner Sicht. Schau mal bitte diese zwei Freds an:
https://forum.fhem.de/index.php?msg=1314714
https://forum.fhem.de/index.php?msg=1314711

Die Datei "GD.pm" ist im Image bis V3 enthalten:
find / -type f -iname "GD.pm"
/usr/lib/x86_64-linux-gnu/perl5/5.32/GD.pm

Im Image latest (V4; ab Jan 24) nicht. Du könntest in einem der obigen Threads die Rückmeldung geben, dass Dir die GD.pm fehlt, oder ein Issue auf Github öffnen, wie Sidey schreibt (https://github.com/fhem/fhem-docker/issues).

Als temporären Workaround könntest Du auf fhem/fhem:3-bullseye zurücksteigen, oder händisch die Datei installieren z.B. via "pre-init.sh" - was noch funktioniert (https://github.com/fhem/fhem-docker#make-any-other-changes-during-container-start).

Viele Grüße
rob

Borkk

Danke, sowas in der Art hatte ich befürchtet.. schade. Dann werde ich mich dort mal bemerkbar machen. 
Docker@DS220+ FHEM, ConBeeII, Homebridge, Nginx ReverseProxy, ConfigDB, MQTT, NodeRed, InfluxDB, Grafana,
Raspberrymatic@Raspi3: HmIP Akt- /Sensoren, Shelly´s, Tibber Puls, Alexa, ASC, Gardena, Netatmo, E-Paper, FritzBox; Tado°, HOMEMODE, iBeacon, OLED ; ESP32/8266, SwitchBot ...

Borkk

Zitat von: rob am 14 Juli 2024, 12:11:05Die Datei "GD.pm" ist im Image bis V3 enthalten:
find / -type f -iname "GD.pm"
/usr/lib/x86_64-linux-gnu/perl5/5.32/GD.pm

Im Image latest (V4; ab Jan 24) nicht. Du könntest in einem der obigen Threads die Rückmeldung geben, dass Dir die GD.pm fehlt, oder ein Issue auf Github öffnen, wie Sidey schreibt (https://github.com/fhem/fhem-docker/issues).

Als temporären Workaround könntest Du auf fhem/fhem:3-bullseye zurücksteigen, oder händisch die Datei installieren z.B. via "pre-init.sh" - was noch funktioniert (https://github.com/fhem/fhem-docker#make-any-other-changes-during-container-start).

Viele Grüße
rob

Ich habe jetzt das Paket "libgd-gd2-perl" mit Container-Start installiert. Die Datei GD.pm ist jetzt auch wie oben beschrieben vorhanden. Aber ESPEInk lässt nicht trotzdem nicht laden. Kannst du mir sagen welche Pakete ich noch brauche. Ich habe übrigens einen Issue in Git geschrieben und einen Post hier im Docker Forum gemacht.
Docker@DS220+ FHEM, ConBeeII, Homebridge, Nginx ReverseProxy, ConfigDB, MQTT, NodeRed, InfluxDB, Grafana,
Raspberrymatic@Raspi3: HmIP Akt- /Sensoren, Shelly´s, Tibber Puls, Alexa, ASC, Gardena, Netatmo, E-Paper, FritzBox; Tado°, HOMEMODE, iBeacon, OLED ; ESP32/8266, SwitchBot ...

rob

Hallo.

Ich hatte zunächst nur auf das vermisste Modul aus der Fehlermeldung geschaut und mal mit V3 geprüft, ob es dort klappt, um keine falsche Fährte zu legen bzgl. Docker. Mit V4 hatte ich nicht weiter geschaut.
Durch Test mit V4 kann ich Deine Beobachtung bestätigten. Die GD habe ich via apt so wie Du installiert und testweise via cpan. Trotzdem lässt sich das Device nicht anlegen.

Laut Fehlermeldung wird die GD.pm immer vermisst.
2024.07.17 09:14:30.085 0: Can't locate GD.pm in @INC (you may need to install the GD module) (@INC contains: ./FHEM/lib ./lib ./FHEM . /usr/src/app/core/lib/perl5/5.36.3/x86_64-linux-gnu /usr/src/app/core/lib/perl5/5.36.3 /usr/src/app/core/lib/perl5/x86_64-linux-gnu /usr/src/app/core/lib/perl5 /usr/src/app/3rdparty/lib/perl5/5.36.3/x86_64-linux-gnu /usr/src/app/3rdparty/lib/perl5/5.36.3 /usr/src/app/3rdparty/lib/perl5/x86_64-linux-gnu /usr/src/app/3rdparty/lib/perl5 /usr/local/lib/perl5/site_perl/5.36.3/x86_64-linux-gnu /usr/local/lib/perl5/site_perl/5.36.3 /usr/local/lib/perl5/vendor_perl/5.36.3/x86_64-linux-gnu /usr/local/lib/perl5/vendor_perl/5.36.3 /usr/local/lib/perl5/5.36.3/x86_64-linux-gnu /usr/local/lib/perl5/5.36.3) at ./FHEM/89_ESPEInk.pm line 24.
BEGIN failed--compilation aborted at ./FHEM/89_ESPEInk.pm line 24.
Liegt es vielleicht am Pfad? Ist das ein Versionsthema? Keine Ahnung.
Ich fürchte, ich kann Dir leider nicht sagen was die V3 anders macht und was dann ggf. in V4 für das Modul 89_ESPEInk.pm noch nötig ist.

Vielleicht kann eki weiterhelfen?

Viele Grüße
rob

eki

Leider kann ich da auch nicht viel helfen. Ich verwende lediglich den "use" Befehl und mit Containern und Docker kenne ich mich leider auch nicht so gut aus. Letzendlich sieht es für mich so aus, dass GD.pm nicht gefunden wird (in den angegebenen Pfaden). Wenn es die falsche GD Version wäre, dann würde aus meiner Sicht eine andere Fehlermeldung kommen.

rob

Hallo eki.

Danke Dir für die Rückmeldung. Thema hat ja eher mit dem Docker-Image zu tun und weniger mit dem Modul an sich. Borkk ist auf Github bereits in Kontakt mit Sidey.
Deswegen muss es hier wohl nicht weiter vertieft werden.

Vielleicht nur dies, falls irgendwie interessant/ hilfreich:
GD scheint mir nicht so simpel installierbar zu sein, wie andere Module. Jedenfalls hatte nix im Container nur via apt oder nur via cpan gefruchtet. Allein dieser Weg klappt bei mir im Test:
docker exec -it fhem_test /bin/bash
apt install libgd-dev build-essential
cpm install --show-build-log-on-failure --configure-timeout=360 --workers=$(nproc) --local-lib-contained /usr/src/app/3rdparty/ GD
  >>DONE install ExtUtils-PkgConfig-1.16
  >>DONE install GD-2.83
  >>2 distributions installed.
Danach klappt auch das Define vom Device. Natürlich keine Lösung für den produktiven Einsatz.

Wird hier m.E. aber zu OT.

Viele Grüße
rob

Borkk

Ich hatte einen Issue auf Github erstellt und Sidey79 hat den Fehler gefixt und wird in Kürze ein geändertes V4 Image bereitstellen.

Wer das developer-minimal-Image vorab testen will:

ghcr.io/fhem/fhem-minimal-docker:pr-260-bullseye
Bei mir geht es damit.  :)
Docker@DS220+ FHEM, ConBeeII, Homebridge, Nginx ReverseProxy, ConfigDB, MQTT, NodeRed, InfluxDB, Grafana,
Raspberrymatic@Raspi3: HmIP Akt- /Sensoren, Shelly´s, Tibber Puls, Alexa, ASC, Gardena, Netatmo, E-Paper, FritzBox; Tado°, HOMEMODE, iBeacon, OLED ; ESP32/8266, SwitchBot ...

Borkk

Zwischenzeitig hat Sidey79 die Änderung produktiv geschaltet und das Modul scheint wieder zu gehen.

Ich bekomme nur im LOG nun folgende Fehlermeldung. Fehlt evtl. doch noch was im Docker Image?

2024.07.29 23:02:40 1: PERL WARNING: Use of uninitialized value $s1 in string eq at ./FHEM/89_ESPEInk.pm line 1448.
2024.07.29 23:02:40 1: PERL WARNING: Use of uninitialized value $s2 in string eq at ./FHEM/89_ESPEInk.pm line 1448.
2024.07.29 23:02:40 1: PERL WARNING: Use of uninitialized value $s1 in string eq at ./FHEM/89_ESPEInk.pm line 1449.
2024.07.29 23:02:40 1: PERL WARNING: Use of uninitialized value $s2 in string eq at ./FHEM/89_ESPEInk.pm line 1449.
2024.07.29 23:02:40 1: PERL WARNING: Use of uninitialized value $s1 in string eq at ./FHEM/89_ESPEInk.pm line 1456.
2024.07.29 23:02:40 1: PERL WARNING: Use of uninitialized value $s2 in string eq at ./FHEM/89_ESPEInk.pm line 1456.
2024.07.29 23:02:40 1: PERL WARNING: Use of uninitialized value $s1 in string eq at ./FHEM/89_ESPEInk.pm line 1457.
2024.07.29 23:02:40 1: PERL WARNING: Use of uninitialized value $s2 in string eq at ./FHEM/89_ESPEInk.pm line 1457.
2024.07.29 23:02:40 1: PERL WARNING: Use of uninitialized value $s1 in string eq at ./FHEM/89_ESPEInk.pm line 1458.
2024.07.29 23:02:40 1: PERL WARNING: Use of uninitialized value $s2 in string eq at ./FHEM/89_ESPEInk.pm line 1458.
Docker@DS220+ FHEM, ConBeeII, Homebridge, Nginx ReverseProxy, ConfigDB, MQTT, NodeRed, InfluxDB, Grafana,
Raspberrymatic@Raspi3: HmIP Akt- /Sensoren, Shelly´s, Tibber Puls, Alexa, ASC, Gardena, Netatmo, E-Paper, FritzBox; Tado°, HOMEMODE, iBeacon, OLED ; ESP32/8266, SwitchBot ...

hajo23

Zitat von: Borkk am 29 Juli 2024, 23:17:44Zwischenzeitig hat Sidey79 die Änderung produktiv geschaltet und das Modul scheint wieder zu gehen.

Ich bekomme nur im LOG nun folgende Fehlermeldung. Fehlt evtl. doch noch was im Docker Image?

2024.07.29 23:02:40 1: PERL WARNING: Use of uninitialized value $s1 in string eq at ./FHEM/89_ESPEInk.pm line 1448.
2024.07.29 23:02:40 1: PERL WARNING: Use of uninitialized value $s2 in string eq at ./FHEM/89_ESPEInk.pm line 1448.
2024.07.29 23:02:40 1: PERL WARNING: Use of uninitialized value $s1 in string eq at ./FHEM/89_ESPEInk.pm line 1449.
2024.07.29 23:02:40 1: PERL WARNING: Use of uninitialized value $s2 in string eq at ./FHEM/89_ESPEInk.pm line 1449.
2024.07.29 23:02:40 1: PERL WARNING: Use of uninitialized value $s1 in string eq at ./FHEM/89_ESPEInk.pm line 1456.
2024.07.29 23:02:40 1: PERL WARNING: Use of uninitialized value $s2 in string eq at ./FHEM/89_ESPEInk.pm line 1456.
2024.07.29 23:02:40 1: PERL WARNING: Use of uninitialized value $s1 in string eq at ./FHEM/89_ESPEInk.pm line 1457.
2024.07.29 23:02:40 1: PERL WARNING: Use of uninitialized value $s2 in string eq at ./FHEM/89_ESPEInk.pm line 1457.
2024.07.29 23:02:40 1: PERL WARNING: Use of uninitialized value $s1 in string eq at ./FHEM/89_ESPEInk.pm line 1458.
2024.07.29 23:02:40 1: PERL WARNING: Use of uninitialized value $s2 in string eq at ./FHEM/89_ESPEInk.pm line 1458.


Ich glaube, das hattest du schon. Schau mal ab Antwort #393.

Borkk

Zitat von: hajo23 am 31 Juli 2024, 15:01:04Ich glaube, das hattest du schon. Schau mal ab Antwort #393.

Stimmt, hab ich ganz vergessen. Aber gefunden habe ich den Fehler bisher nicht. Mit Verbose 5 bekomme ich das:

2024.08.17 23:52:58 4: check1: addsymbol#line#0#50#81#0#FF0000#879#0#0 - 39
2024.08.17 23:52:58 1: PERL WARNING: Use of uninitialized value $s1 in string eq at ./FHEM/89_ESPEInk.pm line 1448.
2024.08.17 23:52:58 1: PERL WARNING: Use of uninitialized value $s2 in string eq at ./FHEM/89_ESPEInk.pm line 1448.
2024.08.17 23:52:58 1: PERL WARNING: Use of uninitialized value $s1 in string eq at ./FHEM/89_ESPEInk.pm line 1449.
2024.08.17 23:52:58 1: PERL WARNING: Use of uninitialized value $s2 in string eq at ./FHEM/89_ESPEInk.pm line 1449.
2024.08.17 23:52:58 4: check1: addsymbol#line#0#527#20#0#FF0000#879#0#0 - 40
2024.08.17 23:52:58 4: check1: addsymbol#line#510#480#4#0#FF0000#879#0#0 - 41
2024.08.17 23:52:58 4: check1: addsymbol#line#700#395#4#0#FF0000#879#0#0 - 41
2024.08.17 23:52:58 4: check1: addsymbol#rectangle#700#282#4#0#FF0000#177#228#0#0 - 50
2024.08.17 23:52:58 1: PERL WARNING: Use of uninitialized value $s1 in string eq at ./FHEM/89_ESPEInk.pm line 1456.
2024.08.17 23:52:58 1: PERL WARNING: Use of uninitialized value $s2 in string eq at ./FHEM/89_ESPEInk.pm line 1456.
2024.08.17 23:52:58 1: PERL WARNING: Use of uninitialized value $s1 in string eq at ./FHEM/89_ESPEInk.pm line 1457.
2024.08.17 23:52:58 1: PERL WARNING: Use of uninitialized value $s2 in string eq at ./FHEM/89_ESPEInk.pm line 1457.
2024.08.17 23:52:58 1: PERL WARNING: Use of uninitialized value $s1 in string eq at ./FHEM/89_ESPEInk.pm line 1458.
2024.08.17 23:52:58 1: PERL WARNING: Use of uninitialized value $s2 in string eq at ./FHEM/89_ESPEInk.pm line 1458.

Die Linien werden aber richtig gezeichnet. Aber an irgendwas stört sich ja das Modul...
Docker@DS220+ FHEM, ConBeeII, Homebridge, Nginx ReverseProxy, ConfigDB, MQTT, NodeRed, InfluxDB, Grafana,
Raspberrymatic@Raspi3: HmIP Akt- /Sensoren, Shelly´s, Tibber Puls, Alexa, ASC, Gardena, Netatmo, E-Paper, FritzBox; Tado°, HOMEMODE, iBeacon, OLED ; ESP32/8266, SwitchBot ...

hajo23

ZitatStimmt, hab ich ganz vergessen. Aber gefunden habe ich den Fehler bisher nicht. Mit Verbose 5 bekomme ich das:

2024.08.17 23:52:58 1: PERL WARNING: Use of uninitialized value $s1 in string eq at ./FHEM/89_ESPEInk.pm line 1448.
2024.08.17 23:52:58 1: PERL WARNING: Use of uninitialized value $s2 in string eq at ./FHEM/89_ESPEInk.pm line 1448.

Die Linien werden aber richtig gezeichnet. Aber an irgendwas stört sich ja das Modul...

Die Meldungen deuten auf fehlende Parameter hin. Auch wenn diese z.B. für die Linien nicht relevant sind, löst das Fehlen trotzdem eine Meldung aus. Ergänze die fehlenden Parameter und die Meldungen verschwinden.

Borkk

Zitat von: hajo23 am 18 August 2024, 23:07:59Die Meldungen deuten auf fehlende Parameter hin. Auch wenn diese z.B. für die Linien nicht relevant sind, löst das Fehlen trotzdem eine Meldung aus. Ergänze die fehlenden Parameter und die Meldungen verschwinden.

Das hatte ich auch vermutet, kann aber keinen fehlenden Parameter finden.

Die Vorgabe ist:
symbol#x#y#thickness#angle#color#width#height#segment
Mein Aufruf:
addsymbol#line#0#50#81#0#FF0000#879#0#0
Also:
symbol = line
x = 0
Y = 50
thickness = 81
angle = 0
color = FF0000
with = 879
hight = 0
segment = 0

Was wäre hier falsch?

Ich habe den o.g. dicken Strich jetzt mal gegen ein gefülltes Rechteck ausgetauscht:

addsymbol#rectangle-filled#0#0#0#0#FF0000#879#47#0
Also:
symbol = rectangle-filled
x = 0
Y = 0
thickness = 0
angle = 0
color = FF0000
with = 879
hight = 47
segment = 0

Gleicher Fehler:
2024.08.22 09:46:45 4: check1: addsymbol#rectangle-filled#0#0#0#0#FF0000#879#47#0 - 50
2024.08.22 09:46:45 1: PERL WARNING: Use of uninitialized value $s2 in string eq at ./FHEM/89_ESPEInk.pm line 1456.
2024.08.22 09:46:45 1: PERL WARNING: Use of uninitialized value $s2 in string eq at ./FHEM/89_ESPEInk.pm line 1457.
Docker@DS220+ FHEM, ConBeeII, Homebridge, Nginx ReverseProxy, ConfigDB, MQTT, NodeRed, InfluxDB, Grafana,
Raspberrymatic@Raspi3: HmIP Akt- /Sensoren, Shelly´s, Tibber Puls, Alexa, ASC, Gardena, Netatmo, E-Paper, FritzBox; Tado°, HOMEMODE, iBeacon, OLED ; ESP32/8266, SwitchBot ...