Úplným základem který budeme potřebovat pro to abychom byli schopni měřit spotřebu elektřiny v čase bude informace o aktuální spotřebě ve Wattech. Jakmile budeme mít tuto hodnotu jsme schopni si vše ostatní dopočítat.
Nejprve si ukážeme obecně použití v HA a později se podíváme jak tento princip aplikovat v případě WiFi zařízení s firmware Tasmota a poté v případě Zigbee zásuvky napárované do systému deCONZ. Jakékoliv další použití by však mělo být velmi podobné.
Potřebné entity
- aktuální spotřeba (current power)
- spotřebovaná energie (energy spend)
- čítače spotřeby (consumption meters) – hodinnový, denní, měsíční atp.
- peněžní vyjádření spotřeby (price per period)
A nyní se pojďme podívat na jednotlivé části podrobněji
1. Aktuální spotřeba (W)
Jedná se o hodnotu udávající aktuální spotřebu zařízení ve Watech. Tuto hodnotu budeme potřebovat získat přímo ze zařízení.
2. Spotřebovaná energie (kWh)
Tento převodník nám pomůže s převodem aktuální spotřeby na kWh.
Například pokud máme 60 W žárovku svítící po dobu jedné hodiny, pak její spotřeba bude 0,06 kWh.

Implementaci v HomeAssistantovi najdeme jako platformu integration
, která poskytuje tzv. Riemannův součet, což je v matematice určitým druhem aproximace hodnoty určitého integrálu konečným součtem – pokud by vás zajímaly detaily výpočtu můžete kouknout na Wikipedii.

Pro použití v HomeAssistantovi budeme potřebovat nastavit zdroj pro Riemannův součet, což bude sensor s aktuální spotřebou ve Watech, který jsme si popsali v předchozím bodě.
Tento senzor bohužel nelze nastavit přímo z webového rozhraní HA a budeme muset jít do configuration.yaml
, např:
sensor:
- platform: integration
source: sensor.current_power
unit_prefix: k
💡 Mějte na paměti, že Riemannův součet je pouze aproximací a velmi záleží kolik dat pro výpočet poskytneme, nebo-li čím bude interval mezi jednotlivými hodnotami aktuální spotřeby větší, tím menší přesnost hodnoty v kWh dostaneme.
V případě zařízení s velkou inicializační spotřebou, tj. při zapnutí se spotřeba skokově velmi zvýší a rychle klesne poskytuje výchozí metoda výpočtu – trapezoidal – velmi špatné výsledky a je potřeba ji změnit na left
:
sensor:
- platform: integration
source: sensor.current_power
method: left
unit_prefix: k
3. Čítače spotřeby (kWh)
Předchozí senzor spotřebované energie nám poskytuje akumulovanou hodnotu, tj. celkovou spotřebu v kWh. Velmi často bychom však potřebovali i spotřebu za určitý časový interval.
Pro tento účel máme v HomeAssistentovi senzory typu utility_meter
, které umí akumulovat hodnoty za určitý časový interval a po jeho vypršení se automaticky resetovat na hodnotu 0.
Záleží pak skutečně na vašich potřebách, ale obecně mohou být tyto čítače:
- hodinové –
hourly
- denní –
daily
- týdenní –
weekly
- měsíční –
montly
- každý druhý měsíc –
bimonthly
- kvartální (každý třetí měsíc) –
quarterly
- roční –
yearly
Stejně jako v případě Riemannova součtu nelze tyto sensory nastavit přímo ve webovém rozhraní HA, ale budeme muset opět použít configuration.yaml:
utility_meter:
energy:
source: sensor.energy_in_kwh
cycle: monthly
Jak vidíme v základu budeme potřebovat pouze dva parametry – zdroj, což bude výstup z předchozího Riemannova součtu a délku jednotlivého cyklu.
Pokud máme dva různé tarify ceny elektrické energie během dne, tzv. nízký tarif (NT) a vysoký tarif (VT) pak dává smysl rozdělit čítače do dvou skupin. Konfigurace pak bude obsahovat navíc sekci tariffs
:
utility_meter:
energy:
source: sensor.energy_in_kwh
cycle: monthly
tariffs:
- vt
- nt
Pro jednotlivé čítače se nám pak automaticky vytvoří dvojice senzorů, která bude mít na konci _vt
a nebo _nt
, tj. např. sensor.monthly_energy_vt
a sensor.monthly_energy_nt
.
Předpokládejme, že máme přepínání mezi nízkým a vysokým tariffem nastaveno takto:
- vysoký tarif: od 9:00 do 21:00
- nízký tarif: od 21:00 do 9:00 následujícího dne
Pro přepínání mezi jednotlivými si vytvoříme automatizaci buď ve skriptu:
trigger:
- platform: time
at: '09:00:00'
- platform: time
at: '21:00:00'
action:
- service: utility_meter.next_tariff
entity_id: utility_meter.monthly_energy
a nebo přímo pomocí webového rozhraní -> nejprve budeme potřebovat definovat spouštěče:

a samotnou akci:

4. Peněžní vyjádření spotřeby (Kč)
Pokud známe cenu kWh pak může být užitečné si hodnotu z např. měsíčního čítače převést na peněžní vyjádření.
Toho docílíme například použitím senzoru typu template:
sensor:
- platform: template
monthly_energy_price:
unit_of_measurement: 'Kč'
value_template: "{{ (states('sensor.monthly_energy') | float * <cenaZaKwh>) | round(2) }}"
Máme za sebou snad kompletní teorii a pojďme si ukázat dva příklady.
WiFi zásuvka s firmware Tasmota
Prvním ukázkovým příkladem může být WiFi zařízení na který jsme si nainstalovali alternativní firmware Tasmota a konkrétně si to ukážeme na nejnovější verzi WiFi zásuvky od firmy BlitzWolf s označením BW-SHP10-P.
💡Jak firmware Tasmota nahrát bez nutnosti rozebrání zásuvky si můžete přečíst v tomto článku.

