Я думаю очень актуальная статья в разгар жарких дней. Разберем добавление управляемых по ИК устройств, для этого нам надо: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, если нагрев, то 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 на отображение температуры из другого датчика?
Подскажите пожалуйста, если использовать 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коды если я задаю температуру кнопками +/-
Спасибо
Добрый день! Подскажите чайнику, можно ли где-то получить более подробную информацию по прописыванию кодов. Каким образом определить код команды для установки температуры или режима, если на пульте режимы переключаются одной кнопкой, а темп регулируется вверх-вниз? Спасибо!