Postanowiłem zbudować sensor, który będzie podawał aktualną cenę prądu w Tauronie w taryfie G12W.
Cena ta jest podstawiana do HA Energy i pozwala liczyć koszt urządzenia w danym zakresie czasu.
binary_sensor:
- platform: workday
country: PL
template:
- binary_sensor:
- unique_id: power_tauron_g12w_current_tariff
name: power_tauron_g12w_current_tariff
availability: "{{ not is_state('binary_sensor.workday_sensor', 'unavailable') }}"
state: >-
{## Return True if it's peak time ##}
{## Return False if it's offpeak time ##}
{%- set energy = {
'peak1_start': 6,
'peak1_stop': 13,
'peak2_start': 15,
'peak2_stop': 22,
} -%}
{## Jeśli jest weekend ##}
{%- if is_state('binary_sensor.workday_sensor', 'off') -%}
False
{## Jeśli jest po starcie pierwszego szczytu i przed końcem pierwszego szczytu ##}
{%- elif
(now().hour - energy.peak1_start >= 0)
and
(now().hour - energy.peak1_stop < 0)
-%}
True
{## Jeśli jest po starcie pierwszego szczytu i przed końcem drugiego szczytu ##}
{%- elif
(now().hour - energy.peak2_start >= 0)
and
(now().hour - energy.peak2_stop < 0)
-%}
True
{%- else %}
False
{%- endif %}
- sensor:
- unique_id: power_tauron_g12w_current_price
name: power_tauron_g12w_current_price
availability: "{{ not is_state('binary_sensor.power_tauron_g12w_current_tariff', 'unavailable') }}"
device_class: monetary
unit_of_measurement: "PLN/kWh"
state: >-
{%- if is_state('binary_sensor.power_tauron_g12w_current_tariff', 'off') -%}
0.3260
{%- elif is_state('binary_sensor.power_tauron_g12w_current_tariff', 'on') -%}
0.6728
{%- endif -%}
ja bym się trzymał tych cen, są bardziej realne, co prawda to nie g12, ale jak się przejdzie na ich stronę g13 to ceny są niższe (brak opłat dystrybucyjnych)
Dziękuję, że podzieliłeś się swoją pracą. Szukałem takiego rozwiania dla moich statystyk.
Niestety dopiero zaczynam przygodzę z HA i nie bardzo wiem gdzie te wpisy dodać.
Próbowałem do
configuration.yaml
binary_sensor.yaml
ale nie przechodzi weryfikacji.
Próbowałem też rozbić część do różnych plików według typu, ale też bez powodzenia.
Jeśli możesz podpowiedzieć gdzie to dodać będę wdzięczny.
Przy okazji
Ceny w G12W to obecnie
0,33 i 0,81
od 1 sierpnia po powrocie do stawek vat
0,38 i 0,95
1.W config dodaj plik sensor.yaml # Jak nie masz
2. W configuration.yaml dopisz sensor: !include sensor.yaml # Jak nie masz
3. Sprawdź poprawność, Restart HA
4. W pliku sensor.yaml dodaj “sensory” # Zwróć uwagę na odstępy
5. Zapisz, sprawdź poprawność, Restart HA
Np.
Tak właśnie robię, ale doczytałem, że problem może być ze stara i nowa definicją.
Ja ma zdefiniowane template według starej składni.
Po adaptacji nowej składni na starą zaczęło działać.
Prośba o info, czy zostawić to w tym formacje czy przepisywać na nowy?
Dodatkowo proszę o info czy to tak ma być, czy tutaj jest błąd
{%- if is_state(‘binary_sensor.power_tauron_g12w_current_tariff’, ‘off’) -%}
a chyba powinno być
{%- if is_state(‘binary_sensor.power_tauron_g12w_current_tariff’, ‘True’) -%}
power_tauron_g12w_current_tariff:
friendly_name: 'power_tauron_g12w_current_tariff'
availability_template: "{{ not is_state('binary_sensor.workday_sensor', 'unavailable') }}"
value_template: >
{## Return True if it's peak time ##}
{## Return False if it's offpeak time ##}
{% set energy = {
'peak1_start': 6,
'peak1_stop': 13,
'peak2_start': 15,
'peak2_stop': 22,
} %}
{## Jeśli jest weekend ##}
{% if is_state('binary_sensor.workday_sensor', 'off') %}
False
{## Jeśli jest po starcie pierwszego szczytu i przed końcem pierwszego szczytu ##}
{% elif
(now().hour - energy.peak1_start >= 0)
and
(now().hour - energy.peak1_stop < 0)
%}
True
{## Jeśli jest po starcie pierwszego szczytu i przed końcem drugiego szczytu ##}
{% elif
(now().hour - energy.peak2_start >= 0)
and
(now().hour - energy.peak2_stop < 0)
%}
True
{% else %}
False
{% endif %}
power_tauron_g12w_current_price:
friendly_name: power_tauron_g12w_current_price
#availability_template: "{{ not is_state('sensor.power_tauron_g12w_current_tariff', 'unavailable') }}"
device_class: monetary
unit_of_measurement: "PLN/kWh"
value_template: >-
{%- if is_state('sensor.power_tauron_g12w_current_tariff', 'False') -%}
0.33
{%- elif is_state('sensor.power_tauron_g12w_current_tariff', 'True') -%}
0.81
{%- endif -%}