Статья

Добавляем кондиционер в HomeKit используя HomeBridge через Broadlink

Я думаю очень актуальная статья в разгар жарких дней. Разберем добавление управляемых по ИК устройств, для этого нам надо:1) Малинка (Raspberry Pi) или любое другое устройство с установленным хоумбриджом. Инструкцию по установке вы можете найти туттут или тут.2) Устройство Broadlink для управления техникой по ИК. Подойдет как Broadlink RM3 pro так и Broadlink RM3 mini.3) Роутер, куда же без него.4) Устройство которым мы будем управлять и пульт от него.

Часть первая.

Для начала необходимо подключить Broadlink (далее передатчик) к нашей сети wifi, для этого ищем соответствующее родное приложение в Appstore или Google Play, называется оно Broadlink e-control. Учтите, что если у вас 2х диапазонный роутер, то перед сопряжением с передатчиком необходимо переключиться на сеть 2,4 ГГц, потому как в 5-х частотах ничего не получится, сам на это напарываюсь второй раз. После того, как передатчик соединится с роутером на тыльной стороне перестанет мигать индикатор. Далее можно закрывать родное приложение Broadlink и сносить его с телефона, более оно нам не понадобится.

Часть вторая.

Подключаемся к нашему Хоумбриджу по веб интерфейсу (если у вас стоит соответствующий плагин), или к малине по ssh и ставим дополнение для работы с Broadlink:

bash
Копировать
sudo npm install -g homebridge-broadlink-rm

после завершения процесса установки можем переходить к правке конфига Хоумбриджа.

Часть третья.

Открываем конфиг Хоумбриджа и добавляем в раздел platforms следующие строчки:

json
Копировать
{ 

"platform": "BroadlinkRM", 

"name": "Broadlink RM", 

"hideScanFrequencyButton": true, 

"hideWelcomeMessage": true, 

"enableAutoOff": false, 

"hideLearnButton": false

}

Параметр hideWelcomeMessage отвечает за то, что при перезагрузке бриджа у нас в логе не будет высвечиваться приветственное сообщение, полезного в нем ничего нет, но если хотите его видеть, можете поменять true на false или вообще убрать строчку. hideLearnButton отвечает за отображаемую в HomeKit кнопку считывания ИК кодов. После всех проделанных манипуляций сохраняем конфигурированиям и рестартим Хоумбридж. Если вы все сделали правильно, в приложении Дом появится новый аксессуар - выключатель с именем Learn, после этого можно приступать к самой нудной и долгой части - считыванию кодов от пульта и прописке их в конфиг.

Часть четвертая.

К сожалению, в этом плагине нельзя задействовать все режимы кондиционера и регулировать мощность вентилятора. К тому же указать команды для нагрева и для охлаждения по всему диапазону температур, это значит, что для диапазона например 16-25 градусов вы можете указать охлаждение, 25-26 градусов авто режим, 26-30 нагрев. Помним это, выставляем все необходимые параметры, которые работать не будут, будь то управление створкой, всяческие ионизации воздуха и прочее и приступаем к считыванию кодов. Я для себя выставлял режим вентилятора как для нагрева, так и для охлаждения на авто и использовал только режим нагрева и охлаждения, вы можете комбинировать их как захотите. Важно помнить только, что мы по сути можем передать кондиционеру количество команд равное диапазону изменяемой температуры. Для моего кондиционера это 16-30 градусов, то есть 15 команд. Открываем любой текстовый редактор, в который будем временно заносить команды. Советую их подписывать, что бы не запутаться. Открываем приложение Дом и жмем на выключатель "Learn", на Broadlink при этом загорится огонек, после наводим пульт от кондиционера на него и жмем необходимую кнопку. После нажатия кнопки идем смотреть логи Хоумбриджа. Это можно сделать либо в веб интерфейсе, либо в командной строке написав tail -f /Путь/к/лог/файлу/хоумбриджаПосле того, как вы нажмете кнопку - в логах будет отображен код который пульт посылает. Обычно это длинная длинная строчка из буков и цифр. Копируем ее и вставляем в наш текстовый редактор, подписываем что это было за действие, что бы не забыть. После возвращаемся в приложение Дом, жмем на кнопку "Learn" второй раз, жмем на вторую кнопку, повторяем все то же, что делали в первый раз. И так далее, пока не получим коды всех нужных нам команд. А нам нужны команды: Выключение, включение, 16 градусов в режиме охлаждения, 17 градусов режиме охлаждения и.т.д. Думаю принцип понятен. Маленький совет - либо отключите на это время кондиционер от сети, либо делайте это не в одной с ним комнате, что бы он не сходил с ума от кучи передаваемых команд. После того, как необходимые коды у нас записаны - приступаем к правке конфига.

