Show the album cover on a media tile, in the same strip as the live camera pictures (0.2.92)

A single or double-width media player tile takes Display -> Album cover
on a Guition: the cover of what plays in the icon's place, like Home
Assistant's own tile. It rides in the page's strip of 0.2.91: the request
and the answer are the same, a media player is simply among the tiles.
The app fetches a player's picture only when its address changes; a page
with a camera loads at the camera's pace with the cover reused, a page of
media tiles alone loads once, and a new track (the picture's mark in the
state, part of the page's wish) asks again at once. A player without a
picture keeps its icon and is not asked for; the double-width tile keeps
its controls; the tile over the whole page keeps the card's big cover.
Firmware 0.2.78.

Host harness 31 checks (docs/TEST_RESULTS_0292.md). CYD firmware
1,633,760 B, 89.0 %.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Max Gramser
2026-09-20 13:41:21 +02:00
parent 306636434b
commit efbab04b39
45 changed files with 352 additions and 85 deletions
+6 -3
View File
@@ -1661,10 +1661,13 @@ class Manager:
return
entities, size, grounds = live
tiles = {tile['entity']: tile.get('options') or {} for tile in self.layouts.get(inbox, {}).get('tiles', [])}
if any(entity not in tiles or tiles[entity].get('display') != 'live' for entity in entities):
LOG.info('Live pictures for %s: not the live camera tiles of %s', ', '.join(entities), screen['name'])
# A camera tile set to a live picture, or a media tile set to its cover (app 0.2.92).
wanted = {'live', 'cover'}
if any(entity not in tiles or tiles[entity].get('display') not in wanted
or (tiles[entity].get('display') == 'cover') != camera_feed.cover_supported(entity) for entity in entities):
LOG.info('Live pictures for %s: not the pictured tiles of %s', ', '.join(entities), screen['name'])
return
paces = [tiles[entity].get('refresh', camera_feed.LIVE_REFRESH[0]) for entity in entities]
paces = [tiles[entity].get('refresh', camera_feed.LIVE_REFRESH[0]) if tiles[entity].get('display') == 'live' else 0 for entity in entities]
url, listing = '', ','.join(entities)
base = await camera_feed.base_url(self.ha.request)
if base: