Как устанавливать плагины domoticz windows

Обновлено: 02.07.2024

Конечно можно использовать и другой роутер с установленной OpenWrt. ОС может быть и ниже, так у меня, абсолютно точно, работало на OpenWrt 18.06. Основная проблема в памяти, главное что бы ее хватило, именно поэтому мы и увеличивали память и ставили жесткий диск, ссылки как это делать в конце страницы.

Это серия статей (VII часть) направленная на модернизацию роутера (роутеров) ссылки в конце страницы.

Установка

Установка очень проста и возможна как всегда двумя способами

  1. Через WEB интерфейс LuCI
  2. Через терминал, командную строку

Через WEB интерфейс LuCI

Установка продемонстрирована на скриншоте тут даже и добавить нечего.

Через терминал, командную строку

Все так же довольно просто, как обычно:

Ждем! Это довольно большой пакет, поэтому все установится, но не быстро, ждите!

WEB интерфейс доступен на порту 8080, по адресу роутера, к примеру вот так (если адрес роутера 192.168.1.1)

Вводим и нас встречает первое окно

Обалдеть, все работает!

И при первой встречи он ругается:

Не определены избранные устройства . (Или связь потеряна!)
Если вы здесь впервые, настройте оборудование и добавьте устройства.

Управление сервисом Domoticz

Перезагрузка файлов конфигурации

Настройки

Обязательно дочитаете до конца, иначе нужно будет повторять этот шаг, так как настройки не сохранятся.

Сразу попробуем изменить язык интерфейса, заходим в Setap>Settings

Выбираем Русский и жмем красную кнопку "Apply Settings" Но он не даст ничего поменять так как не настроены координаты

Это важно для определения восхода и заката, а значит продолжительности светового дня и ночи, скачивания погоды и метеорологических данных

Самое простое посмотреть на картах, например на Гугл картах

Вводим координаты, например для центра Санкт-Петербурга

Обязательно нужно ввести еще данные по безопасности иначе не сможете подключится после применения настроек, это

  • Website Protection
  • Local Networks (no username/password)

Website Protection (защита сайта)

Нужно ввести имя и пароль пользователя для подключения.

Local Networks (no username/password) (локальные сети (без имени/пароля))

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

У Вас может быть другой диапазон адресов, который соответствует вашей локальной сети.

Внимание! Куда подевались все настройки?

Именно поэтому нужно было дочитать до конца! Если вы перезагрузите роутер выдернув из него питание или введете:

То всё ваши настройки пропадут и все придется начинать сначала! Причем если вы введете перезагрузку сервиса:

Все останется на своих местах.

Давайте разберемся почему так происходит и сделаем как надо.

Для того чтобы все было нормально нужно сделать всего два изменения в конфигурационных файлах

Изменения №1

Нас интересует разделе "config domoticz" пункт "option userdata"

Меняем его устанавливаем к примеру, вот так:

Сохраняем все: CTRL-X, а затем "Y"

Изменения №2
Идем в:

открываем его в разделе config_get userdata "$section" "userdata" и устанавливаем вместо:

Прикрепленное изображение

Описание:
Cистема домашней автоматизации Domoticz представляет собой бесплатную и открытую программную платформу для комплексного управления домашней автоматикой, а так же для информационной поддержки жизнедеятельности. Данная система может быть установлена практически на любой персональный компьютер (на платформе Windows и Linux) и совершенно не требовательна к ресурсам. Русский язык присутствует.
Совместимое оборудование:
Smart устройства Xiaomi
Sonoff (при смене прошивки на альтернативную)
IP cameras
Philips smart led
Broadlink RM plus

