Ú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)
- měřáky 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 sensor můžeme přidat buď přes UI:
V menu Nastavení ▸ Integrace ▸ Přidat Integraci
A nebo můžeme pro konfiguraci použít 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. Měřič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 měřič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
Máme dvě možnosti konfigurace – přes UI a nebo přes YAML. UI konfigurace by měla být dostačná a preferovaná pro většinu případů, nicméně YAML poskytuje rozšířenější možnosti a použijeme ji tak pokud nám UI nestačí.
UI konfigurace
Přidání nového najdeme v Nastavení ▸ Zařízení a služby ▸ Pomocníci ▸ Vytvořit pomocníka.
- jméno (name) – pojmenování měřiče
- vstupní senzor (input sensor) – senzorová entita v kWh použitá pro měření
- cyklus vynulování měřiče (meter reset cycle) – perioda vynulování měřiče, tj. například pokud chceme denní spotřebu nastavíme na Denně
- posun vynulování měřiče (meter reset offset ) – pokud potřebujeme, můžeme posunout resetování měřiče ve dnech
- podporované tarify (supported tariffs) – seznam tarifů, které chceme použít pro měřič
- čistá spotřeba (net consumption) – pokud je zapnuto pak je může měřič jak zvyšovat tak snižovat
- rozdílové hodnoty (delta values) – pokud je zapnuto, očekáváme na vstupu pouze rozdílové hodnoty od posledního měření
⚠️ Pokud vytvoříte měřák přes UI pak jednotlivé entity budou mít vygenerované ID podle nastavení pole jméno, tj. např. Měšíční spotřeba ▸ select.mesicni_spotreba
.
V případě příkladu výše se pak po odeslání v HomeAssistantovi vytvoří tři nové entity – jedna obsahující aktuálně vybraný tarif a další dvě s měřáky pro každý z tarifů.
YAML konfigurace
Do hlavního konfiguračního soubor configuration.yaml
přidáme:
utility_meter:
monthly_energy:
source: sensor.energy_in_kwh
cycle: monthly
Jak vidíme v základu budeme potřebovat pouze dva parametry – zdroj, což může být přímo senzorová entita v kWh, a nebo použijeme výstup z předchozího Riemannova součtu a délka 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 měřáky do dvou skupin. Konfigurace pak bude obsahovat navíc sekci tariffs
:
utility_meter:
monthly_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
a zároveň entity s aktuálním tarifem a možností přepínání mezi nimi, např. select.monthly_energy
.
Nastavení přepínání tarifů
Pokud jsme si vytvořili měřák s tarify pak budeme potřebovat mezi tarify přepínat. To asi nebudeme chtít dělat ručně a pak si na to bude potřeba připravit automatizaci. Pokud tarify nepotřebujete, tak můžete následující část přeskočit.
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'
variables:
tariff: "vt"
- platform: time
at: '21:00:00'
variables:
tariff: "nt"
action:
- service: select.select_option
target:
entity_id: select.monthly_energy
data:
option: "{{ tariff }}"
Bohužel díky použití variables u spouštěčů není v aktuální verzi možné vytvořit automatizaci plně přes UI, ale můžete použít editaci v YAML režimu.
Pokud je vše nastaveno správně, měli byste v entitě Měsíční spotřeba vidět přepínání tarifů pomocí automatizace:
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 template typu senzor:
template:
- sensor:
- name: "Monthly energy price"
unit_of_measurement: "Kč"
state: "{{ (states('sensor.monthly_energy') | float * <cenaZaKwh>) | round(2) }}"
… hodnotu <cenaZaKwh>
nahraďte vaší cenou za kWh.
Jakým zařízením měřit spotřebu
Výše jsme si popsali jak v HomeAssistantovi nastavit měřáky spotřeby energie a předpokládali jsme, že na vstupu už máme nějaká data a ty můžeme získat z všemožných produktů.
My si v tomto článku ukážeme jen malý vzorek těch, které používám nejvíce.
WiFi měření spotřeby pomocí Shelly přímo na drátu
První produkt, který si v rychlosti ukážeme je Shelly EM, který umí měřit spotřebu pomocí svorky kolem drátu. Je tak ideální zejména na hlavním přívodu v rozvaděči, kdy si takto můžeme monitorovat spotřebu všech okruhů/spotřebičů dohromady.
Shelly EM
WiFi měřák spotřeby a spínač pro elektroinstalace s až dvěmi nezávislými senzory.
Kromě samotného Shelly EM budeme potřebovat ještě sondu. Tu můžeme připojit pouze jednu a nebo dvě
Integrace Shelly je zpravidla velmi jednodouchá, jelikož by měla zafungovat automatická detekce nového zařízení v HomeAssistantovi. Pokud produkt z nějakého důvodu nevidíte je možné je přidat ručně pomocí integrace Shelly
V HomeAssistentovi pak máte ke každé svorce hned několik entit
Zigbee Zásuvka připárována do deCONZu
Jako ukázku si dáme Zigbee zásuvku od firmy BlitzWolf s označením BW-SPH16, 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č:
template:
- sensor:
- name: "<Název> monthly energy price"
unit_of_measurement: "Kč"
state: "{{ (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 – Instalace HomeAsisstent
- 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ů
- 27. část – integrace fotovoltaiky Growatt
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.