Utility Meter - Jak přepínat entiy spotřeby el. energie na Nízký a Vysoký tarif?

Ucelené projekty, návody a postupy.
Odpovědět
Uživatelský avatar
Lion®
Administrátor fóra
Administrátor fóra
Příspěvky: 553
Registrován: 28. září 2020, 14:07
Bydliště: podkrkonoší
Dal poděkování: 62 poděkování
Dostal poděkování: 46 poděkování
Kontaktovat uživatele:

Utility Meter - Jak přepínat entiy spotřeby el. energie na Nízký a Vysoký tarif?

Příspěvek od Lion® »

Máte senzory spotřeby el. energie a potřebujete u nich přepínat Nízký tarif (dále jen NT) a Vysoký tarif (dále jen VT)?

Za tím účelem lze použít integraci s názvem Utilty Meter. Potřebujeme jen senzor stavu HDO (Hromadné Dálkové Ovládání).
Ten můžeme vytvořit například pomocí nejrůznějších doplňků, které využívají plánovaných spínacích času většiny distribučních společnosti. Těmi se ovšem zabývat nechci a nebudu, neboť jak jsem uvedl, jde o časy plánované nikoliv však skutečné.
Chceme-li měřit spotřebu rozdělenou do sazeb co nejpřesněji nezbývá než monitorovat skutečný stav HDO. Jak?
Někdo využívá dveřní senzory, já použil Sonoff MINI, kdy signál HDO spíná cívku relé a spínací kontakt relé ovládá Sonoff mini.
Podrobnosti naleznete zde.

Takže máme entitu spotřeby a entitu obsahující informací o stavu HDO.
A to nám stačí.

Do config.yaml tedy vložíme následující kód ve kterém upravte název vlastní entity měření, cyklus měření (hourly, daily, monthly, yourly), a můžete si pojmenovat tarify (taryffs:) podle svého:

Kód: Vybrat vše

############################################################################## 
## HDO tarify https://www.home-assistant.io/integrations/utility_meter/    ###
##############################################################################
utility_meter:
  nazev_entity_rocni_spotreba:
    source: sensor.vas_senzor_mereni_energie
    cycle: yearly
    # offset: (0 minutes, 0h00 hours, Monday, day 1, January)
    net_consumption: true
    tariffs:
        - NT_nizky_tarif
        - VT_vysoky_tarif
Pokud potřebujete přepínat NT a VT například pro každou fázi (L1, L2, L3) zapište předchozí kód pro každou fázi (nebo jinou entitu) zvlášť.
Například:

Kód: Vybrat vše

############################################################################## 
## HDO tarify https://www.home-assistant.io/integrations/utility_meter/    ###
##############################################################################
utility_meter:
  rocni_spotreba_L1:
    source: sensor.vas_senzor_mereni_energie_L1
    cycle: yearly
    # offset: (0 minutes, 0h00 hours, Monday, day 1, January)
    net_consumption: true
    tariffs:
        - NT_nizky_tarif
        - VT_vysoky_tarif
 #
  rocni_spotreba_L2:
    source: sensor.vas_senzor_mereni_energie_L2
    cycle: yearly
    # offset: (0 minutes, 0h00 hours, Monday, day 1, January)
    net_consumption: true
    tariffs:
        - NT_nizky_tarif
        - VT_vysoky_tarif
#
  rocni_spotreba_L3:
    source: sensor.vas_senzor_mereni_energie_L3
    cycle: yearly
    # offset: (0 minutes, 0h00 hours, Monday, day 1, January)
    net_consumption: true
    tariffs:
        - NT_nizky_tarif
        - VT_vysoky_tarif
Chcete-li měřit spotřebu el. energie a máte dvou sazbový elektroměr od dodavatele el. energie, měli by jste pro každou entitu provádějící měření spotřeby el. energie pomocí Utility Meteru vytvořit takto další entitu a dva senzory

Tak vytvoříte vlastně 9 entit (pro každou fázi tři):

Kód: Vybrat vše

sensor.vas_senzor_mereni_energie_L1_VT_vysoky_tarif
sensor.vas_senzor_mereni_energie_L1_NT_nizky_tarif
a
utility_meter.rocni_spotreba_L1

Kód: Vybrat vše

sensor.vas_senzor_mereni_energie_L2_VT_vysoky_tarif
sensor.vas_senzor_mereni_energie_L2_NT_nizky_tarif
a
utility_meter.rocni_spotreba_L2

Kód: Vybrat vše

