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