Русский
Русский
English
Статистика
Реклама

Cчетчик газа в Home Assistant без паяльника

Не так давно мне пришел счёт за газ от которого стало не по себе, и я решил интегрировать обычный счетчик газа в свой умный дом на базе Raspberry Pi + Home Assistant, чтобы прогнозировать стоимость расходов и получать предупреждения сразу же как только расход начинает превышать ожидания.

Первым делом я полез на Хабр, и к моему удивлению, среди не малого количества статей о том как считывать показания счетчиков, и даже пары статей непосредственно о снятии показаний со счетчика газа, ни в одной из них я не нашел того что искал.

Есть довольно интересная статья 2014 года об оптическом снятии показаний с любого счетчика с помощью смартфона, но в ней ни слова ни о Home Assistant вообще ни о его компоненте для оптического распознавания счетчиков в частности.

Есть статья 2018 года об универсальном недорогом устройстве для оптического снятия показаний с любого счетчика, которое я на тот момент был бы рад купить, но в свободную продажу оно до сих пор не попало.

Читая эти и другие статьи (например статью 2018 года про Вотериус, или статью 2020 года Умная хрущёвка на максималках) я понял, что счетчики делятся не а два поколения (offline и online), а на три. Помимо 3-го поколения счетчиков, которое умеет отправлять показания счетчика куда надо, есть еще 2-е, которое само передавать данные по сети не умеет, но снабжено передатчиком импульсов (оптических или магнитных), позволяющим подключить к счетчику модуль, который эти импульсы считывает и передает дальше.

Погуглив свой счетчик газа (им оказался BK-G4) я с радостью обнаружил не только то, что генератор магнитных импульсов в него встроен, но и даже то, что уже есть успешные примеры его интеграции в Home Assistant. Однако перед тем как заказывать специализированный датчик импульсов IN-Z61 (1640р с доставкой), плату esp8266 (788р с доставкой), паяльник, олово, канифоль, ждать пока все это приедет, а потом канифолиться с этим конструктором я решил проверить гипотезу, нельзя ли решить задачу существенно проще и дешевле.

Удача улыбнулась мне, и вместо недели ожидания и нескольких тысяч расходов, я в тот же день интегрировал счетчик в Home Assistant обычным датчиком открытия двери Xiaomi, горсть которых когда-то приобрел на Авито по 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:    - singlegas_daily:  source: sensor.gas_counter_sensor  cycle: daily  tariffs:    - singlegas_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

После перезагрузки Home Assistant остаётся только ввести в систему текущее показание счетчика

Источник: habr.com
К списку статей
Опубликовано: 16.02.2021 20:15:11
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Умный дом

Интернет вещей

Diy или сделай сам

Счетчики

Учет энергоресурсов

Dyi

Жкх

Home assistant

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru