Hallo zusammen,
ich bin gerade dabei, nach und nach alle Programme und Scripte von Homematic in Home Assistant zu übertragen. An einer Stelle haben aber entweder ich oder HA einen "Denkfehler":
In einem Anbau ist eine kleine Elektroheizung verbaut. Diese soll z. B. eine Temperatur von 10 °C halten. Dazu soll sie bei 3 % unter dem Sollwert eingeschaltet und bei 3 % über dem Sollwert ausgeschaltet werden, so dass die Temperatur z. B. zwischen 9,7 und 10,3 °C pendelt.
Unter Homematic klappte das auch einwandfrei. Ich habe das entsprechende Homematic-Script jetzt in ein Template unter HA übersetzt, aber da denkt dann jemand falsch:
Hier soll eigentlich die "Heizempfehlung" auf "true" geschaltet werden, sobald die Ist-Temperatur unter die Einschalttemperatur fällt, was auch klappt. Auf "false" soll das aber erst springen, wenn der Ausschaltwert erreicht wurde. HA schaltet aber bereits dann wieder auf "false", wenn "temperatur" > "heizungEin" ist.
Nach meinem Verständnis müsste es doch so aussehen:
- solange die Ist-Temperatur <= Einschaltwert --> "true"
- Wenn Ist-Temperatur > Einschaltwert sollte nichts passieren, weil es ja kein ELSE gibt.
- Erst dann, wenn die Ist-Temperatur >= Ausschaltwert --> "false"
Warum wird "false" aber schon gesetzt, wenn "if temperatur <= heizungEin" nicht mehr wahr ist?
Scriptende Grüße
Axel
ich bin gerade dabei, nach und nach alle Programme und Scripte von Homematic in Home Assistant zu übertragen. An einer Stelle haben aber entweder ich oder HA einen "Denkfehler":
In einem Anbau ist eine kleine Elektroheizung verbaut. Diese soll z. B. eine Temperatur von 10 °C halten. Dazu soll sie bei 3 % unter dem Sollwert eingeschaltet und bei 3 % über dem Sollwert ausgeschaltet werden, so dass die Temperatur z. B. zwischen 9,7 und 10,3 °C pendelt.
Unter Homematic klappte das auch einwandfrei. Ich habe das entsprechende Homematic-Script jetzt in ein Template unter HA übersetzt, aber da denkt dann jemand falsch:
YAML:
{# Heizempfehlung ermitteln #}
{% if temperatur <= heizungEin %}
{{ true }}
{% elif temperatur >= heizungAus %}
{{ false }}
{% endif %}
Hier soll eigentlich die "Heizempfehlung" auf "true" geschaltet werden, sobald die Ist-Temperatur unter die Einschalttemperatur fällt, was auch klappt. Auf "false" soll das aber erst springen, wenn der Ausschaltwert erreicht wurde. HA schaltet aber bereits dann wieder auf "false", wenn "temperatur" > "heizungEin" ist.
Nach meinem Verständnis müsste es doch so aussehen:
- solange die Ist-Temperatur <= Einschaltwert --> "true"
- Wenn Ist-Temperatur > Einschaltwert sollte nichts passieren, weil es ja kein ELSE gibt.
- Erst dann, wenn die Ist-Temperatur >= Ausschaltwert --> "false"
Warum wird "false" aber schon gesetzt, wenn "if temperatur <= heizungEin" nicht mehr wahr ist?
Scriptende Grüße
Axel
Zuletzt bearbeitet von einem Moderator: