Repository navigation
Codebase Mapping
nberardi edited this page Jul 18, 2026
·
6 revisions
How this repository implements the protocol.
Scrypted DeviceProvider (AprilairePlugin)
├── AprilaireThermostat / Humidifier / Dehumidifier / OutdoorThermometer
└── AprilaireClient + AprilaireSocket
└── FunctionalDomain*.ts (binary codecs)
| Concern | Location |
|---|---|
| TCP, CRC, enums, temp codec, frame parse | src/AprilaireClient.ts |
| NACK object |
src/BasePayloadResponse.ts (NackResponse) |
| Control | src/FunctionalDomainControl.ts |
| Scheduling | src/FunctionalDomainScheduling.ts |
| Sensors | src/FunctionalDomainSensors.ts |
| Status / COS / Sync | src/FunctionalDomainStatus.ts |
| Setup (partial) | src/FunctionalDomainSetup.ts |
| Alerts (parse) | src/FunctionalDomainAlerts.ts |
| Identification | src/FunctionalDomainIdentification.ts |
| Lockout / Messaging / Display | stubs |
| Multi-stat ODT & hold broadcast | src/AprilairePlugin.ts |
| Protocol unit tests |
tests/ (npm test) |
| Area | Status |
|---|---|
| Frame, CRC, actions | Done |
| Temperature encode/decode | Done |
| Control 2.1, 2.3, 2.4, 2.7 | Done (product) |
| Control 2.5–2.6 Fresh air / air clean | Parse only |
| Control 2.2 Increment | Missing |
| Scheduling hold / heat blast / away codecs | Done; hold UX partial |
| Schedule settings / day | Missing |
| Sensors 5.2 + 5.4 written ODT | Done |
| Sensors 5.1 / 5.3 | Partial / missing |
| Status COS write + Sync + status/IAQ/error | Done (product depth varies) |
| NACK parse | Done; auto-retry queue missing |
| Setup scale + partial installer | Partial |
| Date/time | Missing |
| Alerts | Parse; weak product surface |
| Identification | Done (name attr 0x05) |
| Lockout / messaging / display | Missing |
| Guide / series | Port |
|---|---|
| Default Wi‑Fi port | 8000 |
| Some 6000-series (field) | 7000 |
Protocol reference for scrypted-aprilaire · Validate codecs with npm test