- Вступление
- Изучение трафика
- Заворачиваем трафик с ClearGrass на Raspberry Pi
- MQTT нано-брокер на JS для домашней автоматизации Z-Way
- Внешний вид и комплектация
- Внешний осмотр
- Два режима работы
- Оповещение об утечке газа
- Подключение датчика протечки газа в mi home
- Принцип работы газосигнализации
- Проверка чувствительности
- Простая установка
- Работа с domoticz
- Характеристики датчика газа
Вступление
Датчик дыма, совместно с датчиком утечки газа, произведенных в содружестве с известной компанией Honeywell появились уже довольно давно. Датчик газа меня особенно не интересует — так как моем 26 этажном муравейнике его попросту нет, а вот датчик дыма — очень даже.
Первая попытка была купить его на Aliexpress за $ 25.48 — но прождав пару недель и не увидев обновления трек номера после статуса «Информация о посылке получена» — я открыл спор, и надо отдать должное Ali — практически моментально получил решение в свою пользу, по идее этому способствует и уровень А3, который, как написано в личном кабинете выше 97% покупателей AliExpress.
Следующая попытка оказалась успешнее, удалось выхватить датчик по акции на GearBest за $27.99 (на момент написания поста купон еще работал, приведу под спойлером в конце обзора)
Изучение трафика
Первым делом нужно было посмотреть, как ClearGrass передает данные в приложение
qingping
. ClearGrass подключается к интернет по Wi-Fi. Чтобы слушать трафик я поднял на Raspberry Pi Wi-Fi точку доступа и запустил tcpdump собирать информацию:
sudo tcpdump -i wlan0 -vv -s0 -X -n port 1883 -s 65535 -w cleargrass.pcap
Анализ трафика показал, что ClearGrass обращается примерно к 5 разным IP адресам, а на 154.8.191.174 передает в незашифрованном виде по протоколу
MQTT
данные о качестве воздуха.
Заворачиваем трафик с ClearGrass на Raspberry Pi
Немного поэкспериментировав с
iptables
я пришел к такому правилу:
sudo iptables -i wlan0 -t nat -A PREROUTING -s 192.168.115.19 -j REDIRECT
Читается оно так: «Весь новый трафик на интерфейсе wlan0 от 192.168.115.19 (IP ClearGrass) перенаправлять локально». Я не большой знаток iptables, поэтому буду рад предложениям и улучшениям. В этом правиле есть минус, если анализатор уже подключен к Raspberry Pi, то трафик не будет перенаправляться. Сначала нужно запустить правило и только затем подключить ClearGrass к Raspberry Pi по Wi-Fi.
В итоге, подняв MQTT брокер mosquitto на Raspberry Pi я увидел, что анализатор передает данные о качестве воздуха раз в минуты.
MQTT нано-брокер на JS для домашней автоматизации Z-Way
В качестве сервера домашней автоматизации я использую Z-Way, который поддерживает множество Z-Wave устройств и возможность писать скрипты на JS.
К сожалению для Z-Way нет MQTT брокера на JS (в отличие от систем на базе node.js), поэтому я решил написать минимальные брокер, который только принимает данные от этого анализатора и ничего больше не умеет. Не читая особо документацию я посмотрел на общение между анализатором и mosquitto и составил следующую последовательность:
MQTT PROTOCOL
Connect Command (sensor -> broker)
0x10 - Connect Command
Connect Ack (broker -> sensor)
0x20 - Connect Ack
0x02 - Len 2
0x00
0x00 - Connection Accepted
Subscribe Request (sensor -> broker)
0x82 - 0b1000 0010; 0b1000 - Subscribe Request
Subscribe Ack (broker -> sensor)
0x90 - 0b1001 0000; 0b1001 - Subscribe Ack
0x03 - Len 3
0x00
0x08 - Message identifier 8
0x00 - Fire and Forget
Ping Request (sensor -> broker)
0xC0 - Ping Request
0x00 - Len 0
Ping Response (broker -> sensor)
0xD0 - Ping Response
0x00 - Len 0
Publish Message (sensor -> broker)
0x30 - Publish Message
0x96
0x04 - Len 534
В итоге родился простой JS скрипт:
mqttSocket.reusable();
mqttSocket.bind(1883);
mqttSocket.onrecv = function(data, host, port) {
var arr = new Uint8Array(data);
switch(arr[0]) {
// PING
case 0xC0:
console.log("---------- MQTT PING RESPONSE");
this.send([0xD0, 0x00]);
break;
// CONNECT
case 0x10:
console.log("---------- MQTT CONNECT ACK");
this.send([0x20, 0x02, 0x00, 0x00]);
break;
// SUBSCRIBE
case 0x82:
console.log("---------- MQTT SUBSCRIBE ACK");
this.send([0x90, 0x03, arr[2], arr[3], 0x00]);
break;
// PUBLISH
case 0x30:
var sensorPayload = self.getPayload(arr);
var sensorMessage = sensorPayload.substr(sensorPayload.indexOf('{'), sensorPayload.lastIndexOf('}'));
var sensorObj = JSON.parse(sensorMessage);
console.logJS("---------- MQTT MESSAGE:", sensorObj);
console.logJS("---------- CO2: ", sensorObj.data.co2);
self.vDevCO2.set("metrics:level", sensorObj.data.co2);
break;
}
};
mqttSocket.listen();
Конечно пока многое не учитывается, например в одной посылке, может прийти и PING, и MESSAGE, а я что-то из этого пропущу. Возможно в будущем я использую кодовую базу
для создания MQTT брокера для Z-Way. А на данный момент целью была принципиальная возможность получить локально данные о качестве воздуха с анализатора Xiaomi ClearGrass Air Detector и эта цель достигнута.
В перспективе хочу установить Z-Wave версию бризера TION S3 и управлять им основываясь на данных от ClearGrass.
Внешний вид и комплектация
Датчик газа от Xiaomi упакован в белую коробку размером 8 х 8 х 6,2 см. На нее нанесено изображение устройства. На оборотной стороне указаны технические характеристики на китайском языке.
Вместе с самим датчиком в комплект поставки входят:
- адаптер для подключения к сети электропитания;
- крепежные винты;
- двусторонняя клейкая лента;
- гарантийный талон.
Внешне датчик представляет собой цилиндр с диаметром 8 см и высотой 3 см. Его корпус изготовлен из белого огнеупорного пластика. На лицевую сторону нанесены:
- перфорация;
- кнопка управления;
- светодиод;
- логотипы Mijia и Honeywell;
- иероглифы, поясняющие значение цвета индикатора.
Оборотная сторона закрыта крышкой. Под ней находятся:
- наклейка с характеристиками датчика;
- контакты, к которым может быть подключена вытяжка.
Разъем для присоединения адаптера питания расположен на боковой грани корпуса.
Внешний осмотр
В центре датчика имеется воздухозаборник — для анализа содержания дыма
По окружности датчика — расположены мелкие отверстия, для, как было выяснено опытным путем, очень громкой и противной пищалки. Так же на передней части находится кнопка сопряжения.
Кстати вес датчика (без батарейки) — 82 грамма
Сзади находятся пазы для крепления и отсек для установки элемента питания.
Два режима работы
Такое устройство может работать в качестве одного из элементов, составляющих систему управления умным домом, и самостоятельно.
В первом случае рекомендуется настроить включение вытяжки в случае срабатывания датчика с помощью сценария.
Для этого потребуется подключить принудительную вентиляцию через умную розетку.
Если же устройство используется в помещении, где не реализована система управления умным домом, то получать уведомления на смартфон невозможно. Датчик будет служить только звуковой сигнализацией. А вытяжка в этом случае должна присоединяться к контактной площадке, расположенной на задней стороне прибора.
Это обеспечит физическую синхронизацию устройств. Датчик имеет четыре разъема. Контакты NO и COM замыкаются в момент срабатывания сигнала тревоги. На них возникает напряжение 250 В при токе в 2 А. Это приводит к активации вытяжки.
Контакты T и T- нужны для присоединения электромагнитного клапана. Их напряжение 12 В.
Оповещение об утечке газа
Датчик газа от брендов Xiaomi и Honeywell служит только в качестве триггера. Он не показывает значение концентрации метана в воздухе. Когда этот параметр достигает предельно допустимой величины, включается сигнализация. Ее громкость постепенно нарастает.
Если произведено сопряжение с приложением Mi Home, на смартфон владельца дома непрерывно поступают уведомления.
Светодиод может загораться тремя цветами. При нормальных условиях он зеленый, в случае активации тревоги — красный. Желтый цвет означает потенциальную опасность, однако не сопровождается звуковым сигналом.
Подключение датчика протечки газа в mi home
Поскольку единственный протокол связи, доступный этому гаджету, — это ZigBee, подключить его в систему управления умным домом можно только через шлюз. Сопряжение датчика газа Xiaomi Mijia с Mi Home проводится по следующей инструкции:
- В приложении активировать режим добавления нового устройства.
- В списке доступных гаджетов в разделе Sensor найти Mi Smart Natural Gas Detector.
- При наличии в системе нескольких шлюзов, выбрать который из них будет управлять датчиком.
- Трижды нажать кнопку на корпусе подключаемого в систему прибора.
Датчик газа от Xiaomi и Honeywell принадлежит к числу элементов умного дома, для которых не предусмотрено отдельного плагина управления. Для него в Mi Home доступно две вкладки:
- сценарии, в которых задействован гаджет;
- история его срабатывания.
Кликнув на иконку “Троеточие” в правом верхнем углу любой из этих вкладок, а затем на More functions, можно перейти в раздел настроек. С его помощью можно:
- настроить активацию звукового сигнала тревоги на шлюзе совместно со срабатыванием сирены самого датчика;
- регулировать чувствительность прибора (доступен выбор между тремя позициями);
- включить режим напоминаний о необходимости процедуры самодиагностики.
В случае срабатывания датчика газа на смартфон владельца будут направлены многочисленные уведомления.
В сценариях управления умным домом датчик от брендов Xiaomi и Honeywell может выступать только в качестве условия. Например, по его сигналу можно включить вытяжку и обесточить розетки других электроприборов.
Создавать схемы, которые будут активировать сигнализацию и посылать уведомления в приложении, не требуется. Они являются предустановленными.
Включить режим самодиагностики можно как с помощью расположенной на корпусе кнопки, так и из приложения. Этот процесс предполагает, что устройство издаст сигнал, а пользователь должен убедиться в том, что его слышно.
Если устройство не реагирует на активацию этого режима из приложения, вероятнее всего шлюз, к которому оно подключено, расположен слишком далеко. Это может привести к тому, что в случае утечки газа уведомление об этом не поступит на смартфон владельца, а созданные с учетом сигнала о срабатывании сценарии не будут задействованы.
Датчик газа от брендов Xiaomi и Honeywell не поддерживает подключение к системе Aqara Home.
Принцип работы газосигнализации
Датчик газа от Xiaomi предназначен для обнаружения метана. Это природный взрывоопасный газ, используемый для приготовления пищи на плитах, подключенных к центральной системе снабжения.
Концентрацию угарного газа этот прибор не анализирует. Также он не сможет зафиксировать утечку пропана, используемого в баллонах.
Проверка чувствительности
Я провел пару экспериментов — которые полностью приведены в моем видеообзоре, ссылка на который будет в конце текстового обзора. Для срабатывания шлюзу достаточно дыма от четырех зажженных и потушенных спичек
Датчик начинает по нарастающей пищать, громко и пронзительно, стоя рядом мне было очень дискомфортно
Шлюз, к которому подключен датчик — включает режим срабатывания сигнализации.
На телефон валятся алармы
Простая установка
Датчик газа такого типа нужно располагать на потолке или непосредственно под ним, на расстоянии не более 30 см. Это связано с тем, что метан легче воздуха и при возникновении утечки поднимается.
Второе условие — от чувствительного прибора, предлагаемого компанией Honeywell, до источника потенциальной утечки должно быть от 1 до 4 м. Также не следует устанавливать датчик непосредственно над плитой.
Кроме того, нужно выбрать место с достаточно легким доступом: отключение устройства после срабатывания производится нажатием кнопки, расположенной на его корпусе.
У датчика есть верхняя и нижняя части. Крепить его в перевернутом состоянии нельзя. Определить верную ориентацию можно по следующим признакам:
- кнопка управления и индикатор состояния находятся снизу от перфорации;
- кабель блока питания выходит из корпуса устройства с правой стороны.
Компания Honeywell предусматривает два способа фиксации для гаджетов, выпускаемых под своим брендом:
- Двусторонний скотч. Может использоваться только на гладкой поверхности.
- Крепление на входящие в комплект поставки саморезы. К нему прибегают, когда прочности липкой ленты оказывается недостаточно.
Работа с domoticz
Хорошая новость — в Domoticz датчик виден корректно — называется он Xiaomi Smoke Detector
Тип датчика — выключатель, но с дополнительной кнопкой «сброс» на панели. В журнале его сработки отображаются как On. В нормальном состоянии — Off.
Сценарии можно создавать на условие On — значит обнаружен дым
На этом все, эксперименты по срабатыванию и немного дополнительной информации можно увидеть в моем видеообзоре
Спасибо за внимание.
Характеристики датчика газа
Датчик газа от Xiaomi имеет следующие технические характеристики:
- размер 8 x 8 x 3 см;
- вес 80 г;
- рабочая температура от -100С до 550С;
- напряжение питания 12 В при токе 70 мА;
- встроенный модуль связи ZigBee.
https://www.youtube.com/watch?v=T3d6bZcbvwA
Прилагаемый к нему адаптер питания имеет американскую вилку. Длина его провода 1,5 м.