Причина редактирования: Как извлечь IR команды для использования в Domoticz Если у Вас также есть установленная система, напишите в лс аналогичный пост. Добавлю в шапку.
На данный момент domoticz развернут на моем домашнем сервере в виртуальной машине с ubuntu.
Что уже умеет моя система и с чем уже могу помочь в настройке:
1. Загружен план дома и настроены планы каждого помещения
2. Показывает температуру за окном с помощью Dark Sky API
3. Показывает температуру в комнате (TH10) и второй комнате(скоро)
4. Установлена тема оформления aurora
5. Автоматическое определение о нахождении дома членов семьи с помощью сервиса LIFE360
6. Push уведомления на мобильный с помощью Pushbullet API
7. Также настроен бот Telegram API, для управления и уведомлений. Но пока что то не работает. (Разбираюсь)
8. Добавлена IP камера которая смотрит на паковочные места и вход на участок. (Хоть и имеется полноценная система видеонаблюдения.)
9. В доме имеется реле sonoff TH10 с датчиком температуры. Управляет насосом системы отопления. Регулировка осуществляться таки образом: Если насос качает воду от котла- батареи- теплеют, не качает- остывают. Domoticz учитывает температуру на улице, температуру в комнате и время года. Потом выбирает необходимый сценарий работы. (Включено постоянно, включено по циклическому таймеру или выключено.)
10. На стену прикручен старый планшет Surface RT в качестве монитора управления
11. Для планшета адаптировал красивую страничку взятую с офф форума. Кому надо-пишите в ЛС

Прикрепленное изображение

Ссылка на sonof не работает, поправьте плиз. Выбираю систему под умный дом, пока изучаю доматикс и мажордом. Интересует пару вопросов:
1. Система поддерживает соноф реле после перепрошивки. Они построены на esp8266. В планах организация подсветки именно на espшках RGBW лентами и желательно иметь возможность это все автоматизировать, управлять. Такое возможно? Выбор цвета по действию и тп.
2. Стоит ли покупать для сервера скажем неттоп/нетбук вместо малинки/апельсинки?


Как я понимаю. После интеграции будет виден каждый канал реле в системе с вариантами on off. Если каждый цвет на одном канале- то да. Можно автоматизировать вот надо не реле, а диммер. Дабы не 7цветов а болей было с плавной регулировкой.

Кто нибуть помогите с настройкой:
1. Как сделать так чтоб при запуске domoticz(например после случайной перезагрузки) 3 нужных мне выключателя перешли в состояние выключено? Просто некоторые скрипты начинают работу как раз с проверки этих выключателей. А если сервак ребутается когда они включены например на 5 минут. То он их уже не выключит. И сценарии не сработают. Актуально!
2. Пример блочного скрипта на циклический таймер победил
3. И запуск одного скрипта из другого. уже не надо

Добавлено 31.10.2018, 22:37:

Ну в графическом скрипте видел возможность использования % яркости. Интеграцию надо побовать. Должны по идеи появятся в параметрах железки R G B значения.

Что то типо: Если условие xxx(время/дата/состояние др. устройства и т.д.) равны тому то, то параметр R равен 23%(например)

Извините новичка за глупые вопросы. Если я захочу подключить какое-то оборудование (датчик, выключатель и т.п.) к Domoticz я должен, как в MajorDoMo использовать модуль? Если в существующем дистрибутиве нет нужного модуля, как его можно создать?

Прикрепленное изображение


Там их много. Почти все поддерживается. Можно также создавать виртуальные устройства и к ним прикручивать подсылаемые с реального устройства параметры. А можно ли развернуть этот domoticz в облаке и управлять от туда умным домом? Цель удалено управлять устройствами.

В облаке в теории возможно. Убунту на удаленный сервер. Впн до домашней локалки (опционально. )
Тем же sonoff релюшкам не нужен. Можно и через внешний адрес ими управлять. Статик айпи точно нужен. На счёт xiaomi- не уверен. Думаю без впн врятли-. Им всеже нужно чтоб сервер был в той же сети.
А вообще, чтоб удаленно управлять и облако не нужно. Облако пригодится только если некуда сам домотиз поставить

re-id, Хорошо, ставлю локально нопример, мне будут приходить например уведомления от domoticz на телефон? Доброго времени суток!
Спасибо re-id за создание отдельной темы!
Я тоже начал разворачивать данную систему на raspberry pi 3, пока прежде всего для управления котлом отопления.
Приобрел пока шлюз, комнатный датчик температуры xiaomi и 4-х канальное реле sonoff.
Можете написать, для управления насосами каким именно датчиком пользуетесь?
Устанавливали ли вы какие-нибудь сервоприводы для регулировки температуры по зонам отопления, если да, то какие?

