Thermostat

Tous les Google Nest Thermostat modèles de ML sont compatibles de l'API Smart Device Management (SDM). Ces appareils renvoient le thermostat type d'appareil:

sdm.devices.types.THERMOSTAT

Caractéristiques

Référence

Les traits, commandes ou événements suivants sont liés à ce groupe:

TraitDescriptionCommandes
ConnectivitéCette caractéristique appartient à tout appareil disposant d'informations de connectivité.
FanCette caractéristique appartient à tout appareil capable de contrôler le ventilateur.SetTimer
HumiditéCette caractéristique appartient à tout appareil équipé d'un capteur pour mesurer l'humidité.
InfosCette caractéristique appartient à n'importe quel appareil pour les informations liées aux appareils.
ParamètresCette caractéristique appartient à n'importe quel appareil pour les informations sur les paramètres liés à l'appareil.
TempératureCette caractéristique appartient à tout appareil équipé d'un capteur pour mesurer la température.
ThermostatEcoCette caractéristique appartient aux types d'appareils du thermostat thermostat qui prennent en charge les modes ÉCO.SetMode
ThermostatHvacCette caractéristique fait partie des types d'appareils du THEmostAT qui peuvent fournir des informations sur le système CVC.
ThermostatModeCette caractéristique appartient aux types d'appareils du thermostat thermostat qui sont compatibles avec différents modes de thermostat.SetMode
ThermostatTemperatureSetpointCette caractéristique appartient aux types d'appareils du thermostat thermostat qui permettent de définir la température de consigne et la plage de températures.SetHeat
SetCool
SetRange

JSON

L'absence de caractéristique dans une réponse GET indique que la caractéristique ou fonctionnalité n'est actuellement pas disponible pour l'appareil. Voir Types d'appareils des informations.

{
  "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
    }
  }
}

Température et humidité

Pour lire la température ambiante du thermostat, utilisez le bouton caractéristique detempérature . L'ambiance est mesurée sur l'appareil.

Pour lire l'humidité ambiante du thermostat, utilisez le CaractéristiqueHumidité . L'ambiance l'humidité est mesurée au niveau de l'appareil.

Échelle de température

Le Google Nest Thermostat peut afficher la température en degrés Celsius ou Fahrenheit, mais l'échelle ne peut pas être définie par l'API SDM. Pour déterminer l'échelle de température actuellement définie par l'utilisateur, utilisez caractéristique deparamètres .

Changer de mode

Le mode du thermostat est géré par deux caractéristiques différentes: ThermostatMode and ThermostatEco.

Modes standards

Pour définir le mode du thermostat sur CHAUFFAGE, CLIM ou CHAUFFAGE, utilisez la commande SetMode de la caractéristique ThermostatMode.

Cette commande peut également être utilisée pour désactiver le mode du thermostat. Il ne peut pas être utilisé pour transformer en mode Éco.

Par exemple, pour changer le mode standard d'un thermostat:

Requête

POST /enterprises/project-id/devices/device-id:executeCommand
{
  "command" : "sdm.devices.commands.ThermostatMode.SetMode",
  "params" : {
    "mode" : "HEAT"
  }
}

Réponse

{}

Mode Éco

Pour activer le mode Éco, utilisez le mode MANUAL_ECO avec la Commande SetMode de la caractéristique ThermostatEco:

Requête

POST /enterprises/project-id/devices/device-id:executeCommand
{
  "command" : "sdm.devices.commands.ThermostatEco.SetMode",
  "params" : {
    "mode" : "MANUAL_ECO"
  }
}

Réponse

{}

Cette commande a une incidence sur d'autres caractéristiques, en fonction de l'état actuel du mode Éco ou de ses changements:

  • Si le mode Éco est désactivé, le dernier mode standard activé (CHAUFFAGE, CLIM., CHAUFFAGE ou ÉTEINDRE) est activé par défaut.
  • Si le mode Éco est défini sur MANUAL_ECO:

Modifier les températures mémorisées

Les températures mémorisées ne peuvent être modifiées que lorsque le thermostat est en mode CHAUFFAGE, CLIM ou CHAUFFAGE les températures mémorisées autorisées correspondent au mode actuel du thermostat. Température les températures mémorisées ne peuvent pas être modifiées lorsque le mode est désactivé ou lorsque Le mode Éco est réglé sur MANUAL_ECO.

Le thermostat doit être sur le mode correspondant à la commande appelée les températures mémorisées. La commande et les champs permettant de modifier les températures mémorisées varient selon le thermostat. .

Par exemple, pour émettre le SetHeat le thermostat doit d'abord être en mode CHAUFFAGE:

Mode Commande Champ(s)
AUXILIAIRE SetHeat heatCelsius
CLIMATISATION SetCool coolCelsius
CHAUFFAGE SetRange heatCelsius, coolCelsius

Notez que le paramètre des commandes de température mémorisée n'accepte que les degrés Celsius. Le Google Nest Thermostat peut afficher la température en degrés Celsius ou Fahrenheit.

Par exemple, pour modifier la température mémorisée lorsque le thermostat est CHAUFFAGE, utilisez le Commande SetHeat de la caractéristique "ThermostatTemperatureSetpoint" :

Requête

POST /enterprises/project-id/devices/device-id:executeCommand
{
  "command" : "sdm.devices.commands.ThermostatTemperatureSetpoint.SetHeat",
  "params" : {
    "heatCelsius" : 22.0
  }
}

Réponse

{}

Températures mémorisées en mode Éco

Les températures mémorisées heatCelsius et coolCelsius renvoyées par le Les caractéristiques ThermostatEco sont définies par l'utilisateur. ne peuvent pas être modifiés via l'API SDM.

Allumer ou éteindre le ventilateur

Si le thermostat est compatible avec un ventilateur, utilisez la commande SetTimer de la caractéristique "Ventilateur" pour l'activer ou le désactiver. Lors de l'allumage, vous pouvez spécifier la durée d'activation du ventilateur, en secondes.

Par exemple, pour activer le ventilateur pendant une heure:

Requête

POST /enterprises/project-id/devices/device-id:executeCommand
{
  "command" : "sdm.devices.commands.Fan.SetTimer",
  "params" : {
    "timerMode" : "ON",
    "duration" : "3600s"
  }
}

Réponse

{}

Si le champ duration est omis, le ventilateur fonctionnera pendant la durée par défaut de 15 heures. minutes.

Vérifier la connectivité de l'appareil

Si l'appareil ne répond pas aux commandes ou n'envoie pas d'événements, ou si vous recevez les erreurs de l'API liées à l'appareil, utilisez le Fonctionnalité de connectivité pour vérifier la connectivité de l'appareil pour l'état HORS CONNEXION. Vérifiez l'état à Internet et vérifiez que le Nest Protect le service est opérationnel.

Si vous avez activé les événements, vous devez également avoir reçu un événement de ressource indiquant que l'appareil est hors connexion:

Charge utile

{
  "eventId" : "0cb5bc58-0efd-4c2e-a00b-1403ffaf8c27",
  "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"
  ]
}

Réagir aux événements sur l'appareil

Toute modification apportée à un champ de caractéristique génère un événement. Par exemple, vous devez obtenir l'événement resourceUpdate suivant si le système CVC du thermostat état passé à CHAUFFAGE:

Charge utile

{
  "eventId" : "94088ed1-1e7b-4b40-84bc-efedf88f7bd0",
  "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"
  ]
}

Les événements sont déclenchés pour toutes les caractéristiques associées à ce type d'appareil. Activer les événements si vous devez réagir d'une manière ou d'une autre dans le cadre d'une intégration.

Planification des événements

Notez qu'il est possible qu'un événement lié à un changement d'état du système CVC ne soit pas diffusé en même temps que les événements pour changer le mode du thermostat.

Par exemple, il y a parfois a de démarrage du thermostat en mode chauffage ou climatisation pour protéger le système CVC du système d'exploitation. Dans ce cas, le changement de mode du thermostat risque de n'envoyer initialement des événements ThermostatMode and Modification de la caractéristique ThermostatTemperatureSetpoint La modification de la caractéristique ThermostatHvac est envoyée ultérieurement en tant que une fois que le système s'allume. En l'absence de retard d'activation du système CVC, trois événements sont envoyés en même temps.

Erreurs

Le ou les codes d'erreur suivants peuvent s'afficher pour cet appareil:

Message d'erreur RPC Dépannage
La valeur de climatisation doit être supérieure à la valeur de chauffage. INVALID_ARGUMENT Assurez-vous que le champ heatCelsius est inférieur au champ coolCelsius de votre commande.
Commande non autorisée en mode thermostat actuel. FAILED_PRECONDITION Certains modèles de thermostat ne permettent pas de changer le mode Éco lorsque le thermostat est désactivé, conformément à la caractéristique Mode Thermostat . Vous devez changer le mode du thermostat sur CHAUFFAGE, CLIM ou CHAUFFAGE avant d'activer le mode Éco.
Ventilateur du thermostat indisponible. FAILED_PRECONDITION Le thermostat n'est pas équipé d'un ventilateur. Impossible d'utiliser les fonctionnalités et commandes liées aux fans sur cet appareil.
Commande non autorisée lorsque le thermostat est en mode MANUAL_ECO. FAILED_PRECONDITION Impossible de régler la température mémorisée lorsque le thermostat est en mode Éco manuel.

Consultez la documentation de référence sur les codes d'erreur de l'API pour la liste complète des codes d'erreur de l'API.