Hallo,
ich verwende ein ESP32 mit einem angeschlossenen 1.3 Zoll OLED-Display
im Bad wo mir die Außen- und Innentemperatur sowie der Stand der Wasseruhr und der Tageswasserverbrauch angezeigt werden.
Dies passiert im Wechsel von 5 Sekunden (s. Code).
Jetzt haben wir 2 OralB Zahnbürsten mit Bluetooth, die auch sauber in HA integriert sind. Ich möchte die Putzzeit auf dem Display anzeigen lassen, aber nur wenn dir Oral B aktiv ist. Entität wird seitens Oral B bereitgestellt.
Wie könnte ich diese „Wenn Abfrage“ in dem Code einbauen? Ich verstehe den Syntax leider nicht:
esphome:
name: "espbad"
friendly_name: ESPBad-Display
esp32:
board: esp32dev
framework:
type: arduino
api:
encryption:
key: "xxxxxxx"
ota:
platform: esphome
password: "xxxxxxx"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
manual_ip:
# Set this to the IP of the ESP
static_ip: 192.168.177.121
gateway: 192.168.177.1
subnet: 255.255.255.0
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: !secret fallback_ssid
password: !secret fallback_password
captive_portal:
sensor:
- platform: homeassistant
name: Temperatur
id: temp
entity_id: sensor.temperatur_bad
- platform: homeassistant
name: Luftfeuchte
id: hum
entity_id: sensor.lf_bad
- platform: homeassistant
name: Putzzeit_A
id: putza
entity_id: sensor.oral_b_andreas_time
- platform: homeassistant
name: Putzzeit_N
id: putzn
entity_id: sensor.oral_b_nicole_time
- platform: homeassistant
name: Außentemperatur
id: aussentemp
entity_id: sensor.aussen
- platform: homeassistant
name: Außenluftfeuchte
id: aussenlf
entity_id: sensor.balkon
- platform: homeassistant
name: Wasseruhr
id: wasserstand
entity_id: sensor.esp32_h2o_kaltwasser
- platform: homeassistant
name: Tagesverbrauch
id: verbrauchheute
entity_id: sensor.h2o_verbrauch_heute
# Zeit holen für ESP
time:
- platform: homeassistant
id: esptime
i2c:
sda: GPIO16
scl: GPIO17
font:
- file: "fonts/Verdana.ttf"
id: verdana10
size: 10
- file: "fonts/Verdana.ttf"
id: verdana12
size: 12
display:
- platform: ssd1306_i2c
model: "SH1106 128x32"
id: oled
pages:
- id: page1
lambda: |-
it.printf(0, 0, id(verdana10), "%.1f °C", id(temp).state);
it.printf(85, 0, id(verdana10), "%.1f %%", id(hum).state);
it.line(0,14,128,14);
it.strftime(2, 15, id(verdana12), "%d.%m.%Y - %H:%M", id(esptime).now());
- id: page2
lambda: |-
it.printf(0, 0, id(verdana10), "Balkon Temp: %.1f °C", id(aussentemp).state);
it.line(0,14,128,14);
it.printf(0, 15, id(verdana10), "Balkon LF: %.1f %%", id(aussenlf).state);
- id: page3
lambda: |-
it.printf(5, 0, id(verdana10), "H2O-Heute: %.0f Liter", id(verbrauchheute).state);
it.line(0,16,128,16);
it.printf(5, 18, id(verdana10), "H2O: %.3f M3", id(wasserstand).state);
interval:
- interval: 5s
then:
- display.page.show_next: oled
- component.update: oled
Vielleicht kann mir ja jemand auf die Sprünge helfen, das wäre echt toll.
AndiFidi