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

eki

Dann mal mit dieser Version testen (würde ich bei positivem Feedback dann auch im ersten Beitrag hier mal "freigeben".

Jendaw

Zitat von: eki am 12 Februar 2020, 09:39:21
Dann mal mit dieser Version testen (würde ich bei positivem Feedback dann auch im ersten Beitrag hier mal "freigeben".

Sieht sehr gut aus, gute Arbeit! :)
Durchgeführte Tests:
-mehrere Uploads hintereinander: ok, Server bleibt nicht mehr stehen (timeout-Attr auf 50s für das 7.5 gestellt)
-Upload, während noch ein anderer Upload stattfindet: ok, es wird die Meldung "Upload of image currently running, try again later" ausgegeben und der aktuelle Upload wird nicht gestört - erfolgt der Upload automatisch oder wird dieser abgebrochen?
-Konvertierung: ich erhalte u.a. Warnungen, liegt das ggf. an meiner Konfiguration?
PERL WARNING: Use of uninitialized value $linegap in int at ./FHEM/89_ESPEInk.pm line 1124.
PERL WARNING: Use of uninitialized value $blockwidth in int at ./FHEM/89_ESPEInk.pm line 1125.
PERL WARNING: Use of uninitialized value $type in string eq at ./FHEM/89_ESPEInk.pm line 1137.
FHEM/RaspberryMatic @RaspPi + nanoCUL 433 + Signalduino 433 + JeeLink-Clone + CC2531 + Slaesh-Stick
IT Funkschalter, HE-Sensoren, TX 29 DTH-IT, HMIP, HM-Wired, zigbee2mqtt
ESPEInk + waveshare 7.5inch_e-Paper_HAT_(B) + ESP8266 (Firmware von https://github.com/Yattien)

eki

Gut,
Ein upload wird, wenn gerade schon einer läuft, nicht automatisch angestoßen (könnte man natürlich auch noch einbauen).
Die Warnungen sind meiner Schlamperei geschuldet (ich muss mal alle nicht im Code initialisierten Variablen suchen  :-[), sind aber nicht kritisch,

Jendaw

Der ESP32-Webserver scheint sich auch zu verhaspeln, wenn unmittelbar nach einem Upload ein neuer Upload kommt. In dem Fall liegen nur 3ms dazwischen:

[12:07:48:022] <<<LOAD>>>␍␊
[12:07:48:062] <<<␍␊
[12:08:21:465] SHOW>>>␍␊
[12:08:21:468] <<<␍␊
[12:08:21:469] EPD␍␊
[12:08:21:469] EPD 7.5 inch b


Könnte da bei einem erneuten Update eine Verzögerung (1s?) helfen?

VG
FHEM/RaspberryMatic @RaspPi + nanoCUL 433 + Signalduino 433 + JeeLink-Clone + CC2531 + Slaesh-Stick
IT Funkschalter, HE-Sensoren, TX 29 DTH-IT, HMIP, HM-Wired, zigbee2mqtt
ESPEInk + waveshare 7.5inch_e-Paper_HAT_(B) + ESP8266 (Firmware von https://github.com/Yattien)

Maista

Hallo zusammen,

heute etwas Zeit gefunden zum probieren.

Ich konnte mit ekis letzten Update des Moduls nun tatsächlich ein Bild an den ESP32 schicken!

@Icinger
Aber ersteinmal die alte IDE 1.8.10 löschen müssen. Gab irgend welches gemecker wegen doppelten Wifi.h.
Habt ihr die Fehlermeldungen auch?
In file included from sketch\srvr.h:19:0,

                 from E:\Daten\CFG\ePaper_ESP32\Loader_esp32wf\Loader_esp32wf.ino:24:

sketch\epd.h:35:0: warning: "LOW" redefined

#define LOW             0

^

In file included from E:\Tools\Arduino_1_8_11\hardware\espressif\esp32\cores\esp32/esp32-hal.h:53:0,

                 from E:\Tools\Arduino_1_8_11\hardware\espressif\esp32\cores\esp32/Arduino.h:35,

                 from sketch\Loader_esp32wf.ino.cpp:1:

E:\Tools\Arduino_1_8_11\hardware\espressif\esp32\cores\esp32/esp32-hal-gpio.h:29:0: note: this is the location of the previous definition

#define LOW               0x0

^

In file included from sketch\srvr.h:19:0,

                 from E:\Daten\CFG\ePaper_ESP32\Loader_esp32wf\Loader_esp32wf.ino:24:

sketch\epd.h:36:0: warning: "HIGH" redefined

#define HIGH            1

^

In file included from E:\Tools\Arduino_1_8_11\hardware\espressif\esp32\cores\esp32/esp32-hal.h:53:0,

                 from E:\Tools\Arduino_1_8_11\hardware\espressif\esp32\cores\esp32/Arduino.h:35,

                 from sketch\Loader_esp32wf.ino.cpp:1:

E:\Tools\Arduino_1_8_11\hardware\espressif\esp32\cores\esp32/esp32-hal-gpio.h:30:0: note: this is the location of the previous definition

#define HIGH              0x1

^

In file included from sketch\srvr.h:19:0,

                 from E:\Daten\CFG\ePaper_ESP32\Loader_esp32wf\Loader_esp32wf.ino:24:

sketch\epd.h:532:1: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

};

^

sketch\epd.h:532:1: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

sketch\epd.h:532:1: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

sketch\epd.h:532:1: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

sketch\epd.h:532:1: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

sketch\epd.h:532:1: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

sketch\epd.h:532:1: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

sketch\epd.h:532:1: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

sketch\epd.h:532:1: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

sketch\epd.h:532:1: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

sketch\epd.h:532:1: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

sketch\epd.h:532:1: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

sketch\epd.h:532:1: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

sketch\epd.h:532:1: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

sketch\epd.h:532:1: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

sketch\epd.h:532:1: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

sketch\epd.h:532:1: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

sketch\epd.h:532:1: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

sketch\epd.h:532:1: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

sketch\epd.h:532:1: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

sketch\epd.h:532:1: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

sketch\epd.h:532:1: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

In file included from E:\Daten\CFG\ePaper_ESP32\Loader_esp32wf\Loader_esp32wf.ino:24:0:

sketch\srvr.h: In function 'bool Srvr__loop()':

sketch\srvr.h:141:65: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

             if (Buff__signature(Buff__bufInd - 11, "/styles.css"))

                                                                 ^

sketch\srvr.h:142:58: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

                 return Srvr__file(client, 0, "styles.css");

                                                          ^

sketch\srvr.h:144:65: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

             if (Buff__signature(Buff__bufInd - 11, "/scriptA.js"))

                                                                 ^

sketch\srvr.h:145:58: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

                 return Srvr__file(client, 1, "scriptA.js");

                                                          ^

sketch\srvr.h:147:65: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

             if (Buff__signature(Buff__bufInd - 11, "/scriptB.js"))

                                                                 ^

sketch\srvr.h:148:58: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

                 return Srvr__file(client, 2, "scriptB.js");

                                                          ^

sketch\srvr.h:150:65: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

             if (Buff__signature(Buff__bufInd - 11, "/scriptC.js"))

                                                                 ^

sketch\srvr.h:151:58: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

                 return Srvr__file(client, 3, "scriptC.js");

                                                          ^

sketch\srvr.h:153:65: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

             if (Buff__signature(Buff__bufInd - 11, "/scriptD.js"))

                                                                 ^

sketch\srvr.h:154:58: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

                 return Srvr__file(client, 4, "scriptD.js");

                                                          ^

sketch\srvr.h:164:56: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

             if (Buff__signature(Buff__bufInd - 4, "EPD"))

                                                        ^

sketch\srvr.h:180:57: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

             if (Buff__signature(Buff__bufInd - 4, "LOAD"))

                                                         ^

sketch\srvr.h:193:57: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

             if (Buff__signature(Buff__bufInd - 4, "NEXT"))

                                                         ^

sketch\srvr.h:220:57: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

             if (Buff__signature(Buff__bufInd - 4, "SHOW"))

                                                         ^

Der Sketch verwendet 764896 Bytes (58%) des Programmspeicherplatzes. Das Maximum sind 1310720 Bytes.
Globale Variablen verwenden 42868 Bytes (13%) des dynamischen Speichers, 284812 Bytes für lokale Variablen verbleiben. Das Maximum sind 327680 Bytes.


Welche MQTT-Libs werden den von Dir vorausgesetzt? Es scheint da ja eine grosse Auswahl an gleichen benannten Libs zu geben.
Das ist blöd wenn man nicht weis welche das sein soll.

Kann man den DeepSleep einfach zum Testen ausschalten? Hab das nur kurz testen können.

MQTT2-Server mit drei Tasmota und Aquara-Sensoren hab ich hier laufen, aber mehr noch nicht gemacht;)

Danke schon mal, scheint ja stabiler zu werden.

Nachtrag: Der ESP32 findet nach dem Aufwecken den AP nicht. Erst wenn ich den EN-Taster drücke gibt es eine Verbindung. Das Problem haben meine 9 ESP8266 nicht.

Gruss Gerd

Maista

@Icinger

Benötigt der von dir verwendete Deepsleep ein GPIO um aufzuwecken?
Wie ich im Internet gelesen habe gibt es drei Möglichkeiten.

Gruß Gerd

Icinger

@Maista: Nein, wird kein GPIO benötigt, der ESP32 hat eine interne RTC.

lg, Stefan
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

Jendaw

Zitat von: Maista am 12 Februar 2020, 22:27:44
Aber ersteinmal die alte IDE 1.8.10 löschen müssen. Gab irgend welches gemecker wegen doppelten Wifi.h.
Habt ihr die Fehlermeldungen auch?
Bei mir kompiliert der aktuelle waveshare-Code ohne Probleme. Der Code von Stefan scheint zwar eine ältere Version zu sein, sollte aber auch nicht zu diesen Problemen führen. Die Fehlermeldungen deuten eher darauf hin, dass etwas mit deinen Include-Pfaden nicht passt (doppelt, einmal in Tools und einmal lokal im Projekt).

ZitatWelche MQTT-Libs werden den von Dir vorausgesetzt? Es scheint da ja eine grosse Auswahl an gleichen benannten Libs zu geben.
Das scheint mir, lt. eingebundenem Header der PubSubClient zu sein.

VG
FHEM/RaspberryMatic @RaspPi + nanoCUL 433 + Signalduino 433 + JeeLink-Clone + CC2531 + Slaesh-Stick
IT Funkschalter, HE-Sensoren, TX 29 DTH-IT, HMIP, HM-Wired, zigbee2mqtt
ESPEInk + waveshare 7.5inch_e-Paper_HAT_(B) + ESP8266 (Firmware von https://github.com/Yattien)

pepe_11

Hallo,

ich verfolge eure Diskussion und die Lösung seit einiger Zeit. ich konnte die ESP32 Version erfolgreich kompelieren und mit dem Netzwerk verbinden. Webservice ist erreichbar und ich könnte die Images zum Display schicken,
Soweit so gut aber ich weiss nicht wie ich das Display mit dem ESP verbinden soll bzw. wie ich die Einstellungen konfigurieren soll , das Display arbeitet nicht. Ich gehe davon aus , dass ich ihm falsch verkabelt habe.. Ich habe ein ePaper 2.13 Shield im Einsatz -->https://www.wemos.cc/en/latest/d1_mini_shiled/epd_2_13.html?spm=a2g0o.detail.1000023.1.294d19b6ntvUpZ. Meine Test mit dem GxEPD_Example haben tadellos funktioniert, das Display arbeitet.
Kann mir einer von euch weiterhelfen? Vielleicht verstehe ich da etwas falsch und bin auf dem falschen Dampfer.

VG
Peter

Jendaw

Zitat von: pepe_11 am 14 Februar 2020, 11:19:01
Soweit so gut aber ich weiss nicht wie ich das Display mit dem ESP verbinden soll bzw. wie ich die Einstellungen konfigurieren soll , das Display arbeitet nicht. Ich gehe davon aus , dass ich ihm falsch verkabelt habe.. Ich habe ein ePaper 2.13 Shield im Einsatz -->https://www.wemos.cc/en/latest/d1_mini_shiled/epd_2_13.html?spm=a2g0o.detail.1000023.1.294d19b6ntvUpZ.

Der waveshare-ESP32-Treiber verwendet die u.a. Pins (epd.h):
/* SPI pin definition --------------------------------------------------------*/
#define PIN_SPI_SCK  13
#define PIN_SPI_DIN  14
#define PIN_SPI_CS   15
#define PIN_SPI_BUSY 25//19
#define PIN_SPI_RST  26//21
#define PIN_SPI_DC   27//22


*edit* Noch ein Hinweis: es gibt verschiedene ESP32-Ausführungen, mit unterschiedlicher Pin-Anzahl - hier muss man aufpassen, dass man die korrekte Zuordnung vornimmt.

hth
FHEM/RaspberryMatic @RaspPi + nanoCUL 433 + Signalduino 433 + JeeLink-Clone + CC2531 + Slaesh-Stick
IT Funkschalter, HE-Sensoren, TX 29 DTH-IT, HMIP, HM-Wired, zigbee2mqtt
ESPEInk + waveshare 7.5inch_e-Paper_HAT_(B) + ESP8266 (Firmware von https://github.com/Yattien)

pepe_11

Zitat von: Jendaw am 14 Februar 2020, 12:03:06
Der waveshare-ESP32-Treiber verwendet die u.a. Pins (epd.h):
/* SPI pin definition --------------------------------------------------------*/
#define PIN_SPI_SCK  13
#define PIN_SPI_DIN  14
#define PIN_SPI_CS   15
#define PIN_SPI_BUSY 25//19
#define PIN_SPI_RST  26//21
#define PIN_SPI_DC   27//22


*edit* Noch ein Hinweis: es gibt verschiedene ESP32-Ausführungen, mit unterschiedlicher Pin-Anzahl - hier muss man aufpassen, dass man die korrekte Zuordnung vornimmt.

hth
Danke für die schnelle Antwort. Großartig
Wie es aussieht habe ich richtig gedacht. Ich habe die Pins entsprechend geschaltet SCK-->G14 usw.). Was mir nicht klar ist, was haben die zwei shlashes zu bedeuten? (#define PIN_SPI_RST  26//21) entweder oder?
Mit den verschiedenen Ausführung der ESP's habe ich es nicht berücksichtigt. Ich habe einen von AZDelivery ESP32 NodeMCU (https://www.amazon.de/dp/B071P98VTG/ref=cm_sw_r_em_apa_i_EXOrEbP293NJD)

Jendaw

Zitat von: pepe_11 am 14 Februar 2020, 13:08:12
Was mir nicht klar ist, was haben die zwei shlashes zu bedeuten? (#define PIN_SPI_RST  26//21) entweder oder?
Der Doppelslash ist nur eine Kommentareinleitung im Quelltext, vermutlich hat der waveshare-Programmierer den Code auch für andere Module (ESP9266?) benutzt. Alles was in der Zeile dahinter steht, ist irrelevant.

VG
FHEM/RaspberryMatic @RaspPi + nanoCUL 433 + Signalduino 433 + JeeLink-Clone + CC2531 + Slaesh-Stick
IT Funkschalter, HE-Sensoren, TX 29 DTH-IT, HMIP, HM-Wired, zigbee2mqtt
ESPEInk + waveshare 7.5inch_e-Paper_HAT_(B) + ESP8266 (Firmware von https://github.com/Yattien)

pepe_11

Alles klar, danke dir. Vielleicht habe ich mich bei der Verkabelung irgendwo vertan.

VG
Peter

Maista

@Jendaw

Danke für die Info. Muss ich mir am Samstag anschauen.
Als ich die 1.8.10 installiert hatte kamen die Doppel Meldungen aber eindeutiger.

Und bei euch kommen gar keine Meldungen ? :-[
Vielleicht muss ich nur das Verzeichnis im User löschen.
Da schreibt die IDE auch Zeugs hin.

Bis dann

Gerd

pepe_11

Zitat von: pepe_11 am 14 Februar 2020, 13:37:29
Alles klar, danke dir. Vielleicht habe ich mich bei der Verkabelung irgendwo vertan.

VG
Peter

Hi,

Nach dem ich die PIN Belegung geändert habe funktioniert mein Display. :)

@Jendaw: Danke dir nochmal.

Ich habe jetzt allerdings ein anderes Problem. Ich habe im Gimp eine png Datei mit 122x250 Pixel erstellt. Die Vorlage hat nur einen weißen Hintergrund.
Wenn das espink Modul diese überträgt, zeigt das Display 6 Schwarze Balken bzw. Striche--> Siehe Bild. Die Feuchtigkeit mit Text, das ich mitsende wird angezeigt. Was mache ich hier falsch? Ich vermute, dass die png Vorlage das Problem verursacht.

VG
Peter


Internals:
   BOARDTYPE  ESP8266
   COLORMODE  monochrome
   CONVERTMODE level
   DEF        /opt/fhem/images/122x250.png 192.168.8.41 monochrome level
   DEVICETYPE 1.54inch_e-Paper_Module
   FUUID      5e483f6c-f33f-0de6-0759-eaabdf747c202e1d
   INTERVAL   level
   NAME       myEInk
   NOTIFYDEV  global,Sensor_Aussen,myEInk
   NR         863
   NTFY_ORDER 50-myEInk
   PICTUREFILE /opt/fhem/images/122x250.png
   STATE      Successfully uploaded image to device
   SUBFOLDER  images
   TYPE       ESPEInk
   URL       
   OLDREADINGS:
   READINGS:
     2020-02-16 13:35:00   1-angle         0
     2020-02-16 12:57:49   1-blockwidth    2
     2020-02-16 12:57:09   1-color         000000
     2020-02-16 12:57:08   1-def           addtext#Feuchte:#30#100#70#90#000000#/usr/share/fonts/truetype/msttcorefonts/arialbd.ttf\
     2020-02-16 12:57:09   1-font          medium
     2020-02-16 12:57:08   1-isIcon        0
     2020-02-16 12:57:09   1-linegap       0
     2020-02-16 13:23:03   1-size          30
     2020-02-16 12:57:08   1-text          Feuchte:
     2020-02-16 13:50:08   1-x             50
     2020-02-16 13:19:02   1-y             90
     2020-02-16 13:36:48   2-angle         0
     2020-02-16 13:36:11   2-blockwidth    0
     2020-02-16 13:36:11   2-color         000000
     2020-02-16 13:36:11   2-def           textreading#Sensor_Aussen:humidity#2#55#300#90#000000#/usr/share/fonts/truetype/msttcorefonts/arialbd.ttf\
     2020-02-16 13:36:11   2-font          medium
     2020-02-16 13:36:11   2-isIcon        0
     2020-02-16 13:36:11   2-linegap       0
     2020-02-16 13:36:11   2-size          300
     2020-02-16 13:57:58   2-text          62
     2020-02-16 13:36:11   2-trigger       Sensor_Aussen:humidity
     2020-02-16 13:49:05   2-x             103
     2020-02-16 13:50:40   2-y             85
     2020-02-16 13:36:11   deftexts        2
     2020-02-16 14:00:45   result_picture  <html><img src=/fhem/images/myEInk/result.png?dummy=724001.441024424></img><div>/fhem/images/myEInk/result.png</div></html>
     2020-02-16 14:00:40   source_picture  <html><img src=/fhem/images/myEInk/122x250.png?dummy=713277.999786399></img><div>/fhem/images/myEInk/122x250.png</div></html>
   helper:
Attributes:
   1-angle    0
   1-blockwidth 2
   1-size     30
   1-x        50
   1-y        90
   2-angle    0
   2-x        103
   2-y        85
   boardtype  ESP32
   colormode  monochrome
   convertmode level
   devicetype 2.13inch_e-Paper_HAT
   interval   30
   placement  top-left
   room       ESPEasy
   scale2fit  0
   url        192.168.8.41
   userattr   1-angle 1-blockwidth 1-color:colorpicker,RGB 1-font 1-linegap 1-size 1-text 1-trigger 1-x 1-y 2-angle 2-blockwidth 2-color:colorpicker,RGB 2-font 2-linegap 2-size 2-text 2-trigger 2-x 2-y
   verbose    1