Для этого используется sonoff th10. Реле и датчик температуры. Далее в домотиц создал несколько сценариев- в зависимости от температуры "за бортом": меняется частота срабатывания насоса. Например (5 мин работает 10 нет/Если за окном -5+5) или (5 работает 5 не работает/если за окном -5-15) и т.д. Чем чаще работает насос тем дома теплее. Вторым условием является температура в комнате. Если в зоне комфорта- работают сценарии описанные выше. Если упала ниже зоны комфорта- насос включается постоянно- пока температура не дойдет до зоны комфорта. Если же наоборот станет выше зоны комфорта- насос не включится вообще.
Серво приводы пока не участвуют- но есть желание поставить привод на регулятор мощности на котле. Счас пока стоит вручную на отметке 5 из 8. Что многовато для текущей погоды(от 0 до 10 тепла сейчас) и соостветственно часто после нескольких сценариев 5 через 10 температура в комнате поднимается выше зоны комфорта. И на час примерно сценарии выключаются. Впринципе пока это не важно. В итоге температура в комнатах все равно стабильна в пределах 1 -2 градусов. Но боюсь как похолодает до минус 25 например. 5 режима в котле просто не хватит. Хотелось бы чтоб этот регулятор на котле тоже принимал участие.

Разделения по комнатам в системе нет. В ручную только можно покрутить батарею в ванной и теплый пол там же. Но за три года ни разу не крутил. Всегда стоит максимум.

re-id,
Спасибо за создание отдельной ветки. У меня система работает уже как почти 2 года из которых год в тестовом режиме. На ней завязано полностью половое отопление (8 зон), все управляются независимо друг от друга но вместе в зависимосте от наружней температуры. Помимо этого сигнализация и освещения в некоторых комнатах. К системе подключены приборы от z-wave около 10, xiaomi около 70, RF разетки и реле, sonoff 4х канальные простые и про плюс настенные ваключатели тоже от sonoff.

Короче говоря если есть вопросы, задавайте. Чем смогу помогу. Скажу сразу что я в програмировании не спец.

В своих обзорах устройств умного дома экосистемы Xiaomi — я уже неоднократно упоминал название Domoticz. Наконец у меня дошли руки поделится своими наработками на эту тему, и рассказать что же это такое и каким образом можно дополнить стандартные возможности умного дома от Xiaomi при помощи этой системы. В рамках одного обзора это рассказать невозможно, но нужно с чего-то начинать — поехали…

Ссылка на комплект 6 в 1 базовый набор для умного дома Xiaomi -

Таблица (обновляется) по экосистеме Xiaomi

Для тех кто любит больше смотреть и слушать, видеоверсия этого обзора в конце текста.

Вопросы и ответы


1. Что такое Domoticz ?
Это мультиплатформенное ПО с открытым кодом ориентированное на создание системы управления умным домом. Поддерживает большое количество различных устройств разных вендоров, в том числе работает с устройствами Xiaomi.

2. Какие устройства Xiaomi могут управлятся Domoticz?
Буду говорить только о тех устройствах, которые я проверил лично. На данный момент можно управлять шлюзом Xiaomi Gateway — и всеми устройствами которыми он управляет — кнопки, датчики открытия и движения, розетки ZigBee, выключатели Aqara. Так же поддерживаются осветительные гаджеты Yeelight — RGBW и White лампы, потолочный светильник Celling Light.
Читал про работу с bluetooth сенсорами miflora.

3. Для чего мне Domoticz ?
Система имеет более гибкие возможности по настройке сценариев — например проверку активности устройства, то чего нет в MiHome, или создание переменных — которые позволяют по одному условию — например нажатие клавиши — выполнять различные действия, в зависимости от значения переменной.
Сценарии, созданные в Domoticz не зависят от китайских серверов и наличия интернет.
Domoticz расширяет функциональность устройств — например новые действия «free fall» или «alert» для кубика, или «Long Click Release» для кнопки.

4. Если я буду использовать Domoticz то не смогу работать с MiHome?
Обе системы прекрасно живут паралелльно — функциональность MiHome — полностью сохраняется, просто часть сценариев будет жить в одной системе — часть в другой. В принципе все сценарии могут жить в Domoticz.

