Contrôleur bandeau LED WiFi Magic Home Pro et Jeedom

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

  1. Installer le bandeau LED physiquement, faire le collage, les pliages éventuels
  2. Configurer le contrôleur de bandeau LED avec l’application Magic Home PRO. Le mode local est suffisant.
  3. 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.

Gérer le protocole io-homecontrol dans jeedom

Ah, la domotique par les pros… ou pourquoi faire simple quand on peut faire complexe, chiant, fermé et cher.

Vous n’avez jamais entendu parler d’io-homecontrol ? Et bien … Pour ceux qui ne connaissent pas ce protocole, allez voir ce joli site le présentant.

Alors sur le papier d’internet, ça claque, on vend du rêve. Dans la réalité…

Détails du protocole

Il s’agit d’un protocole fermé, propriétaire, sans fil, basé sur les fréquences radio 868Mhz, utilisé par certaines grandes marques. Typiquement les volets roulants Somfy, les portails électriques, les radiateurs électriques compatibles « Cozytouch » de chez atlantic, sauter…

Les points positifs du protocoles :

  • gestion du retour d’état (pratique pour indiquer le pourcentage d’ouverture de volet …)
  • une sécurité renforcé, idéal pour les alarmes
  • la facilité de mise en oeuvre, et la présence de beaucoup de matériels « pro » pour les artisans.

Les points négatifs du protocole :

  • Il est verrouillé de partout. Pas d’API ouverte. Passez votre chemin, gens de l’open source…
  • Il nécessite un serveur central, unique. Pas de maillage intelligent.
  • Il est sur une fréquence qui peut être perturbé / brouillés facilement.

Chaque appareil possède une clé (unique) de sécurité ET un identifiant de son type de matériel. Sauf que … et bien, pour contrôler l’appareil, il faut passer par un nœud central (serveur / matériel) qui doit « reconnaître » le type du matériel. C’est à dire que pour chaque type d’appareil, il faut que ça soit codé en dur dans le serveur. A priori il n’existe pas de type « chauffage électrique » unifié, de type « volets roulants à pourcentage ». Chaque serveur central doit avoir une liste d’appareils connus ET contrôlable par lui.

Par exemple : les « box » cozytouch peuvent contrôler les radiateurs, mais pas les volets roulants. Et les box tahoma peuvent contrôler certains radiateurs cozytouch, mais pas tous… Et la freebox delta ne sait pas contrôler les radiateurs. 3 box différentes, 3 fois le même protocole, 3 compatibilités différentes. On a vu plus simple …

Utilisation en domotique

Forcément, avec toutes ces qualités, les logiciels open-source n’ont pas de protocole IO. … et ne l’auront surement jamais. Open-hab a un topic sur le sujet de hacking du protocole. Mais ça n’avance pas … le protocole est bien sécurisé.

Si le protocole n’est pas craqué, il existe d’autres méthodes de contrôle :

IO or not IO ?

Est ce qu’à l’heure actuelle on a besoin de s’embêter avec IO ? Et bien, ça dépend… de vos besoins. Mais sachez qu’il existe des équivalents à presque tous les produits IO-homecontrol dans d’autre protocoles. Et souvent moins cher, car les puces Zigbee, Z-wave ou Wi-Fi sont produites en grand nombre.

  • les radiateurs connectés commencent à avoir des puces wifi et des logiciels de contrôle à distance (type « heatzy »).
  • Des moteurs de volets roulants compatibles Zigbee (profalux…), Z-wave sont déjà disponibles.
  • Les prises électriques type TP-link (wi-fi) ou ikea Tradfri (zigbee) coutent bien moins cher que leurs équivalents IO-homecontrol
  • Les caméra, ethernet, wi-fi…
  • Les éclairages : Signify « Philips » Hue (Zigbee), Yeelight (Wi-Fi) …
  • Les carillons connectés (Doorbird, Arlo, netatmo…)

Seule catégorie qui résiste encore et toujours à l’envahisseur au Z, les moteurs de portails électriques et de garage. Et encore, avec un peu de bricolage, on peut les rendre Z-Wave contrôlable… Et cet avantage n’aura qu’un temps…

Zorglub, vrai inventeur du Z-wave ?

Sachant que le protocole n’apporte rien de plus par rapport à d’autres protocoles qui sont supportés par plus d’acteurs … voir les mêmes : Somfy, Atlantic, Velux, font partie des supporters de io-hometouch ET de la Zigbee Alliance, je ne donne pas un grand avenir à l’IO-homecontrol pour la domotique « personnelle » type jeedom.

Pour le grand public, la question peut encore se poser. Mais pour combien de temps….

Inspiration du week-end (Episode VII)

Comme (presque) tous les dimanches, voici deux / trois liens vers des tutoriaux d’autres sites pour donner des idées d’inspiration en domotique. Pour le coup, il s’agit de tutoriaux lumineux 🙂

Lorsqu’on cherche à connecter les luminaires de sa maison, on peut utiliser trois technos : des ampoules connectés (Philips Hue, Xiaomi Yeelight etc.), des modules connectés à intégrer dans les boîtiers interrupteurs, dans les murs (Sonoff, Shelly…) et enfin, la 3e option c’est de changer ces interrupteurs pour des versions connectés (Legrand) et/ou tactiles (Livolo, Broadlink TC2).

Concernant les Sonoff et Shelly, j’avais déjà partagé quelques liens : https://www.skipcool.ovh/2019/01/27/inspiration-du-week-end-3e-edition/ … Je n’en parlerai pas plus.

Les ampoules connectés et Jeedom

Tutorial : plugin Philips Hue dans Jeedom par Domotique Techoseb27

Tutorial : les ampoules Yeelight dans Jeedom par Tests, Avis & Compagnie

Bonus : Comparaison des Xiaomi Yeelight V1 et V2 par Domo-attitude

Les interrupteurs connectés et tactiles

Les Broadlink TC2 sont des interrupteurs radio (433Mhz) On peut donc les inclure via … les récepteurs broadlink et donc le plugin broadlink de Jeedom. A ma connaissance, il existe une seule méthode identifiée pour les inclure sur le forum de Jeedom

Test des livolo en Zigbee par Domo-attitude . A noter que, comme broadlink, il existe également des versions 433Mhz

Note : si Zigbee est un protocole bien plus pratique que les fréquences 433 Mhz, permettant des retours d’états et une inclusion avec du matériel divers, il a d’autres inconvénients non cités dans l’article, comme le partage de fréquence avec le Wi-Fi. Voir l’article suivant (en anglais) pour les détails techniques : ZigBee and WiFi Coexistence.

Jour …Nuit…

Bon dimanche à tous.