No description
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. |
||
|---|---|---|
| backend | ||
| docs | ||
| frontend | ||
| .gitignore | ||
| docker-compose.yml | ||
| seed-app.js | ||