Cette page explique comment les passerelles peuvent envoyer des données et des messages de configuration de relais pour les appareils associés.
L'application de démonstration du hub écoute les messages de configuration et envoie des informations d'état au nom d'un appareil pour montrer le fonctionnement des passerelles de bout en bout. Cette application peut gérer les appareils à l'aide de l'exemple de gestionnaire existant ou des fonctions locales, et utiliser l'exemple de hub pour gérer un appareil lié et se connecter au pont de protocole MQTT pour le compte de cet appareil.
Lorsque la démo s'exécute, un résultat semblable au suivant s'affiche.
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
Le code suivant montre la source complète du script de démonstration :
Python
Le script de démonstration effectue les opérations suivantes :
- Créer un registre de démonstration
- Créer une passerelle
- Créer un appareil à lier
- Associer l'appareil à la passerelle
- Écouter les messages de configuration
- Envoyer des données d'état
- Supprimer les ressources utilisées dans la démonstration
Créer un registre de démonstration
La démonstration crée d'abord un registre d'appareils temporaire qui sera nettoyé à la fin de la démonstration. Ce registre contiendra la passerelle, qui est un type d'appareil spécial, ainsi qu'un appareil qui sera géré par la passerelle. Pour ce faire, vous allez utiliser l'exemple de code de registre.
Python
Le code suivant montre comment l'exemple de gestionnaire crée un registre d'appareils.
Python
Une fois le registre créé, vous pouvez ajouter des appareils.
Créer une passerelle
Le premier appareil ajouté au registre est un type spécial d'appareil appelé "passerelle". Cet appareil peut être associé à sa propre configuration et à d'autres appareils pour qu'il se comporte comme un proxy. Une fois créé, le dispositif de passerelle peut se connecter au pont de protocole Cloud IoT Core à l'aide des identifiants qui lui sont associés.
Python
Le code suivant montre comment l'exemple de hub crée le dispositif de passerelle spécial.
Python
Créer un appareil à associer
Pour pouvoir lier un appareil à une passerelle, vous devez en créer un dans la registre à l'aide de la passerelle. La démonstration utilise l'exemple de hub pour créer un appareil.
Python
Le code suivant montre comment l'exemple de hub crée l'appareil pour la liaison.
Python
Associer l'appareil à la passerelle
Avec l'appareil et la passerelle dans le registre de démonstration, vous êtes prêt à lier l'appareil à la passerelle. En associant l'appareil à la passerelle, vous permettez à celle-ci de l'associer et de la dissocier via sa connexion au pont de protocole Cloud IoT Core. L'application de démonstration utilise l'exemple de hub comme suit.
Python
Le code suivant montre comment le hub associe l'appareil à la passerelle.
Python
Écouter les messages de configuration
Une fois l'appareil lié à la passerelle, celle-ci peut se connecter au pont de protocole Cloud IoT Core, y associer le périphérique, puis recevoir des messages de configuration pour celui-ci. Pour ce faire, elle utilise une fonction d'assistance dans l'exemple de hub.
Python
Dans l'exemple de hub, le client MQTT Paho permet de se connecter au pont de protocole comme suit.
Python
Notez que l'exemple s'interrompt avant de commencer cette étape afin que vous puissiez accéder à la console de développement avant qu'elle ne commence à écouter, définir les données de configuration de votre passerelle ou de votre appareil lié et vérifier que la dernière configuration est reçue.
Envoyer les données d'état
Après avoir montré comment recevoir les messages de configuration au nom d'une passerelle et de ses appareils liés, l'application de démonstration envoie des données d'état au nom de l'appareil associé. Pour ce faire, la démonstration utilise la fonction d'assistance de l'exemple d'application hub.
Python
Python
La démonstration se met en pause après la transmission des données d'état au nom de l'appareil lié, afin que vous puissiez accéder à la console de développement avant la suppression du registre de démonstration et des appareils à l'étape suivante.
Supprimer les ressources utilisées dans la démonstration
Une fois la démonstration terminée, elle libère les appareils et le registre qui ont été attribués au début.
Python
L'appareil est dissocié de la passerelle avant d'être supprimé.
Python
Une fonction d'assistance de l'exemple de gestionnaire permet de supprimer à la fois l'appareil lié et la passerelle.
Python
Enfin, une fonction d'assistance de l'exemple de gestionnaire est utilisée pour supprimer le registre.
Python
À ce stade, vous avez pu constater que la fonctionnalité de passerelle fonctionne de bout en bout.