Статья

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

Оглавление

Будем использовать выключатели 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

Шаг 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 и настраиваем виртуальный датчик: Настройка-ОборудованиеВ разделе Тип: выбираете — Dummy (Does nothing, use for virtual switch only) указываете имя LivoloНажмите добавить, появится новая запись LivoloВыберите создать виртуальные датчики

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!


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

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

Вряд ли они там что-то сильно поменяют в протоколе. Должно получиться подключить их через спрут-стик.

Цена, вроде, будет на уровне текущих цен. 

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

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

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

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

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

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


Вернуться назад

Устройства


Raspberry Pi

Raspberry Pi 3 Model B+

(22 отзыва)

Broadlink

BroadLink RM Pro

(5 отзывов)

Вернуться назад