Часть пятая

Для начала откроем еще раз конфиг Хоумбриджа и добавим аксессуар кондиционер, у вас должно получиться что то вроде этого:

json
Копировать
{ 

"platform": "BroadlinkRM", 

"name": "Broadlink RM", 

"hideScanFrequencyButton": true, 

"hideWelcomeMessage": true, 

"enableAutoOff": false, 

"hideLearnButton": false,

"accessories": [ 

{ 

"name": "Air Conditioner", 

"type": "air-conditioner", 

"minTemperature": 10, 

"maxTemperature": 30, 

"defaultCoolTemperature": 24, 

"pseudoDeviceTemperature": 25,

"data": {}

}

]

}

Теперь разберем, за что отвечает каждый параметр.name - это имя устройства, которое будет отображаться в приложении Дом.minTemperature - минимальная температура, которую можно задать в хоумките, она не может быть больше 10 градусов, к сожалению это ограничение кита, насколько я понял.maxTemperature - максимальная температура, которую можно задать в хоумките.defaultCoolTemperature - температура, которая будет установлена на кондиционере при нажатии кнопки "Охлаждение" в режимах кондиционера в хоумките.pseudoDeviceTemperature - вымышленная температура, которую мы передаем в устройство кондиционер для корректного отображения хотя бы чего - нибудь. Еще есть параметр temperatureFilePath в котором можно указать путь к файлу, в котором лежит значение температуры, если у вас есть другие датчики, которые умеют снимать температуру и писать в файл на малине, можно указать его, вместо pseudoDeviceTemperature.А вообще там куча разных нужных и не очень параметров, которые можно добавить. Более полный список, с описанием на английском языке вы можете почитать в официальной документации к плагину тут.Далее приступим к наполнению самого важного, а именно прописыванию кодов управления. В параметре data указываем необходимое:"data": { "on": "xxxxxxxxx", "off": "xxxxxxxxx", "temperature16": { "pseudo-mode": "cool", "data": "xxxxxxxxx" }, "temperature17": { "pseudo-mode": "cool", "data": "xxxxxxxxx" },........"temperature30": { "pseudo-mode": "heat", "data": "xxxxxxxxx" }}Разберем параметры:on - команда на включение кондиционераoff - команда на выключение кондиционераtemperatureX - массив данных который указывает какой режим будет включен при выборе температуры Х в хоумките

pseudo-mode - режим для хоумкита. Если у вас была команда на охлаждение до X градусов то пишем cool, если нагрев, то heatdata - команда, которую мы будем передавать.Более подробное описание на английском так же можно посмотреть по ссылке выше в документации к плагину. После того, как мы внесли все команды в конфиг, сохраняем его, перезапускаем бридж и можем наслаждаться управлением нашего кондиционера с телефона. Так же можно управлять командами "Привет Сири, установи температуру кондиционера 23 градуса".

Важное замечание! Если вы будете регулировать температуру родным пультом кондиционера - в хоумките это не отобразится, т.к. ИК - технология без обратной связи. Свои вопросы и поправки пишите в комментариях!


Спасибо за статью, оч актуально ;)

Отличная статья

Спасибо 👍

Супер. Спасибо

Класс , мой RM mini как раз скоро придет! 


Подскажите, какая задержка обычно при отправке команды со смартфона до того, как кондер примет сигнал? 

Около 3х секунд максимум.

Александр, подскажи, у меня homebridge пишет, что версия node слишком старая. Как обновить node, что бы всё не поломать? :)

Вот то-же самое под Homey бы

так возьмите железку от Aeotec она с кондишками спокойно справляется.

Очень хорошая и актуальная статья. Автору огромное спасибо! 

Александр, подскажи, у меня homebridge пишет, что версия node слишком старая. Как обновить node, что бы всё не поломать? :)

Жаль, что нельзя создать пульт кондей целиком, как в шайбе Xiaomi .. но вот она как я понял работает только со шлюзами того же Xiaomi .. =(

было бы здорово если бы Олег настоял на выкладывании фактического конфига(без адресов и паролей конечно) реализованных авторами проектов.

ну вот как и говорил... валидатор json ровно как и сам бридж - сразу же ругаются на параметр в дата

temperature16

автор, выложи свой РАБОЧИЙ конфиг!

https://yadi.sk/d/m9Fq2hJB3aH5ci">Вот вам кусок конфета с броадлинком. 

Александр, спасибо! Но увы... что-то идет не так в логах:

/usr/lib/node_modules/homebridge/lib/api.js:50
if (name.indexOf('.') == -1) {
^
TypeError: Cannot read property 'indexOf' of undefined
at API.accessory (/usr/lib/node_modules/homebridge/lib/api.js:50:12)
at Server._loadAccessories (/usr/lib/node_modules/homebridge/lib/server.js:285:42)
at Server.run (/usr/lib/node_modules/homebridge/lib/server.js:86:38)
at module.exports (/usr/lib/node_modules/homebridge/lib/cli.js:43:10)
at Object. (/usr/lib/node_modules/homebridge/bin/homebridge:17:22)
at Module._compile (internal/modules/cjs/loader.js:654:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:665:10)
at Module.load (internal/modules/cjs/loader.js:566:32)
at tryModuleLoad (internal/modules/cjs/loader.js:506:12)
at Function.Module._load (internal/modules/cjs/loader.js:498:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:695:10)
at startup (internal/bootstrap/node.js:201:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:516:3)

это как раз, когда появляется аксессуар с типом кондиционер :(

Все решил ))) просто по привычке писал платформу отдельно, а аксессуары тоже отдельно. в это и была ошибка, о которой лог и кричал, но я не слышал ))) там просто выше и было написано что платформа Broadlink инициализирована с 0 аксессуаров. Александр, еще раз спасибо за помощь и статью. Сейчас еще прикручу датчик температуры и влажности и тогда параметр

"pseudoDeviceTemperature": 25,

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

Можно будет убрать, но температуру для этого плагина надо писать в файл, а по умолчанию это не сделано нигде.

Присоединяюсь к вопросу, помогите новичку прикрутить настроенный am2302 к сплиту

Алексей, приветствую)) можете скинуть ваш конфиг, не могу понять как правильно прописать...? В логах что-то подобное вашему описанию...

отправил конфиг на почту

Спасибо!!! Разобрался))

Александр, люто плюсую материал - настроил на свой Midea - работает просто безупречно. Теперь бы разобраться с системой MQTT. Потому как автор плагина Luke Rhodes видимо пока не имеет планов дописать возможность брать температуру из значений в комнате, куда помещаем кондишку и датчик температуры.

Спасибо! Настроил и все работает!

У меня модель Broadlink без термодатчика. Кто-то смог настроить HomeKit на отображение температуры из другого датчика?



2000x2000x_image.jpg?1542968677

Подскажите пожалуйста, если использовать broadlink для управления по радио-каналу 433Мгц (тк у меня много таких устройств), будет ли работать обратная связь, если мы что-то нажали с пульта, поменяется ли статус в HomeKit или нужно парсить логи HomeBridge уже подключенного к
broadlink через плагин
homebridge-broadlink-rm

? Если Второе, и это для кого-нибудь актуально, я могу дописать или написать плагин.


Я broadlink еще не пользовал, собрал из приемника и передатчика в ручную подобное устройство и написал плагин. Если кому нужна инструкция по прикручиванию, могу помочь с этим.


Помогите с вопросом про 
broadlink?

Обратной связи не будет, а схему такую я тоже собирал кстати)

Отличная статья! Всё получилось спасибо! Но, рекомендую дополнить:

Если Вы не заполните температуры 10, 11, 12, 13, 14 и 15, то при их выборе в Ките будет включаться дефолтная температура 24 градуса, по этому лучше прописать температуры 10, 11, 12, 13, 14 и 15, и каждой использовать один и тот же код минимального значения на кондиционере 16 градусов.

У меня не получилось. Первый раз хомбридж перестал работать после добавления кондиционера с командами. Восстановил. Второй раз перестал работать уже после добавления Broadlinka.

Добрый день. Можно ли где получить ,более подробную информацию по снятию кодов пультов ИК и RF для Broadlink. Спасибо

поясните для неопытного пож-та, нужен кондёр у которого на пульте есть отдельные кнопки для установки температуры? просто чем будут отличатся hexкоды если я задаю температуру кнопками +/-

Привет всем! После обновления homebridge до последней прошивки плагин Broadlink не работает Есть версии???
Спасибо

Добрый день! Подскажите чайнику, можно ли где-то получить более подробную информацию по прописыванию кодов. Каким образом определить код команды для установки температуры или режима, если на пульте режимы переключаются одной кнопкой, а темп регулируется вверх-вниз? Спасибо!


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