Подключение счётчиков воды Элехант к умному дому OpenHAB

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

6 лет жизни в доме пролетели незаметно и вот пришло время доверять или менять счётчик воды. Поясню, что у меня в доме городской водопровод и канализация, соответственно мне выставляют счета за воду, а объём водоотведения (канализации) считатют равным потреблению воды и так как цены ижевского водоканала растут в последние годы весьма заметно, то я решил воспользоваться вариантом с установкой дополнительного счётчика на воду для полива, которая не учитывается при определении платы за канализацию. Некоторые ради экономии делают отдельные скважины для полива, но я применил передовые технологии полива для сокращения расхода воды именно на полив, да и сам полив у меня регулируется умным домом, так что, потребляемые объёмы невелики (да участок у меня небольшой). Но у меня есть увлажнитель и он распыляет по дому около кубометра воды за сутки и вода эта не попадает в канализацию, а выводится вытяжной вентиляцией на улицу. Фактически я именно ради того что бы не оплачивать канализацию за те объёмы воды, что уходят в воздух и решил поменять схему включения и установить дополнительный счётчик. Водоканал объяснил мне по телефону какая должна быть схема установки счётчиков. Сантехники перепаяли мне трубы изрядно и поставили новые счётчики.

То была присказка, а вот теперь перейду к интересному. 6 лет назад я изучал счётчики и цена на счётчики с выдачей конкретных цифр была заоблачной. Альтернатива была в счётчиках, которые выдавали импульсы. К ним ставился контроллер, который их читал и передавал дальше в умный дом для отображения. Такая система у меня была реализована, но она имела недостатки в лице энергозависимости и необходимости вносить коррекцию в случае если водой пользовались при отсутствии электричества. Но годы прошли и появились бюджетные счётчики которые имеют беспроводной интерфейс BLE который широко распространён среди гаджетов для умного дома. Он отличается от Zigbee простотой реализации и становится всё более популярен. В частности Xiaomi раньше использовавший Zigbee теперь выпускает новые модели устройств с BLE. Ну вот в поисках счётчиков умных в этом году я наткнулся на счётчики Элехант, которые стоят как импульсные счётчики, но при этом данные выдают именно через BLE. Так что я их заказал в Ozon и 4 дня дней забрал в в ближайшем «продуктовом магазине типа Перкрёсток» (там у нас выдача Ozon и постамат Халва куда DPD привозит посылки с Aliexpress). Счётчики стоили по 1 320₽ при том, что цена простейшего счётчика ~600₽, а цена импульсных счётчиков заметно дороже Элехантна.

Счётчики выглядят прикольно, так как у них вместо циферок QR-код для скачивания приложения и номер самого счётчика, а показаний на нём самом посмотреть нельзя! При этом заявлено, что батарейки хватает на 6 лет и в ходе проведения поверки каждые 6 лет нужно менять батарейку. Данные в BLE. Данные в BLE они выдают в поле «manufacturer», то есть данные производителя без расшифровки и разбивки на поля. Я написал в техподдержку производителя с вопросом а нет ли документации по поводу того, что они вещают в эфир. На что мне ответили — «это коммерческая тайна», что было ожидаемо и предельно глупо, конечно, так как поиск выдал, ещё до того как я задал вопрос, несколько реализаций извлечения этих самых данных. Наиболее интересным вариантов и понятным мне оказалась вот эта статья. Оттуда я взял тестовый скрипт и расположение полей, а дальше переписал преобразования в удобном виде прямо в OpenHAB.

Для того что бы получить данные из BLE и отправить их в MQTT и через него в OpenHAB я использую шлюз LUMI европейской версии от Xiaomi с прошивкой OpenWrt где включен BLE (по умолчанию он не используется и интерфейс неактивен). Сразу скажу, что Xiaomi не использует этот интерфейс и предлагает покупать новые модели шлюзов для новых датчиков!!! Такой вот маркетинг!!! Так что, если кто там рассказывает сказки про замедление iPhone лучше почувствуйте как китайцы просто тупо предлагают менять железку из-за того, что софт не хотят исправить свой. Короме самого OpenWrt на шлюз установлен пакет EspruinoHub и Zigbee2MQTT, конечно. Первый отправляет всё полученное из BLE на MQTT брокер и обратно, а второй так же связывает Zigbee в обе стороны.

Получив такую информацию я завожу в OpenHAB счётчик как вещь (thing) и прописываю каналы, которые все кроме уровня сигнала обрабатывают топик ble/advertise/b0:01:02:00:bc:f6/manufacturer/ffff но для обработки применяют разные скрипты для получения разной информации или информации в разных форматах.

Для получения значения потребления воды в десятых долях литра я используют входное преобразование (Incoming Volume Transformation) JS:elehant_vol_cl.js прямо в расширенных настройках канала. Сам скрипт лежит в каталоге transform и представляет собой простенькую процедуру на JavaScript:

(function(i) { var str=i.replace(/"/g,'');
return parseInt((str.substr(24,2)+str.substr(22,2)+str.substr(20,2)+str.substr(18,2)),16) })(input)

для работы скрипта ему нужна локальная переменная и при её определении обрезаются пробелы, если они вдруг окажутся в выдаче. Формируется строка в правильной последовательности и она преобразовывается из шестнадцатеричной системы в десятичную. Так как в сбытовую компанию сдаются показания в кубометрах, то рядом лежит скрипт где возвращается результат деления на 10000 этого целого.

Для однозначности идентификации счётчиков полезно получать их номера непосредственно с них и это делается вот таким скриптом:

(function(i) { var str=i.replace(/"/g,'');
return parseInt((str.substr(16,2)+str.substr(14,2)+str.substr(12,2)),16);
})(input)

всё то же что в первом, но другие символы из строки используются.

PS: так как я не осилил этот клон WP, то оригинал тут https://ae11.me/archives/8332

Источник: https://habr.com/ru/post/586500/


Интересные статьи

Интересные статьи

Стартап Skylo, запущенный выпускниками MIT, занимается разработкой антенны и протокола связи, которые дают возможность обмениваться данными с уже находящимися на орбите геостационарными...
Есть несколько способов добавить водяной знак в Битрикс. Рассмотрим два способа.
Цифровизация производства давно перестала быть запредельно дорогим новшеством: эксперты из «Сколково» отмечают, что сейчас она обходится в разы дешевле, чем пять лет назад. Мы собрали несколько и...
От скорости сайта зависит многое: количество отказов, брошенных корзин. Согласно исследованию Google, большинство посетителей не ждёт загрузки больше 3 секунд и уходит к конкурентам. Бывает, что сайт ...
Всем бойцам РХБЗ (радиохимической и биологической защиты) не посрамившим честь своего ОЗК посвящается... С интересом читая статьи коллеги gjf про самые интересные, самые страшные и самые нестр...