set user preference
curl --request POST \
--url https://api.example.com/v1/devices/hvac/{id}/user_preferences/set \
--header 'Content-Type: application/json' \
--header 'x-ws-api-key: <api-key>' \
--data '
{
"name": "Weekday comfort",
"tempUnits": "F",
"defaultMode": "AUTO",
"defaultMaxTemp": 75,
"defaultMinTemp": 65,
"defaultCoolSetpoint": 74,
"defaultHeatSetpoint": 68,
"scheduleBlocks": [
{
"startTimeMinutes": 0,
"endTimeMinutes": 480,
"mode": "HEAT",
"targetCoolSetpoint": null,
"targetHeatSetpoint": 68,
"maxTemp": 75,
"minTemp": 65,
"daysOfWeek": [
1,
2,
3,
4,
5
],
"scheduleType": "RECURRING"
},
{
"startTimeMinutes": 480,
"endTimeMinutes": 1440,
"mode": "AUTO",
"targetCoolSetpoint": 74,
"targetHeatSetpoint": 68,
"maxTemp": 75,
"minTemp": 65,
"daysOfWeek": [
1,
2,
3,
4,
5
],
"scheduleType": "RECURRING"
}
]
}
'import requests
url = "https://api.example.com/v1/devices/hvac/{id}/user_preferences/set"
payload = {
"name": "Weekday comfort",
"tempUnits": "F",
"defaultMode": "AUTO",
"defaultMaxTemp": 75,
"defaultMinTemp": 65,
"defaultCoolSetpoint": 74,
"defaultHeatSetpoint": 68,
"scheduleBlocks": [
{
"startTimeMinutes": 0,
"endTimeMinutes": 480,
"mode": "HEAT",
"targetCoolSetpoint": None,
"targetHeatSetpoint": 68,
"maxTemp": 75,
"minTemp": 65,
"daysOfWeek": [1, 2, 3, 4, 5],
"scheduleType": "RECURRING"
},
{
"startTimeMinutes": 480,
"endTimeMinutes": 1440,
"mode": "AUTO",
"targetCoolSetpoint": 74,
"targetHeatSetpoint": 68,
"maxTemp": 75,
"minTemp": 65,
"daysOfWeek": [1, 2, 3, 4, 5],
"scheduleType": "RECURRING"
}
]
}
headers = {
"x-ws-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-ws-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Weekday comfort',
tempUnits: 'F',
defaultMode: 'AUTO',
defaultMaxTemp: 75,
defaultMinTemp: 65,
defaultCoolSetpoint: 74,
defaultHeatSetpoint: 68,
scheduleBlocks: [
{
startTimeMinutes: 0,
endTimeMinutes: 480,
mode: 'HEAT',
targetCoolSetpoint: null,
targetHeatSetpoint: 68,
maxTemp: 75,
minTemp: 65,
daysOfWeek: [1, 2, 3, 4, 5],
scheduleType: 'RECURRING'
},
{
startTimeMinutes: 480,
endTimeMinutes: 1440,
mode: 'AUTO',
targetCoolSetpoint: 74,
targetHeatSetpoint: 68,
maxTemp: 75,
minTemp: 65,
daysOfWeek: [1, 2, 3, 4, 5],
scheduleType: 'RECURRING'
}
]
})
};
fetch('https://api.example.com/v1/devices/hvac/{id}/user_preferences/set', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/v1/devices/hvac/{id}/user_preferences/set",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Weekday comfort',
'tempUnits' => 'F',
'defaultMode' => 'AUTO',
'defaultMaxTemp' => 75,
'defaultMinTemp' => 65,
'defaultCoolSetpoint' => 74,
'defaultHeatSetpoint' => 68,
'scheduleBlocks' => [
[
'startTimeMinutes' => 0,
'endTimeMinutes' => 480,
'mode' => 'HEAT',
'targetCoolSetpoint' => null,
'targetHeatSetpoint' => 68,
'maxTemp' => 75,
'minTemp' => 65,
'daysOfWeek' => [
1,
2,
3,
4,
5
],
'scheduleType' => 'RECURRING'
],
[
'startTimeMinutes' => 480,
'endTimeMinutes' => 1440,
'mode' => 'AUTO',
'targetCoolSetpoint' => 74,
'targetHeatSetpoint' => 68,
'maxTemp' => 75,
'minTemp' => 65,
'daysOfWeek' => [
1,
2,
3,
4,
5
],
'scheduleType' => 'RECURRING'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-ws-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/v1/devices/hvac/{id}/user_preferences/set"
payload := strings.NewReader("{\n \"name\": \"Weekday comfort\",\n \"tempUnits\": \"F\",\n \"defaultMode\": \"AUTO\",\n \"defaultMaxTemp\": 75,\n \"defaultMinTemp\": 65,\n \"defaultCoolSetpoint\": 74,\n \"defaultHeatSetpoint\": 68,\n \"scheduleBlocks\": [\n {\n \"startTimeMinutes\": 0,\n \"endTimeMinutes\": 480,\n \"mode\": \"HEAT\",\n \"targetCoolSetpoint\": null,\n \"targetHeatSetpoint\": 68,\n \"maxTemp\": 75,\n \"minTemp\": 65,\n \"daysOfWeek\": [\n 1,\n 2,\n 3,\n 4,\n 5\n ],\n \"scheduleType\": \"RECURRING\"\n },\n {\n \"startTimeMinutes\": 480,\n \"endTimeMinutes\": 1440,\n \"mode\": \"AUTO\",\n \"targetCoolSetpoint\": 74,\n \"targetHeatSetpoint\": 68,\n \"maxTemp\": 75,\n \"minTemp\": 65,\n \"daysOfWeek\": [\n 1,\n 2,\n 3,\n 4,\n 5\n ],\n \"scheduleType\": \"RECURRING\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-ws-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/v1/devices/hvac/{id}/user_preferences/set")
.header("x-ws-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Weekday comfort\",\n \"tempUnits\": \"F\",\n \"defaultMode\": \"AUTO\",\n \"defaultMaxTemp\": 75,\n \"defaultMinTemp\": 65,\n \"defaultCoolSetpoint\": 74,\n \"defaultHeatSetpoint\": 68,\n \"scheduleBlocks\": [\n {\n \"startTimeMinutes\": 0,\n \"endTimeMinutes\": 480,\n \"mode\": \"HEAT\",\n \"targetCoolSetpoint\": null,\n \"targetHeatSetpoint\": 68,\n \"maxTemp\": 75,\n \"minTemp\": 65,\n \"daysOfWeek\": [\n 1,\n 2,\n 3,\n 4,\n 5\n ],\n \"scheduleType\": \"RECURRING\"\n },\n {\n \"startTimeMinutes\": 480,\n \"endTimeMinutes\": 1440,\n \"mode\": \"AUTO\",\n \"targetCoolSetpoint\": 74,\n \"targetHeatSetpoint\": 68,\n \"maxTemp\": 75,\n \"minTemp\": 65,\n \"daysOfWeek\": [\n 1,\n 2,\n 3,\n 4,\n 5\n ],\n \"scheduleType\": \"RECURRING\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/devices/hvac/{id}/user_preferences/set")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-ws-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Weekday comfort\",\n \"tempUnits\": \"F\",\n \"defaultMode\": \"AUTO\",\n \"defaultMaxTemp\": 75,\n \"defaultMinTemp\": 65,\n \"defaultCoolSetpoint\": 74,\n \"defaultHeatSetpoint\": 68,\n \"scheduleBlocks\": [\n {\n \"startTimeMinutes\": 0,\n \"endTimeMinutes\": 480,\n \"mode\": \"HEAT\",\n \"targetCoolSetpoint\": null,\n \"targetHeatSetpoint\": 68,\n \"maxTemp\": 75,\n \"minTemp\": 65,\n \"daysOfWeek\": [\n 1,\n 2,\n 3,\n 4,\n 5\n ],\n \"scheduleType\": \"RECURRING\"\n },\n {\n \"startTimeMinutes\": 480,\n \"endTimeMinutes\": 1440,\n \"mode\": \"AUTO\",\n \"targetCoolSetpoint\": 74,\n \"targetHeatSetpoint\": 68,\n \"maxTemp\": 75,\n \"minTemp\": 65,\n \"daysOfWeek\": [\n 1,\n 2,\n 3,\n 4,\n 5\n ],\n \"scheduleType\": \"RECURRING\"\n }\n ]\n}"
response = http.request(request)
puts response.read_bodyhvac
set user preference
POST
/
v1
/
devices
/
hvac
/
{id}
/
user_preferences
/
set
set user preference
curl --request POST \
--url https://api.example.com/v1/devices/hvac/{id}/user_preferences/set \
--header 'Content-Type: application/json' \
--header 'x-ws-api-key: <api-key>' \
--data '
{
"name": "Weekday comfort",
"tempUnits": "F",
"defaultMode": "AUTO",
"defaultMaxTemp": 75,
"defaultMinTemp": 65,
"defaultCoolSetpoint": 74,
"defaultHeatSetpoint": 68,
"scheduleBlocks": [
{
"startTimeMinutes": 0,
"endTimeMinutes": 480,
"mode": "HEAT",
"targetCoolSetpoint": null,
"targetHeatSetpoint": 68,
"maxTemp": 75,
"minTemp": 65,
"daysOfWeek": [
1,
2,
3,
4,
5
],
"scheduleType": "RECURRING"
},
{
"startTimeMinutes": 480,
"endTimeMinutes": 1440,
"mode": "AUTO",
"targetCoolSetpoint": 74,
"targetHeatSetpoint": 68,
"maxTemp": 75,
"minTemp": 65,
"daysOfWeek": [
1,
2,
3,
4,
5
],
"scheduleType": "RECURRING"
}
]
}
'import requests
url = "https://api.example.com/v1/devices/hvac/{id}/user_preferences/set"
payload = {
"name": "Weekday comfort",
"tempUnits": "F",
"defaultMode": "AUTO",
"defaultMaxTemp": 75,
"defaultMinTemp": 65,
"defaultCoolSetpoint": 74,
"defaultHeatSetpoint": 68,
"scheduleBlocks": [
{
"startTimeMinutes": 0,
"endTimeMinutes": 480,
"mode": "HEAT",
"targetCoolSetpoint": None,
"targetHeatSetpoint": 68,
"maxTemp": 75,
"minTemp": 65,
"daysOfWeek": [1, 2, 3, 4, 5],
"scheduleType": "RECURRING"
},
{
"startTimeMinutes": 480,
"endTimeMinutes": 1440,
"mode": "AUTO",
"targetCoolSetpoint": 74,
"targetHeatSetpoint": 68,
"maxTemp": 75,
"minTemp": 65,
"daysOfWeek": [1, 2, 3, 4, 5],
"scheduleType": "RECURRING"
}
]
}
headers = {
"x-ws-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-ws-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Weekday comfort',
tempUnits: 'F',
defaultMode: 'AUTO',
defaultMaxTemp: 75,
defaultMinTemp: 65,
defaultCoolSetpoint: 74,
defaultHeatSetpoint: 68,
scheduleBlocks: [
{
startTimeMinutes: 0,
endTimeMinutes: 480,
mode: 'HEAT',
targetCoolSetpoint: null,
targetHeatSetpoint: 68,
maxTemp: 75,
minTemp: 65,
daysOfWeek: [1, 2, 3, 4, 5],
scheduleType: 'RECURRING'
},
{
startTimeMinutes: 480,
endTimeMinutes: 1440,
mode: 'AUTO',
targetCoolSetpoint: 74,
targetHeatSetpoint: 68,
maxTemp: 75,
minTemp: 65,
daysOfWeek: [1, 2, 3, 4, 5],
scheduleType: 'RECURRING'
}
]
})
};
fetch('https://api.example.com/v1/devices/hvac/{id}/user_preferences/set', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/v1/devices/hvac/{id}/user_preferences/set",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Weekday comfort',
'tempUnits' => 'F',
'defaultMode' => 'AUTO',
'defaultMaxTemp' => 75,
'defaultMinTemp' => 65,
'defaultCoolSetpoint' => 74,
'defaultHeatSetpoint' => 68,
'scheduleBlocks' => [
[
'startTimeMinutes' => 0,
'endTimeMinutes' => 480,
'mode' => 'HEAT',
'targetCoolSetpoint' => null,
'targetHeatSetpoint' => 68,
'maxTemp' => 75,
'minTemp' => 65,
'daysOfWeek' => [
1,
2,
3,
4,
5
],
'scheduleType' => 'RECURRING'
],
[
'startTimeMinutes' => 480,
'endTimeMinutes' => 1440,
'mode' => 'AUTO',
'targetCoolSetpoint' => 74,
'targetHeatSetpoint' => 68,
'maxTemp' => 75,
'minTemp' => 65,
'daysOfWeek' => [
1,
2,
3,
4,
5
],
'scheduleType' => 'RECURRING'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-ws-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/v1/devices/hvac/{id}/user_preferences/set"
payload := strings.NewReader("{\n \"name\": \"Weekday comfort\",\n \"tempUnits\": \"F\",\n \"defaultMode\": \"AUTO\",\n \"defaultMaxTemp\": 75,\n \"defaultMinTemp\": 65,\n \"defaultCoolSetpoint\": 74,\n \"defaultHeatSetpoint\": 68,\n \"scheduleBlocks\": [\n {\n \"startTimeMinutes\": 0,\n \"endTimeMinutes\": 480,\n \"mode\": \"HEAT\",\n \"targetCoolSetpoint\": null,\n \"targetHeatSetpoint\": 68,\n \"maxTemp\": 75,\n \"minTemp\": 65,\n \"daysOfWeek\": [\n 1,\n 2,\n 3,\n 4,\n 5\n ],\n \"scheduleType\": \"RECURRING\"\n },\n {\n \"startTimeMinutes\": 480,\n \"endTimeMinutes\": 1440,\n \"mode\": \"AUTO\",\n \"targetCoolSetpoint\": 74,\n \"targetHeatSetpoint\": 68,\n \"maxTemp\": 75,\n \"minTemp\": 65,\n \"daysOfWeek\": [\n 1,\n 2,\n 3,\n 4,\n 5\n ],\n \"scheduleType\": \"RECURRING\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-ws-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/v1/devices/hvac/{id}/user_preferences/set")
.header("x-ws-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Weekday comfort\",\n \"tempUnits\": \"F\",\n \"defaultMode\": \"AUTO\",\n \"defaultMaxTemp\": 75,\n \"defaultMinTemp\": 65,\n \"defaultCoolSetpoint\": 74,\n \"defaultHeatSetpoint\": 68,\n \"scheduleBlocks\": [\n {\n \"startTimeMinutes\": 0,\n \"endTimeMinutes\": 480,\n \"mode\": \"HEAT\",\n \"targetCoolSetpoint\": null,\n \"targetHeatSetpoint\": 68,\n \"maxTemp\": 75,\n \"minTemp\": 65,\n \"daysOfWeek\": [\n 1,\n 2,\n 3,\n 4,\n 5\n ],\n \"scheduleType\": \"RECURRING\"\n },\n {\n \"startTimeMinutes\": 480,\n \"endTimeMinutes\": 1440,\n \"mode\": \"AUTO\",\n \"targetCoolSetpoint\": 74,\n \"targetHeatSetpoint\": 68,\n \"maxTemp\": 75,\n \"minTemp\": 65,\n \"daysOfWeek\": [\n 1,\n 2,\n 3,\n 4,\n 5\n ],\n \"scheduleType\": \"RECURRING\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/devices/hvac/{id}/user_preferences/set")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-ws-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Weekday comfort\",\n \"tempUnits\": \"F\",\n \"defaultMode\": \"AUTO\",\n \"defaultMaxTemp\": 75,\n \"defaultMinTemp\": 65,\n \"defaultCoolSetpoint\": 74,\n \"defaultHeatSetpoint\": 68,\n \"scheduleBlocks\": [\n {\n \"startTimeMinutes\": 0,\n \"endTimeMinutes\": 480,\n \"mode\": \"HEAT\",\n \"targetCoolSetpoint\": null,\n \"targetHeatSetpoint\": 68,\n \"maxTemp\": 75,\n \"minTemp\": 65,\n \"daysOfWeek\": [\n 1,\n 2,\n 3,\n 4,\n 5\n ],\n \"scheduleType\": \"RECURRING\"\n },\n {\n \"startTimeMinutes\": 480,\n \"endTimeMinutes\": 1440,\n \"mode\": \"AUTO\",\n \"targetCoolSetpoint\": 74,\n \"targetHeatSetpoint\": 68,\n \"maxTemp\": 75,\n \"minTemp\": 65,\n \"daysOfWeek\": [\n 1,\n 2,\n 3,\n 4,\n 5\n ],\n \"scheduleType\": \"RECURRING\"\n }\n ]\n}"
response = http.request(request)
puts response.read_bodyAuthorizations
WattShift API key
Headers
WattShift API Key
Path Parameters
Body
application/json
The human-readable name for the schedule
0 or more blocks for this schedule to follow. If no blocks are added, the default temp will be followed
Show child attributes
Show child attributes
Whether this schedule should be enabled
The default mode for the HVAC unit.
Available options:
OFF, HEAT, COOL, AUTO The units for temperature.
Available options:
F, C The default temperature for the hvac unit. This must be set unless the default mode is OFF or there are schedule blocks added
Required range:
-50 < x < 200The default temperature for the hvac unit. This must be set unless the default mode is OFF or there are schedule blocks added
Required range:
-50 < x < 200Required range:
-50 < x < 200Required range:
-50 < x < 200Required range:
-50 < x < 200The max default temperature
Required range:
-50 < x < 200The min default temperature
Required range:
-50 < x < 200The week numbers to apply this schedule. For example, [0,1,2,...,51] applies to all 52 weeks of the year. Leave empty to also apply to all weeks.
Required range:
0 < x < 52Response
201 - undefined
⌘I