BlitzWolf BW-SHP10-P
WiFi chytrá zásuvka s měřením spotřeby a možností nahrání vlastního firmware – např Tasmota.
Pokud se podíváme do webového rozhraní Tasmota běžící v samotné žárovce tak zjistíme, že máme k dispozici jak aktuální spotřebu, nebo-li Příkon ve Watech tak i Denní spotřebu v kWh.

Pokud jsme Tasmotu správě přidali do HomeAssistenta (můžete zkusit použít i novou Integraci přímo od Tasmoty) měli byste mít k dispozici sensor s názvem sensor.<název>_energy_power
a také sensor.<název>_energy_today
.
Denní spotřebu můžeme použít pouze pro kontrolu, ale samotnou aktuální spotřebu použijeme pro Riemannův součet:
sensor:
- platform: integration
source: sensor.<název>_energy_power
name: <název>_energy_spend
unit_prefix: k
method: left
Hodnotu <název>
si nahraďte vlastním názvem podle Tasmota konfigurace – najdete ji v sekci Další nastavení:

Jakmile máme přepočet Watů na kWh můžeme se rovnou vrhnout na čítače a budeme chtít hodinový, denní a měsíční:
utility_meter:
<název>_consumption_hourly:
source: sensor.<název>_energy_spend
cycle: hourly
<název>_consumption_daily:
source: sensor.<název>_energy_spend
cycle: daily
<název>_consumption_monthly:
source: sensor.<název>_energy_spend
cycle: monthly
Pro vyjádření měsíční spotřeby v Kč pak přidáme další sensor:
sensor:
- platform: template
<název>_monthly_price:
unit_of_measurement: 'Kč'
value_template: "{{ (states('sensor.<název>_consumption_monthly') | float * <cenaZaKWh>) | round(2) }}"
HomeAssistant restartujeme a měli bychom nyní být schopní si přidat jednotlivé senzory do UI:

Zigbee Zásuvka připárována do deCONZu
Jako druhou ukázku si dáme Zigbee zásuvku opět od firmy BlitzWolf s označením BW-SPH13, kterou jsme připárovali do Zigbee systému deCONZ.

Informace o aktuální spotřeba je součástí clusteru Electrical Measurement Cluster a konkrétně se jedná o položku Active Power:

V HomeAssistentovi je pak tato hodnota přístupná pod senzorem sensor.<název>_power
. Kromě tohoto senzoru máme k dispozici ještě entity obsahující celkovou spotřebu v kWh s názvem sensor.<název>_consumption
, kterou ale nevyužijeme.
Nejprve opět začneme Reimannovým součtem:
sensor:
- platform: integration
source: sensor.<název>_power
name: <název>_energy_spend
unit_prefix: k
A další postup už je úplně stejný jako u WiFi verze, tj: nejprve čítače
utility_meter:
<název>_consumption_hourly:
source: sensor.<název>_energy_spend
cycle: hourly
<název>_consumption_daily:
source: sensor.<název>_energy_spend
cycle: daily
<název>_consumption_monthly:
source: sensor.<název>_energy_spend
cycle: monthly
a můžeme si ještě měsíční spotřebuju vyjádřit v Kč:
sensor:
- platform: template
<název>_monthly_price:
unit_of_measurement: 'Kč'
value_template: "{{ (states('sensor.<název>_consumption_monthly') | float * <cenaZaKWh>) | round(2) }}"
Nakonci pak můžeme mít vše dostupné v uživatelském rozhraní HA:

Tím jsem snad více než vyčerpal základy měření spotřeby v HomeAssistantovi a uvedl pro názornost dvě příklady. Musím přiznat, že Internet je plný spousty chybných postupů a zřejmě v tomhle má dost lidí zmatek – i mě to nějakou dobu trvalo než jsem se zorientoval.
Pokud byste našli jakoukoliv nepřesnost či oblast, která by se hodila ještě rozšířit ozvěte se v komentářích. Zároveň jestli máte nějaké zajímavé praktické využití budu rád když nám dáte vědět také.
Kompletní série o HomeAsistantovi obsahuje následující články:
- 1. část – Představení HomeAsisstent –
tento článek - 2. část –
Integrace Sonoff s firmware Sonoff-Tasmota - 3. část –
Integrace Homekit - 4. část –
Integrace Sonoff s firmware Sonoff-Tasmota – 2 část - 5. část –
Integrace s Wemos D1 asenzory teploty - 6. část –
Integrace Sonoff s firmware ESPHome - 7. část –
Integrace Sonoff POW s firmware ESPHome - 8. část –
Integrace LED Magic Home s firmware ESPHome - 9. část –
Integrace Xiaomi Mijia a Aqara - 10. část – Integrace vlastní Zigbee gateway
- 11. část – Vzdálený přístup do Hass.io z Internetu
- 12. část – zobrazení senzorových data pomocí InfluxDB a Grafany
- 13. část – Hass.io Add-ony, které používám
- 14. část – Integrace Xiaomi Mi Flora
- 15. část – Integrace Withings (Nokia)
- 16. část – náhrada SQLite databází MySQL
- 17. část – HACS Add-ony – instalace a konfigurace
- 18. část – Integrace Sonoff s firmware eWeLink
- 19. část – Nová integrace Sonoff pro HA
- 20. část – Měření spotřeby
A co měření spotřeby přes S0 impulsy na elektroměru. Co použít nejlépe Tasmota/ESPhome/ESPeasy