-
Notifications
You must be signed in to change notification settings - Fork 5
Interpreting Data
Note: The data format is somewhat similar, but a very simplified version of the Carrier Infinity data format. See: https://github.com/nebulous/infinitude/wiki/Infinity---interpreting-data
The first three bytes of the data refer to a "register" which represents a table and row number. The high byte of the register relates to a table, and the low byte refers to a row in that table. A dot "." is used as a delimiter between bytes.
Zone 1 is the master controller in a CZII system.
Some example data below (checksums omitted):
// Zone 1 Master writing to CZII Controller Table 9, Row 5 the value "128"
9.0 1.0 4 0.0.12 0.9.5.128
// Ack response "0" from CZII Controller to Zone 1
1.0 9.0 1 0.0.6 0
// Request from Zone 1 to Zone 2 for Table 2, Row 3 data
2.0 1.0 3 0.0.11 0.2.3
// Response from Zone 2 to Zone 1 with data "1 0 0 0 4 69 68 66 78 0"
1.0 2.0 13 0.0.6 0.2.3.1.0.0.0.4.69.68.66.78.0
Table 9 seems to be used to get status information from and to send commands to the CZII Controller (Address=9).
9.0 1.0 3 0.0.11 0.9.1.
1.0 9.0 11 0.0.6 0.9.1.255.255.255.255.255.255.255.255.
9.0 1.0 3 0.0.11 0.9.2.
1.0 9.0 11 0.0.6 0.9.2.255.255.255.255.255.255.255.255.
9.0 1.0 3 0.0.11 0.9.3.
1.0 9.0 10 0.0.6 0.9.3.195.3.136.71.255.0.0.
Bytes 0-2: Table & Row
Byte 3 : Panel option switch values
Byte 3 | |||||||
---|---|---|---|---|---|---|---|
Option Switch 1 | Option Switch 2 | Option Switch 3 | Option Switch 4 | Option Switch 5 | Option Switch 6 | Option Switch 7 | Option Switch 8 |
0 = AC, 1 = HP | 0 = 1 Speed, 1 = 2 Speed | 0 = 1- or 2-Stage Heat (also called No Smart Staging), 1 = 3-Stage Heat (also called Smart Staging) | 0 = Smart Recovery, 1 = Conventional Recovery | 0 = Address 1, 1 = Address 2 | 0 = Normal, 1 = Installer Test | 0 = Lo Temp Cool, 1 = Lo Temp Cool Off | 0 = No Dual Fuel, 1 = Dual Fuel |
Bytes 4 and 5: Outside Temperature The bytes (3.136) represent the outside temperature. To get deg F convert the two bytes (2s compliment format) into decimal and divide by 16.
Byte 6: Leaving Air Temperature from the air handler/furnace.
Byte 7: HPT temperature (the temperature of the air leaving the indoor coil)
Byte 8: Defrost W1 Input (0 = Off, 1 = On)
Byte 9: Defrost W2 Input (0 = Off, 1 = On)
9.0 1.0 11 0.0.12 0.9.4.15.0.0.0.0.0.0.0.
1.0 9.0 1 0.0.6 0.
Bytes 0-2: Table & Row
Bytes 3-10: Damper positions for Zones 1-8. Value is from 0 (fully closed) to 15 (fully open).
9.0 1.0 4 0.0.12 0.9.5.128.
1.0 9.0 1 0.0.6 0.
Zone 1 write to Zone 9 configuration info:
Bytes 0-2: Table & Row
Byte 3 : Bit mask of operating state
Fan Off (128) (80) (1000 0000)
Fan On (160) (A0) (1010 0000)
Fan On, Heat Pump On (161) (A1) (1010 0001)
Fan On, Aux Heat On (173) (AD) (1010 1101)
Fan On, A/C On (177) (B1) (1011 0001)
Note: Aux heat might come on briefly while defrosting, but otherwise, the use of aux heat might indicate that the heat pump isn't working.
Byte 3 | |||||||
---|---|---|---|---|---|---|---|
De Humidify | Humidify | Fan State (G) | Reversing Valve | Aux Heat Stage 2 (W2) | Aux Heat Stage 1 (W1) | Compressor Stage 2 (Y2) | Compressor Stage 1 (Y1) |
1 bit | 1 bit | 1 bit | 1 bit | 1 bit | 1 bit | 1 bit | 1 bit |
Table 2 seems to be used by the Zone 1 Master (Address = 1) to get status information from and to send commands to the different Zones (Addresses = 2-8).
2.0 1.0 13 0.0.12 0.2.1.0.60.3.140.3.0.0.0.2.0.
Zone 1 sends to Zone 2 status info:
Bytes 0-2: Table & Row
Byte 3 : Unknown
Byte 4: Humidity
Bytes 5 and 6: Outside Temperature The bytes (3.140) represent the outside temperature (56 deg F). To get deg F convert the two bytes (2s compliment format) into a decimal and divide by 16.
Byte 7-12 : Unknown
2.0 1.0 10 0.0.12 0.2.2.0.0.0.0.67.77.0.
Zone 1 sends data to Zone 2:
Bytes 0-2: Table & Row
Byte 3 : Hold?
Byte 4 : Unknown
Byte 5 : Out?
Byte 6 : Unknown
Byte 7: Zone Heat set point (deg F)
Byte 8: Zone Cool set point (deg F)
Byte 9 : Zone 1 seems to set to 1 to save changes to Zone???
2.0 1.0 3 0.0.11 0.2.3.
1.0 2.0 13 0.0.6 0.2.3.0.0.0.0.4.120.71.67.77.0.
Zone 2 responds to Zone 1 with status info:
Bytes 0-2: Table & Row
Byte 3-6 : Unknown
Bytes 7 and 8: Zone Temp? The bytes (4.120) represent the outside temperature. To get deg F convert the two bytes (2s compliment format) into decimal and divide by 16.
Byte 9: Zone Temperature (deg F)
Byte 10: Zone Heat set point (deg F)
Byte 12: Zone Cool set point (deg F)
Table 1 seems to be used to remotely control and to get status information from the Zone 1 Master (Address = 1). Table 1 messages are not normally transmitted on the CZII communication bus during normal use, but if a request is sent to Zone 1 it will respond with data for rows 1-34.
1.0 3.0 3 0.0.11 0.1.1
3.0 1.0 19 0.0.6 0.1.1.0.240.0.207.0.240.0.240.0.240.0.240.0.240.0.240.
1.0 3.0 3 0.0.11 0.1.2.
3.0 1.0 17 0.0.6 0.1.2.6.2.0.79.3.10.0.1.2.2.243.100.1.160.
Bytes 0-2: Table & Row
Byte 4 : Number of zones
Byte 10 : Zone number whose information is currently displayed on the LCD screen
Byte 12 : Current scheduled program (0 = Wake, 1 = Day, 2 = Eve, 3 = Sleep) for the zone indicated by byte 10
1.0 3.0 3 0.0.11 0.1.3.
3.0 1.0 19 0.0.6 0.1.3.0.7.0.0.0.0.0.0.0.0.0.0.0.0.0.0.
1.0 3.0 3 0.0.11 0.1.4.
3.0 1.0 10 0.0.6 0.1.4.0.0.0.0.0.0.0.
1.0 3.0 3 0.0.11 0.1.5.
3.0 1.0 8 0.0.6 0.1.5.0.0.0.0.0.
1.0 3.0 3 0.0.11 0.1.6.
3.0 1.0 16 0.0.6 0.1.6.0.0.4.98.61.0.0.0.0.0.0.10.6.
Zone 1 sends to Zone 3 data:
Bytes 0-2: Table & Row
Byte 3-4 : Unknown
Bytes 5 and 6: Zone 1 Temperature The bytes (4.98) represent the outside temperature. To get deg F convert the two bytes (2s compliment format) into decimal and divide by 16.
Byte 7 : Zone 1 Humidity
Byte 8-13 : Unknown
Byte 14-15 : Seems to be a time value. High byte is Minutes, low byte is seconds.
1.0 3.0 3 0.0.11 0.1.7.
3.0 1.0 18 0.0.6 0.1.7.0.0.35.0.0.0.0.0.12.12.12.12.12.12.0.
1.0 3.0 3 0.0.11 0.1.8.
3.0 1.0 19 0.0.6 0.1.8.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.
1.0 3.0 3 0.0.11 0.1.9.
3.0 1.0 18 0.0.6 0.1.9.184.61.2.35.45.3.153.0.29.2.60.128.240.0.0.
Bytes 0-2: Table & Row
Byte 3 : Same as row 17, byte 3?
Byte 4 : Zone 1 Humidity
Byte 5 : Humidifying mode. Possible values are: 0 = Normal, 1 = FAN icon, 2 = AUTO icon, 3 = both FAN and AUTO icons, 4 = OFF. See pages 13-14 of the installation manual or pages 17-18 of the owner's guide for an explanation of the different humidifying modes.
Byte 6 : Humidify setpoint (manual) - used when humidifying in Normal or FAN mode
Byte 7 : Humidify setpoint (automatic, based on Auto RH Adjust) - used when humidifying in AUTO or FAN+AUTO mode
Bytes 8-9 : Outside temperature? To get deg F convert the two bytes (2s compliment format) into decimal and divide by 16.
1.0 8.0 3 0.0.11 0.1.10.
8.0 1.0 19 0.0.6 0.1.10.0.240.0.207.0.0.0.0.0.0.0.0.0.0.0.0.
1.0 8.0 3 0.0.11 0.1.11.
8.0 1.0 19 0.0.6 0.1.11.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.
This row has the zone calibration offsets. Each offset is two bytes in 2s complement format (0.5 = +5, 0.0 = 0, 255.255 = -1, 255.251 = -5).
Bytes 0-2: Table & Row
Bytes 3-4 : Zone 1
Bytes 5-6 : Zone 2
etc.
1.0 8.0 3 0.0.11 0.1.12.
8.0 1.0 17 0.0.6 0.1.12.1.0.0.0.0.0.0.0.0.0.0.0.0.0.
Bytes 0-2: Table & Row
Byte 4 : Operating mode: 0 = Heat, 1 = Cool, 2 = Auto, 3 = E Heat, 4 = Off
Byte 6 : The effective mode (0 = Heat, 1 = Cool) when the mode is set to Auto
Byte 9 : Temporary setpoint bitmask. This is a list of zones that are currently using a temporary setpoint. They will keep this temporary setpoint until the next scheduled change, and then automatically resume the pre-programmed schedule. Each bit is set to 0 normally, or 1 if the corresponding zone is using a temporary setpoint. If ALL mode is in effect, the ALL-zone setting (see byte 15) applies to all zones, and the other bits are ignored.
Byte 9 | |||||||
---|---|---|---|---|---|---|---|
Bit 7 (0x80) | Bit 6 (0x40) | Bit 5 (0x20) | Bit 4 (0x10) | Bit 3 (0x08) | Bit 2 (0x04) | Bit 1 (0x02) | Bit 0 (0x01) |
Zone 8 | Zone 7 | Zone 6 | Zone 5 | Zone 4 | Zone 3 | Zone 2 | Zone 1 |
Byte 10 : HOLD mode bitmask. Exactly the same semantics as byte 9, but for HOLD mode. When a zone is in HOLD mode, it will ignore all scheduled changes and keep the current setpoint forever. As before, if ALL mode is in effect, the ALL-zone setting applies to all zones, and the other bits are ignored.
Byte 12 : OUT mode bitmask. Exactly the same again, but for OUT mode. When a zone is in OUT mode, the display shows "--" and it uses heating and cooling setpoints of 60 and 85, respectively.
Byte 15 : ALL mode: 0 = Normal, or any zone number (1-8) = ALL mode (that zone's setpoints are used for all zones).
1.0 8.0 3 0.0.11 0.1.13.
8.0 1.0 11 0.0.6 0.1.13.0.0.0.0.0.0.0.0.
1.0 8.0 3 0.0.11 0.1.14.
8.0 1.0 11 0.0.6 0.1.14.2.3.0.0.0.0.0.0.
1.0 8.0 3 0.0.11 0.1.15.
8.0 1.0 19 0.0.6 0.1.15.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.
8.0 1.0 19 0.0.6 0.1.16.82.77.76.76.76.76.76.76.67.67.68.68.68.68.68.68.
This row can be used to read and write the cooling/heating setpoints. Note that if you want your setpoint changes to stick, each changed zone must be in either HOLD mode or temporary setpoint mode (see row 12). Otherwise any changes will quickly be reverted back to the programmed setpoint for the active schedule.
Bytes 0-2: Table & Row
Bytes 3-10 : Zone1-Zone8 Current cooling setpoint
Bytes 11-18 : Zone1-Zone8 Current heat setpoint
1.0 8.0 3 0.0.11 0.1.17.
8.0 1.0 19 0.0.6 0.1.17.184.3.4.3.1.3.3.2.150.0.0.0.0.0.0.240.
This row has mostly configuration parameters that are set by the installer. It's fine to change the fan setting (byte 3, bit 2; this is set by the Fan button on the thermostat) but otherwise these are dangerous. These parameters are described in more detail in the installation manual.
Bytes 0-2: Table & Row
Byte 3 : Configuration options
Byte 3 | |||||||
---|---|---|---|---|---|---|---|
Blower Style | Ignore Lat/HPT | Cool to Dehumidify | Humidify | Auto RH Adjust | Fan Mode | Fan (G) On with W | Zoning |
0 = Constant Speed, 1 = Variable Speed | 0 = Off, 1 = On | 0 = Off, 1 = On | 0 = When Heating, 1 = Always | 0 = Off, 1 = On | 0 = Auto, 1 = Always On | 0 = Off, 1 = On | 0 = Enabled, 1 = Disabled |
Byte 4 : Clean Filter Timer (multiply by 400 to get number of hours)
Byte 5 : Aux Heat Lockout (multiply by 5 to get degrees)
Byte 6 : Dual Fuel Crossover (multiply by 5 to get degrees)
Byte 10 : Deadband Setting
Byte 11 : Heat Shutdown
Byte 12-13 : Outdoor Air Offset in 2s complement format (0.5 = +5, 0.0 = 0, 255.255 = -1, 255.251 = -5)
Byte 14 : Fan Operation (0 = Normal, 75 = Auto when Zone 1 SLEEP)
1.0 8.0 3 0.0.11 0.1.18.
8.0 1.0 7 0.0.6 0.1.18.3.22.33.47.
Bytes 0-2: Table & Row
Byte 3 : Day of Week: Sun=0, Mon=1, Tue=2, Wed=3, Thur=4, Fri=5, Sat=6
Byte 4,5,6 : Hour, Minute, Seconds
1.0 8.0 3 0.0.11 0.1.19.
8.0 1.0 19 0.0.6 0.1.19.0.0.0.0.0.0.0.0.0.0.0.0.0.22.0.0.
Bytes 0-2: Table & Row
Byte 4 : TimeGuard Timer (multiply by 15 to get number of seconds)
Byte 5 : Y1 Cycle Timer (multiply by 15 to get number of seconds)
Byte 6 : Y2 Cycle Timer (multiply by 15 to get number of seconds)
Byte 7 : W1 Cycle Timer (multiply by 15 to get number of seconds)
Byte 8 : W2 Cycle Timer (multiply by 15 to get number of seconds)
Byte 9 : Staging Timer (multiply by 15 to get number of seconds)
Byte 10 : Minimum On Timer (multiply by 15 to get number of seconds)
1.0 8.0 3 0.0.11 0.1.20.
8.0 1.0 11 0.0.6 0.1.20.0.0.0.0.0.0.0.0.
1.0 8.0 3 0.0.11 0.1.21.
8.0 1.0 19 0.0.6 0.1.21.255.243.255.238.0.0.0.0.0.0.0.0.0.0.0.0.
1.0 8.0 3 0.0.11 0.1.22.
8.0 1.0 19 0.0.6 0.1.22.4.64.4.66.0.0.0.0.0.0.0.0.0.0.0.0.
1.0 8.0 3 0.0.11 0.1.23.
8.0 1.0 11 0.0.6 0.1.23.255.255.255.255.255.255.255.255.
1.0 8.0 3 0.0.11 0.1.24.
8.0 1.0 13 0.0.6 0.1.24.67.68.0.0.0.0.0.0.3.149.
Bytes 0-2: Table & Row
Bytes 3-10 : Current Zone Temperatures (deg F) (Zones 1-8)
Bytes 11,12 : Unknown
1.0 8.0 3 0.0.11 0.1.25.
8.0 1.0 5 0.0.6 0.1.25.3.141.
1.0 8.0 3 0.0.11 0.1.26.
8.0 1.0 19 0.0.6 0.1.26.4.48.4.48.0.0.0.0.0.0.0.0.0.0.0.0.
1.0 8.0 3 0.0.11 0.1.27.
8.0 1.0 19 0.0.6 0.1.27.4.64.255.246.0.0.0.0.0.0.0.0.0.0.0.0.
1.0 8.0 3 0.0.11 0.1.28.
8.0 1.0 19 0.0.6 0.1.28.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.
1.0 8.0 3 0.0.11 0.1.29.
8.0 1.0 19 0.0.6 0.1.29.4.48.4.48.0.0.0.0.0.0.0.0.0.0.0.0.
1.0 8.0 3 0.0.11 0.1.30.
8.0 1.0 19 0.0.6 0.1.30.5.32.4.208.0.0.0.0.0.0.0.0.0.0.0.0.
1.0 8.0 3 0.0.11 0.1.31.
8.0 1.0 8 0.0.6 0.1.31.0.0.0.0.120.
Bytes 0-2: Table & Row
Byte 7: Auto Changeover Time. Divide by 4 to get number of minutes.
1.0 8.0 3 0.0.11 0.1.32.
8.0 1.0 7 0.0.6 0.1.32.128.0.0.128.
1.0 8.0 3 0.0.11 0.1.33.
8.0 1.0 7 0.0.6 0.1.33.0.3.141.61.
1.0 8.0 3 0.0.11 0.1.34.
8.0 1.0 5 0.0.6 0.1.34.55.120.
Table 10 holds the schedules on the Zone 1 Master (Address = 1). You can query or change the schedules using this table.
There is one row per zone per day, for a total of 56 rows:
- Row 1 (0.10.1) : Zone 1 - Sunday
- Row 2 (0.10.2) : Zone 1 - Monday
- ...
- Row 7 (0.10.7) : Zone 1 - Saturday
- Row 8 (0.10.8) : Zone 2 - Sunday
- Row 9 (0.10.9) : Zone 2 - Monday
- ...
- Row 14 (0.10.14) : Zone 2 - Saturday
- Row 15 (0.10.15) : Zone 3 - Sunday
- Row 16 (0.10.16) : Zone 3 - Monday
- ...
- Row 21 (0.10.21) : Zone 3 - Saturday
etc. There are four different daily programs, called Wake, Day, Eve, and Sleep. Each row holds the start time and setpoints for each program. The format of each row is the same:
Bytes 0-2: Table & Row
Byte 3 : Wake hour
Byte 4 : Day hour
Byte 5 : Eve hour
Byte 6 : Sleep hour
Byte 7 : Wake minute (use only 0, 15, 30, or 45)
Byte 8 : Day minute
Byte 9 : Eve minute
Byte 10 : Sleep minute
Byte 11 : Wake heat setpoint, or 196 for OUT
Byte 12 : Day heat setpoint, or 188 for OUT
Byte 13 : Eve heat setpoint, or 196 for OUT
Byte 14 : Sleep heat setpoint, or 188 for OUT
Byte 15 : Wake cool setpoint
Byte 16 : Day cool setpoint
Byte 17 : Eve cool setpoint
Byte 18 : Sleep cool setpoint