Универсальный ПДУ Broadlink RM plus - интегрируем в Domoticz, создаем базу IR и RF кодов


Здравствуйте друзья

Свой сегодняшний обзор, я хочу посвятить замечательному гаджету от Broadlink — универсальному пульту дистанционного управления, способному считывать, сохранять и воспроизводить не только обычные, инфракрасные пульты, но и радио пульты, работающие на частоте 433 Mhz. Так же уделю внимание практическим аспектам интеграции в Domoticz и создании сценариев работы.

Так как модель Broadlink RM pro уже неоднократно обозревалась, я решил поработать с моделью Broadlink RM plus, которая стоила ровно столько же сколько и Broadlink RM pro.
На русской версии магазина — ru. значительно дешевле.
Как выяснилось несколько позже, уже когда я ждал заказ, RM plus является OEM вариантом первой версии RM plus, отличия только в верхней крышке корпуса и отсутствии указаний на производителя на корпусе.
На всякий случай оставлю тут скрин оплаты по заказу с обозреваемым гаджетом
Оплата


Комплект поставки

Поставляется устройство в простой белой картонной коробке, что говорит о том, что данный тип продукта OEM.

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

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



Размеры

Форма корпуса представляет собой равносторонний треугольник. Длина стороны 11,5 см


Толщина устройства — 3,6 см



На одной из торцевых сторон находятся два индикатора — слева синий — подключение к wi-fi, справа — желтый, активируется в момент ожидания или передачи сигнала.



На другой стороне — порт питания micro USB и окошко кнопки reset



На нижней стороне — три прорезиненные ножки, вентиляционные отверстия и место для наклейки. Сама наклейка отсутствует.



Штатное ПО

Для подключения к Broadlink RM plus нам понадобится штатная программа E-Control. Она обнаруживает новое устройство, после чего нужно ввести пароль к wi-fi сети и устройство появляется в общем списке.



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



Конечно имеется возможность ручного добавления кнопок. Внешний вид кнопок можно выбрать из шаблона, либо создать свои, после чего кнопки следует обучить командам реальных пультов. Для ИК пультов — достаточно нажать Обучение, направить пульт на RM plus и нажать на нужную кнопку. Для радиопультов нужно сначала нажать кнопку Сканировать, во время сканирования удерживать нужную кнопку на пульте, и после этого нажать Обучение — и вновь нажать на кнопку пульта.

Комбинации кнопок, в любом порядке и любых пультов можно объединять в сценарии и запускать одним нажатием. Для сценариев можно выбирать собственные фото.



Интеграция в Domoticz

Для интеграции в Domoticz, нам нужны те же самые что и для удлинителя, про которые я рассказывал в обзоре Смарт удлинитель Broadlink MP1. Если вы уже проделывали эту операцию, то ничего дополнительно делать не надо. А если нет — то напоминаю список нужных пакетов

sudo apt-get install python2.7 -y
sudo apt-get install python-pip -y
sudo apt-get install python-dev libgmp-dev
sudo apt-get install git -y
git clone https://github.com/mjg59/python-broadlink


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


Создание базы кодов.
Самое время приступить к созданию базы кодов. Для этого я использую бесплатное приложение RM Bridge. Серверная часть ставится на устройство под Android (не знаю есть ли такое под IOS), после чего переходим на сайт http://rm-bridge.fun2code.de/rm_manage/code_learning.html. Запускаем на смартфоне(планшете) серверную часть, вводим появившийся адрес в соответствующие поля и нажимаем Load Devices — после чего можно приступать к считыванию кодов.

Здесь последовательность такая же — для ИК кодов сразу нажимаемLearn Code, направляем пульт на RM plus и нажимаем нужную кнопку, для радио кодов — сначала Frequency Scan — и только потом Learn Code. При обучении не надо долго жать на кнопку — так как RM plus пишет всю последовательность, код получается избыточно длинный. Но если вы обучаете например плавную регулировку яркости или звука — то можно и придержать кнопку секунду другую.


После обучения сайт показывает считанный код, в виде команды и URL. Введя этот URL в адресную строку — можем сразу проверить корректность считанного кода. Код в hex который идет в кавычках после data в строке Plain Command — и есть искомый код.



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



