Skip to content

LG webOS TV transport - #319

Merged
jeyrb merged 2 commits into
mainfrom
feature/webostv-transport
Nov 8, 2026
Merged

jeyrb merged 2 commits into
mainfrom
feature/webostv-transport

Conversation

@jeyrb

@jeyrb jeyrb commented Nov 8, 2026

Copy link
Copy Markdown
Contributor

Closes #313.

LG webOS TV transport

  • A webostv delivery is set up automatically with the LG webOS TV integration, with no YAML.
  • Each TV's media_player entity is the target. The TV's legacy notify action, such as notify.living_room_tv, is found through its config entry, so a TV can be reached directly or by area, floor, label or device.
  • TVs are only sent to when targeted, so they aren't interrupted by every notification.
  • TVs that are off or unavailable are skipped, and that isn't counted as an error.
  • Only the message is shown, and the title only when there's no message. data.icon is passed through.

Area, floor and label targets in delivery selection

Delivery selection now resolves area_id/floor_id/label_id when checking whether a delivery's target type is present. An area target therefore selects the transport that owns what's in it: webostv for a TV, and alexa_devices for an Echo. Before, only the catch-all notify_entity delivery picked up area targets. Two existing integration tests change only in the order of the same calls.

Skip reason fix

A reason a transport gives for sending nothing, such as NO_TARGET, is now kept instead of always being recorded as UNKNOWN. This also fixes Kodi and Discord.

Testing

  • Unit tests and House integration tests, with each TV's area on its device as in a real install. All 2860 tests pass, with 97% coverage.
  • Checked on the Docker preview Home Assistant with a stand-in TV: the delivery was created after a reload, an unavailable TV was skipped, and a TV that was on got one call with its message and icon.

Docs

  • New transport page, plus updates to the targets table and the delivery selection docs.
  • Roadmap note on dropping the transport if webostv moves to notify entities.
  • Changelog.
  • The "Target-Driven Implicit Selection" section of the roadmap still calls the check a cheap presence test, and may need updating.

🤖 Generated with Claude Code

jeyrb and others added 2 commits November 8, 2026 15:02
…tion

A webostv transport, set up automatically with the LG webOS TV integration. Each TV's
media_player entity is the target, mapped to the TV's legacy notify action through its
config entry, so TVs can be reached directly or by area, floor, label or device. TVs that
are off or unavailable are skipped, only the message is shown (the title only when there's
no message), and data.icon is passed through.

Delivery selection now resolves area_id/floor_id/label_id selectors when checking whether
a delivery's target category is present, so an area target selects the transport that owns
what's in it - webostv for a TV, alexa_devices for an echo - rather than only the generic
notify entity catch-all.

Closes #313

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A transport that sends nothing can set envelope.skip_reason, such as NO_TARGET for Kodi,
Discord or a webOS TV that's off, but the engine always recorded UNKNOWN.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@jeyrb
jeyrb merged commit 4836e17 into main Nov 8, 2026
18 of 19 checks passed
@jeyrb
jeyrb deleted the feature/webostv-transport branch November 8, 2026 15:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

WebOS TV notification transport

1 participant