Esta é a Central do desenvolvedor do Google Home, a nova plataforma para aprender a desenvolver ações de casa inteligente. Observação: você continua criando ações no Console do Actions.

Compatibilidade com descoberta de dispositivos

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Um caminho de fulfillment local é estabelecido quando o Google faz a correspondência entre um dispositivo de controle local e um dispositivo retornado na resposta SYNC do fulfillment da nuvem.

Para permitir que o Google descubra seu dispositivo na rede local e estabelecer o caminho de fulfillment local, você precisa adicionar informações de descoberta no console do Actions. Também é necessário atualizar a resposta SYNC do fulfillment da nuvem para informar ao Google sobre o dispositivo que pode ser controlado localmente.

Definir as informações de configuração da verificação

Para especificar as informações de descoberta, siga estas etapas:

  1. Abra seu projeto de casa inteligente no Console do Actions.
  2. Na navegação à esquerda, clique em Ações.
  3. Em Configure local home SDK (optional) > Add device scan configuration, clique em New scan config.
  4. Selecione um tipo de protocolo de correspondência correspondente no menu suspenso e insira os valores que o Google deve verificar.

As tabelas a seguir mostram os atributos que você pode adicionar com base nos protocolos que quer que o Google use para verificar seu dispositivo:

mDNS
Atributo Descrição Valor de exemplo
Nome do serviço Obrigatório. Nome do serviço publicado pelo dispositivo no formato service.domain. _http._tcp.local
Nome

Obrigatório. Filtre por uma instância de serviço exclusiva no formato instance.service.domain.

A plataforma trata esse valor como uma expressão regular e retorna todos os dispositivos correspondentes.
my-device-[0-9]{4}\._http\._tcp\.local
UPnP
Atributo Descrição Valor de exemplo
Tipo de serviço Obrigatório. Identificador totalmente qualificado do serviço UPnP no formato domain:service:type:version. schemas-upnp-org:service:SwitchPower:1
OUI

Opcional. Identificador exclusivo organizacional.

Valor de 24 bits que identifica o fabricante do dispositivo. Normalmente, os três primeiros octetos do endereço MAC do dispositivo.
1A:2B:3C
UDP
Atributo Descrição Valor de exemplo
Endereço de transmissão Obrigatório. Endereço IP de destino da transmissão UDP. 255.255.255.255
Porta de transmissão Obrigatório. Porta de destino para a transmissão UDP. 5555
Ouvir porta Obrigatório. Porta de detecção para a resposta de descoberta UDP. 5556
Pacote do Discovery

Obrigatório. Payload a ser enviado na transmissão UDP.

Formatado como uma string de bytes codificada em hexadecimal.
48454C4C4F

Atualizar a resposta do SYNC no fulfillment da nuvem

A intent SYNC informa ao Assistente os dispositivos que o usuário controla e os recursos deles.

Para oferecer compatibilidade com o fulfillment local, a plataforma local do Google Home verifica a resposta SYNC do fulfillment da nuvem da sua ação de casa inteligente e tenta corresponder os IDs de dispositivos no campo otherDeviceIds ao ID de verificação retornado pelo IDENTIFY. As entradas do dispositivo sem um campo otherDeviceIds são excluídas do fulfillment local.

No campo otherDeviceIds da resposta SYNC, você precisa definir os IDs dos dispositivos de casa inteligente que podem ser controlados localmente. O campo aparece no nível da device na resposta. O Google pode estabelecer um caminho de fulfillment local em qualquer dispositivo com o ID fornecido.

Use o campo customData para especificar outros dados que o Google precisa para se conectar a um dispositivo independente ou para segmentar dispositivos finais por meio de um hub (por exemplo, o número da porta e outras informações específicas do protocolo).

Exemplo

O snippet a seguir mostra como criar o gerenciador SYNC.

Independente/Hub
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "agentUserId": "1836.15267389",
    "devices": [{
      "id": "123",
      "type": "action.devices.types.OUTLET",
      "traits": [
        "action.devices.traits.OnOff"
      ],
      "name": {
        "name": "Night light"
      },
      "willReportState": false,
      "otherDeviceIds": [{
        "deviceId": "local-device-id"
      }],
      "customData": {
        "port": 5555,
        "authToken": "..."
      }
    }]
  }
}