Repository navigation
Domain Status
Nick Berardi edited this page Jul 19, 2026
·
5 revisions
| COS | No |
| Access | R/W |
| Length | 29 bytes (indices 0–28) |
Each byte: 0 Not subscribed, 1 Subscribed.
| Byte | Subscribes to |
|---|---|
| 0 | Installer Thermostat Settings |
| 1 | Contractor Information |
| 2 | Air Cleaning Installer Settings |
| 3 | Humidity Control Installer Settings |
| 4 | Fresh Air Installer Settings |
| 5 | Thermostat Setpoint & Mode |
| 6 | Dehumidification Setpoint |
| 7 | Humidification Setpoint |
| 8 | Fresh Air Setting |
| 9 | Air Cleaning Settings |
| 10 | Thermostat IAQ Available |
| 11 | Schedule Settings |
| 12 | Away Settings |
| 13 | Schedule Day |
| 14 | Schedule Hold |
| 15 | Heat Blast |
| 16 | Service Reminders Status |
| 17 | Alerts Status |
| 18 | Alerts Settings |
| 19 | Backlight Settings |
| 20 | Thermostat Location & Name |
| 21 | Reserved |
| 22 | Controlling Sensor Values |
| 23 | Over-the-air ODT update timeout |
| 24 | Thermostat Status |
| 25 | IAQ Status |
| 26 | Model & Revision |
| 27 | Support Module |
| 28 | Lockouts |
Defaults (guide bold): every byte defaults to 1 Subscribed, except byte 1 (Contractor Information), which defaults to Subscribed on the 8920W/8840 only, and byte 21 (Reserved). Disable unused COS to reduce traffic.
| COS | Complete signaled as COS |
| Access | W |
| Data length | 2 bytes |
| Byte | Field |
|---|---|
| 0 |
1 = start sync / (COS) sync complete |
| 1 | Reserved |
Host write 1 → thermostat emits all subscribed COS + error status + final Sync complete COS with 1.
| COS | Yes |
| Access | NA (thermostat-originated) |
| Byte | Field |
|---|---|
| 0 | 0 Normal, 1 Offline |
Used during firmware update on HA-configured units.
| COS | Yes |
| Access | R |
| Byte | Field |
|---|---|
| 0 | Heating equipment status 0–14 (idle, wait, stages, comps, aux, elec combos) |
| 1 | Cooling equipment status 0–6 |
| 2 | Progressive recovery 0/1 |
| 3 | Fan 0 Not active, 1 Active |
Heating values: 0 Not Active, 1 Equipment Wait, 2 Stage1, 3 Stage1+2, 4 Stage1+2+3, 5 Comp1, 6 Comp1+2, 7 Aux1, 8 Aux2, 9 Comp1+Elec1, 10 Comp1+Elec2, 11 Comp1+2+Elec1, 12 Comp1+2+Elec2, 13 Elec1, 14 Elec2.
Cooling: 0 Idle, 1 Wait, 2–4 stages, 5–6 compressor combos.
| COS | Yes |
| Access | R |
| Byte | Field | Values (summary) |
|---|---|---|
| 0 | Dehumidification | 0 Idle, 1 Wait, 2 Whole home On, 3 Overcool to dehum, 4 Off |
| 1 | Humidification | 0 Idle, 1 Wait, 2 Active, 3 Off |
| 2 | Ventilation | 0 Idle, 1 Wait, 2 Active, 3 High temp lockout, 4 Low temp lockout, 5 High RH lockout, 6 Off |
| 3 | Air cleaning | 0 Idle, 1 Wait, 2 Active, 3 Off |
| COS | Yes |
| Access | R |
| Byte | Field |
|---|---|
| 0 | Error code |
| Code | Meaning |
|---|---|
| 0 | No error |
| 1 | E1 Built-in temp sensor open |
| 2 | E2 Built-in temp sensor short |
| 3 | E3 NVRAM access error (except 8840) |
| 4 | E4 Reserved |
| 5 | E5 ECM communication lost (except 8810/8820) |
| 6 | E6 Remote temp open (except 8810) |
| 7 | E7 Remote temp short (except 8810) |
| 8 | E8 Support module temp lost |
Protocol reference for scrypted-aprilaire · Validate codecs with npm test