Frage zum Template Switch in ESPHome

Hallo zusammen,

ich schlage mich aktuell mit einem Template Switch auf eine ESP8266 rum der irgendwie nicht so funktioniert wie ich mir das vorstellen.

Ich habe jetzt einfach mal um das Problem zu zeigen eine Template-Switch eingerichtet der beim Einschalten in ein Template Number eine 2 schreiben soll und beim Ausschalten in das Template Number die 1 schreiben soll.

Beim Einschalten wird wie es gewollt ist die 2 geschrieben.

Schaltet man den Switch aus passiert nichts - im Template Number bleibt die 2 stehen.

switch:
  - platform: template
    name: "Lock Switch"
    id: lock_switch
    turn_on_action:
    - number.set:
        id: my_number
        value: 2
    turn_off_action:
    - number.set:
        id: my_number
        value: 1
  
number:
  - platform: template
    name: "Template number"
    id: my_number
    optimistic: true
    min_value: 0
    max_value: 100
    step: 1

Jetzt mal die Frage an Euch - was mache ich da falsch?

Danke und Gruß

ich hoffe du hast mal

web_server:
  port: 80

in deinem yaml, dann hättest du bemerkt das erst immer ,egal ob du den switch an oder ausschaltst die Action ON abarbeitet. Deshalb auch immer der Wert 2.

Abstellen kannst du das indem du z.B. ein lambda einfügst.
also mal nach der Zeile " id: lock_switch

lambda: |-
  if (id(lock_switch).state) {
    return true;
  } else {
    return false;
  }

damit hat der switch auch egal wie er geschaltet ist ein true oder false status.
dann das

optimistic: true

nicht vergessen weil er sonst meckert.
Und die my_number setzt du dann nicht mit
turn_on_action:
sondern mit

on_turn_on:
  then:
    - number.set
      [ ... ]

und analog on_turn_off:

das wäre 1 Weg.

Und das kann man prima im webfrontend unter der IP des ESPs nachvollziehen.

Hallo justone,

in der Zwischenzeit hatte ich die Lösung auch gefunden aber logisch finde ich das nicht.

Zumal der Teil mit Beginn “turn_off_action” ja absolut keinen Sinn macht da er ja nie abgearbeitet wird so wie ich das verwendet habe.

Aber danke für Deine Hilfe.