Tuto : Milight et Domoticz : rebonjour les effets discos !
Depuis le mois de Mars il y a un gros changement pour les utilisateurs des produits Milight, le bridge v6 a été ajouté, mais toutes les fonctions « disco » ont été enlevées de l’interface visuelle.
John est triste
Outre le côté festif que cela apportait, il y avait aussi de bonnes choses :
Les clignotements en Rouge, Vert, Bleu, Blanc qui pouvaient servir à donner l’état d’une alarme par exemple, ou indiquer que quelqu’un sonne à la porte alors que bébé dort
Les changements de couleurs en fondu qui pouvaient faire un semblant de chromothérapie
La raison de cette disparition est que les éventements lumineux ne sont que peu utilisés, et qu’il y a toujours l’app et la télécommande pour les commander, mais tout n’est pas perdu !
En effet j’ai participé à l’intégration du Milight v6 et le développeur nous a laissé les fonctions, elles sont accessibles via l’API de Domoticz, et il y en a même plus qu’avant, les voici :
« json.htm?type=command¶m=brightnessup&idx= » + $.devIdx, == Augmenter la luminosité
« json.htm?type=command¶m=brightnessdown&idx= » + $.devIdx, == Baisser la luminosité
« json.htm?type=command¶m=discoup&idx= » + $.devIdx, == Défile les mode Disco vers le haut
« json.htm?type=command¶m=discodown&idx= » + $.devIdx, == Défile les mode Disco vers le Bas
« json.htm?type=command¶m=discomode&idx= » + $.devIdx, == Mets en mode Disco aléatoire
« json.htm?type=command¶m=discomodenum » + mode + « &idx= » + $.devIdx, == Appel un mode disco directement de 1 a 9
« json.htm?type=command¶m=setkelvinlevel&idx= » + $.devIdx + « &kelvin= » + kelvin, == Règle la température de blanc pour les ampoules RGBWWWC 8W
« json.htm?type=command¶m=speedup&idx= » + $.devIdx, == Augmentent la vitesse du mode Disco
« json.htm?type=command¶m=speeduplong&idx= » + $.devIdx, == simule un appuie long sur la touche vitesse +
« json.htm?type=command¶m=speeddown&idx= » + $.devIdx, == Baisse la vitesse du mode Disco
« json.htm?type=command¶m=speedmin&idx= » + $.devIdx, == Mets le mode Disco en vitesse minimum
« json.htm?type=command¶m=speedmax&idx= » + $.devIdx, == Mets le mode Disco en Vitesse Maximum
« json.htm?type=command¶m=fulllight&idx= » + $.devIdx, == Allume a 100%
« json.htm?type=command¶m=whitelight&idx= » + $.devIdx, == Allume en Blanc
« json.htm?type=command¶m=nightlight&idx= » + $.devIdx, == Allume en Mode veilleuse
Il s’agit de ligne à ajouter à la fin de l’adresse html de votre Domoticz, c’est ce que l’on appelle L’API, elle permet d’inter agir avec votre Domoticz sans forcement avoir besoin de se rendre sur l’interface graphique.
Exemple :
http://host:8080/json.htm?type=command¶m=discomodenum1&idx=6
Ou :
Host = l’adresse Ip de votre serveur Domoticz
8080 = Le port de votre serveur Domoticz
et idx=6 le numéro d’idx de votre Groupe Milight
« Oui mais cela correspond à quoi le …¶m=discomodenum » + mode + «…
Discomodenum correspond à la commande qui va lancer l’un des 9 modes disco de vos Milight, je vous les donne :
Je demande à l’ampoule Milight qui porte L’idx n°6 de se mettre en mode disco n°1 : le fondu arc en ciel
Pour simplifier et rendre cela un peu plus « facile », j’ai créé deux interrupteurs sélecteur Virtuel par groupe et sous groupe de Milight :
Un premier pour gérer les effets disco
Un second pour gérer les vitesses, l’allumage en blanc et l’allumage en mode veilleuse
Je place directement les différentes commandes dans les actions à exécuter
L’Intérêt pour moi de mettre les commandes d’API dans les sélecteurs est qu’ainsi je peux les actionner depuis les Scènes, les Groupes, les événements Blocky et Lua facilement.
Exemples d’utilisation
Voici un exemple d’utilisation de cette api caché que j’utilise pour piloter le spot Milight RGBw GU10 12v que j’ai placé au dessus de ma douche, ce spot est piloté avec un Bouton Rond Xiaomi :
1 Click j’allume le spot en blanc
2 Click j’éteins le spot
Une pression longue : j’active la mode disco couleur fondu
Relâche de la pression longue : je demande la vitesse minimum
Bien sûr ce spot est également coordonné à l’interrupteur 230v Xiaomi principal de la salle bain et s’allume en blanc en même temps que les autres si besoin
Voici également un script qui allume le même spot en mode veilleuse par une détection de présence,:
Si une présence est détectée dans la salle de bain entre 6h et 21h, grâce à un capteur de mouvements Xiaomi et toujours grâce à l’API « Cachée », le spot s’allume en mode nuit en actionnant le sélecteur de j’ai créé pour ce spot
--Script_device_spotsdbveilleuse.lua
--Ce script actionne une veilleuse dans la salle de bain si une presence est detectée entre 22h et 6h
commandArray = {}
if (os.date('%H') > '21' or os.date('%H') < '06' ) then
if devicechanged['Mouvement Salle de Bains']=='On' and otherdevices['Spot Douche']=='Off' then
commandArray['Controle Spot de Douche']='Set Level: 80'
elseif devicechanged['Mouvement Salle de Bains']=='Off' then
commandArray['Controle Spot de Douche']='Off'
end
end
return commandArray
Enfin l’intérêt de mettre les Sélecteurs Disco pour les Groupes d’ampoule Milight permet de créer une ambiance boite de nuit disco night en une touche dans tout le salon !