Zainspirowany możliwością dodania zużycia gazu do dodatku Energy oraz licznymi wpisami na innych forach między innymi tu oraz tu zrobiłem zdalny odczyt licznik gazu w oparciu komunikacje zigbee.
Temat liczników w HA za pomocą Tamsoty już fajnie opisał kiedyś @Cino111 więc część informacji będzie się powtarzać.
Generalnie temat banalnie prosty.
Proponuje, żeby przed podjęciem tematu sprawdzić zasięg zigbee w miejscu gdzie ma być umieszczony nasz licznik ale kabel nadajnika NI-3 ma 2m (można go jeszcze przedłużyć) więc można pokombinować pod swoje potrzeby.
Hardware:
-
Gazomierz Metrix G4 UGT - można wykorzystać każdy inny licznik który umożliwia pomiar za pomocą odbiornika impulsów.
Wyżej wymieniony liczy 1 imp = 0,01 m³ -
Nadajnik impulsów NI-3 - jest nadajnik dedykowany to gazomierza jak wyżej. Koszt 62zł.
-
Sonoff SNZB-04. Koszt 34zł.
-
Bateria CR123 która ma 1400mAh czyli 7 razy więcej niż oryginalna bateria z Sonoffa CR2032. Koszt 8zł. - edit 11.08.2024 u mnie wytrzymała 33 miesiące
-
Koszyk na baterie CR123. Koszt 3zł.
Wymiana baterii nie jest konieczna ale zależało mi na długiej żywotności a Sonoffa i tak musimy otworzyć więc szkoda było nie wymienić.
Wykonanie:
-
Dodajemy Sonoffa do bramki, z powstałych nowych encji będzie potrzebna nam oczywiście binary_sensor, u mnie
binary_sensor.gaz_contact
-
Rozbieramy Sonoffa, wyjmujemy baterie i wylutowujemy wewnętrzny kontaktron:
-
W miejsce usuniętego kontaktronu wlutowujemy brązowy i zielony kabel od Nadajnik impulsów NI-3
-
Lutujemy kable zasilające z koszyka, wkładamy nową baterie CR2032 i całość wrzucamy w puszkę.
-
Montaż nadajnika w liczniku wg instrukcji producenta:
DTR-NI-3 _2 (apator.com)
Dodanie do bramki:
-
Tworzymy pomocnika typu licznik:
gdzie wartość początkowa to nasz aktualny stan licznika gazu pomnożony razy 100. -
dodajemy automatyzacje:
alias: Gas Counting
description: ''
trigger:
- platform: state
entity_id: binary_sensor.gaz_contact
from: 'off'
to: 'on'
condition: []
action:
- service: counter.increment
target:
entity_id: counter.gazomierz
mode: single
gdzie
entity_id: binary_sensor.gaz_contact
- encja z Sonoff SNZB-04 (pkt1 hadware)
entity_id: counter.gazomierz
- utworzony krok wcześniej pomocnik (pkt1)
- Tworzymy sensor który będzie pokazywał aktualny stan licznika gazu:
- platform: template
sensors:
gas_meter:
friendly_name: "Stan Licznika Gazu"
unit_of_measurement: 'm³'
value_template: "{{ (states('counter.gazomierz')|float(2) * 0.01)| round(2) }}"
icon_template: 'mdi:fire'
device_class: gas
gdzie counter.gazomierz
utworzony w pkt1 pomocnik
Sprawdzamy konfigurację i jak wszystko jest OK to ponownie uruchamiamy bramkę.
Dodajemy nowy powstał sensor który pokazuję nam aktualny stan naszego licznika gazu wyrażony w m3:
Działa to naprawdę bardzo dokładnie i ja u siebie póki co nie widzę różnicy od wskazań na liczniku.
Następnie w ustawieniach DOSTOSOWYWANIE, dodajemy dla naszego sensor.gas_meter: dwa wpisy
state_class: measurement
last_reset: ‘1970-01-01T00:00:00+00:00
dzięki temu sensor.gas_meter
możemy dodać do zakładki Energia:
Możemy oczywiście wykorzystać integracje utility meter i wykonać:
żeby to zrobić należy w utility_meter.yaml dodać wpis:
dzienne_zuzycie_gazu:
source: sensor.gas_meter
cycle: daily
name: Dzienne Zuzycie Gazu
tygodniowe_zuzycie_gazu:
source: sensor.gas_meter
cycle: weekly
name: Tygodniowe Zuzycie Gazu
miesieczne_zuzycie_gazu:
source: sensor.gas_meter
cycle: monthly
name: Miesieczne Zuzycie Gazu
roczne_zuzycie_gazu:
source: sensor.gas_meter
cycle: yearly
name: Roczne Zuzycie Gazu
EDIT
Możemy również zrobić encje która wyrazi zużycie w kWh, w pliku sensor.yaml dodajemy wpis:
- platform: template
sensors:
gas_meter_kwh:
friendly_name: "Stan Zuzycie Energii Gazu"
unit_of_measurement: 'kWh'
value_template: "{{ (states('sensor.gas_meter')|float(2) * 11.37)| round(2) }}"
icon_template: 'mdi:fire'
device_class: gas
gdzie 11,37 to współczynnik który pobieramy z naszej faktury za gaz, dla każdego miesiąca inny, ja zrobiłem średnią z ostatniego roku
możemy również zrobić encje która pokaże dzienne, tygodniowe, miesięczne i roczne koszty gazu, w pliku utility_meter.yaml dodajemy wpis:
dzienny_koszt_zuzycia_gaz_pln:
source: sensor.gas_meter_cost
cycle: daily
name: Dzienny Koszt Zuzycie Gaz
tygodniowy_koszt_zuzycia_gaz_pln:
source: sensor.gas_meter_cost
cycle: weekly
name: Tygodniowy Koszt Zuzycie Gaz
miesieczny_koszt_zuzycie_gaz_pln:
source: sensor.gas_meter_cost
cycle: monthly
name: Miesieczny Koszt Zuzycia Gaz
roczny_koszt_zuzycia_gaz_pln:
source: sensor.gas_meter_cost
cycle: yearly
name: Roczny Koszt Zuzycia Gaz
gdzie sensor.gas_meter_cost
to encja powstała po dodaniu do ENERGY stałej ceny gazu:
możemy również śledzić na bieżąco nasz miesięczny rachunek za gaz, w pliku sensor.yaml dodajemy wpis:
- platform: template
sensors:
gas_meter_miesieczny_rachunek_cost_pln:
friendly_name: "Miesieczny rachunek za gaz"
unit_of_measurement: 'PLN'
value_template: "{{ (states('sensor.miesieczny_koszt_zuzycia_gaz')|float(2) + 48.05)| round(2) }}"
device_class: monetary
gdzie:
48.05
to miesięczne stałe opłaty za gaz, u mnie 48,05zł miesięcznie - sprawdź na swojej fakturze jakie masz
sensor.miesieczny_koszt_zuzycia_gaz
- powstały wcześniej sensor z utility_meter.yaml