-
Compteur de contenus
14 646 -
Inscription
-
Dernière visite
-
Jours gagnés
190
Tout ce qui a été posté par jojo
-
Merci beaucoup pour ce code. Mais ma question initiale était : Est-ce qu'un reboot toutes les nuits éliminerait le risque d'erreur 503 après quelques jours ?
-
Mais pour les nons experts comme moi, est-ce que un restart de la box toutes les nuits résolverait le problème ? Il me semble avoir vu passer un post qui explique comment programmer cela dans la box.
-
Pour info, j'ai fait un split de mes instances GEA en v4.x. Une instance avec le minimum minimorum : activation des lampes sur base des détecteurs de mouvement. Une autre instance avec tout le reste, y compris l'extinction des lampes allumées par la première instance. Ce n'est pas encore instantané, mais cela vaut la peine de faire le split
-
Merci pour le retour, j'ai exactement la même config que toi, une idée ?
-
j'ai aussi tout renommé, et toujours pas de plantage. Wait and see. Je vais splitter mon GEA en 2 instances : une qui devrait être super rapide (le lumières et détecteurs) et une autre. J'espère ainsi que ça ira mieux.
-
J'ai également essayé sur un PC (burck ...) et j'observe la même chose. Chez vous les icônes des VD changent automatiquement sans refresh manuel de la page ?
-
J'ai pas compris grand chose à ces explications très techniques, sauf que tu as trouvé une solution à un problème de Fibaro. Je suis sà»r que si tu envoie un mail à support@fibaro.com avec cette explication détaillée et la solution, elle fera partie de la prochaine mise à jour. J'ai la naà¯veté de croire que cela risque d'être plus efficace que le bugtracker
-
Maintenant que je suis en v4.x j'ai trouvé comment tester si le device était sur batterie. Donc aussi sur batterie, il n'y a pas de tentative de réveil (inutile). Voici donc la v4.1 du module : DeadNodesAnalysis_v4.1.vfib Si vous avez déjà les version précédentes, il suffit de mettre ce code dans le bouton "Dead Nodes Analysis" : -------------------------- -- User Settings -------------------------- local IconeDead = 1129 local IconeOk = 1081 local IconeRun = 1083 local push_dev = 2 -- id of the user to send push message to (2 is admin user) ---------------------------------- -- DO not change bellow this line ---------------------------------- local selfID = fibaro:getSelfId() fibaro:call(selfID, "setProperty", "currentIcon", IconeRun) -- check if notification to be sned local SendNotification = "" -- Push / no push notification when a dead node is discovered local Notification = fibaro:get(selfID,"TCPPort") Notification = tonumber(Notification) if Notification == 0 then SendNotification = "No" else SendNotification = "Yes" end function SendNotif(msg) if SendNotification == "Yes" then fibaro:call(push_dev, "sendEmail", "Dead nodes discovering", msg) end end function DisplLabel(dead, label) if dead <= 9 then fibaro:call(selfID, "setProperty", "ui.DeadNode" ..dead.. ".value", label) end end local dead = 0 -- counts # dead nodes local devices = 0 -- counts # devices discovered local i = 0 local type = "" local disabled -- device caché == 1 local Label = "" -- clear labels for i = 1, 9 do DisplLabel(i, Label) end -- détermination de la version du firmware local HC2 = Net.FHttp("127.0.0.1",11111) version = "" payload = "/api/settings/info" response, status, errorCode = HC2:GET(payload) if tonumber(status) == 200 then jsonTable = json.decode(response) if tonumber(jsonTable.softVersion) >= 4 then version = "4.x" else version = "3.x" end else fibaro:log("--- ERROR ---") fibaro:debug('<span style="color:red;">status='..status..', errorCode='..errorCode..', payload='..payload..', response='..response..'</span>') end fibaro:debug('version = ' ..version) if version == "3.x" then -- v3.x -- dead nodes analysis for i = 2, 1300 do -- pas de check sur node 1 = box type = fibaro:getType(i) disabled = tonumber(fibaro:getValue(i, "disabled")) -- si type <> "" et visible if (type ~= "" and disabled == 0 ) then devices = devices + 1 -- si node i est dead/mort if tonumber(fibaro:getValue(i, "dead")) == 1 then -- le node i est dead dev = fibaro:getName(i) dead = dead + 1 -- affichage du node qui est dead si <=9 Label = dev.. " (" ..i.. ")" DisplLabel(dead, Label) -- wakeup dead node only if not on battery et "parentID" = "1" if (tonumber(fibaro:getValue(i, "isBatteryOperated")) == 0 and tonumber(fibaro:getValue(i, "parentID")) == 1) then fibaro:call(selfID, "setProperty", "currentIcon", IconeDead) fibaro:call(1, "wakeUpDeadDevice", i) fibaro:sleep(30*1000) -- attendre 30s pour tester si le node est réveillé if tonumber(fibaro:getValue(i, "dead")) == 1 then -- le node i est toujours dead msg = os.date("%d/%m/%y %H:%M").." : "..type.." "..dev.." ID("..i..") is still dead after unsuccessful wakeup" else -- le node i a été réveillé dead = dead - 1 -- effacer le node qui a été réveillée si <=9 DisplLabel(dead, " ") msg = os.date("%d/%m/%y %H:%M").." : "..type.." "..dev.." ID("..i..") was awakened successfully" end else msg = os.date("%d/%m/%y %H:%M").." : "..type.." "..dev.." ID("..i..") is on battery and was NOT awakened" -- fibaro:debug ("device " ..i.. " " ..dev.. "is on battery, no wakeup") end -- envoi notification SendNotif(msg) end end end else --v4.x -- Récupération de la liste des modules reponse = HC2:GET("/api/devices") jsonResponse = json.decode(reponse) -- dead nodes analysis for k, v in ipairs(jsonResponse) do fibaro:debug("k="..k) if v.visible == true and v.properties.dead ~= nil then devices = devices + 1 fibaro:debug("#devices "..devices.. " - devID = "..v.id.. " - devName = " ..v.name.. " - dead = " ..v.properties.dead) -- si node est dead/mort if v.properties.dead == "true" then -- le node k est dead dev = v.name devID = tonumber(v.id) type = v.type dead = dead + 1 fibaro:debug ("#dead = "..dead) -- affichage du node qui est dead si <=9 Label = dev.. " (" ..devID.. ")" DisplLabel(dead, Label) -- wakeup dead node only if not on battery -- a voir comment faire en v4.x ?? if v.properties.batteryLevel == nil then -- il n'est pas sur batteie fibaro:call(selfID, "setProperty", "currentIcon", IconeDead) fibaro:call(1, "wakeUpDeadDevice", devID) fibaro:sleep(30*1000) -- attendre 30s pour tester si le node est réveillé if v.properties.dead == "true" then -- le node est toujours dead msg = os.date("%d/%m/%y %H:%M").." : "..type.." "..dev.." ID("..devID..") is still dead after unsuccessful wakeup" else -- le node i a été réveillé dead = dead - 1 -- effacer le node qui a été réveillée si <=9 DisplLabel(dead, " ") msg = os.date("%d/%m/%y %H:%M").." : "..type.." "..dev.." ID("..devID..") was awakened successfully" end else -- il est sur batterie msg = os.date("%d/%m/%y %H:%M").." : "..type.." "..dev.." ID("..devID..") is on battery and was NOT awakened" end -- envoi notification SendNotif(msg) end end end end fibaro:call(selfID, "setProperty", "ui.DeadNodes.value", dead) fibaro:call(selfID, "setProperty", "ui.DateCheck.value", os.date("%d/%m/%y %H:%M")) fibaro:call(selfID, "setProperty", "ui.Devices.value", devices) if dead >= 1 then fibaro:call(selfID, "setProperty", "currentIcon", IconeDead) -- affichage du message en bas de l'icône en continu, -- durant la minute entre chaque test i=0 while i < 61 do fibaro:log(dead.. " DeadNodes - Send Notification = " ..SendNotification ) fibaro:sleep(9*1000) i = i + 9 end else fibaro:call(selfID, "setProperty", "currentIcon", IconeOk) -- affichage du message en bas de l'icône en continu, -- durant la minute entre chaque test i=0 while i < 61 do fibaro:log("No Dead Nodes - Send Notification = " ..SendNotification ) fibaro:sleep(9*1000) i = i + 9 end end
- 147 réponses
-
- 1
-
- Script Lua
- Controle
-
(et 3 en plus)
Étiqueté avec :
-
comme on était déjà demain , j'ai regardé, et il ne m'affiche plus rien de trop. Je pense donc qu'en plus, on devra faire un test sur la longueur de la variable result, et dès qu'elle atteint 2000 car, l'imprimer et recommencer. Mais maintenant je dois aller dormir
-
comme je suis impatient, j'ai fait le test en supprimant les devices invisibles for k, v in pairs(devicesJSon) do local doit = (dead or not v.dead) -- exclure les device invisibles if v.visible == false then doit = false end if (doit) then et j'ai réduit result à2897 caractères, mais c'est encore de trop. Je continuerai àchercher demain
-
Sorry, je ne comprends pas. Comment vais-je réduire la taille de la variable result si je modifie ça result = result .. "<BR>--"..rooms[v.roomID].."<BR>" en ça ? result=result .. "<BR>--"..rooms[v.roomID].."<BR>"
-
@Steven, Je viens de faire une analyse un peu plus approfondie, en remplaçant reseult = par fibaro:debug( Donc j'affiche mes lignes de débug au fur et à mesure, mais c'est inutilisable, car il y a l'heure, ... Mais cela m'a permis de voir qu'il listait également tous les devices qui étaient cochés comme invisibles (dont tous les main zwave controler). Donc dans la fonction d'exclusion, il faudrait également supprimer les devices pour lesquels visible = false, et le tour est joué.
-
depuis ma migration en V4, j'ai voulu relancer le script pour vérifier, et il ne me retourne rien du coup j'ai mis des debug un peu partout pour voir jusqu'où il allait, et en fait, il va jusqu'au bout, sauf qu'il ne veut pas afficher le résultat : fibaro:debug(result) la variable result a chez moi une longueur de 4017 caractères. Aurait-on atteint la limite des possibilités du fibaro:debug ?
-
je comprend bien ce que tu veux : on génère les ID on sauve le tout dans une var globale et en début de chaque script, on lit la var globale avec les noms et id et dans le scipt , on fait simplement réf au nom du device je vois 2 difficultés : longueur maximale de la variable globale (perso, le script me génère un string de 3900 caractères !) le temps CPU de lecture de la VG à chaque exécution de chaque script
-
si tu as des infos par rapport aux perf de GEA, ça m'intéresse. Car depuis mon upgrade, la latence est de 1 à4 sec (pour les lumières déclenchées par FGMS, c'est pas génial). Pour Nico, avec une clean install, c'est hyper rapide. Je serais tenté de tout refaire, mais j'aimerais avoir un autre input (quand tu as migré vers GEA 5.34)
-
Merci Nico pour le retour. Bonne et mauvaise nouvelle : si je dois, comme toi, tout refaire depuis zéro Peut-tu poser le benschmark de Steven ? Voici le mien : [DEBUG] 21:59:05: Nb runs : 1000 | id : 56 | G.Variable : Chauffage [DEBUG] 21:59:05: ---------------------------------------------- [DEBUG] 21:59:05: [DEBUG] 21:59:07: getValue Exist : instruction time : 2s | cpu time : 1.49s [DEBUG] 21:59:09: getValue Not Exist : instruction time : 2s | cpu time : 1.35s [DEBUG] 21:59:16: setValue : instruction time : 7s | cpu time : 3.24s [DEBUG] 21:59:18: getGlobal Exist : instruction time : 2s | cpu time : 1.61s [DEBUG] 21:59:20: getGlobal Not Exist : instruction time : 2s | cpu time : 1.34s [DEBUG] 22:00:12: setGlobal : instruction time : 52s | cpu time : 3.96s [DEBUG] 22:00:20: getType : instruction time : 8s | cpu time : 6.34s [DEBUG] 22:00:28: getName : instruction time : 8s | cpu time : 6.18s [DEBUG] 22:00:36: getRoomID : instruction time : 8s | cpu time : 6.21s [DEBUG] 22:00:46: getRoomName : instruction time : 10s | cpu time : 8.13s [DEBUG] 22:00:48: getSunrise : instruction time : 2s | cpu time : 1.51s [DEBUG] 22:00:48: [DEBUG] 22:00:48: ---------------------------------------------- Merci, c'est ce qui me déciderait à refaire alors une clean install demain
-
j'ai essayé avec un autre browser => idem mais ce n'est pas un problème de code, car sur mon tel Android, cela fonctionne pico-bello Zut, ça m'énerve, ce n'est pas grave, mais je trouverai. De même GEA réagit beaucoup moins vite : latence 1 à 4 sec, alors qu'avant instantané. Mais le script de benchmark de Steven confirme cela ... Pour le reste, je suis super content, car tous mes détecteurs de mvt semblent fonctionner beaucoup mieux
-
merci d'avoir regardé. Je termine ma migration vers V4.x et relis cela àtête reposée.
-
merci, j'ai tout essayer (vider tout dans le cache et redémarrer mon pommier (là tu m'as fait bien rire )) ça ne change rien. Est-ce que il n'y aurait pas eu des changements en v4 par rapport au retour des binary sensor Je suspecte que ce code ne soit plus valide if tonumber(fibaro:getValue(GV_Open, "value")) == 0 then if tonumber(fibaro:getValue(GV_Mvt, "value")) == 0 then fibaro:debug("GV_Close") fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", iconeClosed)
-
merci pour l'affichage des device cachés : cela me confirme que je les ai tous qui apparaissent, même si la ligne entre master et slave continue vers le bas => c'est juste un problème de layout . Pour l cache, je suis sous MAC/Chrome. Comment je fais, j'ai vu qu'il me supprimait tout : mon historique, mes cookies, ... bof. Je devrais supprimer quoi ? ou est-ce que un restart du MAC suffirait ?
-
en fait quand on met l'alarme en route, cela revient àmettre les devices indépendemment en route. Je ne sais pas ce que tu veux dire par zone ? (= pièce ?) => donc tu dois armer un àun les devices que tu veux armer
- 12 255 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
j'observe tout de même deux choses ennuyantes : les icônes de mes VD ne changent que si je fait un refresh de la page (en 3.6, il y avait une sorte de refresh automatique, quand je fermais ma porte de garage, je la voyait passer de ouvert, àmoitié ouvert et ensuite fermé. Maintenant je dois faire un refresh de la page pour savoir si la porte est fermée (ou ouverte) suite àl'ordre que j'ai donné : pas cool) avec les 3 tonnes de slave devices qu'il crée, je ne vois que les 4 premiers, impossible de voir les suivants (et donc de les configurer si besoin)
-
sorry, je ne pensais pas que cela aurait eu un impact sur les associations, et encore moins que tu doives aller derrière tes radiateurs pour réassocier le bazar
-
Plugin Developer Installer Un Plugin Utilisateur En 4.0.x
jojo a répondu à un(e) sujet de darklite44 dans Plugins Developpeur
c'est vrai que sebcbien n'habite pas loin de chez moi, je pourrais faire une descente chez lui -
l'upgrade est terminé, tout semble ok du premier coup !