Como usar gateways com a ponte HTTP

Ao usar um gateway com a ponte HTTP, você precisa vincular os dispositivos ao gateway. Antes de começar, leia Como usar a ponte HTTP para informações gerais sobre como usar a ponte HTTP com o Cloud IoT Core.

Para usar gateways com a ponte HTTP:

  1. Crie e configure o gateway, caso ainda não tenha feito isso.
  2. Crie dispositivos caso ainda não tenha feito isso.
  3. Vincule os dispositivos ao gateway.
  4. Use o gateway para publicar eventos de telemetria e atualizar a configuração de um dispositivo.

Como publicar os eventos de telemetria do dispositivo pelo gateway

Depois de vincular o dispositivo ao gateway, use o método publishEvent para publicar eventos de telemetria em nome do dispositivo no Cloud IoT Core. Os dados de payload binários precisam ser codificados em base64.

Para mais segurança, você pode usar o JWT do dispositivo para enviar a mensagem em vez do JWT do gateway. O JWT fornecido precisa corresponder ao caminho do dispositivo da solicitação.

Usando o JWT do gateway:

curl -X POST -H 'authorization: Bearer GATEWAY_JWT' -H 'content-type: application/json' --data '{"binary_data": "DATA", "gateway_info": {"delegated_device_id: "device-id"}}' -H 'cache-control: no-cache' 'https://cloudiotdevice.googleapis.com/v1/projects/{project-id}/locations/{cloud-region}/registries/{registry-id}/devices/{gateway-id}:publishEvent'

Usando o JWT do dispositivo:

curl -X POST -H 'authorization: Bearer DEVICE_JWT' -H 'content-type: application/json' --data '{"binary_data": "DATA", "gateway_info": {"gateway_id: "gateway-id"}}' -H 'cache-control: no-cache' 'https://cloudiotdevice.googleapis.com/v1/projects/{project-id}/locations/{cloud-region}/registries/{registry-id}/devices/{device-id}:publishEvent'

Os eventos de telemetria são encaminhados para um tópico do Cloud Pub/Sub, conforme especificado no Console do Cloud ou com o campo eventNotificationConfigs[i].pubsubTopicName no recurso de registro do dispositivo. O método publishEvent fornece um campo subFolder opcional para classificar eventos de telemetria. Para saber como publicar dados de subpastas para separar tópicos do Pub/Sub, consulte como usar a ponte HTTP.

Como atualizar a configuração do dispositivo por meio do gateway

Os gateways precisam solicitar novas configurações explicitamente para os dispositivos anexados a ele ao usar a ponte HTTP.

Para ver a configuração do dispositivo disponível no Cloud IoT Core, use uma solicitação getConfig. É possível incluir o JWT a partir do gateway ou do dispositivo no cabeçalho do portador da autorização.

Usando o JWT do gateway:

curl -X POST -H 'authorization: Bearer GATEWAY_JWT' -H 'content-type: application/json' --data '{"binary_data": "DATA", "gateway_info": {"delegated_device_id: "device-id"}}' -H 'cache-control: no-cache' 'https://cloudiotdevice.googleapis.com/v1/projects/{project-id}/locations/{cloud-region}/registries/{registry-id}/devices/{gateway-id}/config?local_version=0'

Usando o JWT do dispositivo:

curl -X POST -H 'authorization: Bearer DEVICE_JWT' -H 'content-type: application/json' --data '{"binary_data": "DATA", "gateway_info": {"gateway_id: "gateway-id"}}' -H 'cache-control: no-cache' 'https://cloudiotdevice.googleapis.com/v1/projects/{project-id}/locations/{cloud-region}/registries/{registry-id}/devices/{device-id}/config?local_version=0'

Como configurar o estado do dispositivo por meio do gateway

Use uma solicitação setState para informar o estado do dispositivo ao Cloud IoT Core. Os dados de estado precisam ser codificados em base64. É possível incluir o JWT a partir do gateway ou do dispositivo no cabeçalho do portador da autorização.

Usando o JWT do gateway:

curl -X POST -H 'authorization: Bearer GATEWAY_JWT' -H 'content-type: application/json' --data '{"state": {"binary_data": "DATA"}, "gateway_info": {"delegated_device_id: "device-id"}}' -H 'cache-control: no-cache' 'https://cloudiotdevice.googleapis.com/v1/projects/{project-id}/locations/{cloud-region}/registries/{registry-id}/devices/{gateway-id}:setState'

Usando o JWT do dispositivo:

curl -X POST -H 'authorization: Bearer DEVICE_JWT' -H 'content-type: application/json' --data '{"state": {"binary_data": "DATA"}, "gateway_info": {"gateway_id: "gateway-id"}}' -H 'cache-control: no-cache' 'https://cloudiotdevice.googleapis.com/v1/projects/{project-id}/locations/{cloud-region}/registries/{registry-id}/devices/{device-id}:setState'

Como receber dados de estado do dispositivo

Para recuperar dados do estado do dispositivo, veja os detalhes do dispositivo no Console do Cloud ou use a API. Para mais detalhes, consulte Como receber dados de estado do dispositivo.