v inom vlákne sme načali niečo o šablónach a premenných, strávil som niekoľko dlhých večerov hľadaním a bádaním...
Mám v pomocníkoch vytvorené premenné, ktoré plánujem využiť v automatizácii... len ich chcem v čase meniť.
Niečo som pochopil, s niečim sa stále trápim.
Ak chcem v šablóne klasicky vnulovať premennú, aby som následne do nej zapísal hodnotu teploty jednej z izieb, tak končím na chybe, že nemám priradenú konštantu (táto chyba sa objaví už pri prvom riadku, priradení nuly)
Kód: Vybrat vše
{% set input_number.teplota_aktualna_priemer = 0 %}
{% set input_number.teplota_aktualna_priemer = states("sensor.detska_teplomer_teplota") | float + input_number.teplota_aktualna_priemer %}
TemplateSyntaxError: can't assign to 'const'
Ak namiesto premennej z pomocníka si do skriptu vymyslím iné premenné (doteraz nikde nedefinované), všetko funguje OK. Či použijem na pravej strane hodnotu zo senzora (teplota), alebo hodnotu z pomocníka (nastavená požadovaná teplota), v pohode sa vykonajú matematické ukony a výsledok sa priradí do vymyslenej premennej.
Kód: Vybrat vše
{% set pozadovana_teplota = 0 %}
{% set aktualna_teplota = 0 %}
{% set pocet_na_priemer = 0 %}
{% if states("input_boolean.kurenie_detska")=='on' and states("binary_sensor.okno_hore_detska_contact")=='off' %}
{% set pozadovana_teplota = states("input_number.temp_detska_vyssia") | float - states("input_number.temp_znizenie_pomocny") | float + pozadovana_teplota %}
{% set aktualna_teplota = states("sensor.detska_teplomer_teplota") | float + aktualna_teplota %}
{% set pocet_na_priemer = pocet_na_priemer + 1 %}
{%- endif %}
Detska pozadovana: {{ pozadovana_teplota }}
Detska aktualna: {{ aktualna_teplota }}
Priemer: {{ pocet_na_priemer }}
Lenže následne neviem tento výsledok prakticky nikde použiť, pretože reálne takáto entita neexistuje. Aktuálne cez "average senzor" zasielam do termostatu priemernú požadovanú teplotu:
Kód: Vybrat vše
service: mqtt.publish
data:
topic: opentherm-thermostat/current-temperature/set
payload: '{{states("sensor.priemerna_teplota_hore")}}'
payload: '{{states("pozadovana_teplota")}}'
(skúšal som rôzne zápisy, napr. payload: '{{ pozadovana_teplota }}')
Skúšal som na záver priradiť hodnotu vypočítanej premennej do premennej definovanej v pomocníkovi, opäť rovnaká chyba. Skúšam googliť s danou chybou, ale neviem natrafiť na podobný problém, akú vlastne voliť syntax.
Pri takomto zápise:
{% set input_number.teplota_aktualna_priemer = input_number.teplota_aktualna_priemer + states("sensor.obyvacka_teplomer_teplota") | float %}
mám zase takúto chybu: TemplateRuntimeError: cannot assign attribute on non-namespace object
Vie niekto poradiť...?
Ľubo