5. Зачем мне нужен MiHome если я буду использовать Domoticz?
По крайней мере для добавления новых устройств. Выбор стоит за вами — но мое мнение — на данный момент Domoticz лучше всего использовать как дополнение к MiHome

6. Что нужно для подключения устройств Xiaomi к Domoticz?
Сразу хочу успокоить — паяльников, программаторов и танцев с бубнами не надо. Так же вам не понадобится Linux или виртуальные машины — попробовать все можно прямо на вашей рабочей винде. В дальнейшем — если будет такое желание, то систему можно будет установить на одноплатном компьютере типа Raspberry или Orange — об этом я тоже расскажу, но на начальном этапе установка системы не сложнее установки календаря огородника на 2017 год. Подключение очень легко и просто и совершенно не влияет на базовую функциональность устройств. При желании вернуть все назад — элементарно.

Подготовительные работы

Итак, что нужно для того что бы начать работать с Domoticz?


1. Резервирование IP адресов
Первым делом необходимо, тем устройствам которыми вы планируете управлять — пока это шлюз и лампы — установить статические IP адреса. Это делается на вашем домашнем роутере, при помощи таблицы клиентов DHCP которая выглядит примерно так —


и информации из вкладок Network info плагинов управления шлюзом и лампами, где указаны MAC адреса устройств


Используя эту информацию нужно прописать выдачу постоянных IP адресов этим устройствам — так как они будут управлятся именно по IP, и если адрес будет сменен — Domoticz потеряет связь с ним. Таблица резервирования адресов выглядит примерно так —


2. Режим разработчика
Необходимо активировать режим разработчика. Для шлюза Xiaomi Gateway необходимо зайти в меню, выбрать опцию about, внизу экрана где написана версия (2.23 у меня) — нажимать на нее до тех пор пока в меню не появится две новые опции, они могут быть на китайском, в моем примере — на английском. Нажимаем на первую из двух — local area network communication protocol, в меню активируем верхний переключатель и записываем пароль шлюза.

Для ламп все проще — нужно установить приложение Yeelight, если вы его еще не поставили, и для каждого светильника — заходим в меню, режим разработчика — включить

Установка Domoticz

Приложение берем здесь выбираем Beta — так как именно в ней имеется поддержка устройств Xiaomi. Так как на данный момент я работаю с Domoticz под управлением Windows — то и писать про про нее. Когда ко мне доедет RaspBerry — тогда расскажу и про нее.

Установочный файл занимает чуть более 14 Мб, просто качаем запускаем — установка стандартная, со всем соглашаемся


И через минуту имеем установленный на локальной машине Domoticz, доступный по адресу 127.0.0.1:8080 либо вместо 127.0.0.1 — адрес компьютера в локальной сети. Интерфейс изначально на английском (у меня уже переключено на русский)



Добавление устройств

Выбираем тип устройства Xiaomi Gateway, называем его как нибудь, указываем его IP адрес, который мы зарезирвировали на роутере, прописываем пароль полученный в окне режима разработчика. Порт — у меня работает на порту 54321. В вики домотикз описано подключение с указанием порта 9898


Для добавления ламп — просто добавляем устройство YeeLight LED — адреса указывать не надо, лампы подтянутся сами.


Датчики подключенные к шлюзу подтянутся не сразу все, это процесс может занять час и более — нужно подождать. Это связано с тем, что устройства ZigBee активируются только в момент передачи данных. Немного подтолкнуть процесс можно — открывая и закрывая окна с датчиками, дышать на датчики температуры, включать выключать розетки — словом вынуждать устройства передавать данные.


Например каждый датчик температуры и влажности — добавится как три устройства, отдельно температура, отдельно влажность, и все вместе. Розетки — отдельно розетка (управляемое устройство) отдельно — как датчик энергопотребления. А вот шлюз — отдельно подстветка, отдельно сирена сигнализации, отдельно будильник, дверной звонок и регулятор звука. Для того чтобы добавить устройство в список используемых — в конце строки нужно нажать зеленую стрелочку. Убрать из используемых — синюю стрелочку. То что нам не нужно — не добавляем.
Добавленные к использованию устройства располагаются по нескольким вкладкам —

