Steven Posté(e) le 20 mars 2015 Signaler Posté(e) le 20 mars 2015 Prends .. aucun soucis .. de plus, c'est pas du code donc je mords pas dans des cas pareil Allez messieurs ... à bientôt.
mprinfo Posté(e) le 20 mars 2015 Signaler Posté(e) le 20 mars 2015 je site toujours l'auteur quand je prend un bout de code d’ailleurs tu dois etre dans la télécommande universel V1
Did Posté(e) le 17 avril 2015 Signaler Posté(e) le 17 avril 2015 Je viens de m'apercevoir que l'icône du module virtuel (en début de page 2) ne change plus quand je change l'état du module "fil pilote" directement.
pepite Posté(e) le 21 avril 2015 Signaler Posté(e) le 21 avril 2015 bonjour à tous, Mer revoila en mode boulet ;-) Je pensais avoir fait ce qu'il fallait pour recup mes icônes de VD après reboot, ben en faisant la mise à jour en 4.042, j'ai du me tromper quelque part. Je fais appel à vous, qu'avez-vous utiliser alors ? sachant que je prefererais éviter le mainloop des VD ;-) une scene qui fait appel a chaque bouton de vos VD pour remettre a jour l'icone ? avec ca par exemple : mais lourd a chque nouveau VD faut ajuster la scene -- On reprend l'id de l'icone du module virtuel en cours local icon_id = fibaro:get(fibaro:getSelfId(), "deviceIcon"); -- Puis on en fait ce qu'on veux fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", icon_id);
Steven Posté(e) le 21 avril 2015 Signaler Posté(e) le 21 avril 2015 Ben moi pas comprendre la question Chez moi, si je fais une mise à jour, tout mes icônes de VD sont affichés correctement sans que je fasse quoi que ce soit.
pepite Posté(e) le 21 avril 2015 Signaler Posté(e) le 21 avril 2015 quel est ton secret ? Lol je n'ai pas ete très clair hihi Après la mise a jour en 4.042, au redémarrage, j'ai quelques VD qui n'ont plus d'icône perso mais les 'beaux carrés bleus" de FIbaro. Je dois bien me tromper quelque part mais où ? J'ai mis pourtant des icones derriere les boutons mais après redémarrage, icone bleu lol
Steven Posté(e) le 21 avril 2015 Signaler Posté(e) le 21 avril 2015 A ben oui, les icônes derrière les boutons ne sont affiché QUE si tu cliques sur le bouton, ce qui est normal et voulu. Tu dois mettre une icône sur le module virtuel lui-même pour qu'il s'affiche après un reboot.
pepite Posté(e) le 21 avril 2015 Signaler Posté(e) le 21 avril 2015 bon ben voila, je savais bien que le boulet c'etait moi hihi Ou alors comment remettre l'icone avant le redemarrage ? Recup le "currentIcon", le garder quelquepart et le remettre avec un call ? pas pratique lol
Steven Posté(e) le 21 avril 2015 Signaler Posté(e) le 21 avril 2015 En effet, pas pratique, mais pas vraiment le choix. Chaque fois que tu cliques sur un bouton d'un VD, il faudrait que tu stockes dans un Variable Global le numéro du VD et du currentIcon ... lourd tout cela mais réalisable. -- On récupère la liste des VD/Icones stocké dans la variable globale "Icones" -- et on le transforme en tableau exploitable local icones = json.decode(fibaro:getGlobalValue("Icones")) -- On ajoute/modifie la valeur du couple VD/Icone icones[fibaro:getSelfId()] = fibaro:getValue(id, "currentIcon") -- On remet cela en json dans la variable globale "Icones" fibaro:setGlobal("Icones", json.encode(icones)) . . Puis la scène pour les remettre --[[ %% autostart --]] -- On récupère la liste des VD/Icones stocké dans la variable globale "Icones" -- et on le transforme en tableau exploitable local icones = json.decode(fibaro:getGlobalValue("Icones")) -- On parcours toutes les entrées et on met l'icone àjour for k,v in ipaires(icones) do fibaro:call(k, "setProperty", "currentIcon", v) end Bien évidement, je n'ai rien testé et cela n'est qu'une suggestion. 1
mprinfo Posté(e) le 21 avril 2015 Signaler Posté(e) le 21 avril 2015 Tout cela pour une icône moi je lache l affaire ☺ je suis entrain de voir pour faire cela dans une scene avec autostart Envoyé avec mon SmartPhone
pepite Posté(e) le 21 avril 2015 Signaler Posté(e) le 21 avril 2015 en fait faudrait mettre le code dans chaque VD puis après la scene gere tout ;-) vive le copier/coller dans tous les boutons des VD ;-) ..ou dans le Main Loop ?
mprinfo Posté(e) le 21 avril 2015 Signaler Posté(e) le 21 avril 2015 On peut faire une recherche des vd via l api et attribué un icone en fonction du nom du vd Envoyé avec mon SmartPhone
jojo Posté(e) le 21 avril 2015 Auteur Signaler Posté(e) le 21 avril 2015 pepite, Dans le tuto que j'ai écris àl'époque http://www.domotique-fibaro.fr/index.php/topic/4149-afficher-les-valeurs-dune-variable-dans-un-vd-sour-hc2/ j'explique comment au redémarrage de la box, il clique sur le bon bouton de tous les VD qui gèrent mes variables.
Steven Posté(e) le 21 avril 2015 Signaler Posté(e) le 21 avril 2015 Voici une proposition : Il faut juste mettre en entête, les ID des Modules virtuels (ex. 194 currentIcon). Donc chaque fois que le currentIcon du module virtuel va changer, cette scène va stocker l'information dans une variable globale. Au démarrage de la box, elle va chercher la variable globale et va écrire les valeurs stockées dans les modules virtuels. En bref, elle écoute les changements de currentIcon et les restaure au redémarrage. Il faut créé la variable globale. --[[ %% autostart %% properties 104 currentIcon --]] local variableGlobale = "Icones" local trigger = fibaro:getSourceTrigger() if (trigger.type == "autostart" or trigger.type == "other") then fibaro:debug("Mise à jour des icones sur les VD") local icones = json.decode(fibaro:getGlobalValue(variableGlobale)) -- On parcours toutes les entrées et on met l'icone à jour for k,v in pairs(icones) do fibaro:debug(string.format("Module : %s - currentIcon %s", k, v)) fibaro:call(tonumber(k), "setProperty", "currentIcon", v) end elseif (trigger.type == "property") then local prop = trigger.propertyName local device = trigger.deviceID local val = fibaro:getValue(device, prop) fibaro:debug(string.format("Module Virtuel %s (%d) propriété %s = %s", fibaro:getName(device), device, prop, val)) local icones = json.decode(fibaro:getGlobalValue(variableGlobale)) if (not icones) then icones = {} end -- On ajoute/modifie la valeur du couple Virtual Device/Icone icones[device] = val -- On remet cela en json dans la variable globale "Icones" fibaro:setGlobal(variableGlobale, json.encode(icones)) end 2
pepite Posté(e) le 21 avril 2015 Signaler Posté(e) le 21 avril 2015 Yes, Steven, voila j'ai teste,petit bug dans le debug : [DEBUG] 21:34:01: Mise àjour des icones sur les Virtual Device [ERROR] 21:34:01: line 19: bad argument #1 to 'pairs' (table expected, got number) [DEBUG] 21:34:07: Mise àjour des icones sur les Virtual Device
Steven Posté(e) le 22 avril 2015 Signaler Posté(e) le 22 avril 2015 Tiens, je pensais l'avoir corrigé celle là. C'est pairs au lieu de ipairs.... Juste enlever le i.
pepite Posté(e) le 22 avril 2015 Signaler Posté(e) le 22 avril 2015 Salut Steven, J'avais essaye aussi mais idem ;-) [DEBUG] 09:12:55: Mise à jour des icones sur les Virtual Device [ERROR] 09:12:55: line 19: bad argument #1 to 'pairs' (table expected, got number)
Did Posté(e) le 22 avril 2015 Signaler Posté(e) le 22 avril 2015 Personne n'a de réponse ou d'idée pour mon problème: l'icône du module virtuel ne change plus quand je change l'état du module "fil pilote" directement. Voici le code mis en place dans la mainloop (qui fonctionnait au début). local Qubino_ID = 302 -- Tables des icones local icone = { [99] = 1027, [50] = 1134, [40] = 1135, [0] = 1030, [20] = 1029, [30] = 1028 } fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", icone[tonumber(fibaro:getValue(Qubino_ID, "value"))]) local temp = fibaro:getValue(279, "value") fibaro:log(temp .." °C" ) fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label1.value",temp.. " °C") Les trois dernières lignes m'affiche la température de la zone dans une étiquette et en bas de la case du module dans l'interface HC2. Les Id n'ont pas changé mais ça ne fonctionne plus.
Steven Posté(e) le 22 avril 2015 Signaler Posté(e) le 22 avril 2015 @pepite Tu dois avoir quelque chose de bizzare dans ta variable globale qui fait que le json.decode ne te renvoi pas un tableau mais un chiffre. Je te laisse vérifier. @Did Si tu es sà»re des valeurs et des id d'icones, tu peux essayer ceci : fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", tostring(icone[tonumber(fibaro:getValue(Qubino_ID, "value"))])) au lieu d'envoyer un numéro d'icone, on lui envoi le numéro sous forme de chaine .. me semble que j'avais eu ce soucis. Sinon, ajoute cette ligne a la fin pour controler les valeurs : fibaro:debug("Quibino value = " .. fibaro:getValue(Qubino_ID, "value"))
pepite Posté(e) le 22 avril 2015 Signaler Posté(e) le 22 avril 2015 @steven, Effectivement ca doit etre cela vu le debug mais je ne vois pas d'ou cela vient DEBUG] 10:50:28: Module Virtuel Mode_Maison (24) propriété currentIcon = 1007 [ERROR] 10:50:28: line 37: attempt to index local 'icones' (a number value) ma ligne 37 : icones[device] = val Alors la, vous n'allez pas me croire, ca fonctionne au TOP Steven, bon j'ai pas encore redemarré mais aucun doute.. Ce qui n'allait pas : le nom de ma Variable GLobale etait : "Icones", me suis as embete, j'ai repris ce que tu avais mis Steven Je l'ai modifiée en "icones" (sans la majuscule) et la tout est OK :-( Une explication pour ma culture svp ? la majuscule "I" est-elle interpretee autrement ? MErci encore Steven
mprinfo Posté(e) le 22 avril 2015 Signaler Posté(e) le 22 avril 2015 Le lua est sencible a la case Icones est icones sont 2 variables Envoyé avec mon SmartPhone
Berale64 Posté(e) le 22 avril 2015 Signaler Posté(e) le 22 avril 2015 Icones est icones sont 2 variables Si "Icônes est icônes" alors c'est le même, mais c'est vrai que Icônes et icônes c'est pas pareil !
Messages recommandés