Я думаю очень актуальная статья в разгар жарких дней. Разберем добавление управляемых по ИК устройств, для этого нам надо:
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 - массив данных который указывает какой режим будет включен при выборе температуры Х в хоумките
pseudo-mode - режим для хоумкита. Если у вас была команда на охлаждение до X градусов то пишем cool, если нагрев, то heat
data - команда, которую мы будем передавать.
Более подробное описание на английском так же можно посмотреть по ссылке выше в документации к плагину. После того, как мы внесли все команды в конфиг, сохраняем его, перезапускаем бридж и можем наслаждаться управлением нашего кондиционера с телефона. Так же можно управлять командами "Привет Сири, установи температуру кондиционера 23 градуса".
Важное замечание! Если вы будете регулировать температуру родным пультом кондиционера - в хоумките это не отобразится, т.к. ИК - технология без обратной связи. Свои вопросы и поправки пишите в комментариях!