Termostato

Todos os Google Nest Thermostat de ML são compatíveis com pela API Smart Device Management (SDM). Esses dispositivos retornam o TERMOSTATO tipo de dispositivo:

sdm.devices.types.THERMOSTAT

Características

Referência

As seguintes características, comandos ou eventos estão relacionados a esse grupo:

CaracterísticasDescriçãoComandos
ConectividadeEssa característica pertence a qualquer dispositivo que tenha informações de conectividade.
Essa característica pertence a qualquer dispositivo que tenha a capacidade do sistema de controlar o ventilador.SetTimer
UmidadeEssa característica pertence a qualquer dispositivo que tenha um sensor para medir a umidade.
InformaçõesEssa característica pertence a qualquer dispositivo para informações relacionadas ao dispositivo.
ConfiguraçõesEssa característica pertence a qualquer dispositivo para informações de configurações relacionadas ao dispositivo.
TemperaturaEssa característica pertence a qualquer dispositivo que tenha um sensor para medir a temperatura.
ThermostatEcoEssa característica pertence a tipos de dispositivos de TERMOSTATO que oferecem suporte aos modos ECO.SetMode
ThermostatHvacEssa característica pertence aos tipos de dispositivos de TERMOSTATO que podem informar detalhes de AVAC (aquecimento, ventilação e ar-condicionado).
ThermostatModeEssa característica pertence a tipos de dispositivos de THERMOSTAT que oferecem suporte a diferentes modos de termostato.SetMode
ThermostatTemperatureSetpointEssa característica pertence a tipos de dispositivos de TERMOSTATO que oferecem suporte à definição de temperatura-alvo e faixa de temperatura.SetHeat
SetCool
SetRange

JSON

A ausência de uma característica em uma resposta GET indica que a característica ou não está disponível para o dispositivo no momento. Consulte Tipos de dispositivo para mais opções informações imprecisas ou inadequadas.

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

Para ler a temperatura ambiente do termostato, use o Temperatura A música ambiente é medida no dispositivo.

Para ler a umidade do ambiente do termostato, use o Umidade . A música ambiente a umidade é medida no dispositivo.

Escala de temperatura

O Google Nest Thermostat pode mostrar a temperatura em graus Celsius ou Fahrenheit, mas a escala não pode ser definida pela API do SDM. Para determinar a escala de temperatura atualmente definida pelo usuário, use o Configurações :

Mudar o modo

O modo do termostato é gerenciado por duas características diferentes: ThermostatMode and TermostatoEco.

Meios padrão

Para mudar o modo do termostato para Aquecer, Resfriar ou Aquecer, use o comando SetMode da característica ThermostatMode.

Esse comando também pode ser usado para DESLIGAR o modo do termostato. Ele não pode ser usado para transformar no modo Eco.

Por exemplo, para mudar um dos modos padrão do termostato:

Solicitação

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

Resposta

{}

Modo Eco

Para ativar o modo Eco, use MANUAL_ECO como o modo com o Comando SetMode da característica ThermostatEco:

Solicitação

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

Resposta

{}

Esse comando afeta outras características com base no status atual ou nas mudanças do modo Eco:

  • Se o modo Eco estiver DESATIVADO, o termostato usará o último modo padrão ativo (Aquecer, Resfriar, Aquecer ou DESLIGAR).
  • Se o modo Eco for MANUAL_ECO:

Mudar as temperaturas programadas

As temperaturas programadas só podem ser mudadas quando o termostato está em os modos HEAT, COOL ou HEATCOOL, e as temperaturas programadas permitidas correspondem ao modo atual do termostato. Temperatura os pontos de controle não podem ser alterados quando o modo estiver DESATIVADO ou quando o O modo Eco está definido como MANUAL_ECO.

Antes da mudança, o termostato precisa estar no modo que corresponde ao comando chamado as temperaturas programadas. O comando e os campos para mudar as temperaturas programadas variam de acordo com o termostato modo

Por exemplo, para emitir o SetHeat o termostato precisa estar no modo Aquecer primeiro:

Modo Comando Campo(s)
AQUECIMENTO SetHeat heatCelsius
FRIO SetCool coolCelsius
AQUECIMENTO SetRange heatCelsius, coolCelsius

Os comandos de temperatura programada só usam graus em Celsius como parâmetro, embora o valor O Google Nest Thermostat pode mostrar a temperatura em graus Celsius ou Fahrenheit.

Por exemplo, para mudar a temperatura programada quando o termostato estiver Aquecimento, use o Comando SetHeat da característica ThermostatTemperaturaSetpoint:

Solicitação

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

Resposta

{}

Programações do modo Eco

Os setpoints heatCelsius e coolCelsius retornados pelo características do ThermostatEco são definidas pelo usuário. não podem ser alterados com a API SDM.

Ligar ou desligar o ventilador

Se o termostato for compatível com um ventilador, use o comando SetTimer da característica da ventilação para ligar ou desligar. Ao ligar, você pode especificar por quanto tempo quer que o ventilador funcione, segundos.

Por exemplo, para ligar o ventilador por uma hora:

Solicitação

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

Resposta

{}

Se o campo duration for omitido, o ventilador será executado por um tempo padrão de 15 minutos.

Verificar a conectividade do dispositivo

Se o dispositivo não estiver respondendo a comandos ou enviando eventos, ou se você receber da API relacionada ao dispositivo, use o Conectividade para verificar conectividade do dispositivo para um status OFF-LINE. Verifique o conexão com a Internet e verifique se o Nest O serviço está ativo.

Se você ativou os eventos, também deve ter recebido um evento de recurso indicando que o dispositivo ficou off-line:

Payload

{
  "eventId" : "23faf638-976d-49e7-9d0b-aa8e73172263",
  "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"
  ]
}

Reagir a eventos do dispositivo

Qualquer alteração em um campo de característica gera um evento. Por exemplo, você receberia o seguinte evento resourceUpdate se o sistema AVAC (aquecimento, ventilação e ar-condicionado) do termostato status alterado para HEATING:

Payload

{
  "eventId" : "644e0f4c-4a24-4910-8ce2-781d7529d33c",
  "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"
  ]
}

Os eventos são acionados para todas as características associadas a esse tipo de dispositivo. Ativar eventos se você precisar reagir como parte de uma integração.

Marcação de tempo dos eventos

Um evento para uma mudança no status do AVAC não pode ser entregue ao mesmo tempo que os eventos para alterar o modo do termostato.

Por exemplo, às vezes há um atraso no início do modo de aquecimento ou resfriamento de um termostato para proteger o AVAC (aquecimento, ventilação e ar-condicionado) sistema. Neste cenário, a mudança do modo do termostato pode enviar inicialmente eventos apenas para ThermostatMode and ThermostatTemperaturaSetpoint mudam, com a ThermostatHvac alteração de características enviada mais tarde como um item separado evento assim que o sistema for realmente ativado. Se não houve atraso na ativação do sistema AVAC (aquecimento, ventilação e ar-condicionado), todos três eventos seriam enviados ao mesmo tempo.

Erros

Os seguintes códigos de erro podem ser retornados em relação a este dispositivo:

Mensagem de erro RPC Solução de problemas
O valor do resfriamento precisa ser maior que o valor do aquecimento. INVALID_ARGUMENT Verifique se o campo heatCelsius é menor que o campo coolCelsius no comando.
Comando não permitido no modo de termostato atual. FAILED_PRECONDITION Alguns modelos de termostato não são compatíveis com a mudança do modo Eco quando ele estiver DESATIVADO, de acordo com o ThermostatMode . O modo do termostato precisa ser alterado para Aquecer, Resfriar ou Aquecer completamente antes de mudar o modo Eco.
Ventilador do termostato indisponível. FAILED_PRECONDITION O termostato não tem capacidade para ventilador. Características e comandos relacionados ao ventilador não podem ser usados para este dispositivo.
Comando não permitido no modo MANUAL_ECO do termostato. FAILED_PRECONDITION Não é possível definir a temperatura programada quando o termostato está no modo Eco manual.

Consulte a Referência do código de erro da API para a lista completa de códigos de erro da API.