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.

Ú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

1 comment

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

%d bloggers like this: