Найти тему
Sprut.ai

Добавляем кондиционер в 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:

sudo npm install -g homebridge-broadlink-rm

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

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

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

{

"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 градусов режиме охлаждения и.т.д. Думаю принцип понятен. Маленький совет - либо отключите на это время кондиционер от сети, либо делайте это не в одной с ним комнате, что бы он не сходил с ума от кучи передаваемых команд. После того, как необходимые коды у нас записаны - приступаем к правке конфига.

Часть пятая

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

{

"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 - массив данных который указывает какой режим будет включен при выборе температуры Х в хоумките

-2

pseudo-mode - режим для хоумкита. Если у вас была команда на охлаждение до X градусов то пишем cool, если нагрев, то heat

data - команда, которую мы будем передавать.

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

-3

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