Exécuter un script python depuis la RB4

Bonjour à tous,

Je suis tout nouveau sur le projet Gladys que j’observe de loin depuis quelques années.
C’est un assistant que je souhaite utiliser, mais sous conditions.
Je dispose d’un joli bureau en bois avec résine époxy semi-transparente blanche qui contient un ruban de LEDs adressables.

Je suis vraiment sur le point de commander une RB4 afin d’y installer l’assistant, mais il faut que je sache avant si il est possible de créer une scène qui exécuterait un script en python directement depuis la RB ?

En effet, vu qu’il s’agit de LED adressable la commande est un peu différente (Après lecture de la datasheet du composant, j’ai estimé que l’usage de la PWM de la board serait très pratique), c’est pourquoi j’aurais besoin de python pour gérer tout ca.

De plus j’ai une petite maquette électronique qui gère de l’alimentation, je ne souhaite pas la mettre en réseau car cela impliquerait l’achat d’équipements de com compatibles supplémentaires… L’objectif est de piloter les pins (toujours via un script python)

Est ce faisable ?
Merci d’avance,
Matt

Salut @MattDudu et bienvenue sur Gladys :slight_smile:

Tu peux carrément faire ça avec l’intégration MQTT.

Tu peux créer dans Gladys un appareil « MQTT » de type « lumière », et lui donner les caractéristiques qu’il a (on/off + luminosité + couleur par exemple), et Gladys te fournira des topics MQTT sur lesquels écouter dans ton script Python.

Ensuite côté Python, il faut que tu utilise une lib MQTT pour te connecter au broker MQTT, et écouter sur les topics fourni par Gladys.

A chaque changement d’état côté Gladys, un message sera publié sur le topic MQTT et tu recevras le message dans ton script :slight_smile:

N’hésite pas si tu as des questions

Salut @pierre-gilles :slight_smile:

Merci pour ta réponse rapide, il faudra que je m’intéresse à l’API MQTT alors, c’est noté !
Ca me fait penser à un OS appelé ROS (Pour Robot Operating System que j’utilisais sur un robot à l’école pour faire communiquer les différents périphériques avec ce même système d’abonnements à des topics, du coup dans l’idée je vois comment ca marche)

Mais ca reste assez flou dans mon esprit, le « fameux » .py sera bien stocké sur la raspberry ?
Car j’imagine que lorsque la RB démarre elle lance directement l’interface Gladys (Si on imagine qu’on est sur la sortie HDMI) ? Ou bien c’est toujours une interface style bureau Rasbian ?

Merci d’avance =)
Matt

C’est accessible dans ton navigateur, gladys c’est juste un conteneur docker qui tourne sur raspbian lite ( pas d’environnement de bureau).

Tu peux faire ce que tu veux sur l’OS ( python) c’est indépendant de gladys ( car gladys est isolée dans un conteneur)

D’acc, je comprend maintenant, c’est parfait donc :smiley:

Dans cet hypothèse on est donc bien d’accord que la RB peut elle même être considérée comme un appareil MQTT ? Et si on pousse un peu la théorie plusieurs « appareils » (Qui contrôlerons pourquoi pas différentes PINs) peuvent être décrit en différents scripts python ? (Avec 1 script = 1 appareil)

Merci pour vos aides et explications !

Matt

Ça, c’est le principe tout sur la même machine, tu peux commencer avec ça.

Si tu veux pousser le système plus loin et avoir plusieurs Raspberry Pi, il faut que tu :

  • vérifie que le broker MQTT a bien ses ports ouverts (c’est le cas avec Gladys)
  • vérifie que les autres Raspberry Pi peuvent contacter le broker MQTT
  • gère bien les différents Topics MQTT dans chaque script Python (installé sur chaque RPI)

Je te conseille quelques documentations :

https://www.ev3dev.org/docs/tutorials/sending-and-receiving-messages-with-mqtt/

2 Likes

@cicoub13 Waw, merci beaucoup pour toutes ces explications, c’est beaucoup plus clair maintenant !

C’est super intéressant, je vais partir sur un achat et puis expérimenter tout ca :wink:

Encore merci à vous tous :heart_eyes:

2 Likes