Pengukur gas di Home Assistant tanpa besi solder

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 , ( ) , .





( ) ( ) .








All Articles