Переключатели

Выключатели, кнопки, лампы, и прочее. Здесь мы можем включать, выключать, и делать любые действия с устройствами в ручном режиме.


Например выбрать звук который будет звучать на шлюзе, или цвет свечения на RGB лампе или яркость на белой лампе.

Поначалу они все называются одинаково, определить где какой — можно по их показаниям и сверке с приложением Mi Home, после чего их можно соответственно переназвать.


Вспомогательное

Здесь сгрупирован датчик освещенности шлюза — хотя его показания весьма странные, и счетчики потребления энергии розеток.


Сценарии

Для создания сценариев — необходимо перейти во вкладку — Настройка — Дополнительно — События. Написание сценариев доступно в двух вариантах — блочный и скриптовый на языке lua.

Примеры сценариев

Учится работать с Domoticz лучше начинать с блоков. Тут все разбито на группы и составлять сценарии довольно просто. Пример простого сценария на блоках — включение света по обнаружению движения, и выключения через минуту после того как датчик движения перейдет в статус выключено. После составления сценария нужно назвать его, поставить галочку на опции Event active: — для включения и сохранить его.


Точно такой же сценарий на lua


Примеры использования

Больше внимания конкретным сценарям я буду уделять в других обзорах, тут в качестве примера приведу сценарий, который НЕВОЗМОЖНО реализовать в Mi Home, а именно — двухкнопочный выключатель Aqara c размыканием проводов — левая кнопка будет работать по назначению — разрывать и соединять фазу, а правая — не подключенная к линии (для питания выключателя достаточно подключения только одной из кнопок) — будет включать и выключать Yeelight лампу, которая физического соединения с выключателем не имеет.

В данном сценарии будет проверятся состояние лампы Yeelight, значение самого выключателя On или Off — значения иметь не будет. Если состояние лампа отлично от Off — значит она работает, и будет выключена, а если выключена — то будет включена.


На этом, вводную часть по Domoticz буду завершать, если тема будет интересна — то продолжу, интересного еще очень много.

Мы часто думаем о том, как автоматизировать свое жилище, но часто этот вопрос упирается в то, что готовые системы слишком негибки и дороги, а разбираться, как сделать что-нибудь самому совершенно нет времени.

Под катом - подробный гайд по настройке системы умного дома: сделаем возможным работу устройств ZWave и кастомных MQTT-устройств на базе ESP8266, настроим управление домом при помощи HomeKit и Яндекс Алисы.


Первоначальная настройка Raspberry PI

Установка системы

Headless

Если не хотим подключать монитор

В boot разделе создаем файл с именем ssh(это одноразовый способ: при наличии файла с именем ssh в разделе при старте raspberry sshd запускается и удаляется этот файл, поэтому не забываем в sudo raspi-config включить ssh насовсем)

Теперь при первом запуске у нас будет возможность подключиться к системе по ssh.

Если необходимо подключение к локальной сети посредством wifi, создаем в boot разделе файл wpa_supplicant.conf

Содержимое файла wpa_supplicant.conf

Первый запуск

Вставляем флешку в малину, подключаем ее по ethernet к сети, если не настроили wifi, подаем питание по microUSB, используя блок питания с предельным током как минимум 2 ампера.

Raspberry PI должна загрузить систему, а также подключиться к сети.

Попробуем получить к ней доступ по ssh.

Для этого нам необходимо узнать, какой ip-адрес получила raspberry pi в нашей локальной сети. Вы можете зайти в веб интерфейс маршрутизатора и посмотреть список активных хостов, но я предпочитаю использовать nmap. Выполняю сканирование сети посредством пингования всех ip адресов подсети.

Здесь можно заметить, что кроме самого роутера(192.168.0.1) и моего ПК(192.168.0.105) появился еще один хост 192.168.0.120 - многовероятно, что это и есть наша малина.

Попробуем подключиться. Стандартная пара логин/пароль: pi/raspberry.

Мы успешно вошли по ssh на raspberry pi и теперь можем приступать к дальнейшей настройке системы.

Установка Domoticz

