Интеграция блоков реле Sonoff basic в систему умного дома на базе Domoticz


Добрый день, коллеги!
В этой статья я хотел бы обобщить опыт, полученный при интеграции блоков реле 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в и т.д.
Дополнительная информация
Отсутствовали готовые прошивки и интеграция в среду 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 и вы указали неверный пароль сети или неверный 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. Я постарался наиболее подробно расписать действия, чтобы у новичков была возможность повторить все эти манипуляции и что более важно, чтобы эти манипуляции стали понятны. Все вопросы и нестыковки можно обсудить в комментариях.
+
avatar
  • starson
  • 08 августа 2017, 18:56
+1
А можно в сжатом виде что и как управляется данной системой?
Без

commandArray = {}
DomDevice = 'ESP01dimmer';


и прочего?
+
avatar
  • dilligaf
  • 08 августа 2017, 19:09
0
Всей системой автоматизации? На данный момент только свет и вентиляция. Собирается температура по зонам.
А тот скрипт, что Вы указали, реализует управление отдельно взятым диммером.
+
avatar
  • starson
  • 08 августа 2017, 19:15
0
Вопрос, как этим всем рулить? ну, вот свет на кухне. Мне нужно найти кнопку управления, которая болтается где-то в комнате нажать, чтобы включить свет? или как?
+
avatar
  • dilligaf
  • 08 августа 2017, 19:18
0
Да, тут показан механизм управления из интерфейса Domoticz. Это, конечно, не особо удобно. В качестве реальных выключатей может выступать, например кнопка Xiaomi, или сигнал от открытия двери, или с датчика движения.
+
avatar
0
Расскажите, пожалуйста, подробней о кнопках Сяоми в данном проекте.
Кнопка подаёт сигнал на сервер, он обрабатывается в Domoticz и он же посылает сигнал на Соноффы?
И ещё, почему Domoticz, а не MajorDoMo?
+
avatar
  • dilligaf
  • 08 августа 2017, 22:46
+1
Даже чуть сложнее: кнопка подает сигнал в шлюз по zigbee, шлюз — в домотикз. Но это все работает достаточно быстро, как ни странно. Что касается логики работы кнопки: нажатие — это event, любой event можно обработать: включить свет или отправить http запрос или проиграть мелодию, тут сколько есть фантазии. А самое крутое, кнопки Xiaomi умеют 4 ивента:
И, например, на клик можно включать люстру, а на два клика — светодиоды, на долгий клик — все это добро разом выключить.
А домотиз, потому что много реализованных устройств уже в коробке. Не надо все писать руками. И просто чаще встречал упоминания о нем.
+
avatar
+1
Многое я упустил с устройствами от Сяоми, интересовался ими когда они только появились и еще не были интегрированы в сторонние приложения управления))) Надо сегодня же наверстать упущенное, благо на это есть форумы и наш любимый Мysku! Хотя необходимость в выключателях у меня уже отпала, сейчас работают СоноффыРФ в паре с обычными настенными выключателями переведёнными на радиочастоту.
Да, MajorDoMo хоть и оказался довольно сложным и муторным в первоначальной настройке, но показался мне более гибким. А вот с упоминаниями в сети совершенно противоположное мнение, наверно мы разными поисковиками пользуемся)))
Спасибо Вам!
+
avatar
  • dilligaf
  • 08 августа 2017, 23:15
+1
В схеме с RF выключателями есть один большой минус — они работают мимо сервера, соответственно статус устройств, если они заведены в Домотикз, отображается некорректно, та самая пресловутая обратная связь. Но вашу существующую схему можно доработать без переделки конструктива, если sonoff будет отправлять свое состояние при преключениях на сервер. А так, удачи в ваших опытах :)
+
avatar
+1
В MajorDoMo мгновенно отрабатывается изменения Соноффа, неважно откуда произведена коммутация. При включении/выключении с радиопульта, состояние тут же отображается в сервере. Так что с обратной связью проблем вообще нет. Наверно поэтому я и остановился на MajorDoMo. Но зараза, так всё неудобно настраивать)))
+
avatar
  • Zhenya88
  • 09 августа 2017, 19:13
+1
У вас по MQTT в MD работает или как? расскажите подробнее, пожалуйста.
+
avatar
+2
Использую SonoffRF, для возможности управления выключателями по радиоканалу. В Соноффы залита прошивка wifi-iot.com, там изначально в настройках датчиков указывается IP адрес сервера MajorDoMo. И сервер их подхватывает автоматом по MQTT. Есть одно уточнение, в бесплатной прошивке идёт опрос Соноффов раз в 10 минут, что понятно неприемлемо для полноценной «обратной связи», но в платной версии опрос раз в 5 секунд и этого вполне достаточно.
Главный плюс этого решения что скорость срабатывания Соноффов увеличилась значительно, отрабатывает включение/выключение мгновенно. Стоит только включить по радиоканалу, в сервере мгновенно меняется состояние!
Другие прошивки модулей не использовал, т.к. в MajorDoMo придётся настраивать MQTT в ручную. Тут же выключатели сами дают о себе знать серверу.
А с настенными выключателями всё очень просто. Экспериментировал с различными платами на частоте 433МГц, но в конечном итоге остановился на обычных радиобрелках за 100 рублей. И встроил эти радиобрелки в распредкоробку под сам выключатель. Выключатели использовал с дополнительной пружинкой, чтобы не было фиксации кнопки.
+
avatar
  • tost
  • 08 августа 2017, 19:07
0
Это вообще для тех кто в частных домах живёт или в квартире тоже удобно? Я об умном доме вообще.
+
avatar
  • dilligaf
  • 08 августа 2017, 19:13
+1
Можно светом в квартире рулить, например, если установить в люстру модуль sonoff, для квартиры просто чуть меньше точек автоматизации. Но если фантазия богатая — можно. Например сценарии включения света по движению, а по отсутствию — отключения. Контроль протечек, увлажнение воздуха, управление приборами, контроль расхода энергии/воды в единой точке и тд и тп.
+
avatar
  • tost
  • 08 августа 2017, 19:21
0
Спасибо! А о таких идеях применения можете посоветовать где почитать?
+
avatar
  • dilligaf
  • 08 августа 2017, 19:24
+1
А тут же на муське у людей годные обзоры. От азов и до «мисье знает толк».
Вот например один из первопроходцев домотикза на этом сайте: mySKU.me/profile/kvazis/, но лучше поиском по ключевому слову domoticz, xiaomi smart home
+
avatar
  • Hyper
  • 08 августа 2017, 19:38
+1
Всё упирается в вашу фантазию, желание, лень и кошелёк. Ну и нужно вам это или нафиг не сдалось ;)

К примеру то-же включение света по движению — более чем удобно в тёмном коридоре, а если добавить сюда немного логики и подключить суточное реле, то свет можно днём включать в полный накал, а после 12 в пол накала (или только настенные бра), соответственно оставляя возможность включить весь свет в полный накал по кнопке.

Или в ванной комнате: пара датчиков движения + геркон на входной двери + логика. Пока человек двигается за закрытой дверью свет не выключается. Если дверь открыта, а движения нет больше 5 минут — свет выключается. Потом включается вытяжка на 5-10 минут. Или запускающаяся от датчиков влажности, опять-таки включая таймер.

Или сложнее: приточная установка, которая включается только после появления кого-то дома (датчик на защелке входной двери или на светодиоде сигнализации), поддерживающая температуру и проветривающий комнату/комнаты в соответствии с датчиками температуры и СО2. А так-же включающийся телевизор на новостном канале, музыка, свет в комнате…

В общем повторюсь, — всё зависит от вашей фантазии и того, сколько вы времени и души будете вкладывать в это творение.
Лично я буду собирать себе вариант с ванной комнатой (но реле «отечественные» бистабильные, а вот логика возможно на чём-то китайском будет базироваться… пока немного не до того: адский ремонт-с адской душевой…)
+
avatar
  • dio45rus
  • 08 августа 2017, 19:43
+1
полную совместимость с Domoticz я не проверял
Я проверял. Работает по MQTT и понимают друг друга.
+
avatar
  • dilligaf
  • 08 августа 2017, 19:46
0
Я читал, что работает, но кто-то говорит, что http не работает. Поэтому написал оговорку :)
+
avatar
  • batcoh
  • 08 августа 2017, 19:52
+12
Извините, не сдержался :)
+
avatar
  • sersad
  • 08 августа 2017, 20:35
