Steven Posté(e) le 24 mars 2015 Signaler Posté(e) le 24 mars 2015 Variables Globales - VD Module virtuel pour afficher les variables globales Lorsque l'on fait des tests, il est parfois pratique d'avoir la liste des Variables Globales existantes sur votre HC2. Ce module virtuel va vous permettre de les afficher sur votre smartphone. Afin de ne pas afficher toutes les variables, ce modules va afficher les 10 dernières variables à avoir été modifiées et ce, trié par date de modification. Si vous voulez voir plus de variables, il vous faudra rajouter vous-même des labels en faisant juste attention que leur ID suivent la numérotation Label11, Label12, Label13, ... et modifier la position du bouton rafraîchir dans le Main Loop. Ce dernier affiche donc : Le nom de la variable globale Sa valeur L'heure de la dernière mise à jour Ce module se rafraîchi automatiquement toutes les 3 secondes...InstallationIl vous suffit juste d'importer le module virtuel ci-joint Cordialement Variables_Globales.vfib 1 8
pepite Posté(e) le 24 mars 2015 Signaler Posté(e) le 24 mars 2015 (modifié) Excellentissime encore 1 fois, merci @steven, super pratique et fait en quelques minutes ;-) ca marche, viens de tester seulement maintenant ;-) Modifié le 24 mars 2015 par pepite
Berale64 Posté(e) le 24 mars 2015 Signaler Posté(e) le 24 mars 2015 Pourquoi V4 seulement. Je viens de l'installer en 3.60 et ça marche. Encore bravo Mac Gyver !!!! 1
Steven Posté(e) le 24 mars 2015 Auteur Signaler Posté(e) le 24 mars 2015 Vu que j'ai pas de v.360, je pouvais pas tester donc pas être sûr ... je modifie donc la description. Merci àtoi.
jojo Posté(e) le 24 mars 2015 Signaler Posté(e) le 24 mars 2015 Merci Steven, Vu le commentaire de Berale24, je me suis empressé de tester également en v3.600 => ça fonctionne parfaitement ! => post initial à adater Et comme les triggers ne fonctionnent pas sur une variable qui est modifiée directement depuis le panneau des variables, j'ai testé cela également, et c'est rapporté Merci encore 1
q.philippe Posté(e) le 25 mars 2015 Signaler Posté(e) le 25 mars 2015 ça c'est du Module intéressant !
jojo Posté(e) le 25 mars 2015 Signaler Posté(e) le 25 mars 2015 Steven, Puis-je me permettre une suggestion ? J'abuse de l'utilisation de ton module, et il m'est bien utile, car j'ai une variable qui change de statut "toute seule", et je n'arrive pas à comprendre pourquoi. Alors mon idée serait la suivante : ne serait-il pas possible que le VD ajoute automatiquement une ligne à une sheet google, afin d'avoir un log des changements de la variable ? Mais en écrivant ces lignes, je pense à une solution : à chaque changement de la première entrée de la table (mais pour ça il faudra faire qqch), le système génère un mail dans un certain format, qui serait capturé par IFTTT, qui lui-même se charge de rajouter une ligne dans une sheet. (J'utilise déjà IFTTT pour me rajouter automatiquement une ligne à chaque SMS envoyé ou reçu. Serait-ce une grosse modif du code pour détecter une modification de la première ligne de la table ? (et générer un mail -> facile)
Berale64 Posté(e) le 25 mars 2015 Signaler Posté(e) le 25 mars 2015 car j'ai une variable qui change de statut "toute seule", Tu es sur que c'est pas ta femme qui en a raz le bol de ta domotique qui un coup chauffe, un coup chauffe pas !!!
jojo Posté(e) le 25 mars 2015 Signaler Posté(e) le 25 mars 2015 ma femme, je suis sà»r que non, mais toi, j'ai un sérieux doute
mprinfo Posté(e) le 25 mars 2015 Signaler Posté(e) le 25 mars 2015 Super steven merci encore un écran de plus a surveiller, moi qui utilise déjà le push pour débuger, je me demande si c'est encore un téléphone que j'ai
John Posté(e) le 25 mars 2015 Signaler Posté(e) le 25 mars 2015 Salut, Je voulais savoir si cela marchait sur une HCL, car j'ai une question qui est sans réponses sur le forum et personnes n'y réponds car je pense que ma question doit vraiment être très co..e ++
jojo Posté(e) le 25 mars 2015 Signaler Posté(e) le 25 mars 2015 ça ne fonctionnera pas sur HCL, car c'est en LUA tu nous remets le lien de ta question, qu'on y regarde ?
jojo Posté(e) le 25 mars 2015 Signaler Posté(e) le 25 mars 2015 Steven, Je n'ai pas pu m'empêcher de regarder àla demande que je t'avais adressée : envoyer un mail en cas de modif d'une variable. ok pour que je mette la petite modification du code dans le fil ? => de toute façon, tu le corrigeras pour l'optimiser ...
Sakkhho Posté(e) le 25 mars 2015 Signaler Posté(e) le 25 mars 2015 grace à ce module je vois que mon VD Day_Phase (http://www.domotique-fibaro.fr/index.php/topic/3198-module-virtuel-phase-de-la-journée/?hl=aurore) et toujours actif, (car dans le main loop) je suppose, donc la variable est forcé tout le temps pas moyen d'optimiser à votre avis ? EDIT: et ce n'est pas classer dans le bon order chez moi ? bizarre non ?
Steven Posté(e) le 25 mars 2015 Auteur Signaler Posté(e) le 25 mars 2015 Je me raprocherais volontiers du développeur de ce module demain pour voir si il y a quelques choses àfaire.
John Posté(e) le 25 mars 2015 Signaler Posté(e) le 25 mars 2015 Oui merci quand même pour le VD. Moi je sens que je vais être obligé de migrer vers une HC2. Je me sens frustré!!!!! ! @Jojo, le lien de ma question qui se porte sur : "Update des labels dans les VD's par l'API HTTP" vu que j'avais bien compris que j'avais pas de LUA et que c'est un peu cette partie qui débloque les fonctions quand tu es en galère
Gazous Posté(e) le 25 mars 2015 Signaler Posté(e) le 25 mars 2015 Merci Steven et bravo ! Je me suis régalé àla lecture de ton code
jojo Posté(e) le 25 mars 2015 Signaler Posté(e) le 25 mars 2015 Go jojo go Voici un petit ajout au code, qui permet de générer un mail lors de la modification d'une variable. Avec IFTTT, j'intercepte le mail et il alimente une sheet Google Drive. On peut ainsi avoir un log des changements des variables. Contrainte : il faut créer une Variable Globale "LastVarChanged", qui ne sera pas considérée par le script comme une variable à surveiller. HC2 = Net.FHttp("127.0.0.1",11111) response = HC2:GET("/api/globalVariables") -- read LastVarChanged -- create a GlobalVariable named LastVarChanged local LastVarChanged = fibaro:getGlobal('LastVarChanged') fibaro:debug('LastVarChanged') local push_dev = 2 -- id of the device to send push message to (2 to send e-mails) local variables = {} local t = json.decode(response) local j = 0 for i = 1, #t do -- do not report changes to LastVarChanged if t[i].name ~= "LastVarChanged" then j = j + 1 variables[j] = {t[i].name, t[i].value, fibaro:getGlobalModificationTime(t[i].name)} end end j = 0 table.sort(variables, function(a, return a[3]>b[3] end) -- test if variable changed LastVarValue = variables[1][1] .. ' = ' .. variables[1][2] .. ' [' .. os.date("%d/%m/%Y %H:%M:%S", variables[1][3]).. ']' if LastVarValue ~= LastVarChanged then fibaro:setGlobal('LastVarChanged', LastVarValue) fibaro:debug('Changed variable : ' ..LastVarValue) -- send e-mail fibaro:call(push_dev, "sendEmail", "Changed variable", LastVarValue) end -- Display results local id = fibaro:getSelfId() for i = 1, #variables do pcall(function() fibaro:debug(i .. " id=" .. variables[i][1] .. " - Value=" .. variables[i][2] ) fibaro:call(id, "setProperty", "ui.Label"..i..".value", variables[i][1] .. " = " .. variables[i][2] .. " [".. os.date("%X", variables[i][3]).."]") end) end 2
Nvince76 Posté(e) le 25 mars 2015 Signaler Posté(e) le 25 mars 2015 Je viens de modifier le module Day_Phase je le laisse en test jusque demain puis publierais la nouvelle version le module updatera les variables globales uniquement si elles ont évoluées (contrairement à la version actuellement publier qui fait un setglobal à chaque cycle systématiquement 2
megabubu Posté(e) le 5 avril 2015 Signaler Posté(e) le 5 avril 2015 Salut, peut on choisir seulement les variables que l'on veut afficher ?
jojo Posté(e) le 23 avril 2015 Signaler Posté(e) le 23 avril 2015 Steven, J'ai (encore) modifié quelque peu ton code afin de pouvoir mettre une liste de variables globales dont on ne veut pas voir le changement (car peu relevant). ok pour toi pour que je le partage ?
Messages recommandés