Создание скриптов для Domoticz


Считав и проверив в rm-bridge коды, можно приступать к написанию скриптов.

В консоли малинки создаем файл командой

sudo nano sendcode.py 


Скрипт для передачи считанного кода, выглядит так:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import broadlink
import time
import sys
device = broadlink.rm(host=("192.168.1.171",80), mac=bytearray.fromhex("B4430DAA92A1"))
device.auth()
device.host
myhex = "*******код*********"
device.send_data(myhex.decode('hex'))


IP и mac — вставляем свои. Скрипт с отправкой одного кода выглядит так:


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



После этого сохраняем Ctrl-X — Y наш файл и даем ему права

sudo chmod +x sendcode.py
sudo chmod 777 /home/pi/python-broadlink/sendcode.py


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



Ну и на десерт — сценарий управления влажностью. У меня их три одинаковых для разных комнат, только в двух сценарий управляет физической розеткой в которую включены увлажнителя — а в этом — виртуальным сценарием, в котором выключатель инициирует запуск кодов с базы RM plus.

commandArray = {}

time = os.date('%X');
date = os.date('%d.%m.%Y');
EmailTo = «ВАША_ПОЧТА@gmail.com»
gghum = otherdevices_humidity['GG HT']
ggtemp = otherdevices_temperature['GG HT']


if devicechanged['GG HT'] and otherdevices_humidity['GG HT'] >= 55 and otherdevices ['Vitek'] == 'On' then 
commandArray['Vitek'] = 'Off' 
Message=' Гостиная — увлажнитель отключен в: '… time… ', '… date… ', влажность — '… gghum… '%, температура — '… string.sub(ggtemp, 1, 4)… ' C' 
commandArray['SendEmail']='Domoticz Report#'… Message… '#'… EmailTo 


elseif devicechanged['GG HT'] and otherdevices_humidity['GG HT'] <= 45 and otherdevices ['Vitek'] == 'Off' and otherdevices ['GG W1'] =='Closed' and time >= '08:00' and time <= '22:30' then 
commandArray['Vitek'] = 'On' 
Message=' Гостиная — увлажнитель включен в: '… time… ', '… date… ', влажность — '… gghum… '%, температура — '… string.sub(ggtemp, 1, 4)… ' C' 
commandArray['SendEmail']='Domoticz Report#'… Message… '#'… EmailTo

elseif devicechanged['GG W1']=='Open' and otherdevices ['Vitek'] == 'On' then 
commandArray['Vitek'] = 'Off' 
Message=' Гостиная — открыто окно в: '… time… ', '… date… ', влажность — '… gghum… '%, температура — '… string.sub(ggtemp, 1, 4)… ' C, увлажнитель отключен'
commandArray['SendEmail']='Domoticz Report#'… Message… '#'… EmailTo

elseif devicechanged['GG W1']=='Open' and otherdevices ['Vitek'] == 'Off' then 
Message=' Гостиная — открыто окно в: '… time… ', '… date… ', влажность — '… gghum… '%, температура — '… string.sub(ggtemp, 1, 4)… ' C' 
commandArray['SendEmail']='Domoticz Report#'… Message… '#'… EmailTo 

elseif devicechanged['GG W1']=='Closed' and otherdevices ['Vitek'] == 'Off' and otherdevices_humidity['GG HT'] <= 50 and time >= '08:00' and time <= '22:30' then
commandArray['Vitek'] = 'On' 
Message=' Гостиная — окно закрыто в: '… time… ', '… date… ', влажность — '… gghum… '%, температура — '… string.sub(ggtemp, 1, 4)… ' C, увлажнитель включен'
commandArray['SendEmail']='Domoticz Report#'… Message… '#'… EmailTo 

elseif devicechanged['GG W1']=='Closed' and time >= '22:31' and time <= '07:59' then
Message=' Гостиная — окно закрыто в: '… time… ', '… date… ', влажность — '… gghum… '%, температура — '… string.sub(ggtemp, 1, 4)… ' C'
commandArray['SendEmail']='Domoticz Report#'… Message… '#'… EmailTo

