Реализация приключения режимов экрана через Home Assistant.
Пользователь badnimits разместил на
https://community.home-assistant.io/t/l ... s/262915/5 скрипты для изменения настройки изображения на телевизоре LG с помощью удаленных нажатий кнопок (например, Живые цвета, Эффект HDR, Эксперт светлая комнаты). Пишет, что ему не удалось управлять настройками изображения с помощью luna-send.
scripts.yaml:
- Код: Выделить всё
tv_pic_menu_enter:
sequence:
- service: webostv.button
data:
entity_id: media_player.lg_webos_smart_tv_2
button: MENU
- delay: 1
- service: webostv.button
data:
entity_id: media_player.lg_webos_smart_tv_2
button: UP
- delay: 1
- service: webostv.button
data:
entity_id: media_player.lg_webos_smart_tv_2
button: ENTER
- delay: 2
- service: webostv.button
data:
entity_id: media_player.lg_webos_smart_tv_2
button: RIGHT
- delay: 1
- service: webostv.button
data:
entity_id: media_player.lg_webos_smart_tv_2
button: ENTER
- delay: 1.5
- service: webostv.button
data:
entity_id: media_player.lg_webos_smart_tv_2
button: ENTER
- delay: 1
tv_pic_menu_choose_back:
sequence:
- service: webostv.button
data:
entity_id: media_player.lg_webos_smart_tv_2
button: ENTER
- delay: 1
- service: webostv.button
data:
entity_id: media_player.lg_webos_smart_tv_2
button: BACK
- service: webostv.button
data:
entity_id: media_player.lg_webos_smart_tv_2
button: BACK
- service: webostv.button
data:
entity_id: media_player.lg_webos_smart_tv_2
button: BACK
tv_down_button:
sequence:
- service: webostv.button
data:
entity_id: media_player.lg_webos_smart_tv_2
button: DOWN
- delay: 0.2
tv_light_expert:
alias: TV Expert Light
sequence:
- service: script.tv_pic_menu_enter
data: {}
- service: script.tv_down_button
data: {}
- service: script.tv_down_button
data: {}
- service: script.tv_down_button
data: {}
- service: script.tv_down_button
data: {}
- service: script.tv_down_button
data: {}
- service: script.tv_down_button
data: {}
- service: script.tv_down_button
data: {}
- service: script.tv_pic_menu_choose_back
data: {}
mode: single
icon: mdi:television-ambient-light
tv_dark_expert:
alias: TV Expert Dark
sequence:
- service: script.tv_pic_menu_enter
data: {}
- service: script.tv_down_button
data: {}
- service: script.tv_down_button
data: {}
- service: script.tv_down_button
data: {}
- service: script.tv_down_button
data: {}
- service: script.tv_down_button
data: {}
- service: script.tv_down_button
data: {}
- service: script.tv_down_button
data: {}
- service: script.tv_down_button
data: {}
- service: script.tv_pic_menu_choose_back
data: {}
mode: single
icon: hass:sleep
tv_living_colors:
alias: TV Living Colors
sequence:
- service: script.tv_pic_menu_enter
data: {}
- service: script.tv_pic_menu_choose_back
data: {}
mode: single
icon: hass:flower
Если вы хотите добавить остальные, просто скопируйте и вставьте tv_light_expert и удалите одну из них из командной строки (- service: script.tv_down_button) чтобы выбрать предыдущую настройку (-1 = эффект HDR, -2 = игра и т.д.)
Кроме того, если вы используете только Home Assistant для изменения настроек, вы можете воспользоваться быстрым меню меньшего размера, используя команды влево и вправо (HDR -> Game = tv_smenu_right; HDR <- Game = tv_smenu_left).
- Код: Выделить всё
tv_smenu_right:
sequence:
- service: webostv.button
data:
entity_id: media_player.lg_webos_smart_tv_2
button: MENU
- delay: 1
- service: webostv.button
data:
entity_id: media_player.lg_webos_smart_tv_2
button: DOWN
- delay: 1
- service: webostv.button
data:
entity_id: media_player.lg_webos_smart_tv_2
button: ENTER
- delay: 1
- service: webostv.button
data:
entity_id: media_player.lg_webos_smart_tv_2
button: RIGHT
- delay: 1
- service: webostv.button
data:
entity_id: media_player.lg_webos_smart_tv_2
button: BACK
- Код: Выделить всё
tv_smenu_left:
sequence:
- service: webostv.button
data:
entity_id: media_player.lg_webos_smart_tv_2
button: MENU
- delay: 1
- service: webostv.button
data:
entity_id: media_player.lg_webos_smart_tv_2
button: DOWN
- delay: 1
- service: webostv.button
data:
entity_id: media_player.lg_webos_smart_tv_2
button: ENTER
- delay: 1
- service: webostv.button
data:
entity_id: media_player.lg_webos_smart_tv_2
button: LEFT
- delay: 1
- service: webostv.button
data:
entity_id: media_player.lg_webos_smart_tv_2
button: BACK
Далее Jacek_Paszkowski пишет:
Хотел бы поделиться своим решением. После более глубокого изучения
GitHub - merdok / homebridge-webos-tv: плагин Homebridge для телевизоров LG webOS я нашел способ установить определенный режим изображения с помощью сервисов HA. Это немного сложно, потому что открывается всплывающее окно allert, а затем после нажатия запускает действие luna. Вот мой скрипт:
- Код: Выделить всё
living_room_lg_tv_picture_mode:
sequence:
- service: webostv.command
data:
entity_id: media_player.living_room_lg_tv
command: system.notifications/createAlert
payload:
message: >-
{{ picture_mode }}
modal: false
buttons:
- label: "ok"
focus: true
buttonType: "ok"
onClick: "luna://com.webos.settingsservice/setSystemSettings"
params:
category: "picture"
settings:
pictureMode: >-
{{ picture_mode }}
type: "confirm"
isSysReq: true
- delay: 0.6
- service: webostv.button
data:
entity_id: media_player.living_room_lg_tv
button: ENTER
В качестве picture_mode можно передать поддерживаемый режим изображения.
Доступные режимы изображения (не все доступны на всех телевизорах): cinema, eco, expert1, expert2, game, normal, photo, sports, technicolor, vivid, hdrEffect, hdrCinema, hdrCinemaBright, hdrExternal, hdrGame, hdrStandard, hdrTechnicolor, hdrVivid, dolbyHdrCinema, dolbyHdrCinemaBright, dolbyHdrDarkAmazon, dolbyHdrGame, dolbyHdrStandard, dolbyHdrVivid, dolbyStandard.
Вы также можете поиграть со временем задержки.
Скрипт для вызова режима энергосбережение:
- Код: Выделить всё
living_room_lg_tv_picture_energy_saving:
sequence:
- service: webostv.command
data:
entity_id: media_player.living_room_lg_tv
command: system.notifications/createAlert
payload:
title: "Energy saving"
message: >-
{{ energy_saving }}
modal: false
buttons:
- label: "ok"
focus: true
buttonType: "ok"
onClick: "luna://com.webos.settingsservice/setSystemSettings"
params:
category: "picture"
settings:
energySaving: >-
{{ energy_saving }}
energySavingModified: "true"
type: "confirm"
isSysReq: true
- delay:
milliseconds: 40
- service: webostv.button
data:
entity_id: media_player.living_room_lg_tv
button: ENTER
adryyy выложил обновленную версию для последней версии Home Assistant.
Сначала выполняем:
- Код: Выделить всё
sudo apt-get install netcat-traditional
Затем добавляем в configuration.yaml:
- Код: Выделить всё
command_line:
- switch:
name: "LG Picture Mode ECO"
unique_id: "lgtv_pict_eco"
command_on: "echo \"luna-send -n 1 luna://com.webos.settingsservice/setSystemSettings '{\\\"category\\\": \\\"picture\\\", \\\"settings\\\": {\\\"pictureMode\\\": \\\"eco\\\"}}' & exit\" | nc 192.168.0.120 23"
command_off: "echo \"luna-send -n 1 luna://com.webos.settingsservice/setSystemSettings '{\\\"category\\\": \\\"picture\\\", \\\"settings\\\": {\\\"pictureMode\\\": \\\"normal\\\"}}' & exit\" | nc 192.168.0.120 23"
command_state: "echo \"luna-send -n 1 luna://com.webos.settingsservice/getSystemSettings '{\\\"category\\\": \\\"picture\\\", \\\"keys\\\": [\\\"pictureMode\\\"]}' & exit\" | nc 192.168.0.120 23 | grep -c eco"
- switch:
name: "LG Picture Mode Cinema"
unique_id: "lgtv_pict_cinema"
command_on: "echo \"luna-send -n 1 luna://com.webos.settingsservice/setSystemSettings '{\\\"category\\\": \\\"picture\\\", \\\"settings\\\": {\\\"pictureMode\\\": \\\"cinema\\\"}}' & exit\" | nc 192.168.0.120 23"
command_off: "echo \"luna-send -n 1 luna://com.webos.settingsservice/setSystemSettings '{\\\"category\\\": \\\"picture\\\", \\\"settings\\\": {\\\"pictureMode\\\": \\\"normal\\\"}}' & exit\" | nc 192.168.0.120 23"
command_state: "echo \"luna-send -n 1 luna://com.webos.settingsservice/getSystemSettings '{\\\"category\\\": \\\"picture\\\", \\\"keys\\\": [\\\"pictureMode\\\"]}' & exit\" | nc 192.168.0.120 23 | grep -c cinema"