Система антипротечки
В статье я расскажу, как сделать и настроить систему антипротечки воды. Данная система в случае обнаружения сигнализирует уведомлением о протечке на смартфон, включает звуковую сигнализацию и перекрывает подачу воды, а также всегда можно проанализировать работоспособность датчиков. Настройку системы буду вести в контексте построения Умного дома «Smart Home».
Используемое железо:
- Датчик протечки воды xiaomi aqara – 3 шт;
Модуль связи ZigBee, питание CR2032, рабочая температура -10 - 55℃.
- Шлюз управления Xiaomi Mi gateway 2 – 1 шт.
Модули связи ZigBee + WiFi 2.4 Ггц, питание 110 – 240В, рабочая температура 0 – 40℃, светодиодная индикация RGB-LED, динамик.
- Реле Sonoff Dual 2CH R2 – 1 шт.
Модуль связи WiFi 2.4 Ггц(ESP-8266), питание 110 – 240В, рабочая температура 0 – 40°C, Рабочий ток 15A(2 устройства),10A(1 устройство).
- Сервопривод Ball Valve Three Line – 1шт.
Двухходовой регулирующий клапан, питание 220В, Время открытия/закрытия 15 сек, давление 1,6 Мпа, рабочая температура 2 – 90°C.
Используемый софт:
- OpenHAB – система для построения умного дома;
- Tasmota – прошифка для Wi-Fi реле;
- MiHome – мобильное приложение для построения умного дома Xiaomi;
Шаг 1. Подключение датчиков протечки к хабу Xiaomi, сигнализация протечки и уведомления на смартфон
По датчикам. Их необходимо располагать таким образом, чтобы случайно не попала на них вода. В принципе батареек должно хватать года на три, но на всякий случай лучше вывести индикатор состояния на панель умного дома, чтобы вовремя узнать о не рабочем состоянии.
В квартире они размещены так, один в ванной под раковиной, второй в туалете максимально близко к стояку, третий на полу рядом с посудомойкой. Бесспорное преимущество беспроводных датчиков налицо, их можно размещать в любом месте, первоначально, когда планировал систему, точно не знал, где они должны находиться.
Сопряжение датчиков с хабом проходит без проблем, достаточно установить на смартфон приложение MiHome и нажать на сам датчик.
На всех трех датчиках установлено правило
If Enable water leak alarm Then Send notifications to device
Т.е. если срабатывает сигнализация датчика, то идет отправка уведомления. Также, в настройках хаба активирован режим “Alert”, в случае сигнализации какого-либо из датчиков запускается звуковая сирена и светодиодная подсветка мигает красным цветом.
Шаг 2. Установка сервопривода. Прошивка реле Sonoff
Сервопривод выбрал на 220В, чтобы не усложнять систему наличием блока питания. Также обязательным является наличие ручного выключателя, в случае отказа электроники.
Сервопривод имеет три вывода, при подаче напряжения на IN1 производится открывание заслонки, на IN2 соответственно закрывание.
Время срабатывания сервопривода около 15 сек. С помощью двухканального реле Sonoff будем подавать напряжение на каждый вывод.
Для чтобы интегрировать реле в инфраструктуру умного дома будем использовать M2M (Machine-To-Machine) протокол и наиболее интересным является популярный протокол MQTT.
Так как оригинальная прошивка Sonoff работает, только с программным обеспечением производителя eWeLink и не поддерживает протокол MQTT, необходимо прошить реле прошивкой Sonoff-Tasmota (https://github.com/arendst/Sonoff-Tasmota). Для модели R2, прошивку можно осуществлять через Wi-Fi(https://github.com/mirko/SonOTA). Подробные инструкции по прошивке находятся в указанных выше ссылках.
После прошивки, необходимо зайти через браузер на веб-сервер реле Sonoff и настроить Sonoff-Tasmota, как указано на картинках.
Также здесь можно проверить работоспособность реле включая/выключая каждый канал по кнопке “Toggle”.
Шаг 3. Интеграция реле и OpenHAB
Протокол MQTT работает по принципу «Издатель – Подписчик». В качестве брокера MQTT будет выступать Mosquitto. Как установить, подробно написано на https://robot-on.ru/articles/ystanovka-mqtt-brokera-mosquitto-raspberry-orange-pi.
Чтобы включить/выключить каналы реле Sonoff, необходимо отправить следующее сообщения:
Топик «cmnd/sonoff/backlog», команда «Power1 on» или «Power1 off».
Топик «cmnd/sonoff/backlog», команда «Power2 on» или «Power2 off».
Прошивка Sonoff-Tasmota поддерживает большое количество команд. Более подробно можно почитать на официальном гитхабе. В качестве тестового клиента для подписки и отправки сообщений использовал программу для смартфона «MyMQTT». В принципе для тестов можно задействовать и сам Mosquitto, введя команду:
$mosquitto_pub -h 192.168.31.207 -p 1883 -t cmnd/sonoff/backlog -m "Power2 on"
В OpenHAB(2.4) нужно добавить снала устройство «Things -> MQTT Thing Binding -> Generic MQTT Thing», указав MQTT брокер.
Далее, для этого устройства настроить канал, аналогично скриншоту
600 и 700, это эмпирически посчитанные миллисекунды, требуемые для открывания и закрывания заслонки.
Далее, добавляем Item
Switch Water "Water" {channel="mqtt:topic:de79dfa7:water_test"}
Шаг 4. Интеграция хаба Xiaomi и датчиков антипротечки к системе OpenHAB
Для взаимодействия умных устройств от Xiaomi требуется установить «Xiaomi Mi Smart Home Binding». Подробная инструкция по настройке хаба изложена на https://www.openhab.org/addons/bindings/mihome . В результате после настройки становятся доступны все устройства подключенные к хабу. Нас интересуют датчики антипротечки.
Каждый датчик содержит по три канала:
Соответственно, для каждого канала нужно создать Item
Switch LeakDetected1 {channel="mihome:sensor_wleak_aq1:158d00023497b2:leak"}
Switch LeakDetected2 {channel="mihome:sensor_wleak_aq1:158d0002795c6c:leak"}
Switch LeakDetected3 {channel="mihome:sensor_wleak_aq1:158d0002795cc4:leak"}
Шаг 5. Настройка правил OpenHAB
Листинг примера с правилами, для перекрывания заслонки (файл *.rules)
rule "antiwater"
when
Item LeakDetected1 changed or Item LeakDetected2 changed or Item LeakDetected3 changed
then
if (LeakDetected1.state == ON || LeakDetected2.state == ON || LeakDetected3.state == ON) {
Water.sendCommand(OFF)
}
end
Листинг примера с правила, для чтения статусов датчиков
rule "Turn on/off Status leak sensors"
when
Time cron "0 */5 * ? * *"
then
var status = getThingStatusInfo("mihome:sensor_wleak_aq1:158d00023497b2").getStatus()
if (status.toString() == 'OFFLINE'){
LeakStatus1.sendCommand(OFF)
}
else {
LeakStatus1.sendCommand(ON)
}
var status2 = getThingStatusInfo("mihome:sensor_wleak_aq1:158d0002795c6c").getStatus()
if (status2.toString() == 'OFFLINE'){ {
LeakStatus2.sendCommand(OFF)
}
else {
LeakStatus2.sendCommand(ON)
}
var status3 = getThingStatusInfo("mihome:sensor_wleak_aq1:158d0002795cc4").getStatus()
if (status3.toString() == 'OFFLINE'){
LeakStatus3.sendCommand(OFF)
}
else {
LeakStatus3.sendCommand(ON)
}
endТак может выглядеть панель управления
Итог: Вполне рабочая система с возможностями дальнейшей интеграции в инфраструктуру умного дома. Стоимость компонентов:
№
Наименование
Стоимость, руб.
1.
Сервопривод
2600
2.
Хаб Xiaomi
1800
3.
3 датчика антипротечки Aqara
2700
4.
Реле sonoff
730
5.
Raspberry pi
2500
10330
Чашек кофе
выпито
Телефонных
разговоров
Пересмотрено
изображений
Количество
правок
753
Файлов загружено
на сервер
21
Ещё дополнительное
кофе
Контакты
г.Москва
Набережнев Яков Александрович
ИНН 470317376350
График работы
- Пн-пт 9:00-18:00
- Сб-вс выходной
Телефоны
Мобильный: +7 925 801 47 87
yrabota@list.ru