Schalter-Helfer in template verwenden als if-clause

AlphaZulu

New member
Hallo zusammen,

was mache ich hier falsch:

YAML:
      - name: "Haus EG - Technikraum - Wärmepumpe - Fußbodenheizung (Betriebsart)"
        unique_id: "haus_eg_technikraum_waermepumpe_fussbodenheizung_betriebsart"
        state: >
            {% if (states('input_boolean.haus_eg_technikraum_waermepumpe_fussbodenheizung_winterbetrieb') == on) %}
                Winterbetrieb
            {% else %}
                Sommerbetrieb
            {% endif %}

Eigentlich soll hier der Wert von haus_eg_technikraum_waermepumpe_fussbodenheizung_betriebsart auf "Sommerbetrieb" oder "Winterbetrieb" gesetzt werden - abhängig vom Helper input_boolean.haus_eg_waermepumpe_fussbodenheizung_winterbetrieb. Das passiert aber nicht, da da immer "Winterbetrieb" steht. Der Input-Helfer funktioniert aber, da die entsprechende Automation für den Heizkreisverteiler die Ventile öffnet bzw. schließt.

So ist es richtig:
1712748941560.png

Aber so sieht es aus, wenn auf Sommerbetrieb geschaltet wird:
1712748994507.png

Da sollte dann rechts eigentlich auch "Sommerbetrieb" stehen.

Lustig ist, wenn ich auf "Winterbetrieb" klicke, erhalte ich:
1712755836646.png
Offenbar steht der Wert also korrekt auf Sommerbetrieb, aber wieso wird mir der nicht in der Oberfläche angezeigt?!?

Scriptende Grüße

Axel
 
Zuletzt bearbeitet:
Setz das "on" mal in Anführungsstriche:
YAML:
{% if (states('input_boolean.haus_eg_waermepumpe_fussbodenheizung_winterbetrieb') == "on") %}
Könnte der Punkt sein, ist so zumindest ein Fehler :)
 
Steht nicht nach dem Typ immer ein Punkt? Das klappt ja auch bei anderen:

Code:
sensor.anbau_1_klimasensor_klim_sens_001_temperatur
input_number.stromzahler_zukauf_vortag_rohdaten
usw.

Die haben doch alle einen Punkt. Allerdings ist das Problem oben der einzige input_boolean, den ich in einem Template (bislang) verwende.
 
Äh - ich meinte "der springende Punkt" aka "der hier relevante Part" 😅

Nein, wie gesagt, dass das on nicht in Anführungsstrichen steht ist definitiv ein Fehler und könnte der Grund sein, weshalb es nicht funktioniert. Das erstmal korrigieren, wenns dann noch nicht läuft, weiter schauen.
 
Uuups, Tomaten auf den Augen. Ich hatte gar nicht gesehen, dass du da den Code ergänzt hattest ... 🙈

Hmm, der einzige Unterschied ist, dass jetzt jedesmal, wenn ich links auf "die Taste" drücke, rechts "vor x Sekunden" auf 0 springt und hochzählt. Aber es bleibt dabei, dass da immer Winterbrieb steht, obwohl im Verlauf der korrekte Wert steht.
 
Hmm, der einzige Unterschied ist, dass jetzt jedesmal, wenn ich links auf "die Taste" drücke, rechts "vor x Sekunden" auf 0 springt und hochzählt.
Das klingt jetzt eigentlich so als würde er wieder zurückspringen - oder als gäbe es da evtl. Verwirrungen im Code, ggf. aufgrund von Einrückungen.

Wenn Du das hier:
YAML:
{{ states('input_boolean.haus_eg_technikraum_waermepumpe_fussbodenheizung_winterbetrieb') }}

{% if (states('input_boolean.haus_eg_technikraum_waermepumpe_fussbodenheizung_winterbetrieb') == "on") %}
    Winterbetrieb
{% else %}
    Sommerbetrieb
{% endif %}
unter Entwicklerwerkzeuge => Template einfügst, steht dort rechts jeweils das erwartete?
 
Ich habe da einfach mal direkt meinen Code reinkopiert und da kommt es jeweils richtig raus.

Nur hier 1712760845361.png bleibt immer "Winterbetrieb" stehen. Die Zeit darunter startet aber bei jedem "Tastendruck" neu.
 
So, da bin ich wieder :) .

Da ändert sich nichts:
1712915278444.png
Da steht nach wie vor Winterbetrieb, obwohl "Fußbodenheizung aus" "Sommerbetrieb" ist.

1712915502489.png
Da steht es dann richtig ...

Das ist die Anzeige in der Oberfläche:
YAML:
type: horizontal-stack
cards:
  - show_name: true
    show_icon: true
    type: button
    tap_action:
      action: toggle
    entity: >-
      input_boolean.haus_eg_technikraum_waermepumpe_fussbodenheizung_winterbetrieb
    name: Fußbodenheizung
    show_state: true
    icon_height: 35px
    icon: mdi:sun-snowflake-variant
  - type: tile
    entity: sensor.haus_eg_technikraum_warmepumpe_fussbodenheizung_betriebsart
    name: Winterbetrieb
    show_entity_picture: false
    vertical: true
    hide_state: false
    state_content: last-changed
    icon: mdi:heat-pump-outline

Und das ist der Code des Templates:
YAML:
      - name: "Haus EG - Technikraum - Wärmepumpe - Fußbodenheizung (Betriebsart)"
        unique_id: "haus_eg_technikraum_waermepumpe_fussbodenheizung_betriebsart"
        state: >
            {% if (states('input_boolean.haus_eg_technikraum_waermepumpe_fussbodenheizung_winterbetrieb') == "on") %}
                Winterbetrieb
            {% else %}
                Sommerbetrieb
            {% endif %}

Ansonsten gibt es noch einen Helfer:
1712915836489.png
 
Doch nicht uuups!

Die unique_id aus dem Template wird anscheinend ignoriert (trotz Neustart) und intern als "warmepumpe" genommen (ohne "e"). Ändere ich das so, dass überall "warmepumpe" steht, dann ist es so wie vorher. Home Assistant schaltet richtig auf "Sommerbetrieb" oder "Winterbetrieb" um, zeigt es aber nicht im UI, wohl aber im Verlauf (siehe oben). Erzwinge ich im UI die Variante mit "ae" findet er die Entität nicht.

Das war also doch nicht das Problem.
 
Jetzt weiß ich, was mir das sagen wollte! Wie kann man nur so viele Tomaten auf den Augen haben?!?!?

Es ist ja klar, dass da Winterebetrieb immer steht, wenn ich das als Name da rein schreibe ... 😵‍💫

Besten Dank, denn jetzt klappt es:

1713004832858.png
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
4.666
Beiträge
47.655
Mitglieder
4.312
Neuestes Mitglied
Harway2007
Zurück
Oben