Belum lama ini, saya menerima tagihan gas yang membuat saya merasa tidak nyaman, dan saya memutuskan untuk mengintegrasikan meteran gas biasa ke dalam rumah pintar saya berdasarkan Raspberry Pi + Home Assistant untuk memprediksi biaya pengeluaran dan menerima peringatan segera karena konsumsi melebihi ekspektasi.
Pertama-tama, saya naik ke Habr, dan yang mengejutkan saya, di antara banyak artikel tentang cara membaca pembacaan meteran, dan bahkan beberapa artikel langsung tentang mengambil bacaan dari meteran gas, saya tidak menemukan apa saya sebenarnya. mencari di salah satu dari mereka.
Ada artikel yang agak menarik dari tahun 2014 tentang pembacaan optik dari meteran apa pun menggunakan smartphone , tetapi tidak ada kabar sama sekali tentang Asisten Rumah, atau tentang komponennya untuk pengenalan optik meter secara khusus.
Ada artikel dari 2018 tentang perangkat murah universal untuk pembacaan optik dari meteran apa pun , yang akan saya beli dengan senang hati saat itu, tetapi masih belum dijual gratis.
Membaca ini dan artikel lainnya (misalnya, artikel 2018 tentang Waterius , atau artikel 2020 Smart Khrushchev dengan kecepatan maksimum ), saya menyadari bahwa penghitung tidak dibagi menjadi dua generasi (offline dan online), tetapi menjadi tiga. Selain meter generasi ke-3, yang mampu mengirim pembacaan meter jika diperlukan, ada juga generasi ke-2 yang tidak mengetahui cara mengirimkan data melalui jaringan itu sendiri, tetapi dilengkapi dengan pemancar pulsa (optik atau magnet) yang memungkinkan Anda untuk menghubungkan modul ke meteran yang membaca pulsa ini dan meneruskannya.
Googling meteran gas saya (ternyata BK-G4), saya dengan senang hati menemukan tidak hanya generator pulsa magnetik yang terpasang di dalamnya (magnet pada drum orde rendah), tetapi bahkan sudah ada contoh suksesnya integrasi ke Home Assistant .
() IN-Z61 (1640 , ), esp8266 (788 ), , , , , , , .
, , Home Assistant Xiaomi ( MCCGQ01LM), - 600 .
, , . , - AliExpress 20 .
Home Assistant configuration.yaml
counter:
gas_counter:
step: 10
automations.yaml
- id: '1606010744418'
alias: Gas count
description: ''
trigger:
- entity_id: binary_sensor.openclose_gas
platform: state
from: 'on'
to: 'off'
action:
- data:
entity_id:
- counter.gas_counter
service: counter.increment
configuration.yaml utility_meter: !include utility_meter.yaml
, utility_meter.yaml , (, , )
gas_monthly:
source: sensor.gas_counter_sensor
cycle: monthly
tariffs:
- single
gas_daily:
source: sensor.gas_counter_sensor
cycle: daily
tariffs:
- single
gas_hourly:
source: sensor.gas_counter_sensor
cycle: hourly
tariffs:
- single
,
- platform: template
sensors:
gas_counter_sensor:
friendly_name: " "
unit_of_measurement: '3'
value_template: "{{ (states('counter.gas_counter') | float) / 1000 }}"
icon_template: mdi:counter
- platform: template
sensors:
gas_last_month:
friendly_name: " ( )"
unit_of_measurement: '₽'
value_template: "{{ ((state_attr('sensor.gas_monthly_single', 'last_period') | float) / 1000 * 6056.4) | round(2) }}"
icon_template: mdi:cash-100
- platform: template
sensors:
gas_this_month:
friendly_name: " ( )"
unit_of_measurement: '₽'
value_template: "{{ ((states('sensor.gas_monthly_single') | float) / 1000 * 6056.4) | round(2) }}"
icon_template: mdi:cash-100
- platform: template
sensors:
gas_today:
friendly_name: " ()"
unit_of_measurement: '₽'
value_template: "{{ ((states('sensor.gas_daily_single') | float) / 1000 * 6056.4) | round(2) }}"
icon_template: mdi:cash-100
- platform: template
sensors:
gas_yesterday:
friendly_name: " ()"
unit_of_measurement: '₽'
value_template: "{{ ((state_attr('sensor.gas_daily_single', 'last_period') | float) / 1000 * 6056.4) | round(2) }}"
icon_template: mdi:cash-100
- platform: template
sensors:
gas_this_hour:
friendly_name: " ( )"
unit_of_measurement: '₽'
value_template: "{{ ((states('sensor.gas_hourly_single') | float) / 1000 * 6056.4) | round(2) }}"
icon_template: mdi:cash-100
- platform: template
sensors:
gas_last_hour:
friendly_name: " ( )"
unit_of_measurement: '₽'
value_template: "{{ ((state_attr('sensor.gas_hourly_single', 'last_period') | float) / 1000 * 6056.4) | round(2) }}"
icon_template: mdi:cash-100
- platform: template
sensors:
gas_hour_based_monthly_estimate:
friendly_name: " (->)"
unit_of_measurement: '₽'
value_template: "{{ ((state_attr('sensor.gas_hourly_single', 'last_period') | float) / 1000 * 6056.4 * 24 * 30) | int }}"
icon_template: mdi:chart-line-variant
- platform: template
sensors:
gas_day_based_monthly_estimate:
friendly_name: " (->)"
unit_of_measurement: '₽'
value_template: "{{ ((state_attr('sensor.gas_daily_single', 'last_period') | float) / 1000 * 6056.4 * 30) | int }}"
icon_template: mdi:chart-line-variant
SD Home Assistant , Home Assistant , , configuration.yaml
recorder:
exclude:
entities:
- binary_sensor.openclose_gas
Home Assistant
, Home Assistant , ( ) , .
( ) ( ) .