action.devices.SYNC

A intent solicita a lista de dispositivos associados ao usuário em questão e os recursos dele.

Ele é acionado durante a vinculação da conta ou quando um usuário sincroniza manualmente os dispositivos novamente. O fulfillment precisa responder com as características e atributos compatíveis para cada dispositivo.

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

Veja mais detalhes em 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 intent.

[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 de SYNC

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

Formato da resposta

Campos Tipo Descrição
requestId String

Obrigatório.

É o ID da solicitação correspondente.

payload Object

Obrigatório.

Payload de resposta de intent.

agentUserId String

Obrigatório.

reflete o ID de usuário único (e imutável) na plataforma do agente. A string é opaca para o Google. Portanto, se houver um formato imutável ou mutável no agente, use o formato 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, o que significa que o usuário não tem dispositivos ou que todos foram desconectados).

[item, ...] Object

Metadados do dispositivo.

id String

Obrigatório.

É o ID do dispositivo na nuvem do desenvolvedor. Isso precisa ser único para o usuário e para o desenvolvedor, já que, nos casos de compartilhamento, podemos desduplicar várias visualizações do mesmo dispositivo. Ele precisa ser imutável para o dispositivo. Se mudar, o Google Assistente o tratará como um novo dispositivo.

type String

Obrigatório.

O tipo de hardware do dispositivo.

traits Array

Obrigatório.

Lista de características deste dispositivo. 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. Ele também é o nome que o Google Assistente prefere que descreva o dispositivo nas respostas.

nicknames Array

Nomes adicionais fornecidos pelo usuário para o dispositivo.

[item, ...] String

Apelido do dispositivo.

willReportState Booleano

Obrigatório.

Indica se os estados do dispositivo serão atualizados pelo feed em tempo real. "true" para usar o feed em tempo real para o estado do relatório 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 lógica única, se necessário (por exemplo, "a versão do firmware corrompida X da luz Y requer o ajuste de cor") ou "a falha de segurança exige notificar todos os usuários do firmware Z".

manufacturer String

Útil principalmente quando o desenvolvedor é um hub para outros dispositivos. O Google pode fornecer uma lista padrão de fabricantes aqui para que o TP-Link e o Smartthings descrevem o termo "osram" da mesma forma.

model String

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

hwVersion String

Número de versão específico anexado ao hardware, se disponível.

swVersion String

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

attributes Object

Alinhamento com os atributos descritos em cada referência de esquema de características.

customData Object

Objeto definido pelo desenvolvedor que será anexado às próximas solicitações QUERY e EXECUTE. No máximo 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 há informações confidenciais, incluindo, mas não se limitando a, 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. Em geral, 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 da 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"
        }
      }
    ]
  }
}