В продолжение моих обзоров про возможности системы управления умным домом Domoticz, где аппаратную роль выполняли гаджеты Xiaomi, хочу рассказать про внедрение в систему устройств другого производителя — Broadlink, на примере смарт удлинителя Broadlink MP1 и его совместной работе с существующей структурой Xiaomi. Подробности далее
Вступительное слово
Одним из достоинств альтернативных систем управления умным домом, на примере — Domoticz, является возможность объединения в одних сценариях устройств различных производителей. Не исследовать эту тему было бы преступлением :)
В качестве первого испытуемого я решил взять смарт удлинитель Broadlink MP1 — имеющий 4 универсальные розетки с раздельным управлением. В некоторых случаях — когда нет необходимости подсчета расхода электроэнергии и при концентрации в одном месте нескольких ведомых устройств, такое решение удобнее и дешевле использования отдельных розеток от того же Xiaomi.
Покупка и доставка
Отправлен он был на следующий день, почтой Китая с трек номером. Через положенное время — чуть более двух недель, в отделении почты я получил пакет с заказом. Кроме самого удлинителя, магазин вложил еще переходник под евро розетку и пару наклеек.
Broadlink как и Xiaomi не напрягается с полиграфическими изысками, больше уделяя внимание технической информации.
Внешний вид, параметры
Удлинитель выполнен в белом цвете, на фронтальной панели расположены 4 совмещенные розетки, рассчитанные на подключение вилок Тип А, С, I
Из основных характеристик нужно выделить максимальную мощность — 2500 Вт, но не более 10 А и установленный Wi-Fi модуль, никаких шлюзов для работы не нужно. В стандартном режиме удлинитель управляется через приложение. Кстати нам оно тоже понадобится. QR код для его загрузки, имеется и на коробке и на наклейке сзади удлинителя.
Удлинитель комплектуется тройной вилкой Тип I. Использовать комплектный переходник не рекомендую — лучше заменить вилку на сборную евровилку.
Реальные размеры соответствуют заявленным — 254 х 60 х 32. Взвешивать я его пожалуй не буду.
Разборка
Для разборки удлинителя, необходимо открутить 5 саморезов с треугольной головкой. 4 самореза находятся по углам — за наклеенными ножками, пятый — по центру, под наклейкой
К достоинствам этого удлинителя можно отнести раздельное управление каждой из розеток. К недостаткам — невозможность делать это вручную и отсутствие подсчета электроэнергии.
Так же на самих розетках, поверх контактов, расположены пластиковые защитные крышки.
При включении обод единственной кнопки управления подсвечивается
Первое включение, штатное ПО
Для подключения у смарт удлинителю нам понадобится родное приложение E-control. Если это ваше первое устройство от Broadlink — как у меня, то нужно создать аккаунт. Это недолго и несложно — понадобится электронная почта, и нужно придумать пароль. После авторизации в приложении — нужно будет добавить устройство
Далее вам будет необходимо подключить найденное устройство к своей wi-fi сети, после чего удлинитель появится у вас в списке устройств. Приложение позволяет управлять состоянием каждой из четырех розеток фильтра, устанавливать расписание включения — выключения, задать имя и даже собственное изображение для иконки удлинителя.
Подробнее рассказывать о приложении не буду, так как тема обзора — это интеграция удлинителя в инфраструктуру Domoticz. Напомню у меня он крутится на одноплатном миникомпе Raspberry Pi Model 3 B. Внимание — обязательно настраиваем на домашнем роутере, выдачу статического IP адреса удлинителю, привязав его к mac.
Подключение к Domoticz
Для управления устройствами Broadlink — базами дистанционного управления, сенсорной платформой A1, смарт розетками и удлинителем, имеется замечательный проект — github.com/mjg59/python-broadlink. Основой послужила инструкция для работы с базой дистанционного управления, но переработана для удлинителя mp1. Инструкция ниже успешно опробована мной на Raspberry Pi Model 3 B, и вполне может применяться на схожих решениях, на Windows — аналогов нет (ну либо они мне неизвестны).
Инструкцию пишу по шагам как делал я лично
1. Создание рабочего каталога — sudo mkdir /python-broadlink
Нам необходимо установить несколько пакетов, необходимых для работы —
Некоторые пакеты уже могут быть установлены в вашей системе, это нормально, просто запускаем по очереди все.
те, пакеты которых не хватает, будут скачаны и установлены в систему
Дальше, переходим в наш созданный каталог
cd python-broadlink
И запускаем установку
python setup.py install
Теперь мы можем создавать первый скрипт — поиска устройств Broadlink, создаем файл locatrm.py (все имена файлов — можете давать сами, какие считаете нужным).
sudo nano locatrm.py
В открывшийся пустой файл вставляем скрипт
#!/usr/bin/python
# -*- coding: utf-8 -*-
#Script to locate Broadlink devices on local network by Graeme Brown Dec 23 2016
#These must be set up using the Broadlink app first!
import broadlink
import time
print "************************************************"
print «Using python library created by Matthew Garrett»
print «https://github.com/mjg59/python-broadlink»
print "************************************************"
print «Сканирую сеть для поиска устройств Broadlink....»
mydevices = broadlink.discover(timeout=5)
print «Найдено » + str(len(mydevices )) + " устройство broadlink"
time.sleep(1)
print "..............."
for index, item in enumerate(mydevices):
mydevices[index].auth()
ipadd = mydevices[index].host
ipadd = str(ipadd)
print «Устройство » + str(index + 1) +" Host address = " + ipadd[1:19]
macadd = ''.join(format(x, '02x') for x in mydevices[index].mac[::-1])
macadd = str(macadd)
mymacadd = macadd[:2] + " " + macadd[2:4] + " " + macadd[4:6] + " " + macadd[6:8] + " " + macadd[8:10] + " " + macadd[10:12]
print «Устройство » + str(index + 1) +" MAC address = " + mymacadd
print "..............."
Выходим из режима редактирования CTRL+X сохраняя все изменения.
Запускаем скрипт командой
python locatrm.py
Скрипт обнаруживает удлинитель и сообщает его IP и mac адрес
Теперь делаем скрипт для проверки статуса удлинителя. Делал я его скорее для общего развития, для работы он мне не пригодился. Создаем файл s1stat.py
sudo nano s1stat.py
Вставляем код
#!/usr/bin/python
import broadlink
devices = broadlink.mp1(host=(«192.168.0.102»,80), mac=bytearray.fromhex(«34EA34A5373B»))— тут Ваши ИП и Мак удлинителя devices.auth()
print devices.check_power() — эта команда выводит статус всех розеток
Делаем сохраненый скрипт исполняемым
sudo chmod +x s1stat.py
Запускаем, проверяем
python s1stat.py
Если все сделано правильно — вы получаете статусы всех розеток
Теперь можно делать скрипты для включения и выключения каждой розетки. Всего у нас 4 розетки, значит получится 8 скриптов. Код скрипта аналогичный вышеприведенному, только вместо команды проверки статуса пишем команду на включение
devices.set_power(1, True)— первая розетка включить
Или выключение
devices.set_power(1, False)— первая розетка выключить
Я называл файлы s1on.py, s1off.py и так далее для всех 4х пар.
После создания файлов, нужно сделать каждый из файлов исполняемым —
sudo chmod +x s1on.py — повторить для всех
Можно проверить их работоспособность включая и выключая каждую из розеток
python s1on.py — включение первой розетки
И дать им права
sudo chmod 777 /home/pi/python-broadlink/s1on.py — повторить для всех
Теперь можно переходить в Domoticz, на вкладке Настройки — Оборудование — создаем (если у вас еще нет) виртуальное устройство Dummy. После чего создаем 4 виртуальных переключателя, я назвал их
Далее идем в меню переключатели, выбираем каждый из созданных переключателей, меняем им иконку на розетку — так понятнее, и в строках действие при включении и выключении прописываем пути к нашим скриптам. Например к розетке номер 2
Все, теперь каждая из розеток может управляться из Domoticz. В моем удлинителе сейчас занято 3 первые розетки, в первую включена обычная настольная лампа, во вторую один из увлажнителей, в третью — принтер, так как включать его родным переключателем — неудобно, мешает стол.
Первой и третьей розеткой управляет кнопка Xiaomi, по действию клик — включается и выключается настольная лапа, дабл клик — управляет включением и выключением потолочного светильника Yeelight Celling Light, про который я рассказывал раньше и лонг клик — включение и выключение принтера. Сценарий на lua выглядит так:
Вторая розетка работает в связке с датчиками влажности / температуры и открытия от Xiaomi.
Первое условие выключает увлажнитель при достижении влажности 55 и выше%, второе — включает при падении 45 и менее%, третье условие отключает увлажнитель при открытии окна, четвертое — включает при закрытии окна и влажности менее 45%. Кстати сценарий сейчас я чуть доработал, добавив во второе условие — на включение — проверку статуса оконного датчика, что-бы увлажнитель не включался при открытом окне.
Видеоверсия обзора
На этом все, спасибо за внимание, если тема интересна — буду продолжать рассказывать про интеграцию других устройств в систему управления умным домом Domoticz.
Планирую купить+32Добавить в избранноеОбзор понравился+27
+52
за интеграцию с домотикзом огромный плюс, интересно было бы узнать про общий план смарт устройств и из каких они линеек. ну и кратко другие сценарии, ибо я вижу у Вас Xiaomi с Broadlink через Domoticz дружат, а дружба это хорошо.
слышал для интеграции с xiaomi нужно их шлюз докупать (Xiaomi Mi Smart Home Gateway), получается для интеграции и broadlink — тоже нужен шлюз (Broadlink RM2)?
Да, в первом сценарии как раз на дабл клик она и есть, если выключена — то включение с полной яркостью (level=100), если статус отличен от выключено — ~= 'Off' — то выключить.
elseif (devicechanged['DD Desktop Button'] == 'Double Click') and otherdevices ['DD Yeelight Luna'] == 'Off' then
commandArray['OpenURL']=«root:[email protected]:8080/json.htm?type=command¶m=switchlight&idx=48&switchcmd=Set%20Level&level=100»
elseif (devicechanged['DD Desktop Button'] == 'Double Click') and otherdevices ['DD Yeelight Luna'] ~= 'Off' then
commandArray['DD Yeelight Luna'] = 'Off'
напутал( думал, чт опоказывает мощность через приложение(( А что подскажите подобное, но с мощностью? Розетку Сяоми по Зигби не предлагать, там к ней сервер типа нужен(
Вот например
слышал для интеграции с xiaomi нужно их шлюз докупать (Xiaomi Mi Smart Home Gateway), получается для интеграции и broadlink — тоже нужен шлюз (Broadlink RM2)?
elseif (devicechanged['DD Desktop Button'] == 'Double Click') and otherdevices ['DD Yeelight Luna'] == 'Off' then
commandArray['OpenURL']=«root:[email protected]:8080/json.htm?type=command¶m=switchlight&idx=48&switchcmd=Set%20Level&level=100»
elseif (devicechanged['DD Desktop Button'] == 'Double Click') and otherdevices ['DD Yeelight Luna'] ~= 'Off' then
commandArray['DD Yeelight Luna'] = 'Off'
Ваш ведь потребляемую мощность не показывает?