blog.vyoralek.cz

HomeAssistant #20 – Měření spotřeby

V dnešním už 20 díle seriálu k HA si ukážeme jak pracovat se spotřebou zařízení a jak si definovat hodinové, denní a měsíční čítače.

🎙 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

  1. aktuální spotřeba (current power)
  2. spotřebovaná energie (energy spend)
  3. čítače spotřeby (consumption meters) – hodinnový, denní, měsíční atp.
  4. 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.

Čtyři metody (zleva) – pravý, minimální, maximální a levý

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.

$14 (cca. 305Kč) 1ks

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.

BlitzWolf BW-SHP13

Zigbee 3.0 chytrá zásuvka s měřením spotřeby

$14 (cca. 305Kč) 1ks

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. částIntegrace Sonoff s firmware Sonoff-Tasmota
  • 3. částIntegrace Homekit
  • 4. částIntegrace Sonoff s firmware Sonoff-Tasmota – 2 část
  • 5. částIntegrace s Wemos D1 a senzory teploty
  • 6. částIntegrace Sonoff s firmware ESPHome
  • 7. částIntegrace Sonoff POW s firmware ESPHome
  • 8. částIntegrace LED Magic Home s firmware ESPHome
  • 9. částIntegrace 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)

7 comments

Leave a Reply

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..

  • 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.

  • 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.

  • 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.

Odebírejte blog emailem

Mějte ihned informaci o novém článku ze světa technologií.

%d bloggers like this: