В Home Assistant начиная с версии 0.93 появилась возможность добавить телевизор как телевизор, а не как набор выключателей. Сегодня покажу как сделать это проше всего. А именно используя Broadlink ( либо Xiaomi IR Remote) и кастомный компонент SmartIR MediaPlayer.
В первую очередь добавьте вашу платформу (в моем случае Broadlink) в файл configuration.yaml
# Broadlink switch: - platform: broadlink host: IP_ADDRESS mac: 'MAC_ADDRESS'
Теперь нужно установить и добавить кастомный компонент SmartIR MediaPlayer. В этом нет ничего сложного, следуйте инструкциям на github. На сайте уже есть несколько наборов кодов для популярных моделей телевизоров. Мой Samsung UE46F8580 отозвался на код 1060. В итоге получилась такая конфигурация в configuration.yaml
#Кастомный компонент SmаrtIR smartir: #Media Players media_player: - platform: smartir name: Living room TV IR unique_id: samsung_tv_brdlnk device_code: 1060 controller_data: 192.168.0.22 #IP Broadlink power_sensor: binary_sensor.tv_power #откуда считывать состояния устройства, например с умной розетки
А теперь последний штрих, без которого не получиться задуманного. Нам нужно добавить device_class: tv к устройству media_player. Это можно сделать двумя способами: через интерфейс HA (вкладка Configuration, а затем Customization) или напрямую в файле customize.yaml
media_player.living_room_tv_ir: device_class: tv
Не забываем также добавить наш компонент в конфигурацию homekit, в случае если вы используете include. Если вы все сделали правильно, то после следующего перезапуска ХА ваш телевизор должен появиться в HomeKit.
В следующем блоге расскажу о более изящном способе, а именно использование платформы universal для создания медиа плеера из комбинации различных компонентов, например Apple TV, Samsung TV и Broadlink. Подписывайтесь чтобы не пропустить ничего интересного, а также ставьте лайки если понравилось, как известно это очень мотивирует.
Оперативно, с меня как обещал лайк) А пульт появился или только иконка в хк?
Спасибо за лайк. К сожалению пульт не появился, но этот функционал есть. Нужно чтобы платформа (media_player) поддерживала play_pause. Вроде бы он должен быть доступен через SmartIR, но у меня не заработало. Надеюсь в следующем посте с платформой universal все будет чики пуки. В SmartIR не нравиться еще миллион inputов, облагородим и это в следующий раз.
Ща обновлю на 0.93, удивительно, что на 0.92 не ругается на device_class: tv, просто ничего не происходит) как и говорил тв компонент подъехал только в последней версии
Ща поковыряю smartir, там скорее всего свои коды надо будет добавить, чтоб пульт появился
А universal как-то удобно прокидывается в хк? А-то ради управления из ха даже смысла не вижу заморачиватьсч
прокинуть в хк можно любой медиаплеер, если ему задать класс тв, тут ограничений нет. Платформа https://www.home-assistant.io/components/universal/">universal позволяет комбинировать несколко разных платформ, например громкость через Broadlink, а включение через HDMI-CEC и Apple TV например.
А, тогда может выйти что-то дельное, спасибо, тоже поковыряю)
У меня пульт появился сразу же, но работает очень криво, надо разбираться
В случае с webOS TV пульт появился, но не пашет от слова "совсем")
И список инпутов тоже пустой
Добрый день.
Пытаюсь настроить компонент SmartIR для управления телевизором. Сделал все как в статье. В Lovelace добавил карточку так:
- type: entities
show_header_toggle: false
entities:
- entity: media_player.living_room_tv
name: SmartIR
карточка в интерфейсе появилась, но без кнопок управления...
в чем моя ошибка? подскажите, пожалуйста...
Добрый день!
делаю по инструкции
Ошибка.
Platform error media_player.smartir - cannot import name 'MediaPlayerEntity' from 'homeassistant.components.media_player' (/srv/homeassistant/lib/python3.7/site-packages/homeassistant/components/media_player/__init__.py)
что делать?