ESP-Home mit Waveshare 2.9 inch ePaper (3 Farben r/w/s)

Ich habe Probleme mit dem ePaper 2.9 inch von AZ-Delivery…
wenn ich die Standart Waveshare Library in ESPHome nutze , flackert das Display.
Nutze ich die https://github.com/ZinggJM/GxEPD2 , funktioniert es unter Arduino.

Wie bekomm ich diese Library in ESP-home in ESP-Home ?

Was muss ich wo hin kopieren , damit ich diese nutzen kann ?
wie muss die Yaml aussehen?

spi:
  
  mosi_pin: GPIO23                                  # aka SDA gelb
  clk_pin: GPIO18                                     # aka SCL grün

display:
  - platform: waveshare_epaper              # -- mit der flackerndes Bild
    model: 2.90inv2                                  # -- mit der flackerndes Bild
    setup_priority: 300
    reset_duration: 2ms
    cs_pin: GPIO26                                 # blau
    dc_pin: GPIO16                                 # lila
    reset_pin: GPIO17                            # grau
    busy_pin: GPIO21     #weiss
    rotation: 270°
    update_interval: 20s
    full_update_every: 1

Bin für jeden Tip dankbar !!!

:crayon: by HarryP: Codezeilen in Code-TAG’s eingebunden

Auch wenn das haarscharf an einer Lösung vorbei geht, aber vielleicht doch interessant für dich:
https://openepaperlink.de/

@phettsack : Nee, damit kann ich nichts anfangen…hat mit esphome ja nichts zu tun…

hab ja nur das Problem, der Treiber (in Bibliothek) ja da ist. Nur wie ich den in ESPHome includiere, davon hab ich keine Ahnung… src/epd3c/GxEPD2_290_C90c.h …???

hier mal die…

esphome:
  name: epaperdisplayesp32
  friendly_name: ePaperDisplayESP32

  includes:
  - GxEPD2_290_C90c.h          <<<----hab ich nun hier eingefügt......
  - GxEPD2_EPD.h.                  <<<-----------
esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx="

ota:
  password: "xxxxxxxxxxxxxxxxxxxxxx"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Epaperdisplayesp32"
    password: "V55ufXPTs09V"

captive_portal:
time:
  - platform: homeassistant
    id: homeassistant_time      
    timezone: Europe/Amsterdam 
    # Example minimal configuration entry

sensor:
 - platform: homeassistant
   name: Solaranlage
   id: mystrom
   entity_id: sensor.solaranlage_power
 - platform: homeassistant
   name: Stromverbrauch
   id: stromeingang
   entity_id: sensor.tasmota_power_curr
 - platform: homeassistant
   name: Solarstromproduktion
   id: solargesamt
   entity_id: sensor.hm1500_yieldday

font:
  - file: "fonts/Roboto-Medium.ttf"
    id: roboto
    size: 18

color:
  - id: color_black
    red: 0%
    white: 0%
  - id: color_white
    red: 0%
    white: 100%
  - id: color_red
    red: 100%
    white: 0%   
spi:
  
  mosi_pin: GPIO23 # aka 23 SDA gelb
  clk_pin: GPIO18  # aka 18 SCL grün
  #id: spi001

display:
  - platform: ?            epaper zeigt er mir nicht an ....

    model:  ?              das wäre das Richtige Model.. --> GDEM029C90

    cs_pin: GPIO05       # blau
    dc_pin: GPIO17       # lila
    reset_pin: GPIO16    # grau
    busy_pin: GPIO04     #weiss 21
    rotation: 270°
    #update_interval: 20s
    full_update_every: 1
    reset_duration: 30ms
 
    lambda: |-    
      it.print(0, 0, id(roboto),color_red, " Energieboard");    
      it.printf(0, 30, id(roboto),color_red, "Solarstrom: %.1f Watt", id(mystrom).state);
      it.printf(0, 50, id(roboto),color_white, "Stromeingang: %.1f Watt", id(stromeingang).state);        
      it.strftime(30, 90, id(roboto),color_red, "%d-%m-%Y %H:%M", id(homeassistant_time).now());
      it.printf(0, 70, id(roboto),color_red, "Solarertrag: %.1f Wh/Tag", id(solargesamt).state); 

Muss ich nochwas includen ???

:crayon:by HarryP: Codezeilen in Code-TAG‘s eingebunden.

Hallo,

Hast du eine Lösung gefunden ? ich habe das Gleiche Display und es geht leider nicht :frowning:

Leider noch nicht :weary: man müsste nur die Library irgendwie integrieren können…. Unter arduino läuft es ja…

