Tutti i modelli di Google Nest Thermostat sono supportati nell'API Smart Device Management (SDM). Questi dispositivi restituiscono il tipo di dispositivo THERMOSTAT:
sdm.devices.types.THERMOSTAT
Tratti
Riferimento
A questo gruppo sono correlati i seguenti trait, comandi o eventi:
Tratto | Descrizione | Comandi |
---|---|---|
Connettività | Questo tratto appartiene a qualsiasi dispositivo con informazioni sulla connettività. | |
Fan | Questa caratteristica appartiene a qualsiasi dispositivo che ha la capacità del sistema di controllare la ventola. | SetTimer |
Umidità | Questa caratteristica appartiene a qualsiasi dispositivo dotato di un sensore per misurare l'umidità. | |
Informazioni | Questo tratto appartiene a qualsiasi dispositivo per le informazioni relative a tale dispositivo. | |
Impostazioni | Questo attributo appartiene a qualsiasi dispositivo per informazioni sulle impostazioni relative al dispositivo. | |
Temperatura | Questa caratteristica appartiene a qualsiasi dispositivo dotato di un sensore per misurare la temperatura. | |
ThermostatEco | Questo attributo appartiene ai tipi di dispositivi THERMOSTAT che supportano le modalità ECO. | SetMode |
ThermostatHvac | Questo attributo appartiene ai tipi di dispositivi THERMOSTAT che possono segnalare i dettagli dell'impianto di climatizzazione. | |
ThermostatMode | Questo attributo appartiene ai tipi di dispositivi THERMOSTAT che supportano diverse modalità di termostato. | SetMode |
ThermostatTemperatureSetpoint | Questa caratteristica appartiene ai tipi di dispositivi TERMOSTATO che supportano l'impostazione della temperatura ottimale e dell'intervallo di temperatura ottimale. | SetHeat SetCool SetRange |
JSON
L'assenza di un tratto in una risposta GET indica che il tratto o la funzionalità non è al momento disponibile per il dispositivo. Per ulteriori informazioni, consulta Tipi di dispositivi.
{ "type" : "sdm.devices.types.THERMOSTAT", "traits" : { "sdm.devices.traits.Connectivity" : { "status" : "ONLINE" }, "sdm.devices.traits.Fan" : { "timerMode" : "ON", "timerTimeout" : "2019-05-10T03:22:54Z" }, "sdm.devices.traits.Humidity" : { "ambientHumidityPercent" : 35.0 }, "sdm.devices.traits.Info" : { "customName" : "My device" }, "sdm.devices.traits.Settings" : { "temperatureScale" : "CELSIUS" }, "sdm.devices.traits.Temperature" : { "ambientTemperatureCelsius" : 23.0 }, "sdm.devices.traits.ThermostatEco" : { "availableModes" : ["MANUAL_ECO", "OFF"], "mode" : "MANUAL_ECO", "heatCelsius" : 20.0, "coolCelsius" : 22.0 }, "sdm.devices.traits.ThermostatHvac" : { "status" : "HEATING" }, "sdm.devices.traits.ThermostatMode" : { "availableModes" : ["HEAT", "COOL", "HEATCOOL", "OFF"], "mode" : "COOL" }, "sdm.devices.traits.ThermostatTemperatureSetpoint" : { "heatCelsius" : 20.0, "coolCelsius" : 22.0 } } }
Temperatura e umidità
Per leggere la temperatura ambiente del termostato, utilizza il tratto Temperatura . La temperatura ambientale viene misurata sul dispositivo.
Per leggere l'umidità ambientale del termostato, utilizza il tratto Umidità . L'umidità ambientale viene misurata sul dispositivo.
Scala di temperatura
Google Nest Thermostat può mostrare la temperatura in gradi Celsius o Fahrenheit, ma la scala non può essere impostata dall'API SDM. Per determinare la scala di temperatura attualmente impostata dall'utente, utilizza l'attributoImpostazioni .
Cambiare la modalità
La modalità del termostato è gestita da due tratti diversi: ThermostatMode e ThermostatEco.
Modalità standard
Per impostare la modalità del termostato su CALDO, FREDDO o CALDO/FREDDO, utilizza il comando SetMode del tratto ThermostatMode.
Questo comando può essere utilizzato anche per disattivare la modalità del termostato. Non può essere utilizzato per attivare la modalità Eco.Ad esempio, per modificare una delle modalità standard del termostato:
Richiesta
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatMode.SetMode
",
"params" : {
"mode" : "HEAT"
}
}
Risposta
{}
Modalità Eco
Per attivare la modalità Eco, utilizza MANUAL_ECO come modalità con il comando SetMode del trait ThermostatEco:
Richiesta
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatEco.SetMode
",
"params" : {
"mode" : "MANUAL_ECO"
}
}
Risposta
{}
Questo comando influisce su altri tratti, in base allo stato attuale o alle modifiche della modalità Eco:
- Se la modalità Eco è OFF, per impostazione predefinita la modalità del termostato sarà l'ultima modalità standard (CALDO, FREDDO, CALDO/FREDDO o OFF) attiva.
- Se la modalità Eco è MANUAL_ECO:
- I comandi per l'attributo ThermostatTemperatureSetpoint vengono rifiutati.
- I set-point di temperatura non vengono restituiti dal trait ThermostatTemperatureSetpoint .
Modificare i set-point di temperatura
I set-point di temperatura possono essere modificati solo quando il termostato è in modalità CALDO, FREDDO o CALDO/FREDDO e i set-point consentiti corrispondono alla modalità corrente del termostato. I setpoint della temperatura non possono essere modificati quando la modalità è OFF o quando la modalità Eco è impostata su MANUAL_ECO.
Il termostato deve essere nella modalità corrispondente al comando chiamato prima di modificare i setpoint di temperatura. Il comando e i campi per modificare i set-point variano in base alla modalità del termostato.
Ad esempio, per emettere il comando SetHeat , il termostato deve prima essere in modalità Caldo:
Modalità | Comando | Campo/i |
---|---|---|
RISCALDAMENTO | SetHeat | heatCelsius |
COOL | SetCool | coolCelsius |
HEATCOOL | SetRange | heatCelsius , coolCelsius |
Tieni presente che i comandi del set-point accettano come parametro solo gradi Celsius, anche se Google Nest Thermostat può visualizzare la temperatura in gradi Celsius o Fahrenheit.
Ad esempio, per modificare il set-point della temperatura quando il termostato è in modalità CALDO, utilizza il comando SetHeat del trait ThermostatTemperatureSetpoint:
Richiesta
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatTemperatureSetpoint.SetHeat
",
"params" : {
"heatCelsius" : 22.0
}
}
Risposta
{}
Set-point modalità Eco
I setpoint heatCelsius
e coolCelsius
restituiti dal tratto ThermostatEco sono impostati dall'utente e non possono essere modificati tramite l'API SDM.
Accendere o spegnere il ventilatore
Se il termostato supporta una ventola, utilizza il comando SetTimer dell'attributo Fan per attivarla o disattivarla. Quando la attivi, puoi specificare il tempo di funzionamento della ventola in secondi.
Ad esempio, per far funzionare la ventola per un'ora:
Richiesta
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.Fan.SetTimer
",
"params" : {
"timerMode" : "ON",
"duration" : "3600s"
}
}
Risposta
{}
Se il campo duration
viene omesso, il ventilatore funzionerà per un tempo predefinito di 15
minuti.
Controlla la connettività del dispositivo
Se il dispositivo non risponde ai comandi o non invia eventi oppure ricevi errori dall'API relativi al dispositivo, utilizza la caratteristicaConnettività per verificare se la connettività del dispositivo è OFFLINE. Controlla la connessione a internet del dispositivo e assicurati che il servizio Nest sia attivo.
Se hai attivato gli eventi, dovresti aver ricevuto anche un evento della risorsa che indica che il dispositivo è offline:
Payload
{
"eventId" : "366dcbfb-2b0d-4c8c-9ad9-2ff7434f1dc7",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : {
"name" : "enterprises/project-id/devices/device-id",
"traits" : {
"sdm.devices.traits.Connectivity
" : {
"status" : "OFFLINE"
}
}
},
"userId": "AVPHwEuBfnPOnTqzVFT4IONX2Qqhu9EJ4ubO-bNnQ-yi",
"resourceGroup" : [
"enterprises/project-id/devices/device-id"
]
}
Reagisci agli eventi del dispositivo
Qualsiasi modifica a un campo tratto genera un evento.
Ad esempio, riceverai il seguente evento resourceUpdate
se lo stato dell'impianto di climatizzazione del termostato cambiasse in RISCALDAMENTO:
Payload
{
"eventId" : "1e9d0340-7543-4a6f-b498-7c12a77f0b27",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : {
"name" : "enterprises/project-id/devices/device-id",
"traits" : {
"sdm.devices.traits.ThermostatHvac
" : {
"status" : "HEATING"
}
}
},
"userId": "AVPHwEuBfnPOnTqzVFT4IONX2Qqhu9EJ4ubO-bNnQ-yi",
"resourceGroup" : [
"enterprises/project-id/devices/device-id"
]
}
Gli eventi vengono attivati per tutti i trait associati a questo tipo di dispositivo. Attiva gli eventi se devi reagire in qualche modo nell'ambito di un'integrazione.
Tempi degli eventi
Tieni presente che un evento per un cambiamento dello stato dell'impianto di climatizzazione potrebbe non essere inviato contemporaneamente agli eventi di modifica della modalità del termostato.
Ad esempio, a volte si verifica un ritardo nell'avvio della modalità di riscaldamento o raffreddamento di un termostato per proteggere l'impianto di climatizzazione. In questo scenario, la modifica della modalità del termostato potrebbe inizialmente inviare eventi per ThermostatMode e ThermostatTemperatureSetpoint variazioni del percorso, con ThermostatHvac che in seguito ha inviato un evento separato. Se non si è verificato alcun ritardo nell'accensione dell'impianto di climatizzazione, tutti e tre gli eventi vengono inviati contemporaneamente.
Errori
Potrebbero essere restituiti i seguenti codici di errore relativi a questo dispositivo:
Messaggio di errore | RPC | Risoluzione dei problemi |
---|---|---|
Il valore del raffreddamento deve essere maggiore del valore del riscaldamento. | INVALID_ARGUMENT |
Assicurati che il campo heatCelsius sia inferiore al campo coolCelsius del comando. |
Comando non consentito nella modalità attuale del termostato. | FAILED_PRECONDITION |
Alcuni modelli di termostato non supportano il cambio della modalità Eco quando questa è disattivata, in base alla modalità ThermostatMode . La modalità del termostato deve essere impostata su CALDO, FREDDO o CALDO/FREDDO prima di modificare la modalità Eco. |
Ventola del termostato non disponibile. | FAILED_PRECONDITION |
Il termostato non ha la funzionalità di ventilazione. I comandi e le caratteristiche relativi ai fan non possono essere utilizzati per questo dispositivo. |
Comando non consentito quando il termostato è in modalità MANUAL_ECO. | FAILED_PRECONDITION |
Il set-point temperatura non può essere impostato quando il termostato è in modalità Eco manuale. |
Consulta il riferimento ai codici di errore dell'API per un elenco completo dei codici di errore dell'API.