0
Второй раз упоминаете про переделку датчиков открытия дверей в датчик протечки. Можно подробности? Родные датчики стоят чет не разумно.
Исполнительным механизмом как управлять при условии автономного питания?
+
avatar
  • Hyper
  • 08 августа 2017, 21:00
0
Так тут интегрируют в «умный дом», а не в существующую систему типа Аквасторож или Нептун. Посмотрите строение своего датчика и сделайте по их образу: обычно это фольгированный текстолит, на котором вытравлены дорожки и к ним припаян провод до базы. Схема может быть чуть усложнена (у Аквасторож Эксперт вроде какой-то обмен идёт с базой на случай обрыва — мне свои пока нет охоты вскрывать, хотя тоже цена на новые не радует), в общем надо смотреть…)
+
avatar
  • sersad
  • 08 августа 2017, 21:31
0
Мне всякие готовые аквасторожы не нужны, меня конкретно интересует только Smart Home на базе open source систем.
ТС несколько раз упоминал про переделку датчика и я жду ответа от него.
Текстолит с контактами это не сухой контакт геркона. Будет совершенно другое сопротивление.
+
avatar
  • Hyper
  • 08 августа 2017, 21:44
+1
Всякое бывает, по вашему первоначальному вопросу этого понятно не было (точнее я не понял что под родными вы подразумевали датчики не под сторонние железки))

Впрочем меня так-же интересует реализация ТС, в целях саморазвития. Рискну предположить, что он делал что-то наподобие этого — www.ixbt.com/live/kvazis/datchik-protechki-vody-dlya-sistemy-umnyy-dom-xiaomi.html но… подождём ответа.
+
avatar
  • sersad
  • 09 августа 2017, 01:31
0
очень похоже на то что дал ТС.
Мне нравится то что у ксаоми есть удобные датчики, но от ксаоми мне нужно мало, основное будет крутится на малинке и к месту установки малинки уже раскиданы и похоронены в штукатурке провода, в том числе и на датчики затопления, а этих датчиков будет несколько. Один привод на кран уже пришел. Обработку действий написать меньше 10 строк кода.
+
avatar
  • Z2K
  • 09 августа 2017, 02:55
0
основное будет крутится на малинке
— а основное это что?
+
avatar
  • dilligaf
  • 08 августа 2017, 22:32
+1
Добрый вечер! В моей системе испольуется датчик пределанный по инструкции: youtu.be/YcQecXF_Cks

Мне кажется не корректно называть мою систему open source, т.к. используется, например шлюз Xiaomi с закрытым исходным кодом. Используется он просто потому, что беспроводные датчики супер удобные.
Чистый open source это такой «умный дом на сложности эксперт». Как вариант, могу описать эскиз, где вам не потребуется закрытых решений, но придется пожертвовать удобством. Для Вашей задачи сгодится ардуина, но т.к. мы говорим о централиации, возьмем опять же ESP8266, чтобы передавать статус работы куда нибудь в сеть и оповещать о событиях пользователя. Лучше, чтобы это была отладочная плата с разведенным питанием и конвертером USB2Serial для прошивки, например этот: mySKU.me/blog/aliexpress/38586.html
Опять же прошивку для него напишем самостоятельно, используя ArduinoIDE, чтобы быть уверенным, что в коде все чисто.
Из переферии понадобится датчик протечки: такой, два шаровых крана с моторизированным приводом. В зависимости от привода(но скорее всего да), понадобится контроллер шагового двигателя.
Логика устройства будет такая: на одной GPIO, настроенной на вход, будет висеть датчик протечки. 4 ноги (либо по шине I2C) будут управляться краны, плюс пару ног на индикацию. Если на ноге с датчиком появляется «1», это алерт, все плохо. Закрываем краны и трубим в трубу. В качестве развития системы, можем подключить библиотеку для получения точного времени по NTP, чтобы реализовать проверку кранов, например раз в 2 недели. Так же можно настроить нотификацию о протечке по email\push. И заметьте, все это на контролерре за 3$ без лишних серверов. Если есть сервер, то можем проверку кранов и нотификацию реализовать на нем.
+
avatar
  • sersad
  • 09 августа 2017, 01:24
0
Спасибо, я предполагал что именно так датчик и будет работать.
Спасибо за консультацию. Но все же я буду делать и называть это open source и то что используется что то от ксаоми ничего страшного для меня, ибо облачные плюшки мне их не нужны.
Одну ошибку сделал когда делал проводку в квартире — забыл кабель кинуть до крана в туалете, теперь плитка и думаю как бы поставить привод который жрет 50-100 мА во время хода

ЗЫ я прогер, линуксоид, асутпшник, радиолюбитель и программист в одном лице
+
avatar
  • Aven
  • 08 августа 2017, 23:34
0
< 1000 рублей за датчик (со степенью защиты от влаги) протечки это неразумно? У Аквасторожа столько стоит тупая плата с проводком и корпусом ))
+
avatar
  • sersad
  • 09 августа 2017, 01:27
0
лично я не вижу смысла платить по 1100 р за датчик когда датчики открытия дверей покупал по 400
+
avatar
  • Aven
  • 09 августа 2017, 09:06
0
600 и 1000 я бы сказал, всего 400р переплата, небольшие деньги, вы почему-то свой труд не учитываете в затратах.
+
avatar
+1
Да уж родное облако сонофф меня сильно разочаровало. Точнее даже механизм взаимодействия родной прошивки с родным облаком. Релюхи просто иногда отваливаются из онлайна и без передергивания питания не возвращаются…
+
avatar
  • Aven
  • 08 августа 2017, 23:19
+2
Поэтому мы будем превращать sonoff basic за 5$ в wifi диммер для светодиодной ленты, которые стоят обычно много дороже.
$4.30 за 4 канальную Electrodragon ESP LED Strip Board это много дороже?
Еще и кабели в комплекте! И куча gpio разведены, питается непосредственно от БП ленты.

5-и канальная H801 тоже стоит около 6$.
+
avatar
  • dilligaf
  • 08 августа 2017, 23:25
0
Это норм, вам плюс за находку, просто на али мне такие готовые модули не попадались, а у sonoff раньше был диммер поцене около 12$, отсюда и делал выводы.
+
avatar
  • Aven
  • 08 августа 2017, 23:32
+1
Да, они торгуются только на своем сайте, там уже несколько моделей есть и с AC питанием и с DC. 2 реле на борту и куча GPIO, место под DHT датчик (правда лучше вынести, т.к. чип ESP горячий) и RF приемник. Sonoff уже неинтересны :)
+
avatar
  • Z2K
  • 09 августа 2017, 03:09
0
Логично было так сделать чем по ESP на один канал.
+
avatar
0
На фото поддельный irl. Видны полосы запилов по всей плоскости от китайского наждака, который снимал предыдущую маркировку…
+
avatar
0
Не боитесь гениев, что замусорят в эфир и устроят вам новогоднюю гирлянду?
+
avatar
  • dilligaf
  • 09 августа 2017, 09:29
0
Для sonoff basic и esp8266 в общем это не актуально, т.к. устройство подключается к Вашей сети. Актуально для RF 433Mhz. Статья как раз о том, как отказаться от 433Mhz.
+
avatar
0
я наверное параноик, но у себя все сделал проводными. и отдельной сетью…
+
avatar
  • Almister
  • 09 августа 2017, 09:48
0
Ждем когда в domoticz можно будет подключить sonoff на оригинальной прошивке.
blog.ipsumdomus.com/sonoff-switch-complete-hack-without-firmware-upgrade-1b2d6632c01

а пока, кто нибудь подскажет нормальный мануал как sonoff подружить c domoticz с сохранением показаний температуры/влажности?
+
avatar
  • dilligaf
  • 09 августа 2017, 09:59
+1
Добрый день.
Вот несколько сумбурный мануал: geektimes.ru/post/289123/
Вообще, я читал, что ESPEasy и Domoticz отлично дружат по mqtt, что подтверждает товарищ
+
avatar
  • dushes
  • 09 августа 2017, 10:34
0
Вопрос, какой минимальный набор (кроме датчиков) нужен, чтобы запилить Domoticz? И, еще, чем вы воду перекрываете в случае срабатывания датчика протечки?
+
avatar
  • dilligaf
  • 09 августа 2017, 11:07
