A climate defines a thermostat settings template which is then applied to individual period cells of the Schedule. The result is that if you modify the Climate, all schedule cells which reference that Climate will automatically be changed.
When adding a Climate it is optional whether you reference the new Climate in the schedule cells in the same request or not. However, when deleting a Climate (by omitting that entire Climate object from the POST request) it can not be be deleted if it is still referenced in the schedule cells.
Smart/Si: There are four default Climates for each Smart/Si Thermostat, with possible climateRef values of "wakeup", "away", "home", and "sleep".
ecobee3: There are three default Climates for each ecobee3 Thermostat, with possible climateRef values of "away", "home", and "sleep".
EMS: There are two default Climates for the EMS Thermostat, with possible climateRef values of "occupied" and "unoccupied".
Carrier/Bryant: There are four default Climates for each Carrier/Bryant Thermostat, with possible climateRef values of "wakeup", "away", "home", and "sleep".
None of these defaults can be deleted and trying to do so will return an exception. The remaining fields can be modified.
All sensors apply by default to every climate. If new sensors are added, they will be added to every climate. Adding a new climate will use the sensors associated with the default Home climate. If the last sensor is removed from a climate, the thermostat sensor is used for that climate.
The Climate.sensors field is a list of RemoteSensor objects, but only the remoteSensor.id and remoteSensor.name are populated/returned. Only the remoteSensor.id is mandatory for POST calls. (remoteSensor.name was added here as a convenience to the API caller, to save having to make another call to get the sensor name based on the remoteSensor.id). If remoteSensor.name is not sent, and remoteSensor.Id is (and is valid) the list of sensors associated with the climate is updated as expected. If remoteSensor.id is not sent, but remoteSensor.name is, an API exception is thrown, as remoteSensor.Id is required. To perform an update to the sensor itself, see the UpdateSensor function.
Climates may be modified (You can add, update or remove climates). However, it is important to note that the climateRef is required and read-only for for an existing climate and cannot be changed. The climate.Name can be edited so long as it is unique.
If the climateRef for an existing climate is not included in an API call it is assumed this is a net new climate. The climateRef must always be supplied for the default climates.
|name||String||no||yes||The unique climate name. The name may be changed without affecting the program integrity so long as uniqueness is maintained.|
|climateRef||String||yes||no||The unique climate identifier. Changing the identifier is not possible and it is generated on the server for each climate. If this value is not supplied a new climate will be created. For the default climates and existing user created climates the climateRef should be supplied - see note above.|
|isOccupied||Boolean||no||no||A flag indicating whether the property is occupied by persons during this climate|
|isOptimized||Boolean||no||no||A flag indicating whether ecobee optimized climate settings are used by this climate.|
|coolFan||String||no||no||The cooling fan mode. Default: on. Values: auto, on.|
|heatFan||String||no||no||The heating fan mode. Default: on. Values: auto, on.|
|vent||String||no||no||The ventilator mode. Default: off. Values: auto, minontime, on, off.|
|ventilatorMinOnTime||Integer||no||no||The minimum time, in minutes, to run the ventilator each hour.|
|owner||String||no||no||The climate owner. Default: system. Values: adHoc, demandResponse, quickSave, sensorAction, switchOccupancy, system, template, user.|
|type||String||no||no||The type of climate. Default: program. Values: calendarEvent, program.|
|colour||Integer||no||no||The integer conversion of the HEX color value used to display this climate on the thermostat and on the web portal.|
|coolTemp||Integer||no||no||The cool temperature for this climate.|
|heatTemp||Integer||no||no||The heat temperature for this climate.|
|sensors||RemoteSensor||no||no||The list of sensors in use for the specific climate. The sensors listed here are used for temperature averaging within that climate. Only the sensorId and name are listed in the climate.|