Skip to content

Protocol Overview

nberardi edited this page Jul 18, 2026 · 5 revisions

Overview & Provisioning

Purpose

Defines the binary protocol for remote access between a home automation host and Aprilaire Wi‑Fi thermostats, including HVAC and IAQ equipment control.

Models (this protocol)

Model Description
8810 Universal multistage programmable; Event-Based™ air cleaning
8820 Touchscreen; humidity or ventilation; outdoor temp sensor; support modules
8830 2-piece touchscreen; humidity, dehumidification, ventilation; outdoor + wireless outdoor sensors; support modules
8840 7″ color 2-piece; full IAQ; outdoor + wireless outdoor; support modules
8081 Support module — remote temperature
8082 Support module — remote temperature + humidity

Application notes

  1. Data packets are identical across models; fields are ignored when the model/configuration does not support them.
  2. The thermostat may use a separate port for Aprilaire cloud (firmware updates; 8840 weather/pollen). That is not this protocol.
  3. Time synchronization is the automation system’s responsibility (use Setup / Date and Time).

Transport

Item Value
Protocol TCP
Port 8000
Model Host connects to thermostat as TCP server
Cloud Separate connection; do not confuse with HA port

Some 6000-series devices use port 7000. Confirm per device.

Provisioning — summary

  1. Power thermostat with 24 VAC on RC & R.
  2. Enter provisioning / clear-Wi‑Fi mode on the thermostat (menu path varies by model; guide example is 8820: MENU → SETUP → WIFI DISCONNECT AND CLEAR SETTINGS → YES).
  3. Join thermostat AP SSID (includes model + last 6 of MAC), e.g. APRILAIRE8820A50107.
  4. Browser: http://192.168.1.99/index.html — select LAN SSID, password; optional static IP under Advanced.
  5. Save/Apply; find LAN IP (router or scan if DHCP).
  6. Connect automation client to IP:8000.

Transaction types

Type Initiator Purpose
COS Thermostat Unsolicited change-of-state when subscribed (replaces polling)
Read Request / Response Host → Thermostat Query attribute; response is asynchronous
Write Host → Thermostat Set attribute; NACK if rejected
NACK Thermostat Error / rejection with status code

Design rules for integrators

  1. Prefer COS + Sync over continuous polling.
  2. Temperatures on the wire are always Celsius (packed ½ °C bytes). See Temperature Encoding.
  3. Multi-field writes are atomic — any invalid field → NACK, no partial apply.
  4. Null (0) on many multi-field attributes means “leave this sub-field unchanged.”
  5. Deadband applies in Auto mode; dual setpoints that violate deadband NACK or cause opposing SP correction + COS.
  6. Effectively one home-automation TCP session per thermostat (community observation; official app uses another path).

Clone this wiki locally