NEWS
ePaper Statusdisplay Hausflur
-
90 Tage also 3 Monate und es läuft immer noch. MEGA Begeistert
-
So Freunde der Automatisierung...
Gestern ist es passiert -> 98 Tage und die Akkus waren leer.Also für die wo es interessiert, mit meinem Deep Sleep Setup kommt man bei einer stündlichen Aktualisierung des Displays und einer "Run Duration" von 15 Sekunden ca. 100 Tage.
Für mich ein Super Ergebnis -
Hallo @draexler ,
kannst du mir ein gutes Tutorial empfehlen? Ich bekomme einfach keinen Text auf dem Display angezeigt. Ich konnte den ESP32 in ESPHome integrieren, bekomme es aber einfach nicht hin, dass auch nur irgendetwas angezeigt wird. Hier mal meine YAML:
esphome: name: esphome-web-26a54c friendly_name: E-Paper esp32: board: esp32dev framework: type: arduino # Enable logging logger: # Enable Home Assistant API api: ota: wifi: ssid: !secret wifi_ssid password: !secret wifi_password # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Esphome-Web-26A54C" password: "jeIX4go8jH8i" captive_portal: # Example configuration entry font: - file: 'fonts/Comic Sans MS.ttf' id: font1 size: 8 spi: clk_pin: 5 mosi_pin: 19 display: - platform: waveshare_epaper id: epaper cs_pin: 20 busy_pin: 39 reset_pin: 14 dc_pin: 22 model: 7.50in update_interval: 5s lambda: |- it.print(5, 5, id(font1), "Hello World!");
Font ist vorhanden und auch die PIN-Belegung passt. Anfangs hatte ich Fehlermeldungen bzgl. API encryption und diese darauf einfach entfernt.
Momentan kommt es immer wieder zu Verbindungsabbrüchen. Ich denke allerdings nicht, dass das mein Problem ist. Für den ersten Schritt würde ich einfach mal gerne einen statischen Text ausgeben.
Kannst du mir deine Quellen nennen? DANKE! -
@doho sagte in ePaper Statusdisplay Hausflur:
display: - platform: waveshare_epaper id: epaper cs_pin: 20 busy_pin: 39 reset_pin: 14 dc_pin: 22 model: 7.50in update_interval: 5s lambda: |- it.print(5, 5, id(font1), "Hello World!");
Hi,
also die API Einstellungen nimm mal weg. Das ganze läuft dann eh über MQTT (find ich besser)
nimm mal diese Einstellungen:
Entferne mal die Fragmente "api:" und "ota:" (Keine Ahnung ob das was ausmacht, aber brauchen tust du es gerade eh nicht)
logger: level: INFO
display: - platform: waveshare_epaper id: epaper cs_pin: 20 busy_pin: 39 reset_pin: 14 dc_pin: 22 model: 7.50inV2 update_interval: 5s reset_duration: 2ms lambda: |- it.print(5, 5, id(font1), "Hello World!");
Wenn das nicht klappt schick mal gute Bilder von der Verkabelung des ESP´s und die "Schiebereglereinstellungen" des HAT.
EDIT: Ich denke mal du hast auch das V2 Display. Also habe ich das angepasst. BITTE beachten
-
Hallo @draexler,
danke für die schnelle Antwort. Woran erkenne ich denn, ob ich ein V2 Display habe? Ich have weder auf Display, noch auf Verpackung oder in der Artikelbeschreibung eine Info diesbezüglich gesehen (link).
Die Programmanpassung hat leider keinen Erfolg gebracht. Das Programm wird erfolgreich hochgeladen (über USB) aber das Display bleibt dunkel. Ich werde am Wochenende einfach nochmal alles von Grund auf neu aufsetzen (ESP-Adapter, Feather neu anlernen, YAML etc.)
Um sicher zu gehen, könntest du mal meine Verkabelung prüfen? Das wäre nett! DANKE!!!
# Example configuration entry font: - file: 'fonts/Comic Sans MS.ttf' id: font1 size: 8 spi: clk_pin: 5 mosi_pin: 19 display: - platform: waveshare_epaper id: epaper cs_pin: 20 busy_pin: 39 reset_pin: 14 dc_pin: 22 model: 7.50inV2 update_interval: 5s lambda: |- it.print(0, 0, id(font1), "Hello World!");
-
@doho Da müsste ein Sticker "V2" auf der Rückseite sein.
GANZ WICHTIG: Du musst die reset_duration angeben (Siehe meinen Post von gestern)
reset_duration: 2ms
Wenn das auch nichts bringt schaue ich mir deine Fotos genauer an Aber zuerst mache bitte das noch. Ohne dem geht es nicht
Bitte füge auch noch:
# Enable logging logger: level: INFO
hinzu. Damit die eine Fehlermeldung auch weg ist.
Und schiebe beim HAT auch noch den Regler einmal hin und her aber die Einstellung soll wieder auf "4-line SPI" und "0.47R" stehen.
-
Hallo @draexler ,
ich hab die Zeile reset_duration übersehen. Danke für den Hinweis!
Hier das Ergebnis:
Vielen Dank für die Hilfe!
-
@doho Super, Perfekt Damit ist das schwerste geschafft. Jetzt heißt es das ganz mit Inhalt zu füllen.
Kleiner TIP. Lege dir eine VIS an mit der Pixelgröße des ePapers. Du kannst dann alles dort einfacher "vormodelieren" und brauchst nur die X/Y Koordinaten übernehmen. Ansonsten flasht du ziemlich oftAchja, du hast oben mal mach einen Tutorial gefragt. Ich habe mit eigentlich nur an die offizielle ESP Home Doku gehalten. Damit fährt man am besten.
Wenn du sowas ähnliches wie ich machen willst, kannst du ja bereits viele Teile aus meiner YAML nehmen (MQTT Config und Aufbau etc.)
-
@draexler
Danke für den Tipp. Ich werde berichten -
So, auch ich bin mit meinem Projekt fertig
Wie es so ist, hat sich die Aufgabenstellung im Projektverlauf geändert, sodass ich einiges anders gemacht habe als ursprünglich geplant. Andere Daten, anderer Standort, etc..
Ich aktualisiere das Display alle 15 Minuten und zusätzlich kann man es über einen kleinen Taster oben rechts im Rahmen aktualisieren.
Auf die Batterie habe ich auch verzichtet, weil am neuen Standort eine Steckdose vorhanden ist.
Vielleicht für den ein oder anderen noch interessant; Aus Interesse habe ich die Leistungsaufnahme gemessen => im Schnitt 0.8W (über USB Netzteil versorgt).Alles in allem ein sehr gelungenes Projekt und eine super Anwendung. Danke nochmal an @draexler , für die Unterstützung!
-
@doho gefällt mir sehr gut Gute idee mit dem Knopf. Vielleicht setze ich das auch noch um. Muss dann schauen wie ich das mit WakeUp mit Deep Sleep mache.
-
@doho super schön realisiert, würdest du allenfass den Code zur Verfügung stellen?
Besten Dank und Gruss -
@appi, klar.
esphome: name: e-paper friendly_name: E-Paper esp32: board: esp32dev framework: type: arduino # Enable logging logger: level: INFO # Enable Home Assistant API ota: password: "1097d7787d8aa56c814fc456ac0d4bdf" # Enable wifi wifi: ssid: !secret wifi_ssid password: !secret wifi_password # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "E-Paper Fallback Hotspot" password: "7vHBNRjddp61" # Enable MQTT mqtt: broker: 192.168.10.40 username: ESP password: !secret mqtt client_id: e-paper topic_prefix: esphome/e-paper on_message: - topic: subscribe_text_sensor/E-Paper/Trigger then: - component.update: epaper # Konfiguration ESP32 captive_portal: spi: clk_pin: 5 mosi_pin: 19 binary_sensor: - platform: gpio pin: number: 32 mode: input: true pulldown: true name: "Taster" on_press: then: # - component.update: epaper # Schriftarten font: - file: 'fonts/Lato-Regular.ttf' id: font1 glyphs: ['&', '@', '!', ',', '.', '?', '"', '%', '(', ')', '+', '-', '_', ':', '°', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z','å', 'Ä', 'ä', 'Ö', 'ö', 'Ü', 'ü', '/', 'ß'] size: 23 - file: 'fonts/Lato-Regular.ttf' id: font2 glyphs: ['&', '@', '!', ',', '.', '?', '"', '%', '(', ')', '+', '-', '_', ':', '°', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z','å', 'Ä', 'ä', 'Ö', 'ö', 'Ü', 'ü', '/', 'ß'] size: 40 - file: 'fonts/Lato-Regular.ttf' id: font3 glyphs: ['&', '@', '!', ',', '.', '?', '"', '%', '(', ')', '+', '-', '_', ':', '°', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z','å', 'Ä', 'ä', 'Ö', 'ö', 'Ü', 'ü', '/', 'ß'] size: 20 - file: 'fonts/Lato-Regular.ttf' id: font4 glyphs: ['&', '@', '!', ',', '.', '?', '"', '%', '(', ')', '+', '-', '_', ':', '°', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z','å', 'Ä', 'ä', 'Ö', 'ö', 'Ü', 'ü', '/', 'ß'] size: 23 # Variablen globals: - id: photovoltaik_symbols_x_int type: int restore_value: no initial_value: '0' - id: photovoltaik_symbols_y_int type: int restore_value: no initial_value: '0' - id: photovoltaik_data_x_int type: int restore_value: no initial_value: '0' - id: photovoltaik_data_y_int type: int restore_value: no initial_value: '0' - id: icon_heute_x_int type: int restore_value: no initial_value: '0' - id: icon_heute_y_int type: int restore_value: no initial_value: '0' - id: icon_morgen_x_int type: int restore_value: no initial_value: '0' - id: icon_morgen_y_int type: int restore_value: no initial_value: '0' - id: icon_uebermorgen_x_int type: int restore_value: no initial_value: '0' - id: icon_uebermorgen_y_int type: int restore_value: no initial_value: '0' - id: muell_x_int type: int restore_value: no initial_value: '0' - id: muell_y_int type: int restore_value: no initial_value: '0' - id: icons_x_int type: int restore_value: no initial_value: '0' - id: icons_y_int type: int restore_value: no initial_value: '0' # MQTT Variablen ioBroker => E-Paper text_sensor: # Allgemein - platform: mqtt_subscribe id: Datum topic: subscribe_text_sensor/E-Paper/Allgemein/Datum - platform: mqtt_subscribe id: Tag_morgen topic: subscribe_text_sensor/E-Paper/Allgemein/Tag_morgen - platform: mqtt_subscribe id: Tag_uebermorgen topic: subscribe_text_sensor/E-Paper/Allgemein/Tag_uebermorgen - platform: mqtt_subscribe id: Foto topic: subscribe_text_sensor/E-Paper/Allgemein/Foto # Photovoltaik - platform: mqtt_subscribe id: Momentanleistung topic: subscribe_text_sensor/E-Paper/Photovoltaik/Momentanleistung - platform: mqtt_subscribe id: Hausverbrauch topic: subscribe_text_sensor/E-Paper/Photovoltaik/Hausverbrauch - platform: mqtt_subscribe id: Einspeisung_Bezug topic: subscribe_text_sensor/E-Paper/Photovoltaik/Einspeisung_Bezug - platform: mqtt_subscribe id: Einspeisung_Heute topic: subscribe_text_sensor/E-Paper/Photovoltaik/Einspeisung_Heute - platform: mqtt_subscribe id: Ertrag_Heute topic: subscribe_text_sensor/E-Paper/Photovoltaik/Ertrag_Heute - platform: mqtt_subscribe id: Eigenverbrauch_Heute topic: subscribe_text_sensor/E-Paper/Photovoltaik/Eigenverbrauch_Heute - platform: mqtt_subscribe id: Eigenverbrauch_Heute_Prozent topic: subscribe_text_sensor/E-Paper/Photovoltaik/Eigenverbrauch_Heute_Prozent - platform: mqtt_subscribe id: Netzbezug_Heute topic: subscribe_text_sensor/E-Paper/Photovoltaik/Netzbezug_Heute - platform: mqtt_subscribe id: Deckungsgrad_Heute topic: subscribe_text_sensor/E-Paper/Photovoltaik/Deckungsgrad_Heute - platform: mqtt_subscribe id: Pfeil_PV_Netz topic: subscribe_text_sensor/E-Paper/Photovoltaik/Pfeil_PV_Netz - platform: mqtt_subscribe id: Pfeil_PV_Haus topic: subscribe_text_sensor/E-Paper/Photovoltaik/Pfeil_PV_Haus - platform: mqtt_subscribe id: Pfeil_Netz_Haus topic: subscribe_text_sensor/E-Paper/Photovoltaik/Pfeil_Netz_Haus # Wetter heute - platform: mqtt_subscribe id: Wettericon_now topic: subscribe_text_sensor/E-Paper/Wetter/Wettericon_now - platform: mqtt_subscribe id: Actual_Temp topic: subscribe_text_sensor/E-Paper/Wetter/Actual_Temp - platform: mqtt_subscribe id: MinMax_Temp_Heute topic: subscribe_text_sensor/E-Paper/Wetter/MinMax_Temp_Heute - platform: mqtt_subscribe id: Regen_Heute topic: subscribe_text_sensor/E-Paper/Wetter/Regen_Heute - platform: mqtt_subscribe id: Unwetter topic: subscribe_text_sensor/E-Paper/Wetter/Unwetter # Wetter morgen - platform: mqtt_subscribe id: Wettericon_morgen topic: subscribe_text_sensor/E-Paper/Wetter/Wettericon_morgen - platform: mqtt_subscribe id: MinMax_Temp_morgen topic: subscribe_text_sensor/E-Paper/Wetter/MinMax_Temp_morgen - platform: mqtt_subscribe id: Regen_morgen topic: subscribe_text_sensor/E-Paper/Wetter/Regen_morgen # Wetter uebermorgen - platform: mqtt_subscribe id: Wettericon_uebermorgen topic: subscribe_text_sensor/E-Paper/Wetter/Wettericon_uebermorgen - platform: mqtt_subscribe id: MinMax_Temp_uebermorgen topic: subscribe_text_sensor/E-Paper/Wetter/MinMax_Temp_uebermorgen - platform: mqtt_subscribe id: Regen_uebermorgen topic: subscribe_text_sensor/E-Paper/Wetter/Regen_uebermorgen # Muell - platform: mqtt_subscribe id: Termin_Restmuell topic: subscribe_text_sensor/E-Paper/Muell/Termin_Restmuell - platform: mqtt_subscribe id: Termin_Papier topic: subscribe_text_sensor/E-Paper/Muell/Termin_Papier - platform: mqtt_subscribe id: Termin_Gruenabfall topic: subscribe_text_sensor/E-Paper/Muell/Termin_Gruenabfall - platform: mqtt_subscribe id: Termin_Sperrmuell topic: subscribe_text_sensor/E-Paper/Muell/Termin_Sperrmuell - platform: mqtt_subscribe id: Termin_Gruen_Sperr topic: subscribe_text_sensor/E-Paper/Muell/Termin_Gruen_Sperr - platform: mqtt_subscribe id: Tage_bis_Restmuell topic: subscribe_text_sensor/E-Paper/Muell/Tage_bis_Restmuell - platform: mqtt_subscribe id: Tage_bis_Papier topic: subscribe_text_sensor/E-Paper/Muell/Tage_bis_Papier - platform: mqtt_subscribe id: Tage_bis_Gruenabfall topic: subscribe_text_sensor/E-Paper/Muell/Tage_bis_Gruenabfall - platform: mqtt_subscribe id: Tage_bis_Sperrmuell topic: subscribe_text_sensor/E-Paper/Muell/Tage_bis_Sperrmuell # Bilder image: # Foto - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_farbig.jpg" resize: 800x480 id: Bild # Photovoltaik - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Photovoltaik.png" resize: 120x73 id: Bild_Photovoltaik - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Haus.png" resize: 100x98 id: Bild_Haus - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Strommast.png" resize: 60x96 id: Bild_Strommast - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Pfeil_rechts.png" resize: 98x30 id: Bild_Pfeil_rechts - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Pfeil_rechts_unten.png" resize: 70x70 id: Bild_Pfeil_rechts_unten - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Pfeil_links_unten.png" resize: 70x70 id: Bild_Pfeil_links_unten # Wetter - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Tropfen.png" resize: 18x18 id: Bild_Tropfen - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Ausrufezeichen.png" resize: 50x50 id: Bild_Ausrufezeichen - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Sonne.png" resize: 150x150 id: Bild_Sonne - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Sonne+Gewitter.png" resize: 150x150 id: Bild_Sonne_Gewitter - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Sonne+Regen.png" resize: 150x150 id: Bild_Sonne_Regen - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Sonne+Schnee.png" resize: 150x150 id: Bild_Sonne_Schnee - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Sonne+Wolken.png" resize: 150x150 id: Bild_Sonne_Wolken - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Mond.png" resize: 110x110 id: Bild_Mond - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Mond+Gewitter.png" resize: 150x150 id: Bild_Mond_Gewitter - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Mond+Regen.png" resize: 150x150 id: Bild_Mond_Regen - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Mond+Schnee.png" resize: 150x150 id: Bild_Mond_Schnee - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Mond+Wolken.png" resize: 150x150 id: Bild_Mond_Wolken - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Gewitter.png" resize: 120x120 id: Bild_Gewitter - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Regen.png" resize: 135x135 id: Bild_Regen - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Schnee.png" resize: 135x135 id: Bild_Schnee - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Wolke.png" resize: 150x150 id: Bild_Wolke - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Wolken.png" resize: 150x150 id: Bild_Wolken # Wetter-Vorhersage - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Sonne.png" resize: 55x55 id: Bild_Sonne_klein - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Sonne+Gewitter.png" resize: 75x75 id: Bild_Sonne_Gewitter_klein - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Sonne+Regen.png" resize: 65x65 id: Bild_Sonne_Regen_klein - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Sonne+Schnee.png" resize: 75x75 id: Bild_Sonne_Schnee_klein - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Sonne+Wolken.png" resize: 75x75 id: Bild_Sonne_Wolken_klein - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Mond.png" resize: 47x47 id: Bild_Mond_klein - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Mond+Gewitter.png" resize: 75x75 id: Bild_Mond_Gewitter_klein - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Mond+Regen.png" resize: 65x65 id: Bild_Mond_Regen_klein - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Mond+Schnee.png" resize: 75x75 id: Bild_Mond_Schnee_klein - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Mond+Wolken.png" resize: 60x60 id: Bild_Mond_Wolken_klein - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Gewitter.png" resize: 55x55 id: Bild_Gewitter_klein - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Regen.png" resize: 55x55 id: Bild_Regen_klein - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Schnee.png" resize: 57x57 id: Bild_Schnee_klein - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Wolke.png" resize: 71x71 id: Bild_Wolke_klein - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Wolken.png" resize: 75x75 id: Bild_Wolken_klein # Muell - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Muelltonne.png" resize: 75x75 id: Bild_Muelltonne_gross - file: "/opt/iobroker/iobroker-data/esphome.0/Pictures/Bild_Muelltonne.png" resize: 57x57 id: Bild_Muelltonne_klein # Display x-, y- display: - platform: waveshare_epaper id: epaper cs_pin: 20 busy_pin: 39 reset_pin: 14 dc_pin: 22 model: 7.50inV2 update_interval: never reset_duration: 2ms lambda: |- if (id(Foto).state != "1") { //Photovoltaik it.image((id(photovoltaik_symbols_x_int)+400), (id(photovoltaik_symbols_y_int)+85), id(Bild_Photovoltaik)); it.printf((id(photovoltaik_symbols_x_int)+455), (id(photovoltaik_symbols_y_int)+45), id(font1),TextAlign::TOP_CENTER,"%s", id(Momentanleistung).state.c_str()); it.image((id(photovoltaik_symbols_x_int)+550), (id(photovoltaik_symbols_y_int)+171), id(Bild_Haus)); it.printf((id(photovoltaik_symbols_x_int)+601), (id(photovoltaik_symbols_y_int)+263), id(font1),TextAlign::TOP_CENTER,"%s", id(Hausverbrauch).state.c_str()); it.image((id(photovoltaik_symbols_x_int)+692), (id(photovoltaik_symbols_y_int)+78), id(Bild_Strommast)); it.printf((id(photovoltaik_symbols_x_int)+723), (id(photovoltaik_symbols_y_int)+45), id(font1),TextAlign::TOP_CENTER,"%s", id(Einspeisung_Bezug).state.c_str()); if (id(Pfeil_PV_Netz).state == "1") { it.image((id(photovoltaik_symbols_x_int)+554), (id(photovoltaik_symbols_y_int)+115), id(Bild_Pfeil_rechts));} if (id(Pfeil_PV_Haus).state == "1") { it.image((id(photovoltaik_symbols_x_int)+448), (id(photovoltaik_symbols_y_int)+185), id(Bild_Pfeil_rechts_unten));} if (id(Pfeil_Netz_Haus).state == "1") { it.image((id(photovoltaik_symbols_x_int)+680), (id(photovoltaik_symbols_y_int)+185), id(Bild_Pfeil_links_unten));} it.printf((id(photovoltaik_data_x_int)+470), (id(photovoltaik_data_y_int)+320), id(font1),TextAlign::TOP_LEFT, "Tagesertrag: %s", id(Ertrag_Heute).state.c_str()); it.printf((id(photovoltaik_data_x_int)+470), (id(photovoltaik_data_y_int)+350), id(font1),TextAlign::TOP_LEFT, "Eigenv.: %s", id(Eigenverbrauch_Heute).state.c_str()); it.printf((id(photovoltaik_data_x_int)+470), (id(photovoltaik_data_y_int)+380), id(font1),TextAlign::TOP_LEFT, "Netzbezug: %s", id(Netzbezug_Heute).state.c_str()); it.printf((id(photovoltaik_data_x_int)+470), (id(photovoltaik_data_y_int)+410), id(font1),TextAlign::TOP_LEFT, "Deckungsgrad: %s", id(Deckungsgrad_Heute).state.c_str()); //Unwetter if (id(Unwetter).state != "0") { id(icon_heute_y_int) = 0; id(icon_morgen_y_int) = 60; id(icon_uebermorgen_y_int) = 60; it.printf((id(icon_heute_x_int)+125), (id(icon_heute_y_int)+155), id(font1),TextAlign::TOP_LEFT, "%s", id(Unwetter).state.c_str()); it.image((id(icon_heute_x_int)+60), (id(icon_heute_y_int)+148), id(Bild_Ausrufezeichen));} else { id(icon_heute_y_int) = 10; id(icon_morgen_y_int) = 20; id(icon_uebermorgen_y_int) = 20;} //Wetter heute if (id(Wettericon_now).state == "01d") { it.image((id(icon_heute_x_int)+40), (id(icon_heute_y_int)+0), id(Bild_Sonne));} if (id(Wettericon_now).state == "01n") { it.image((id(icon_heute_x_int)+60), (id(icon_heute_y_int)+15), id(Bild_Mond));} if (id(Wettericon_now).state == "02d") { it.image((id(icon_heute_x_int)+40), (id(icon_heute_y_int)-25), id(Bild_Sonne_Wolken));} if (id(Wettericon_now).state == "02n") { it.image((id(icon_heute_x_int)+40), (id(icon_heute_y_int)-10), id(Bild_Mond_Wolken));} if (id(Wettericon_now).state == "03dn") { it.image((id(icon_heute_x_int)+43), (id(icon_heute_y_int)-20), id(Bild_Wolke));} if (id(Wettericon_now).state == "04dn") { it.image((id(icon_heute_x_int)+50), (id(icon_heute_y_int)-30), id(Bild_Wolken));} if (id(Wettericon_now).state == "09dn") { it.image((id(icon_heute_x_int)+50), (id(icon_heute_y_int)+10), id(Bild_Regen));} if (id(Wettericon_now).state == "10d") { it.image((id(icon_heute_x_int)+45), (id(icon_heute_y_int)-5), id(Bild_Sonne_Regen));} if (id(Wettericon_now).state == "10n") { it.image((id(icon_heute_x_int)+45), (id(icon_heute_y_int)-5), id(Bild_Mond_Regen));} if (id(Wettericon_now).state == "11dn") { it.image((id(icon_heute_x_int)+65), (id(icon_heute_y_int)+20), id(Bild_Gewitter));} if (id(Wettericon_now).state == "13dn") { it.image((id(icon_heute_x_int)+55), (id(icon_heute_y_int)+10), id(Bild_Schnee));} if (id(Wettericon_now).state == "50dn") { it.image((id(icon_heute_x_int)+45), (id(icon_heute_y_int)-30), id(Bild_Wolken));} it.printf((id(icon_heute_x_int)+210), (id(icon_heute_y_int)+33), id(font2),TextAlign::TOP_LEFT, "%s", id(Actual_Temp).state.c_str()); it.printf((id(icon_heute_x_int)+210), (id(icon_heute_y_int)+78), id(font3),TextAlign::TOP_LEFT, "%s", id(MinMax_Temp_Heute).state.c_str()); it.printf((id(icon_heute_x_int)+230), (id(icon_heute_y_int)+100), id(font3),TextAlign::TOP_LEFT, "%s", id(Regen_Heute).state.c_str()); it.image((id(icon_heute_x_int)+210), (id(icon_heute_y_int)+104), id(Bild_Tropfen)); //Wetter morgen if (id(Wettericon_morgen).state == "01d") { it.image((id(icon_morgen_x_int)+78), (id(icon_morgen_y_int)+178), id(Bild_Sonne_klein));} if (id(Wettericon_morgen).state == "01n") { it.image((id(icon_morgen_x_int)+6), (id(icon_morgen_y_int)+180), id(Bild_Mond_klein));} if (id(Wettericon_morgen).state == "02d") { it.image((id(icon_morgen_x_int)+68), (id(icon_morgen_y_int)+154), id(Bild_Sonne_Wolken_klein));} if (id(Wettericon_morgen).state == "02n") { it.image((id(icon_morgen_x_int)+73), (id(icon_morgen_y_int)+173), id(Bild_Mond_Wolken_klein));} if (id(Wettericon_morgen).state == "03dn") { it.image((id(icon_morgen_x_int)+68), (id(icon_morgen_y_int)+159), id(Bild_Wolke_klein));} if (id(Wettericon_morgen).state == "04dn") { it.image((id(icon_morgen_x_int)+68), (id(icon_morgen_y_int)+152), id(Bild_Wolken_klein));} if (id(Wettericon_morgen).state == "09dn") { it.image((id(icon_morgen_x_int)+75), (id(icon_morgen_y_int)+180), id(Bild_Regen_klein));} if (id(Wettericon_morgen).state == "10d") { it.image((id(icon_morgen_x_int)+70), (id(icon_morgen_y_int)+169), id(Bild_Sonne_Regen_klein));} if (id(Wettericon_morgen).state == "10n") { it.image((id(icon_morgen_x_int)+70), (id(icon_morgen_y_int)+169), id(Bild_Mond_Regen_klein));} if (id(Wettericon_morgen).state == "11dn") { it.image((id(icon_morgen_x_int)+75), (id(icon_morgen_y_int)+181), id(Bild_Gewitter_klein));} if (id(Wettericon_morgen).state == "13dn") { it.image((id(icon_morgen_x_int)+75), (id(icon_morgen_y_int)+177), id(Bild_Schnee_klein));} if (id(Wettericon_morgen).state == "50dn") { it.image(id(icon_morgen_x_int)+68, (id(icon_morgen_y_int)+152), id(Bild_Wolken_klein));} it.printf(id(icon_morgen_x_int)+58, (id(icon_morgen_y_int)+233), id(font3),TextAlign::TOP_LEFT, "%s", id(MinMax_Temp_morgen).state.c_str()); it.printf((id(icon_morgen_x_int)+78), (id(icon_morgen_y_int)+255), id(font3),TextAlign::TOP_LEFT, "%s", id(Regen_morgen).state.c_str()); it.image(id(icon_morgen_x_int)+58, (id(icon_morgen_y_int)+259), id(Bild_Tropfen)); it.printf((id(icon_morgen_x_int)+73), (id(icon_morgen_y_int)+150), id(font3),TextAlign::TOP_LEFT, "%s", id(Tag_morgen).state.c_str()); it.line((id(icon_morgen_x_int)+58), (id(icon_morgen_y_int)+176), (id(icon_morgen_x_int)+158), (id(icon_morgen_y_int)+176)); //Wetter uebermorgen if (id(Wettericon_uebermorgen).state == "01d") { it.image((id(icon_uebermorgen_x_int)+238), (id(icon_uebermorgen_y_int)+178), id(Bild_Sonne_klein));} if (id(Wettericon_uebermorgen).state == "01n") { it.image((id(icon_uebermorgen_x_int)+236), (id(icon_uebermorgen_y_int)+180), id(Bild_Mond_klein));} if (id(Wettericon_uebermorgen).state == "02d") { it.image((id(icon_uebermorgen_x_int)+228), (id(icon_uebermorgen_y_int)+154), id(Bild_Sonne_Wolken_klein));} if (id(Wettericon_uebermorgen).state == "02n") { it.image((id(icon_uebermorgen_x_int)+233), (id(icon_uebermorgen_y_int)+171), id(Bild_Mond_Wolken_klein));} if (id(Wettericon_uebermorgen).state == "03dn") { it.image((id(icon_uebermorgen_x_int)+228), (id(icon_uebermorgen_y_int)+159), id(Bild_Wolke_klein));} if (id(Wettericon_uebermorgen).state == "04dn") { it.image((id(icon_uebermorgen_x_int)+228), (id(icon_uebermorgen_y_int)+152), id(Bild_Wolken_klein));} if (id(Wettericon_uebermorgen).state == "09dn") { it.image((id(icon_uebermorgen_x_int)+235), (id(icon_uebermorgen_y_int)+180), id(Bild_Regen_klein));} if (id(Wettericon_uebermorgen).state == "10d") { it.image((id(icon_uebermorgen_x_int)+230), (id(icon_uebermorgen_y_int)+169), id(Bild_Sonne_Regen_klein));} if (id(Wettericon_uebermorgen).state == "10n") { it.image((id(icon_uebermorgen_x_int)+230), (id(icon_uebermorgen_y_int)+169), id(Bild_Mond_Regen_klein));} if (id(Wettericon_uebermorgen).state == "11dn") { it.image((id(icon_uebermorgen_x_int)+235), (id(icon_uebermorgen_y_int)+181), id(Bild_Gewitter_klein));} if (id(Wettericon_uebermorgen).state == "13dn") { it.image((id(icon_uebermorgen_x_int)+235), (id(icon_uebermorgen_y_int)+177), id(Bild_Schnee_klein));} if (id(Wettericon_uebermorgen).state == "50dn") { it.image((id(icon_uebermorgen_x_int)+228), (id(icon_uebermorgen_y_int)+152), id(Bild_Wolken_klein));} it.printf(id(icon_uebermorgen_x_int)+218, (id(icon_uebermorgen_y_int)+233), id(font3),TextAlign::TOP_LEFT, "%s", id(MinMax_Temp_uebermorgen).state.c_str()); it.printf((id(icon_uebermorgen_x_int)+238), (id(icon_uebermorgen_y_int)+255), id(font3),TextAlign::TOP_LEFT, "%s", id(Regen_uebermorgen).state.c_str()); it.image(id(icon_uebermorgen_x_int)+218, (id(icon_uebermorgen_y_int)+259), id(Bild_Tropfen)); it.printf((id(icon_uebermorgen_x_int)+233), (id(icon_uebermorgen_y_int)+150), id(font3),TextAlign::TOP_LEFT, "%s", id(Tag_uebermorgen).state.c_str()); it.line((id(icon_uebermorgen_x_int)+218), (id(icon_uebermorgen_y_int)+176), (id(icon_uebermorgen_x_int)+318), (id(icon_uebermorgen_y_int)+176)); //Muell //Keine Unwetterwarnung if (id(Unwetter).state == "0") { //Kein Grün- und kein Sperrmüll-Termin if ((id(Termin_Gruenabfall).state == "Grünabfall: Kein Termin") && (id(Termin_Sperrmuell).state == "Sperrmüll: Kein Termin")) { it.image((id(muell_x_int)+63), (id(muell_y_int)+337), id(Bild_Muelltonne_klein)); it.printf((id(muell_x_int)+105), (id(muell_y_int)+335), id(font4),TextAlign::TOP_LEFT, "%s", id(Termin_Restmuell).state.c_str()); it.printf((id(muell_x_int)+105), (id(muell_y_int)+365), id(font4),TextAlign::TOP_LEFT, "%s", id(Termin_Papier).state.c_str());} //Nur Grünabfall-Termin else if ((id(Termin_Gruenabfall).state != "Grünabfall: Kein Termin") && (id(Termin_Sperrmuell).state == "Sperrmüll: Kein Termin")) { it.image((id(muell_x_int)+45), (id(muell_y_int)+340), id(Bild_Muelltonne_gross)); it.printf((id(muell_x_int)+105), (id(muell_y_int)+335), id(font4),TextAlign::TOP_LEFT, "%s", id(Termin_Restmuell).state.c_str()); it.printf((id(muell_x_int)+105), (id(muell_y_int)+365), id(font4),TextAlign::TOP_LEFT, "%s", id(Termin_Papier).state.c_str()); it.printf((id(muell_x_int)+105), (id(muell_y_int)+395), id(font4),TextAlign::TOP_LEFT, "%s", id(Termin_Gruenabfall).state.c_str());} //Nur Sperrmüll-Termin else if ((id(Termin_Gruenabfall).state == "Grünabfall: Kein Termin") && (id(Termin_Sperrmuell).state != "Sperrmüll: Kein Termin")) { it.image((id(muell_x_int)+45), (id(muell_y_int)+340), id(Bild_Muelltonne_gross)); it.printf((id(muell_x_int)+105), (id(muell_y_int)+335), id(font4),TextAlign::TOP_LEFT, "%s", id(Termin_Restmuell).state.c_str()); it.printf((id(muell_x_int)+105), (id(muell_y_int)+365), id(font4),TextAlign::TOP_LEFT, "%s", id(Termin_Papier).state.c_str()); it.printf((id(muell_x_int)+105), (id(muell_y_int)+395), id(font4),TextAlign::TOP_LEFT, "%s", id(Termin_Sperrmuell).state.c_str());} //Grün- und Sperrmüll-Termine else if ((id(Termin_Gruenabfall).state != "Grünabfall: Kein Termin") && (id(Termin_Sperrmuell).state != "Sperrmüll: Kein Termin")) { it.image((id(muell_x_int)+45), (id(muell_y_int)+340), id(Bild_Muelltonne_gross)); it.printf((id(muell_x_int)+105), (id(muell_y_int)+320), id(font4),TextAlign::TOP_LEFT, "%s", id(Termin_Restmuell).state.c_str()); it.printf((id(muell_x_int)+105), (id(muell_y_int)+350), id(font4),TextAlign::TOP_LEFT, "%s", id(Termin_Papier).state.c_str()); it.printf((id(muell_x_int)+105), (id(muell_y_int)+380), id(font4),TextAlign::TOP_LEFT, "%s", id(Termin_Gruenabfall).state.c_str()); it.printf((id(muell_x_int)+105), (id(muell_y_int)+410), id(font4),TextAlign::TOP_LEFT, "%s", id(Termin_Sperrmuell).state.c_str());}} //Unwetterwarnung aktiv else { //Nur Rest- und Papiermüll-Termine if (id(Termin_Gruen_Sperr).state == "Kein Termin") { it.image((id(muell_x_int)+63), (id(muell_y_int)+367), id(Bild_Muelltonne_klein)); it.printf((id(muell_x_int)+105), (id(muell_y_int)+365), id(font4),TextAlign::TOP_LEFT, "%s", id(Termin_Restmuell).state.c_str()); it.printf((id(muell_x_int)+105), (id(muell_y_int)+395), id(font4),TextAlign::TOP_LEFT, "%s", id(Termin_Papier).state.c_str());} else { ////Rest-, Papier-, Grün- und/oder Sperrmüll-Termine it.image((id(muell_x_int)+45), (id(muell_y_int)+357), id(Bild_Muelltonne_gross)); it.printf((id(muell_x_int)+105), (id(muell_y_int)+350), id(font4),TextAlign::TOP_LEFT, "%s", id(Termin_Restmuell).state.c_str()); it.printf((id(muell_x_int)+105), (id(muell_y_int)+380), id(font4),TextAlign::TOP_LEFT, "%s", id(Termin_Papier).state.c_str()); it.printf((id(muell_x_int)+105), (id(muell_y_int)+410), id(font4),TextAlign::TOP_LEFT, "%s", id(Termin_Gruen_Sperr).state.c_str());}}} else {it.image(75, 0, id(Bild));}
-
@doho besten Dank, sind die PNG's als Standart verfügbar oder selber gezeichnet?
-
Die Bilder hab ich von freepik.com
-
Hallo Zusammen,
Mein Display macht seit einiger Zeit Probleme und ich komme nicht dahinter, was es ist.
Über den Tag hinweg, verliert das Display seinen Kontrast. Morgens ist der Kontrast ok und Abends ist das Display unscharf. Update Intervall 15 Minuten tagsüber. Nachts (22:30 Uhr bis 06:00 Uhr) keine Refresh’s.Verkabelung und Software habe ich geprüft und scheint ok zu sein. Direkt nach dem Refresh ist das Display für wenige ms scharf und wird dann schlagartig „unscharf“. Darum denke ich, es ist ein Konfigurationsthema.
Kennst Du das Phänomen vielleicht @draexler? Oder evtl. sonst jemand?Vielen Dank vorab!
-
@doho Ja, das tritt bei meinen Geräten auf, auf denen kein DeepSleep verwendet wird.
Fehler ist bekannt und wird mit einer der nächsten Version gefixt.
Aktuell musst du auf die 2023.7.0 esphome Version updaten -> Dazu musst du den ioBroker Adapter deinstallieren und wieder installieren. Keine Angst die YAMLS sind danach noch da. Aber trotzdem vielleicht sichern.Anschließen ergänzt du in der YAML folgendes:
# Interim solution until solution comes centrally external_components: - source: type: git url: https://github.com/prapador/esphome_waveshare_fix ref: dev components: [ waveshare_epaper ]
Und als Display Version verwendest du folgendes:
model: 7.50inV2alt
Damit sollte das Problem behoben. Es kommt aber irgendwann ein Update. Ein Pull Request dazu läuft schon.
-
Danke für den Hinweis @draexler. Laut changelog müsste es mit der neusten Version 2023.7.1 behoben sein. Ich werde es ausprobieren
-
@doho Ah, sehr gut. Ging also doch schneller als gedacht. Dann einfach nur den Adapter deinstallieren und installieren, damit die neueste Version installiert wird und die ESPs neu flashen, aber trotzdem den Modelnamen ändern:
model: 7.50inV2alt
ohne "alt" hatte es bei mir keine Auswirkung.
-
Stimmt. Ich muss auch den Modelnamen auf:
model: 7.50inV2alt
ändern. Woher wusstest du das mit dem esphome update?