Кейсы

Система антипротечки 

В статье я расскажу, как сделать и настроить систему антипротечки воды. Данная система в случае обнаружения сигнализирует уведомлением о протечке на смартфон, включает звуковую сигнализацию и перекрывает подачу воды, а также всегда можно проанализировать работоспособность датчиков. Настройку системы буду вести в контексте построения Умного дома «Smart Home».

Используемое железо:

Модуль связи ZigBee, питание CR2032, рабочая температура -10 - 55℃.

sensorWater.jpg

Модули связи ZigBee + WiFi 2.4 Ггц, питание 110 – 240В, рабочая температура 0 – 40℃, светодиодная индикация RGB-LED, динамик.

1.jpg

Модуль связи WiFi 2.4 Ггц(ESP-8266), питание 110 – 240В, рабочая температура 0 – 40°C, Рабочий ток 15A(2 устройства),10A(1 устройство).

sonoff.jpg

Двухходовой регулирующий клапан, питание 220В, Время открытия/закрытия 15 сек, давление 1,6 Мпа, рабочая температура 2 – 90°C.

 

relay1.jpgrelay2.jpg

 

Используемый софт:

Шаг 1. Подключение датчиков протечки к хабу Xiaomi, сигнализация протечки и уведомления на смартфон

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

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

Сопряжение датчиков с хабом проходит без проблем, достаточно установить на смартфон приложение MiHome и нажать на сам датчик.

2.jpg

На всех трех датчиках установлено правило

            If Enable water leak alarm Then Send notifications to device

Т.е. если срабатывает сигнализация датчика, то идет отправка уведомления. Также, в настройках хаба активирован режим “Alert”, в случае сигнализации какого-либо из датчиков запускается звуковая сирена и светодиодная подсветка мигает красным цветом.

Шаг 2. Установка сервопривода. Прошивка реле Sonoff

Сервопривод выбрал на 220В, чтобы не усложнять систему наличием блока питания. Также обязательным является наличие ручного выключателя, в случае отказа электроники.

Сервопривод имеет три вывода, при подаче напряжения на IN1 производится открывание заслонки, на IN2 соответственно закрывание.

3.jpg

Время срабатывания сервопривода около 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, как указано на картинках.

4.jpg5.jpg

Также здесь можно проверить работоспособность реле включая/выключая каждый канал по кнопке “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 брокер.

6.jpg

Далее, для этого устройства настроить канал, аналогично скриншоту

7.jpg

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 . В результате после настройки становятся доступны все устройства подключенные к хабу. Нас интересуют датчики антипротечки.

8.jpg

Каждый датчик содержит по три канала:

9.jpg

Соответственно, для каждого канала нужно создать 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

Так может выглядеть панель управления

10.jpg

Итог: Вполне рабочая система с возможностями дальнейшей интеграции в инфраструктуру умного дома. Стоимость компонентов:

Наименование

Стоимость, руб.

1.

Сервопривод

2600

2.

Хаб Xiaomi

1800

3.

3 датчика антипротечки Aqara

2700

4.

Реле sonoff

730

5.

Raspberry pi

2500

 

 

10330