sensor.vas_senzor_mereni_energie_L3_VT_vysoky_tarif
sensor.vas_senzor_mereni_energie_L3_NT_nizky_tarif
a
utility_meter.rocni_spotreba_L3
Entity utility_meter.rocni_spotreba_L1,L2,L3 slouží k samotnému přepínání tarifu a volají se službami Utility Meter(u) v automatizaci zajišťující přepnutí sazby tarifu.

Zbývá tedy vytvořit automatizaci která na základě přepnutí stavu senzoru HDO tarify VT a NT bude přepínat:

Kód: Vybrat vše

alias: ' Přepínání HDO - VT a NT (Duplikát)'
description: ''
mode: single
trigger:
  - platform: state
    entity_id: switch.hdo_indikator
  - platform: time_pattern
    minutes: /15
condition: []
action:
  - choose:
      - conditions:
          - condition: state
            entity_id: switch.hdo_indikator
            state: 'on'
        sequence:
          - service: utility_meter.select_tariff
            target:
              entity_id:
                - utility_meter.rocni_spotreba_L1
                - utility_meter.rocni_spotreba_L2
                - utility_meter.rocni_spotreba_L3
            data:
              tariff: NT_nizky_tarif
      - conditions:
          - condition: state
            entity_id: switch.hdo_indikator
            state: 'off'
        sequence:
          - service: utility_meter.select_tariff
            target:
              entity_id:
                - utility_meter.rocni_spotreba_L1
                - utility_meter.rocni_spotreba_L2
                - utility_meter.rocni_spotreba_L3
            data:
              tariff: VT_vysoky_tarif
    default: []

Pokud Vás zajímá třeba i měsíční spotřeba, je nutné pro danou entitu(y) udělat totéž ještě jednou a v nastavení Utility Meter(u) zmenit parametery názvu a cycle, například:

Kód: Vybrat vše

utility_meter:
  mesicni_spotreba_L1:
    source: sensor.vas_senzor_mereni_energie_L1
    cycle: monthly # další možnosti jsou: quarter-hourly, hourly, daily, weekly, , bimonthly, quarterly and yearly
    # offset: (0 minutes, 0h00 hours, Monday, day 1, January)
    net_consumption: true
    tariffs:
        - NT_nizky_tarif
        - VT_vysoky_tarif


Zbývá už jen vytvořit senzory roční (měsíční - nebo jiné) spotřeby pro vysoký a pro nízký tarif protože nás zřejmě zajímá i celková spotřeba ze všech fází nízkého i vysokého tarifu, takže potřebujeme sečíst L1_NT+L2_NT+L3_NT a v druhém senzoru L1-VT+L2_VT+L3_VT.
Jdeme na to:

Kód: Vybrat vše

sensor:
  - platform: template
    sensors:
      rocni_spotreba_nt:
        friendly_name: Roční spotřeba el. NT
        unit_of_measurement: kWh
        value_template: "{{ states('sensor.vas_senzor_mereni_energie_L1_NT_nizky_tarif')|float + states('sensor.vas_senzor_mereni_energie_L2_NT_nizky_tarif')|float + states('sensor.vas_senzor_mereni_energie_L3_NT_nizky_tarif')|float }}"
      rocni_spotreba_vt:
        friendly_name: Roční spotřeba el. VT
        unit_of_measurement: kWh
        value_template: "{{ states('sensor.vas_senzor_mereni_energie_L1_VT_vysoky_tarif')|float + states('sensor.vas_senzor_mereni_energie_L2_VT_vysoky_tarif')|float + states('sensor.vas_senzor_mereni_energie_L3_VT_vysoky_tarif')|float }}" 
Tak dostaneme dva senzory

Kód: Vybrat vše

rocni_spotreba_nt
a
rocni_spotreba_vt
které nám budou ukazovat celkovou spotřebu vysokého i nízkého tarifu měřených entit.
________________
🍻 Jdeme na pivo?
Oficiální sada s Raspberry Pi 4B/4GB, černá +Argon NEO Raspberry Pi 4 Case
Patriot Burst 2.5" SATA SSD 120GB + AXAGON EE25-XA6 ALINE box
Home Assistant, Sonoff, Tasmota, Shelly

Galerie realizací

Uživatelský avatar
Lion®
Administrátor fóra
Administrátor fóra
Příspěvky: 553
Registrován: 28. září 2020, 14:07
Bydliště: podkrkonoší
Dal poděkování: 62 poděkování
Dostal poděkování: 46 poděkování
Kontaktovat uživatele:

Re: Jak přepínat entiy spotřeby el. energie na Nízký a Vysoký tarif?

Příspěvek od Lion® »

