<
  • Главная
Статьи

Broadlink RM plus - інтегруємо в Domoticz, створюємо базу IR і RF кодів

  1. Де купити?
  2. Комплект поставки
  3. Розміри
  4. штатний ПО
  5. Інтеграція в Domoticz
  6. Створення бази кодів.

Привіт, друзі

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

Так як модель Broadlink RM pro вже неодноразово обдивлялася, я вирішив попрацювати з моделлю Broadlink RM plus, яка коштувала рівно стільки ж скільки і Broadlink RM pro.

Як з'ясувалося трохи пізніше, вже коли я чекав замовлення, RM plus є OEM варіантом першої версії RM plus, відмінності тільки в верхній кришці корпусу і відсутності вказівок на виробника на корпусі.

Де купити?

RM Plus - GEARBEST ALIEXPRESS

RM Pro - Gearbest Banggood Aliexpress

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

Поставляється пристрій в простій білій картонній коробці, що говорить про те, що даний тип продукту OEM.

Поставляється пристрій в простій білій картонній коробці, що говорить про те, що даний тип продукту OEM

У комплекті поставки йде база, трикутної форми, кабель USB і micro USB і трохи макулатури.

У комплекті поставки йде база, трикутної форми, кабель USB і micro USB і трохи макулатури

Зовні база нагадує якийсь артефакт, виконана з чорного глянсового пластика. Ніяких згадок про виробника на корпусі немає.

Ніяких згадок про виробника на корпусі немає

Розміри

Форма корпусу являє собою рівносторонній трикутник. Довжина сторони 11,5 см

Довжина сторони 11,5 см

Товщина пристрою - 3,6 см

Товщина пристрою - 3,6 см

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

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

На іншій стороні - порт харчування micro USB і віконце кнопки reset

На іншій стороні - порт харчування 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

Ось результат виведення пошукового скрипта вже з двома пристроями 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 - і є шуканий код.

Код в 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 повідомленнями.

Звіт одержуваний від скрипта на пошту виглядає так:

Вітальня - зволожувач включений в: 8: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.

Для тих хто не знайомий з темою -

Сподіваюся огляд був корисний, якщо тема цікава, то буду продовжувати.

Таблиця (Оновлюється) по екосистемі Xiaomi

Де купити?
Де купити?


Новости
  • Виртуальный хостинг

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

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью