W pliku templates.yaml bezskutecznie próbuję stworzyć templatkę sensora z aktualną taryfą prądu dla cennika Tauron G12W: sensor.tauron_aktualna_taryfa_g12w, który ma wyznaczać i przechowywać tekstową wartość stanu DZIENNA lub NOCNA lub WEEKEND. Atrybuty tego sensora mają przechowywać aktualną cenę prądu (netto i brutto) w zależności od stanu samego sensora.
Sensor ten korzysta z wartości cennikowych przechowywanych w innych sensorach w następujący sposób:
- sensor:
# Ceny taryfowe sprzedaży energii Tauron Taryfa G12W
- name: Tauron Dzienna Cena Energii Netto G12W
unique_id: tauron_dzienna_cena_energii_netto_g12w
state: "{{ (0.5050) }}"
unit_of_measurement: "zł/kWh"
- name: Tauron Nocna Cena Energii Netto G12W
unique_id: tauron_nocna_cena_energii_netto_g12w
state: "{{ (0.2476) }}"
unit_of_measurement: "zł/kWh"
- name: Stawka VAT na energię
unique_id: stawka_vat_na_energie
state: "{{ (0.23) }}"
unit_of_measurement: "%"
# Stawki dystrybucyjne TAURON
- name: Tauron Opłata Dystrybucyjna Zmienna Netto G12W Dzień
unique_id: tauron_oplata_dystrybucyjna_zmienna_netto_g12w_dzien
state: "{{ (0.3657) }}"
unit_of_measurement: "zł/kWh"
- name: Tauron Opłata Dystrybucyjna Zmienna Netto G12W Noc
unique_id: tauron_oplata_dystrybucyjna_zmienna_netto_g12w_noc
state: "{{ (0.0904) }}"
unit_of_measurement: "zł/kWh"
- name: Tauron Opłata Dystrybucyjna Stała Netto G12W Miesięcznie
unique_id: tauron_oplata_dystrybucyjna_stala_netto_g12w_miesiecznie
state: "{{ (10.67) }}"
unit_of_measurement: "zł/mies"
Natomiast wspomniany sensor główny sensor.tauron_aktualna_taryfa_g12w ma nastepującą definicję:
- sensor:
- name: Tauron Aktualna Taryfa G12w
unique_id: tauron_aktualna_taryfa_g12w
icon: mdi:meter-electric-outline
state: >
{% set cena = {
"dp": states('sensor.tauron_dzienna_cena_energii_netto_g12w')|float(0),
"dd": states('sensor.tauron_oplata_dystrybucyjna_zmienna_netto_g12w_dzien')|float(0),
"np": states('sensor.tauron_nocna_cena_energii_netto_g12w')|float(0),
"nd": states('sensor.tauron_oplata_dystrybucyjna_zmienna_netto_g12w_noc')|float(0),
"vat": 1 + states('sensor.stawka_vat_na_energie')|float(0)}
%}
{% set cn = 0 %}
{% set cb = 0 %}
{% set taryfa = 'WEEKEND' %}
{% set peaks = [(6, 13), (15, 22)] %}
{% set is_weekend = ((now().weekday() >=5 ) or states('calendar.swieta_w_polsce') == 'on')) %}
{% if not is_weekend %}
{% for peak in peaks %}
{% if ((now().hour >= peak[0]) and (now().hour < peak[1])) %}
{% set is_peak = True %}
{% set taryfa = 'DZIENNA' %}
{% set cn = (cena.dp + cena.dd)|float(0)|round(4) %}
{% set cb = (cn * cena.vat)|float(0)|round(4) %}
{% else %}
{% set is_peak = False %}
{% set taryfa = 'NOCNA' %}
{% set cn = (cena.np + cena.nd)|float(0)|round(4)} %}
{% set cb = (cn * cena.vat)|float(0)|round(4) %}
{% endif %}
{% endfor %}
{% else %}
{% set is_peak = False %}
{% set cn = (cena.np + cena.nd)|float(0)|round(4) %}
{% set cb = (cn * cena.vat)|float(0)|round(4) %}
{% endif %}
{{taryfa}}
attributes:
cena_netto_1kWh: "{{(cn)}}"
cena_brutto_1kWh: "{{(cb)}}"
Powinien on wyznaczać taryfę w zależności od dnia tygodnia i pory dnia.
Tymczasem nic nie wyznacza, tylko narzeka na błąd, którego nie widać:
Rejestrator: homeassistant.config
Źródło: config.py:357
Pierwsze zdarzenie: 10:44:06 (5 wystąpień)
Ostatnio zalogowany: 12:25:13
Invalid config for 'template' at templates.yaml, line 302: invalid template (TemplateSyntaxError: unexpected '}') for dictionary value 'sensor->67->state', got '{% set cena =\n {\n "dp": states(\'sensor.tauron_dzienna_cena_energii_netto_g12w\')|float,\n "dd": states(\'sensor.tauron_oplata_dystrybucyjna_zmienna_netto_g12w_dzien\')|float,\n "np": states(\'sensor.tauron_nocna_cena_energii_netto_g12w\')|float,\n "nd": states(\'sensor.tauron_oplata_dystrybucyjna_zmienna_netto_g12w_noc\')|float,\n "vat": 1 + states(\'sensor.stawka_vat_na_energie\')|float\n }\n%} {% set peaks = [(6, 13), (15, 22)] %} {% set is_weekend = ((now().weekday() >=5 ) or (s...
Invalid config for 'template' at templates.yaml, line 302: invalid template (TemplateSyntaxError: unexpected '}') for dictionary value 'sensor->67->state', got '{% set cena = {\n "dp": states(\'sensor.tauron_dzienna_cena_energii_netto_g12w\')|float,\n "dd": states(\'sensor.tauron_oplata_dystrybucyjna_zmienna_netto_g12w_dzien\')|float,\n "np": states(\'sensor.tauron_nocna_cena_energii_netto_g12w\')|float,\n "nd": states(\'sensor.tauron_oplata_dystrybucyjna_zmienna_netto_g12w_noc\')|float,\n "vat": 1 + states(\'sensor.stawka_vat_na_energie\')|float\n} %} {% set peaks = [(6, 13), (15, 22)] %} {% set is_weekend = ((now().weekday() >=5 ) or (states(...
Invalid config for 'template' at templates.yaml, line 302: invalid template (TemplateSyntaxError: unexpected '}') for dictionary value 'sensor->67->state', got '{% set cena = {\n "dp": states(\'sensor.tauron_dzienna_cena_energii_netto_g12w\')|float(0),\n "dd": states(\'sensor.tauron_oplata_dystrybucyjna_zmienna_netto_g12w_dzien\')|float(0),\n "np": states(\'sensor.tauron_nocna_cena_energii_netto_g12w\')|float(0),\n "nd": states(\'sensor.tauron_oplata_dystrybucyjna_zmienna_netto_g12w_noc\')|float(0),\n "vat": 1 + states(\'sensor.stawka_vat_na_energie\')|float(0)\n} %} {% set peaks = [(6, 13), (15, 22)] %} {% set is_weekend = ((now().weekday() >=...
Invalid config for 'template' at templates.yaml, line 301: invalid template (TemplateSyntaxError: unexpected '}') for dictionary value 'sensor->67->state', got '{% set cena = {\n "dp": states(\'sensor.tauron_dzienna_cena_energii_netto_g12w\')|float(0),\n "dd": states(\'sensor.tauron_oplata_dystrybucyjna_zmienna_netto_g12w_dzien\')|float(0),\n "np": states(\'sensor.tauron_nocna_cena_energii_netto_g12w\')|float(0),\n "nd": states(\'sensor.tauron_oplata_dystrybucyjna_zmienna_netto_g12w_noc\')|float(0),\n "vat": 1 + states(\'sensor.stawka_vat_na_energie\')|float(0)\n} %} {% set taryfa = \'WEEKEND\' %} {% set peaks = [(6, 13), (15, 22)] %} {% set is...
Linia 302 wskazuje na state: > w powyższej definicji sensora sensor.tauron_aktualna_taryfa_g12w.
Na dodatek żaden z tych sensorów (nawet tych z cennikiem) nie jest osiągalny:
Próbuję walczyć z tym błędem od kilku dni ale wciąż nie rozumiem jego źródła… Może ktoś z Was będzie bardziej spostrzegawczy? Proszę, pomóżcie…





