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