Gibt es schon eine Lösung? Ich habe das Display auch. Das einfarbige Display geht, nur das 3 farbige Display nicht.

Gibt es hier inzwischen Fortschritte? Ich kriege es nichtmal zu einer flackernden Anzeige… Wie finde ich denn raus, welches Display exakt ich habe?
3 Farben von AZ - aber ganz neu bestellt.
Kann es daran liegen, dass ich da was geändert hat und ESPHome das nicht unterstützt?

Leider keine Neuerungen zu dem Display …. Hab es nur unter arduino zum laufen bekommen aber es ging bis jetzt noch nicht mit esp Home ……

Hier das Display

Möchte mich mit meinen bis jetzt schlechten Erfahrungen anschließen.
habe das AZ-Epaper an einem ESP8266 (D1Mini) und ESPHOME.
Meine Yaml:

esphome:
  name: esp8266-117
  friendly_name: ESP8266-117
  libraries: 
    - SPI               #built-in libraries
    - wire
    - "adafruit/Adafruit GFX Library@^1.12.1"
    - "Adafruit BusIO"
    - "GxEPD2"
#    - "GxEPD"

#  includes:
#    - lib/GxEPD2/src/GxEPD2_3C.h
#    - lib/GxEPD2/src/GxEPD2_290_C90c.h
#    - lib/GxEPD2/src/GxEPD2_EPD.h
#    - lib/GxEPD2/src/GxEPD2.h
#  platformio_options:
#    build_flags:     
#      - "-I./lib/GxEPD2/src"

esp8266:
  board: d1_mini

# Enable Home Assistant API
api:
  encryption:
    key: "............"

ota:
  - platform: esphome
    password: "..........."

# Enable logging
logger:
  level: VERBOSE 
  baud_rate: 19200

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  fast_connect: true
  manual_ip:
    static_ip: XXX
    gateway: XXX
    subnet: XXX

font:
  - file: 'arial.ttf'
    id: font1
    size: 16

color:
  - id: rot
    hex: F80000
  - id: weiss
    hex: ffffff
  - id: black
    hex: "000000"

spi:
  clk_pin: GPIO14
  mosi_pin: GPIO13

web_server:
  port: 80
  ota: false

display:
  - platform: waveshare_epaper
    id: mydisplay
    cs_pin: GPIO2
    dc_pin: GPIO12
    busy_pin: GPIO5
    reset_pin: GPIO4
    model: 2.90inv2
    rotation: 270° 
    full_update_every: 30
    update_interval: 10s
    lambda: |-
      it.fill(weiss);
      it.print(0, 0, id(font1), black, "das Epaper macht Mist");
      it.strftime(0, 32, id(font1), black, "Hzg %H:%M %d.%m.%Y", id(my_time).now());
      
time:
- platform: homeassistant
  id: my_time

sensor:
  - platform: homeassistant
....

Das Problem bei mir ist, der Kompiler bringt fast am Ende einen Fehler:

.piolibdeps/esp8266-117/Adafruit GFX Library/Adafruit_GFX.h:12:10: fatal error: Adafruit_I2CDevice.h: No such file or directory

Das komplette Log:
logs_esp8266-117_compile.txt (12,9 KB)
Am Anfang des log ist zu sehen, das die Bibliothek “Adafruit BusIO” mit Adafruit_I2CDevice.h geladen wird. Habe den Eindruck das ESPHOME mit den zus. Bibliotheken nicht klar kommt.
Das gleiche Problem kommt auch wenn man mit Include und Platfotmio-options versucht (auskommentierte Zeilen)
Aber vielleicht hat noch jemand eine Idee wie man hier weiter kommt.

Versuche mal:

libraries:
  - SPI
  - Wire
  - "adafruit/Adafruit GFX Library@^1.12.1"
  - "adafruit/Adafruit BusIO@^1.14.0"
  - "ZinggJM/GxEPD2@^1.3.5"

270 ohne das grad Zeichen nur ne 270

Bei den Farben ist auch noch Fehler:

color:
  - id: rot
    hex: "F80000"
  - id: weiss
    hex: "FFFFFF"
  - id: black
    hex: "000000"

esphome:
  name: esp8266-117
  friendly_name: ESP8266-117
  libraries:
    - SPI
    - Wire
    - "adafruit/Adafruit GFX Library@^1.12.1"
    - "adafruit/Adafruit BusIO@^1.14.0"
    - "ZinggJM/GxEPD2@^1.3.5"

esp8266:
  board: d1_mini

logger:
  level: VERBOSE
  baud_rate: 19200

api:
  encryption:
    key: "DEIN_API_KEY_HIER"

ota:
  password: "DEIN_OTA_PASSWORT_HIER"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  fast_connect: true
  manual_ip:
    static_ip: 192.168.1.117
    gateway: 192.168.1.1
    subnet: 255.255.255.0

web_server:
  port: 80
  ota: false

spi:
  clk_pin: GPIO14
  mosi_pin: GPIO13

font:
  - file: "arial.ttf"
    id: font1
    size: 16

color:
  - id: rot
    hex: "F80000"
  - id: weiss
    hex: "FFFFFF"
  - id: black
    hex: "000000"

time:
  - platform: homeassistant
    id: my_time

display:
  - platform: waveshare_epaper
    id: mydisplay
    cs_pin: GPIO2
    dc_pin: GPIO12
    busy_pin: GPIO5
    reset_pin: GPIO4
    model: 2.90inv2
    rotation: 270
    full_update_every: 30
    update_interval: 10s
    lambda: |-
      it.fill(weiss);
      it.print(0, 0, id(font1), black, "das Epaper macht Mist");
      it.strftime(0, 32, id(font1), black, "Hzg %H:%M %d.%m.%Y", id(my_time).now());

sensor:
  - platform: homeassistant
    entity_id: sensor.beispiel_temperature
    id: temp_sensor

:crayon:by HarryP:
. Zusammenführung Doppelpost (bei Änderungen oder hinzufügen von Inhalten bitte die „Bearbeitungsfunktion“ anstatt „Antworten“ zu nutzen)
. Code-/Logzeilen formatiert (bitte immer in </> einbinden)

Hallo, vielen Dank für den Hinweis.
Leider kein Erfolg, das gleiche Fehlerbild. Kompilierung bricht mit gleichem Fehler ab.

Hier das neue, fast gleiche Log:
logs_esp8266-117_compile(2).txt (14,0 KB)

Hallo zusammen, ich habe auch so ein 3 Farben ePaper und konnte es zum laufen bekommen mit einem ESP32. Am Anfang flackert es, aber es berugigt sich dann wieder. Eine rote Schriftfarbe habe ich noch nicht eingebunden.

font:
  - file: "fonts/Roboto-Regular.ttf"
    id: roboto
    size: 22
    glyphs: " !\"%()+=,-_.:°²³0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzäöüÄÖÜß"

spi:
  clk_pin: GPIO18 #aka SCL
  mosi_pin: GPIO23 # aka SDA

display:
  - platform: waveshare_epaper
    id: eink_display
    cs_pin: GPIO5
    dc_pin: GPIO17
    busy_pin: GPIO4
    reset_pin: GPIO16
    model: 2.90inv2-r2
    full_update_every: 240
    update_interval: 60 sec
    rotation: 270°
    reset_duration: 2ms
    lambda: |-
      it.printf(0, 0, id(roboto), "Temperatur: %.0f °C", id(temp).state);
      it.printf(0, 30, id(roboto), "Feuchtigkeit: %.0f %%", id(hum).state);
      it.printf(0, 60, id(roboto), "Iller: %.0f cm - %s", id(pegelstand).state, id(pegeltrend).state.c_str());
      it.printf(0, 100, id(roboto), "%s", id(tonnen).state.c_str());


sensor:
  - platform: homeassistant
    name: "Temperature"
    id: temp
    entity_id: sensor.tp357_108e_temperature

  - platform: homeassistant
    name: "Feuchtigkeit"
    id: hum
    entity_id: sensor.tp357_108e_humidity

  - platform: homeassistant
    name: "Pegelstand"
    id: pegelstand
    entity_id: sensor.sonthofen_iller_pegelstand

text_sensor:
  - platform: homeassistant
    name: "Tonnen"
    id: tonnen
    entity_id: sensor.mybuttoncardsensor4

  - platform: homeassistant
    name: "Trend"
    id: pegeltrend
    entity_id: sensor.illerpegel_trend

Beste Grüße
toptobias

1 „Gefällt mir“

Vielleicht OT aber wieso 27,99€ für ein AZ Produkt bezahlen wenn man bei berrybase z.b ein echtes waveshare 2.9 inch rot schwarz weiß für 15,50€ bekommt was direkt von esphome unterstützt wird?!

Ich habe nochmal ein wenig ausprobiert evtl. hilft das hier:

external_components:
  source: github://pr#6226
  components: [waveshare_epaper]
display:
  - platform: waveshare_epaper
    model: 2.90in3c
    reset_duration: 20ms #20ms bei zickigen Displays
    #..... restlicher code