Release 0.2.73: the Vue editor with live values, Identify, a test alert, layout copying and ⌘K

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Max Gramser
2026-09-18 08:32:08 +02:00
parent 8d11de8a28
commit 1ed42dc425
12 changed files with 53 additions and 16 deletions
+1 -1
View File
@@ -5,7 +5,7 @@ ARG BUILD_ARCH
LABEL io.hass.version="${BUILD_VERSION}" io.hass.type="app" io.hass.arch="${BUILD_ARCH}"
RUN pip install --no-cache-dir 'aiohttp>=3.12,<4' PyYAML
COPY app /app
# The Update badge shows what's new from the changelog (app 0.2.74).
# The Update badge shows what's new from the changelog (app 0.2.73).
COPY CHANGELOG.md /app/CHANGELOG.md
WORKDIR /app
ENTRYPOINT []
+1 -1
View File
@@ -1,4 +1,4 @@
"""What's new for the Update badge (app 0.2.74): the CHANGELOG sections since a screen's firmware.
"""What's new for the Update badge (app 0.2.73): the CHANGELOG sections since a screen's firmware.
The Dockerfile copies CHANGELOG.md next to this file; a development checkout has it one folder up.
Each `## <app> (firmware <fw>)` section gives its bullet lines as plain text, newest first.
+3 -3
View File
@@ -1624,7 +1624,7 @@ def create_app(manager, development=False):
'attributes':state_message(i,t,manager.ha.states)['a'],
'options':t.get('options',{})} for i,t in enumerate(layout['tiles'])]})
async def states(request):
"""Live values for the editor's mockup (app 0.2.74): the state, Home Assistant's word and the attributes a
"""Live values for the editor's mockup (app 0.2.73): the state, Home Assistant's word and the attributes a
card shows, for the tiles on the page, saved or not. At most sixty entities per request."""
index = manager.registry_index()
result = {}
@@ -1647,14 +1647,14 @@ def create_app(manager, development=False):
raise ValueError(f"{screen['name']} can't show an alert: {skipped[0][1] if skipped else 'not ready'}.")
return ready[0]
async def identify(request):
"""Identify (app 0.2.74): the screen shows a short card and blinks its backlight, so you know which one it is."""
"""Identify (app 0.2.73): the screen shows a short card and blinks its backlight, so you know which one it is."""
screen = one_alert_target(request.match_info['inbox'])
data, _ = alert_data({'title': f"This is {screen['name']}", 'subtitle': 'Identify, from ESP Screens', 'icon': 'bell-ring',
'color': 'blue', 'button_text': 'OK', 'timeout': 8, 'flash': True})
await manager.ha.call(alert_service(screen['node']), data)
return web.json_response({'ok': True})
async def test_alert(request):
"""Alerts → Try it (app 0.2.74): one alert to one screen or to every screen, with the fields an automation sends."""
"""Alerts → Try it (app 0.2.73): one alert to one screen or to every screen, with the fields an automation sends."""
body = await request.json()
if not isinstance(body, dict):
raise ValueError('Invalid alert.')
+1 -1
View File
@@ -32,7 +32,7 @@ class Updater:
self.manager, self.path = manager, Path(path)
self.auto, self.hosts, self.results, self.last_round = False, {}, {}, None
self.task, self.current, self.queue, self.phase = None, None, [], None
# What's new since a screen's firmware, for the Update badge (app 0.2.74).
# What's new since a screen's firmware, for the Update badge (app 0.2.73).
self.changelog = changelog.load()
if self.path.exists():
raw = json.loads(self.path.read_text())