Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Praktische Anwendungen (Showcase)
  4. ePaper Statusdisplay Hausflur

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.5k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.0k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    2.7k

ePaper Statusdisplay Hausflur

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
62 Beiträge 18 Kommentatoren 18.0k Aufrufe 27 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • A appi

    @doho super schön realisiert, würdest du allenfass den Code zur Verfügung stellen?
    Besten Dank und Gruss

    D Offline
    D Offline
    DoHo
    schrieb am zuletzt editiert von
    #41

    @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 Antwort Letzte Antwort
    -1
    • D DoHo

      @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 Offline
      A Offline
      appi
      schrieb am zuletzt editiert von
      #42

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

      1 Antwort Letzte Antwort
      0
      • D Offline
        D Offline
        DoHo
        schrieb am zuletzt editiert von DoHo
        #43

        Die Bilder hab ich von freepik.com

        1 Antwort Letzte Antwort
        0
        • D Offline
          D Offline
          DoHo
          schrieb am zuletzt editiert von
          #44

          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

          draexlerD 1 Antwort Letzte Antwort
          0
          • D DoHo

            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

            draexlerD Offline
            draexlerD Offline
            draexler
            schrieb am zuletzt editiert von
            #45

            @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 Antwort Letzte Antwort
            0
            • D Offline
              D Offline
              DoHo
              schrieb am zuletzt editiert von
              #46

              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

              draexlerD 1 Antwort Letzte Antwort
              0
              • D DoHo

                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

                draexlerD Offline
                draexlerD Offline
                draexler
                schrieb am zuletzt editiert von
                #47

                @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 Antwort Letzte Antwort
                0
                • D Offline
                  D Offline
                  DoHo
                  schrieb am zuletzt editiert von
                  #48

                  Stimmt. Ich muss auch den Modelnamen auf:

                  model: 7.50inV2alt
                  

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

                  draexlerD 1 Antwort Letzte Antwort
                  0
                  • D DoHo

                    Stimmt. Ich muss auch den Modelnamen auf:

                    model: 7.50inV2alt
                    

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

                    draexlerD Offline
                    draexlerD Offline
                    draexler
                    schrieb am zuletzt editiert von
                    #49

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

                    D 1 Antwort Letzte Antwort
                    0
                    • draexlerD draexler

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

                      D Offline
                      D Offline
                      DoHo
                      schrieb am zuletzt editiert von
                      #50

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

                      H 1 Antwort Letzte Antwort
                      0
                      • D DoHo

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

                        H Offline
                        H Offline
                        hesse
                        schrieb am zuletzt editiert von
                        #51

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

                        1 Antwort Letzte Antwort
                        0
                        • draexlerD draexler

                          @smarthome2020
                          Alles circa Angaben
                          Display inkl. Treiberplatine -> 70€
                          ESP -> 20€
                          Antenne -> 5€
                          Akkus -> 30€
                          Kleinigkeiten z.B. LIPO Batteriestecker, Batteriesilberdraht, Schraubklemmen für ESP -> 10€

                          Also rund ca 130€ bis 150€

                          Das Gehäuse ist selbstgedruckt... Das kriegt man also nirgends so zum kaufen.

                          A Offline
                          A Offline
                          appi
                          schrieb am zuletzt editiert von
                          #52

                          @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 Antwort Letzte Antwort
                          0
                          • desqD Offline
                            desqD Offline
                            desq
                            schrieb am zuletzt editiert von desq
                            #53

                            @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 Antwort Letzte Antwort
                            0
                            • desqD 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 Offline
                              F Offline
                              Fischje
                              schrieb am zuletzt editiert von Fischje
                              #54

                              @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 Antwort Letzte Antwort
                              0
                              • draexlerD draexler

                                Hi Zusammen,

                                Habe für den zentralen Hausflur eines Mehrparteien Hauses ein Status ePaper gebaut mit dem ESPHome Adapter.

                                Komponenten sind ein Esp32 Feather, ein 7.5 Waveshare Display und ein 2500 Lipo Akku.

                                Aktualisiert wird jede Stunde durch DeepSleep.

                                27CE8533-567E-41F5-B71A-D56A849D42DB.jpeg
                                1E18C135-4724-4271-B882-2986448E140A.jpeg

                                Florian 1F Offline
                                Florian 1F Offline
                                Florian 1
                                schrieb am zuletzt editiert von
                                #55

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

                                1 Antwort Letzte Antwort
                                0
                                • draexlerD draexler

                                  @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 oft ;-)

                                  Achja, 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.)

                                  S Offline
                                  S Offline
                                  SvensonLF
                                  schrieb am zuletzt editiert von
                                  #56

                                  @draexler said in ePaper Statusdisplay Hausflur:

                                  @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 oft ;-)

                                  Achja, 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.)

                                  Guten Morgen zusammen, ich bin mir durchaus bewusst, dass dieser Beitrag etwas älter ist, jedoch würde ich gerne wissen, wie ich die VIS auf das Display bekomme. Tut mir leid, wenn die Frage jetzt vielleicht etwas dumm erscheinen sollte.

                                  Beste Grüße
                                  Sven

                                  draexlerD 1 Antwort Letzte Antwort
                                  0
                                  • S SvensonLF

                                    @draexler said in ePaper Statusdisplay Hausflur:

                                    @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 oft ;-)

                                    Achja, 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.)

                                    Guten Morgen zusammen, ich bin mir durchaus bewusst, dass dieser Beitrag etwas älter ist, jedoch würde ich gerne wissen, wie ich die VIS auf das Display bekomme. Tut mir leid, wenn die Frage jetzt vielleicht etwas dumm erscheinen sollte.

                                    Beste Grüße
                                    Sven

                                    draexlerD Offline
                                    draexlerD Offline
                                    draexler
                                    schrieb am zuletzt editiert von
                                    #57

                                    @svensonlf dumm gibts nicht ;-) Die VIS wie sie im getagten Beitrag genannt wird steht nur im Kontext das man dort den groben Aufbau „vorbauen“ soll. Mit ESP Home musst du das mit YAML Code machen und dort brauchst dur X Y Koordinaten. Und die kannst du über die VIS einsehen und übernehmen.

                                    S 1 Antwort Letzte Antwort
                                    0
                                    • draexlerD draexler

                                      @svensonlf dumm gibts nicht ;-) Die VIS wie sie im getagten Beitrag genannt wird steht nur im Kontext das man dort den groben Aufbau „vorbauen“ soll. Mit ESP Home musst du das mit YAML Code machen und dort brauchst dur X Y Koordinaten. Und die kannst du über die VIS einsehen und übernehmen.

                                      S Offline
                                      S Offline
                                      SvensonLF
                                      schrieb am zuletzt editiert von
                                      #58

                                      @draexler
                                      Gut, ich werde mir das morgen genauer anschauen.
                                      Danke für die Rückmeldung.

                                      draexlerD 1 Antwort Letzte Antwort
                                      0
                                      • S SvensonLF

                                        @draexler
                                        Gut, ich werde mir das morgen genauer anschauen.
                                        Danke für die Rückmeldung.

                                        draexlerD Offline
                                        draexlerD Offline
                                        draexler
                                        schrieb am zuletzt editiert von
                                        #59

                                        @svensonlf gerne melden bei Fragen. Kann auch gerne meine YAML bereitstellen.

                                        S 1 Antwort Letzte Antwort
                                        0
                                        • draexlerD draexler

                                          @svensonlf gerne melden bei Fragen. Kann auch gerne meine YAML bereitstellen.

                                          S Offline
                                          S Offline
                                          SvensonLF
                                          schrieb am zuletzt editiert von
                                          #60

                                          @draexler WhatsApp Image 2025-06-03 at 18.52.07.jpeg

                                          Der Text kommt schon einmal an ;)

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          822

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe