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

  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.3k

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

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

ePaper Statusdisplay Hausflur

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
62 Beiträge 18 Kommentatoren 17.9k 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.
  • D DoHo

    So, auch ich bin mit meinem Projekt fertig 😊
    Wie es so ist, hat sich die Aufgabenstellung im Projektverlauf geändert, sodass ich einiges anders gemacht habe als ursprünglich geplant. Andere Daten, anderer Standort, etc..
    Ich aktualisiere das Display alle 15 Minuten und zusätzlich kann man es über einen kleinen Taster oben rechts im Rahmen aktualisieren.
    Auf die Batterie habe ich auch verzichtet, weil am neuen Standort eine Steckdose vorhanden ist.
    Vielleicht für den ein oder anderen noch interessant; Aus Interesse habe ich die Leistungsaufnahme gemessen => im Schnitt 0.8W (über USB Netzteil versorgt).

    Alles in allem ein sehr gelungenes Projekt und eine super Anwendung. Danke nochmal an @draexler , für die Unterstützung!

    IMG_7668.jpeg

    IMG_7669.jpeg

    IMG_7670.jpeg

    draexlerD Nicht stören
    draexlerD Nicht stören
    draexler
    schrieb am zuletzt editiert von
    #39

    @doho gefällt mir sehr gut 👍 Gute idee mit dem Knopf. Vielleicht setze ich das auch noch um. Muss dann schauen wie ich das mit WakeUp mit Deep Sleep mache.

    1 Antwort Letzte Antwort
    0
    • D DoHo

      So, auch ich bin mit meinem Projekt fertig 😊
      Wie es so ist, hat sich die Aufgabenstellung im Projektverlauf geändert, sodass ich einiges anders gemacht habe als ursprünglich geplant. Andere Daten, anderer Standort, etc..
      Ich aktualisiere das Display alle 15 Minuten und zusätzlich kann man es über einen kleinen Taster oben rechts im Rahmen aktualisieren.
      Auf die Batterie habe ich auch verzichtet, weil am neuen Standort eine Steckdose vorhanden ist.
      Vielleicht für den ein oder anderen noch interessant; Aus Interesse habe ich die Leistungsaufnahme gemessen => im Schnitt 0.8W (über USB Netzteil versorgt).

      Alles in allem ein sehr gelungenes Projekt und eine super Anwendung. Danke nochmal an @draexler , für die Unterstützung!

      IMG_7668.jpeg

      IMG_7669.jpeg

      IMG_7670.jpeg

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

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

      D 1 Antwort Letzte Antwort
      0
      • 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 Nicht stören
                draexlerD Nicht stören
                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 Nicht stören
                    draexlerD Nicht stören
                    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 Nicht stören
                        draexlerD Nicht stören
                        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 Nicht stören
                                        draexlerD Nicht stören
                                        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
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          647

                                          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