Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. ePaper Statusdisplay Hausflur

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    ePaper Statusdisplay Hausflur

    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      DoHo @appi last edited by

      @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));}
      
      A 1 Reply Last reply Reply Quote -1
      • A
        appi @DoHo last edited by

        @doho besten Dank, sind die PNG's als Standart verfügbar oder selber gezeichnet?

        1 Reply Last reply Reply Quote 0
        • D
          DoHo last edited by DoHo

          Die Bilder hab ich von freepik.com

          1 Reply Last reply Reply Quote 0
          • D
            DoHo last edited by

            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!

            IMG_7785.jpeg

            IMG_7786.jpeg

            draexler 1 Reply Last reply Reply Quote 0
            • draexler
              draexler @DoHo last edited by

              @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.

              1 Reply Last reply Reply Quote 0
              • D
                DoHo last edited by

                Danke für den Hinweis @draexler. Laut changelog müsste es mit der neusten Version 2023.7.1 behoben sein. Ich werde es ausprobieren 🙂

                2023-08-04 08_40_22-Releases · esphome_esphome – Mozilla Firefox.png

                draexler 1 Reply Last reply Reply Quote 0
                • draexler
                  draexler @DoHo last edited by

                  @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.

                  1 Reply Last reply Reply Quote 0
                  • D
                    DoHo last edited by

                    Stimmt. Ich muss auch den Modelnamen auf:

                    model: 7.50inV2alt
                    

                    ändern. Woher wusstest du das mit dem esphome update?

                    draexler 1 Reply Last reply Reply Quote 0
                    • draexler
                      draexler @DoHo last edited by

                      @doho Du ich bin Recherche mäßig ab und zu in dem ESPHOME GITHUB Projekt unterwegs und dabe ich den Issue gesehen.

                      D 1 Reply Last reply Reply Quote 0
                      • D
                        DoHo @draexler last edited by

                        @draexler auf jeden Fall nochmal vielen Dank! Ich hätte erstmal weiterhin meine Konfiguration in Frage gestellt.

                        H 1 Reply Last reply Reply Quote 0
                        • H
                          hesse @DoHo last edited by

                          Vielen Dank für den Hinweis, nach dem Update sieht es nun endlich wieder viel besser aus 🙂

                          1 Reply Last reply Reply Quote 0
                          • A
                            appi @draexler last edited by

                            @draexler
                            morgen
                            cooles Projekt, bin auch am rumspielen mit E-Paper und hab vieles von dir übernommen.
                            würdest du ev. Datein für den 3D Druck für das Gehäuse zur Verfügungstellen? Würde mich freuen.

                            1 Reply Last reply Reply Quote 0
                            • desq
                              desq last edited by desq

                              @DoHo

                              Hej.
                              Da hast Du genau das umgesetzt, wonach ich schon seit ein paar Wochen das Netz durchforste.
                              Ich biege gerade die mqtt-topics um.

                              Welchen Adapter verwendest Du für die Wetterprognose?
                              Würdest Du neben der yaml für espHome (danke dafür) auch die PNGs teilen?

                              LG,
                              Stefan

                              F 1 Reply Last reply Reply Quote 0
                              • F
                                Fischje @desq last edited by Fischje

                                @desq

                                da schließe ich mich an, habe gerade erstmal alles zum laufen gebracht. das display in version 2.3 hat mich erstmal nerven gekostet. aber jetzt klappt es erstmal:

                                4ae2383f-85fe-4b2f-979b-bc81fa1e362a-image.png

                                Das mit den Images un den vielen Zeichenkonvertierungen sieht nach unglaublich viel arbeit aus...

                                1 Reply Last reply Reply Quote 0
                                • Florian 1
                                  Florian 1 @draexler last edited by

                                  @draexler hallo gibt es für das Case zufällig eine Druckdatei oder einen Link?

                                  1 Reply Last reply Reply Quote 0
                                  • First post
                                    Last post

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  507
                                  Online

                                  31.7k
                                  Users

                                  79.6k
                                  Topics

                                  1.3m
                                  Posts

                                  15
                                  55
                                  11368
                                  Loading More Posts
                                  • Oldest to Newest
                                  • Newest to Oldest
                                  • Most Votes
                                  Reply
                                  • Reply as topic
                                  Log in to reply
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                  The ioBroker Community 2014-2023
                                  logo