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

- Цена: $37.90
- Перейти в магазин
Здравствуйте друзья
Свой сегодняшний обзор, я хочу посвятить замечательному гаджету от Broadlink — универсальному пульту дистанционного управления, способному считывать, сохранять и воспроизводить не только обычные, инфракрасные пульты, но и радио пульты, работающие на частоте 433 Mhz. Так же уделю внимание практическим аспектам интеграции в Domoticz и создании сценариев работы.
Так как модель Broadlink RM pro уже неоднократно обозревалась, я решил поработать с моделью Broadlink RM plus, которая стоила ровно столько же сколько и Broadlink RM pro.
На русской версии магазина — ru. значительно дешевле.
Как выяснилось несколько позже, уже когда я ждал заказ, RM plus является OEM вариантом первой версии RM plus, отличия только в верхней крышке корпуса и отсутствии указаний на производителя на корпусе.
На всякий случай оставлю тут скрин оплаты по заказу с обозреваемым гаджетом


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

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


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

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

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

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


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

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

Подробнее в моем обзоре про удлинитель. Все действия аналогичны до момента определения 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 — и есть искомый код.

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

Считав и проверив в rm-bridge коды, можно приступать к написанию скриптов.
В консоли малинки создаем файл командой
Скрипт для передачи считанного кода, выглядит так:
IP и mac — вставляем свои. Скрипт с отправкой одного кода выглядит так:

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

После этого сохраняем Ctrl-X — Y наш файл и даем ему права
И можем добавлять скрипты в действия виртуальных выключателей Domoticz. В этом примере на включение увлажнителя стоит длинный скрипт с последовательностью кодов, а на выключение — короткий, с одним кодом выкл.

Ну и на десерт — сценарий управления влажностью. У меня их три одинаковых для разных комнат, только в двух сценарий управляет физической розеткой в которую включены увлажнителя — а в этом — виртуальным сценарием, в котором выключатель инициирует запуск кодов с базы RM plus.
Разберем сценарий. В начале сценария мы присваиваем переменным время, дату, для отчетов я использую уведмоления по электронной почте — 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.
Для тех кто незнаком с темой —
Надеюсь обзор был полезен, если тема интересна, то буду продолжать.
Свой сегодняшний обзор, я хочу посвятить замечательному гаджету от 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.
Для тех кто незнаком с темой —
Надеюсь обзор был полезен, если тема интересна, то буду продолжать.
Самые обсуждаемые обзоры
+15 |
1850
55
|
+54 |
1629
38
|
или это имелось в виду что RM plus является OEM вариантом RM pro? тогда понятней становится.
Просто я смутно представляю куда можно ее поставить посредине комнаты, для управления ТВ, кондиционером, Увлажнителем, ТИОНОМ.
Вот бы лучше обзор что нужно для старта и как эту кухню настраивать. Столько все, что и не знаешь что и куда покупать, а настройка…
Недавно делал ПДУ для включения/ выключения ПК, именно на ардуинке (WOL + IR).
Вроде внимательно читал обзор, а основную суть сабжа понял смутно. Основной профит от него какой? Коды считаем и можно писать типо утилиту для контроля определённых параметров?
Когда код считан, дальше как его отдают на устройство?
У вас как то без внимания самая теория осталась и рассказ о внутренностях и сопряжению их с устройствами…
— этому посвящена вся вторая часть обзора — создание базы кодов и написание скриптов для управления устройствами.
Тут путаются в различиях между RM03 и RM02, а, оказывается, это ещё не весь зоопарк! ;)
Например Dune HD и ТВ приставка МТС одинаковые. А что делать если в одном помещении 2 тв самсунг?
как часы. ИК Эмииторы клюется на тв. Можно заглушить чтоб извне сигнал не ловили.
типа http:\\192.168.1.200\set1=1 например, чтоб включать/выключать от домашней автоматики, кондиционер и прочую подключенную периферию, обладающую ИК или 433 интерфейсом.
github.com/eschava/broadlink-mqtt
После обзора решил для себя заказать Broadlink RM (наверно про).
Автор скажите пожалуйста, в вашем устройстве только частота 433 или возможно использовать и другие частоты?
Охх, остановится трудно, вот давеча прикрутил одну (из трех) камер — кубиков Xiaofang к домотикз. Теперь при открытии входной двери летит по почте фотография вошедшего :)))
С учётом того, что управление кондиционером несколько сложнее чем телевизором/увлажнителем/медиаприставкой — на кондиционер пульт шлет не отдельные коды кнопок а длиннючую посылку (бит на 250-300) описывающую полное состояние кондиционера.
Т.е. записать коды всех своих домашних пультов, возможно даже создать скрипты включения по несколько клавиш.
А управлять всем еще другим ИК пультом.