Repository navigation
Best Practices
Nick Berardi edited this page Jul 19, 2026
·
6 revisions
On every connection, synchronize host state with the thermostat. After that, rely on COS (and occasional reads). Per the guide, items 17–20 are only required if the corresponding functionality is implemented in your driver.
Sync (Status attribute
0x02) can replace many individual reads: write0x01to dump all subscribed COS messages, thermostat errors, and a Sync-complete COS.
| # | Action | How |
|---|---|---|
| 1 | Manage COS subscriptions | Read/write Status / COS (0x07/0x01) — enable only what you use |
| 2 | Temperature scale | Setup / Scale |
| 3 | Set date & time | Setup / Date and Time — at least monthly |
| 4 | Available modes / IAQ | Control / Thermostat & IAQ Available |
| 5 | Current setpoints & mode | Control / Setpoint & Mode — hide unused SP per mode |
| 6 | Deadband | Installer Settings — enforce before dual-SP writes in Auto |
| 7 | Hum / dehum setpoints | Control 3–4 if available from step 4 |
| 8 | Fresh air | Control 5 if available |
| 9 | Air cleaning | Control 6 if available |
| 10 | Schedule enable / program | Scheduling 1 & 3 — or disable onboard schedule and drive externally |
| 11 | Hold status | Scheduling 4 |
| 12 | Thermostat equipment status | Status 6 |
| 13 | IAQ equipment status | Status 7 if available |
| 14 | Support modules | Sensors 3 |
| 15 | Sensors + multi-stat ODT | Sensors 2; Written ODT (5.4) < every 10 minutes |
| 16 | Away | Installer Away enable + Scheduling Away settings / hold |
| 17 | Heat Blast | If installer-enabled; Scheduling 5 |
| 18 | Service reminders | Alerts 1 (if installer-enabled) |
| 19 | Hi/Lo temp & RH alerts | Alerts 2 at power-up |
| 20 | Name / messages | Identification 5; Messaging 1–2 |
- In Auto, heat and cool must stay at least deadband apart (default 3 °F).
- Example: Heat 70, Cool 73, deadband 3 → lowering cool to 72 requires lowering heat to 69.
- Thermostat may auto-correct and send COS when mode changes to Auto with a conflict.
- Dual-setpoint writes that violate deadband may NACK or accept with modification of the non-active SP (see notes on partial vs full writes).
- Read installer outdoor sensor mode: Not installed / Installed / Automation.
- Source stats with real outdoor sensors provide controlling outdoor temp.
- Write Written Outdoor Temperature to Automation stats more often than every 10 minutes.
- If no update for 10 minutes, Automation ODT is treated as timed out.
- Use the thermostat’s 7-day / 4-event program and edit via Schedule Day, or
- Set schedule non-programmable and drive setpoints/fan from the automation system.
- Cancel: hold type = Disabled, other fields Null.
- Temporary / Vacation need end date/time fields populated when active.
- Away uses Away Settings setpoints/fan (not necessarily in the hold packet the same way).
Connect path roughly: read MAC + model + name + IAQ available → write COS vector → Sync after discovery. Gaps vs this checklist are tracked in Implementation Backlog.
Protocol reference for scrypted-aprilaire · Validate codecs with npm test