action.devices.SYNC

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

Ela é acionada durante a vinculação da conta ou quando um usuário ressincroniza manualmente os dispositivos. O atendimento do pedido deve responder com as características e os atributos compatíveis com cada dispositivo.

Sua resposta SYNC precisa retornar todos os dispositivos associados ao usuário. Isso não determina se algum dispositivo específico pode ser acessado. Isso é gerenciado pela QUERY e EXECUTE respostas.

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 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 sincronização

{
  "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 do usuário exclusivo (e imutável) na plataforma do agente. A string é opaca para o Google. Portanto, se houver um formato imutável ou mutável no lado do agente, use o formato imutável (por exemplo, um número de conta em vez de e-mail).

errorCode String

Para erros sistemáticos no SYNC

debugString String

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

devices Array

Obrigatório.

Lista de dispositivos do usuário. Nenhum ou mais dispositivos são retornados, ou seja, o usuário não tem dispositivos ou desconectou todos.

[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 o desenvolvedor. Nos casos de compartilhamento, ele pode ser usado para eliminar a duplicação de várias visualizações do mesmo dispositivo. Ele precisa ser imutável para o dispositivo. Se ele mudar, o 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. Isso define os comandos, atributos e estados com suporte do dispositivo.

[item, ...] String

Nome da característica compatível.

name Object

Obrigatório.

São os 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 descrever para 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 no 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 no dispositivo.

roomHint String

Informa o cômodo 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 incorreta do firmware X da luz Y exige o ajuste de cor" ou "a falha de segurança exige a notificação de todos os usuários do firmware Z").

manufacturer String

Útil principalmente quando o desenvolvedor é uma central para outros dispositivos. O Google pode fornecer uma lista padrão de fabricantes para que, por exemplo, A TP-Link e o SmartThings descrevem o "osram" da mesma forma.

model String

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

hwVersion String

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

swVersion String

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

attributes Object

Alinhados com os atributos por característica descritos em cada referência de esquema de característica.

customData Object

Objeto definido pelo desenvolvedor que será anexado às futuras solicitações QUERY e EXECUTE, com no máximo 512 bytes por dispositivo. Use esse objeto para armazenar mais informações sobre o dispositivo de que seu serviço de nuvem pode precisar, como a região global do dispositivo. Os dados neste objeto têm algumas restrições: nenhuma informação sensível, 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. 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 de sincronização

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