POST Update Thermostats

URL: /thermostat

Accessible by: Smart, EMS accounts only.

Updating thermostats is performed with a POST request. This request permits the modification of any writable Thermostat or sub-object property. Thermostats may be updated by their writeable properties directly or through the Thermostat Functions.

Updating using Thermostat Properties

By including the Thermostat object in the request, any writable property may be directly updated in the thermostat. Some thermostat child objects are read-only due to either complexity in their configuration for which the thermostat functions have been created to support, or the object is not modifiable outside the physical thermostat (i.e. devices, wifi, etc.)

Updating using Thermostat Functions

Thermostats may also be updated using Thermostat Functions. Thermostat Functions provide a way to make more complex updates to a thermostat than just setting one or more properties. The functions emulate much of the same functionality found on the thermostat itself, such as setting a hold, for example. An update request may contain any number of functions in the request. Each function will be applied in the order they are listed in the request.

Request Properties

Property Version Type Required Description
selection 1 Selection Yes The selection criteria for update.
thermostat 1 Thermostat No The thermostat object with properties to update.
functions 1 Function [] No The list of functions to perform on all selected thermostats.

Response Properties

Property Version Type Description
status 1 Status The api response code.

Example Request:

The thermostat update example POSTs an update for all of the Smart user's registered thermostats and deletes a Vacation event called "My vacation" using the Delete Vacation function.

Request Body

NOTE: Request body is not encoded for example purposes.

HEADERS:
	Content-Type: application/json;charset=UTF-8
	Authorization: Bearer Rc7JE8P7XUgSCPogLOx2VLMfITqQQrjg
	
REQUEST:
	POST https://api.ecobee.com/1/thermostat?format=json
	
POST BODY:
	{
	    "functions": [
	        {
	           	"type":"deleteVacation",
				"params":{
					"name":"My vacation"
	           	}
	        }
	    ],
	    "selection": {
			"selectionType":"registered",
			"selectionMatch":""
		},
		"thermostat": {
       		"settings":{
          		"hvacMode":"off"
      		}
      	}
	}
				

Sample API Call

Show code sample in:
curl -s --request POST --data-urlencode @json.txt -H "Content-Type: application/json;charset=UTF-8" -H "Authorization: Bearer ACCESS_TOKEN" "https://api.ecobee.com/1/thermostat?format=json"  
				

Example Response:

{
	"status": {
	"code": 0,
	"message": ""
	}
}
    

Back To Top