Domoticz - программная система для управления умным домом с открытым исходным кодом. Написана на C++. На хабре я видел статьи про аналоги этой системы, такие как openhub и home assistant, но мой выбор пал на domoticz вследствие того, что эта платформа максимально проста для конфигурирования, а кроме того, написана на C++, что делает ее гораздо менее требовательной к вычислительным мощностям для работы, чем аналоги, использующие java и python. Кроме того, подкупила простая система написания сценариев на Lua или python.

Итак, установим domoticz на наш одноплатник. Установка максимально простая, за что личный респект разработчикам.

После окончания установки и, на всякий случай, ребута, проверяем, что демон domoticz поднялся:

В процессе эксплуатации я заметил, что Domoticz иногда падает с ошибкой. Чтобы поднимать его автоматически, напишу watchdog с помощью cron.

Теперь каждые 5 минут будет запускаться скрипт, который проверит, работает ли Domoticz и перезапустит его, если это необходимо

Настройка domoticz для работы с устройствами

Теперь, когда система работает и готова к продолжению конфигурирования, можно настроить какие нибудь устройства.

IP-камера

Самое простое, что можно настроить в Domoticz - это камера. Для этого зайдем в web-интерфейсе в Setup -> More options -> Cameras -> Add camera.

Вводим данные о своей камере. У меня возникли сложности с определением picture url, но они решились вот этим сервисом.

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

Z-Wave USB Stick

Посредством Domoticz, мы можем управлять домашней сетью Z-Wave IoT устройств. Это удобный протокол, позволяющий устройствам взаимодействовать друг с другом так, чтобы некоторые из них являлись, помимо своего основного назначения, Z-Wave ретрансляторами, своей работой расширяя радиус покрытия Z-Wave. Протокол закрытый, проприеритарный, поэтому просто создать свое Z-Wave устройство не выйдет, поэтому обычно, по этому протоколу работают покупные устройства/компоненты умного дома.

По моему опыту, настройка Z-Wave сети в Domoticz оказалась сильно проще и, в отличие от систем Home Assistant и openHub, здесь USB Stick заработал сразу и без проблем.

Для того, чтобы настроить свою сеть Z-Wave, я приобрел Z-Wave USB Stick. Подключив его к Raspberry pi, я добавил его как еще одну Hardware, с Type OpenZWave USB. Путь к Serial Port у меня выглядел примерно так: /dev/serial/by-id/usb-0658_0200-if00

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

ВАЖНО: следите, чтобы рабочая частота Z-Stick соответствовала рабочей частоте Z-Wave устройств

MQTT-брокер

Установим свободный MQTT-брокер Mosquitto.

Теперь Mosquitto установлен и работает. Мы можем подключиться к нему без аутентификации по адресу 0.0.0.0:1883. Таких настроек нам хватит на первое время.

Domoticz - MQTT клиент

Подключим domoticz к MQTT-брокеру. В web-интерфейсе Domoticz - Setup -> Hardware.

Type - MQTT Client Gateway with LAN interface.

Remote address - localhost

Data Timeout - disabled

Username и password - оставляем пустыми до лучших времен

Publish topic - топик, куда domoticz будет публиковать все обновления статусов. Для себя я оставил стандартно - out, и domoticz публикует в топик domoticz/out.

После нажатия на Add у нас добавился новый hardware. Если все хорошо, то в таблице, в колонке Enabled мы увидим Yes.

Dummy switch

Хотелось бы быстро проверить работу нашей системы. Для этого есть виртуальные устройства - не имеющие физических воплощений(по крайней мере, пока мы их не сделаем), но имеющие статус в системе domoticz и управляемые из нее.

Добавим Dummy hardware. В web-интерфейсе Domoticz - Setup -> Hardware

Type - Dummy (Does nothing, use for virtual switches only)

Добавляем. В таблице появилась еще одна запись. Можно увидеть, что в таблице рядом с Type есть кнопка Create virtual sensors. Нажимаем ее, вводим параметры

Sensor type - Switch

Сохраняем и переходим в меню Switches. Теперь здесь можно увидеть новый переключатель:

Теперь мы можем посмотреть, как изменение переключателя отражается в топике MQTT.

$ mosquitto_sub -h localhost -v -t "domoticz/out"

