action.devices.SYNC

Essa intent solicita a lista de dispositivos associados ao usuário e os recursos deles.

Ela é acionada durante a vinculação de contas ou quando um usuário ressincroniza manualmente os dispositivos. O fulfillment precisa responder com as características e atributos compatíveis de cada dispositivo.

A resposta SYNC precisa retornar todos os dispositivos associados ao usuário. Isso não determina se um dispositivo específico está acessível. Isso é processado pelas respostas QUERY e EXECUTE.

Para mais detalhes, consulte Identificar e sincronizar.

Formato da solicitação

Campos Tipo Descrição
requestId String

Obrigatório.

ID da solicitação.

inputs Array

Obrigatório.

Lista de entradas que correspondem à solicitação de intenção.

[item, ...] Object

Tipo e payload associados à solicitação de intent.

intent

Obrigatório.

(Valor constante: "action.devices.SYNC")

Tipo de solicitação de intent.

Exemplos

Solicitação de intent SYNC

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [
    {
      "intent": "action.devices.SYNC"
    }
  ]
}

Formato da resposta

Campos Tipo Descrição
requestId String

Obrigatório.

ID da solicitação correspondente.

payload Object

Obrigatório.

Payload de resposta da intent.

agentUserId String

Obrigatório.

Reflete o ID exclusivo (e imutável) do usuário na plataforma do agente. A string é opaca para o Google. Portanto, se houver uma forma imutável e uma mutável no lado do agente, use a imutável (por exemplo, um número de conta em vez de um e-mail).

errorCode String

Para erros sistemáticos no SYNC

debugString String

Erro detalhado que nunca será apresentado aos usuários, mas poderá ser registrado ou usado durante o desenvolvimento.

devices Array

Obrigatório.

Lista de dispositivos do usuário. Zero ou mais dispositivos são retornados (zero dispositivos significa que o usuário não tem dispositivos ou desconectou todos eles).

[item, ...] Object

Metadados do dispositivo.

id String

Obrigatório.

O ID do dispositivo na nuvem do desenvolvedor. Ele precisa ser exclusivo para o usuário e para o desenvolvedor. Em casos de compartilhamento, podemos usar esse valor para remover a duplicação de várias visualizações do mesmo dispositivo. Ele precisa ser imutável para o dispositivo. Se mudar, o Google Assistente vai tratá-lo como um novo dispositivo.

type String

Obrigatório.

O tipo de hardware do dispositivo.

traits Array

Obrigatório.

Lista de características do dispositivo. Isso define os comandos, atributos e estados compatíveis com o dispositivo.

[item, ...] String

Nome da característica compatível.

name Object

Obrigatório.

Nomes deste dispositivo.

defaultNames Array

Lista de nomes fornecidos pelo desenvolvedor em vez do usuário, geralmente nomes de fabricantes, SKUs etc.

[item, ...] String

Nome padrão do dispositivo.

name String

Obrigatório.

Nome principal do dispositivo, geralmente fornecido pelo usuário. Esse também é o nome que o Google Assistente vai preferir para descrever o dispositivo nas respostas. Os nomes serão truncados se excederem o limite de 60 pontos de código Unicode (caracteres), e nenhum erro será gerado. Os desenvolvedores são responsáveis por processar nomes longos.

nicknames Array

Outros nomes fornecidos pelo usuário para o dispositivo.

[item, ...] String

Apelido do dispositivo.

willReportState Booleano

Obrigatório.

Indica se os estados desse dispositivo serão atualizados pelo feed em tempo real. "true" para usar o feed em tempo real para informar o estado e "false" para usar o modelo de pesquisa.

notificationSupportedByAgent Booleano

Padrão: false.

Indica se as notificações estão ativadas para o dispositivo.

roomHint String

Fornece o ambiente atual do dispositivo na casa do usuário para simplificar a configuração.

deviceInfo Object

Contém campos que descrevem o dispositivo para uso em uma lógica única, se necessário (por exemplo, "a versão X do firmware com falha da luz Y exige ajuste de cor" ou "uma falha de segurança exige notificar todos os usuários do firmware Z").

manufacturer String

Especialmente útil quando o desenvolvedor é um hub para outros dispositivos. O Google pode fornecer uma lista padrão de fabricantes aqui para que, por exemplo, TP-Link e Smartthings descrevam "osram" da mesma forma.

model String

O identificador do modelo ou SKU do dispositivo específico.

hwVersion String

Número da versão específica anexada ao hardware, se disponível.

swVersion String

Número da versão específica anexada ao software/firmware, se disponível.

attributes Object

Alinhado com os atributos por traço descritos em cada referência de esquema de traço.

customData Object

Objeto definido pelo desenvolvedor que será anexado a futuras solicitações QUERY e EXECUTE, máximo de 512 bytes por dispositivo. Use esse objeto para armazenar informações adicionais sobre o dispositivo que seu serviço de nuvem pode precisar, como a região global do dispositivo. Os dados nesse objeto têm algumas restrições: não podem conter informações sensíveis, incluindo, entre outras, informações de identificação pessoal.

otherDeviceIds Array

Lista de IDs alternativos usados para identificar um dispositivo sincronizado na nuvem para execução local.

[item, ...] Object

ID alternativo do dispositivo.

agentId String

O ID do agente. Geralmente, esse é o ID do projeto no Console do Actions.

deviceId String

Obrigatório.

ID do dispositivo definido pelo agente. O ID do dispositivo precisa ser exclusivo.

Exemplos

Resposta de intent SYNC

{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "agentUserId": "1836.15267389",
    "devices": [
      {
        "id": "123",
        "type": "action.devices.types.OUTLET",
        "traits": [
          "action.devices.traits.OnOff"
        ],
        "name": {
          "defaultNames": [
            "My Outlet 1234"
          ],
          "name": "Night light",
          "nicknames": [
            "wall plug"
          ]
        },
        "willReportState": false,
        "roomHint": "kitchen",
        "deviceInfo": {
          "manufacturer": "lights-out-inc",
          "model": "hs1234",
          "hwVersion": "3.2",
          "swVersion": "11.4"
        },
        "otherDeviceIds": [
          {
            "deviceId": "local-device-id"
          }
        ],
        "customData": {
          "fooValue": 74,
          "barValue": true,
          "bazValue": "foo"
        }
      },
      {
        "id": "456",
        "type": "action.devices.types.LIGHT",
        "traits": [
          "action.devices.traits.OnOff",
          "action.devices.traits.Brightness",
          "action.devices.traits.ColorSetting"
        ],
        "name": {
          "defaultNames": [
            "lights out inc. bulb A19 color hyperglow"
          ],
          "name": "lamp1",
          "nicknames": [
            "reading lamp"
          ]
        },
        "willReportState": false,
        "roomHint": "office",
        "attributes": {
          "colorModel": "rgb",
          "colorTemperatureRange": {
            "temperatureMinK": 2000,
            "temperatureMaxK": 9000
          },
          "commandOnlyColorSetting": false
        },
        "deviceInfo": {
          "manufacturer": "lights out inc.",
          "model": "hg11",
          "hwVersion": "1.2",
          "swVersion": "5.4"
        },
        "customData": {
          "fooValue": 12,
          "barValue": false,
          "bazValue": "bar"
        }
      }
    ]
  }
}