Repository navigation
2.9.6
2.9.6 — setup failed, services deadlocked
Fixed
- Setup never completed: no entities were created.
async_register_servicesstored a dict
where a set was expected and raised
AttributeError: 'dict' object has no attribute 'add'on every start. Home Assistant logged
Error setting up entry Pontos for pontos and never reached the platforms, so the entry had no
entities at all. This stayed hidden because the config flow could not create an entry before 2.9.4. - Every service call deadlocked. The service handler called
coordinator.async_refresh()while
holding the command lock — the same lock the poller uses, and anasyncio.Lockis not reentrant.
The command waited for itself forever and kept the lock, so polling stopped as well. The refresh now
happens after the lock is released, and a command waits at most 30 s for a running poll before it is
reported as device is still busy. - Booleans were sent as
True/Falseinstead of thetrue/falsethe device expects, e.g.
set/pa1/True,set/sld/True. They are now formatted correctly.
Added
-
testing/offline_smoke.py— runs the real setup path without Home Assistant (stubbed imports,
the simulated payloads): coordinator refresh, device registration, service registration, every
platform, all entity properties, every service of a device type with the URL it builds, and unload,
for all five device types.python3 testing/offline_smoke.pyAll three bugs above were found by it, not by a linter. Current result: 53 entities / 23 services for
the Pontos Base, 54 entities for the Trio, 66 for the SafeTech+, 45 for the old SafeTech+ firmware
and 51 for the NeoSoft, each with a clean unload.
Verified
offline_smoke.pypasses for every device type; the options form still receives all 14 stored
values; all device URL lists and all service templates format.- Endpoint names and values were checked against upstream's hardware-tested configurations and the
documented command table (set/ab/falseopens,set/ab/truecloses,set/dex,set/ala/255,
set/slp/{days},set/sld/true,set/rmo/{mode},set/buz/true). - Still no Home Assistant runtime on this machine (2026.9 needs Python >= 3.14), so this is offline
verification of the real code paths, not an end-to-end test with a device.