Suite à un achat pour ajouter une lumière décorative à un bureau, j’en ai profité pour commander un contrôleur WiFi de bandeau LED. Celui-ci (chinois…) fonctionne avec l’application MagicHomePro.
Ce type de contrôleur est géré dans Home-Assistant via une librairie python « flux_led ». A priori, cela serait également géré par un plugin jeedom WiFilightV2 (payant). Mais impossible de savoir avant s’il est bien géré car le plugin ne gère que les contrôleurs RGBW/RGBWW. Evidemment, le mien n’est que RGB…
Installation préalable et configuration hors jeedom
- Installer le bandeau LED physiquement, faire le collage, les pliages éventuels
- Configurer le contrôleur de bandeau LED avec l’application Magic Home PRO. Le mode local est suffisant.
- Fixer l’adresse IP du contrôleur de bandeau LED dans votre routeur.
J’ai l’avantage d’avoir un routeur sous openwrt. J’ai donc décider de donner un nommage fixe à mon bandeau led, cela me sera utile plus tard. Mon bandeau led est nommé « bandeau-led-1.lan« . Si ce n’est pas le cas, pensez bien à noter l’adresse IP de votre (vos) bandeaux leds.
Configuration jeedom
Se connecter sur jeedom via ssh (puTTy, mobaxterm) pour installer les modules python3 flux_led et webcolors.
sudo pip3 install flux_led sudo pip3 install webcolors
On en profite pour tester l’allumage (-1) et l’extinction du bandeau led (-0) via la ligne de commande. C’est une étape indispensable, si cela ne fonctionne pas, impossible de contrôler votre bandeau avec jeedom…
flux_led bandeau-led-1.lan -1 flux_led bandeau-led-1.lan -0
Voir l’aide de flux_led pour les autres paramètres éventuels
Par exemple, on peut une fonction de changement de couleur (en rouge)
flux_led bandeau-led-1.lan -c "#FF0000"
En l’état actuel on peut déjà utiliser le plugin script pour exécuter les commandes On / Off, et changement de couleur.
Pour cela, depuis le plugin script on crée un nouvel équipement, et dans l’onglet commandes on crée 3 commandes distinctes de type script
- Une commande action « On » avec la requête flux_led bandeau-led-1.lan -1
- Une commande action « Off avec la requête flux_led bandeau-led-1.lan -0
- Une commande action « Color » de type action/couleur avec la commande flux_led bandeau-led-1.lan -c « #color# »
C’est pas mal… Mais il nous manque un retour d’état. Et mauvais point de flux_led, il n’y a pas de commande dans flux_led pour renvoyer l’état…
Mais après tout, comme on a commencé à faire un script, il est temps de passer au niveau 2 : on va créer notre propre script python en faisant appel aux classes de flux_led.
Script de retour d’état
Pour créer un script depuis jeedom, rien de plus simple. On crée une nouvelle commande (Etat) depuis l’équipement de type script info / numérique. Oui, numérique, impossible d’utiliser le retour binaire dans Jeedom… Dans la partie requête on clique sur l’icône verte « nouveau ». J’ai nommé mon script valueBandeau.py mais vous pouvez l’appeler comme bon vous semble.
Voilà un exemple de script. Il n’est pas super propre, il faudrait encadrer l’appel à WifiLedBulb avec un try catch et une gestion des erreurs pour renvoyer autre chose… bref… Le script est assez simple, et prend un seul paramètre : l’adresse IP ou nom
!/usr/bin/env python3 from flux_led import * from argparse import ArgumentParser def main(): parser = ArgumentParser(description='Return status of a WiFi LED controler.') parser.add_argument('ip',help='IP of WiFi LED controler') args = parser.parse_args() bulb1 = WifiLedBulb(args.ip) bulb1Status = bulb1.isOn() if bulb1.isOn(): print("1") else: print("0") if name == 'main': main()
Une fois le script sauvegardé, il faut ajouter l’adresse IP ou nom DSLAN en paramètre.
Dans mon cas, cet appel est :
/var/www/html/plugins/script/data/valueBandeau.py bandeau-led-1.lan
Reste ensuite à mettre en place la partie widget. Mais je vous laisse faire ce que vous voulez. Exemple chez moi :
Et voilà, un bandeau LED intégré pour quelques heures de travail.