Commande : envoi d'un message descendant vers un dispositif =========================================================== À l'issue de ce tutoriel, vous serez capables de: - envoyer un message depuis l'extérieur |OF_NETWORK| |NETWORK_FULL_NAME| vers un dispositif connecté au réseau - recevoir un message descendant sur un dispositif .. include:: preamble-lopy.rst Envoyer le message ------------------ L'envoi d'un message vers un dispositif se fait par une API REST. Il est nécessaire de récupérer l'identifiant REST du dispositif, soit dans `l'interface Wavebricks `_ soit par une requête REST : .. code-block:: http GET /api/v1/devices/find?dev_eui=5F4170704555495F HTTP/1.1 Host: api.wavebricks.com HTTP/1.1 200 OK Content-Type: application/json {"id":"TU9OX0VVSV8="} On envoie le contenu du message dans un objet JSON : .. code-block:: http POST /api/v1/devices/TU9OX0VVSV8/messages HTTP/1.1 Host: api.wavebricks.com Content-Type: application/json {"format":"raw", "paylaod":1} HTTP/1.1 200 OK Recevoir le message ------------------- Pour pouvoir recevoir le message descendant, on demande au dispositif d'être en permanence à l'écoute : .. literalinclude:: commande/commande.py :language: python :lines: 7 Attention, cette écoute permanente est pertinente pour un objet connecté à une source d'énergie (cf. :ref:`ecodispo`). Pour éviter de devoir décider nous-même du délai à attendre, on rend la *socket* bloquante (ainsi la méthode :samp:`recv` ne retourne qu'une fois les données reçues) : .. literalinclude:: commande/commande.py :language: python :lines: 20 On peut alors lire les données reçues : .. literalinclude:: commande/commande.py :language: python :lines: 23 Code complet ------------ .. literalinclude:: commande/commande.py :language: python