Gestion de l’éclairage avec le Xiaomi Magic Controller (Mi Cube) et Jeedom

Salut à tous !  Aujourd’hui petit article pour vous présentez un scénario Jeedom utilisant au mieux le Xiaomi Magic Controller  dans la gestion des lumières.

L’ idée est de contrôler la luminosité des lumières en tournant le cube sur lui même et d’allumer/éteindre ces mêmes lumières via différentes commandes. 

Pour ceux qui ne connaissent pas la bête, il ressemble à ça :

Capture

C’est donc un petit cube de 4.5 cm de coté , contenant une pile , un module d’émission en ZigBee , et un accéléromètre / Gyroscope 3 axes.

Il est de la marque « Xiaomi », et ne fonctionne qu’avec la « Mi Smart Gateway ». Du coté de Jeedom, il faut bien entendu avoir le plugin dédié a Xiaomi.

Ce petit cube permet donc à la manière d’une télécommande, et via les mouvements qu’on lui applique d’envoyer différentes actions vers la Gateway et donc notre Jeedom.

Si vous voulez faire impression , achetez ce petit cube magique futuriste ! 😉

 

xiaomi_mi_cube_magic_smart_controller_wp1020390402181_2_
Voila donc les différentes actions qu’il est possible d’appliquer à notre bestiole.

Données Reçues du Mi Cube :

Au niveau de Jeedom, on reçoit des données si on applique au cube :

  1. Une translation –> « move »
  2. Un double tap –> « tap_twice » ( Vous prenez le cube et vous le tapez deux fois sur la surface sur laquelle il repose , mais pas trop fort hein 😉 )
  3. Un basculement à 90° –> « flip90″
  4. Un basculement à 180° –> « flip180″
  5. Une chute  libre –> « free_fall »  (Un peu bourrin le truc..)
  6.  Secouer la bestiole –> « shake_air »
  7.  Vous le faites tourner sur lui même sens horaire et anti-horaire –> « rotate_left » et « rotate_right » . Dans ce cas, il vous retourne également la valeur de la rotation en degrés ; positive ou négative selon le sens.
  8. N’importe quoi qui n’est pas le reste –> « alert » (En gros vous posez le cube derrière une porte et ça devient une alarme portative, rien que ça)

 

Objectifs du Scénario :

Bon pour ma part je voulais commander l’éclairage de ma chambre avec ce petit cube. J’ai donc 2 ampoules Yeelight (Ampoule Xiaomi RGB Wifi a luminosité variable) et une lampe de chevet sur une prise connectée 433 MHz.

  1. J’avais envie de pouvoir allumer et éteindre mes 3 lampes indépendamment les unes des autres.
  2. Faire varier la luminosité des lampes actuellement allumées. (Utilisation de la rotation du cube comme un bouton rotatif du « turfu »  😉 ).

Déclenchement du Scénario :

Il prend tout en compte, ainsi je peux travailler avec toute les fonctions du Cube. L’événement sur la Rotation n’est pas obligatoire car directement lié aux « rotate » gauche et droite.

- Nom du scénario : Micube
- Objet parent : Commandes
- Mode du scénario : provoke
 - Evènement : #[Chambre gaet][Cube Magique][Rotation]#
 - Evènement : #[Chambre gaet][Cube Magique][Mouvement]#

 

Scénario global simple :

Le scénario global fonctionne très simplement sur chacune des données reçues avec des « IF » en parallèle.  Vous pouvez soit « Toggle » la lampe soit l’allumer sur une commande et l’éteindre via une autre commande. (J’ai pas encore mis la fonction pour Toggle)

Voici un exemple simple pour éteindre les 3 lampes :

 SI #[Chambre gaet][Cube Magique][Mouvement]# == "tap_twice" 
ALORS
 #[Chambre gaet][Yeelight Chambre][Eteindre]# - Options : Array
 #[Chambre gaet][Yeelight Bureau][Eteindre]# - Options : Array
 #[Chambre gaet][Prise 1 (lampe chevet)][off]# - Options : Array

J’ai donc utilisé « shake_air« , « flip90 » et « flip180 » pour allumer chacune de mes lampes et « tap_twice » pour les éteindre toutes.

Gestion de la luminosité :

C’est la partie la plus intéressante, qui fonctionne pas trop mal.

En effet utiliser les valeurs de rotations en degrés marchent pas super bien. Elles ne correspondent pas vraiment toujours à ce qu’on imaginerai (Vous pouvez faire une grosse rotation et il va compter 18° alors que le cube à fait un bon 120° réels). J’ai donc essayé de prendre en compte dans 2 états distincts une grosse rotation, d’une rotation plus faible, pour faire varier la luminosité en conséquence. 

scenarion
Screenshot du « rotate_right » au complet ==> Augmenter la luminosité

La gestion de la luminosité est pas super top à faire en programmation graphique mais je me suis amusé. L’idée est la suivante :

SI on a une rotation_droite , et qu’elle est supérieure a X degrés de rotation ALORS augmenter la luminosité des lumières déjà allumées de tant, SINON SI elle est inférieure àalors augmenter la luminosité de ces mêmes lumières de un peu moins.

Donc si on regarde bien le Screenshots ci dessus on a trois « SI » imbriqués.

  • Le premier (violet) à gauche teste « SI rotation_droite ».
  • Le second (orange) teste une valeur de la rotation en degrés (c’est buggé, à vous de trouver le seuil entre une grosse et une petite rotation).
  • Si le « SI » orange ci dessus est vérifié , 3 conditions peuvent avoir lieu (vert foncé / vert clair / bleue) : Si une , l’autre ou les deux lampes yeelight sont actuellement allumée.  Alors faire varier la luminosité positivement et fortement de celles en cours de fonctionnement.
  • Si le « SI » orange n’est pas validée , on a les trois mêmes conditions avec une variation positive faible de la luminosité.

 

Pour la rotation_gauche c’est exactement le même principe avec des valeurs négatives de la luminosité.

ATTENTION :  Pour ne pas que les lumières s’éteignent lors de la diminution de la luminosité (donc pour ne pas que la luminosité atteigne 0), il faut spécifier que la luminosité décroit mais reste > 0 de cette manière dans la valeur de la Yeelight :

aa

(#[Chambre gaet][Yeelight Bureau][Luminosité Info]#) -5 ET (#[Chambre gaet][Yeelight Bureau][Luminosité Info]#) > 0

 

Capturee
Screenshot du « rotate_left » au complet ==> Diminuer la luminosité ET non nulle

 

Voilou pour ce petit article, j’espère qu’il aura été assez clair. Je commence à peine ce blog, dans des domaines très divers, donc tout n’est peut être pas encore foufou. 🙂

Les Screenshots sont de bonne qualité lors de l’Upload, mais semblent mauvais lors de la publication de l’article. Dites moi, et je peux vous fournir le code exporté ou les images.

 

 

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s