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