UX-13 P4 review fixes (PR #146, comment 1887)
checks / unit (pull_request) Successful in 10m24s
infra-pin / fresh (pull_request) Successful in 1s

R1: first_start also needs a Store created at this boot (Store.fresh), so
    old never-started sites (both TEST-23 add-ons, one in shadow) stay on Home.
R2: a kettle skip after a fall says on the last step that the reading went down.
R3: the shadow switch goes only on the model the wizard posts, never into V.
R4: Home Assistant not answering is red on the last step.
R5: meter + solar + battery below -300 W flags a reversed battery sensor.
R6: the live checks say what to change and where.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
review-agent
2026-09-28 06:12:09 +02:00
parent be57b87c34
commit 3198f346fd
10 changed files with 195 additions and 75 deletions
+6 -2
View File
@@ -13,7 +13,7 @@ options, a schema read off config.yaml the way the Supervisor renders it
saves in memory, so the Installer view can be clicked through end to end.
P4: STATE `new` is a new install (config.yaml's defaults with one power
request entity, an empty Store, control never started), so the page opens
request entity, an empty Store made at this boot, control never started), so the page opens
the setup wizard by itself. A one-entity read of sensor.grid steps through
KETTLE_READS, so the kettle test sees the kettle go on (up) and then a
reversed meter (down).
@@ -45,6 +45,8 @@ PRICES = [.24, .22, .21, .20, .21, .22, .24, .27, .26, .22, .18, .16, .15,
class Store(dict):
fresh = False # app/store.py: no state file at this boot
def set(self, k, v):
self[k] = v
@@ -256,7 +258,9 @@ def controller(state):
async def main(state, port, host="127.0.0.1"):
if state == "new":
stored = dict(defaults(CONFIG), setpoint_entity="number.a")
c = Controller(dict(stored), Hass(), Store(), Pub(),
store = Store()
store.fresh = True # a new /data: the wizard opens by itself
c = Controller(dict(stored), Hass(), store, Pub(),
stop=asyncio.Event())
c.auto = False
runner = aioweb.AppRunner(web.build_app(c, Supervisor(stored)))