elseif devicechanged['GG W1']=='Closed' and otherdevices ['Vitek'] == 'Off' and otherdevices_humidity['GG HT'] >= 51 then
Message=' Гостиная — окно закрыто в: '… time… ', '… date… ', влажность — '… gghum… '%, температура — '… string.sub(ggtemp, 1, 4)… ' C' 
commandArray['SendEmail']='Domoticz Report#'… Message… '#'… EmailTo 

end

return commandArray


Разберем сценарий. В начале сценария мы присваиваем переменным время, дату, для отчетов я использую уведмоления по электронной почте — gmail, которая вкупе с включенными уведомлениями на этот почтовый ящик, работает практически как push уведомление, а так жне значения температуры и влажности получаемые с датчика температуры и влажности Xiaomi.

Первое условие — если влажность достигает 55% и статус выключателя увлажнителя — включено, тогда увлажнитель выключается и шлется отчет на почту.

Для настройки почты — нужно перейти на вкладку настроек, e-mail, там нужно указать smtp сервер и адреса исходящей и входящей почты. Так же в сценариях можно вручную указывать адрес куда слать уведомления.

Я не поленился и завел отдельный gmail адрес для получения отчетов Domoticz, добавил этот аккаунт к существующим в Андроид приложение Gmail и включил уведомления для этого ящика. Получилась вполне себе альтернатива push уведомлениям.

Отчет получаемый от скрипта на почту выглядит так:

Гостиная — увлажнитель включен в: 08:37:40, 18.05.2017, влажность — 43%, температура — 22 C

Второе условие — включение увлажнителя при достижении влажности 45 % и менее %, при условии что закрыто окно и время находится в промежутке с 8 утра до 22.30 вечера

Третье и четвертое условие — открытие окна, если увлажнитель включен — он выключается, в обоих случаях шлется отчет.

Пятое условие — закрытие окна, влажность менее 50%, время с 8 утра до 22.30 вечера, увлажнитель выключен — включаем.

Шестое и седьмое условие — закрытие окна в ночное время или при влажности более 51% — просто шлем отчет.

Вывод


Несмотря на всю мою любовь к Xiaomi, должен признать что этот продукт гораздо более удачный. Он более универсальный так как может считывать и IR и RF коды, он работает с Domoticz (шлюз от Xiaomi — нет). Достаточно один раз поиграться с обучением и у вас будет база всех кодов ваших пультов, которые легко тиражировать — если вам нужно несколько таких баз. Если не нужны радиопульты — то можно попробовать это решение реализовать на ИК базе BROADLINK UNIVERSAL WIFI которая стоит в два разе дешевле аналогичной по функциональности «шайбы» Xiaomi.

Для тех кто незнаком с темой —





Надеюсь обзор был полезен, если тема интересна, то буду продолжать.
Планирую купить +28 Добавить в избранное +21 +47
+
avatar
+5
Вы сговорились?! :)
+
avatar
  • kvazis
  • 19 мая 2017, 11:30
+4
Нет, я умный дом на Домотикзе строю, и пишу по мере обновления аппаратной базы. У меня целый ряд обзоров про это. К предыдущему автору отношения не имею
+
avatar
0
там п.18)
+
avatar
0
имею rmpro, и «бочку» без 433, позиционирование этого RM plus непонятно. это на замену rmpro модель вышла или что? в чем отличие от pro?
RM plus является OEM вариантом первой версии RM plus
или это имелось в виду что RM plus является OEM вариантом RM pro? тогда понятней становится.
+
avatar
  • kvazis
  • 19 мая 2017, 11:29
+1
ни в чем. ОЕМ версия, например производитель штор хочет к своему оборудованию добавить такой шлюз, брендирует, забивает коды и готово
+
avatar
+1
Мне вот интересно а куда вы ставите эту штуку, чтоб IR мог управлять сразу всем.

Просто я смутно представляю куда можно ее поставить посредине комнаты, для управления ТВ, кондиционером, Увлажнителем, ТИОНОМ.
+
avatar
0
для покрытия всего дома можно наставить мини-бочек, они дешевле 10$ за штуку стоят, можно себе позволить по одной на каждую комнату.
+
avatar
  • kvazis
  • 19 мая 2017, 11:32
0
Если RF не надо, то бочками. Да
+
avatar
0
Проложить световоды во все комнаты? )))
+
avatar
  • kvazis
  • 19 мая 2017, 11:32
0
Стоит на комоде перед увлажнителем. Сзади сверху — кондер, добивает, впереди внизу — робот пылесос — добивает, телевизор и андроид бокс — напротив слева — добивает
+
avatar
+1
А, кстати, не обязательно посреди комнаты его пихать. У меня стоит над телевизором на полке и отлично работает на отражение от противоположной стены. У него там 6 что-ли ИК светодиодов в разных направлениях светят. Хоть один да удачно отразится.
+
avatar
  • FloX
  • 21 мая 2017, 13:43
0
у меня висит на потолке рядом с проектором
+
avatar
+2
Если следующий обзор на муське будет опять про это, то можно будет констатировать тенденцию.
+
avatar
  • kvazis
  • 19 мая 2017, 11:50
+3
Достаточно посмотреть мои предыдущие обзоры, чтобы понять про мою тенденцию
+
avatar
+3
Я не про ваш следующий обзор, а просто про следующий обзор. На сайте идут 2 обзора подряд про бродлинк. Что я и написал, надо просто прочесть внимательно.
+
avatar
0
Не очень понял в чем разница между ними? И тот и тот поддерживает ИК пульты, радио-пульты. В чем отличия?
+
avatar
  • wojda
  • 19 мая 2017, 12:26
-3
Хватит уже блин)
Вот бы лучше обзор что нужно для старта и как эту кухню настраивать. Столько все, что и не знаешь что и куда покупать, а настройка…
+
avatar
0
Посмотрите предыдущие обзоры этого автора, там все четко и пошагово расписано, ну и про 4PDA не забываем там вся инфа есть.
+
avatar
  • kvazis
  • 19 мая 2017, 12:55
0
Давно было. Добавил видео в конец обзора.
+
avatar
  • Dimon_
  • 19 мая 2017, 14:05
0
del.
+
avatar
0
Получится внести туда пульт от ворот Дорхан? Тогда можно вообще по красоте все автоматизировать.
+
avatar
  • kvazis
  • 19 мая 2017, 12:53
0
На 433 Мгц если — то без проблем
+
avatar
0
433. Но у дорхана прочих шлакбаумов-ворот как правило динамичемкий код разной степени хитрости. Так что вряд ли осилит.
+
avatar
  • sdfpro
  • 19 мая 2017, 12:58
0
На ардуинке можно сделать дейвайсик (сделает даже школьник) и сграбить им HEX коды ик пультов и дальше работать с ними, это так, вдруг кому то надо.

Недавно делал ПДУ для включения/ выключения ПК, именно на ардуинке (WOL + IR).

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

Когда код считан, дальше как его отдают на устройство?
+
avatar
  • kvazis
  • 19 мая 2017, 13:04
0
Можно, но я предпочитаю строить единую систему, используя готовые, заводские решения.
+
avatar
  • sdfpro
  • 19 мая 2017, 13:31
0
Сам разобрался, ознакомившись с данным обзором: mySKU.me/blog/china-stores/27890.html
У вас как то без внимания самая теория осталась и рассказ о внутренностях и сопряжению их с устройствами…
+
avatar
  • kvazis
  • 19 мая 2017, 14:04
0
рассказ о внутренностях
— не вижу смысла, эти базы уже неоднократно разбирались, у меня тема обзора несколько иная.
сопряжению их с устройствами
— этому посвящена вся вторая часть обзора — создание базы кодов и написание скриптов для управления устройствами.
+
avatar
0
Вопрос к автору, так чтобы окончательно не запутаться, эта база имеет точно такой же функционал как и RM-Pro, но только в другом корпусе и без надписи Броадинк? А то собрался брать, чтобы не ошибиться.
+
avatar
  • kvazis
  • 19 мая 2017, 13:07
