Статья

TV в homekit через homebridge и Broadlink

Интро

Данная статья специально для тех, кто устал от изобилия всеразличных пультов под каждый вид техники и решил обзавестись такой замечательной вещью как Broadlink RM.

Итак, что нам потребуется:

Малина, с установленным Homebridge на борту (тыктык).Непосредственно один из видов Broadlink RM (это может быть Broadlink RM Pro или же RM3 Mini тык).iPad или iPhone на котором мы будем пользоваться сием удобством.

Установка homebridge-broadlink-rm-tv

Делаем мы это во вкладке плагины в нашем UI либо залетаем в терминал (тык, тык) и пишем:

npm i -g homebridge-broadlink-rm-tv

Ждем установки и переходим к следующему шагу.

Редактирование конфига

Открываем конфигурацию любым удобным способом и прописываем туда:

"platforms": [ { "platform": "BroadlinkRM", "name": "Broadlink RM", "hideScanFrequencyButton": true, "hideLearnButton": true, "hideWelcomeMessage": false, "accessories": [ { "name": "My TV", "type": "tv", "host": "192.168.0.000", "data": { "off": "26008C009392143614351436141114111411141015101436143515351411141114111411141114101436141114111411141015101411143614111435143614361435143614351500060197921436143514361411141114101510141114361435153514111411141114101510141114361411141015101411141114111435151014361435153514361435153514000D05000000000000000000000000", "on": "260....", "remote": { "select": "260....", "arrowUp": "260....", "arrowDown": "260....", "arrowLeft": "260....", "arrowRight": "260....", "back": "260....", "exit": "260....", "playPause": "260....", "info": "260...." }, "powerMode": { "show": "260...." }, "volume": { "up": "260....", "down": "260...." }, "inputs": [ { "name": "HDMI 1", "type": "hdmi", "data": [ { "data": "260....", "pause": 0.4 }, { "data": "260....", "pause": 0.4 }, { "data": "260....", "pause": 0.4 }, { "data": "260....", "pause": 0.4 } ] }, { "name": "TV", "type": "hdmi", "data": [ { "data": "260....", "pause": 0.4 }, { "data": "260....", "pause": 0.4 }, { "data": "260....", "pause": 0.4 }, { "data": "260....", "pause": 0.4 }, { "data": "260....", "pause": 0.4 } ] } ] } } ] } ] }

Что за что отвечает:

name: везде произвольно и исключительно на усмотрение установщика.

type: оставляем tv, иначе ничего не выйдет).

host: ip вашего Broadlink.

data: начало поля HEX кодов.

(В дальнейших полях необходимо будет вставить коды от вашего пульта для ТВ.

Для считывания кодов можно:

  1. Использовать способности плагина, для этого нужно в конфиге изменить "hideLearnButton": false и у нас появится переключатель, при нажатии на который можно будет считать код и увидеть его в логе homebridge.
  2. Чем пользовался я и на мой взгляд более удобно: скачиваем программу Broadlink Manager и далее всё интуитивно понятно, однако, подходит исключительно для windows).
  3. Любой другой известный вам и более удобный для вас способ.

on/off: включение/выключение.

select: кнопка ok.

arrowUp/Down/Left/Right: клавиши вверх/вниз/влево/вправо.

power mode: показано на скрине ниже.

Inputs: выбор ввода как на скрине --->

У меня нужно сделать несколько действий, поэтому для каждого ввода несколько кодов по очереди, но если у вас больше/меньше, то можно убрать или добавить еще строчек

Думаю что означает Volume, back, exit, PlayPause, info вы знаете, поэтому пойдем дальше).

Для удобства подписал что за что будет отвечать на скринах ниже, (пульт появится там же где и пульт для Apple TV) для удобства можно задать клавишам более нужные функции, например на PlayPause я лично поставил функцию Mutе, а на стрелки переключение каналов и громкости, по умолчанию громкость регулируется кнопками громкости iPhone.

Перезагружаем homebridge

После перезапуска должна появиться иконка TV и пульт в пункте управления, там же где и пульт от ATV.


отличное решение, теперь в кит можно добавить любой телевизор красиво.

Спасибо за интересное решение:)

А возможно ли, так же красиво сделать это через home assistants ?

теперь да, в ХА уже добавили компонент телевизор. Для этого нужно у media_player прописать device_class: tv

А можно небольшую памятку как это сделать, а то в плагине broadlink для HA почему получается только отдельными переключателями это сделать и все

Подписывайтесь на меня! Закину в блог на днях!

Спасибо) ждемс) 

Лучше полноценную статью, от добавления плагина для броадлинка, до прокидывания девайса ТВ в кит 

Это когда? В 0.93?



Да вроде и в 0.92 было уже. Вот https://www.home-assistant.io/components/homekit/">здесь описано:

1000x_image.png?1558205068

Ага, уже нашел сам. Появилось явно недавно, тк перед тем как это делать через бридж, пытался сделать такое же в ха и tv как типа вообще не было в ха

Будем ждать от тебя статью, потому что у меня что-то не получилось сейчас повторить такое же в ха) 

ну все! теперь не отвертеться :)

Это в 0.93 добавили? не видел чет у них компонента с tv

Подскажи пожалуйста по настройке переключения input. У меня чтобы выбрать нужно нажать кнопку Источник и либо стрелками выбрать нужный hdmi, либо последующие нажатия на кнопку Источник будет переключаться на следующий доступный Выход. Как это лучше прописать? Спасибо

Все действия поочередно, 1 код - источник, 2 код - стрелка, 3 код - ок, 4 код - exit, например. У меня так же

Понял. Спасибо. Правда у меня почему то через плагин перестали считываться коды. Включается режим, но когд не считается( 

Тут уж не подскажу, я все через прогу Broadlink Manager делал, никаких проблем не возникало

Я б тоже воспользовался, но у меня Mac

Погугли еще способы, там можно и через ха и через нодред и еще какой-то способ в хб был, думаю найдешь альтернативный

А у тебя случайно телек не Samsung?

Samsung F серии

Можешь скинуть свои hex коды? Просто у меня  почему то только сигнал вкл/выкл нормально считывается( 

Ok: "26002800070B300D13050AB50C820F8E091C0A4106870E380B210A4008170E1B074908840C0009090A000D05",

Source: "26008C009193133713371435141113121312141113121336133713371312131113121411141113361411141114111411141114111311141114361435143614361435143614361400060295931337133613371312131213121311131212381337113812131213121312131113123812131213121311131213121312131213123712381238123712381238123712000D05000000000000000000000000"


Канал +: "26008C008E95123811381238121311141113131212141138123712381213111412121214111313121237121313121238111411131213123812131237123812131237123812381200060394941238123811381312121313121213111411381238123712141113121411141014111314361214111312371214121311131237131212381237131311381237143613000D05000000000000000000000000",


Канал -: "26008C008F94133713351438121311131214111311141138133713361214121311131114121312131114111411141137131212141114113712391237123713131139113712381200060394951238123712381213121311141113131310391238113812131114111412121313111311141114121212391113121214121236133811391138121311381337123812000D05000000000000000000000000",


Громкость -: "26008C009193133713371237121313121213121312121238123812371312131311131213121312371634131311371213121313121214111312121238121313371138133712381100060494951337123712381213121311131312131311381237133713121213121311141114113813361213143612141113121213121312121313371212123812381237123812000D05000000000000000000000000",


Громкость +: "26008C009293133712371238131311131312121312121238133612381213121312131114111412371238123713121214121212131212121411141114113811381238133612371300060693941238113811381213131213131014111312381337123812121213131311131113123812381237121313121213131211141113121312131238123713371237123812000D05000000000000000000000000",


Return: "26008C008F95123713371238121311141213111312131238113812381213121312131113121312131313111312371238131212381213113813371138121412121238111312381200060494941238123812371114121313121213121311381238123811141114121311141113121311131213133713371114123712131337123712381213121311381214113812000D05000000000000000000000000",


Exit: "26008C009094123812381138121412121312131211141237123812371213131212131213131211381312133713361312133712131213111411381213121312381114123712381100060693941237133713371214111312121213121312381138123813121213111411141113123812131336133713121237121312131213133612141212123812131138133712000D05000000000000000000000000",


Mute: "26008C008E961138113812381114111411141114111411381139113812141014121311131214113812371338113811141114121311141114101412131114113812381138123812000606919511391238113A1013131211151112121411371238123811141312111411141213113812371238123811141114111411141113111510141114123712371239113811000D05000000000000000000000000",


Menu: "26008C00909413361337123812131311121312131312133712371337131212121312121411131213123712131238123712131213131213371212133713121312123713371238120006039594123713371237131213121213121313121237123F0B3713121213131311131114131211381213123712381213121410141138131213371311131213371337113812000D05000000000000000000000000"

Спасибо большое, Попробую. А стрелок (влево, вправо, вверх, вниз) нет?

есть, но не в HEX, а в Base64, но их можно конвертировать (гугл поможет)

Влево: JgCMAJCUEjgTNhI4EhMSExITERMSExI4EjcSOBITExISExISEhMSOBMSEjcTEhMSEjgSNxITEhMSNxITEjgSOBISEhMSOBMABgKUlBM3EzcTNxISExITEhITEhMSNxI4EjgSExISEhMTEhITEjcTEhI4EhMSExE4EjgSExISEzcTEhI4ETgSExITEjcSAA0FAAAAAAAAAAAAAAAA
Вправо: JgDSAJCVEjcSOBM3ERMTEhMSEhMSExI3EzcTNxITERMSExITEhMSExI3EhMSExMSEzYTNxMSEjcTEhI4EjgSNxITExISOBIABgOUlBM3EjgSNxITEhMTEhITEhMROBI4EjcSExMSEhMSExMSEhISOBMSEhMSExI3EjgSExI3EhMSOBI3EzcTEhITEjcSAAYElJQUNhI3EjgSExMSEhISExITEzcSNxI4EhMSExISExITEhITEzcRFxQNEhMSOBI3ExITNxMSETgSOBI3EhMSExI4EwANBQAAAAAAAA==
Вниз: JgCMAI+VEjcSOBI4EhISExITEhMTEhI3EjgSOBISExISExITEhMSNxMSEhMSExMSEzYSOBITEhMSNxM3EjgSNxMSExISOBEABgSUlBI4EjcTNxITEhMTEhISEhMSOBM3ETgSExITEhMSEhITEjgTEhITERMSExI4EjcSExITEjgTNhI4EzcSExISEjgTAA0FAAAAAAAAAAAAAAAA
Вверх: JgDSAJCUEzcTNhI4EhMSExITEhISExM3EzYSOBITEhMSExISEhMTEhITEhMSExISEzcTNxETEjgSOBI3EzcSOBETEhMTNxIABgOVlBI3EzcSOBETExISExITEhMSNxI4EzcSEhMSEhMSExITEhMSEhMSExITEhM2EzcTEhI4ETgSOBI3EjgSExITEjcSAAYElJQTNxI3EjgSExITERMTEhMSEzcSNxI4EhMSExETEhMSExITEhMSExETEhMSOBI3EhMSOBM2EjgSOBI3EhMSExI4EgANBQAAAAAAAA==

Спасибо

удачи, если не подойдет - отпиши, у меня 3 самсунга разных серий есть, попробую считать с другого телека)

Договорились)

Не подошли. У меня модель ue55hu8500t

Перепроверил, у меня на всех трех одинаковые коды - которые скинул

Ищи способ считать коды..

Эх. Понял уже. Спасибо

ребят вроде все телеки вне зависимости от пульта умеют по прямому коду сразу на нужный вход переключаться. Но нужен обучаемый пульт типа Harmony. Мои LG, Sony Philips, BK,Thompson так переключались.

пока сделал так, если действительно так и сможешь завернуть то как это сделать в виде инструкции, то с меня лайк)

а чего там в инструкцию писать - берем пульт Harmony в него заводим ваш телек и с пульта считываем коды конкретных входов.
Пульта ели нет то они сейчас не дорого стоят на ebay - подойдет фактически любой у которого есть экран - так как на экранном меню можно создавать свои собственные кнопки и вывести нужные команды входов.

А коды-то прямые по входам откуда взять? Если на оригинальном пульте не задумано так Harmony их генерирует что ли?

Я же говорю - почти все телевизоры и ресиверы уже имеют прямые коды для конкретных входов и функций. Но на пультах не выводят. А хармони имеет очень большую базу устройств и кодов и если какого то устройства нет то обучается паре команд с родного пульта остальное самостоятельно подтягивает

спасибо, ожидал. правда жаль не на все телеки можно найти дискретный код выключения.

Жаль что без без атв бесполезно,

Все сделала хк пишет не поддерживается ,он без эпл тв не может распознать ? 

Кто пишет? Что не поддерживается? Причем тут atv?

Ребята, подскажите пож-та, если уже установлен 

homebridge-broadlink-rm v3.5.5, и несколько устройств уже есть в конфиге, все равно необходимо создавать новую платформу? или можно просто добавлять в аксессуары?

В статье форк на твой плагин, то бишь он точно такой же, но с добавлением телека, просто переустанови плагин на тот что в статье и добавь телек в аксессуары, должно работать по идее

Спасибо) всё заработало)

Помогите) 
установил  homebridge-broadlink-rm-tv в терминале на mac os, теперь перестал homebridge  запускаться.
до этого уже стоял  homebridge-broadlink-rm.BroadlinkRM

сейчас пишет вот такую штуку:

[2019-5-24 00:17:42] Loaded config.json with 0 accessories and 1 platforms.


[2019-5-24 00:17:42] ---


[2019-5-24 00:17:45] Loaded plugin: homebridge-broadlink-rm


[2019-5-24 00:17:45] Registering platform 'homebridge-broadlink-rm.BroadlinkRM'


[2019-5-24 00:17:45] ---


[2019-5-24 00:17:46] Loaded plugin: homebridge-broadlink-rm-tv


/usr/local/lib/node_modules/homebridge/lib/api.js:150


    throw new Error("Attempting to register a platform '" + fullName + "' which has already been registered!");

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

Удалить который не из статьи, сверху же в комментариях написано

так что прописывать в терминале?

Прошу помощи: поменял роутер, после все плагины и конфиг перенастроил под новые ip итп, завелось всё, кроме ТВ, простая смена IP в конфиге не помогла, что еще можно попробовать? (убирал из конфига платформу, аксессуар, прописывал по новой, удалял мост хомбриджа и добавлял заново) что еще можно удалить?

Телевизор в доме появляется, но не реагирует ни на одно действие

Так тут только ip бродлинка нужен, к роутеру привязки нет

я идиот, я же поставил ip ТВ :( спасибо тебе)

удалил старый плагин, поставил новый, конфиг поменял, проверил (jsonlint) и в итоге ничего не работает а выдает :


ReferenceError: log is not defined
at Object.keys.forEach (/usr/lib/node_modules/homebridge-broadlink-rm-tv/node_modules/homebridge-platform-helper/accessory.js:72:9)
at Array.forEach (:null:null)
at TVAccessory.checkConfig (/usr/lib/node_modules/homebridge-broadlink-rm-tv/node_modules/homebridge-platform-helper/accessory.js:54:25)
at Object.keys.forEach (/usr/lib/node_modules/homebridge-broadlink-rm-tv/node_modules/homebridge-platform-helper/accessory.js:66:14)
at Array.forEach (:null:null)
at TVAccessory.checkConfig (/usr/lib/node_modules/homebridge-broadlink-rm-tv/node_modules/homebridge-platform-helper/accessory.js:54:25)
at Object.keys.forEach (/usr/lib/node_modules/homebridge-broadlink-rm-tv/node_modules/homebridge-platform-helper/accessory.js:66:14)
at Array.forEach (:null:null)
at TVAccessory.checkConfig (/usr/lib/node_modules/homebridge-broadlink-rm-tv/node_modules/homebridge-platform-helper/accessory.js:54:25)
at new HomebridgeAccessory (/usr/lib/node_modules/homebridge-broadlink-rm-tv/node_modules/homebridge-platform-helper/accessory.js:35:10)
at new BroadlinkRMAccessory (/usr/lib/node_modules/homebridge-broadlink-rm-tv/accessories/accessory.js:16:5)
at new TVAccessory (/usr/lib/node_modules/homebridge-broadlink-rm-tv/accessories/tv.js:9:5)
at config.accessories.forEach (/usr/lib/node_modules/homebridge-broadlink-rm-tv/platform.js:68:32)
at Array.forEach (:null:null)
at BroadlinkRMPlatform.addAccessories (/usr/lib/node_modules/homebridge-broadlink-rm-tv/platform.js:63:24)
at BroadlinkRMPlatform.accessories (/usr/lib/node_modules/homebridge-broadlink-rm-tv/node_modules/homebridge-platform-helper/platform.js:28:10)
at Server._loadPlatformAccessories (/usr/lib/node_modules/homebridge/lib/server.js:403:20)
at Server._loadPlatforms (/usr/lib/node_modules/homebridge/lib/server.js:341:16)
at Server.run (/usr/lib/node_modules/homebridge/lib/server.js:90:36)
at module.exports (/usr/lib/node_modules/homebridge/lib/cli.js:59: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)

Вернул к старому конфигу и заработало как прежде.

Кто-нибудь может поделиться конфигом рабочим?

Я тут для себя пока открываю "умный дом" натолкнулся на строчки, которые еще красивее сделают эту настройку. Для таких же, как я, новичков:

рекомендую добавить строчки после строчки host

"pingIPAddress": "ip вашего tv", 

"pingFrequency": 5, 

"pingIPAddressStateOnly": true,

тогда статус в "доме" будет корректно отображаться, если помимо homekit вы пользуетесь и обычным пультом

Да, можно добавить, но только при условии, что телевизор подключается к интернету

Привет! Подскажи, пожалуйста, все сделал по инструкции, и в HomeKit появился сам телевизор, но я могу только включать и выключать его. А пульт не появляется - в логах пишет: 

[Broadlink RM] TV PowerModeSelection: No settings data found. Ignoring request.

Странно, хотя пункт powerMode я прописал (кстати, а какая кнопка на нем должна быть забита? Я вбил меню).  



в powermode любая кнопка, какая тебе удобна, там роли не играет какой код, проблема в чем-то другом.
А сам пульт не появился? Где ищешь его? Он должен появиться не в приложении дом, а тут
может не сразу появиться, попробуй ребутнуть хб и повключать/повыключать телевизор из приложения дом
1000x_image.jpg?1564958877

Пульт не проверял, у меня только iPad и Macbook, по идее там тоже должно быть :) 

Я этот лог в HB наблюдаю, когда нажимаю в приложении Мой дом в настройках пульта на "Настройки телевизора" (у тебя отмечено красным в квадрате на скрине выше "Power Mode"). И почему то Inputы не видит, хотя в конфиге всё прописано правильно, а сам файл валидный. Ребут HB конечно же делал, но тут другая какая-то ситуация. 

Сложно что-то посоветовать, у меня ни макбука ни айпада, на айфоне все ок и работает как часы уже несколько месяцев, попробуй спросить в чате в телеге по хомбриджу

Кому-то может быть пригодится, нашел дискретные коды на включение, выключение, hdmi1 и tv некоторых телеков samsung.
вкл: 2600D2008E941436153514351411141114111311141114361435143615101411131114111411143514111411143613361411151014351411143614361311151014361435141114000605929413361435143614111411131114111411133614361436141113111411141114101436141114101436143614111311143614111436123714111411133614361411140005FE93941436143614351411141114101411141114361336143614111410141114111411133614111411133614361411141014361411143613361411141114351436141115000D05000000000000
выкл: 260046008E941337123712381213121311131213121311381238123812121213121312131212121312131212123812381213111312381238123712381213121311381238121312000D050000
hdmi1: 260046009392123714331533150e140e11111111140f1333113712371310130e140e111112101433150e11111137140f1333113712371310133315331211143312111310130e14000d050000
tv: 260046009490103711371234130f101211121211110f133411361336110f130f10121211120f13341037111113341334101211121211110f130f11361311110f13341037113712000d050000
Привет всем:) 

Помогите, пожалуйста. 

У меня проектор, а хочу управлять техникой с пульта. 

Есть ли возможность какая-то в Inputs прокинуть пульты? То бишь на каждый inputs свой пульт? 

Пульт постоянно слетает - то вообще пропадает из списка, то меняет название почему-то, и на нажатие кнопок не отзывается. В чем может быть проблема? Вкл-выкл из homekit работает норм

Уже не использую хомбридж, не могу помочь, к сожалению 

хай народ. тема ещё жива?
"host": "192.168.2.105",
"data": {
"off": "2600D400949300013D361337153614111313121114121312173713371437101413121312131213111313131213111436143614121311143614361436143614111411133713381212140006359494153513381337121213121211141311121337113913381212131313111411131115111410141114361337131313111436143613371436131213121337133713131300060193941634153614361212131213121312141014361436143713111412131114111411141114111313133614351313131114361337133711391511131213371436111413000D0500000000",
"on": "26008E00969313351237133514111311131212121212113612381137131213111311131212121211123713111311131212121211121213361311133712361337123612371237130005FB96931336133613371112121213111312121212370F3811381312131113111312121212120F39101413111311131212120F1410381312133613361336130001651336123712000D0500000000000000000000260032016E370F0D0E0E0E290E0E0E290F0C0E2A0E0D0E0E0E290E0E0E0D0E2A0E2A0B100C100B110B100C100B100C100B110B2C0B110B2C0B100C100B110B100B2C0C100B110B100C100B110B100B110B100C100B110B2C0B100C100B110B100C2B0F290E0D0E0009746F370E0D0E0E0E290E0E0E290F0D0E290E0D0E0E0E290F0D0E0E0E2A0D2A0D0F0B100B110B100C100B110B100C100B2C0B110B2C0B110B100B110B100C2C0B100C100B110B100B110B100C100B110B100B110B2C0E0E0E0D0E0E0E0D0F290F280F0D0E0009736F370F0D0E0D0E290F0D0E290F0D0E290F0D0E0D0E2A0E0E0D0F0D2A0B2C0D0F0B100C100B110B100C100D0E0C100D2A0C100B2C0D0F0D0E0D0F0D0F0D2A0B100C100B110B100D0F0B110B100D0F0D0E0D0F0E290F0D0E0D0F0D0E0E0E290F280F0D0F000D05000000000000",
есть 2 прибора , телек и усилитель . нужно чтобы они включались и выключались одновременно. вопрос как ,и куда втыкать второй Hex.

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

Устройства


Apple

Apple TV 4K

(23 отзыва)

Raspberry Pi

Raspberry Pi 4

(16 отзывов)

Broadlink

BroadLink RM Pro

(5 отзывов)

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