Мы использовали клиент MQTT, который установили вместе с брокером, и подписались на топик, куда domoticz публикует свои обновления. Нажмем на лампочку в веб-интерфейсе

Программируем собственные IoT устройства на базе Arduino-like контроллеров.

Для реализации данного функционала я использую клон Arduino Uno, Ethernet Shield, а также Arduino-like плату на основе контроллера ESP8266, который способен подключаться к сети по WiFi. Таким образом, у меня будут две версии устройства - с подключением по Ethernet и по WiFi.

Для работы с MQTT я использовал библиотеку MQTT.h. Для парсинга JSON - ArduinoJSON.h.

Изначально, написав скетч для Arduino, я, выставив значение для буферов MQTTClient и ArduinoJSON в 500 байт и использовав преобразование входных данных в класс String, превысил мизерное количество оперативной памяти в 2 килобайта. Уменьшив размер буферов до 300 байт и использовав "сишные" строки, мне удалось уложиться в данный лимит, и даже оставить 300-400 свободных байт, но стало понятно, что модифицировать и усложнять программу, добавлять дополнительную логику в случае этой платы будет затруднительно.

Программировать ESP8266 оказалось сильно проще, так как оперативной памяти здесь на порядок больше.

Отлично! Оба устройства отслеживают изменения значения переключателя в интерфейсе Domoticz, и переключают светодиод соответственно значению переключателя!

Для себя в данный момент я сделал вывод, что гораздо разумнее использовать платы на основе ESP8266, потому что:

нет давящего ограничения по оперативной памяти

цена за комплект Arduino UNO + Ethernet Shield - 1100 руб, а на плату с работающим из коробки WiFi - 400

Таким образом, мы научились управлять собственным WiFi устройством прямо из интерфейса Domoticz, что открывает перед нами гигантские перспективы для автоматизации

Управляем всем через Яндекс Алису

Domoticz как таковой не поддерживает интеграцию с Алисой, потому что для этого необходим работающий навык Алисы и какой-то облачный интерфейс. Поэтому, для работы с Алисой предлагается следующий костыль: к mqtt брокеру, куда domoticz публикует изменения своих статусов, подключить homebridge - средство для подключения умного дома Apple, и передавать команды от Алисе к domoticz через него.

Поставим все необходимое ПО:

Для подключения Homebridge к Алисе я использовал g-on плагин. По ссылке - исчерпывающее описание настройки.

После окончания настройки мы имеем возможность управлять устройствами Domoticz, используя приложение Дом или Алису

Результатом моей работы стала система, обладающая приемлемой стабильностью, способная управлять IoT устройствами без необходимости подключения к интернету, позволяющая интегрировать собственные IoT устройства, работающие в сети WiFi, а также управлять этими устройствами голосовыми командами через Алису, или же с помощью облачного сервиса Apple

Демонстрация работы системы. Торшер подключен к самодельной "умной розетке", состоящей из реле, которым управляет ESP8266. Розетка по MQTT общается с Domoticz


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

Исправление костыля с watchdog'ом

Большое спасибо автору этой статьи, который показал на примере из моей статьи, что в данном случае более подходящим инструментом для контроля работы domoticz будет systemd. И действительно, systemd снимает с нас необходимость следить за работой демонов, предоставляя гибкий интерфейс для настройки управления ими

Tasmota

Использование готовой прошивки для ESP8266 позволит не писать свой код для нее. Я проверил работоспособность этой прошивки на плате Wemos D1 R32.

Можем посмотреть логи tasmota через монитор последовательного порта

Вводим данные wifi сети и ждем, пока esp8266 не подключится к ней.

Теперь смотрим в логах, какой ip адрес получила esp8266, и снова открываем веб интерфейс, уже используя новый адрес.

Сначала настраиваем MQTT: все оставляем стандартно, кроме логопассов и IP адреса MQTT брокера. После этого настраиваем модуль: выбираем порты, которыми хотим управлять, указываем, что за устройство на них висит: реле, кнопка или что-то еще. После этого настраиваем Domoticz - смотрим, какое idx у dummy device, и записываем его в соответствующее поле. Теперь мы можем управлять этим устройством при помощи domoticz

Читайте также: