API Reference¶
delete_invitation(token)
¶
Delete an invitation.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
token |
str
|
The token of the invitation to delete. |
required |
Returns:
Type | Description |
---|---|
None
|
None. |
end_manual_control(zone)
¶
get_air_comfort()
¶
Get all zones of your home.
Returns:
Name | Type | Description |
---|---|---|
freshness |
dict
|
A dictionary with the freshness of your home. |
comfort |
list
|
A list of dictionaries with the comfort of each zone. |
Result example
{
"freshness":{
"value":"FAIR",
"lastOpenWindow":"2020-09-04T10:38:57Z"
},
"comfort":[
{
"roomId":1,
"temperatureLevel":"COMFY",
"humidityLevel":"COMFY",
"coordinate":{
"radial":0.36,
"angular":323
}
},
{
"roomId":4,
"temperatureLevel":"COMFY",
"humidityLevel":"COMFY",
"coordinate":{
"radial":0.43,
"angular":324
}
}
]
}
get_air_comfort_geoloc(latitude, longitude)
¶
Get all zones of your home.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
latitude |
float
|
The latitude of the home. |
required |
longitude |
float
|
The longitude of the home. |
required |
Returns:
Type | Description |
---|---|
dict
|
A dict of lists of dictionaries with all your rooms. |
Result example
{
"roomMessages":[
{
"roomId":4,
"message":"Bravo ! L’air de cette pièce est proche de la perfection.",
"visual":"success",
"link":null
},
{
"roomId":1,
"message":"Continuez à faire ce que vous faites ! L'air de cette pièce est parfait.",
"visual":"success",
"link":null
}
],
"outdoorQuality":{
"aqi":{
"value":81,
"level":"EXCELLENT"
},
"pollens":{
"dominant":{
"level":"LOW"
},
"types":[
{
"localizedName":"Graminées",
"type":"GRASS",
"localizedDescription":"Poaceae",
"forecast":[
{
"localizedDay":"Auj.",
"date":"2020-09-06",
"level":"NONE"
},
{
"localizedDay":"Lun",
"date":"2020-09-07",
"level":"NONE"
},
{
"localizedDay":"Mar",
"date":"2020-09-08",
"level":"NONE"
}
]
},
{
"localizedName":"Herbacées",
"type":"WEED",
"localizedDescription":"Armoise, Ambroisie, Pariétaire",
"forecast":[
{
"localizedDay":"Auj.",
"date":"2020-09-06",
"level":"NONE"
},
{
"localizedDay":"Lun",
"date":"2020-09-07",
"level":"NONE"
},
{
"localizedDay":"Mar",
"date":"2020-09-08",
"level":"NONE"
}
]
},
{
"localizedName":"Arbres",
"type":"TREE",
"localizedDescription":"Aulne, Frêne, Bouleau, Noisetier, Cyprès, Olivier",
"forecast":[
{
"localizedDay":"Auj.",
"date":"2020-09-06",
"level":"NONE"
},
{
"localizedDay":"Lun",
"date":"2020-09-07",
"level":"NONE"
},
{
"localizedDay":"Mar",
"date":"2020-09-08",
"level":"NONE"
}
]
}
]
},
"pollutants":[
{
"localizedName":"Matière particulaire",
"scientificName":"PM<sub>10</sub>",
"level":"EXCELLENT",
"concentration":{
"value":8.75,
"units":"μg/m<sup>3</sup>"
}
},
{
"localizedName":"Matière particulaire",
"scientificName":"PM<sub>2.5</sub>",
"level":"EXCELLENT",
"concentration":{
"value":5.04,
"units":"μg/m<sup>3</sup>"
}
},
{
"localizedName":"Ozone",
"scientificName":"O<sub>3</sub>",
"level":"EXCELLENT",
"concentration":{
"value":23.86,
"units":"ppb"
}
},
{
"localizedName":"Dioxyde de soufre",
"scientificName":"SO<sub>2</sub>",
"level":"EXCELLENT",
"concentration":{
"value":1.19,
"units":"ppb"
}
},
{
"localizedName":"Monoxyde de carbone",
"scientificName":"CO",
"level":"EXCELLENT",
"concentration":{
"value":266.8,
"units":"ppb"
}
},
{
"localizedName":"Dioxyde d'azote",
"scientificName":"NO<sub>2</sub>",
"level":"EXCELLENT",
"concentration":{
"value":5.76,
"units":"ppb"
}
}
]
}
}
get_away_configuration(zone)
¶
Get the away configuration for a zone
Parameters:
Name | Type | Description | Default |
---|---|---|---|
zone |
int
|
The zone ID. |
required |
Returns:
Name | Type | Description |
---|---|---|
type |
str
|
The type of the away configuration. |
preheatingLevel |
str
|
The preheating level of the away configuration. |
minimumAwayTemperature |
dict
|
The minimum away temperature of the away configuration. |
get_capabilities(zone)
¶
Get the capabilities of a zone.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
zone |
int
|
The zone ID. |
required |
Returns:
Name | Type | Description |
---|---|---|
temperatures |
dict
|
The temperature capabilities of the zone. |
type |
str
|
The temperature type of the zone. |
get_consumption_overview(monthYear, country, ngsw_bypass=True)
¶
Get energy consumption overview of your home by month and year
Parameters:
Name | Type | Description | Default |
---|---|---|---|
monthYear |
str
|
Month and year of the range date. |
required |
country |
str
|
Country code. |
required |
ngsw_bypass |
bool
|
Bypass the ngsw cache. |
True
|
Returns:
Name | Type | Description |
---|---|---|
consumptionInputState |
str
|
Consumption input state |
currency |
str
|
Currency |
customTariff |
bool
|
Custom tariff |
energySavingsReport |
dict
|
Energy savings report |
monthlyAggregation |
dict
|
Monthly aggregation |
tariffInfo |
dict
|
Tariffication information |
unit |
str
|
Measurement unit |
Result example
{
"currency": "EUR",
"tariff": "0.104 €/kWh",
"tariffInfo": {
"currencySign": "€",
"consumptionUnit": "kWh",
"tariffInCents": 10.36,
"customTariff": false
},
"customTariff": false,
"consumptionInputState": "full",
"unit": "m3",
"energySavingsReport": {
"totalSavingsInPercent": 4.7,
"yearMonth": "2023-09"
},
"monthlyAggregation": {
"endOfMonthForecast": {
"startDate": "2023-10-13",
"endDate": "2023-10-31",
"totalConsumption": 3.82,
"totalCostInCents": 417.52,
"consumptionPerDate": [
{
"date": "2023-10-14",
"consumption": 0.2122222222222222,
"costInCents": 23.2
},
[...] // 17 more days
{
"date": "2023-10-31",
"consumption": 0.2122222222222222,
"costInCents": 23.2
}
]
},
"requestedMonth": {
"startDate": "2023-10-01",
"endDate": "2023-10-13",
"totalConsumption": 1.5,
"totalCostInCents": 163.95,
"consumptionPerDate": [
{
"date": "2023-10-01",
"consumption": 0,
"costInCents": 0
},
[...] // 12 more days
{
"date": "2023-10-13",
"consumption": 0,
"costInCents": 0
}
]
},
"monthBefore": {
"startDate": "2023-09-01",
"endDate": "2023-09-30",
"totalConsumption": 1.2799999999999998,
"totalCostInCents": 139.9,
"consumptionPerDate": [
{
"date": "2023-09-01",
"consumption": 0,
"costInCents": 0
},
[...] // 29 more days
{
"date": "2023-09-30",
"consumption": 0.36,
"costInCents": 39.35
}
]
},
"yearBefore": {
"startDate": "2022-10-01",
"endDate": "2022-10-31",
"totalConsumption": 22.569999999999997,
"totalCostInCents": 2466.86,
"consumptionPerDate": [
{
"date": "2022-10-01",
"consumption": 0.67,
"costInCents": 73.23
},
[...] // 30 more days
{
"date": "2022-10-31",
"consumption": 0.65,
"costInCents": 71.04
}
]
}
}
}
get_default_overlay(zone)
¶
get_device_usage()
¶
Get all devices of your home with how they are used.
Returns:
Name | Type | Description |
---|---|---|
entries |
list
|
All devices of home as list of dictionaries. |
Result example
{
"entries": [
{
"type": "RU01",
"device": {
"deviceType": "RU01",
"serialNo": "RU3174041856",
"shortSerialNo": "RU3174041856",
"currentFwVersion": "54.20",
"connectionState": {
"value": true,
"timestamp": "2024-01-01T23:57:43.265Z"
},
"characteristics": {
"capabilities": [
"INSIDE_TEMPERATURE_MEASUREMENT",
"IDENTIFY"
]
},
"batteryState": "NORMAL"
},
"zone": {
"discriminator": 1,
"duties": [
"UI"
]
}
},
{
"type": "VA01",
"device": {
"deviceType": "VA01",
"serialNo": "VA4291823104",
"shortSerialNo": "VA4291823104",
"currentFwVersion": "54.20",
"connectionState": {
"value": true,
"timestamp": "2024-01-02T00:08:51.296Z"
},
"characteristics": {
"capabilities": [
"INSIDE_TEMPERATURE_MEASUREMENT",
"IDENTIFY"
]
},
"mountingState": {
"value": "CALIBRATED",
"timestamp": "2023-10-18T08:32:04.640Z"
},
"mountingStateWithError": "CALIBRATED",
"batteryState": "NORMAL",
"childLockEnabled": false
},
"zone": {
"discriminator": 11
}
},
{
"type": "BU01",
"device": {
"deviceType": "BU01",
"serialNo": "BU4274718464",
"shortSerialNo": "BU4274718464",
"currentFwVersion": "81.1",
"connectionState": {
"value": true,
"timestamp": "2024-01-02T00:00:02.365Z"
},
"characteristics": {
"capabilities": []
},
"isDriverConfigured": true
}
},
{
"type": "GW03",
"device": {
"deviceType": "GW03",
"serialNo": "GW2754808064",
"shortSerialNo": "GW2754808064",
"currentFwVersion": "47.2",
"connectionState": {
"value": true,
"timestamp": "2024-01-01T23:55:19.317Z"
},
"characteristics": {
"capabilities": [
"RADIO_ENCRYPTION_KEY_ACCESS"
]
},
"inPairingMode": false
}
}
]
}
get_devices()
¶
Get all devices of your home.
Returns:
Type | Description |
---|---|
list
|
All devices of the home as a list of dictionaries. |
Result example
[
{
"characteristics": {
"capabilities": []
},
"connectionState": {
"timestamp": "2017-02-20T18:51:47.362Z",
"value": True
},
"currentFwVersion": "25.15",
"deviceType": "GW03",
"gatewayOperation": "NORMAL",
"serialNo": "SOME_SERIAL",
"shortSerialNo": "SOME_SERIAL"
},
{
"characteristics": {
"capabilities": ["INSIDE_TEMPERATURE_MEASUREMENT", "IDENTIFY"]
},
"connectionState": {
"timestamp": "2017-01-22T16:03:00.773Z",
"value": False
},
"currentFwVersion": "36.15",
"deviceType": "VA01",
"mountingState": {
"timestamp": "2017-01-22T15:12:45.360Z",
"value": "UNMOUNTED"
},
"serialNo": "SOME_SERIAL",
"shortSerialNo": "SOME_SERIAL"
},
{
"characteristics": {
"capabilities": ["INSIDE_TEMPERATURE_MEASUREMENT", "IDENTIFY"]
},
"connectionState": {
"timestamp": "2017-02-20T18:33:49.092Z",
"value": True
},
"currentFwVersion": "36.15",
"deviceType": "VA01",
"mountingState": {
"timestamp": "2017-02-12T13:34:35.288Z",
"value": "CALIBRATED"},
"serialNo": "SOME_SERIAL",
"shortSerialNo": "SOME_SERIAL"
},
{
"characteristics": {
"capabilities": ["INSIDE_TEMPERATURE_MEASUREMENT", "IDENTIFY"]
},
"connectionState": {
"timestamp": "2017-02-20T18:51:28.779Z",
"value": True
},
"currentFwVersion": "36.15",
"deviceType": "VA01",
"mountingState": {
"timestamp": "2017-01-12T13:22:11.618Z",
"value": "CALIBRATED"
},
"serialNo": "SOME_SERIAL",
"shortSerialNo": "SOME_SERIAL"
}
]
get_early_start(zone)
¶
get_energy_consumption(startDate, endDate, country, ngsw_bypass=True)
¶
Get enery consumption of your home by range date
Parameters:
Name | Type | Description | Default |
---|---|---|---|
startDate |
str
|
Start date of the range date. |
required |
endDate |
str
|
End date of the range date. |
required |
country |
str
|
Country code. |
required |
ngsw_bypass |
bool
|
Bypass the ngsw cache. |
True
|
Returns:
Type | Description |
---|---|
list
|
A dict of your energy consumption. |
Result example
{
"tariff": "0.104 €/kWh",
"unit": "m3",
"consumptionInputState": "full",
"customTariff": false,
"currency": "EUR",
"tariffInfo":{
"consumptionUnit": "kWh",
"customTariff": false,
"tariffInCents": 10.36,
"currencySign": "€",
"details":{
"totalCostInCents": 1762.98,
"totalConsumption": 16.13,
"perDay": [
{
"date": "2022-09-01",
"consumption": 0,
"costInCents": 0
},{
"date": "2022-09-02",
"consumption": 0,
"costInCents": 0
},{
"date": "2022-09-03",
"consumption": 0.04,
"costInCents": 0.4144
}
]
}
}
get_energy_insights(start_date, end_date, country, ngsw_bypass=True)
¶
Get energy insights of your home
Parameters:
Name | Type | Description | Default |
---|---|---|---|
start_date |
str
|
Start date of the range date. |
required |
end_date |
str
|
End date of the range date. |
required |
country |
str
|
Country code. |
required |
ngsw_bypass |
bool
|
Bypass the ngsw cache. |
True
|
Returns:
Name | Type | Description |
---|---|---|
consumptionComparison |
dict
|
Consumption comparison |
costForecast |
dict
|
Cost forecast |
weatherComparison |
dict
|
Weather comparison |
heatingTimeComparison |
dict
|
Heating time comparison |
awayTimeComparison |
dict
|
Away time comparison |
heatingHotwaterComparison |
dict
|
Heating hotwater comparison |
Result example
{
"consumptionComparison": {
"currentMonth": {
"consumed": {
"energy": [
{
"toEndOfRange": 1.5,
"unit": "m3",
"perZone": [
{
"zone": 1,
"toEndOfRange": 0.6025913295286759
}
]
},
{
"toEndOfRange": 15.83,
"unit": "kWh",
"perZone": [
{
"zone": 1,
"toEndOfRange": 6.36
}
]
}
]
},
"dateRange": {
"start": "2023-10-01",
"end": "2023-10-13"
}
},
"comparedTo": {
"consumed": {
"energy": [
{
"toEndOfRange": 16.9,
"unit": "m3",
"perZone": [
{
"zone": 1,
"toEndOfRange": 6.098444101091741
}
]
},
{
"toEndOfRange": 178.3,
"unit": "kWh",
"perZone": [
{
"zone": 1,
"toEndOfRange": 64.34
}
]
}
]
},
"dateRange": {
"start": "2022-10-01",
"end": "2022-10-13"
}
}
},
"costForecast": {
"costEndOfMonthInCents": 417.5
},
"weatherComparison": {
"currentMonth": {
"averageTemperature": 17.2,
"dateRange": {
"start": "2023-10-01",
"end": "2023-10-13"
}
},
"comparedTo": {
"averageTemperature": 12.7,
"dateRange": {
"start": "2022-10-01",
"end": "2022-10-13"
}
}
},
"heatingTimeComparison": {
"currentMonth": {
"heatingTimeHours": 13,
"dateRange": {
"start": "2023-10-01",
"end": "2023-10-14"
}
},
"comparedTo": {
"heatingTimeHours": 155,
"dateRange": {
"start": "2022-10-01",
"end": "2022-10-14"
}
}
},
"awayTimeComparison": {
"currentMonth": {
"awayTimeInHours": 39,
"dateRange": {
"start": "2023-10-01",
"end": "2023-10-13"
}
},
"comparedTo": {
"awayTimeInHours": 74,
"dateRange": {
"start": "2022-10-01",
"end": "2022-10-13"
}
}
},
"heatingHotwaterComparison": null
}
get_energy_savings(monthYear, country, ngsw_bypass=True)
¶
Get energy savings of your home by month and year
Parameters:
Name | Type | Description | Default |
---|---|---|---|
monthYear |
str
|
Month and year of the range date. |
required |
country |
str
|
Country code. |
required |
ngsw_bypass |
bool
|
Bypass the ngsw cache. |
True
|
Returns:
Type | Description |
---|---|
list
|
A dict of your energy savings. |
Result example
{
"coveredInterval":{
"start":"2022-08-31T23:48:02.675000Z",
"end":"2022-09-29T13:10:23.035000Z"
},
"totalSavingsAvailable":true,
"withAutoAssist":{
"detectedAwayDuration":{
"value":56,
"unit":"HOURS"
},
"openWindowDetectionTimes":9
},
"totalSavingsInThermostaticMode":{
"value":0,
"unit":"HOURS"
},
"manualControlSaving":{
"value":0,
"unit":"PERCENTAGE"
},
"totalSavings":{
"value":6.5,
"unit":"PERCENTAGE"
},
"hideSunshineDuration":false,
"awayDuration":{
"value":56,
"unit":"HOURS"
},
"showSavingsInThermostaticMode":false,
"communityNews":{
"type":"HOME_COMFORT_STATES",
"states":[
{
"name":"humid",
"value":47.3,
"unit":"PERCENTAGE"
},
{
"name":"ideal",
"value":43.1,
"unit":"PERCENTAGE"
},
{
"name":"cold",
"value":9.5,
"unit":"PERCENTAGE"
},
{
"name":"warm",
"value":0.1,
"unit":"PERCENTAGE"
},
{
"name":"dry",
"value":0,
"unit":"PERCENTAGE"
}
]
},
"sunshineDuration":{
"value":112,
"unit":"HOURS"
},
"hasAutoAssist":true,
"openWindowDetectionTimes":5,
"setbackScheduleDurationPerDay":{
"value":9.100000381469727,
"unit":"HOURS"
},
"totalSavingsInThermostaticModeAvailable":false,
"yearMonth":"2022-09",
"hideOpenWindowDetection":false,
"home":123456,
"hideCommunityNews":false
}
get_enery_settings(ngsw_bypass=True)
¶
Get energy settings of your home
Parameters:
Name | Type | Description | Default |
---|---|---|---|
ngsw_bypass |
bool
|
Bypass the ngsw cache. |
True
|
Returns:
Name | Type | Description |
---|---|---|
homeId |
int
|
Home ID |
dataSource |
str
|
Data source |
consumptionUnit |
str
|
Consumption unit |
preferredEnergyUnit |
str
|
Preferred energy unit |
showReadingsBanner |
bool
|
Show readings banner |
get_heating_circuits()
¶
get_heating_system()
¶
get_home()
¶
Get information about the home.
Returns:
Name | Type | Description |
---|---|---|
id |
int
|
The ID of your home. |
address |
dict
|
The address of your home. |
contactDetails |
dict
|
The contact details of your home. |
dateTimeZone |
str
|
The timezone of your home. |
geolocation |
dict
|
The geolocation of your home. |
installationCompleted |
bool
|
Whether the installation is completed or not. |
name |
str
|
The name of your home. |
partner |
dict
|
The partner of your home. |
simpleSmartScheduleEnabled |
bool
|
Whether simple smart schedule is enabled or not. |
temperatureUnit |
str
|
The temperature unit of your home. |
Result example
{
"address": {
"addressLine1": "SOME_STREET",
"addressLine2": None,
"city": "SOME_CITY",
"country": "SOME_COUNTRY",
"state": None,
"zipCode": "SOME_ZIP_CODE"
},
"contactDetails": {
"email": "SOME_EMAIL",
"name": "SOME_NAME",
"phone": "SOME_PHONE"
},
"dateTimeZone": "Europe/Berlin",
"geolocation": {
"latitude": SOME_LAT,
"longitude": SOME_LONG
},
"id": SOME_ID,
"installationCompleted": True,
"name": "SOME_NAME",
"partner": None,
"simpleSmartScheduleEnabled": True,
"temperatureUnit": "CELSIUS"
}
get_home_state()
¶
get_incidents()
¶
get_installations()
¶
get_invitations()
¶
Get active invitations.
Returns:
Type | Description |
---|---|
list
|
A list of active invitations to your home. |
Result example
[
{
"email": "SOME_INVITED_EMAIL",
"firstSent": "2017-02-20T21:01:44.450Z",
"home": {
"address": {
"addressLine1": "SOME_STREET",
"addressLine2": None,
"city": "SOME_CITY",
"country": "SOME_COUNTRY",
"state": None,
"zipCode": "SOME_ZIP_CODE"
},
"contactDetails": {
"email": "SOME_EMAIL",
"name": "SOME_NAME",
"phone": "SOME_PHONE"
},
"dateTimeZone": "Europe/Berlin",
"geolocation": {
"latitude": SOME_LAT,
"longitude": SOME_LONG
},
"id": SOME_ID,
"installationCompleted": True,
"name": "SOME_NAME",
"partner": None,
"simpleSmartScheduleEnabled": True,
"temperatureUnit": "CELSIUS"
},
"inviter": {
"email": "SOME_INVITER_EMAIL",
"enabled": True,
"homeId": SOME_ID,
"locale": "SOME_LOCALE",
"name": "SOME_NAME",
"type": "WEB_USER",
"username": "SOME_USERNAME"
},
"lastSent": "2017-02-20T21:01:44.450Z",
"token": "SOME_TOKEN"
}
]
get_me()
¶
Get information about the current user.
Returns:
Type | Description |
---|---|
dict
|
A dictionary with information about the current user. |
get_measuring_device(zone)
¶
Gets the active measuring device of a zone
Parameters:
Name | Type | Description | Default |
---|---|---|---|
zone |
int
|
The zone ID. |
required |
Returns:
Type | Description |
---|---|
dict
|
A dictionary with the current measuring informations. |
get_mobile_devices()
¶
Get all mobile devices.
Returns:
Type | Description |
---|---|
list
|
List of dictionaries with information about the mobile devices. |
Result example
[
{
"name": "Germain",
"id": 1234567,
"settings": {
"geoTrackingEnabled": true,
"specialOffersEnabled": true,
"onDemandLogRetrievalEnabled": true,
"pushNotifications": {
"lowBatteryReminder": true,
"awayModeReminder": true,
"homeModeReminder": true,
"openWindowReminder": true,
"energySavingsReportReminder": true,
"incidentDetection": true,
"energyIqReminder": false
}
},
"location": {
"stale": false,
"atHome": true,
"bearingFromHome": {
"degrees": 123.45611789012345,
"radians": 1.2345678901234567
},
"relativeDistanceFromHomeFence": 0.0
},
"deviceMetadata": {
"platform": "iOS",
"osVersion": "17.1.2",
"model": "iPhone11,2",
"locale": "fr"
}
}
]
get_report(zone, date)
¶
Get the report for a zone on a specific date.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
zone |
int
|
The zone ID. |
required |
date |
str
|
The date in ISO8601 format. e.g. "2019-02-14". |
required |
Returns:
Type | Description |
---|---|
dict
|
The daily report. |
Result example
{
"zoneType": "HEATING",
"interval": {
"from": "2023-12-11T22:45:00.000Z",
"to": "2023-12-12T23:15:00.000Z"
},
"hoursInDay": 24,
"measuredData": {
"measuringDeviceConnected": {
"timeSeriesType": "dataIntervals",
"valueType": "boolean",
"dataIntervals": [
{
"from": "2023-12-11T22:45:00.000Z",
"to": "2023-12-12T23:15:00.000Z",
"value": true
}
]
},
"insideTemperature": {
"timeSeriesType": "dataPoints",
"valueType": "temperature",
"min": {
"celsius": 18.12,
"fahrenheit": 64.62
},
"max": {
"celsius": 19.67,
"fahrenheit": 67.41
},
"dataPoints": [
{
"timestamp": "2023-12-11T22:45:00.000Z",
"value": {
"celsius": 19.59,
"fahrenheit": 67.26
}
},
[...]
]
},
"humidity": {
"timeSeriesType": "dataPoints",
"valueType": "percentage",
"percentageUnit": "UNIT_INTERVAL",
"min": 0.549,
"max": 0.605,
"dataPoints": [
{
"timestamp": "2023-12-11T22:45:00.000Z",
"value": 0.567
},
[...]
]
}
},
"stripes": {
"timeSeriesType": "dataIntervals",
"valueType": "stripes",
"dataIntervals": [
{
"from": "2023-12-12T05:00:00.000Z",
"to": "2023-12-12T07:43:23.594Z",
"value": {
"stripeType": "HOME",
"setting": {
"type": "HEATING",
"power": "ON",
"temperature": {
"celsius": 19.0,
"fahrenheit": 66.2
}
}
}
},
[...]
]
},
"settings": {
"timeSeriesType": "dataIntervals",
"valueType": "heatingSetting",
"dataIntervals": [
{
"from": "2023-12-11T22:45:00.000Z",
"to": "2023-12-11T23:00:00.000Z",
"value": {
"type": "HEATING",
"power": "ON",
"temperature": {
"celsius": 18.0,
"fahrenheit": 64.4
}
}
},
[...]
]
},
"callForHeat": {
"timeSeriesType": "dataIntervals",
"valueType": "callForHeat",
"dataIntervals": [
{
"from": "2023-12-11T22:45:00.000Z",
"to": "2023-12-12T13:59:08.402Z",
"value": "NONE"
},
[...]
]
},
"weather": {
"condition": {
"timeSeriesType": "dataIntervals",
"valueType": "weatherCondition",
"dataIntervals": [
{
"from": "2023-12-11T22:45:00.000Z",
"to": "2023-12-11T22:45:42.875Z",
"value": {
"state": "NIGHT_CLOUDY",
"temperature": {
"celsius": 8.79,
"fahrenheit": 47.82
}
}
},
[...]
]
},
"sunny": {
"timeSeriesType": "dataIntervals",
"valueType": "boolean",
"dataIntervals": [
{
"from": "2023-12-11T22:45:00.000Z",
"to": "2023-12-12T23:15:00.000Z",
"value": false
}
]
},
"slots": {
"timeSeriesType": "slots",
"valueType": "weatherCondition",
"slots": {
"04:00": {
"state": "NIGHT_CLOUDY",
"temperature": {
"celsius": 8.12,
"fahrenheit": 46.62
}
},
[...]
}
}
}
}
get_running_times(from_date)
¶
Get all running times of your home.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
from_date |
str
|
The date in ISO8601 format. e.g. "2019-02-14". |
required |
Returns:
Type | Description |
---|---|
list
|
A dict of your running times. |
Result example
{
"runningTimes":[
{
"runningTimeInSeconds":0,
"startTime":"2022-08-18 00:00:00",
"endTime":"2022-08-19 00:00:00",
"zones":[
{
"id":1,
"runningTimeInSeconds":0
},
{
"id":6,
"runningTimeInSeconds":0
},
{
"id":11,
"runningTimeInSeconds":0
},
{
"id":12,
"runningTimeInSeconds":0
}
]
}
],
"summary":{
"startTime":"2022-08-18 00:00:00",
"endTime":"2022-08-19 00:00:00",
"totalRunningTimeInSeconds":0
},
"lastUpdated":"2022-08-18T05:07:44Z"
}
get_schedule(zone)
¶
Get the type of the currently configured schedule of a zone.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
zone |
int
|
The zone ID. |
required |
Returns:
Type | Description |
---|---|
dict
|
A dictionary with the ID and type of the schedule of the zone. |
Tado allows three different types of a schedule for a zone:
- The same schedule for all seven days of a week.
- One schedule for weekdays, one for saturday and one for sunday.
- Seven different schedules - one for every day of the week.
get_schedule_block_by_day_type(zone, schedule, day_type)
¶
Gets the blocks for the current schedule on a zone
Parameters:
Name | Type | Description | Default |
---|---|---|---|
zone |
int
|
The zone ID. |
required |
schedule |
int
|
The schedule ID to fetch. |
required |
day_type |
str
|
The day_type to fetch. e.g. MONDAY_TO_FRIDAY, "MONDAY", "TUESDAY" etc |
required |
Returns:
Type | Description |
---|---|
list
|
The blocks for the requested day type schedule. |
get_schedule_blocks(zone, schedule)
¶
Gets the blocks for the current schedule on a zone
Parameters:
Name | Type | Description | Default |
---|---|---|---|
zone |
int
|
The zone ID. |
required |
schedule |
int
|
The schedule ID to fetch. |
required |
Returns:
Type | Description |
---|---|
list
|
The blocks for the requested schedule. |
Result example
[
{
"dayType": "MONDAY_TO_FRIDAY",
"start": "00:00",
"end": "06:30",
"geolocationOverride": false,
"setting": {
"type": "HEATING",
"power": "ON",
"temperature": {
"celsius": 21.2,
"fahrenheit": 70.16
}
}
},
{
"dayType": "MONDAY_TO_FRIDAY",
"start": "06:30",
"end": "00:00",
"geolocationOverride": false,
"setting": {
"type": "HEATING",
"power": "ON",
"temperature": {
"celsius": 21.0,
"fahrenheit": 69.8
}
}
},
{
"dayType": "SATURDAY",
"start": "00:00",
"end": "08:00",
"geolocationOverride": false,
"setting": {
"type": "HEATING",
"power": "ON",
"temperature": {
"celsius": 21.0,
"fahrenheit": 69.8
}
}
},
[...]
{
"dayType": "SUNDAY",
"start": "08:00",
"end": "00:00",
"geolocationOverride": false,
"setting": {
"type": "HEATING",
"power": "ON",
"temperature": {
"celsius": 21.0,
"fahrenheit": 69.8
}
}
}
]
get_schedule_timetables(zone)
¶
get_state(zone)
¶
Get the current state of a zone including its desired and current temperature. Check out the example output for more.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
zone |
int
|
The zone ID. |
required |
Returns:
Type | Description |
---|---|
dict
|
A dictionary with the current settings and sensor measurements of the zone. |
Result example
{
"activityDataPoints": {
"heatingPower": {
"percentage": 0.0,
"timestamp": "2017-02-21T11:56:52.204Z",
"type": "PERCENTAGE"
}
},
"geolocationOverride": False,
"geolocationOverrideDisableTime": None,
"link": {
"state": "ONLINE"
},
"overlay": None,
"overlayType": None,
"preparation": None,
"sensorDataPoints": {
"humidity": {
"percentage": 44.0,
"timestamp": "2017-02-21T11:56:45.369Z",
"type": "PERCENTAGE"
},
"insideTemperature": {
"celsius": 18.11,
"fahrenheit": 64.6,
"precision": {
"celsius": 1.0,
"fahrenheit": 1.0
},
"timestamp": "2017-02-21T11:56:45.369Z",
"type": "TEMPERATURE"
}
},
"setting": {
"power": "ON",
"temperature": {
"celsius": 20.0,
"fahrenheit": 68.0
},
"type": "HEATING"
},
"tadoMode": "HOME"
}
get_temperature_offset(device_serial)
¶
get_users()
¶
Get all users of your home.
Returns:
Type | Description |
---|---|
list
|
A list of dictionaries with all your users. |
Result example
[
{
"name": "Germain",
"email": "an_email@adress.com",
"username": "an_email@adress.com",
"id": "5c1234b1d0123456789dba1a",
"homes": [
{
"id": 1234567,
"name": "Domicile"
}
],
"locale": "fr",
"mobileDevices": [
{
"name": "Germain",
"id": 1234567,
"settings": {
"geoTrackingEnabled": true,
"specialOffersEnabled": true,
"onDemandLogRetrievalEnabled": true,
"pushNotifications": {
"lowBatteryReminder": true,
"awayModeReminder": true,
"homeModeReminder": true,
"openWindowReminder": true,
"energySavingsReportReminder": true,
"incidentDetection": true,
"energyIqReminder": false
}
},
"location": {
"stale": false,
"atHome": true,
"bearingFromHome": {
"degrees": 0.0,
"radians": 0.0
},
"relativeDistanceFromHomeFence": 0.0
},
"deviceMetadata": {
"platform": "iOS",
"osVersion": "17.1.2",
"model": "iPhone11,2",
"locale": "fr"
}
}
]
}
]
get_weather()
¶
Get the current weather of the location of your home.
Returns:
Type | Description |
---|---|
dict
|
A dictionary with weather information for your home. |
Result example
{
"outsideTemperature": {
"celsius": 8.49,
"fahrenheit": 47.28,
"precision": {
"celsius": 0.01,
"fahrenheit": 0.01
},
"timestamp": "2017-02-21T12:06:11.296Z",
"type": "TEMPERATURE"
},
"solarIntensity": {
"percentage": 58.4,
"timestamp": "2017-02-21T12:06:11.296Z",
"type": "PERCENTAGE"
},
"weatherState": {
"timestamp": "2017-02-21T12:06:11.296Z",
"type": "WEATHER_STATE",
"value": "CLOUDY_PARTLY"
}
}
get_zone_states()
¶
Get all zone states of your home.
Returns:
Type | Description |
---|---|
list
|
A dict of your zone states. |
Result example
{
"zoneStates":{
"1":{
"tadoMode":"HOME",
"geolocationOverride":false,
"geolocationOverrideDisableTime":"None",
"preparation":"None",
"setting":{
"type":"HEATING",
"power":"ON",
"temperature":{
"celsius":19.0,
"fahrenheit":66.2
}
},
"overlayType":"None",
"overlay":"None",
"openWindow":"None",
"nextScheduleChange":{
"start":"2022-08-18T16:00:00Z",
"setting":{
"type":"HEATING",
"power":"ON",
"temperature":{
"celsius":20.0,
"fahrenheit":68.0
}
}
},
"nextTimeBlock":{
"start":"2022-08-18T16:00:00.000Z"
},
"link":{
"state":"ONLINE"
},
"activityDataPoints":{
"heatingPower":{
"type":"PERCENTAGE",
"percentage":0.0,
"timestamp":"2022-08-18T05:34:32.127Z"
}
},
"sensorDataPoints":{
"insideTemperature":{
"celsius":24.13,
"fahrenheit":75.43,
"timestamp":"2022-08-18T05:36:21.241Z",
"type":"TEMPERATURE",
"precision":{
"celsius":0.1,
"fahrenheit":0.1
}
},
"humidity":{
"type":"PERCENTAGE",
"percentage":62.2,
"timestamp":"2022-08-18T05:36:21.241Z"
}
}
},
"6":{
"tadoMode":"HOME",
"geolocationOverride":false,
"geolocationOverrideDisableTime":"None",
"preparation":"None",
"setting":{
"type":"HEATING",
"power":"ON",
"temperature":{
"celsius":19.5,
"fahrenheit":67.1
}
},
"overlayType":"None",
"overlay":"None",
"openWindow":"None",
"nextScheduleChange":{
"start":"2022-08-18T07:00:00Z",
"setting":{
"type":"HEATING",
"power":"ON",
"temperature":{
"celsius":18.0,
"fahrenheit":64.4
}
}
},
"nextTimeBlock":{
"start":"2022-08-18T07:00:00.000Z"
},
"link":{
"state":"ONLINE"
},
"activityDataPoints":{
"heatingPower":{
"type":"PERCENTAGE",
"percentage":0.0,
"timestamp":"2022-08-18T05:47:58.505Z"
}
},
"sensorDataPoints":{
"insideTemperature":{
"celsius":24.2,
"fahrenheit":75.56,
"timestamp":"2022-08-18T05:46:09.620Z",
"type":"TEMPERATURE",
"precision":{
"celsius":0.1,
"fahrenheit":0.1
}
},
"humidity":{
"type":"PERCENTAGE",
"percentage":64.8,
"timestamp":"2022-08-18T05:46:09.620Z"
}
}
}
}
}
get_zones()
¶
Get all zones of your home.
Returns:
Type | Description |
---|---|
list
|
A list of dictionaries with all your zones. |
Result example
[
{
"dateCreated": "2016-12-23T15:53:43.615Z",
"dazzleEnabled": True,
"deviceTypes": ["VA01"],
"devices": [
{
"characteristics": {
"capabilities": ["INSIDE_TEMPERATURE_MEASUREMENT", "IDENTIFY"]
},
"connectionState": {
"timestamp": "2017-02-21T14:22:45.913Z",
"value": True
},
"currentFwVersion": "36.15",
"deviceType": "VA01",
"duties": ["ZONE_UI", "ZONE_DRIVER", "ZONE_LEADER"],
"mountingState": {
"timestamp": "2017-02-12T13:34:35.288Z",
"value": "CALIBRATED"
},
"serialNo": "SOME_SERIAL",
"shortSerialNo": "SOME_SERIAL"
}
],
"id": 1,
"name": "SOME_NAME",
"reportAvailable": False,
"supportsDazzle": True,
"type": "HEATING"
},
{
"dateCreated": "2016-12-23T16:16:11.390Z",
"dazzleEnabled": True,
"deviceTypes": ["VA01"],
"devices": [
{
"characteristics": {
"capabilities": ["INSIDE_TEMPERATURE_MEASUREMENT", "IDENTIFY"]
},
"connectionState": {
"timestamp": "2017-02-21T14:19:40.215Z",
"value": True
},
"currentFwVersion": "36.15",
"deviceType": "VA01",
"duties": ["ZONE_UI", "ZONE_DRIVER", "ZONE_LEADER"],
"mountingState": {
"timestamp": "2017-01-12T13:22:11.618Z",
"value": "CALIBRATED"
},
"serialNo": "SOME_SERIAL",
"shortSerialNo": "SOME_SERIAL"
}
],
"id": 3,
"name": "SOME_NAME ",
"reportAvailable": False,
"supportsDazzle": True,
"type": "HEATING"
}
]
refresh_auth()
¶
Refresh the access token.
Returns:
Type | Description |
---|---|
dict
|
A dictionary with the new access token and its expiry time. |
set_away_configuration(zone, equipment_type, preheating_level, minimumAwayTemperatureCelcius)
¶
Set the away configuration for a zone
Parameters:
Name | Type | Description | Default |
---|---|---|---|
zone |
int
|
The zone ID. |
required |
equipment_type |
str
|
The change type. e.g. HEATING, HOT_WATER |
required |
preheating_level |
str
|
The preheating level. e.g. OFF, ECO, MEDIUM, CONFORT |
required |
minimumAwayTemperatureCelcius |
float
|
The minimum temperature in celsius. |
required |
set_cost_simulation(country, ngsw_bypass=True, payload=None)
¶
Trigger Cost Simulation of your home
Parameters:
Name | Type | Description | Default |
---|---|---|---|
country |
str
|
Country code. |
required |
ngsw_bypass |
bool
|
Bypass the ngsw cache. |
True
|
payload |
dict
|
Payload for the request. |
None
|
Payload
Name | Type | Description |
---|---|---|
payload |
dict
|
Payload for the request. |
Payload example
Returns:
Name | Type | Description |
---|---|---|
consumptionUnit |
str
|
Consumption unit |
estimationPerZone |
list
|
List of cost estimation per zone |
Result example
{
"consumptionUnit": "m3",
"estimationPerZone": [
{
"zone": 1,
"consumption": -1.6066000000000038,
"costInCents": -176
},
{
"zone": 6,
"consumption": -1.1184999999999974,
"costInCents": -122
},
{
"zone": 11,
"consumption": -1.412700000000008,
"costInCents": -154
},
{
"zone": 12,
"consumption": -1.6030000000000015,
"costInCents": -175
}
]
}
set_early_start(zone, enabled)
¶
Enable or disable the early start feature of a zone.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
zone |
int
|
The zone ID. |
required |
enabled |
bool
|
Enable (True) or disable (False) the early start feature of the zone. |
required |
Returns:
Type | Description |
---|---|
boolean
|
Whether the early start feature is enabled or not. |
set_heating_system_boiler(payload)
¶
Set heating system boiler status
Parameters:
Name | Type | Description | Default |
---|---|---|---|
payload |
dict
|
The payload to send to the API. |
required |
Payload
Name | Type | Description |
---|---|---|
payload |
dict
|
Payload for the request. |
Returns:
Type | Description |
---|---|
No returned value. |
set_home_state(at_home)
¶
Set at-home/away state
Parameters:
Name | Type | Description | Default |
---|---|---|---|
at_home |
bool
|
True for at HOME, false for AWAY. |
required |
set_incident_detection(enabled)
¶
set_invitation(email)
¶
Send an invitation to a user.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
email |
str
|
The email of the user to invite. |
required |
Returns:
Type | Description |
---|---|
dict
|
The invitation information. |
Result example
{
"token": "44483e1d07qf439&8b786fc0372ec315",
"email": "SOME_EMAIL",
"firstSent": "2024-03-19T12:54:38.591Z",
"lastSent": "2024-03-19T12:54:38.591Z",
"inviter": {
"name": "SOME_NAME",
"email": "SOME_EMAIL",
"username": "SOME_MAIL",
"enabled": true,
"id": "5c22a9b6d5018000088dba4a",
"homeId": 123456,
"locale": "fr",
"type": "WEB_USER"
},
"home": {
"id": 123456,
"name": "Domicile",
"dateTimeZone": "Europe/Paris",
"dateCreated": "2018-12-25T20:58:28.674Z",
"temperatureUnit": "CELSIUS",
"partner": null,
"simpleSmartScheduleEnabled": true,
"awayRadiusInMeters": 1999.68,
"installationCompleted": true,
"incidentDetection": {
"supported": true,
"enabled": true
},
"generation": "PRE_LINE_X",
"zonesCount": 4,
"skills": [
"AUTO_ASSIST"
],
"christmasModeEnabled": true,
"showAutoAssistReminders": true,
"contactDetails": {
"name": "SOME_NAME",
"email": "SOME_EMAIL",
"phone": "SOME_PHONE_NUMBER"
},
"address": {
"addressLine1": "SOME_POSTAL_ADDRESS",
"addressLine2": null,
"zipCode": "SOME_POSTCODE",
"city": "SOME_CITY",
"state": null,
"country": "FRA"
},
"geolocation": {
"latitude": 12.3456789,
"longitude": 1.23456
},
"consentGrantSkippable": true,
"enabledFeatures": [
"CLIMATE_REPORT_AS_WEBVIEW",
"EIQ_SETTINGS_AS_WEBVIEW",
"ENERGY_IQ_V2_ONBOARDING",
"HIDE_BOILER_REPAIR_SERVICE",
"KEEP_WEBAPP_UPDATED",
"OWD_SETTINGS_AS_WEBVIEW",
"SMART_SCHEDULE_AS_WEBVIEW"
],
"isAirComfortEligible": true,
"isBalanceAcEligible": false,
"isEnergyIqEligible": true,
"isHeatSourceInstalled": false,
"isBalanceHpEligible": false
}
}
set_open_window_detection(zone, enabled, seconds)
¶
Get the open window detection for a zone
Parameters:
Name | Type | Description | Default |
---|---|---|---|
zone |
int
|
The zone ID. |
required |
enabled |
bool
|
If open window detection is enabled. |
required |
seconds |
int
|
timeout in seconds. |
required |
set_schedule(zone, schedule)
¶
Set the type of the currently configured schedule of a zone.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
zone |
int
|
The zone ID. |
required |
schedule |
int
|
The schedule to activate. The supported zones are currently * 0: ONE_DAY * 1: THREE_DAY * 2: SEVEN_DAY But the actual mapping should be retrieved via get_schedule_timetables. |
required |
Returns:
Type | Description |
---|---|
dict
|
The new configuration. |
set_schedule_block_by_day_type(zone, schedule, day_type, blocks)
¶
Sets the block for the current schedule on a zone
Parameters:
Name | Type | Description | Default |
---|---|---|---|
zone |
int
|
The zone ID. |
required |
schedule |
int
|
The schedule ID. |
required |
day_type |
str
|
The day_type to fetch. e.g. MONDAY_TO_FRIDAY, "MONDAY", "TUESDAY" etc |
required |
blocks |
list
|
The new blocks. |
required |
Returns:
Type | Description |
---|---|
list
|
The new configuration. |
set_schedule_blocks(zone, schedule, blocks)
¶
Sets the blocks for the current schedule on a zone
Parameters:
Name | Type | Description | Default |
---|---|---|---|
zone |
int
|
The zone ID. |
required |
schedule |
int
|
The schedule ID. |
required |
blocks |
list
|
The new blocks. |
required |
Returns:
Type | Description |
---|---|
list
|
The new configuration. |
set_temperature(zone, temperature, termination='MANUAL')
¶
Set the desired temperature of a zone.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
zone |
int
|
The zone ID. |
required |
temperature |
float
|
The desired temperature in celsius. |
required |
termination |
str / int
|
The termination mode for the zone. |
'MANUAL'
|
Returns:
Type | Description |
---|---|
dict
|
A dictionary with the new zone settings. |
If you set a desired temperature less than 5 celsius it will turn of the zone!
The termination supports three different mode:
MANUAL
: The zone will be set on the desired temperature until you change it manually.AUTO
: The zone will be set on the desired temperature until the next automatic change.INTEGER
: The zone will be set on the desired temperature for INTEGER seconds.
set_temperature_offset(device_serial, offset)
¶
Sets the temperature offset of a device
Parameters:
Name | Type | Description | Default |
---|---|---|---|
device_serial |
str
|
The serial number of the device. |
required |
offset |
float
|
the temperature offset to apply in celsius. |
required |
Returns:
Type | Description |
---|---|
dict
|
A dictionary that returns the offset in 'celsius' and 'fahrenheit'. |
set_zone_name(zone, new_name)
¶
Sets the name of the zone
Parameters:
Name | Type | Description | Default |
---|---|---|---|
zone |
int
|
The zone ID. |
required |
new_name |
str
|
The new name of the zone. |
required |
Returns:
Type | Description |
---|---|
dict
|
A dictionary with the new name of the zone. |