Habe weiter getestet.
Im ESPHome Builder ein neues Projekt (New Device) angelegt und ohne weitere Konfig installiert.
Da steht dann übrigens auch schon
esp32:
board: esp32dev
framework:
type: esp-idf
drin.
Funktioniert. Log über WLAN wird angezeigt.
Dann nur den Code für den DHT-Sensor ergänzt.
Funktioniert. Log über WLAN wird angezeit.
Wenn ich aber den Code fürs Display ergänze, flasht er zwar ohne Fehlermeldung, aber dann Verbindet er nicht per WLAN.
Es scheint also mit meinem Code fürs Display zu liegen.
Kann mir bitte Jemand sagen, woran es liegen könnte? Ich hab keine Ahnung.
Hier die komplette yaml
esphome:
name: display-buro
friendly_name: Display Büro
esp32:
board: esp32dev
framework:
type: esp-idf
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "9IRfLFXSkyF6cuzUVV6yGYV8txGWkJ6dQHudoBMBnG4="
ota:
platform: esphome
password: "83a6a7057dba71c972482addbcea40d7"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Display-Buro Fallback Hotspot"
password: "j1N5zDMMrIra"
captive_portal:
sensor:
- platform: dht
pin: 32
temperature:
name: "temp_buero"
id: temp_buero
filters:
- offset: -1.5
humidity:
name: "hum_buero"
id: hum_buero
filters:
- offset: 10
update_interval: 60s
- platform: homeassistant
id: temp_aussen
entity_id: sensor.ws2900_outdoor_temperature
- platform: homeassistant
id: hum_aussen
entity_id: sensor.ws2900_humidity
- platform: homeassistant
id: pres_aussen
entity_id: sensor.ws2900_relative_pressure
- platform: homeassistant
id: ha_power
entity_id: sensor.power_shm2
- platform: homeassistant
id: pv_power
entity_id: sensor.power_pv_summe
- platform: homeassistant
id: pv_an_Pdc_ost
entity_id: sensor.stp5000se_dc_leistung_b_template
- platform: homeassistant
id: pv_an_Pdc_west
entity_id: sensor.stp5000se_dc_leistung_a_template
- platform: homeassistant
id: pv_an_tagesertrag
entity_id: sensor.stp5000se_pv_tagesertrag
- platform: homeassistant
id: akku_power
entity_id: sensor.power_batterie
- platform: homeassistant
id: akku_ladezustand
entity_id: sensor.stp5000se_aktueller_batterieladezustand
- platform: homeassistant
id: heiz_vl
entity_id: sensor.temperature_4
- platform: homeassistant
id: heiz_rl
entity_id: sensor.temperature_5
- platform: homeassistant
id: ww_vl
entity_id: sensor.temperature_2
- platform: homeassistant
id: ww_rl
entity_id: sensor.temperature_3
- platform: homeassistant
id: solar_vl
entity_id: sensor.solar_vorlauf_2
- platform: homeassistant
id: solar_rl
entity_id: sensor.solar_rucklauf
- platform: homeassistant
id: pv_alt_Pdc_ost
entity_id: sensor.stp5000tl20_dc_leistung_b_template
- platform: homeassistant
id: pv_alt_Pdc_west
entity_id: sensor.stp5000tl20_dc_leistung_a_template
- platform: homeassistant
id: pv_alt_tagesertrag
entity_id: sensor.stp5000tl20_pv_tagesertrag
- platform: homeassistant
id: p_heiz_el
entity_id: sensor.aktuelle_leistung_warmepumpe
- platform: homeassistant
id: e_heiz_el_day
entity_id: sensor.heizstromzahler_taglich
- platform: homeassistant
id: e_netz_bez_day
entity_id: sensor.strombezug_taglich
- platform: homeassistant
id: e_netz_lief_day
entity_id: sensor.stromlieferung_taglich
- platform: homeassistant
id: e_wb_day
entity_id: sensor.wb_taglich
- platform: homeassistant
id: e_pv_day
entity_id: sensor.energy_pv_day
- platform: homeassistant
id: co2_buro
entity_id: sensor.co2_buro_mh_z19_co2_value
- platform: homeassistant
id: pv_gar_Pdc
entity_id: sensor.sb36_1av41_dc_leistung_a_template
- platform: homeassistant
id: pv_gar_tagesertrag
entity_id: sensor.sb36_1av41_pv_tagesertrag
- platform: homeassistant
id: pv_fas_Pdc_oben
entity_id: sensor.wechselrichter_port_1_dc_leistung
- platform: homeassistant
id: pv_fas_Pdc_unten
entity_id: sensor.wechselrichter_port_2_dc_leistung
- platform: homeassistant
id: pv_fas_tagesertrag
entity_id: sensor.strom_fassade_heute_wh
time:
- platform: homeassistant
id: homeassistant_time
font:
- file: 'Roboto-Regular.ttf'
id: font1
size: 55
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','å', 'Ä', 'ä', 'Ö', 'ö', 'Ü', 'ü', '/', 'ß']
- file: 'Roboto-Regular.ttf'
id: font2
size: 35
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','å', 'Ä', 'ä', 'Ö', 'ö', 'Ü', 'ü', '/', 'ß']
- file: 'Roboto-Regular.ttf'
id: font3
size: 25
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','å', 'Ä', 'ä', 'Ö', 'ö', 'Ü', 'ü', '/', 'ß']
color:
- id: my_red
red: 100%
green: 0%
blue: 0%
- id: my_green
red: 0%
green: 100%
blue: 0%
- id: my_blue
red: 0%
green: 0%
blue: 100%
- id: my_turkis
red: 5%
green: 50%
blue: 80%
- id: my_yellow
red: 100%
green: 100%
blue: 0%
graph:
# Show bare-minimum auto-ranged graph
- id: press_graph
sensor: pres_aussen
duration: 24h
width: 320
height: 80
- id: temp_graph
sensor: temp_aussen
color: my_red
duration: 24h
width: 320
height: 80
- id: hum_graph
sensor: hum_aussen
color: my_blue
duration: 24h
width: 320
height: 80
interval:
- interval: 10000s
then:
- display.page.show: page1
- component.update: my_display
display:
- platform: ili9xxx
model: TFT_2.4
id: my_display
cs_pin: 5
dc_pin: 4
#led_pin: 15
reset_pin: 22
color_palette: 8BIT
rotation: 270
invert_colors: false
pages:
- id: page1
lambda: |-
it.printf(2, 0, id(font3), "Innen:");
it.strftime(250, 0, id(font3), "%H:%M", id(homeassistant_time).now());
it.printf(2, 25, id(font1), "%5.1f°C", id(temp_buero).state);
it.printf(185, 25, id(font1), "%4.0f%%", id(hum_buero).state);
it.printf(2, 80, id(font3), "Außen:");
it.printf(2, 105, id(font1), "%5.1f°C", id(temp_aussen).state);
it.printf(185, 105, id(font1), "%4.0f%%", id(hum_aussen).state);
it.printf(2, 160, id(font3), "CO2:");
if (id(co2_buro).state > 1500) {
it.printf(300, 180, id(font1), my_red, TextAlign::TOP_RIGHT, "%.0fppm", (id(co2_buro).state));
}
if ((id(co2_buro).state < 1500) && (id(co2_buro).state > 800)) {
it.printf(300, 180, id(font1), my_yellow, TextAlign::TOP_RIGHT, "%.0fppm", (id(co2_buro).state));
}
if (id(co2_buro).state < 800) {
it.printf(300, 180, id(font1), my_green, TextAlign::TOP_RIGHT, "%.0fppm", (id(co2_buro).state));
}
- id: page2
lambda: |-
it.printf(20, 0, id(font3), "Strom");
it.strftime(250, 0, id(font3), "%H:%M", id(homeassistant_time).now());
it.printf(2, 30, id(font3), "Panschluss:");
it.printf(300, 30, id(font3), TextAlign::TOP_RIGHT, "%.0f W", id(ha_power).state);
it.printf(2, 60, id(font3), "Ppv:");
it.printf(300, 60, id(font3), TextAlign::TOP_RIGHT, "%.0f W", id(pv_power).state);
it.printf(2, 90, id(font3), "Pakku:");
it.printf(300, 90, id(font3), TextAlign::TOP_RIGHT, "%.0f W", id(akku_power).state);
it.printf(2, 120, id(font3), "SOC Akku:");
it.printf(300, 120, id(font3), TextAlign::TOP_RIGHT, "%.0f %%", id(akku_ladezustand).state);
it.printf(2, 150, id(font3), "Eel in:");
it.printf(300, 150, id(font3), TextAlign::TOP_RIGHT, "%.1f kWh", id(e_netz_bez_day).state);
it.printf(2, 180, id(font3), "Eel out:");
it.printf(300, 180, id(font3), TextAlign::TOP_RIGHT, "%.1f kWh", id(e_netz_lief_day).state);
it.printf(2, 210, id(font3), "Epv:");
it.printf(300, 210, id(font3), TextAlign::TOP_RIGHT, "%.1f kWh", id(e_pv_day).state);
- id: page3
lambda: |-
it.printf(20, 0, id(font3), "PV Altbau");
it.strftime(250, 0, id(font3), "%H:%M", id(homeassistant_time).now());
it.printf(2, 30, id(font3), "Pdc String Ost:");
it.printf(300, 30, id(font3), TextAlign::TOP_RIGHT, "%.0f W", id(pv_alt_Pdc_ost).state);
it.printf(2, 60, id(font3), "Pdc String West:");
it.printf(300, 60, id(font3), TextAlign::TOP_RIGHT, "%.0f W", id(pv_alt_Pdc_west).state);
it.printf(2, 90, id(font3), "Tagesertrag:");
it.printf(315, 90, id(font3), TextAlign::TOP_RIGHT, "%.0f Wh", id(pv_alt_tagesertrag).state);
it.printf(20, 120, id(font3), "PV Anbau");
it.printf(2, 150, id(font3), "Pdc String Ost:");
it.printf(300, 150, id(font3), TextAlign::TOP_RIGHT, "%.0f W", id(pv_an_Pdc_ost).state);
it.printf(2, 180, id(font3), "Pdc String West:");
it.printf(300, 180, id(font3), TextAlign::TOP_RIGHT, "%.0f W", id(pv_an_Pdc_west).state);
it.printf(2, 210, id(font3), "Tagesertrag:");
it.printf(315, 210, id(font3), TextAlign::TOP_RIGHT, "%.0f Wh", id(pv_an_tagesertrag).state);
- id: page4
lambda: |-
it.printf(20, 0, id(font3), "PV Garage");
it.strftime(250, 0, id(font3), "%H:%M", id(homeassistant_time).now());
it.printf(2, 30, id(font3), "Pdc:");
it.printf(300, 30, id(font3), TextAlign::TOP_RIGHT, "%.0f W", id(pv_gar_Pdc).state);
it.printf(2, 60, id(font3), "Tagesertrag:");
it.printf(315, 60, id(font3), TextAlign::TOP_RIGHT, "%.0f Wh", id(pv_gar_tagesertrag).state);
it.printf(20, 120, id(font3), "PV Fassade");
it.printf(2, 150, id(font3), "Pdc Oben:");
it.printf(300, 150, id(font3), TextAlign::TOP_RIGHT, "%.0f W", id(pv_fas_Pdc_oben).state);
it.printf(2, 180, id(font3), "Pdc Unten:");
it.printf(300, 180, id(font3), TextAlign::TOP_RIGHT, "%.0f W", id(pv_fas_Pdc_unten).state);
it.printf(2, 210, id(font3), "Tagesertrag:");
it.printf(315, 210, id(font3), TextAlign::TOP_RIGHT, "%.0f Wh", id(pv_fas_tagesertrag).state);
- id: page5
lambda: |-
it.printf(20, 0, id(font3), "Heizung");
it.strftime(250, 0, id(font3), "%H:%M", id(homeassistant_time).now());
it.printf(2, 30, id(font3), "Heizkreis Vorlauf:");
it.printf(220, 30, id(font3), "%2.1f °C", id(heiz_vl).state);
it.printf(2, 60, id(font3), "Heizkreis Rücklauf:");
it.printf(220, 60, id(font3), "%2.1f °C", id(heiz_rl).state);
it.printf(2, 90, id(font3), "Solar Vorlauf:");
it.printf(220, 90, id(font3), "%2.1f °C", id(solar_vl).state);
it.printf(2, 120, id(font3), "Solar Rücklauf:");
it.printf(220, 120, id(font3), "%2.1f °C", id(solar_rl).state);
it.printf(2, 180, id(font3), "Leistung el:");
it.printf(301, 180, id(font3), TextAlign::TOP_RIGHT, "%2.2f kW", id(p_heiz_el).state);
it.printf(2, 210, id(font3), "Energie el Tag:");
it.printf(315, 210, id(font3), TextAlign::TOP_RIGHT, "%2.2f kWh", id(e_heiz_el_day).state);
spi:
clk_pin: 18
mosi_pin: 23
miso_pin: 19
touchscreen:
platform: xpt2046
id: my_touchscreen
cs_pin: 14
interrupt_pin: 27
calibration:
x_min: 280
x_max: 3860
y_min: 340
y_max: 3860
on_touch:
then:
- display.page.show_next: my_display
- component.update: my_display
output:
- platform: ledc
pin: 15
id: gpio_15_backlight_pwm
inverted: True
light:
- platform: monochromatic
output: gpio_15_backlight_pwm
name: "Touchdisplay Licht"
id: back_light
restore_mode: ALWAYS_ON