[Умный дом, Интернет вещей, DIY или Сделай сам] Cчетчик газа в Home Assistant без паяльника
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Не так давно мне пришел счёт за газ от которого стало не по себе, и я решил интегрировать обычный счетчик газа в свой умный дом на базе 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:
- 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
После перезагрузки Home Assistant остаётся только ввести в систему текущее показание счетчика
===========
Источник:
habr.com
===========
Похожие новости:
- [Развитие стартапа, Патентование, Бизнес-модели, Смартфоны, Умный дом] Nothing Technologies выкупила активы бренда смартфонов Essential
- [Алгоритмы, Машинное обучение, Искусственный интеллект, DIY или Сделай сам] Приложение BrowZen отслеживает состояние пользователей по лицам при просмотре сайтов
- [Creative Commons, FPGA, DIY или Сделай сам] Koyaanisqtsi: The WYSIWYG-style byte-code CPU
- [Веб-дизайн, Разработка под e-commerce, Дизайн, Интернет вещей, Подготовка технической документации] Интернет-магазин. Создание, набитые шишки и полезные выводы
- [Гаджеты, Умный дом, Интернет вещей, Лайфхаки для гиков] Perenio: IoT-сказку сделать былью
- [DIY или Сделай сам, Звук] DIY наушники. Как, а главное, зачем
- [Программирование микроконтроллеров, Разработка для интернета вещей, Разработка под Arduino, Компьютерное железо, DIY или Сделай сам] ESP32-C3: первое знакомство. Заменим ESP8266?
- [Копирайт, Киберпанк, DIY или Сделай сам, Транспорт] Фермеры в США вынуждены взламывать тракторы, чтобы просто починить их
- [Разработка робототехники, Робототехника, DIY или Сделай сам] Собираем свой маленький беспилотник
- [DIY или Сделай сам] Переделка CNC 3018 Pro на рельсы. Личный опыт. Часть 1
Теги для поиска: #_umnyj_dom (Умный дом), #_internet_veschej (Интернет вещей), #_diy_ili_sdelaj_sam (DIY или Сделай сам), #_schetchiki (счетчики), #_umnyj_dom (умный дом), #_uchet_energoresursov (учет энергоресурсов), #_dyi, #_internet_veschej (интернет вещей), #_zhkh (жкх), #_home_assistant, #_umnyj_dom (
Умный дом
), #_internet_veschej (
Интернет вещей
), #_diy_ili_sdelaj_sam (
DIY или Сделай сам
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 15:57
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Не так давно мне пришел счёт за газ от которого стало не по себе, и я решил интегрировать обычный счетчик газа в свой умный дом на базе 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 - 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 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 =========== Источник: habr.com =========== Похожие новости:
Умный дом ), #_internet_veschej ( Интернет вещей ), #_diy_ili_sdelaj_sam ( DIY или Сделай сам ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 15:57
Часовой пояс: UTC + 5