RSS блога
Подписка
Интеграция блоков реле Sonoff basic в систему умного дома на базе Domoticz
- Цена: $29.74
- Перейти в магазин
Добрый день, коллеги!
В этой статья я хотел бы обобщить опыт, полученный при интеграции блоков реле sonoff basic с domoticz. Это не столько статья о том, как щелкать реле sonoff с помощью domoticz, сколько описание процесса подключения esp в умный дом в целом. Вся инфраструктура будет работать без использования сторонних сервисов.
Был сразу получен трек и на 3-4 недели о заказе я забыл. Вспомнил, когда увидел, что в течении месяца трек никуда не сдвинулся. Написал продавцу по этому поводу с вопросом — не перепутал ли он номер. Продавец как обычно ответил, что все ок, не переживай, логистов побеспокою. Тем временем, начали приходить посылки, заказанные позже этого лота. Через неделю снова написал продавцу и получил аналогичный ответ, после чего открыл спор на полный возврат. Таким образом, рекомендую данный магазин обходить стороной. Возможно, это только мой негативный опыт.
После возврата заказ был сделан в магазине “minina Store” с русского склада. Никаких замечаний, через 4 дня посылка была у меня в СпБ.
Я не гонялся за самым дешевым вариантом, так что информация о покупке тут чисто справочная.
Задействованы даже GPIO Rpi3. Они включают светодиодную подсветку в шкафу и у зеркала в гостинной, т.к. малинка стоит в том же шкафу и нет проблем с коммутацией. Есть самодельный блок ESP8266 для контроля открытия двери и передачи информации с датчика температуры и давления. В качестве выключателей во всем доме используются безпроводные кнопки из набора Xiaomi/Aura.
Опытный читатель сразу скажет, что RFLink в этой инфраструктуре для управления нагрузкой не самая лучшая идея, т.к. нет обратной связи от устройств и не известно текущее состояние приборов. Как раз для замены блоков реле, управляемых по 433Mhz и были выбраны блоки Sonoff.
В качестве тестового полигона я буду использовать OrangePiZero 512мб/4гб со свежим Armbian(5.32.170803) и Domoticz (V3.8153). Нам также понадобится Sonoff Basic, USB2Serial (я использую Arduino Nano или UNO), полевой транзистор (MOSFET, например IRL2203NPBF), кусок светодиодной ленты, кусок провода с вилкой 220В, и блок питания на 9-12В/1А.
Для запуска нужно было городить переходники, конвертировать 5в — 3.3в и т.д.
Отсутствовали готовые прошивки и интеграция в среду Arduino IDE. На данный момент все эти этапы позади и существует огромное количество плат для разработки, готовых прошивок и библиотек. Оставалась последняя преграда для удобного использования в быту — встроенное питание от сети. Sonoff решил все эти проблемы разом, упаковав в небольшой корпус источник питание 220в -> 5в -> 3.3в, чип ESP8266 с реле и даже оставив еще один свободный GPIO.
На борту имеется микросхема памяти на 1мб, и выведены контакты для подключения к чипу: 3.3v, Rx,Tx, GND, GPIO14. Так же полезно будет знать, что реле управляется через GPIO12, кнопка через GPIO0, а светодиод подключен к инвертированному GPIO13. Для любителей особых приключений, есть возможность подпаяться непосредственно к чипу и вывести больше GPIO.
Не ради рекламы будет сказанно, но свои первые образцы устройств на ESP8266 я в скором времени запускал на прошивке уважаемых товарищей с wifi-iot, тогда еще homes-smart. Автор прошивки неистово добавлял в нее функционал, который просили пользователи, чем заслужил мое глубочайшее уважение. До сих пор я считаю эту прошивку наиболее функциональной и гибкой, не смотря на то, что она является “частично” платной. Вот пример действующего дома образца:
Сейчас она несколько потеряла актуальность — все можно собрать самому в среде ArduinoIDE или найти готовую прошивку, воспользоваться красивыми сервисами типа Blynk/IoT Manager.
Для целей же интеграции с Domoticz, я выбрал прошивку ESPEasy. Авторы заявляют о встроенной поддержке Domoticz, плюс она полностью бесплатна и поддерживает кучу периферии “из коробки”, язык внутренних сценариев, все это может быть полезно в будущем.
К слову, полную совместимость с Domoticz я не проверял :), т.к. использовал http команды с сервера для управления GPIO, а не цеплял ESP с этой прошивкой в качестве клиента (не передавал на сервер показания температуры, состояния gpio это вот все). Если в этом вопросе появятся подводные камни, можно будет обсудить их в комментариях.
Итак, взять прошивку и прочитать что она из себя представляет можно тут.
Со страницы я скачал стабильный 120 билд, вместе с ним в архиве идет прошивальшик (вариант для linux тоже есть на сайте). Сама прошивка поставляется в 3х версиях 512/1024/4096 кб в зависимости от объема памяти на чипе. Напоминаю, что мы располагаем 1мб памяти в sonoff.
Для прошивки соберем стенд из рабочего ПК на базе Win7/10, конвертера USB2Serial и пары проводов. БУДЬТЕ ВНИМАТЕЛЬНЫ: в sonoff отсутствует гальваническая развязка между силовым блоком и логикой. ОБЯЗАТЕЛЬНО ОТКЛЮЧИТЕ УСТРОЙСТВО ОТ СЕТИ 220В перед прошивкой! Напоминаю расположение контактов на гребенке.
Если вы используете для прошивки arduino, то не забудьте отключить контроллер, соединив ножки rst и gnd, так же напоминаю, что в arduino нет необходимости перекрещивать Rx и Tx при подключении к ним устройства, соединяйте напрямую RX — RX, TX-TX.
Перед подачей питания на гребенку sonoff зажмите кнопку GPIO0, чтобы активировать режим прошивки.
Для запуска прошивки нужно запустить командный файл «flash.cmd», который идет в комплекте. Указать ему следующие параметры: com port адаптера USB2Serial, размер прошивки:1024, версию билда:120. Например так:
После чего, если все было сделано правильно, начнется запись прошивки. По окончании будет выдано сообщение flash complete, нажмите любую клавишу. Если прошивка не пошла — проверьте качество питания с адаптера, корректность подключения линий Rx-Tx и не забудьте про нажатие кнопки GPIO0 перед включением.
После прошивки, можно отключить контакты с гребенки, закрыть корпус и подключить модуль к питанию 220в.
При первоначальном запуске модуля появится wifi сеть «ESP_0», пароль сети “configesp”. К ней нужно подключиться, после чего вы будете автоматически перенаправлены на страницу настроек, где необходимо ввести сведения о Вашей существующей wifi сети, к которой следует подключить sonoff в качестве клиента.
После первоначальной настройки и подключения к существующей сети, я рекомендую установить пароль администратора на устройстве и установить статический IP (либо на устройстве, либо в опциях DHCP сервера). Настоятельно НЕ рекомендую включать Wifi Status Led в разделе Hardware, у меня при этом устройство становится очень нестабильным. В принципе, пока более никаких настроек на sonoff не потребуется и можно отложить его в сторону, оставив включенным.
Список поддерживаемых со стороны ESPEasy команд можно найти тут. Те, что можно запустить по http входят в класс “plugin”.
Таким образом, мы наконец-то добрались до чего-то более менее интересного, ради чего все затевалось. Чтобы щелкнуть реле мы должны подать в сеть команду для включения:
А для выключения:
Общий смысл команды такой: устанавливаем значение типа GPIO, номер pin, значение.
Попробуем облагородить это через domoticz. Зайдем в веб-интерфейс системы и перейдем на вкладку настроек Setup-Hardware, создадим устройство Dummy, обзовем его ESP01Relay, добавить.
Далее на этой же странице, на новом устройстве, нужно нажать кнопку Create Virtual Sensors, обзовем устройство так же ESP01Relay, выберем тип Switch.
И наконец, переходим на вкладку Switches находим наш новый девайс и жмем edit, в поля On Action и Off Action вставляем заветные значения.
Сохраняем. Кликаем на лампочку и наслаждаемся щелчками реле.
В целях автоматизации могут понадобиться также команды отправки импульсов на sonoff, например для включения освещения по движению. Команда:
Мы задействуем свободный выход GPIO14 на Sonoff. Схема подключения будет следующая:
Соответственно, вместо D10 и GND ардуины, нужно использовать GPIO14 и GND с гребенки sonoff.
Со стороны Domoticz нам придется исполнить некоторый костыль. Дело в том, что стандартный диммер регулятор в Domiticz отдает значения от 1 до 100, в то время как диммер в ESPEasy работает со значениями от 1 до 1024. Придется их согласовать. Начнем. Создадим новую пустышку, с главной страницы domoticz переходим по меню: setup-hardware-dummy. Назовем его ESP01dimmer (тут название важно). Добавим.
Создадим из этого устройства виртуальный диммер — Create Virtual Sensors и назовем его так же ESP01dimmer, тип Switch. Переходим на вкладку Switches находим наш новый девайс и жмем edit, switch type меняем на dimmer.
Плюс ко всему, нам нужна будет пользовательская переменная, чтобы запоминать состояния диммера. Создадим ее: setup — more options — user variables. Назовем ее “dimm”, тип “integer”, значение, например: “200”.
Далее, начинаем согласовывать уровни. На сколько я понял из интернетов, наиболее простой способ создать event для этого виртуального устройства. Для этого пройдем по ssh на сервер, где запущен domoticz. Нужно попасть в папку где установлен Domoticz и далее /scripts/lua, в этой папке нужно создать файл script_device_ESP01dimmer.lua с содержимым:
Поясню, что он делает. Во-первых, в скрипте необходимо указать ip адрес sonoff (IP) и тот пин (PIN), к которому подключен транзистор. Логика такая: если в интерфейсе нажали кнопку “выключить”, запоминаем значение бегунка в переменную dimm и выставляем “0” для отправки по сети в sonoff. Если была нажата кнопка “ON”, то вспоминаем значение бегунка из переменной и выставляем его к отправке sonoff. Если же пользователь подвигал бегунок, то берем его значение из Domoticz, умножаем на 10 и выставляем к отправке в sonoff. Какое бы из трех действий ни выполнил пользователь, мы направляем в sonoff команду вида:
Разобрались. Теперь перезапускаем Domoticz и пробуем управлять светодиодной лентой.
Итак, на модуле sonoff нам доступна одна кнопка, используем ее как орган управления.
Первым делом, нам потребуется активировать в ESPEasy механизм правил. Заходим по http на sonoff, выбираем раздел Tools-Advanced-Rules (поставить галочку).
Появится новый пункт меню Rules. Но мы сначала заглянем в раздел: Devices, напротив первого пункта таблицы жмем Edit. Выберем типом устройства Switch input. Имя: “button”. IDX / Var:1(число); 1st GPIO: GPIO-0. Switch Button Type: Push Button Active Low. И в самом низу: Value Name 1: “state”. Сохраняем.
Теперь кликаем на Rules в основном меню и видим окно редактора. Вставляем следующий код:
Думаю очевидно, что делает код. На изменение состояния кнопки, дается команда: выключить диммер, выключить светодиод или наоборот: включить диммер, включить светодиод. При особом желании можно реализовать ступенчатое изменение мощности. Подробнее о правилах можно прочитать тут.
В этой статья я хотел бы обобщить опыт, полученный при интеграции блоков реле sonoff basic с domoticz. Это не столько статья о том, как щелкать реле sonoff с помощью domoticz, сколько описание процесса подключения esp в умный дом в целом. Вся инфраструктура будет работать без использования сторонних сервисов.
Сначала о покупке.
Первоначально лот был заказан на али у продавца: Chinese Projector Store.Был сразу получен трек и на 3-4 недели о заказе я забыл. Вспомнил, когда увидел, что в течении месяца трек никуда не сдвинулся. Написал продавцу по этому поводу с вопросом — не перепутал ли он номер. Продавец как обычно ответил, что все ок, не переживай, логистов побеспокою. Тем временем, начали приходить посылки, заказанные позже этого лота. Через неделю снова написал продавцу и получил аналогичный ответ, после чего открыл спор на полный возврат. Таким образом, рекомендую данный магазин обходить стороной. Возможно, это только мой негативный опыт.
После возврата заказ был сделан в магазине “minina Store” с русского склада. Никаких замечаний, через 4 дня посылка была у меня в СпБ.
Я не гонялся за самым дешевым вариантом, так что информация о покупке тут чисто справочная.
Теперь об инфраструктуре.
В продуктиве у меня трудится domoticz на Raspberry pi3. К нему подключены шлюз Xiaomi + датчики температуры и кнопки. Лампы YeeLED я взял скорее для теста, пока не придумал куда их применить по цене/качеству, но включается красиво. Датчик открытия двери Xiaomi у меня используется в виде датчика протечки на кухне. Также к RPi3 подключена Arduino Mega 2560 прошитая в RFLink с приемником и передатчиком, для управления существующими светильниками по 433Mhz и получения данных с погодных станций (моей и соседских :)). Ее сборка и работа — тема отдельной статьи.Задействованы даже GPIO Rpi3. Они включают светодиодную подсветку в шкафу и у зеркала в гостинной, т.к. малинка стоит в том же шкафу и нет проблем с коммутацией. Есть самодельный блок ESP8266 для контроля открытия двери и передачи информации с датчика температуры и давления. В качестве выключателей во всем доме используются безпроводные кнопки из набора Xiaomi/Aura.
Опытный читатель сразу скажет, что RFLink в этой инфраструктуре для управления нагрузкой не самая лучшая идея, т.к. нет обратной связи от устройств и не известно текущее состояние приборов. Как раз для замены блоков реле, управляемых по 433Mhz и были выбраны блоки Sonoff.
В качестве тестового полигона я буду использовать OrangePiZero 512мб/4гб со свежим Armbian(5.32.170803) и Domoticz (V3.8153). Нам также понадобится Sonoff Basic, USB2Serial (я использую Arduino Nano или UNO), полевой транзистор (MOSFET, например IRL2203NPBF), кусок светодиодной ленты, кусок провода с вилкой 220В, и блок питания на 9-12В/1А.
Выбор прошивки.
С платой ESP8266 я знаком уже наверное 2 с лишним года, практически с момента ее выхода. Был образец ESP01, потом ворох ESP07, потом еще штук 5 ESP12e. Плата хороша во многих вопросах и совсем не дорогая. Но были и недостатки: первые образцы были представлены в виде распаянного чипа, без обвязки по питанию и периферии, что несколько затрудняло первое знакомство.Дополнительная информация
Для запуска нужно было городить переходники, конвертировать 5в — 3.3в и т.д.
Дополнительная информация
На борту имеется микросхема памяти на 1мб, и выведены контакты для подключения к чипу: 3.3v, Rx,Tx, GND, GPIO14. Так же полезно будет знать, что реле управляется через GPIO12, кнопка через GPIO0, а светодиод подключен к инвертированному GPIO13. Для любителей особых приключений, есть возможность подпаяться непосредственно к чипу и вывести больше GPIO.
Не ради рекламы будет сказанно, но свои первые образцы устройств на ESP8266 я в скором времени запускал на прошивке уважаемых товарищей с wifi-iot, тогда еще homes-smart. Автор прошивки неистово добавлял в нее функционал, который просили пользователи, чем заслужил мое глубочайшее уважение. До сих пор я считаю эту прошивку наиболее функциональной и гибкой, не смотря на то, что она является “частично” платной. Вот пример действующего дома образца:
Дополнительная информация
Сейчас она несколько потеряла актуальность — все можно собрать самому в среде ArduinoIDE или найти готовую прошивку, воспользоваться красивыми сервисами типа Blynk/IoT Manager.
Дополнительная информация
Для целей же интеграции с Domoticz, я выбрал прошивку ESPEasy. Авторы заявляют о встроенной поддержке Domoticz, плюс она полностью бесплатна и поддерживает кучу периферии “из коробки”, язык внутренних сценариев, все это может быть полезно в будущем.
К слову, полную совместимость с Domoticz я не проверял :), т.к. использовал http команды с сервера для управления GPIO, а не цеплял ESP с этой прошивкой в качестве клиента (не передавал на сервер показания температуры, состояния gpio это вот все). Если в этом вопросе появятся подводные камни, можно будет обсудить их в комментариях.
Итак, взять прошивку и прочитать что она из себя представляет можно тут.
Со страницы я скачал стабильный 120 билд, вместе с ним в архиве идет прошивальшик (вариант для linux тоже есть на сайте). Сама прошивка поставляется в 3х версиях 512/1024/4096 кб в зависимости от объема памяти на чипе. Напоминаю, что мы располагаем 1мб памяти в sonoff.
Для прошивки соберем стенд из рабочего ПК на базе Win7/10, конвертера USB2Serial и пары проводов. БУДЬТЕ ВНИМАТЕЛЬНЫ: в sonoff отсутствует гальваническая развязка между силовым блоком и логикой. ОБЯЗАТЕЛЬНО ОТКЛЮЧИТЕ УСТРОЙСТВО ОТ СЕТИ 220В перед прошивкой! Напоминаю расположение контактов на гребенке.
Если вы используете для прошивки arduino, то не забудьте отключить контроллер, соединив ножки rst и gnd, так же напоминаю, что в arduino нет необходимости перекрещивать Rx и Tx при подключении к ним устройства, соединяйте напрямую RX — RX, TX-TX.
Перед подачей питания на гребенку sonoff зажмите кнопку GPIO0, чтобы активировать режим прошивки.
Для запуска прошивки нужно запустить командный файл «flash.cmd», который идет в комплекте. Указать ему следующие параметры: com port адаптера USB2Serial, размер прошивки:1024, версию билда:120. Например так:
После чего, если все было сделано правильно, начнется запись прошивки. По окончании будет выдано сообщение flash complete, нажмите любую клавишу. Если прошивка не пошла — проверьте качество питания с адаптера, корректность подключения линий Rx-Tx и не забудьте про нажатие кнопки GPIO0 перед включением.
После прошивки, можно отключить контакты с гребенки, закрыть корпус и подключить модуль к питанию 220в.
При первоначальном запуске модуля появится wifi сеть «ESP_0», пароль сети “configesp”. К ней нужно подключиться, после чего вы будете автоматически перенаправлены на страницу настроек, где необходимо ввести сведения о Вашей существующей wifi сети, к которой следует подключить sonoff в качестве клиента.
После первоначальной настройки и подключения к существующей сети, я рекомендую установить пароль администратора на устройстве и установить статический IP (либо на устройстве, либо в опциях DHCP сервера). Настоятельно НЕ рекомендую включать Wifi Status Led в разделе Hardware, у меня при этом устройство становится очень нестабильным. В принципе, пока более никаких настроек на sonoff не потребуется и можно отложить его в сторону, оставив включенным.
К слову, если у Вас возникли проблемы
К слову, если у Вас возникли проблемы при настройке ESPEasy и вы указали неверный пароль сети или неверный ip адрес, то устройство можно вернуть к “заводским настройкам”, подключившись к гребенке через USB2Serial и отправив устройству команду “reset”.
Настройка Domoticz.
Для управления устройствами на базе чипа ESP8266 обычно используют 2 протокола: это либо команды по http(и json), либо mqtt. MQTT для работы и тестирования требует установки специального ПО — клиента и сервера mqtt. Там нет ничего сложного, но мне все же ближе http, плюс get запросы умеет генерировать любая программа для автоматизации, практически на любой платформе.Список поддерживаемых со стороны ESPEasy команд можно найти тут. Те, что можно запустить по http входят в класс “plugin”.
Таким образом, мы наконец-то добрались до чего-то более менее интересного, ради чего все затевалось. Чтобы щелкнуть реле мы должны подать в сеть команду для включения:
http://--ip-sonoff--/control?cmd=GPIO,12,1
А для выключения:
http://--ip-sonoff--/control?cmd=GPIO,12,0
Общий смысл команды такой: устанавливаем значение типа GPIO, номер pin, значение.
Попробуем облагородить это через domoticz. Зайдем в веб-интерфейс системы и перейдем на вкладку настроек Setup-Hardware, создадим устройство Dummy, обзовем его ESP01Relay, добавить.
Далее на этой же странице, на новом устройстве, нужно нажать кнопку Create Virtual Sensors, обзовем устройство так же ESP01Relay, выберем тип Switch.
И наконец, переходим на вкладку Switches находим наш новый девайс и жмем edit, в поля On Action и Off Action вставляем заветные значения.
Сохраняем. Кликаем на лампочку и наслаждаемся щелчками реле.
В целях автоматизации могут понадобиться также команды отправки импульсов на sonoff, например для включения освещения по движению. Команда:
http://--ip-sonoff--/control?cmd=LongPulse,12,1,60
включит нагрузку через реле на 1 минуту. Подробнее с командами GPIO можно ознакомиться тут.Развитие решения.
На мой взгляд простые щелчки реле не заслуживают отдельной статьи. Поэтому мы будем превращать sonoff basic за 5$ в wifi диммер для светодиодной ленты, которые стоят обычно много дороже. Для этого нам понадобится одно простое устройство — полевой транзистор за 50р.Мы задействуем свободный выход GPIO14 на Sonoff. Схема подключения будет следующая:
Соответственно, вместо D10 и GND ардуины, нужно использовать GPIO14 и GND с гребенки sonoff.
Со стороны Domoticz нам придется исполнить некоторый костыль. Дело в том, что стандартный диммер регулятор в Domiticz отдает значения от 1 до 100, в то время как диммер в ESPEasy работает со значениями от 1 до 1024. Придется их согласовать. Начнем. Создадим новую пустышку, с главной страницы domoticz переходим по меню: setup-hardware-dummy. Назовем его ESP01dimmer (тут название важно). Добавим.
Создадим из этого устройства виртуальный диммер — Create Virtual Sensors и назовем его так же ESP01dimmer, тип Switch. Переходим на вкладку Switches находим наш новый девайс и жмем edit, switch type меняем на dimmer.
Плюс ко всему, нам нужна будет пользовательская переменная, чтобы запоминать состояния диммера. Создадим ее: setup — more options — user variables. Назовем ее “dimm”, тип “integer”, значение, например: “200”.
Далее, начинаем согласовывать уровни. На сколько я понял из интернетов, наиболее простой способ создать event для этого виртуального устройства. Для этого пройдем по ssh на сервер, где запущен domoticz. Нужно попасть в папку где установлен Domoticz и далее /scripts/lua, в этой папке нужно создать файл script_device_ESP01dimmer.lua с содержимым:
commandArray = {}
DomDevice = 'ESP01dimmer';
IP = '---sonoff-ip---';
PIN = "14";
if devicechanged[DomDevice] then
if(devicechanged[DomDevice]=='Off') then
-- print ("OFF dimm = "..uservariables['dimm']);
CalcValue = 0;
else if(devicechanged[DomDevice]=='On') then
DomValue = uservariables['dimm'];
-- print ("ON dimm = "..uservariables['dimm']);
CalcValue = DomValue;
else
-- print("Other");
DomValue = otherdevices_svalues[DomDevice];
CalcValue = DomValue*10;
commandArray['Variable:dimm'] = tostring(CalcValue);
-- print ("dimm Level = "..uservariables['dimm']);
end
end
runcommand = "curl http://" .. IP .. "/control?cmd=PWM," ..PIN.. "," .. CalcValue .. " ";
os.execute(runcommand);
print("PWM calculated value= "..CalcValue);
end
return commandArray
Поясню, что он делает. Во-первых, в скрипте необходимо указать ip адрес sonoff (IP) и тот пин (PIN), к которому подключен транзистор. Логика такая: если в интерфейсе нажали кнопку “выключить”, запоминаем значение бегунка в переменную dimm и выставляем “0” для отправки по сети в sonoff. Если была нажата кнопка “ON”, то вспоминаем значение бегунка из переменной и выставляем его к отправке sonoff. Если же пользователь подвигал бегунок, то берем его значение из Domoticz, умножаем на 10 и выставляем к отправке в sonoff. Какое бы из трех действий ни выполнил пользователь, мы направляем в sonoff команду вида:
http://--sonof-IP--/control?cmd=PWM,PIN,значение диммера.
Разобрались. Теперь перезапускаем Domoticz и пробуем управлять светодиодной лентой.
Управление без Domoticz.
Удаленное управление это прекрасно. Плюс можно прикрутить кнопки Xiaomi и управлять всем освещением с одной клавиши, это очевидные плюсы. Но что если Ваши кнопки Xiaomi еще в пути из Китая? Об этом позаботились разработчики ESPEasy. Контроллер умеет обрабатывать простые сценарии без комманд от большого брата — Domoticz. Тут, конечно, надо отдавать себе отчет, что обратную связь мы еще не настраивали и такое управление будет в некоторых случаях неожиданным для системы управления, и она отобразит неверное состояние прибора, будьте внимательны.Итак, на модуле sonoff нам доступна одна кнопка, используем ее как орган управления.
Первым делом, нам потребуется активировать в ESPEasy механизм правил. Заходим по http на sonoff, выбираем раздел Tools-Advanced-Rules (поставить галочку).
Появится новый пункт меню Rules. Но мы сначала заглянем в раздел: Devices, напротив первого пункта таблицы жмем Edit. Выберем типом устройства Switch input. Имя: “button”. IDX / Var:1(число); 1st GPIO: GPIO-0. Switch Button Type: Push Button Active Low. И в самом низу: Value Name 1: “state”. Сохраняем.
Теперь кликаем на Rules в основном меню и видим окно редактора. Вставляем следующий код:
on button#state do
if [button#state]=0
PWM,14,0
gpio,13,1
else
PWM,14,1024
gpio,13,0
endif
endon
Думаю очевидно, что делает код. На изменение состояния кнопки, дается команда: выключить диммер, выключить светодиод или наоборот: включить диммер, включить светодиод. При особом желании можно реализовать ступенчатое изменение мощности. Подробнее о правилах можно прочитать тут.
Заключение.
На этой ноте хотел бы завершить свой рассказ о WiFi реле sonoff в инфраструктуре умного дома на базе Domoticz. Я постарался наиболее подробно расписать действия, чтобы у новичков была возможность повторить все эти манипуляции и что более важно, чтобы эти манипуляции стали понятны. Все вопросы и нестыковки можно обсудить в комментариях.
Самые обсуждаемые обзоры
+73 |
3651
145
|
+53 |
3845
69
|
+34 |
2925
55
|
Без
…
commandArray = {}
DomDevice = 'ESP01dimmer';
…
и прочего?
А тот скрипт, что Вы указали, реализует управление отдельно взятым диммером.
Кнопка подаёт сигнал на сервер, он обрабатывается в Domoticz и он же посылает сигнал на Соноффы?
И ещё, почему Domoticz, а не MajorDoMo?
И, например, на клик можно включать люстру, а на два клика — светодиоды, на долгий клик — все это добро разом выключить.
А домотиз, потому что много реализованных устройств уже в коробке. Не надо все писать руками. И просто чаще встречал упоминания о нем.
Да, MajorDoMo хоть и оказался довольно сложным и муторным в первоначальной настройке, но показался мне более гибким. А вот с упоминаниями в сети совершенно противоположное мнение, наверно мы разными поисковиками пользуемся)))
Спасибо Вам!
Главный плюс этого решения что скорость срабатывания Соноффов увеличилась значительно, отрабатывает включение/выключение мгновенно. Стоит только включить по радиоканалу, в сервере мгновенно меняется состояние!
Другие прошивки модулей не использовал, т.к. в MajorDoMo придётся настраивать MQTT в ручную. Тут же выключатели сами дают о себе знать серверу.
А с настенными выключателями всё очень просто. Экспериментировал с различными платами на частоте 433МГц, но в конечном итоге остановился на обычных радиобрелках за 100 рублей. И встроил эти радиобрелки в распредкоробку под сам выключатель. Выключатели использовал с дополнительной пружинкой, чтобы не было фиксации кнопки.
Вот например один из первопроходцев домотикза на этом сайте: mysku.club/profile/kvazis/, но лучше поиском по ключевому слову domoticz, xiaomi smart home
К примеру то-же включение света по движению — более чем удобно в тёмном коридоре, а если добавить сюда немного логики и подключить суточное реле, то свет можно днём включать в полный накал, а после 12 в пол накала (или только настенные бра), соответственно оставляя возможность включить весь свет в полный накал по кнопке.
Или в ванной комнате: пара датчиков движения + геркон на входной двери + логика. Пока человек двигается за закрытой дверью свет не выключается. Если дверь открыта, а движения нет больше 5 минут — свет выключается. Потом включается вытяжка на 5-10 минут. Или запускающаяся от датчиков влажности, опять-таки включая таймер.
Или сложнее: приточная установка, которая включается только после появления кого-то дома (датчик на защелке входной двери или на светодиоде сигнализации), поддерживающая температуру и проветривающий комнату/комнаты в соответствии с датчиками температуры и СО2. А так-же включающийся телевизор на новостном канале, музыка, свет в комнате…
В общем повторюсь, — всё зависит от вашей фантазии и того, сколько вы времени и души будете вкладывать в это творение.
Лично я буду собирать себе вариант с ванной комнатой (но реле «отечественные» бистабильные, а вот логика возможно на чём-то китайском будет базироваться… пока немного не до того: адский ремонт-с адской душевой…)
Исполнительным механизмом как управлять при условии автономного питания?
ТС несколько раз упоминал про переделку датчика и я жду ответа от него.
Текстолит с контактами это не сухой контакт геркона. Будет совершенно другое сопротивление.
Впрочем меня так-же интересует реализация ТС, в целях саморазвития. Рискну предположить, что он делал что-то наподобие этого — www.ixbt.com/live/kvazis/datchik-protechki-vody-dlya-sistemy-umnyy-dom-xiaomi.html но… подождём ответа.
Мне нравится то что у ксаоми есть удобные датчики, но от ксаоми мне нужно мало, основное будет крутится на малинке и к месту установки малинки уже раскиданы и похоронены в штукатурке провода, в том числе и на датчики затопления, а этих датчиков будет несколько. Один привод на кран уже пришел. Обработку действий написать меньше 10 строк кода.
зы: лично себе купил один комплект аквасторожа «эксперт» (но… два стояка, так что второй тоже на горизонте виднеется…) для защиты от протечек. Увы, не считаю себя гением, что бы на коленке изображать что-то аналогичное в многоквартирном доме. И не зарабатываю столько что бы делать себе, и тем кто подо-мной, ремонт… тем более что разница в стоимости самоделка vs аквасторож не покроет ничего)
зызы: но если говорить о датчиках протечек с чисто познавательной стороны, то тут ничего не имею против — когда дойдут руки до полоумного дома, обязательно раскидаю рядом с аквасторожевскими… не что бы управлять «исполнительными механизмами», а что бы знать.
Мне кажется не корректно называть мою систему open source, т.к. используется, например шлюз Xiaomi с закрытым исходным кодом. Используется он просто потому, что беспроводные датчики супер удобные.
Чистый open source это такой «умный дом на сложности эксперт». Как вариант, могу описать эскиз, где вам не потребуется закрытых решений, но придется пожертвовать удобством. Для Вашей задачи сгодится ардуина, но т.к. мы говорим о централиации, возьмем опять же ESP8266, чтобы передавать статус работы куда нибудь в сеть и оповещать о событиях пользователя. Лучше, чтобы это была отладочная плата с разведенным питанием и конвертером USB2Serial для прошивки, например этот: mysku.club/blog/aliexpress/38586.html
Опять же прошивку для него напишем самостоятельно, используя ArduinoIDE, чтобы быть уверенным, что в коде все чисто.
Из переферии понадобится датчик протечки: такой, два шаровых крана с моторизированным приводом. В зависимости от привода(но скорее всего да), понадобится контроллер шагового двигателя.
Логика устройства будет такая: на одной GPIO, настроенной на вход, будет висеть датчик протечки. 4 ноги (либо по шине I2C) будут управляться краны, плюс пару ног на индикацию. Если на ноге с датчиком появляется «1», это алерт, все плохо. Закрываем краны и трубим в трубу. В качестве развития системы, можем подключить библиотеку для получения точного времени по NTP, чтобы реализовать проверку кранов, например раз в 2 недели. Так же можно настроить нотификацию о протечке по email\push. И заметьте, все это на контролерре за 3$ без лишних серверов. Если есть сервер, то можем проверку кранов и нотификацию реализовать на нем.
Спасибо за консультацию. Но все же я буду делать и называть это open source и то что используется что то от ксаоми ничего страшного для меня, ибо облачные плюшки мне их не нужны.
Одну ошибку сделал когда делал проводку в квартире — забыл кабель кинуть до крана в туалете, теперь плитка и думаю как бы поставить привод который жрет 50-100 мА во время хода
ЗЫ я прогер, линуксоид, асутпшник, радиолюбитель и программист в одном лице
Еще и кабели в комплекте! И куча gpio разведены, питается непосредственно от БП ленты.
5-и канальная H801 тоже стоит около 6$.
blog.ipsumdomus.com/sonoff-switch-complete-hack-without-firmware-upgrade-1b2d6632c01
а пока, кто нибудь подскажет нормальный мануал как sonoff подружить c domoticz с сохранением показаний температуры/влажности?
Вот несколько сумбурный мануал: geektimes.ru/post/289123/
Вообще, я читал, что ESPEasy и Domoticz отлично дружат по mqtt, что подтверждает товарищ
Воду я не перекрываю, т.к. у меня нет физической возможности расположить моторизированные краны на вводе воды — стояки зашиты плиткой и сами краны опломбированы, т.к. перед ними счетчики… Я на протечку оставил алерт в виде push уведомления. Тоже лучше чем ничего.
Не пойму, многие используют именно Domoticz?
А так, предлагаю вам обменяться сообщениями с NeverminD81, он писал выше, что у него интеграция работает
Плат ESP8266 на али много разновидностей, какую лучше брать?
1) покупаете нормальную ESP (Witty Cload например)
2) вешаете на свободный GPIO раз в минуту отправлять сигнал, а на соседний GPIO проверку состояния пина и резистор, когда они замкнутся (вода проводит электричество), то на втором GPIO будет логическая «1» и далее настраиваете отправку вам сообщения на почту (вроде есть варианты даже смс).
3) при желании можно сделать ещё и глубокий сон и в моменты между сверкой сигналов ваша ESP будет крепко спать и практически не кушать батарею.
Сам сейчас такое настраиваю (только с отправкой состояния на MajorDomo), но времени не хватает.
Только для esp придется подвести питание, что в условиях ванной комнаты может быть затруднено. Я использую радиодатчик xiaomi с таким же детектором протечки. Датчик передает показания на свой шлюз, а шлюз в домотикз. Если детектируется протечка, то нотификация через pushover из домотикз
Esp лучше брать как советуют выше, ее будет удобно прошивать подходящей под ваши нужды прошивкой. Blynk умеет, то что вам нужно, но работает через иннет. Такую простую логику можно реализовать локально через ту же espeasy(посмотрите на раздел rules), если реакция — перекрывание кранов. Если смс/почта(опять же нужно быть уверенным, что интернет вас не подведет), то смотрите wifiiot, или сами в arduinoIDE через готовые библиотеки.
Цифры там — это номера пинов в nodemcu, поскольку оно туда загружено.
Двно хочу повторить ваш подвиг (просто что бы было) но пока этих хватает с голосой.
Сорри за некропост )
И как именно делать сброс?
echo reset > COM1
из командной строки?
А вопрос следующий.
Sonoff basic или RF например из коробки. Вот скажем задан цикличный таймер 20 минут включено/ 20 минут выключено.
А что будет, если интернет отрубится? Sonoff продолжит включать/выключать? Или нафиг все работать перестанет сразу, и просто будет состояние выключено?
Спасибо
В самой прошивке есть свой язык (Rules) и если сделать на этих скриптах то работать будет всегда. Например у меня вся логика вынесена на сонофы (повозможности) и только сигнализация о состоянии идет. которую уже отображают системы (графана в моем случае)
Только начал изучать тему «Умного дома».
В этой статье вы рассматриваете 2 варианта использования: реле и диммер.
А можно задействовать оба этих решения на одном устройстве?
Можно ли подключить транзистор с 12В питанием и задействовать 220В без развязки?
Хочется управлять люстрой через реле и диодной подсветкой используя 1 Sonoff.
и дешевле и акции распродажные устраивают.
Напоминаю, что на sonoff basic не только gpio 14
TX и RX это тоже активные GPIO, чтобы их активировать на прошивке от espeasy
надо отключить их в сериал порт, по ним идёт какое то доп логирование.