Termostato

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:

TrattoDescrizioneComandi
ConnettivitàQuesto tratto appartiene a qualsiasi dispositivo con informazioni di connettività.
FanQuesto 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à.
InformazioniQuesto tratto appartiene a qualsiasi dispositivo per le informazioni relative a tale dispositivo.
ImpostazioniQuesto tratto appartiene a qualsiasi dispositivo per le informazioni relative alle impostazioni relative al dispositivo.
TemperaturaQuesta caratteristica appartiene a qualsiasi dispositivo dotato di un sensore per misurare la temperatura.
ThermostatEcoQuesta caratteristica appartiene ai tipi di dispositivi TERMOSTATO che supportano le modalità ECO.SetMode
ThermostatHvacQuesto tratto appartiene ai tipi di dispositivi TERMOSTAT in grado di segnalare i dettagli dell'impianto di climatizzazione.
ThermostatModeQuesta caratteristica appartiene ai tipi di dispositivi TERMOSTATO che supportano diverse modalità del termostato.SetMode
ThermostatTemperatureSetpointQuesta 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:

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.