diff --git a/esphome/epaperframe.yaml b/esphome/epaperframe.yaml index d7f5978..4d402e7 100644 --- a/esphome/epaperframe.yaml +++ b/esphome/epaperframe.yaml @@ -78,7 +78,7 @@ binary_sensor: then: - logger.log: level: INFO - format: 'Button doubleclick, rendering next page!' + format: "Button doubleclick, rendering next page!" - display.page.show_next: epaper - component.update: epaper - timing: @@ -87,7 +87,7 @@ binary_sensor: then: - logger.log: level: INFO - format: 'Button click, refreshing screen!' + format: "Button click, refreshing screen!" - component.update: epaper # HA pushbutton configuration @@ -99,7 +99,7 @@ button: on_press: - logger.log: level: INFO - format: 'HA Button click, refreshing screen!' + format: "HA Button click, refreshing screen!" - component.update: epaper - platform: template name: Next screen @@ -108,7 +108,7 @@ button: on_press: - logger.log: level: INFO - format: 'HA Button click, rendering next page!' + format: "HA Button click, rendering next page!" - display.page.show_next: epaper - component.update: epaper @@ -119,10 +119,6 @@ sensor: id: wifisignal update_interval: 60s - - platform: homeassistant - entity_id: sensor.livingroom_wohnzimmer_feinstaub_pm_2_5_m - id: pm25_livingroom - - platform: homeassistant entity_id: sensor.wohnzimmer_temperatur id: temp_livingroom @@ -136,8 +132,8 @@ sensor: id: co2_livingroom - platform: homeassistant - entity_id: sensor.alpstuga_air_quality_monitor_pm25_2 - id: pm25_sleepingroom + entity_id: sensor.livingroom_wohnzimmer_feinstaub_pm_2_5_m + id: pm25_livingroom - platform: homeassistant entity_id: sensor.alpstuga_air_quality_monitor_temperatur_2 @@ -151,6 +147,26 @@ sensor: entity_id: sensor.alpstuga_air_quality_monitor_kohlendioxid_2 id: co2_sleepingroom + - platform: homeassistant + entity_id: sensor.alpstuga_air_quality_monitor_pm25_2 + id: pm25_sleepingroom + + - platform: homeassistant + entity_id: sensor.alpstuga_air_quality_monitor_temperatur + id: temp_childrensroom + + - platform: homeassistant + entity_id: sensor.alpstuga_air_quality_monitor_luftfeuchtigkeit + id: humid_childrensroom + + - platform: homeassistant + entity_id: sensor.alpstuga_air_quality_monitor_kohlendioxid + id: co2_childrensroom + + - platform: homeassistant + entity_id: sensor.alpstuga_air_quality_monitor_pm25 + id: pm25_childrensroom + - platform: homeassistant entity_id: sensor.aussentemperatur id: temp_outdoor @@ -186,11 +202,11 @@ sensor: - platform: homeassistant entity_id: sensor.schlafzimmer_bett_power id: bedlight_sleepingroom - + - platform: homeassistant entity_id: sensor.schlafzimmer_heimkino_power id: media_sleepingroom - + - platform: homeassistant entity_id: sensor.radioaktive_strahlungsleistung id: radiation @@ -202,7 +218,7 @@ text_sensor: entity_id: sensor.sun_rising_template id: sun_rising internal: true - + - platform: homeassistant name: "Sun Setting ESP" #entity_id: sensor.sun_next_setting @@ -245,144 +261,476 @@ time: - platform: homeassistant id: homeassistant_time on_time: - # Every 10 seconds - - seconds: /10 - then: - - logger.log: - level: INFO - format: 'Power button press' - - output.turn_on: power_key - - delay: 0.5s - - output.turn_off: power_key - # Every 10 minutes - - seconds: 0 - minutes: /10 - then: - - logger.log: - level: INFO - format: 'Timer based screen refresh' - - component.update: epaper + # Every 10 seconds + - seconds: /10 + then: + - logger.log: + level: INFO + format: "Power button press" + - output.turn_on: power_key + - delay: 0.5s + - output.turn_off: power_key + # Every 10 minutes + - seconds: 0 + minutes: /10 + then: + - logger.log: + level: INFO + format: "Timer based screen refresh" + - component.update: epaper # Font definitions font: - - file: 'fonts/Roboto-Medium.ttf' + - file: "fonts/Roboto-Medium.ttf" id: roboto_med_30 size: 30 - - file: 'fonts/Roboto-Regular.ttf' + - file: "fonts/Roboto-Regular.ttf" id: footer_font size: 15 glyphs: - ['&', '@', '!', ',', '.', '"', '%', '(', ')', '+', '-', '_', ':', '°', - '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', 'Ä', 'ä', 'ö', '/', 'º', 'µ', '³', 'ß', - 'Ü', 'ü', 'Ö', '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", + "Ä", + "ä", + "ö", + "/", + "º", + "µ", + "³", + "ß", + "Ü", + "ü", + "Ö", + "0", + ] - - file: 'fonts/Roboto-Regular.ttf' + - file: "fonts/Roboto-Regular.ttf" id: sensor_unit size: 20 glyphs: - ['&', '@', '!', ',', '.', '"', '%', '(', ')', '+', '-', '_', ':', '°', - '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', 'Ä', 'ä', 'ö', '/', 'º', 'µ', '³', 'ß', - 'Ü', 'ü', 'Ö', '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", + "Ä", + "ä", + "ö", + "/", + "º", + "µ", + "³", + "ß", + "Ü", + "ü", + "Ö", + "0", + ] - - file: 'fonts/Roboto-Medium.ttf' + - file: "fonts/Roboto-Medium.ttf" id: sub_sensor_font size: 30 glyphs: - ['&', '@', '!', ',', '.', '"', '%', '(', ')', '+', '-', '_', ':', '°', - '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', 'Ä', 'ä', 'ö', '/', 'º', 'µ', '³', 'ß', - 'Ü', 'ü', 'Ö', '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", + "Ä", + "ä", + "ö", + "/", + "º", + "µ", + "³", + "ß", + "Ü", + "ü", + "Ö", + "0", + ] - - file: 'fonts/Roboto-Bold.ttf' + - file: "fonts/Roboto-Bold.ttf" id: big_sensor_font size: 50 glyphs: - ['&', '@', '!', ',', '.', '"', '%', '(', ')', '+', '-', '_', ':', '°', - '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', 'Ä', 'ä', 'ö', '/', 'º', 'µ', '³', 'ß', - 'Ü', 'ü', 'Ö', '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", + "Ä", + "ä", + "ö", + "/", + "º", + "µ", + "³", + "ß", + "Ü", + "ü", + "Ö", + "0", + ] - - file: 'fonts/materialdesignicons-webfont.ttf' - id: mdi_small + - file: "fonts/materialdesignicons-webfont.ttf" + id: mdi_small size: 31 glyphs: [ - '󰔏', # mdi-thermometer - '󰖎', # mdi-water-percent - '󰮬', # mdi-molecule (pm2.5) - '󰟤', # mdi-co2 - '󰊚', # mdi-gauge (air pressure) - '󰖙', # mdi-weather-sunny - '󰖛', # mdi-weather-sunset-down - '󰖜', # mdi-weather-sunset-up - '󱐋', # mdi-lightning-bolt - '󰴾', # mdi-transmission-tower - '󰚥', # mdi-power-plug - '󱈹', # mdi-desk - '󰔂', # mdi-television - '󰐼' # mdi-radiation + "󰔏", # mdi-thermometer + "󰖎", # mdi-water-percent + "󰮬", # mdi-molecule (pm2.5) + "󰟤", # mdi-co2 + "󰊚", # mdi-gauge (air pressure) + "󰖙", # mdi-weather-sunny + "󰖛", # mdi-weather-sunset-down + "󰖜", # mdi-weather-sunset-up + "󱐋", # mdi-lightning-bolt + "󰴾", # mdi-transmission-tower + "󰚥", # mdi-power-plug + "󱈹", # mdi-desk + "󰔂", # mdi-television + "󰐼", # mdi-radiation ] - - file: 'fonts/materialdesignicons-webfont.ttf' - id: mdi_weather + - file: "fonts/materialdesignicons-webfont.ttf" + id: mdi_weather size: 80 glyphs: [ - '󰽡', # mdi-moon-first-quarter - '󰽢', # mdi-moon-full - '󰽣', # mdi-moon-last-quarter - '󰽤', # mdi-moon-new - '󰽥', # mdi-moon-waning-crescent - '󰽦', # mdi-moon-waning-gibbous - '󰽧', # mdi-moon-waxing-crescent - '󰽨', # mdi-moon-waxing-gibbous - '󰖔', # mdi-weather-night - '󰖐', # mdi-weather-cloudy - '󰖑', # mdi-weather-fog - '󰖒', # mdi-weather-hail - '󰖓', # mdi-weather-lightning - '󰙾', # mdi-weather-lightning-rainy - '󰖕', # mdi-weather-partly-cloudy - '󰖖', # mdi-weather-pouring - '󰖗', # mdi-weather-rainy - '󰖘', # mdi-weather-snowy - '󰙿', # mdi-weather-snowy-rainy - '󰖙', # mdi-weather-sunny - '󰖝', # mdi-weather-windy - '󰖞', # mdi-weather-windy-variant - '󰳥' # mdi-weather-exceptional + "󰽡", # mdi-moon-first-quarter + "󰽢", # mdi-moon-full + "󰽣", # mdi-moon-last-quarter + "󰽤", # mdi-moon-new + "󰽥", # mdi-moon-waning-crescent + "󰽦", # mdi-moon-waning-gibbous + "󰽧", # mdi-moon-waxing-crescent + "󰽨", # mdi-moon-waxing-gibbous + "󰖔", # mdi-weather-night + "󰖐", # mdi-weather-cloudy + "󰖑", # mdi-weather-fog + "󰖒", # mdi-weather-hail + "󰖓", # mdi-weather-lightning + "󰙾", # mdi-weather-lightning-rainy + "󰖕", # mdi-weather-partly-cloudy + "󰖖", # mdi-weather-pouring + "󰖗", # mdi-weather-rainy + "󰖘", # mdi-weather-snowy + "󰙿", # mdi-weather-snowy-rainy + "󰖙", # mdi-weather-sunny + "󰖝", # mdi-weather-windy + "󰖞", # mdi-weather-windy-variant + "󰳥", # mdi-weather-exceptional ] - - file: 'fonts/materialdesignicons-webfont.ttf' - id: mdi_wifi + - file: "fonts/materialdesignicons-webfont.ttf" + id: mdi_wifi size: 20 glyphs: [ - # WiFi - '󰤫', # mdi-wifi-strength-alert-outline - '󰤟', # mdi-wifi-strength-1 - '󰤢', # mdi-wifi-strength-2 - '󰤥', # mdi-wifi-strength-3 - '󰤨' # mdi-wifi-strength-4 + # WiFi + "󰤫", # mdi-wifi-strength-alert-outline + "󰤟", # mdi-wifi-strength-1 + "󰤢", # mdi-wifi-strength-2 + "󰤥", # mdi-wifi-strength-3 + "󰤨", # mdi-wifi-strength-4 ] - - file: 'fonts/materialdesignicons-webfont.ttf' - id: mdi_med + - file: "fonts/materialdesignicons-webfont.ttf" + id: mdi_med size: 60 glyphs: [ - '󰀦' # mdi-alert + "󰀦", # mdi-alert ] image: @@ -409,20 +757,29 @@ display: pages: - id: environment lambda: |- - + /* Outdoor */ float outdoor_temp = id(temp_outdoor).state; int outdoor_humid = int(id(humid_outdoor).state); float air_pressure = id(airpressure).state; float outdoor_radiation = id(radiation).state; + /* Living room */ float livingroom_temp = id(temp_livingroom).state; int livingroom_humid = int(id(humid_livingroom).state); - int livingroom_pm25 = int(id(pm25_livingroom).state); float livingroom_co2 = id(co2_livingroom).state; + int livingroom_pm25 = int(id(pm25_livingroom).state); + /* Serverroom */ + float serverroom_temp = id(temp_serverroom).state; + /* Sleeping room */ float sleepingroom_temp = id(temp_sleepingroom).state; int sleepingroom_humid = int(id(humid_sleepingroom).state); - int sleepingroom_pm25 = int(id(pm25_sleepingroom).state); float sleepingroom_co2 = id(co2_sleepingroom).state; - float serverroom_temp = id(temp_serverroom).state; + int sleepingroom_pm25 = int(id(pm25_sleepingroom).state); + /* Children's room */ + float childrensroom_temp = id(temp_sleepingroom).state; + int childrensroom_humid = int(id(humid_sleepingroom).state); + float childrensroom_co2 = id(co2_sleepingroom).state; + int childrensroom_pm25 = int(id(pm25_sleepingroom).state); + int offsetX = 0; int offsetY = 0; @@ -474,7 +831,6 @@ display: it.print(225, 130, id(sensor_unit), TextAlign::BASELINE_LEFT, "hPa"); } - /* Livingroom */ offsetY = 127; it.print(10, 10 + offsetY, id(sensor_unit), "Wohnzimmer"); @@ -760,7 +1116,7 @@ display: offsetY = 127; it.print(10, 10 + offsetY, id(sensor_unit), "Wohnzimmer"); it.filled_rectangle(136, 21 + offsetY, 247, 3); - + it.print(375, 75 + offsetY, id(mdi_small), TextAlign::BASELINE_CENTER, "󰚥"); // power-plug it.print(375, 115 + offsetY, id(mdi_small), TextAlign::BASELINE_CENTER, "󰚥"); // power-plug @@ -831,7 +1187,7 @@ display: /* FOOTER */ it.strftime(614, 380, id(footer_font), TextAlign::BASELINE_RIGHT , "Aktualisiert um %d.%m.%Y %H:%M", id(homeassistant_time).now()); - /* WiFi Signal Strenght */ + /* WiFi Signal strength */ if(id(wifisignal).has_state()) { int x = 630; int y = 384;