No description
Find a file
jtricerolph 807a27ca1b Fix TRV status ingestion: subscribe to live shellies/+/status topic
The firmware actually running on the deployed TRVs (SHTRV-01 v2.2.4,
confirmed against live hardware) publishes a combined status blob on
shellies/<id>/status, not the per-field shellies/<id>/thermostat/0/target_t
topic handleStatus() was written against — so current_target_temp was
permanently NULL and the dashboard modal always showed "—".

Adds handleStatusBlob() to parse the real payload shape and populate
current_target_temp/current_room_temp/battery_pct. This firmware also has
no guest-vs-automation 'source' field, so guest detection is redesigned to
diff an incoming target_t against a new last_commanded_target_t column,
stamped by publishTarget() right before every command is sent. A mismatch
means the guest changed it via the dial; a match means it's an echo of our
own automation.

Old handleStatus()/topicMatchesStatus() path left in place, dormant —
harmless if some future firmware does use per-field topics.

TRV command topic (shellies/<id>/thermostat/0/command/target_t) is still
unverified against live hardware — flagged in code comments.
2026-08-25 14:09:38 +00:00
backend Fix TRV status ingestion: subscribe to live shellies/+/status topic 2026-08-25 14:09:38 +00:00
docs Add Phase 2 MHI Modbus register-map profile, xlsx importer, and a 2026-07-27 14:19:58 +00:00
frontend Add Daikin local-API driver — MAC-matched subnet sweep instead of UDP broadcast 2026-08-25 12:01:58 +00:00
.gitignore Add Phase 2 MHI Modbus register-map profile, xlsx importer, and a 2026-07-27 14:19:58 +00:00
docker-compose.yml hvac: fetch MQTT credentials from Settings (drop .env secret) 2026-08-13 13:42:58 +00:00
seed-app.js Scaffold Phase 1 hvac app — NewBook-driven room TRV heating scheduler 2026-07-26 18:00:42 +00:00