github ruvnet/RuView v1574
Release v1574

latest release: v1576
4 hours ago

Automated release from CI pipeline

Changes:
fix(mqtt): per-node HA devices use each node's own presence/motion (#872) (#918)

The MQTT bridge fanned out one Home-Assistant device per node (#898) but
applied the room-level aggregate classification to every node — so in a
multi-node setup a node in an empty corner inherited another node's
"present", and motion_level: "absent" was mis-mapped to full motion
(the aggregate match fell through Some(_) => 1.0).

Each node in the sensing broadcast's nodes array already carries its own
classification (motion_level/presence/confidence, see
PerNodeFeatureInfo) and RSSI. Now each per-node snapshot reads that node's
own classification, deferring to the room aggregate only for fields a node
omits. Vitals (breathing/heart rate) and person count stay room-level.

Extracted the JSON→VitalsSnapshot mapping into a pure, testable function
(vitals_snapshots_from_sensing_json) and added 4 unit tests covering
per-node divergence, partial-field fallback, the no-nodes aggregate path,
and the absent→zero-motion fix.

Supersedes #899, which targeted the right bug but read non-existent fields
(node["motion_level"] / node["status"] instead of the nested
node["classification"] + stale).

Verified: builds with --features mqtt; new tests pass; full crate unit
suite 432 + 114 passed, 0 failed.

Docker Image:
ghcr.io/ruvnet/RuView:b12662a54d64be1a22b67820412f63b713d73856

Don't miss a new RuView release

NewReleases is sending notifications on new releases.