Sakkhho Posté(e) le 11 mai 2015 Signaler Posté(e) le 11 mai 2015 sympa, comme àchaque fois je me demande si il y pas moins de lire le texte du vifb pour éviter un nouvel import de VD ?
jojo Posté(e) le 11 mai 2015 Signaler Posté(e) le 11 mai 2015 Je veux bien mettre le code, mais il y a 2 labels en plus que par le passé
jojo Posté(e) le 16 mai 2015 Signaler Posté(e) le 16 mai 2015 version 2.1 Ajout d'un bouton pour l'analyse, car bug dans la main loop au bout d'un certain temps. Toutes_LumieÌ€res_v2.1.vfib 1
Sakkhho Posté(e) le 22 août 2015 Signaler Posté(e) le 22 août 2015 bizarrement ce matin le VD ne marche plus il me détecte des lampes allumées alors que tout est éteint
Sakkhho Posté(e) le 29 août 2015 Signaler Posté(e) le 29 août 2015 j'ai toujours ce problème. il me voit 3 lampes allumées. il y a il un moyen de savoir quels IDs sont concernés ? 1
jojo Posté(e) le 29 août 2015 Signaler Posté(e) le 29 août 2015 en effet, j'ai commencé àmodifier le VD pour afficher les lumières allumées, mais il faut que je termine
mprinfo Posté(e) le 29 août 2015 Signaler Posté(e) le 29 août 2015 jojo tu es toujours en retard que fais tu donc de tes journée lol Envoyé de mon SM-G900F en utilisant Tapatalk 1
jojo Posté(e) le 29 août 2015 Signaler Posté(e) le 29 août 2015 @mprinfo, je fais tes commandes ... 1
mprinfo Posté(e) le 29 août 2015 Signaler Posté(e) le 29 août 2015 Donc prévoit des frites je viens manger Envoyé de mon SM-G900F en utilisant Tapatalk
jojo Posté(e) le 4 septembre 2015 Signaler Posté(e) le 4 septembre 2015 j'ai toujours ce problème. il me voit 3 lampes allumées. il y a il un moyen de savoir quels IDs sont concernés ? voici donc la v 3.0 Toutes_lumières_v3.0.vfib
pepite Posté(e) le 4 septembre 2015 Signaler Posté(e) le 4 septembre 2015 @jojo, tu peux poster le code stp ;-) Excellentissime
jojo Posté(e) le 4 septembre 2015 Signaler Posté(e) le 4 septembre 2015 volontiers, mais tu devras quand-même réimporter le device, car j'ai créé 10 labels
pepite Posté(e) le 4 septembre 2015 Signaler Posté(e) le 4 septembre 2015 ok ok je teste @jojo merkiiiii
Sakkhho Posté(e) le 5 septembre 2015 Signaler Posté(e) le 5 septembre 2015 Adopté, merci jojo. Super taf. J'avais trouvé mon probleme sur ce VD, c'était à cause d'un FGMS que j'avais inseré mais pas encore renommé (il était dans en ID_x) et le VD les voyait comme des lampes ... N'empêche que la c'est pas sympa de savoir. Une remarque, si je veux supprimer le double click pour éteindre je mets en commentaires quelles lignes ? Car par sur de l'utilité du dble click
jojo Posté(e) le 5 septembre 2015 Signaler Posté(e) le 5 septembre 2015 voici le code du bouton "Tout éteindre, sans le double click: ---------------------------------- -- User Settings ---------------------------------- -- Modules àexclure et fonction de traitement (pas raccordés àdes lumières) -- Peut contenir un id ou un mot clés àchercher dans le nom du module toExclude = {} toInclude = {} ---------------------------------- -- DO not change bellow this line ---------------------------------- -- Modules àexclure ou inclure et fonction de traitement (pas raccordés àdes lumières) -- Peut contenir un id ou un mot clés àchercher dans le nom du module -- toExclude = {72, "Dispo", "Volet", "Bubendorff"} function shouldExclude(module) for k, v in pairs(toExclude) do if string.find(module.name, v) ~= nil or module.id == v then return true end end return false end function shouldInclude(module) for k, v in pairs(toInclude) do if string.find(module.name, v) ~= nil or module.id == v then return true end end return false end HC2 = Net.FHttp("127.0.0.1",11111) function confirm(msg, labelId, secondes) local current = fibaro:getValue(fibaro:getSelfId(), "ui."..labelId..".value") if (current == msg) then fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..labelId..".value", " ") return true else fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..labelId..".value", msg) fibaro:sleep(secondes*1000) fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..labelId..".value","") return fibaro:getValue(fibaro:getSelfId(), "ui."..labelId..".value") == " " end end -- Récupération de la liste des modules response = HC2:GET("/api/devices") json = json.decode(response) -- Boucle sur les modules for k, v in ipairs(json) do if ((type(v.properties.isLight) == "string" and type(v.properties.value) == "string") or shouldInclude(v)) and not shouldExclude(v) 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 -- for
Sakkhho Posté(e) le 5 septembre 2015 Signaler Posté(e) le 5 septembre 2015 au top ! J'ai rajouté dans le bouton du switch off un fibaro:sleep(500) fibaro:call(fibaro:getSelfId(), "pressButton", "14") comme c'est des que je switch off, il remet à 0 le compteur car j'ai sortit le code du main loop pour le mettre dans GEA
pepite Posté(e) le 5 septembre 2015 Signaler Posté(e) le 5 septembre 2015 salut messieurs, @jojo super boulot encore.. Un inconvenient pour moi, ca clignote avec le code dans le main loop ;-) mais moi je m'en sers uniquement en fonction du mode de la maison, donc pas de clignotement, j'appuie sur les boutons avec GEA ;-) Merciiiiii
jojo Posté(e) le 5 septembre 2015 Signaler Posté(e) le 5 septembre 2015 @sakkhho, Je comprends maintenant pourquoi tu ne voulais pas du double click. Je me demandais justement dans GEA comment il réagirait. Idée, dans GEA on pourrait mettre 2 fois de suite l'appel à ce bouton de la VD dans les options, ce qui correspond à un double click ? @pepite, Oui ça clignote (uniquement si toutes les lumières sont éteintes) car la main loop appelle un bouton. Je devrais regarder pour tout mettre dans la main loop. => à ajouter à la todo
pepite Posté(e) le 5 septembre 2015 Signaler Posté(e) le 5 septembre 2015 bonne idee pour GEA, àtester 2 fois de suite l'appel ;-)
Sakkhho Posté(e) le 5 septembre 2015 Signaler Posté(e) le 5 septembre 2015 oué mais je suis pas sur que sur smartphone le double click soit très pratique perso en mode simple click c'est parfait pour moi
jojo Posté(e) le 5 septembre 2015 Signaler Posté(e) le 5 septembre 2015 @sakkhho, Je te confirme que le double click fonctionne sans soucis depuis les mobile @pepite, tu teste depuis GEA et tu nous dis quoi ?
sebcbien Posté(e) le 12 septembre 2015 Signaler Posté(e) le 12 septembre 2015 Bonjour, J'ai tout lu et il y a une chose que je ne comprends pas bien... Steven(je crois) avait posté ce petit bout de code que j'ai un peu modifié et qui fonctionne très bien pour éteindre les lampes. Il y a peut être une subtilité que je n'ai pas compris, mais V3 ou V4, toutes mes lumières s'éteignent (dimmer, wallplug, fgs...) et rien d'autre. voici le code: --[[ %% properties %% globals --]] function turnIt(mode) -- On parcours les 350 premiers modules for i = 1, 2000 do -- Si un module est de type Eclairage local ret = fibaro:get(i, 'isLight') if ((type(ret) == "string" and string.find(ret, "1" )) or "rgb_driver" == fibaro:getType(i) or "com.fibaro.FGRGBW441M" == fibaro:getType(i)) then local DeviceName = fibaro:getName(i); local RoomName = fibaro:getRoomNameByDeviceID(i); -- On l'allume ou l'éteint fibaro:call(i, mode); fibaro:debug(mode.." device "..i.." "..DeviceName.." "..RoomName); end end end --turnIt("turnOn") turnIt("turnOff") fibaro:debug("All lights are off"); pourquoi je suis arrivé ici ? Ce script n'a qu'un défaut, il est un peu lent et il ne s'adapte pas automatiquement au nombre de modules (j'ai 1890 ID...) Je cherchais un moyen de le limiter aux devices de l'api et ne pas devoir scanner tout. J'ai donc téléchargé la dernière version de jojo et j'ai modifié la partie turn off. voici le résultat et chez moi ça marche très bien. Je n'ai peut être pas tout pigé, mais dans le doute, ça pourrait faire avancer le schmilblick... ---------------------------------- -- User Settings ---------------------------------- -- Modules à exclure et fonction de traitement (pas raccordés à des lumières) -- Peut contenir un id ou un mot clés à chercher dans le nom du module toExclude = {"Pisc"} toInclude = {} ---------------------------------- -- DO not change bellow this line ---------------------------------- -- Modules à exclure ou inclure et fonction de traitement (pas raccordés à des lumières) -- Peut contenir un id ou un mot clés à chercher dans le nom du module -- toExclude = {72, "Dispo", "Volet", "Bubendorff"} function shouldExclude(module) for k, v in pairs(toExclude) do if string.find(module.name, v) ~= nil or module.id == v then return true end end return false end function shouldInclude(module) for k, v in pairs(toInclude) do if string.find(module.name, v) ~= nil or module.id == v then return true end end return false end HC2 = Net.FHttp("127.0.0.1",11111) ---------------------------------- -- double click pour confirmer ---------------------------------- -- ---------------------------- -- Ne pas toucher -- -- ---------------------------- function confirm(msg, labelId, secondes) local current = fibaro:getValue(fibaro:getSelfId(), "ui."..labelId..".value") if (current == msg) then fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..labelId..".value", " ") return true else fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..labelId..".value", msg) fibaro:sleep(secondes*1000) fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..labelId..".value","") return fibaro:getValue(fibaro:getSelfId(), "ui."..labelId..".value") == " " end end -- ---------------------------- -- A vous de jouer --- -- ---------------------------- local label_id = "lblMessage" -- l'ID du label qui recevra le message local duree = 2 -- la durée max entre 2 clique (en seconde) local message = "Ré-appuyer dans les "..duree.." secondes pour confirmer" -- le message de confirmation if ( confirm(message, label_id, duree) ) then fibaro:log("Confirmé") -- votre code ici en cas de confirmation -- Récupération de la liste des modules response = HC2:GET("/api/devices") json = json.decode(response) -- Boucle sur les modules for k, v in ipairs(json) do local ret = fibaro:get(v.id, 'isLight') if ((type(ret) == "string" and string.find(ret, "1" )) or "rgb_driver" == fibaro:getType(v.id) or "com.fibaro.FGRGBW441M" == fibaro:getType(v.id)) then local DeviceName = fibaro:getName(v.id); local RoomName = fibaro:getRoomNameByDeviceID(v.id); -- On l'allume ou l'éteint fibaro:call(v.id, "turnOff"); fibaro:debug("turnOff".." device "..v.id.." "..DeviceName.." "..RoomName); end end -- for else fibaro:log("Annulé") -- votre code ici en cas d'annulation end 1
Sakkhho Posté(e) le 13 septembre 2015 Signaler Posté(e) le 13 septembre 2015 sans modifier le code il suffisait d'inclurer les ID des devices qui sont gérés des lumieres (WP par exemple) et exclure ceux qui n'en sont pas. toExclude = {"Pisc"} toInclude = {}
sebcbien Posté(e) le 13 septembre 2015 Signaler Posté(e) le 13 septembre 2015 Le but n'est-t'il de ne pas d'avoir un code qu'il ne faut pas modifier au cas par cas et qui fonctionne pour tout le monde du premier coup ? Sent from my SM-N910F using Tapatalk
jojo Posté(e) le 13 septembre 2015 Signaler Posté(e) le 13 septembre 2015 en permettant l'utilisation des toExclude et toInclude, cela permet d'inclure ou d'exclure des devices qui doivent être considérés (ou non) dans le turn off général. Dans mon exemple, j'ai exclu "Pisc", qui est un WP qui n'est PAS de type light, mais était reconnu comme tel. J'ai tout essayé, puis je l'ai mis en les exclusions en désespoir de cause. Ce n'est pas bien, mais cela fonctionne 1
Messages recommandés