Skip to content

Codebase Mapping

wiki-publish edited this page Jul 18, 2026 · 6 revisions

Codebase Mapping

How Guide V1.00 maps onto scrypted-aprilaire.

Layers

Scrypted (DeviceProvider)
  └── AprilairePlugin          multi-stat ODT/hold sync, discovery
        └── Device classes     Thermostat / Humidifier / Dehumidifier / OutdoorThermometer
              └── AprilaireClient + AprilaireSocket   TCP, CRC, parse
                    └── FunctionalDomain*.ts          request/response codecs

File map

Area Source
Entry src/main.ts
Plugin src/AprilairePlugin.ts
TCP / CRC / enums / temp src/AprilaireClient.ts
Devices src/AprilaireThermostat*.ts, Humidifier, Dehumidifier, OutdoorThermometer
Protocol codecs src/FunctionalDomain*.ts, BasePayloadRequest/Response.ts
Tests (guide oracle) tests/
Debug proxy tools/aprilaire-proxy/

Implementation status (summary)

Domain / feature Status
Frame, CRC, actions Implemented
Temp encode/decode Implemented (P0)
Control setpoints/mode, hum/dehum, IAQ available Implemented
Fresh air / air cleaning Parse only
Increment setpoint Missing
Schedule hold / heat blast / away codecs Implemented; hold UX partial
Schedule settings / day Missing
COS write + Sync Implemented
NACK parse Implemented; auto-retry queue missing
Sensors controlling + written ODT Implemented
Support modules Missing
Alerts parse Partial product surface
Identification Implemented (name attr 0x05)
Date/time Missing
Lockout / messaging / display Stubs
Deadband enforcement Missing
TCP sticky reassembly Missing

Ports

Series Typical port
8800 Wi‑Fi (guide) 8000
6000-series (community) 7000

Tests

npm test

Tests assert guide-correct behavior (attribute numbers, temperature bits, hold layout, NACK policy). See tests/README.md.

Clone this wiki locally