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

30 июня 2018, 12:17

Я думаю очень актуальная статья в разгар жарких дней. Разберем добавление управляемых по ИК устройств, для этого нам надо:

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 градуса".

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


Все новости мира умных домов - t.me/SprutAI_News

Остались вопросы? Мы в Telegram - t.me/soprut

Хочешь умный дом но нет времени разбираться?
Посмотри примеры работ и выбери себе интегратора.
  1. Олег Челбаев (sprut)

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

  2. Вячеслав Фетисов (Ziracul)

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

  3. Сергей Сафронов (deda)

    Спасибо 👍

  4. Антон Фаюк (LowriderA)

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

  5. (AlexPas)
    (AlexPas) год назад

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


  6. Артём Суровцев (surovtsev.artyom)

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

  7. Геннадий Куракин (Onag)

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

  8. Роман Иванцов (Roman)

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

  9. bandreye bandreye (bandreye@yandex.ru)
    bandreye bandreye (bandreye@yandex.ru) отредактировано год назад
    Комментарий был удален
  10. FranticRave Иван (zas89)
    FranticRave Иван (zas89) год назад

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

  11. Алексей Костаков (partizan)

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

  12. Алексей Костаков (partizan)

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

    temperature16

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

  13. Алексей Костаков (partizan)

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

    /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)

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

  14. Алексей Костаков (partizan)

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

    "pseudoDeviceTemperature": 25,

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

    • Александр Жабунин (OXOTH1K)

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

    • Александр Семенков (a.s.semenkov)

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

  15. Алексей Костаков (partizan)

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

  16. Дмитрий Демидов (DDemidov)

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

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

  17. Алексей Фролин (plutos)
    Алексей Фролин (plutos) отредактировано 10 месяцев назад
    2000x2000x_image.jpg?1542968677

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

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

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

  18. Александр Жабунин (OXOTH1K)
    Александр Жабунин (OXOTH1K) 10 месяцев назад

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

  19. (Fandorin)
    (Fandorin) 9 месяцев назад

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

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

  20. Василий Нутрихин (VasiliyN)
    Василий Нутрихин (VasiliyN) 5 месяцев назад

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

  21. (031166)
    (031166) 4 месяца назад

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

  22. (siddy)
    (siddy) 4 месяца назад

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

К списку статей

Скидки для сообщества

Интернет-магазин yourhomekit.ru

+7 914 550-51-11
Промокод:
SPRUT-BLG
Размер скидки:
8%
Cамый большой ассортимент в России аксессуаров Apple HomeKit

Похожие статьи

09 ноября 2018, 20:54
Кейс создания умного дома без каких либо прокладок в виде Raspberry pi
04 сентября 2018, 12:14
Интеграция RGB ленты на ESP8266 с прошивкой tasmota в систему HomeBridge (HomeKit)
15 октября 2018, 09:05
Прошивка для Sonoff c нативным HomeKit
15 ноября 2018, 09:42
Способы автоматизации механических ворот
15 ноября 2018, 13:11
Xiaomi Mi Remote 360 добавляем Apple HomeKit
27 октября 2018, 12:20
Нативный Термостат для котла на ESP8266 с поддержкой Apple HomeKit
01 октября 2018, 07:43
Нативный HomeKit на ESP8266
15 июня 2018, 12:13
Охранная система в гараж на ESP8266 с интеграцией в Apple HomeKit
02 октября 2018, 18:41
Установка SDK для компиляции прошивок под HomeKit
04 апреля 2019, 17:48
Расскажу о том за ~1 час перевезти УД с 2мя USB стиками с Raspberry PI на Synology NAS.