Cette page explique comment les passerelles peuvent envoyer des données et transmettre des messages de configuration pour les appareils associés.
L'application de démonstration 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 utiliser l'exemple de gestionnaire existant ou les fonctions locales pour gérer les appareils, et l'exemple Hub pour gérer un appareil lié et se connecter au pont de protocole MQTT au nom de cet appareil.
Lors de la démonstration, 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 à associer
- Rattacher l'appareil à la passerelle
- Écouter les messages de configuration
- Envoyer les 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 temporaire d'appareils 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 devez 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 particulier d'appareil appelé "passerelle". Cet appareil peut être associé à sa propre configuration et peut également être associé à d'autres appareils pour qu'il puisse se comporter en tant que proxy pour eux. Une fois créé, le dispositif de passerelle peut se connecter au pont de protocole Cloud IoT Core à l'aide des identifiants associés.
Python
Le code suivant montre comment l'exemple de hub crée l'appareil de passerelle spéciale.
Python
Créer un appareil à associer
Avant de pouvoir lier un appareil à une passerelle, vous devez créer un appareil dans le registre avec la passerelle. La démonstration utilise l'exemple Hub pour créer un appareil.
Python
Le code suivant montre comment l'exemple Hub crée l'appareil pour la liaison.
Python
Associer l'appareil à la passerelle
Avec l'appareil et la passerelle figurant 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 le pont de protocole Cloud IoT Core. L'application de démonstration utilise l'exemple Hub pour effectuer cette opération 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 associé à la passerelle, celle-ci peut se connecter au pont de protocole Cloud IoT Core, associer l'appareil, puis recevoir des messages de configuration la concernant. La démonstration utilise une fonction d'assistance de l'exemple Hub.
Python
Dans l'exemple de hub, le client Paho MQTT sert à 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 des données d'état
Une fois que vous avez appris à recevoir des messages de configuration au nom d'une passerelle et de ses appareils associé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, cela libère les appareils et le registre qui ont été alloué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'aide de l'exemple de gestionnaire permet de supprimer le registre.
Python
À ce stade, vous avez vu la fonctionnalité de passerelle de bout en bout.