Делаем это через Homebridge и Home Assistant
В прошлых статьях мы подробно сравнили устройства Noolite с зарубежными аналогами, а также рассказали про то каким универсальным может быть данное решение для реализации умного света.
Теперь, когда мы знаем о том, что это за зверь, можно перейти к его подключению.
Далее будет рассмотрено подключение универсального блока SUF-1-300 и использование в качестве контроллера платы MTRF-64, подключённой к Raspberry Pi.
Нам понадобится (дополнительно к имеющейся и настроенной Raspberry Pi):
- осветительный прибор
- сам блок SUF-1-300
- контроллер MTRF-64
- коннекторы для соединения блока и вашей проводки (2-4шт) — продаются в ближайшем строительном гипермаркете
- коннекторы мама-мама для соединения GPIO и пинов платы (4шт) — продаются на Ali или в ближайшем радиомагазине
- (опционально) радио-пульт Noolite, к примеру, PK315
Подключение блока в сеть
И так, в первую очередь мы должны подключить сам силовой блок.
Т.к. мы все-таки специализируемся больше не на монтажных работах, а в теме Умного Дома, то ниже будет рассмотрен наиболее простой сценарий, когда у вас есть, допустим, обычный светильник с выключателем с интеграцией блока прямо в сам светильник.
Для этого обесточиваем источник света, отсоединяем его от сети, достаём блок, и вставляем его в цепочку сети перед светильником.
Другими словами, белые провода (помечены на корпусе как 220) соединяем нашими коннекторами с проводами, по которым приходит фаза и ноль, а черные соединяем с проводами, которые идут от прибора. Т.е. точно также как мы привыкли это делать с известными всем реле Sonoff, только в данном случае не имеет значение какой провод идёт на фазу, а какой на ноль.
Пометка: если раньше у вас осветительный прибор был сделан с двойным выключателем (один включает 2 лампочки, второй включает другие 3), то от данной схемы придётся отказаться и оба «силовые» провода нужно будет скрутить в один и подключить в одно гнездо коннектора (обратите внимание, что от люстры будет идти 3 провода: 1 на ноль, 2 на силу; не перепутайте: важно не скрутить ноль с силовым). А вместо старой схемы 2 и 3 вы можете просто использовать диммируемые лампочки.
Теперь идём к нашему выключателю, вынимаем его, удостовериваемся, что он тоже обесточен, вынимаем из него фазный и силовой провод, соединяем их коннектором и утапливаем поглубже, чтобы в него вместился наш радиопульт.
Берём радиопульт и вставляем в гнезда выключателя один из белых проводов на вход и один из черных на выход (или наоборот).
После этого включаем электричество и привязываем вставленный радиопульт, используя инструкцию в комплекте.
Опишу быстро шаги здесь:
- нажимаем на единственную кнопку на силовом блоке, продавливая корпус (начнёт мигать желтый диод)
- нажимаем сервисную кнопку на пульте (начнёт моргать зелёный диод)
- нажимаем на кнопку выключателя
- диод на БЛОКЕ начнёт мигать быстрее
- продавливаем кнопку на блоке ещё раз, чтобы закончить привязку
Обратите внимание, что если ваш выключатель НЕ работает в режиме кнопки (т.е. когда вы на него нажали, то его положение запоминается, а не отщёлкиваемы обратно — так работают 90% выключателей), то необходимо перевести радио-пульт в режим вкл/выкл (для этого перевести чёрный переключатель под цифрой 2 вправо).
Теперь нажимаем на выключатель, и свет должен включиться.
Тем самым мы убедились, что мы удачно завершили первый этап и мы можем уже вернуть выключатель на место.
Пометка: если все-таки у вас так мало места в подрозетнике, что туда даже не вмещается маленький пульт (но такого не встречал), то просто снимите с него корпус, это делает его менее устойчивым к возможному попаданию влаги, но уменьшает его ещё сильнее в размерах.
Потроха осветительного прибора пока не убираем: для упрощения связки прибора с контролером на Raspberry.
Подключаем контроллер к Raspberry
Пометка: дальнейшие шаги будут описаны для MTRF64 с подключением по UART. Если вы используете usb версию, то в вашем случае достаточно вставить USB в свободный слот на Raspberry и воспользовавшись командами ниже действовать самостоятельно - там всё гораздо проще :)
Приступим к наиболее прикладным к умному дому действиям — подключим MTRF64. Для этого необходимо отключить Raspberry от питания, снять корпус и подключить с помощью вышеупомянутых коннекторов мама-мама контроллер по следующей схеме.
После этого собираем все обратно и подключаем Raspberry обратно. Должна получиться подобная картинка.
Заходим в консоль и вбиваем команду
ls /dev/tty*
Вы должны найти среди полученного результата запись /dev/ttyS0
Если ее нет, а скорее всего ее не будет, то заходим в системные настройки командой
sudo raspi-config
- Заходим в пункт Interfacing Options
- Выбираем пункт P6 Serial
- Отвечаем No
- После этого отвечаем Yes
- Закрываем Настройки и перезагружаем
sudo reboot
Повторяем команду
ls /dev/tty*
И теперь находим запись /dev/ttyS0
На этом базовое подключение контроллера закончено. Дальше переходим к настройке контроллера в вашем центре автоматизации. Ниже будут рассмотрены варианты: homebridge и home assistant.
Подключение к Homebridge
Сразу отмечу, что рассматриваемый ниже плагин очень упрощает жизнь пользователям Homebridge, за что отдельное спасибо автору. Ссылка на репозиторий ниже.
Для подключения контроллера к homebridge скачиваем соответствующий плагин: homebridge-noolite
$ sudo npm install -g --unsafe-perm homebridge-noolite
Добавляем соответствующую запись в конфиг
"platforms": [ { "platform": "NooLitePlatform", "serialPort": "/dev/ttyS0" } ]
Если используется версия USB, а не UART, то выполнить дополнительно следующую команду.
sudo usermod -a -G dialout
Перезагружаем homebridge. После чего по адресу your-raspberry-ip:8080 будет поднят веб-интерфейс для дальнейшего подключения блоков к контроллеру.
Пометка: в некоторых случаях используется веб-интерфейс для редактирования конфига и порт может быть как раз занят им, для этого для начала меняем порт webUI для homebridge, перезагружаем Raspberry, после этого добавляем в конфиг настройки модуля Noolite
Заходим по вышеуказанному адресу и начинаем процесс привязки.
- Для этого выбираем «Канал 0»
- После чего подходим к блоку и вводим его в режим привязки, нажимая кнопку 1 раз
- Возвращаемся в интерфейс и нажимаем на кнопку «Привязать Noolite-F»
- После чего привязанный блок должен появиться справа, а диод на самом пульте перестанет моргать.
- Копируем полученный ID
- Спускаемся чуть ниже и добавляем устройство в HomeKit
- Добавляем имя, добавляем канал (в нашем случае 0), вставляем ID
- Вуа-ля, устройство сразу же должно появится в вашем приложении Дом.
Поздравляю.
Включаем режим диммирования
Также одним из полезных советов в окончание блока по подключению блока SUF является список действий, который необходимо выполнить для перевода режима блока SUF в состояние возможности изменения яркости.
Т.е. изначально получается такая картина, что ваши радио-пульты изначально работают в режиме диммирования, а сам блок в режиме вкл/выкл. Странно, но да ладно…
Поэтому нам необходимо перевести блок в режим диммирования для того, чтобы иметь возможность изменять яркость.
Есть два способа:
Первый способ — с помощью кнопки на самом блоке. Необходимо с помощью зажатия кнопки на блоке более 5 секунд пока диод не начнёт гореть постоянно (ОЧЕНЬ ВАЖНО не отпускать кнопку в течение этих 5 секунд пока не дождетесь постоянного горения светодиода — в обратном случае может получится полная очистка памяти блока), после этого нажать ещё раз для подтверждения команды. Всё, блок переведен в режим диммирования.
Второй способ — с помощью отправки команды с контроллера. Для этого воспользуемся первой страницей веб-интерфейса, где заполним параметры отправки команды следующим образом:
- MODE=режим nooLite-F TX
- CTR=Передать команду (8)
- CH= XX (номер канала, в нашем случае 0)
- FMT=16
- d0=2
- d1=0
- d2=255
- d3=255
- IDO/1/2/3 = необходимо разложить наш адрес, полученный при привязке на 4 блока и записать их по порядку, если наш адрес является 00:11:22:33, то соответственно IDO=00, ID1=11, ID2=22, ID3=33
- CMD=Установить состояние (129)
Подключение к Home Assistant
При использовании Home Assistant наш путь будет немного посложнее, т.к. в данном случае нам необходимо будет использовать custom component и устанавливать python модуль. За данную возможность стоит поблагодарить автора репозитория, он достаточно активно откликается на любой запрос, в том числе он и откликнулся на наш запрос для того, чтобы заставить заработать его компонент на python 3.5. Репозиторий автора. Начнем…
Устанавливаем модуль для python
pip install git+https://github.com/SergejPr/NooLite-F.git
или как альтернативу можем использовать другой ряд команд
git clone https://github.com/SergejPr/NooLite-F.git sudo python setup.py install
Скачиваем все внутренности папки custom_components из репозитория и добавляем их в папку custom_components на нашу Raspberry.
Заходим в configuration.yaml и добавляем следующий блок
NooLite: port: "/dev/ttyS0"
, где в параметре port указываем путь до нашего контроллера (мы его добыли чуть выше)
После этого перезагружаем Home Assistant и убеждаемся в том, что при инициализации компонента не выдало ошибок. Значит мы на верном пути.
Приступаем к процессу добавления блока. К сожалению, в отличие от удобного веб-интерфейса под homebridge здесь мы будем вынуждены пользоваться командами на python.
И так. Привязыаем блок. Вводим блок в режим привязки, нажимая кнопку на блоке и в консоли выполняем следующую команду:
python3 -c 'from NooLite_F.MTRF64 import MTRF64Controller; from NooLite_F import ModuleMode; controller = MTRF64Controller("/dev/ttyS0"); print(controller.bind(channel=0, module_mode=ModuleMode.NOOLITE_F));'
, где важно заменить путь до контроллера на свой MTRF64Controller(«/dev/ttyS0») и номер канала channel=0
На выходе мы должны получить приблизительно такой ответ
[(True, <ModuleInfo (0x768063b0), id: 0xcadf, type: 5, firmware: 0>, <ModuleBaseStateInfo (0x76806370), state: ModuleState.OFF, brightness: 0.0, service mode: ServiceModeState.BIND_OFF>)]
Это означает, что теперь блок привязан и можно приступать к его настройке в Home Assistant.
Для этого добавляем в наш configuration.yaml в блок light: добавляем устройство
- platform: NooLite channel: 0 name: "living_room_light" scan_interval: 60 type: Dimmer mode: NooLite-F
, где channel — это наш канал, scan_intreval — интервал сканирования статуса в секундах (лучше так и оставить), если блок будет использоваться режиме диммирования, то ставим type: Dimmer, в обратном случае просто удаляем
Перезагружаем Home Assistant и видим новое добавленное устройство, которое попадает в HomeKit с помощью стандартного модуля homekit: либо, которое потом можно прокинуть в HomeKit через Node-red — об этом мы писали в отдельной статье.
Также, как мы описали выше для Homebridge, ниже описание того, как перевести в блок режима диммирования через Home Assistant.
Включаем режим диммирования
Также одним из полезных советов в окончание блока по подключению блока SUF является список действий, который необходимо выполнить для перевода режима блока SUF в состояние возможности изменения яркости.
Т.е. изначально получается такая картина, что ваши радио-пульты изначально работают в режиме диммирования, а сам блок в режиме вкл/выкл. Странно, но да ладно…
Поэтому нам необходимо перевести блок в режим диммирования для того, чтобы иметь возможность изменять яркость.
Есть два способа:
Первый способ — с помощью кнопки на самом блоке. Необходимо с помощью зажатия кнопки на блоке более 5 секунд пока диод не начнёт гореть постоянно (ОЧЕНЬ ВАЖНО не отпускать кнопку в течение этих 5 секунд пока не дождетесь постоянного горения светодиода — в обратном случае может получится полная очистка памяти блока), после этого нажать ещё раз для подтверждения команды. Всё, блок переведен в режим диммирования.
Второй способ — с помощью отправки команды с контроллера. Для этого воспользуемся отдельной командой python
python3 -c 'from NooLite_F.MTRF64 import MTRF64Controller; from NooLite_F import ModuleMode, ModuleConfig; controller = MTRF64Controller("/dev/ttyS0"); config = ModuleConfig(); config.dimmer_mode = True; print(controller.write_module_config(config, channel=0, module_mode=ModuleMode.NOOLITE_F));'
, где опять же обращаем внимание на MTRF64Controller(«/dev/ttyS0») и channel=0
Включаем режим диммирования
Также если вам требуется переключить режим работы подпаянного выключателя, то необходимо передать на блок следующую команду (работает только с модулем для homebridge)
MODE:F-TX; COM:0; RES:0; CH:0; CMD:129; FTM:16; D0:8; D1:0; D2:24; D3:0; ID:0x00000000;
D0:0 -переключающий выключатель
D0:16 -выключатель
D0:24 -не используется
Заключение
На этом нашу серию статей по Noolite можно считать законченной. Мы попытались сравнить устройства Noolite с другими реле и выключателями, мы рассказали вкратце об основных интересных нам устройствах, и в этой достаточно объемной статье мы попытались осветить процесс подключения устройств в центр автоматизации.
По итогам можно сказать, что хотя в общем у продукции Noolite всё еще есть недостатки:
— очень странный подход к маркетингу, который просто не дает вылезти из под тени основных игроков рынка, да и даже более слабых наработок других соотечественников, работающих на 433
— обратная связь, которая есть, но пока её нельзя назвать идеальной (есть, что доработать)
— скрытые возможности, которые приходится узнавать чуть ли не у самих разработчиков в личных переписках
— отсутствие какого-либо контакта с сообществами
Но при этом я с уверенностью могу сказать, что нашел для себя практически идеальное (за минусов недостатков выше) решение по контролю света в доме, которое в общем мне обошлось в разы дешевле основных известных игроков рынка, и при этом без изменения существующего ремонта.
Ну а также присоединяйтесь к чату Noolite, где уже собирают небольшой FAQ, а также там могут помочь с ответами на вопросы.