cocolabombe0 Posté(e) le 16 février 2015 Signaler Partager Posté(e) le 16 février 2015 Je viens de rajouter les lignes de jojo pour avoir les deux couleurs de la batterie. Avec une petite modification pour l'adapter sur la version 4.xx de Steven. Cela marche pour moi. Lien vers le commentaire Partager sur d’autres sites More sharing options...
nigamais Posté(e) le 16 février 2015 Signaler Partager Posté(e) le 16 février 2015 Peut-on avoir une copie ?Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
cocolabombe0 Posté(e) le 17 février 2015 Signaler Partager Posté(e) le 17 février 2015 Voila le fichier que j'ai modifié. Mes images sont 90 et 91 à modifier. My_Batteries-coco.vfib Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 17 février 2015 Signaler Partager Posté(e) le 17 février 2015 (modifié) @Diuck, marche pas non plus,il est un peu tot ce matin, je reessaierai plus tard, le boulet est toujours entre l'ecran et la chaise ;-) j'ai essaye le code de @cocolabombe0, pas mieux. Dans mon debug du bouton, fenetre noire et rien dans la liste. C'est pe une info importante, le seul module sur batterie est la ZRC100, ca peut-etre une influence ;-) le code a tout de meme l'air de fonctionner car il me met la bonne icone, mais n'affiche pas le nom dans le label Modifié le 17 février 2015 par pepite Lien vers le commentaire Partager sur d’autres sites More sharing options...
HANSOLO Posté(e) le 17 février 2015 Signaler Partager Posté(e) le 17 février 2015 Et si tu mettais une fausse pile dans ton ZRC100? Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 17 février 2015 Signaler Partager Posté(e) le 17 février 2015 ca m'obligerait àbricoler ;-) Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 18 février 2015 Signaler Partager Posté(e) le 18 février 2015 (modifié) bonjour messieurs, je vous mets le code derriere le bouton au cas où...toujours pas d'affichage pour moi ;-) que ce soit avec le module de Steven ou cocolabombe0 Merci function exclude(name) return name == "Main_Zwave_Device" or name == "Seismomètre" or name == "Luminosité" end local HC2 = Net.FHttp("127.0.0.1", 11111) local response = HC2:GET("/api/devices") local json = json.decode(response) local modules = {} local parentIds = {} local uniqueParentId = true for k, v in ipairs(json) do if (type(v.properties.batteryLevel) == "number") then if (not exclude(v.name) and v.visible and (not uniqueParentId or not parentIds[v.parentId])) then parentIds[v.parentId] = true table.insert(modules, {v.properties.batteryLevel, v.name .. " (" .. v.id .. ")"}) end end end function comp(w1,w2) return tonumber(w1[1]) < tonumber(w2[1]) end table.sort(modules,comp) for index, value in ipairs(modules) do pcall( function() fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label"..index..".value", value[2].. " ... " .. value[1] .. "%") end ) end j'oubliais, avec celui de coco : l'icone s'affiche bien..ca a l'air de tourner..mais pas de label.. Modifié le 18 février 2015 par pepite Lien vers le commentaire Partager sur d’autres sites More sharing options...
cocolabombe0 Posté(e) le 18 février 2015 Signaler Partager Posté(e) le 18 février 2015 Je ne sais pas. J'ai le même fichier sans mes lignes rajouté. Sans doute une incompatibilité avec ton seul module a pile. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Diuck Posté(e) le 18 février 2015 Signaler Partager Posté(e) le 18 février 2015 Voila le fichier que j'ai modifié. Mes images sont 90 et 91 à modifier. @ Coco une question tu l'insert ou ton code ? {"name":"My Batteries","type":"virtual_device","properties":{"deviceIcon":1087,"currentIcon":"90","log":"","logTemp":"","mainLoop":"local nbHeure = 12\n\nlocal i = 0\nwhile true do\n\tif (i >= (nbHeure*2) or i == 0) then\n \ti = 0\n\t\tfibaro:call(fibaro:getSelfId(), \"pressButton\", \"11\")\n\tend\n\tfibaro:sleep(30*60*1000)\n \ti = i + 1\nend","ui.Label1.value":"thermostat (49) ... 33%","ui.Label10.value":"17 (17) ... 91%","ui.Label2.value":"fenetre (7) ... 58%","ui.Label3.value":"66.0 (67) ... 70%","ui.Label4.value":"chauffage sdb (54) ... 71%","ui.Label5.value":"chauffage (6) ... 73%","ui.Label6.value":"Chauffage SaM (44) ... 74%","ui.Label7.value":"chauffage salon (42) ... 74%","ui.Label8.value":"82.0 (83) ... 90%","ui.Label9.value":"61.0 (62) ... 90%","visible":"true","rows":[{"type":"label","elements":[{"id":1,"lua":false,"waitForResponse":false,"caption":"","name":"Label1","favourite":false,"main":true}]},{"type":"label","elements":[{"id":2,"lua":false,"waitForResponse":false,"caption":"","name":"Label2","favourite":false,"main":false}]},{"type":"label","elements":[{"id":3,"lua":false,"waitForResponse":false,"caption":"","name":"Label3","favourite":false,"main":false}]},{"type":"label","elements":[{"id":4,"lua":false,"waitForResponse":false,"caption":"","name":"Label4","favourite":false,"main":false}]},{"type":"label","elements":[{"id":5,"lua":false,"waitForResponse":false,"caption":"","name":"Label5","favourite":false,"main":false}]},{"type":"label","elements":[{"id":6,"lua":false,"waitForResponse":false,"caption":"","name":"Label6","favourite":false,"main":false}]},{"type":"label","elements":[{"id":7,"lua":false,"waitForResponse":false,"caption":"","name":"Label7","favourite":false,"main":false}]},{"type":"label","elements":[{"id":8,"lua":false,"waitForResponse":false,"caption":"","name":"Label8","favourite":false,"main":false}]},{"type":"label","elements":[{"id":9,"lua":false,"waitForResponse":false,"caption":"","name":"Label9","favourite":false,"main":false}]},{"type":"label","elements":[{"id":10,"lua":false,"waitForResponse":false,"caption":"","name":"Label10","favourite":false,"main":false}]},{"type":"button","elements":[{"id":11,"lua":true,"waitForResponse":false,"caption":"Batteries","name":"Button11","empty":false,"msg":"function exclude(name)\n\treturn name == \"Main_Zwave_Device\" or name == \"Seismomètre\" or name == \"Luminosité\"\nend\n \nlocal HC2 = Net.FHttp(\"127.0.0.1\", 11111)\nlocal response = HC2:GET(\"/api/devices\")\nlocal json = json.decode(response)\nlocal modules = {}\nlocal parentIds = {}\n \nlocal battlow = \"ok\"\nlocal iconebattok = 90\nlocal iconebattnok = 91\nlocal battlimite = 30 -- % charge sous lequel icône rouge\n\nlocal uniqueParentId = true\n \nfor k, v in ipairs(json) do\n if (type(v.properties.batteryLevel) == \"number\") then\n\tif (not exclude(v.name) and v.visible and (not uniqueParentId or not parentIds[v.parentId])) then\n\t parentIds[v.parentId] = true\nif (v.properties.batteryLevel < battlimite and battlow == \"ok\") then battlow = \"nok\" end \n \t table.insert(modules, {v.properties.batteryLevel, v.name .. \" (\" .. v.id .. \")\"})\n\tend\n end\nend\n \nfunction comp(w1,w2)\n\treturn tonumber(w1[1]) < tonumber(w2[1])\nend\n \ntable.sort(modules,comp)\n \nfor index, value in ipairs(modules) do\n \tpcall( function() \n\t\tfibaro:call(fibaro:getSelfId(), \"setProperty\", \"ui.Label\"..index..\".value\", value[2].. \" ... \" .. value[1] .. \"%\")\n \tend\n \t)\nend\n\nif battlow == \"ok\"\n then\n fibaro:call(fibaro:getSelfId(), \"setProperty\", \"currentIcon\", iconebattok)\n else\n fibaro:call(fibaro:getSelfId(), \"setProperty\", \"currentIcon\", iconebattnok)\nend","buttonIcon":0,"favourite":false,"main":true}]}]},"actions":{"pressButton":1,"setSlider":2,"setProperty":2}} Lien vers le commentaire Partager sur d’autres sites More sharing options...
cocolabombe0 Posté(e) le 18 février 2015 Signaler Partager Posté(e) le 18 février 2015 J'ai juste copier des bouts de code en modifier une variable.Sur mon code, j'ai rajouté au bouton:entre tous les local du début du code local battlow = "ok" local iconebattok = 90 local iconebattnok = 91 local battlimite = 30 -- % charge sous lequel icône rouge Ce code au dessus de table.insert... en v4.... if (v.properties.batteryLevel < battlimite and battlow == "ok") then battlow = "nok" end Et mes icones tout à la fin du code if battlow == "ok" then fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", iconebattok) else fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", iconebattnok) end ---------------------------------------------------------------------------------------------------------------------- Code du bouton complet que j'utilise: function exclude(name) return name == "Main_Zwave_Device" or name == "Seismomètre" or name == "Luminosité" end local HC2 = Net.FHttp("127.0.0.1", 11111) local response = HC2:GET("/api/devices") local json = json.decode(response) local modules = {} local parentIds = {} local battlow = "ok" local iconebattok = 90 local iconebattnok = 91 local battlimite = 30 -- % charge sous lequel icône rouge local uniqueParentId = true for k, v in ipairs(json) do if (type(v.properties.batteryLevel) == "number") then if (not exclude(v.name) and v.visible and (not uniqueParentId or not parentIds[v.parentId])) then parentIds[v.parentId] = true if (v.properties.batteryLevel < battlimite and battlow == "ok") then battlow = "nok" end table.insert(modules, {v.properties.batteryLevel, v.name .. " (" .. v.id .. ")"}) end end end function comp(w1,w2) return tonumber(w1[1]) < tonumber(w2[1]) end table.sort(modules,comp) for index, value in ipairs(modules) do pcall( function() fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label"..index..".value", value[2].. " ... " .. value[1] .. "%") end ) end if battlow == "ok" then fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", iconebattok) else fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", iconebattnok) end 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Diuck Posté(e) le 18 février 2015 Signaler Partager Posté(e) le 18 février 2015 Super merci !! autre chose peux dire si tu peux accéder a la page 102 du support GEA STP car pour moi impossible ça plante Lien vers le commentaire Partager sur d’autres sites More sharing options...
HANSOLO Posté(e) le 18 février 2015 Signaler Partager Posté(e) le 18 février 2015 Surement un rejeton à@Fredo qui àcopier tous son code GEA... 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
cocolabombe0 Posté(e) le 18 février 2015 Signaler Partager Posté(e) le 18 février 2015 Non, je ne peut pas, même sans télécharger, cela ne veut pas. Mais les autres pages, un peu long mais j'y arrive. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Diuck Posté(e) le 18 février 2015 Signaler Partager Posté(e) le 18 février 2015 Ok merci pour l'info Lien vers le commentaire Partager sur d’autres sites More sharing options...
cocolabombe0 Posté(e) le 18 février 2015 Signaler Partager Posté(e) le 18 février 2015 Ca finit par une erreur interne (500) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Diuck Posté(e) le 18 février 2015 Signaler Partager Posté(e) le 18 février 2015 @Coco Nickel c'est tout bon !! un grand merci beau travail Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 18 février 2015 Signaler Partager Posté(e) le 18 février 2015 bon ben, pour moi toujours pas, bizarre, doit vraiment y a voir une incompatibilite avec la ZRC-100 ;-) Wait and see hihihi Lien vers le commentaire Partager sur d’autres sites More sharing options...
cocolabombe0 Posté(e) le 19 février 2015 Signaler Partager Posté(e) le 19 février 2015 Pas bien écrit mais j'ai rajouter les dernières icones de couillerot. function exclude(name) return name == "Main_Zwave_Device" or name == "Seismomètre" or name == "Luminosité" end local HC2 = Net.FHttp("127.0.0.1", 11111) local response = HC2:GET("/api/devices") local json = json.decode(response) local modules = {} local parentIds = {} local battlow = "100" local iconebatt100 = 95 local iconebatt075 = 93 local iconebatt050 = 94 local iconebatt025 = 92 local iconebatt000 = 91 local uniqueParentId = true for k, v in ipairs(json) do if (type(v.properties.batteryLevel) == "number") then if (not exclude(v.name) and v.visible and (not uniqueParentId or not parentIds[v.parentId])) then parentIds[v.parentId] = true if (v.properties.batteryLevel <= 75 and battlow == "100") then battlow = "75" end if (v.properties.batteryLevel <= 50 and battlow == "75") then battlow = "50" end if (v.properties.batteryLevel <= 25 and battlow == "50") then battlow = "25" end if (v.properties.batteryLevel <= 5 and battlow == "25") then battlow = "000" end table.insert(modules, {v.properties.batteryLevel, v.name .. " (" .. v.id .. ")"}) end end end function comp(w1,w2) return tonumber(w1[1]) < tonumber(w2[1]) end table.sort(modules,comp) for index, value in ipairs(modules) do pcall( function() fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label"..index..".value", value[2].. " ... " .. value[1] .. "%") end ) end if battlow == "100" then fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", iconebatt100) elseif battlow == "75" then fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", iconebatt075) elseif battlow == "50" then fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", iconebatt050) elseif battlow == "25" then fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", iconebatt025) else fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", iconebatt000) end Mais je ne sais pas si on peut arrivé jusqu'à 5% car quand j'ai modifié le code, je ne voyais plus le niveau critique du module Lien vers le commentaire Partager sur d’autres sites More sharing options...
jojo Posté(e) le 20 février 2015 Signaler Partager Posté(e) le 20 février 2015 voici ma v3.0 pour le firmware 3.x Changements : dernières icones de couillerot pas afficher le niveau de batterie des noeuds morts (car pas ok) => voir le topic pour les noeuds morts http://www.domotique-fibaro.fr/index.php/topic/101-script-contr%C3%B4le-des-noeuds-mort-et-leur-r%C3%A9veil/page-3#entry55187 My_Batteries_v3.0.vfib Lien vers le commentaire Partager sur d’autres sites More sharing options...
zozotte Posté(e) le 20 février 2015 Signaler Partager Posté(e) le 20 février 2015 J'ai modifié depuis un moment mon code et il répond à ta demande alors soit tu fermes les yeux et tu développes ton propre code pour t'entrainer, soit tu peux copier celui-ci : function exclude(name) return name == "Main_Zwave_Device" or name == "Seismomètre" or name == "Luminosité" end local HC2 = Net.FHttp("127.0.0.1", 11111) local response = HC2:GET("/api/devices") local json = json.decode(response) local modules = {} local parentIds = {} local uniqueParentId = true for k, v in ipairs(json) do if (type(v.properties.batteryLevel) == "number") then if (not exclude(v.name) and v.visible and (not uniqueParentId or not parentIds[v.parentId])) then parentIds[v.parentId] = true table.insert(modules, {v.properties.batteryLevel, v.name .. " (" .. v.id .. ")"}) end end end function comp(w1,w2) return tonumber(w1[1]) < tonumber(w2[1]) end table.sort(modules,comp) for index, value in ipairs(modules) do pcall( function() fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label"..index..".value", value[2].. " ... " .. value[1] .. "%") end ) end @Steven... j'ai craqué .. tout ok pour moi ! merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sakkhho Posté(e) le 21 février 2015 Signaler Partager Posté(e) le 21 février 2015 jojo ca marche en 4.033 ton module ? visiblement non, j'ai pris le code de coco ;-) c'est parfait merci à vous Lien vers le commentaire Partager sur d’autres sites More sharing options...
jojo Posté(e) le 21 février 2015 Signaler Partager Posté(e) le 21 février 2015 Sakkhho, Mes codes fonctionnent sur 3.x. (je n'ai pas encore osé faire le grand sot ...) Voici la v3.1 de ma version du module (en firmware 3.x). Changements : il ne faut plus modifier le code pour ajuster l'intervalle (en heures) des vérifications : intervalle à rentrer dans le champ TCP Port du VD My_Batteries_v3.1.vfib Toutes les versions et icônes de ce VD se trouvent sur GoogleDrive (lien dans ma signature) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sakkhho Posté(e) le 21 février 2015 Signaler Partager Posté(e) le 21 février 2015 Je suis passé ce matin et RaS pour le moment Lien vers le commentaire Partager sur d’autres sites More sharing options...
jojo Posté(e) le 24 février 2015 Signaler Partager Posté(e) le 24 février 2015 Voici la version 3.2 avec une correction d'un bug au niveau de l'affichage : si le nbr de device sur batterie diminue, les dernière ligne ne se mettent pas à blanc. Dans l'exple ci-dessous, on voit 2 fois le même device à la fin My_Batteries_v3.2.vfib 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
cybersquat Posté(e) le 24 février 2015 Signaler Partager Posté(e) le 24 février 2015 salut jojo, beau taf comment tu intègres tes icons par contre et avoir leur id ? Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés