{"id":13801389,"url":"https://github.com/madmicio/LG-WebOS-Remote-Control","last_synced_at":"2025-05-13T11:31:15.176Z","repository":{"id":37984043,"uuid":"257005990","full_name":"madmicio/LG-WebOS-Remote-Control","owner":"madmicio","description":"Remote Control for LG TV WebOS","archived":false,"fork":false,"pushed_at":"2024-05-27T11:25:14.000Z","size":11886,"stargazers_count":422,"open_issues_count":77,"forks_count":78,"subscribers_count":20,"default_branch":"master","last_synced_at":"2024-11-18T16:57:28.222Z","etag":null,"topics":["lg","remote","webos"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/madmicio.png","metadata":{"files":{"readme":"README.md","changelog":"Change_README","contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":["buymeacoffee.com/madmicio"]}},"created_at":"2020-04-19T13:27:16.000Z","updated_at":"2024-11-13T18:31:18.000Z","dependencies_parsed_at":"2023-02-09T12:15:14.990Z","dependency_job_id":"5ad1e58c-f9e9-4045-b45b-fa68be623bed","html_url":"https://github.com/madmicio/LG-WebOS-Remote-Control","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madmicio%2FLG-WebOS-Remote-Control","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madmicio%2FLG-WebOS-Remote-Control/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madmicio%2FLG-WebOS-Remote-Control/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madmicio%2FLG-WebOS-Remote-Control/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/madmicio","download_url":"https://codeload.github.com/madmicio/LG-WebOS-Remote-Control/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253932827,"owners_count":21986456,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["lg","remote","webos"],"created_at":"2024-08-04T00:01:22.327Z","updated_at":"2025-05-13T11:31:10.166Z","avatar_url":"https://github.com/madmicio.png","language":"TypeScript","funding_links":["buymeacoffee.com/madmicio","https://www.buymeacoffee.com/madmicio"],"categories":["Dashboards"],"sub_categories":["Custom Cards"],"readme":"# LG-WebOS-Remote-Control\nRemote Control for LG TV WebOS\n\n[![hacs_badge](https://img.shields.io/badge/HACS-Default-orange.svg)](https://github.com/hacs/integration)\n[![buymeacoffee_badge](https://img.shields.io/badge/Donate-buymeacoffe-ff813f?style=flat)](https://www.buymeacoffee.com/madmicio)\n\nthe project is now curated and developed in collaboration with [Piotr Machowski](https://github.com/PiotrMachowski)\n\n\n\n![all](example/remote.png)\n\n![all](example/channels.jpg)\n\nbrowser_mod is required for this channel panel (you can find it [here](https://github.com/thomasloven/hass-browser_mod))\n\ncustom card: \"card-channel-pad\" is required (you can find it [here](https://github.com/madmicio/channel-pad))\n\n# New features\n### - editor card\n### - ovverride buttons services\n\n\n\n\n\n## hacs Card install\n1. Find and install `LG WebOS Remote Control` plugin\n\n2. Add a reference  inside your resources config:\n\n  ```yaml\nresources:\n  - type: module\n    url: /hacsfiles/LG-WebOS-Remote-Control/lg-remote-control.js\n```\n\n\n### Manual install\n\n1. Download and copy `lg-remote-control.js` from (https://github.com/madmicio/LG-WebOS-Remote-Control/releases/latest) into your custom components  directory.\n\n2. Add a reference `lg-remote-control.js` inside your resources config:\n\n  ```yaml\n  resources:\n    - url: /local/\"your_directory\"/lg-remote-control.js\n      type: module\n  ```\n# lovelace config: default view\n```yaml\n- type: 'custom:lg-remote-control'\n  entity: media_player.tv_lg_55c8\n  mac: xx:xx:xx:xx\n```\n\n### Main Options\n| Name | Type | Default | Supported options | Description |\n| -------------- | ----------- | ------------ | ------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `type` | string | **Required** | `custom:lg-remote-control` | Type of the card |\n| `entity` | string | **Required** |  | tv entity |\n| `name` | string | **Option** |  | tv name |\n| `mac` | string | **Option** |  | tv mac address (if not specified, you need to create an automation to perform the action to turn the TV on) |\n| `ampli_antity` | string | **Option** |  | your AV receiver entity (see option config) |\n| `colors` | string | **Option** |  | list of color options |\n| `channels` |  | **Option**|  | list of channel in popup |\n| `sources` |  | **Option**|  | list of custom app. if not set, default apps will be displayed |\n| `color_buttons` |  | **Option**| enable | display color buttons: RED GREEN YELLOW BLUE |\n\n### Source Options\n| Name | Type | Default | Supported options | Description |\n| -------------- | ----------- | ------------ | ------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `icon` | string | **Required** | 'mdi:netflix'| url of the image to be displayed in the channel pad popup |\n| `name` | string | **Required** | app name | you have to write the exact name of the app to launch. you can find the correct name in the state of your media_player entity under \"source_list:\" |\n```yaml\nsources:\n  - icon: 'mdi:power'\n    name: \"Netflix\"\n  - icon: 'mdi:youtube'\n    name: \"YouTube\"\n```\n**Note:**  `disney` `amazon` and `dazn` are special, icon you must enter them like this:\n```yaml\n  - icon: disney\n    name: Disney+\n  - icon: amazon\n    name: Prime Video\n  - icon: dazn\n    name: Dazn\n```\n### Channels Options\n| Name | Type | Default | Supported options | Description |\n| -------------- | ----------- | ------------ | ------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `image` | url | **Required** | /local/your_dir/tv_logo/your_image.png | url of the image to be displayed in the channel pad popup |\n| `number` | string | **Required** | number | TV channel number |\n```yaml\nchannels:\n  - image: /local/lg_remote/tv_logo/Rai 1 HD.png\n    number: '501'\n  - image: /local/lg_remote/tv_logo/Rai 2 HD.png\n    number: '502'\n  - image: /local/lg_remote/tv_logo/Rai 3 HD.png\n    number: '503'\n```\n\n## Ovverride buttons services\n\nwith version 2.0 the possibility of overriding the functionality of the button is introduced. you therefore have the possibility of calling a Home assistant service at your convenience\n\nhere are the [override keys](https://github.com/madmicio/LG-WebOS-Remote-Control/blob/master/Override_buttons.md) and the yaml configuration. \n\n## AV receiver volume control Options  \n\noption dedicated to all those with problems controlling the volume of the AV Receiver through HDMI-cec commands.\nif the ampli_entity item is configured, and when the sound output is set to external_arc (HDMI) or external_optical (optical output) then the remote control buttons will no longer act on the volume of the television, but on the volume of your receiver.\n\n\n```yaml\ntype: 'custom:lg-remote-control'\nentity: media_player.lg_webos_tv_oled55c8pla\nmac: xx:xx:xx:xx:xx:xx\nampli_entity: media_player.marantz_sr6010\n...\n```\n\n### power on/off Receiver\nit would have been possible to implement automatic power on and choice of the input source of the Receiver when the sound output is set to external_arc (HDMI) or external_optical (optical output) and turn off the Receiver when any other sound output is set, but the card of home assistants do not work in background but only when rendered. for this and other reasons it is preferable to use a home assistant automation that manages the process, so the actions will also take place when operating with the physical remote control rather than with the home assistant card. \n\nBelow is an example of code:\n\n```yaml\nalias: \"tv_receiver\"\ntrigger:\n  - platform: template\n    value_template: \"{{ state_attr('media_player.lg_webos_tv_oled55c8pla', 'sound_output') == 'external_arc' }}\"\n    id: \"external_arc\"\n  - platform: template\n    value_template: \"{{ state_attr('media_player.lg_webos_tv_oled55c8pla', 'sound_output') != 'external_arc' }}\"\n    id: \"tv_speaker\"\n  - platform: state\n    entity_id: media_player.lg_webos_tv_oled55c8pla\n    from: 'off'\n    to: 'on' \n    id: \"tv_on\"\n  - platform: state\n    entity_id: media_player.lg_webos_tv_oled55c8pla\n    from: 'on'\n    to: 'off' \n    id: \"tv_off\"\naction:\n  - choose:\n    - conditions: \"{{ trigger.id == 'tv_on' }}\"\n      sequence:\n        - condition: template\n          value_template: \"{{ state_attr('media_player.lg_webos_tv_oled55c8pla', 'sound_output') == 'external_arc' }}\"\n        - service: media_player.turn_on\n          target:\n            entity_id: media_player.marantz_sr6010\n        - wait_template: \"{{ is_state('media_player.marantz_sr6010', 'on') }}\"\n        - service: media_player.select_source\n          data:\n            source: TV Audio\n          target:\n            entity_id: media_player.marantz_sr6010\n    - conditions: \"{{ trigger.id == 'external_arc'}}\"\n      sequence:\n        - if: \"{{ is_state('media_player.marantz_sr6010', 'on') }}\"\n          then:\n            - service: media_player.select_source\n              data:\n                source: TV Audio\n              target:\n                entity_id: media_player.marantz_sr6010\n          else:\n            - service: media_player.turn_on\n              target:\n                entity_id: media_player.marantz_sr6010\n            - wait_template: \"{{ is_state('media_player.marantz_sr6010', 'on') }}\"\n            - service: media_player.select_source\n              data:\n                source: TV Audio\n              target:\n                entity_id: media_player.marantz_sr6010\n    - conditions: \"{{ trigger.id == 'tv_speaker' or trigger.id == 'tv_off' }}\"\n      sequence:\n        - service: media_player.turn_off\n          target:\n            entity_id: media_player.marantz_sr6010\n```\n\n## MENU button\nto display the \"quick menu\" (MENU function of WEBOS integration), long press, longer than 1 second, on the \"HOME\" button\n\n## Color Management\ncolor customization implemented through the section\n```yaml\ncolors:\n```\n\n\n- buttons: set buttons  background color    - default: \"#f2f0fa\"\n- texts: set buttons color                  - default: \"var(--primary-text-color)\"\n- background: set remote background color   - default: \"var(--primary-background-color)\"\n```yaml\ncolors:\n  buttons: var(--deactive-background-button-color)\n  texts: pink\n  background: rgba(95,155,234)\n```\n\n**NOTE: option in \"your-theme.yaml**\n```yaml\n#button\n  deactive-background-button-color: \"#f2f0fa\"\n```\n\n### Colors Options\n| Name | Type | Default | Supported options | Description |\n| -------------- | ----------- | ------------ | ------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `buttons` | string | **Option** | color formats | buttons background-color |\n| `texts` | string | **Option** | color formats | number and icon color |\n| `background:` | string | **Option** | color formats | list of color options |\n| `border:` | string | --app-header-text-color | color formats | remote border color |\n\n\n### dimensions Options\n| Name | Type | Default | Supported options | Description |\n| -------------- | ----------- | ------------ | ------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `scale` |  | **Option**| number | scale factor; default 1 |\n| `border_width` |  | **Option**| number | set remote border width; default 1px |\n\n# Channel pad\nin this version of the card there is no longer a \"channel pad popup\" with preset channels.\nthis is to give each user the ability to create his own list.\n\n\"channels\" configuration is not mandatory. if \"channels\" is not configured the remote control will work normally but you will not be able to use the channel pad.\npressing the button on the remote control you will receive this message.\n![all](example/source_error.png)\n\n# New Features Config\nin this new version we have implemented some new features:\n1. customizable and incremental app button\n\n    option: **sources:** ( if you do not configure this option, the remote control will display the default apps)\n\n2. customizable channel pad\n\n    option: **channels:** ( if you do not configure this option, on button click you receive an error message)\n\n3. customizable scale:\n\n    option: **scale:** ( this option reduces or enlarges the size of the remote control. we are testing this option )\n\n# lovelace config: custom view\n```yaml\n- type: 'custom:lg-remote-control'\n  entity: media_player.tv_lg_55c8\n  mac: xx:xx:xx:xx\n  sources:\n    - name: Netflix\n      icon: 'mdi:netflix'\n    - name: Disney+\n      icon: disney\n    - name: Dazn\n      icon: dazn\n    - name: YouTube\n      icon: 'mdi:youtube-tv'\n    - name: HDMI 1\n      icon: 'mdi:video-input-hdmi'\n    - name: HDMI 2\n      icon: 'mdi:video-input-hdmi'\n  channels:\n    - image: /local/images/tv_logo/channel_1.png\n      number: '1'\n    - image: /local/images/tv_logo/channel_2.png\n      number: '1'\n\n   \n```\n**note: disney and danz are special icon. so you you must enter it as in the example**\n\n  ## dimnensions option:\n  \n  the remote control supports the scale option to adjust its size\n```yaml\n- type: 'custom:lg-remote-control'\n  entity: media_player.tv_lg_55c8\n  mac: xx:xx:xx:xx\n  dimensions:\n    scale: 0.98\n    border_width: 3px\n```\n  \n  ## Install Tv Logo\n  \n  1. download tv_logo\n  2. directory put the images file where you prefer (we suggest: www / images / tv_logo)\n  3. calls the image in the configuration as in the example \n```yaml\nimage: /local/your_directory/your_file.png\n```\n**new_tv logo**\nat this moment only tv logo of italian tv are available.\nusers who produce other logos are invited to share them, so we could have a complete and international library\n**new logo spec**\nheight: 268px\nwidth: 171px\nbackground: transparent\nimage must have 10px margin like this example:\n\n![all](example/logo_example.png)![all](example/logo_area3.png)\n\n\n## Popup Buttons\n\n![all](example/popup.png)\n\n\u003ca href=\"https://www.buymeacoffee.com/madmicio\" target=\"_blank\"\u003e\u003cimg src=\"https://cdn.buymeacoffee.com/buttons/default-orange.png\" alt=\"Buy Me A Coffee\" style=\"height: 51px !important;width: 217px !important;\" \u003e\u003c/a\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmadmicio%2FLG-WebOS-Remote-Control","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmadmicio%2FLG-WebOS-Remote-Control","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmadmicio%2FLG-WebOS-Remote-Control/lists"}