🎙 Poslední aktualizace článku 6.12.2020. Pokud najdete nějaké rozdíly v aktuálním stavu, dejte vědět v komentářích, díky.
Ú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
- 21. část – automatické zálohy a obnovení ze zálohy
- 22. část – napojení hlasového asistenta Amazon Alexa
- 23. část – automatické zálohy na síťový sdílení disk (Samba)
- 24. část – Bluetooth zařízení a ESPHome proxy
- 25. část – nefunkční aktualizace HomeAssistanta
- 26. část – integrace SwitchBot produktů
A co měření spotřeby přes S0 impulsy na elektroměru. Co použít nejlépe Tasmota/ESPhome/ESPeasy
Dobrý den Libore,
máte rozjeté měření přes S0 výstup elektroměru, nejlépena ESPHome?
Děkuji za vaší odpověď Radim
Měření přes zásuvky BlitzWolf mám rozjeté a funguje to dobře, včetně denních a měsíčních hodnot, ale mám dotaz jak to udělat abych měl součet za období např. květen 2020 až květen 2021 a pak se to vynulovalo.
Ohledně impulsů mám připraven Vemos D1 s Tasmotou, který je připojen na elektroměr který poskytuje impulzy. Tasmota počítá impulsy (count). Ještě to musím integrovat do HA, ale to už nebude tak složité.
Zdravím Petře,
chci se pustit do měření spotřeby elektrické energie. Velice mě zaujal způsob počítání impulzů z elektroměru (Vemos D1 s Tasmotou). Jak se dá řešit vysoký a nízký tarif? Dá se řešit na Vemos D1 v Tasmotě jako dva čítače? Do HA by se již přenesly tyto dvě hodnoty.
prosím, nemohl by jsi se podělit o configuration.yaml ?
docela s tím bojuji a potřeboval bych vidět jak to vypadá v reálu.
díky Moc
Vilém
Ahoj, může mi někdo pomoc, potřebuji poradit jak měřit spotřebu Riemannovým součtem v HA, ze senzoru, který když je hodnota záporná kupuje/ spotřebovává ze sítě/ a když je hodnota kladná tak energii dodává do síě. Potřebuji měřit nákup případně i prodej.
Shelly 3EM meri spotrebu pripadne i prodej po jednotlivych fazich a je primo podpora v HA bohuzel cena je primerena konfortu aktualne je cena 3749 v DATARTu a maji posledni kus 🙂
Zdravím, díky (nejen) tomuto skvělému článku jsem se konečně odhodlal koupit a flashnout (pomocí tuya-convert) zásuvky, které tu zmiňujete(BlitzWolf BW-SHP10-P), chci se zeptat: Aktuálně tam mám Tasmota a nevypadá to vůbec špatně, ale velmi se mi líbí jak funguje ESPHome, ale nebyl jsem schopen najít nějaký template, který by mi umožnil vygenerovat FW pro ESPHome. Vy tyto zásuvky používáte s ESPHome? Můžete mě nasměrovat, pravděpodobně mi ještě něco uniká. Díky
Díky za dotaz, ale ESPHome používám spíše na “skládačky” z jednotlivých dílů. V hotových produktech mám zatím Tasmotu.. nicméně bude zajímavé sledovat kam se ESPHome posune jelikož se stal nedávno součástí teamu pracující na HomeAssistantovi.