Ich möchte abhängig von einem Slider {0,1,2,3} die Pins eines ESP auf high/low setzen. Mit diesen Pins steuere ich eine Pumpe an (Speck Badu Eco Soft).
Die Speck pumpe liest hochohmig den Pegel von 4 Drähten ein.
Die Logik ist einfach:
Stufe 0:
draht 0 = low, alle anderen high
Stufe 1:
draht 1 = low, alle anderen high
und so weiter.
Den slider hab ich schnell erstellt:
in #configuration.yaml
input_number:
slider1:
name: Stufe Teichfilterpumpe
initial: 2
min: 0
max: 3
step: 1
der slider und die pins sehen dann im dashboard wie folgt aus:
mein Problem ist nun, dass ich diese Logik mit der Ansteuerung der Pins des ESP nicht in yaml kann. Meine elenden Gehversuche sehen wie folgt aus:
in #configuration.yaml
- sensor:
- name: "Teichfilterpumpe"
state: >
{% if input_number.slider1 = 0 %}
{switch.teich_filter_pumpe_Stufe0 = 0;
switch.teich_filter_pumpe_Stufe1 = 1;
switch.teich_filter_pumpe_Stufe2 = 1;
switch.teich_filter_pumpe_Stufe3 = 1;}
{% if input_number.slider1 = 1 %}
{switch.teich_filter_pumpe_Stufe0 = 1;
switch.teich_filter_pumpe_Stufe1 = 0;
switch.teich_filter_pumpe_Stufe2 = 1;
switch.teich_filter_pumpe_Stufe3 = 1;}
{% if input_number.slider1 = 2 %}
{switch.teich_filter_pumpe_Stufe0 = 1;
switch.teich_filter_pumpe_Stufe1 = 1;
switch.teich_filter_pumpe_Stufe2 = 0;
switch.teich_filter_pumpe_Stufe3 = 1;}
{% if input_number.slider1 = 3 %}
{switch.teich_filter_pumpe_Stufe0 = 1;
switch.teich_filter_pumpe_Stufe1 = 1;
switch.teich_filter_pumpe_Stufe2 = 1;
switch.teich_filter_pumpe_Stufe3 = 0;}
{%- endif %}
Die Zuordnung der Pins zu den Namen in ESPhome:
in ESPhome für lolin, ESP8266
switch:
- platform: gpio
name: "Filter-Pumpe_Stufe1"
pin: GPIO14 #D5
- platform: gpio
name: "Filter-Pumpe_Stufe2"
pin: GPIO12 #D6
- platform: gpio
name: "Filter-Pumpe_Stufe3"
pin: GPIO13 #D7
- platform: gpio
name: "Filter-Pumpe_Stufe0"
pin: GPIO15 #D8
Wenn ich Werte aus homeassistnat in ESP home verwenden möchte, dann bekomme ich die Fehlermeldung: platform: homeassistant verwenden.
Danach sehen meine erbärmlichen Versuche dann so aus:
- platform: homeassistant
name: "Template Switch"
lambda: |-
if (id(input_number.slider1).state) {
return true;
} else {
return false;
}
turn_on_action:
# - switch.turn_on: switch2
turn_off_action:
# - switch.turn_on: switch1
Die Fehlermeldung ist daraufhin diese:
INFO ESPHome 2024.6.4
INFO Reading configuration /config/esphome/teich.yaml...
Failed config
switch.homeassistant: [source /config/esphome/teich.yaml:87]
Platform not found: 'switch.homeassistant'.
platform: homeassistant
name: Template Switch
lambda: if (id(input_number.slider1).state) {
return true;
} else {
return false;
}
turn_on_action:
turn_off_action: