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
    2.0k

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

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.
  • 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.)

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

    @draexler
    Danke für den Tipp. Ich werde berichten :blush:

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

      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 A 2 Antworten Letzte Antwort
      6
      • 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
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          516

                                          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