Určitě jste si všimli nové integrace Home Assistant - Energie.
Bohužel zatím ani ta se neobejde bez Utility Meter(u) neboť neumí počítat sazby - tarify, resp. počítat je umí, ale neumí je přepínat.

Proto jsem prošel úvodní příspěvek a doplnil i poopravil jej.

Může se Vám stát, že po konfiguraci Utility Meter-u svoje Entity v "Energii" stejně neuvidíte - je to problém atributů těchto entit.
energy01.GIF
energy02.GIF
________________
🍻 Jdeme na pivo?
Oficiální sada s Raspberry Pi 4B/4GB, černá +Argon NEO Raspberry Pi 4 Case
Patriot Burst 2.5" SATA SSD 120GB + AXAGON EE25-XA6 ALINE box
Home Assistant, Sonoff, Tasmota, Shelly

Galerie realizací

Uživatelský avatar
Pete30
Moderátor
Moderátor
Příspěvky: 889
Registrován: 30. září 2020, 20:33
Dal poděkování: 47 poděkování
Dostal poděkování: 88 poděkování

Re: Utilti Meter - Jak přepínat entiy spotřeby el. energie na Nízký a Vysoký tarif?

Příspěvek od Pete30 »

Důležité aby se senzor měření zobrazil v energetickém panelu je zda má tyto atributy:

Kód: Vybrat vše

state_class: total_increasing
unit_of_measurement: kWh
device_class: energy
Pokud nejsem přítomen tak jsem na rybách ;)

Uživatelský avatar
Lion®
Administrátor fóra
Administrátor fóra
Příspěvky: 553
Registrován: 28. září 2020, 14:07
Bydliště: podkrkonoší
Dal poděkování: 62 poděkování
Dostal poděkování: 46 poděkování
Kontaktovat uživatele:

Re: Utility Meter - Jak přepínat entiy spotřeby el. energie na Nízký a Vysoký tarif?

Příspěvek od Lion® »

S laskavým svolením autora přináším z Fcb další variantu konfigurace Utility Meter.
Následující označený text je autorova citace:
Na začátku mám sensory celkové spotřeby z jednotlivých měřidel L1/L2/L3. Ty spojím v novém template sensoru u kterého je definován availability_template viz obrázek. Jen pozor, zde jsem jednořádkový zápis template rozdělil kvůli screenshotu do více řádků.
umjh1.jpg

Kód: Vybrat vše

sensor:
  - platform: template
    sensors:
      consumption_total:
        unique_id: energy.consumption_total
        friendly_name: "Celková spotřeba"
        value_template: "{{ states('sensor.total_energy_meter_l1') | float + states('sensor.total_energy_meter_l2') | float + states('sensor.total_energy_meter_l3') | float }}"
        availability_template: "{{ states('sensor.total_energy_meter_l1') not in ['unknown', 'unavailable', 'none'] and states('sensor.total_energy_meter_l2') not in ['unknown', 'unavailable', 'none'] and states('sensor.power_L3') not in ['unknown', 'unavailable', 'none']  }}"
        unit_of_measurement: "kWh"
        device_class: "energy"
A v definici Utility Meteru pak tento sensor použiji s rozlišením na NT/VT. Tím pak vzniknou podružné sensory energy_hourly_nt/energy_hourly_vt atd.
umjh2.jpg

Kód: Vybrat vše

utility_meter:
  energy_quarterhourly:
    source: energy.consumption_total
    cycle: quarter_hourly
    tarifss:
     - VT
     - NT

  energy_hourly:
    source: energy.consumption_total
    cycle: hourly
    tarifss:
     - VT
     - NT
     
  energy_daily:
    source: energy.consumption_total
    cycle: daily
    tarifss:
     - VT
     - NT
     
  energy_weekly:
    source: energy.consumption_total
    cycle: weekly
    tarifss:
     - VT
     - NT     

  energy_monthly:
    source: energy.consumption_total
    cycle: monthly
    tarifss:
     - VT
     - NT 
     
  energy_yearly:
    source: energy.consumption_total
    cycle: yearly
    tarifss:
     - VT
     - NT   
Vytvořil jsem si skupinu UM sensorů, abych je mohl pro přepínání tarifů "oslovovat" najednou.
umjh3.jpg
umjh3.jpg (18.87 KiB) Zobrazeno 423 x

Kód: Vybrat vše

group:     
  energy_meters:
  name: Elektroměry
  entities:
    - utility_meter.energy_quarterhourly
    - utility_meter.energy_hourly
    - utility_meter.energy_daily
    - utility_meter.energy_weekly
    - utility_meter.monthly
    - utility_meter.yearly
