Each event contains "MacId" and "OccuredAt" values in the body of the event. MacId is the unique device identifier and OccuredAt is the time the event occured on the device itself. Example of SetpointStatusEvent:

{"HeatSetpoint":70,"CoolSetpoint":78,"HeatSetpointStatus":"Scheduled","CoolSetpointStatus":"Scheduled","MacId":"00D02DB60BA0","OccuredAt":"2017-03-25T11:00:01.6286749Z"}

Thermostat event types:

  • DeviceOfflineEvent
  • DeviceOnlineEvent
  • FanSwitchEvent
  • SetpointStatusEvent
  • SystemSwitchEvent
  • ThermostatIndoorHumidityEvent
  • ThermostatOutdoorHumidityEvent
  • ThermostatIndoorTemperatureEvent
  • ThermostatOutdoorTemperatureEvent
  • RoomEvent
  • SensorEvent

Event Definitions

The data contained in each event body is defined below per event type.

DeviceOfflineEvent

Field Name/Location Data Type Definition
MacId String MacId of the related device
OccuredAt DateTime Date and time the event occured on the device

DeviceOnlineEvent

Field Name/Location Data Type Definition
MacId String MacId of the related device
OccuredAt DateTime Date and time the event occured on the device

FanSwitchEvent

Field Name/Location Data Type Definition
Position String Current fan switch position. On, Auto, Circulate, FollowSchedule, Unknown.
Speed Integer/Null Speed of the fan. Nullable.
MacId String MacId of the related device
OccuredAt DateTime Date and time the event occured on the device

SetpointStatusEvent

Field Name/Location Data Type Definition
HeatSetpoint Float/Null Current heating setpoint. Can be null.
CoolSetpoint Float/Null Current cooling setpoint. Can be null.
HeatSetpointStatus String/Null Current setpoint status. Can be null. Scheduled, Temporary, Hold, VacationHold, Unknown
CoolSetpointStatus String/Null Current setpoint status. Can be null. Scheduled, Temporary, Hold, VacationHold, Unknown
CoolHoldUntilLocal TimeSpan/Null If in temporary hold, this is the local time the hold will end
HeatHoldUntilLocal TimeSpan/Null If in temporary hold, this is the local time the hold will end
ScheduledHeatSetpoint Float/Null If in temporary or permanent hold, this is the original schedule setpoint
ScheduledCoolSetpoint Float/Null If in temporary or permanent hold, this is the original schedule setpoint
VacationHoldActive Boolean/Null True/False if vacation hold is currently active
VacationHoldUntilLocal DateTime/Null Date the vacation hold will end, in local time
MacId String MacId of the related device
OccuredAt DateTime Date and time the event occured on the device

SystemSwitchEvent

Field Name/Location Data Type Definition
SystemSwitch String Current system switch position. EmergencyHeat, Heat, Off, Cool, AutoHeat, AutoCool, SouthernAway, Unknown
MacId String MacId of the related device
OccuredAt DateTime Date and time the event occured on the device

ThermostatIndoorHumidityEvent

Field Name/Location Data Type Definition
IndoorHumidity Float/Null Current indoor humidity if available. In percent.
IndoorHumidityStatus String/Null Indoor humidity sensor state. Measured, NotAvailable, SensorFault
MacId String MacId of the related device
OccuredAt DateTime Date and time the event occured on the device

ThermostatOutdoorHumidityEvent

Field Name/Location Data Type Definition
OutdoorHumidity Float/Null Current outdoor humidity if available. In percent.
OutdoorHumidityStatus String/Null Outdoor humidity sensor state. Measured, NotAvailable, SensorFault
MacId String MacId of the related device
OccuredAt DateTime Date and time the event occured on the device

ThermostatIndoorTemperatureEvent

Field Name/Location Data Type Definition
IndoorTemperature Float/Null Current indoor temperature reading
Units String/Null C or F units
IndoorTemperatureStatus String/Null Indoor temperature sensor state. Measured, NotAvailable, SensorFault
MacId String MacId of the related device
OccuredAt DateTime Date and time the event occured on the device

ThermostatOutdoorTemperatureEvent

Field Name/Location Data Type Definition
OutdoorTemperature Float/Null Current outdoor temperature reading
Units String/Null C or F units
OutdoorTemperatureStatus String/Null Outdoor temperature sensor state. Measured, NotAvailable, SensorFault
MacId String MacId of the related device
OccuredAt DateTime Date and time the event occured on the device

RoomEvent

Field Name/Location Data Type Definition
Id Int Room ID
RoomType Enum Type of Room: "Bedroom", "LivingSpace" or "Other"
AccessorySource Array Array of Sensor IDs in a Room
AvgTemperature Double Average temp of a room in F units
AvgHumidity Double Average humidity of a room in percentage
Name String Name of the room

SensorEvent

Field Name/Location Data Type Definition
RoomId Int Room ID
AccessoryId Int AccessoryId of the sensor/thermostat in the room
AccessoryAttribute Array Array of Sensor IDs in a Room
AccessoryAttribute.Id Int AccessoryId
AccessoryAttribute.Type Enum "Is" for sensor, "Ts" for Thermostat
AccessoryAttribute.ConnectionMethod Enum "Rl" for RedLink (sensor), "Wi" for Wifi (Thermostat)
AccessoryAttribute.Name String Accessory name
AccessoryAttribute.UserChangeEnable Boolean  
AccessoryAttribute.Model String Model of accessory
AccessoryAttribute.SerialNumber String Serial number of accessory
AccessoryAttribute.SoftwareRevision String Software version of accessory
AccessoryAttribute.HardwareRevision String Hardware version of accessory
AccessoryValue Array Array of accessory values
AccessoryValue.Id Int ID of accessory
AccessoryValue.IndoorHumidity Percentage Current indoor humidity reading
AccessoryValue.MotionDet Boolean Is motion currently detected? True/False
AccessoryValue.OccupancyDet Boolean Is occupancy currently detected? True/False
AccessoryValue.IndoorTemperature Double Current indoor temperature in F units
AccessoryValue.Identify Boolean Is identify function currently on? (This is the app/device ability to flash a light to identify sensors)
AccessoryValue.ExcludeTemp Boolean Is temp reading excluded from this accessory?
AccessoryValue.ExcludeMotion Boolean Is motion reading excluded from this accessory?
AccessoryValue.OccupancySensitivity Enum Current sensitivity setting "Low", "Medium" or "High".
AccessoryValue.OccupancyTimeout Int Timeout with no motion before declaring occupancy = false
AccessoryValue.Status Enum Status of accessory "NotAvailable", "Ok" or "Error"
AccessoryValue.BatteryStatus Enum Status of batteries "Ok", "Low", or "Critical"
AccessoryValue.RssiAverage Int Current signal strength of the accessory
AvgTemperature Double Average temp of a room in F units
AvgHumidity Double Average humidity of a room in percentage
Name String Name of the room