neliger Posté(e) le 28 mars 2015 Auteur Signaler Posté(e) le 28 mars 2015 Si vous remplacez la ligne 18 du code du bouton original par la ligne ci-dessous, ça éteint la lumière dimmable lors de l'appuis sur le bouton ? if(v.properties.value == "true") then fibaro:call(v.id, "turnOff"); fibaro:call(v.id, "setValue", 0); end
Plap3014 Posté(e) le 28 mars 2015 Signaler Posté(e) le 28 mars 2015 Avec le code du bouton original, et le remplacement, sa fonctionne pas...
neliger Posté(e) le 28 mars 2015 Auteur Signaler Posté(e) le 28 mars 2015 Là, en mode partage, sans pouvoir débogguer sur la HC, ça ne va pas le faire.
mprinfo Posté(e) le 28 mars 2015 Signaler Posté(e) le 28 mars 2015 @niliger je t'ai envoyer un MP si tu veux faire un test avec des dimmers
neliger Posté(e) le 28 mars 2015 Auteur Signaler Posté(e) le 28 mars 2015 @mprinfo : un rapide test sur ta box m'a permis de comprendre ce qu'il se passe. En fait, c'est la valeur du dimmer qui peut prendre différentes valeurs, je propose donc de ne plus tester l'état des lumières, et d'envoyer l'ordre d'extinction systématiquement en remplaçant la ligne 18 du bouton par ceci : fibaro:call(v.id, "turnOff");
neliger Posté(e) le 28 mars 2015 Auteur Signaler Posté(e) le 28 mars 2015 Je vient de modifier le post pour donner la version 1.1 du module virtuel incluant la modification.
Plap3014 Posté(e) le 28 mars 2015 Signaler Posté(e) le 28 mars 2015 @Neliger: sa fonctionne pour éteindre les dimmers.... on ne vois juste pas si les dimmers sont allumés par contre.... je vais regarder aussi pour voir si on peut pas changer qqc... merci du bon travail... Patrick
Sakkhho Posté(e) le 28 mars 2015 Signaler Posté(e) le 28 mars 2015 Idem, je viens de testé avec un dimmer, le VD permet de l'eteindre mais il ne le vois pas allumé (icône jamais en vert meme si j'ai mis le bon ID)
neliger Posté(e) le 28 mars 2015 Auteur Signaler Posté(e) le 28 mars 2015 Erreur de débutant que de juste retirer la condition dans le bouton. Il faut que j'étudie les valeurs pour adapter les deux conditions. Je demande à mprinfo s'il peut me redonner l'accès à sa box.
neliger Posté(e) le 28 mars 2015 Auteur Signaler Posté(e) le 28 mars 2015 Grâce à un petit test fait chez mprinfo, j'ai pu corriger le test d'allumage et le rétablir aussi avant de demander une extinction. Le code n'est pas très élégant mais avec les problèmes de typage que m'impose le lua, je suis allé au plus simple. J'ai modifié le sujet pour remplacer par la version 1.2 dont voici la source. Code du bouton ------------------------------ -- Ne pas modifier ci-dessous ------------------------------ -- Récupération de la liste des modules local HC2 = Net.FHttp("127.0.0.1", 11111) local reponse = HC2:GET("/api/devices") local json = json.decode(reponse) -- Boucle sur les modules for k, v in ipairs(json) do -- Il s'agit d'un module lumière if(type(v.properties.isLight) == "string") then -- Etat de la lumière local EtatLumiere = "eteinte" if(type(v.properties.value) == "string") then if(v.properties.value == "true") then EtatLumiere = "allumee" end else if(v.properties.value > 0) then EtatLumiere = "allumee" end end -- La lumière est allumée, extinction if(EtatLumiere == "allumee") then fibaro:call(v.id, "turnOff") end end end Boucle principale ----------------------------------------------------------- -- Toutes lumières v1.2 ----------------------------------------------------------- -- Extinction de l'ensemble des lumières de la maison ----------------------------------------------------------- -- Changelog -- 1.2 : Correction du test d'état prenant en charge les -- modules variateurs et rétablissement de la -- condition pour l'extinction -- 1.1 : Extinction inconditionnelle et prise en charge des -- modules variateurs ----------------------------------------------------------- ------------------------------ -- Variables à renseigner ------------------------------ -- Identiants des icônes local IconeAllume = 107 local IconeEteint = 108 -- Intervalle de mise à jour automatique (en secondes) local IntervalleMAJ = 10 ------------------------------ -- Ne pas modifier ci-dessous ------------------------------ while true do -- Variable du compteur local compteurLumieres = 0 -- Récupération de la liste des modules local HC2 = Net.FHttp("127.0.0.1", 11111) local reponse = HC2:GET("/api/devices") local json = json.decode(reponse) -- Boucle sur les modules for k, v in ipairs(json) do -- Il s'agit d'un module lumière if(type(v.properties.isLight) == "string") then -- Etat de la lumière local EtatLumiere = "eteinte" if(type(v.properties.value) == "string") then if(v.properties.value == "true") then EtatLumiere = "allumee" end else if(v.properties.value > 0) then EtatLumiere = "allumee" end end -- La lumière est allumée, incrémentation if(EtatLumiere == "allumee") then compteurLumieres = compteurLumieres + 1 end end end -- Mise à jour de l'icône if(compteurLumieres > 0) then fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", IconeAllume) else fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", IconeEteint) end -- Attente de la prochaine mise à jour automatique fibaro:sleep(IntervalleMAJ*1000) end 1
Plap3014 Posté(e) le 28 mars 2015 Signaler Posté(e) le 28 mars 2015 Oups, mes dimmers ne s'éteigne plus....et l'état ne change pas non plus...
mprinfo Posté(e) le 28 mars 2015 Signaler Posté(e) le 28 mars 2015 Un petit problème z-wave ? Envoyé de mon SM-G900F en utilisant Tapatalk
Plap3014 Posté(e) le 28 mars 2015 Signaler Posté(e) le 28 mars 2015 Mes 2 dimmers sont pourtant bien reconnu est pas en problème... je vais faire un reboot de box pour voir...et je vous re... Après un reboot, pareil, dans la version 1.1 je pouvais les éteindre pourtant... merci de votre support, patrick
trainkill666 Posté(e) le 29 mars 2015 Signaler Posté(e) le 29 mars 2015 (modifié) A tester : --Code complet ci-dessous à 14:03 Modifié le 8 avril 2015 par trainkill666 1
Plap3014 Posté(e) le 29 mars 2015 Signaler Posté(e) le 29 mars 2015 @Trainkill666: Sa fonctionne pour éteindre les lumières, y compris les dimmers, cependant le statut pour les icon ne fonctionne pas. dans le début j'ai une erreur, la même pour le bouton et le main loop: [ERROR] 06:15:44: line 12: attempt to compare number with nil et la ligne 41du main loop 12. if(type(v.properties.isLight) == "string") and (type(v.properties.value) == "string") and ((v.properties.value == "true") or (tonumber(v.properties.value) > 0)) then 41. if(type(v.properties.isLight) == "string") and (type(v.properties.value) == "string") and ((v.properties.value == "true") or (tonumber(v.properties.value) > 0)) then nous sommes pas loin du but... merci, Patrick
braindancer Posté(e) le 29 mars 2015 Signaler Posté(e) le 29 mars 2015 je viens d'installer le module virtuel et malheureusement chez moi, rien ne fonctionne :-( je remarque aussi que les icones possèdent des Id (107 / 108 ) , ou les récupère t on ? merci bien pour vos éclaircissements
mprinfo Posté(e) le 29 mars 2015 Signaler Posté(e) le 29 mars 2015 alors pour les id des icones c'est un peu chiant pour trouver j'ai mis un peu de temps pour comprendre soit avec le toolkit soit avec un clic droit sur l'icone information sur l'image Did a fait un tuto a ce sujet
trainkill666 Posté(e) le 29 mars 2015 Signaler Posté(e) le 29 mars 2015 A tester, je ne peux pas car suite à la maj 4.040 la box plante, ce code est fait à "l'aveugle", il doit donc y avoir des "coquilles". Bouton : -- Récupération de la liste des modules local HC2 = Net.FHttp("127.0.0.1", 11111) local reponse = HC2:GET("/api/devices") local json = json.decode(reponse) -- Boucle sur les modules for k, v in ipairs(json) do if type(v.properties.isLight) == "string" and type(v.properties.value) == "string" then if v.properties.value == "true" then fibaro:call(v.id, "turnOff") elseif v.properties.value ~= nil and v.properties.value ~="false" then if tonumber(v.properties.value) > 0 then fibaro:call(v.id, "turnOff") end end end end Main Loop -- Identiants des icônes local IconeAllume = 107 local IconeEteint = 108 -- Intervalle de mise à jour automatique (en secondes) local IntervalleMAJ = 10 while true do -- Variable du compteur local compteurLumieres = 0 -- Récupération de la liste des modules local HC2 = Net.FHttp("127.0.0.1", 11111) local reponse = HC2:GET("/api/devices") local json = json.decode(reponse) -- Boucle sur les modules for k, v in ipairs(json) do if type(v.properties.isLight) == "string" and type(v.properties.value) == "string" then if v.properties.value == "true" then compteurLumieres = compteurLumieres + 1 elseif v.properties.value ~= nil and v.properties.value ~="false" then if tonumber(v.properties.value) > 0 then compteurLumieres = compteurLumieres + 1 end end end end -- Mise à jour de l'icône if(compteurLumieres > 0) then fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", IconeAllume) else fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", IconeEteint) end -- Attente de la prochaine mise à jour automatique fibaro:sleep(IntervalleMAJ*1000) end 3
Plap3014 Posté(e) le 29 mars 2015 Signaler Posté(e) le 29 mars 2015 Je test ce soir àmon retour... Merci Envoyé de mon iPhone en utilisant Tapatalk
Plap3014 Posté(e) le 29 mars 2015 Signaler Posté(e) le 29 mars 2015 @Trainkill666: Sa fonctionne! super, vous pouvez faire la mise a jour et votre rituel device en 1.3... mes switch on/off et mes dimmers son maintenant fonctionnels avec la vision de l'état des 2 vous êtes les meilleurs! Patrick
megabubu Posté(e) le 30 mars 2015 Signaler Posté(e) le 30 mars 2015 ca marche aussi pour moi, je suis en V4.040
pepite Posté(e) le 30 mars 2015 Signaler Posté(e) le 30 mars 2015 Bijour, super boulot. Petite mise à jour du 1er post ;-) avec la version qui fonctionne encore merciii
Messages recommandés