Milight et Tasker, méthode 2

Il y a quelque temps je vous expliquais comment faire communiquer Milight et Tasker avec le plugin Light Controller. Voyons aujourd’hui une autre méthode.

Le plugin Light Controller permet de définir facilement une tâche pour allumer votre ampoule Milight ou la faire changer de couleur. Seulement, vous aviez été rapide à remarquer qu’il était impossible d’éteindre la lumière, chose qui m’avait alors échappé. Ajourd’hui, nous allons utiliser une autre méthode et, promis, cette fois, l’extinction de l’ampoule est possible.

Milight, Tasker et les paquets UDP

Car si nous avons jusque-là beaucoup utilisé les requêtes http dans Tasker, force est de constater que cela nous est totalement inutile avec Milight, puisque celle-ci n’utilise pas cette technique. En fait, l’API utilise les paquets UDP, aussi fallait-il trouver un moyen de les envoyer à Tasker.

Et nous avons de la chance, car des moyens, il n’y en a pas un, mais deux. Le premier, le moins user-friendly des deux, consiste à envoyer un intent, un genre de commande particulier qui va envoyer au bridge la commande contenant le code couleur à interpréter. Celle-ci se présente sous cette forme :

On remplacera le « 0x%code » par le bon code couleur à envoyer (nous y reviendrons plus tard).

Mais ma préférence va à la seconde méthode, qui utilise un petit plugin pour Tasker, UDP sender, qui permet, comme son nom l’indique, d’envoyer des paquets UDP vers une adresse IP, en l’occurrence celle du bridge Milight, sans oublier le port, 50000 sur les versions anciennes ou 8899 sur les versions actuelles.

Milight, le plugin UDP Sender pour Tasker, très efficace !

Milight, le plugin UDP Sender pour Tasker, très efficace !

Il ne nous reste donc plus qu’à trouver les valeurs à envoyer. C’est une chance, elles sont documentées ! Vous trouverez les explications en suivant ce lien, mais personnellement j’ai mis un moment avant de savoir les interpréter.

2015-07-15_2113

Pour transmettre cette commande, il faut insérer dans la case Text du plugin la commande hexadécimale qui correspond à l’action que vous souhaitez faire. Dans notre exemple, on souhaite tout éteindre. Nous disposons d’un premier octet : 0x41. C’est celui qui correspond à l’action. Mais il ne suffit pas. En effet, il faut systématiquement lui adjoindre deux octets supplémentaires : 00 et 55. La commande à envoyer est donc 0x410055.

Mais si vous voulez envoyer une couleur, c’est différent : le premier octet est 0x40, suivi de la couleur, puis 55. Pour du bleu, cela sera donc 0x401055.

2015-07-15_2120

Bref, l’API est plutôt bien documentée pour peu qu’on comprenne comment l’utiliser via le plugin. Vous trouverez notamment comment passer au blanc, allumer/éteindre les différents groupes, utiliser le mode disco ou modifier l’intensité.

Ceci dit, rien ne vous empêche de combiner cette méthode avec la précédente ou avec le plugin Light Controller, cela ne pose aucun problème. Bref, il me reste encore pas mal de choses à découvrir avec ces Milight, mais soyez sûr que vous ne raterez rien !