A tu pak automatizací na základě binárního sensoru přepínám.
umjh4.jpg

Kód: Vybrat vše

automation:    
  - alias: Přepínání NT - VT
    description: ''
    trigger:
      - platform: state
        entity_id: binary_sensor.hdo
    condition: []
    action:
      - choose:
          - conditions:
              - condition: state
                entity_id: binary_sensor.hdo
                state: 'on'
            sequence:
              - service: utility_meter.select_tariff
                target:
                  entity_id: group.energy_meters
                data:
                  tariff: NT
          - conditions:
              - condition: state
                entity_id: binary_sensor.hdo
                state: 'off'
            sequence:
              - service: utility_meter.select_tariff
                data:
                  tariff: VT
                target:
                  entity_id: group.energy_meters
        default: []
    mode: single

Kód: Vybrat vše

automation:
  - alias: Tarif po startu HA
    description: ''
    trigger:
      - platform: homeassistant
        event: start
    condition: []
    action:
      - service: utility_meter.select_tariff
        data:
          tariff: '{% if is_state("binary_sensor.hdo","on") %} NT {% else %} VT {% endif %}'
        target:
          entity_id:
          - group.energy_meters
    mode: single 
HA package:
IntEx_energy.yaml
(2.89 KiB) Staženo 7 x
Stejně je ale zvláštní, že v HA vymýšlejí novou funcionalitu v podobě toho Energy panelu (nazval bych to jako "znovuvynalezení kola"), místo aby dotáhli funcionality stávající, po kterých spousta lidí dlouho volá (naoříklad zmíněný Recorder a jeho prakticky mizivá možnost konfigurace). Ostatní si pak musí poradit třetí stranou alternativní databází a externím rozhraním (InfluxDB/Grafana), které už pak s HA nemá skoro nic společného.
________________
🍻 Jdeme na pivo?
Oficiální sada s Raspberry Pi 4B/4GB, černá +Argon NEO Raspberry Pi 4 Case
Patriot Burst 2.5" SATA SSD 120GB + AXAGON EE25-XA6 ALINE box
Home Assistant, Sonoff, Tasmota, Shelly

Galerie realizací

Uživatelský avatar
IntEx
Nováček na fóru
Nováček na fóru
Příspěvky: 1
Registrován: 19. září 2021, 19:58
Dal poděkování: 1 poděkování
Dostal poděkování: 1 poděkování

Re: Utility Meter - Jak přepínat entiy spotřeby el. energie na Nízký a Vysoký tarif?

Příspěvek od IntEx »

@Lion: Díky za přepis do ucelené formy, obvykle jsem na dokumentaci strašně líný. :D

kiklhorn
Moderátor
Moderátor
Příspěvky: 154
Registrován: 03. červenec 2021, 18:35
Dal poděkování: 23 poděkování
Dostal poděkování: 40 poděkování

Re: Utility Meter - Jak přepínat entiy spotřeby el. energie na Nízký a Vysoký tarif?

Příspěvek od kiklhorn »

Měření energie, jednofázový přívod, VT a NT pouze pomocí shelly em
Dva proudové snímače.
Kanál jedna je připojen na ovládacím drátu cívky stykače (spíná bojler) a při NT naměřím odběr tohoto stykače ( >1W ) a na základě něj přepínám tarif.
Kanál dva je připojen na přívodu k jističům.


Jak na packages:
V configuration.yaml
HApackages.jpg
a vytvořena složka packages:
StudioCode.jpg
Do ní vložen/vloženy soubory yaml s package (kompletní kombinace senzorů, automatizací atd.)
Pokud je budete sdílet tak pravým tlačítkem na soubor a download. Neztratí se tak formátování. (Jeden z důvodů proč nefunguje ten soubor na trojfáz výše)
download.jpg

V tomto intex_energy package (příloha) jsem použil senzory z shelly em, s názvy:
sensor.2_privod_channel_2_energy (měřicí cívka na přívodu od hlavního jističe)
sensor.2_privod_channel_1_power (měřicí cívka na přívodu k ovládací cívce stykače)

změňte si je na svoje, všechny výskyty, nic jiného není třeba měnit.

Do panelu energií přidejte:
energie.jpg
Přílohy
intex_energy.yaml
(3.18 KiB) Staženo 2 x
Vše co si přinesu domů je buď Shelly, nebo to skončí buď pod ESPhome nebo pod Zigbee2mqtt.
Dlouholetý ajťák co pamatuje BBS a OS/2 Warp a je mu jedno o jaký systém nebo síťařinu běží, bývalý a znovu začínající elektronik, 50/1978 §8.

Odpovědět