0
Да
+
avatar
  • eLsIe
  • 19 мая 2017, 13:46
0
Блин, ещё и OEM-версия.
Тут путаются в различиях между RM03 и RM02, а, оказывается, это ещё не весь зоопарк! ;)
+
avatar
  • kvazis
  • 19 мая 2017, 14:04
0
С точки зрения использования — разницы нет
+
avatar
  • Rokko
  • 19 мая 2017, 14:53
0
Все ж надежней RF нет ничего. Как бороться если два устройства понимают одни и те же команды?
Например Dune HD и ТВ приставка МТС одинаковые. А что делать если в одном помещении 2 тв самсунг?
+
avatar
  • kvazis
  • 19 мая 2017, 14:55
+1
А как вы боретесь с этим при помощи родных пультов?
+
avatar
  • Rokko
  • 19 мая 2017, 15:03
0
А родными не пользуемся. Перепробовал массу и становился на мой взгляд лучшем. RTI работает по Зигби.
как часы. ИК Эмииторы клюется на тв. Можно заглушить чтоб извне сигнал не ловили.
+
avatar
  • Samman
  • 19 мая 2017, 15:00
-2
А что делать если в одном помещении 2 тв самсунг?
Подключить их к сети и управлять через неё.
+
avatar
  • Rokko
  • 19 мая 2017, 15:04
+3
На выключенном ТВ не работают сетевые карты. Как включать?
+
avatar
  • Parsek
  • 19 мая 2017, 15:20
0
можно использовать Rm mini и прописать одно из устройств к нему.
+
avatar
  • Parsek
  • 19 мая 2017, 15:47
0
хотел разобраться, как можно генерировать команду на РМ ПРО по http
типа http:\\192.168.1.200\set1=1 например, чтоб включать/выключать от домашней автоматики, кондиционер и прочую подключенную периферию, обладающую ИК или 433 интерфейсом.
+
avatar
  • kvazis
  • 19 мая 2017, 16:20
0
Это через RM Bridge. Считать код и он сразу генерит команду. Но она не на шлюз напрямую идет а через запущенный на Андроид RM Bridge
+
avatar
0
Можете попробовать через mqtt с использованием
github.com/eschava/broadlink-mqtt
+
avatar
  • lemmy
  • 19 мая 2017, 16:29
+1
Спасибо автору за его труд. Очередной полезный девайс был подключен к Domoticz.
После обзора решил для себя заказать Broadlink RM (наверно про).
Автор скажите пожалуйста, в вашем устройстве только частота 433 или возможно использовать и другие частоты?
+
avatar
  • kvazis
  • 19 мая 2017, 19:29
+1
Еще 315MHz по описанию умеет.
Очередной полезный девайс был подключен к Domoticz
Охх, остановится трудно, вот давеча прикрутил одну (из трех) камер — кубиков Xiaofang к домотикз. Теперь при открытии входной двери летит по почте фотография вошедшего :)))
+
avatar
  • Tuks
  • 19 мая 2017, 23:18
0
Классный обзор, спасибо. Впервые узнал о подобных устройствах. Тема интересна, пишите еще :)
+
avatar
  • SolarW
  • 31 мая 2017, 09:18
0
Интересно было бы услышать поподробнее как эта штука с кондиционером дружит.
С учётом того, что управление кондиционером несколько сложнее чем телевизором/увлажнителем/медиаприставкой — на кондиционер пульт шлет не отдельные коды кнопок а длиннючую посылку (бит на 250-300) описывающую полное состояние кондиционера.
+
avatar
  • kvazis
  • 31 мая 2017, 14:15
0
Так и работает, длина не имеет значения. Вместо вкл/выкл — я считываю уже готовые «сценарии» — например вентиляция 25 градусов, или охлаждение 20 градусов.
+
avatar
  • belka
  • 13 апреля 2018, 00:27
0
Может ли это устройство сделать любой пульт универсальным? IR -> Brodlink -> IR.
Т.е. записать коды всех своих домашних пультов, возможно даже создать скрипты включения по несколько клавиш.
А управлять всем еще другим ИК пультом.