[Tuto] MiLight : Avoir un retour d'état avec RFLink

Vous avez créé un script LUA dont vous êtes fier, un .sh génial, un programme Python hors du commun, un Tuto, c'est ici que vous pouvez les partager.
deennoo
Messages : 4036
Inscription : 25 janv. 2015, 02:00

[Tuto] MiLight : Avoir un retour d'état avec RFLink

Message par deennoo »

Bonjour a tous.

Je suis équiper en Milight, les ampoules "connectées" a pas chère.

Elles ce pilotent de plusieurs façon :
- Via une télécommande
- Via une application IOS/Android et une passerelle wifi
- Via RFLInk (équipé d'un module 2.4 ghz)
- Via Domoticz + la passerelle Wifi

Le "probleme" de ces ampoules c'est qu'il n'y a pas de retour d'etat, donc si je les pilotes avec l'application et la passerelle wifi, Domoticz ne le sait pas.

Ma solution :

Faire écouter a RFLink les commandes envoyer depuis la passerelle, et mettre a jour l'état des ampoules dans Domoticz.

Une fois que les ampoules et la passerelle sont configuré dans Domoticz
Capture.PNG
Capture.PNG (447.23 Kio) Consulté 6969 fois
Vous autorisez l'ajout de nouveau materiel dans domoticz

Puis via l'app mobile ou Domoticz vous allumé chaque groupe un par un.

Rflink va capter les commandes envoyé depuis la passerelle et crée de nouveau "devices" dans la section :
Capture2.PNG
Capture2.PNG (76.72 Kio) Consulté 6969 fois
Ajoutez les avec le signe dollar $ devant le nom et noter ce nom quelque part car il ne seront pas visible dans l'onglet interupteur


Ensuite crée un script LUA device et mettez ceci de dans :

Code : Tout sélectionner

commandArray = {}
--groupe 1
--On
 if (devicechanged['$groupe 1 milight rflink']=='On' and otherdevices['groupe 1 milight']=='Off')  then
         commandArray['OpenURL']='127.0.0.1:8080/json.htm?type=command&param=udevice&idx=2417&nvalue=1'
--Off
elseif (devicechanged['$groupe 1 milight rflink']=='Off' and otherdevices['groupe 1 milight'']~= 'Off')  then
          commandArray['OpenURL']='127.0.0.1:8080/json.htm?type=command&param=udevice&idx=2417&nvalue=0'
          
end
return commandArray
Ici :
- '$groupe 1 milight rflink' = le nom du device detecter par RFLink
- 'groupe 1 milight' = Le nom du premier groupe Milight cree par le Hardware Milight dans Domoticz
- '2417' = le numero IDX du premier groupe Milight cree par le Hardware Milight dans Domoticz

On est obliger d'utiliser une commande OpenURL car il semble y avoir un bug sur la mise a jour des modules rgbw dimmable via la commande update device native en LUA

Ce script fonctionne aussi si vous utilisez une télécommande en plus et ou avec la passerelle Wifi.

Faire ceci pour chaque groupe, ainsi que pour le groupe 'all'.

Cela demande du boulot mais MiLight c'est pas chère, il faut finir le taf.

Une fois en place ce script donne ceci dans les logs :

Code : Tout sélectionner

2016-12-05 12:39:09.137 EventSystem: Fetching url...
2016-12-05 12:39:09.137 EventSystem: Script event triggered: rflinkupdate milight
2016-12-05 12:39:08.988 (RFLink) Lighting Limitless/Applamp ($ch oscar milight rflink)
Ici j'a utiliser l'app Mobile pour allumé la lumiere d'oscar, RFLink a capter la commande envoyer par la passerelle Milight :

Code : Tout sélectionner

2016-12-05 12:39:08.988 (RFLink) Lighting Limitless/Applamp ($ch oscar milight rflink)
Domoticz a detecter qu'il fallait lancer un script a chaque fois que cette commande est reçu :

Code : Tout sélectionner

2016-12-05 12:39:09.137 EventSystem: Script event triggered: rflinkupdate milight
Enfin il met a jour le "device" princiale en ouvrant l'URL de mise a jour

Code : Tout sélectionner

2016-12-05 12:39:09.137 EventSystem: Fetching url...
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr
Répondre