Za tím účelem lze použít integraci s názvem Utilty Meter. Potřebujeme jen senzor stavu HDO (Hromadné Dálkové Ovládání).
Ten můžeme vytvořit například pomocí nejrůznějších doplňků, které využívají plánovaných spínacích času většiny distribučních společnosti. Těmi se ovšem zabývat nechci a nebudu, neboť jak jsem uvedl, jde o časy plánované nikoliv však skutečné.
Chceme-li měřit spotřebu rozdělenou do sazeb co nejpřesněji nezbývá než monitorovat skutečný stav HDO. Jak?
Někdo využívá dveřní senzory, já použil Sonoff MINI, kdy signál HDO spíná cívku relé a spínací kontakt relé ovládá Sonoff mini.
Podrobnosti naleznete zde.
Takže máme entitu spotřeby a entitu obsahující informací o stavu HDO.
A to nám stačí.
Do config.yaml tedy vložíme následující kód ve kterém upravte název vlastní entity měření, cyklus měření (hourly, daily, monthly, yourly), a můžete si pojmenovat tarify (taryffs:) podle svého:
Kód: Vybrat vše
##############################################################################
## HDO tarify https://www.home-assistant.io/integrations/utility_meter/ ###
##############################################################################
utility_meter:
nazev_entity_rocni_spotreba:
source: sensor.vas_senzor_mereni_energie
cycle: yearly
# offset: (0 minutes, 0h00 hours, Monday, day 1, January)
net_consumption: true
tariffs:
- NT
- VT
Například:
Kód: Vybrat vše
##############################################################################
## HDO tarify https://www.home-assistant.io/integrations/utility_meter/ ###
##############################################################################
utility_meter:
rocni_spotreba_L1:
source: sensor.vas_senzor_mereni_energie_L1
cycle: yearly
# offset: (0 minutes, 0h00 hours, Monday, day 1, January)
net_consumption: true
tariffs:
- NT
- VT
#
rocni_spotreba_L2:
source: sensor.vas_senzor_mereni_energie_L2
cycle: yearly
# offset: (0 minutes, 0h00 hours, Monday, day 1, January)
net_consumption: true
tariffs:
- NT
- VT
#
rocni_spotreba_L3:
source: sensor.vas_senzor_mereni_energie_L3
cycle: yearly
# offset: (0 minutes, 0h00 hours, Monday, day 1, January)
net_consumption: true
tariffs:
- NT
- VT
Tak vytvoříte vlastně 9 entit (pro každou fázi tři):
Kód: Vybrat vše
sensor.rocni_spotreba_L1_VT
sensor.rocni_spotreba_L1_NT
a
select.rocni_spotreba_L1
Kód: Vybrat vše
sensor.rocni_spotreba_L2_VT
sensor.rocni_spotreba_L2_NT
a
select.rocni_spotreba_L2
Kód: Vybrat vše
sensor.rocni_spotreba_L3_VT
sensor.rocni_spotreba_NT
a
select.rocni_spotreba_L3
Zbývá tedy vytvořit automatizaci která na základě přepnutí stavu senzoru HDO tarify VT a NT bude přepínat:
Kód: Vybrat vše
alias: ' Přepínání HDO - VT a NT'
description: ''
mode: single
trigger:
- platform: state
entity_id: switch.hdo_indikator
- platform: time_pattern
minutes: /15
condition: []
action:
- choose:
- conditions:
- condition: state
entity_id: switch.hdo_indikator
state: 'on'
sequence:
- service: select.select_option
target:
entity_id:
- select.rocni_spotreba_L1
- select.rocni_spotreba_L2
- select.rocni_spotreba_L3
data:
option: NT
- conditions:
- condition: state
entity_id: switch.hdo_indikator
state: 'off'
sequence:
- service: select.select_option
target:
entity_id:
- select.rocni_spotreba_L1
- select.rocni_spotreba_L2
- select.rocni_spotreba_L3
data:
option: VT
default: []
Pokud Vás zajímá třeba i měsíční spotřeba, je nutné pro danou entitu(y) udělat totéž ještě jednou a v nastavení Utility Meter(u) zmenit parametery názvu a cycle, například:
Kód: Vybrat vše
utility_meter:
mesicni_spotreba_L1:
source: sensor.vas_senzor_mereni_energie_L1
cycle: monthly # další možnosti jsou: quarter-hourly, hourly, daily, weekly, , bimonthly, quarterly and yearly
# offset: (0 minutes, 0h00 hours, Monday, day 1, January)
net_consumption: true
tariffs:
- NT
- VT
Zbývá už jen vytvořit senzory roční (měsíční - nebo jiné) spotřeby pro vysoký a pro nízký tarif protože nás zřejmě zajímá i celková spotřeba ze všech fází nízkého i vysokého tarifu, takže potřebujeme sečíst L1_NT+L2_NT+L3_NT a v druhém senzoru L1-VT+L2_VT+L3_VT.
Jdeme na to:
Kód: Vybrat vše
sensor:
- platform: template
sensors:
rocni_spotreba_nt:
friendly_name: Roční spotřeba el. NT
unit_of_measurement: kWh
value_template: "{{ states('sensor.vas_senzor_mereni_energie_L1_NT')|float + states('sensor.vas_senzor_mereni_energie_L2_NT')|float + states('sensor.vas_senzor_mereni_energie_L3_NT')|float }}"
rocni_spotreba_vt:
friendly_name: Roční spotřeba el. VT
unit_of_measurement: kWh
value_template: "{{ states('sensor.vas_senzor_mereni_energie_L1_VT')|float + states('sensor.vas_senzor_mereni_energie_L2_VT')|float + states('sensor.vas_senzor_mereni_energie_L3_VT')|float }}"
Kód: Vybrat vše
rocni_spotreba_nt
a
rocni_spotreba_vt
Můžete to samozřejmě udělat i opačně:
nejdříve sečíst spotřebu všech tří fází do senzoru celkové spotřeby
poté tento senzor pomocí Utitlty Meteru rozdělit na dvě sazby
nezískáte tak ale spotřebu v NT a VT jednotlivých fází
Vylepšit to všechno je dobré automatizací přepínání tarifu hned při startu HA:
Kód: Vybrat vše
alias: Tarif po startu HA
description: ''
trigger:
- platform: homeassistant
event: start
condition: []
action:
- service: select.select_option
target:
entity_id:
- select.l123_spotreba_kwh
data:
option: >-
'{% if is_state("binary_sensor.hdo","on") %} NT {% else %} VT {% endif
%}'
mode: single