![](https://developers.google.cn/nest/device-access/images/device-thermostat.png?authuser=7&hl=it)
Tutti i termostati Google Nest modelli sono supportati l'API Smart Device Management (SDM). Questi dispositivi restituiscono il TERMOSTATO Tipo di dispositivo:
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 di connettività. | |
Fan | Questo tratto appartiene a qualsiasi dispositivo in grado 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 tratto appartiene a qualsiasi dispositivo per le informazioni relative alle impostazioni relative al dispositivo. | |
Temperatura | Questa caratteristica appartiene a qualsiasi dispositivo dotato di un sensore per misurare la temperatura. | |
ThermostatEco | Questa caratteristica appartiene ai tipi di dispositivi TERMOSTATO che supportano le modalità ECO. | SetMode |
ThermostatHvac | Questo tratto appartiene ai tipi di dispositivi TERMOSTAT in grado di segnalare i dettagli dell'impianto di climatizzazione. | |
ThermostatMode | Questa caratteristica appartiene ai tipi di dispositivi TERMOSTATO che supportano diverse modalità del 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 funzione non è attualmente disponibile per il dispositivo. Consulta Tipi di dispositivi informazioni.
{ "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 Tracciatemperatura . Ambiente viene misurata sul dispositivo.
Per leggere l'umidità ambientale del termostato, utilizza il Tracciaumidità . Ambiente l'umidità viene misurata sul dispositivo.
Scala di temperatura
Google Nest Thermostat può visualizzare 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, usa Impostazioni trait.
Cambia modalità
La modalità del termostato è gestita da due diverse caratteristiche: ThermostatMode and ThermostatEco.
Modalità standard
Per cambiare la modalità del termostato in HEAT, COOL o HEATCOOL, usa il comando SetMode della trait ThermostatMode.
Questo comando può essere usato anche per disattivare la modalità del termostato. Non può essere utilizzato per girare in modalità Eco.Ad esempio, per cambiare 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 alla modalità Eco:
- Se la modalità Eco è disattivata, il termostato passerà per impostazione predefinita all'ultima modalità standard (CALDO, RAFFR., SCALD.COOL o Spento) attiva.
- Se la modalità Eco è MANUAL_ECO:
- I comandi per il Trait ThermostatTemperatureSetpoint sono stati 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 le modalità HEAT, COOL o HEATCOOL i set-point consentiti corrispondono alla modalità corrente del termostato. Temperatura i set-point non possono essere modificati quando la modalità è disattivata o quando La modalità Eco è impostata su MANUAL_ECO.
Il termostato deve essere nella modalità corrispondente al comando chiamato prima della modifica i set-point di temperatura. Il comando e i campi per modificare i set-point variano in base al termostato .
Ad esempio, per emettere SetHeat il termostato deve essere prima in modalità Caldo:
Modalità | Comando | Campo/i |
---|---|---|
RISCALDAMENTO | SetHeat | heatCelsius |
RAFFR. | SetCool | coolCelsius |
RAFFR. | SetRange | heatCelsius , coolCelsius |
Tieni presente che i comandi del set-point prendono solo i gradi in Celsius come parametro, sebbene Google Nest Thermostat può mostrare la temperatura in gradi Celsius o Fahrenheit.
Ad esempio, per modificare il set-point della temperatura quando il termostato è in modalità Caldo, usa 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 set-point di heatCelsius
e coolCelsius
restituiti dal
Il trait ThermostatEco viene impostato dall'utente e
non possono essere modificate tramite l'API SDM.
Accendere o spegnere la ventola
Se il termostato supporta un ventilatore, usa il comando SetTimer della trait della ventola per accenderlo o spegnerlo. Quando attivi la ventola, puoi specificare per quanto tempo secondi.
Ad esempio, per far partire 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, la ventola funzionerà per un tempo predefinito di 15
minuti.
Controlla la connettività del dispositivo
Se il dispositivo non risponde ai comandi, non invia eventi oppure ricevi gli errori dell'API relativi al dispositivo, utilizza Connettività per controllare connettività del dispositivo per uno stato OFFLINE. Controlla lo la connessione a internet e assicurati che Nest servizio attivo.
Se hai abilitato gli eventi, dovresti aver ricevuto anche un evento risorsa che indica che il dispositivo è stato offline:
Payload
{
"eventId" : "c7c1eacf-70f6-476d-8a68-5b2274e44cba",
"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, potresti ricevere
il seguente evento resourceUpdate
se la temperatura dell'impianto di climatizzazione del termostato
modificato in HEATING:
Payload
{
"eventId" : "444bf459-63e9-4e08-a4a7-00bb6be1c63e",
"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 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 per cambiare la modalità del termostato.
Ad esempio, a volte c'è a ritardo nell'avvio della modalità di riscaldamento o raffreddamento di un termostato per proteggere l'impianto di climatizzazione di un sistema operativo completo. In questo scenario, la modifica della modalità del termostato inizialmente potrebbe inviare eventi solo per ThermostatMode and ThermostatTemperatureSetpoint varia il carattere, con ThermostatHvac modifica del trait inviata in un secondo momento come modulo una volta che il sistema si accende. Se non si è verificato alcun ritardo nell'accensione dell'impianto di climatizzazione, vengono inviati tre eventi 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 nell'attuale modalità del termostato. | FAILED_PRECONDITION |
Alcuni modelli di termostato non supportano il cambio della modalità Eco quando questa è disattivata, in base alla modalità ThermostatMode . Prima di cambiare la modalità Eco, è necessario impostare la modalità HEATCOOL o HEATCOOL. |
Ventola del termostato non disponibile. | FAILED_PRECONDITION |
Il termostato non ha una funzionalità di ventola. Per questo dispositivo non è possibile utilizzare i tratti e i comandi relativi ai fan. |
Comando non consentito quando il termostato è in modalità MANUAL_ECO. | FAILED_PRECONDITION |
Non è possibile impostare il set-point di temperatura quando il termostato è in modalità Eco manuale. |
Consulta la documentazione sul codice di errore API per l'elenco completo dei codici di errore dell'API.