En esta página, se explica cómo las puertas de enlace pueden enviar datos y mensajes de configuración de retransmisión para dispositivos asociados.
La app de demostración de concentrador escucha los mensajes de configuración y envía información de estado en nombre de un dispositivo para mostrar cómo funcionan las puertas de enlace de extremo a extremo. Esta app puede usar la muestra de administrador existente o las funciones locales para administrar dispositivos y usa la muestra de concentrador para administrar un dispositivo vinculado y conectarse al puente del protocolo MQTT en nombre de ese dispositivo.
Cuando se ejecute la demostración, verás un resultado similar al siguiente.
Running demo
Creating registry: test-registry-1541200612
Created registry
Creating gateway: test-device-RS256
Created gateway {u'gatewayConfig': {u'gatewayType': u'GATEWAY', u'gatewayAuthMethod': u'ASSOCIATION_ONLY'} ... }
Creating device to bind: test-device-noauthbind
Created Device {u'numId': u'2552202179450953', u'config': {u'version': u'1', u'cloudUpdateTime': u'2018-11-02T23:16:58.198419Z'}, u'id': u'test-device-noauthbind', u'gatewayConfig': {u'gatewayType': u'NON_GATEWAY', u'gatewayAuthMethod': u'ASSOCIATION_ONLY'} ...}
Binding device
Device Bound!
Listening for messages for 30 seconds
Try setting configuration in:
https://console.cloud.google.com/iot/locations/us-central1/registries/test-registry-1541200612?project=noun-verb-123
Press enter to continue
Creating JWT using RS256 from private key file resources/rsa_private.pem
Attaching: /devices/test-device-noauthbind/attach
Waiting for device to attach.
('on_connect', 'Connection Accepted.')
on_publish
on_subscribe
Received message 'device-config' on topic '/devices/test-device-noauthbind/config' with Qos 1
on_subscribe
Received message 'gateway-config' on topic '/devices/test-device-RS256/config' with Qos 1
Detaching: /devices/test-device-noauthbind/detach
Finished.
Publishing messages demo
Publishing: 15 messages
Creating JWT using RS256 from private key file resources/rsa_private.pem
Attaching: /devices/test-device-noauthbind/attach
Waiting for device to attach.
Starting HUB at: 1541200710.73
('on_connect', 'Connection Accepted.')
on_publish
Publishing message 1/15: 'test-registry-1541200612/test-device-RS256-test-device-noauthbind-payload-1' to /devices/test-device-noauthbind/state
...
on_publish
Publishing message 15/15: 'test-registry-1541200612/test-device-RS256-test-device-noauthbind-payload-15' to /devices/test-device-noauthbind/state
Detaching: /devices/test-device-noauthbind/detach
on_publish
Finished.
You can read the state messages for your device at this URL:
https://console.cloud.google.com/iot/locations/us-central1/registries/test-registry-1541200612/devices/test-device-noauthbind?project=noun-verb-1234
Device unbound: {}
Delete device
Delete device
Delete registry
El siguiente código muestra la fuente completa de la secuencia de comandos de demostración:
Python
La secuencia de comandos de demostración realiza las siguientes operaciones:
- Crea un registro de demostración
- Crea una puerta de enlace
- Cómo crear un dispositivo para vincular
- Vincula el dispositivo a la puerta de enlace
- Escucha mensajes de configuración
- Cómo enviar datos de estado
- Quita los recursos que se usaron en la demostración
Crea un registro de demostración
Primero, se crea un registro de dispositivo temporal que se limpiará cuando finalice la demostración. Este registro contendrá la puerta de enlace, que es un tipo especial de dispositivo, así como un dispositivo que administrará la puerta de enlace. El código de muestra de registro de creación se usa para hacer esto.
Python
En el siguiente código, se muestra cómo el administrador de muestra crea un registro de dispositivo.
Python
Después de crear el registro, estarás listo para agregar dispositivos.
Crea una puerta de enlace
El primer dispositivo que se agrega al registro es un tipo especial de dispositivo llamado puerta de enlace. Este dispositivo puede tener su propia configuración asociada y también puede tener otros dispositivos vinculados para que pueda comportarse como un proxy. Después de crearlo, el dispositivo de puerta de enlace puede conectarse al puente de protocolo de Cloud IoT Core con sus credenciales asociadas.
Python
El siguiente código muestra cómo la muestra central crea el dispositivo de puerta de enlace especial.
Python
Crea un dispositivo para vincular
Antes de poder vincular un dispositivo a una puerta de enlace, se debe crear un dispositivo dentro del registro con la puerta de enlace. La demostración usa la muestra central para crear un dispositivo.
Python
En el siguiente código, se muestra cómo la muestra central crea el dispositivo para la vinculación.
Python
Vincular el dispositivo a la puerta de enlace
Con el dispositivo y la puerta de enlace en el registro de demostración, estás listo para vincular el dispositivo a la puerta de enlace. Cuando se vincula el dispositivo a la puerta de enlace, se permite la conexión y desconexión del dispositivo a través de su conexión con el puente de protocolo de Cloud IoT Core. La app de demostración usa la muestra de concentrador para hacer esto de la siguiente manera.
Python
En el siguiente código, se muestra cómo el concentrador vincula el dispositivo a la puerta de enlace.
Python
Escucha mensajes de configuración
Una vez que el dispositivo está vinculado a la puerta de enlace, la puerta de enlace puede conectarse al puente de protocolo de Cloud IoT Core, conectar el dispositivo y, luego, recibir mensajes de configuración para ese dispositivo. Para ello, la demostración usa una función auxiliar en la muestra de concentrador.
Python
En la muestra central, el cliente Paho MQTT se usa para conectarse al puente de protocolo de la siguiente manera.
Python
Ten en cuenta que la muestra se detiene antes de comenzar este paso para que puedas navegar a la consola para desarrolladores antes de comenzar a escuchar y establecer datos de configuración para la puerta de enlace o el dispositivo vinculado y puedas verifique que se esté recibiendo la configuración más reciente.
Enviar datos de estado
Después de demostrar cómo puedes recibir mensajes de configuración en nombre de una puerta de enlace y sus dispositivos vinculados, la app de demostración envía datos de estado en nombre del dispositivo asociado. Para ello, la demostración usa la función auxiliar de la app de muestra de Hub.
Python
Python
La demostración se pausará después de transmitir los datos de estado en nombre del dispositivo vinculado para que puedas navegar a la consola para desarrolladores antes de que se quiten los dispositivos y los registros de demostración en el siguiente paso.
Quita los recursos que se usaron en la demostración
Cuando la demostración termina, libera los dispositivos y registros que se asignaron al principio.
Python
El dispositivo se desenlaza de la puerta de enlace antes de que se borre.
Python
Se usa una función auxiliar de la muestra de administrador para borrar el dispositivo vinculado y la puerta de enlace.
Python
Por último, se usa una función auxiliar de la muestra de administrador para borrar el registro.
Python
En este punto, ha visto que la funcionalidad de la puerta de enlace funciona de extremo a extremo.