+2
Домотикз можно запилить на любом ПК, почти на любой платформе. Я, как и многие, использую для этого Малинку, можно для теста развернуть на Windows. Сам по себе Домотикз это просто веб-сервер, в котором разработчик зашил возможность управления некоторыми устройствами, типа YeeLED, Xiaomi SmartHome, Philips Hue и т.д.(сотни их), которые можно добавить в централизованную систему управления, просто кликнув мышкой и указав их IP. Это удобно, не надо самому разбирать протоколы руками и писать скрипты. За счет того, что у Вас все устройства будут сведены в одну экосистему, события с одного устройства можно использовать для активации другого устройства. Например лампочка YeeLED у вас будет не просто управляться со своего приложения на телефоне, а будет зажигаться, когда прогноз погоды обещает дождь через 3 дня. Т.е. вы не ограничены идеями разработчика приложения для телефона, а сами придумываете сценарий из всех устройств, которые можно подключить к Domoticz.
Воду я не перекрываю, т.к. у меня нет физической возможности расположить моторизированные краны на вводе воды — стояки зашиты плиткой и сами краны опломбированы, т.к. перед ними счетчики… Я на протечку оставил алерт в виде push уведомления. Тоже лучше чем ничего.
+
avatar
  • dushes
  • 09 августа 2017, 13:03
0
Спасибо! Раз вы в теме, посоветуйте годный ресурс по Domoticz?
+
avatar
  • dilligaf
  • 10 августа 2017, 23:50
0
У домотикза крутой wiki www.domoticz.com/wiki/Domoticz_Wiki_Manual про все. Куча видообзоров на любую тему. Гуглите: название девайса domoticz
+
avatar
  • Zhenya88
  • 09 августа 2017, 12:19
+1
А есть информация про интеграцию этих модулей в Majordomo?
Не пойму, многие используют именно Domoticz?
+
avatar
  • dilligaf
  • 09 августа 2017, 14:36
+1
Я знаю, что прошивка homes-smart умеет отсылать данные в majordomo
А так, предлагаю вам обменяться сообщениями с NeverminD81, он писал выше, что у него интеграция работает
+
avatar
  • f1203
  • 10 августа 2017, 09:47
0
Интересный обзор. Как я понял для оповещения о протечках мне нужно: ESP8266, сенсор и программа на смартфон blynk. Этого достаточно?
Плат ESP8266 на али много разновидностей, какую лучше брать?
+
avatar
  • Zhenya88
  • 10 августа 2017, 14:21
+1
Да по идее всё проще:
1) покупаете нормальную ESP (Witty Cload например)
2) вешаете на свободный GPIO раз в минуту отправлять сигнал, а на соседний GPIO проверку состояния пина и резистор, когда они замкнутся (вода проводит электричество), то на втором GPIO будет логическая «1» и далее настраиваете отправку вам сообщения на почту (вроде есть варианты даже смс).
3) при желании можно сделать ещё и глубокий сон и в моменты между сверкой сигналов ваша ESP будет крепко спать и практически не кушать батарею.

Сам сейчас такое настраиваю (только с отправкой состояния на MajorDomo), но времени не хватает.
+
avatar
  • dilligaf
  • 10 августа 2017, 23:42
+2
Обзор несколько не об этом, но да, можно и так.
Только для esp придется подвести питание, что в условиях ванной комнаты может быть затруднено. Я использую радиодатчик xiaomi с таким же детектором протечки. Датчик передает показания на свой шлюз, а шлюз в домотикз. Если детектируется протечка, то нотификация через pushover из домотикз
Esp лучше брать как советуют выше, ее будет удобно прошивать подходящей под ваши нужды прошивкой. Blynk умеет, то что вам нужно, но работает через иннет. Такую простую логику можно реализовать локально через ту же espeasy(посмотрите на раздел rules), если реакция — перекрывание кранов. Если смс/почта(опять же нужно быть уверенным, что интернет вас не подведет), то смотрите wifiiot, или сами в arduinoIDE через готовые библиотеки.
+
avatar
0
Sonoff решил все эти проблемы разом, упаковав в небольшой корпус источник питание 220в -> 5в -> 3.3в, чип ESP8266 с реле и даже оставив еще один свободный GPIO.
Почему один? :)


Цифры там — это номера пинов в nodemcu, поскольку оно туда загружено.