Public Access
Home Assistant requests in a task, progress bar, Plex page, bitmap cache
- net/ha_api: the HTTP requests run in a FreeRTOS task on core 0; loop()
only hands over copies through queues. The web UI's test button polls.
No more 3-4 s loop() stalls once a minute; timeout raised to 5 s.
- Progress bar page element (page format 4, v3 pages are converted)
- Plex user setting (settings v6): {plex_user} in entity ids
- Plex page (examples): watchers, play/pause icon, title, progress
- Bitmaps cached in RAM: a LittleFS read took ~100 ms on every render
and web preview; long JSON lists sent in 2 KB pieces
- Backup includes the refresh settings and the Plex user
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
090c2bf8ae
commit
490cefc360
42 files changed
+1074
-175
No files matched your search
@@ -294,11 +294,23 @@ bitmaps['bg nacht'] = night
|
||||
bitmaps['bg kader'] = corners()
|
||||
bitmaps['bg vol'] = [[1] * W for _ in range(H)]
|
||||
|
||||
# Plex: the chevron (a thick ">", tip on the middle row) and the Tautulli state icons
|
||||
plex = blank()
|
||||
for y in range(1, 18):
|
||||
start = (8 - abs(y - 9)) // 2
|
||||
for x in range(start, start + 5):
|
||||
plex[y][x] = 1
|
||||
bitmaps['plex logo'] = plex
|
||||
bitmaps['plex playing'] = put(blank(), ["#..", "##.", "###", "##.", "#.."], 0, 0)
|
||||
bitmaps['plex paused'] = put(blank(), ["##.##"] * 5, 0, 0)
|
||||
bitmaps['plex buffering'] = put(blank(), [".....", ".....", ".....", ".....", "#.#.#"], 0, 0)
|
||||
|
||||
|
||||
def el(type, x, y, font='Normal', **kw):
|
||||
e = {'type': type, 'x': x, 'y': y, 'align': 'left', 'overlay': 'top', 'font': font, 'format': 0,
|
||||
'language': 'nl', 'decimals': -1, 'text': '', 'suffix': '', 'entity': '', 'attribute': '',
|
||||
'factor': 1, 'scroll_width': 0, 'scroll_speed': 8, 'target': '2000-01-01T00:00'}
|
||||
'factor': 1, 'scroll_width': 0, 'scroll_speed': 8, 'target': '2000-01-01T00:00',
|
||||
'bar_width': 40, 'bar_height': 3, 'bar_max': 100, 'bar_frame': True}
|
||||
e.update(kw)
|
||||
return e
|
||||
|
||||
@@ -364,10 +376,18 @@ pages = {
|
||||
'Stopwatch': {'slots': [], 'elements': [
|
||||
el('stopwatch', 42, 0, 'Full height', align='center'),
|
||||
]},
|
||||
# Plex: how many watch (Plex integration), and for the Plex user of the settings
|
||||
# (Tautulli's sensors): play/pause icon, title (scrolls) and a progress bar
|
||||
'Plex': {'slots': [{'start': '00:00', 'bitmap': 'plex logo'}], 'elements': [
|
||||
el('ha', 13, 0, entity='sensor.mangavalkserver', suffix=' watching'),
|
||||
el('image', 13, 9, text='plex ', entity='sensor.{plex_user}_state'),
|
||||
el('ha', 19, 9, 'Small', entity='sensor.{plex_user}_full_title', scroll_width=65, scroll_speed=8),
|
||||
el('bar', 13, 16, entity='sensor.{plex_user}_progress', bar_width=71, bar_height=3),
|
||||
]},
|
||||
}
|
||||
|
||||
backup = {
|
||||
'format': 'flipdot-backup', 'version': 1, 'firmware': '2.5.0', 'exported': '2026-10-15T00:00:00Z',
|
||||
'format': 'flipdot-backup', 'version': 1, 'firmware': '2.9.0', 'exported': '2026-10-16T00:00:00Z',
|
||||
'bitmaps': [{'name': n, 'data': to_hex(b)} for n, b in bitmaps.items()],
|
||||
'pages': [{'name': n, 'page': p} for n, p in pages.items()],
|
||||
'fonts': [],
|
||||
|
||||
Reference in new issue
Block a user