Broadlink RM2 Pro, Livolo, RF433, полуумное управление светом в Domoticz

25 ноября 2018, 18:32

Будем использовать выключатели Livolo работающие по протоколу RF433 с помощью контроллера Broadlink RM2 Pro. Из минусов сразу отмечу, у данного протокола RF433 нет обратной связи. То есть включен свет или выключен ваш Domoticz (или любая другая система) знать не будет. Выключатели были установлены достаточно давно, будем использовать их в полу-умном доме. В данное время на рынке, есть масса решений с обратной связью на протоколах Zigbee или Z-wave, в виде выключателей или реле от различных производителей Xiaomi, Fibaro и т.д и т.п, поиск вам в помощь.

  • Broadlink RM2 Pro вы заранее подключаете к вашей Wi-Fi сети, с помощью программы e-Control
  • Нам понадобиться пульт Livolo для записи команд
  • Подключитесь по SSH с помощью программы Putty к вашей Raspberry PI
  • Устанавливаем библиотеки и необходимые зависимости:

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

  • Загружаем плагин python-broadlink и переходим в папку:

git clone https://github.com/mjg59/python-broadlink
cd python-broadlink
  • Устанавливаем плагин
sudo python setup.py install
  • Запускаем поиск устройств
./broadlink_discovery
  • Результат будет примерно таким, в списке будут указаны IP и mac - адреса ваших устройств.
  • У меня два устройства от компании Broadlink
  1. Контроллер Broadlink RM2 Pro, его IP-адрес 192.168.1.171 и mac a192aa0d43b4
  2. Удлинитель Broadlink MP1, его IP-адрес 192.168.1.181 и mac 4aa2c934ea34

Шаг 1
  • Запускаем команду для обучения пультов и записываем в файл, который мы будем позже использовать в Domoticz. Укажите IP, mac - адрес вашего Broadlink RM2 Pro и имя файла, к примеру Livolo77.txt

./broadlink_cli --type 0x2712 --host 192.168.1.171 --mac a192aa0d43b4 --learnfile livolo77.txt

Шаг 2
  • Нажимаем кнопку на пульте Livolo, наводим на ваш Broadlink RM2 Pro он записывает команду в файл Livolo77.txt

Это и есть в последующем наш готовый файл с командой для вкл\выкл устройств.

  • Для проверки, вводим команду:
./broadlink_cli --type 0x2712 --host 192.168.1.171 --mac a192aa0d43b4 --send @livolo77.txt

  • Свет должен будет включиться

  • Создаем файлы с разными названиями для выключателей, повторяем Шаги 1 и 2.


Переходим в Domoticz и настраиваем виртуальный датчик:

  1. Настройка-Оборудование
  2. В разделе Тип: выбираете — Dummy (Does nothing, use for virtual switch only) указываете имя Livolo
  3. Нажмите добавить, появится новая запись Livolo
  4. Выберите создать виртуальные датчики

5. Указываете имя, тип датчика: Переключатель — нажимаем ОК. Создаете столько переключателей сколько нужно вам, для управления вашими выключателями

6. Настройка-Устройства, в открывшемся окне находим созданные вами переключатели

7. Переходим в меню Переключатели

8. В открывшемся окне видим созданные ранее переключатели

9. Настройка-Дополнительно-События

10. В открывшемся окне создаем скрипт, выбираем dzVents — указываем имя и активируем его, event active. Вставляем код, указав IP и mac - адрес вашего Broadlink. Необходимо поменять на имена ваших файлов и переключателей. Нажмите Save

return {
on = {
devices = {'Бар', 'Бра', 'Ванная', 'Вентилятор', 'Вход', 'Зал', 'Кухня', 'Спальня'} -- тут указываем имя переключателей в кавычках, через запятую и пробел
},
logging = {
level = domoticz.LOG_ERROR
},
execute = function(dz, item)

local Path = "/home/pi/python-broadlink/cli/" -- путь где находится файл
local Type = '0x2712'
local Host = '192.168.1.171' -- IP вашего Broadlink 
local Mac = 'a192aa0d43b4' -- МАК адрес вашего Broadlink

function SendCommand()
cmd = "cd "..Path.." && python broadlink_cli --type "..Type.." --host "..Host.." --mac "..Mac.." --send @"..CMD.."" -- строка запуска скрипта
dz.utils.osExecute(cmd)
end

if (item.changed) then
if (item.name == 'Бар') then -- имя или idx вашего выключателя
CMD = 'livolo3.txt' -- Ваш ранее созданный файл с командой должен находится в папке указанной выше
item.switchOff().afterMin(1).silent() -- через минуту ПЕРЕВЕДЕТ переключатель в off без действия 
elseif
(item.name == 'Бра') then -- имя или idx вашего выключателя
CMD = 'livolo5.txt' -- Ваш ранее созданный файл с командой должен находится в папке указанной выше
item.switchOff().afterMin(1).silent()
elseif
(item.name == 'Ванная') then -- имя или idx вашего выключателя
CMD = 'livolovannaya.txt' -- Ваш ранее созданный файл с командой должен находится в папке указанной выше
item.switchOff().afterMin(1).silent()
elseif
(item.name == 'Вентилятор') then -- имя или idx вашего выключателя
CMD = 'livoloventilyator.txt' -- Ваш ранее созданный файл с командой должен находится в папке указанной выше
item.switchOff().afterMin(1).silent()
elseif
(item.name == 'Вход') then -- имя или idx вашего выключателя
CMD = 'livolo1.txt' -- Ваш ранее созданный файл с командой должен находится в папке указанной выше
item.switchOff().afterMin(1).silent()
elseif
(item.name == 'Зал') then -- имя или idx вашего выключателя
CMD = 'livolo6.txt' -- Ваш ранее созданный файл с командой должен находится в папке указанной выше
item.switchOff().afterMin(1).silent()
elseif
(item.name == 'Кухня') then -- имя или idx вашего выключателя
CMD = 'livolo2.txt' -- Ваш ранее созданный файл с командой должен находится в папке указанной выше
item.switchOff().afterMin(1).silent()
elseif
(item.name == 'Спальня') then -- имя или idx вашего выключателя
CMD = 'livolo4.txt' -- Ваш ранее созданный файл с командой должен находится в папке указанной выше
item.switchOff().afterMin(1).silent()
end
SendCommand()
end
end
}

В меню Переключатели (7) нажимаете на вашу лампочку, если все прописано верно включится свет, в нужном вам месте. Bingo!


Все новости мира умных домов - t.me/SprutAI_News

Остались вопросы? Мы в Telegram - t.me/soprut

  1. Евгений Твёрдый (Mazaxaka)
    Евгений Твёрдый (Mazaxaka) 7 месяцев назад

    Интересная статья. Livolo у нас очень популярны. Совсем скоро на рынке появится их ZigBee версия, это будет совсем здорово:)

    • Александр Сульженко (Zver)
      Александр Сульженко (Zver) отредактировано 7 месяцев назад

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

  2. (Locy)
    (Locy) 2 месяца назад
    Здравствуйте, а подскажите пожалуйста, данное обучение только для ir пультов. А как быть с радио? Какая последовательность обучения и получения кодов?

    • Александр Сульженко (Zver)

      так тут и приведен вариант как раз привязки пультов  от Livolo, они и работают как раз на частоте RF433

      • (Locy)
        (Locy) 2 месяца назад

        Странно. Пульт ir (по консольной команде обучения) сразу считал код кнопки, и записал ее в файл, а вот пульт rf не считывает. Хотя через приложение (на телефоне) смог считать команды rf пульта. Может есть возможность эти команды с телефонного приложения вытянуть как-то? В телефонном приложении, радиопульты обучаются в пару подходов на кнопку, сперва сканирование, потом обучение (ir пульты в одно действие, сразу обучение). А эта консольная команда (со статьи) не нуждается в двойном подходе для обучения rf пульта?

        • Александр Сульженко (Zver)

          какой пульт, протокол? он рабочий?  как вы его применить и где собираетесь? про двойной подход вопрос вообще не понял

          • (Locy)
            (Locy) 2 месяца назад

            Уже не актуально, спасибо за отклик :) Но отвечая на вопрос - rf пульт на 2 кнопки on\off, 433 mhz. Включает и выключает люстру. Пульт рабочий и уже пробросил в homekit, правда через homebridge (а коды считал через homebridge, в соседней статье здесь есть инструкция, там как раз в 2 шага работает считывание для rf).

            • (Locy)
              (Locy) 2 месяца назад

              А можно еще вопрос) Как понял, скрипт актуальный только если вкл/выкл делается одной кнопкой/командой, а как изменить скрипт, если включение и выключение одной люстры делается через 2 разные кнопки/команды?

К списку статей

Похожие статьи

05 декабря 2018, 12:17
Добавляем управление пылесосом от Xiaomi в Domoticz, с помощью плагина
29 апреля 2019, 19:25
Финальная настройка датчиков и реле в системе управления умным домом Domoticz.
15 декабря 2018, 17:49
Добавим датчики температуры и влажности которые подключаются через GPIO Raspberry
16 ноября 2018, 20:56
Это простая система домашней автоматизации, которая позволит вам собрать в одно целое, устройства различных производителей. Вы сможете настраивать, контролировать, интегрировать, создавать сложные сценарии и т.д и т.п.
08 января 2019, 23:04
Вот думаю, сохранить немного интриги, или сразу рассказать о моих выводах? Пожалуй, на пару строчек растяну. Но любой человек, который читал хоть одну мою статью поймет сразу что топить я буду именно за home-assistant. Почему? Пусть хоть здесь будет интрига.
09 декабря 2018, 17:59
Добавляем управление каждой розеткой удлинителя Broadlink Mp1 в нашу систему умного дома, с помощью плагина python-broadlink
03 июня 2019, 08:16
Добавление USB deCONZ в Domoticz.
01 декабря 2018, 18:29
Радио в Domoticz, виртуальные переключатели
18 ноября 2018, 20:42
Ранее мы с вами уже провели установку нашей системы Domoticz и теперь перейдем к её первичным настройкам
25 ноября 2018, 18:37
Активируем режим разработчика на шлюзе Xiaomi и добавим его Domoticz