Driver Details


Updated: Feb. 9, 2024
Version: 2.05


This driver is for a network of one or more Aprilaire 8870/8800 communicating thermostats, connected to the XP processor through an Aprilaire 8811 protocol adapter.

This driver has been updated to 2.0 because of a significant reworking of the structure of some of the commands. Because of this you cannot use the update driver function in Integration Designer to update a pre-2.0 driver to 2.0 or higher. You must add the driver as a new driver and reprogram commands on all your pages.

Version History:

Version 2.0: adds support for the humidistat mode of the 8800, adds a selected thermostat function and supports dynamic naming and configuration.

Version 2.02: adds polling of external sensor modules.

Version 2.03: fixes a timing issue causing failures in installations with a large number of thermostats.

Version 2.04: Adds fix for Apex auto incrementing thermostat count.

Version 2.05: Fixes issue with tags and autoprogramming which would force all autoprogramming to thermostat 1.

Aprilaire Communicating Thermostats

This driver is for a network of one or more Aprilaire communicating thermostats, connected to the processor through an Aprilaire 8811 protocol adapter.

Version History

1.0 The original release of the driver

1.01 Fixes configuration with >2 thermostats

1.02 Changes lower bound on set points to 4 for compatibility with Celsius

1.11 Adds external sensors, extra system events, hold modes and scheduling. Basically it supports the 8800 thermostat

1.12 Adds 'Built-in' Humidity Sensor separately for the 8800

2.0 Adds Humidistat functions, streamlined scheduling functions and 'Selected' thermostat functions for multiple stat usage

2.01 Adds 'Selected Stat' variables missing from 2.0 and continuous refresh of external modules

2.02 Fixes a problem requiring at least one external module to be in the configuration

2.03 Fixes some timing problems causing buffer overflows on large installations. -1 being an illegal temp value is fixed

2.04 Adds fix for Apex auto incrementing thermostat count

2.05 Fixes issue with tags and autoprogramming which would force all autoprogramming to thermostat 1.

RS-232 Connection

The RS-232 connection on the 8811 protocol adapter interface should be connected directly to the included serial adapter; a null modem is not required. The RJ-12 jack on the 8811 is not compatible with the XP-8's RJ-45 jacks, you must use both the Aprilaire supplied RJ12 to DB9 Female adapter and the supplied DB9 Male to RJ45 adapter to make the connection.

Number of Thermostats Supported

The Aprilaire system allows up to 64 devices to be on the same bus. Each thermostat should be configured in its Set-Up menu with the total number of devices on the bus. The 8870's default value, 32, will cause slower response than setting the actual number of thermostats (provided you have less than 32 total thermostats). The "Highest Address" configuration setting in the driver should be set to the same value. Because all the thermostats share the buss, acquiring all the variables on the initial connection (when power up for instance) can take several minutes once you get a high number of thermostats.

The thermostat buss uses a multiplexing scheme that REQUIRES each device to know how many thermostats there are. Not setting these values correctly (the same on each stat and processor) is the number one source of support calls about this device/driver.

Auto HVAC Mode

If you intend to allow any thermostat on the bus to be placed in the Auto HVAC mode (not the Auto Fan mode), you should use only the "Set Heat Setpoint" / "Set Cool Setpoint" commands. The "Set Current Mode Setpoint" / "Current Mode Setpoint Up" / "Current Mode Setpoint Down" commands and the "Setpoint (mode-dependent)" system variable are not supported when the thermostat is in Auto mode.

Thermostat Messages

Thermostats rotate up to 4 messages permanently in their display. These can be set from the driver, setting the message to an empty string clears the message. There is also a 'temporary message' with a parameter that sets how long it displays, leaving at 0 means the display is permanent, but it can still be cleared manually. The 8870's will flash when displaying a temporary message. There are variables to match the commands so touchpanels and remotes can display the messages as well.

Remote Sensors and 8800 'internal sensors'

The driver has up to 8 remote sensor variables for each thermostat. There are two sensors for each external module and the number of external modules must be entered for each thermostat in the drop down menu under its name in configuration. The 8800's have a separate variable for their internal outside temperature sensor.

The driver 'polls' all the thermostats for the number of modules attached to the thermostat with the most. It will be much more efficient if the modules are spread out over all the thermostats in the project -- if you have 8 stats and 8 external sensor modules it is much better to have one module on each stat than to have two of the stats have 4 modules while 6 have none

System Events

The driver now triggers system events on thermostat mode on or off as well as individual thermostat modes. It triggers events when heat and cool relays actually trigger. It also has settable 'Temperature Alarm' settings which are stored in persistent memory so they'll remain there when the processor is reset.


The 8800 supports up to 4 events with separate setpoints per day. To edit the schedule send a command for the day and event, then the 'Selected' variables under scheduling will be filled. Trimming the setpoints, time and fan modes will change the values on the stat immediately. Changes made when 'Weekdays' is selected will change all the weekdays, weekends and everyday works the same way. The sample file has a scheduling page example.

If your stat only uses 2 events you'll be using Wake and Leave, which can be renamed.


The 8800 supports hold modes. When there's no hold the stat follows the current schedule. Changing a set point manually puts the thermostat into temporary hold until the next scheduling change when the stat switches back to the schedule. Vacation holds will have to be created at the thermostat. The driver can show the hold mode but there are only commands for permanent hold and hold off.