![]() | ![]() | |
| Make/Model | Device Version | Connection Type |
| Aprilaire/8870 | N/A | Serial |
The Aprilaire 8870 is a RS-485 based thermostat bus, on which up to 64 thermostats can be attached. Each thermostat has a 485 address so a single driver instance will support however many thermostats are on that particular serial bus. Each thermostat can have up to 8 external sensors attached to it, 2 per sensor adaptor with up to 4 of them daisy chained. Each sensor adaptor can be a humidify or temperature adaptor. Each sensor adaptor has two onboard sensors, but each can also be overridden by attaching a remote sensor to the adaptor.
When you install the driver you will be asked to select what addresses you want CQC to control thermostats at. Double click the address items in the list to toggle the check mark on and off. Make sure that the addresses you want to control are checked. CQC does not have to control all the thermostats on the bus, though normally it probably would.
This driver is CML based and the classes are found in the CML scope MEng.System.CQC.Drivers.Aprilaire.Thermo8870.DriverImpl.
Though in theory up to 64 thermostats can be connected, each with up to 8 external sensors, as a practical matter the real limits are far less than that in any practical sense. To avoid conflicts, each thermo talks on the bus in a given time slot. As more thermos are added, more slots are required, so in a fully loaded system, it might be 15 or more seconds before a thermo can respond to the driver, which would not work because the driver would never wait that long for a reply.
But, for a likely real world system with say 1 to 4 or perhaps 8 thermos, it should be fine. If you want more than that, you should probably get a second serial adapter and connect more thermostats onto it, and load a second driver instance to control the thermostats on that second bus. That will keep the response of control and feedback far crisper.
The outboard sensors discussed (up to 8 attached to a thermostat in up to 4 daisy-chained sensor adaptors with two sensors each), must be actively polled by the driver, whereas everything else is reported asynchronously. So adding 8 sensors to a thermostat will have probably more effect on overall performance of the driver than adding a new thermostat.
- To insure optimum performance, you must put your thermostats at the lowest addresses, and set the thermostat count to the number you have. The thermostat count sets the number of transmission slots mentioned above. If you leave the thermostat count at the default 32, you will waste a lot of time because the thermos you have will still wait for their transmission slots. The other slots will be dead air. So, if you have 2 thermos, set them to addresses 1 and 2 and set the thermostat count to 2.
Since the thermostat is a RS-485 bus, and PC ports are RS-232, you must use a serial adaptor that Aprilaire sends. You connect the PC to the adaptor's RS-232 port, and the thermos to the adaptor's RS-485 connector, and it translates between the two formats. This device is the 8811 Protocol Adaptor.
This section lists the fields that the driver makes available, their types, minimum and maximum values, etc...
- Note that in the examples below, the Tx prefix will really be T1, T2, etc... There are versions of these generated for each thermostat configured for CQC to control.
Name
Type R/W Description/Limits
TxCurTemp Int R Read the current temperature reported by the onboard sensor in thermostat x. TxFanMode String R/W Read or set the fan mode of thermostat x. This is an enumerated field with the values: Auto, On. TxMode String R/W Read or set the current operating mode of thermostat x. This is an enumerated field with the values: Off, Heat, Cool, Auto, EmHeat, Humidify, Dehumidify. TxSPCool Int R/W Read or set the cooling set point of thermostat x. Don't set it less than 2 degrees from the heat set point. TxSPHeat Int R/W Read or set the heating set point of thermostat x. Don't set it less than 2 degrees from the cooling set point. TxHumSensor? Card R Read the humidity reported by humidity sensor ? (where ? is 1 through 8) connected to thermostat x. It will be 0 to 100, i.e. a humidity percent. TxRemHumSensor? Card R Same as TxHumSensor except that is is a remote sensor, overriding the onboard sensor. TxRemTempSensor? Int R The same as TxTempSensor except that it is a remote sensor, overriding the onboard sensor. TxTempSensor? Int R Read the temperature reported by temperature sensor ? (where ? is 1 through 8) connected to thermostat x.