cocolabombe0 Posté(e) le 16 février 2015 Signaler 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.
nigamais Posté(e) le 16 février 2015 Signaler Posté(e) le 16 février 2015 Peut-on avoir une copie ?Merci
cocolabombe0 Posté(e) le 17 février 2015 Signaler 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
pepite Posté(e) le 17 février 2015 Signaler 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
HANSOLO Posté(e) le 17 février 2015 Signaler Posté(e) le 17 février 2015 Et si tu mettais une fausse pile dans ton ZRC100?
pepite Posté(e) le 17 février 2015 Signaler Posté(e) le 17 février 2015 ca m'obligerait àbricoler ;-)
pepite Posté(e) le 18 février 2015 Signaler 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
cocolabombe0 Posté(e) le 18 février 2015 Signaler 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.
Diuck Posté(e) le 18 février 2015 Signaler 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}}
cocolabombe0 Posté(e) le 18 février 2015 Signaler 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
Diuck Posté(e) le 18 février 2015 Signaler 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
HANSOLO Posté(e) le 18 février 2015 Signaler Posté(e) le 18 février 2015 Surement un rejeton à@Fredo qui àcopier tous son code GEA... 1
cocolabombe0 Posté(e) le 18 février 2015 Signaler 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.
cocolabombe0 Posté(e) le 18 février 2015 Signaler Posté(e) le 18 février 2015 Ca finit par une erreur interne (500)
Diuck Posté(e) le 18 février 2015 Signaler Posté(e) le 18 février 2015 @Coco Nickel c'est tout bon !! un grand merci beau travail
pepite Posté(e) le 18 février 2015 Signaler 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
cocolabombe0 Posté(e) le 19 février 2015 Signaler 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
jojo Posté(e) le 20 février 2015 Signaler 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
zozotte Posté(e) le 20 février 2015 Signaler 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
Sakkhho Posté(e) le 21 février 2015 Signaler 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
jojo Posté(e) le 21 février 2015 Signaler 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)
Sakkhho Posté(e) le 21 février 2015 Signaler Posté(e) le 21 février 2015 Je suis passé ce matin et RaS pour le moment
jojo Posté(e) le 24 février 2015 Signaler 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
cybersquat Posté(e) le 24 février 2015 Signaler Posté(e) le 24 février 2015 salut jojo, beau taf comment tu intègres tes icons par contre et avoir leur id ? Merci
Messages recommandés