Aller au contenu

jojo

Membres confirmés
  • Compteur de contenus

    14 555
  • Inscription

  • Dernière visite

  • Jours gagnés

    186

Tout ce qui a été posté par jojo

  1. merci de t'inquiéter de mon cas. Cela fait longtemps que je ne suis plus sorti le soir (après le coucher du soleil). Je ne suis pas encore passé à la 2.6.2 : je m'en occupe prochainement. Mais tu confirmes qu'il y a un stà»ut (en belge on comprend l'expression ) dans le log de mon post "initial"
  2. voilà la v4.0 (fu module VD) qui arrive. Normalement elle n'est pas buguée. Nouveauté : compatibilité automatique v4.x et v3.x N.B. pour les firmware v4.x je n'ai pas pu testé le réveil des noeuds morts (je n'ai pas physiquement accès à ma HC2 de test. Merci au passage à son propriétaire ) il essaye de réveiller les devices sur batterie (bien que inutile), mais je n'ai pas trouvé comment tester (en V4.x) si le device est sur batteries si le device principal est mort, il rapporte également le décès de ses filles (idem, je n'ai pas pu identifier dans le json si un device était maître ou fille) le code pourrait être optimisé entre 3.x et 4.x, mais j'ai voulu garder des codes spécifiques pour le "support" Voici le VD à charger : DeadNodesAnalysis_v4.0.vfib Et pour ceux qui ont déjà une version précédente, et ne veulent pas multiplier les id (ils se reconnaîtront ) Code du main loop : --------------------------------------------------------------------------------------------- -- OBJECTIF -- Ce VD vérifie les noeuds morts dans le réseau z-wave -- Fréquence de vérification : toutes les minutes -- Tentative de réveil des noeuds morts, s'ils ne sont pas sur piles -- 2 boutons pour choisir si on veut recevoir une notification par mail lorsqu'il découvre -- un noeud mort -- un label indique le moment de la dernière vérification -- -- FIRMWARE -- v3.x & v 4.x -- http://www.domotique-fibaro.fr/index.php/topic/101-script-contr%C3%B4le-des-noeuds-mort-et-leur-r%C3%A9veil/ -- -- HISTORIQUE -- v4.0 (12/05/2015 - Jojo) : compatyibilité v3.x & v4.x -- v3.6 (24/04/2015 - Jojo) : améliore le code pour l'affichage et les notifs -- v3.5 (10/03/2015 - Jojo) : affichage icône dead durant la période de tentative de réveil -- v3.4 (21/02/2015 - Jojo) : label avec affichage moment de la dernière action -- v3.3 (20/02/2015 - Jojo) : bug test device secondaire sur batteries -- v3.2 (20/02/2015 - Jojo) : bug test devices sur batteries -- v3.1 (19/02/2015 - Jojo) : bug affichage -- v3.0 (19/02/2015 - Jojo) : affichage dans détail du VD la liste des noeuds morts -- 2 boutons dans le VD pour indiquer si on veux être notifié -- afficha nbr noeuds morts en bas de l'icône -- v2.1 (02/02/2015 - Jojo) : après réveil d'un noeud mort, ajout d'un délais d'attente de -- 30s avant de retester -- v2.0 (31/01/2015 - Jojo) : transformation en VD; champs d'information complémentaires -- v1.0 (07/12/2014 - Sebcbien) : scène créée initialement par Sebcbien ---------------------------------------------------------------------------------------------- ---------------------------------- -- User Settings ---------------------------------- ---------------------------------- -- DO not change bellow this line ---------------------------------- local SendNotification = "" -- Push / no push notification when a dead node is discovered local Notification = fibaro:get(fibaro:getSelfId(),"TCPPort") Notification = tonumber(Notification) if Notification == 0 then SendNotification = "No" else SendNotification = "Yes" end fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Notification.value", SendNotification) fibaro:call(fibaro:getSelfId(), "pressButton", "1") fibaro:sleep(1*60*1000) -- exécuter toutes les min et le code du bouton "DeadNodesAnalysis" : -------------------------- -- 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 ?? 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 -- 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 Vos propositions d'évolutions sont comme d'habitude les bienvenues
  3. jojo

    Banque Icones Hcl, HC2 et HC3

    Salut maître graphiste, Je me suis mis à sonos, et donc ... il me "faut" des belles icônes. il y en a déjà proposées par Lionel : http://www.domotique-fibaro.fr/index.php/topic/139-home-center-2-et-sonos/?hl=sonos mais pas pour le Play:1 (en blanc de préférence) Peux-tu la contre (c'est de l'argo belge) ? Merci
  4. donc, si j'ai bien compris, tu as une scène qui capture l'état e ta porte via ton IPX Et tu souhaiterais faire cela dans un VD dont l'icône change en fonction de ce que retourne l'IPX. Poste ce qui marche pour ta scène, on devrait pouvoir le traduire dans un VD (au niveau de la mainloop, qui tourne toute les 3 sec, et qui devra interroger l'IPX et afficher l'icône correspondante en fonction de la réponse)
  5. en effet, je fais dès backup àchaque modif (ajout de device, modif scènes ou VD, ...)
  6. Je veux bien mettre le code, mais il y a 2 labels en plus que par le passé
  7. voici donc une version 2.0 du module, sur base d'une compil de vos demandes en 4.0 faite par Sakkhho. Outre la compatibilité automatique 3.x - 4.x, j'ai apporté les modifs/améliorations suivantes : correction d'un bug qui faisait qu'il n'était pas tenu compte des devices entrés dans toExclude affichage du nombre de devices allumés et dans le debug affichage des devices allumés nécessité de faire un double-click pour tout éteindre (on ne risque donc pas de cliquer par erreur) Si vous avez encore d'autres idées d'évolution ... Toutes_LumieÌ€res_v2.0.vfib Edit : PS, le code pourrait être optimisé, mais j'ai voulu clairement faire la distinction en v3.x et v4.x
  8. j'ai trouvé une machine de test en V4.X, et pour l'instant elle me permet de valider
  9. Sakkhho, m'a envoyé en MP le code, qui comprendrait normalement tout. Il faut "juste" que je m'y mette ...
  10. jojo

    Requêtes Http /get Sur Hcl

    ça DOIT fonctionner. Vérifie : l'utilisateur a-t-il bien les droits sur ces scènes ? essaie avec un mot de passe qui ne contient pas des caractères bizarres
  11. j'ai la version 2.6.1. Le debug ne m'affiche pas l'heure du prochain sunset. C'est parce qu'il ne l'a pas trouvé, ou est-ce une amélioration que tu as apportée àla 2.6.2 ?
  12. as-tu un backup récent ? j'essayerais ceci : je la débranche une nuit et la laisse se reposer ... si pas réglé => backup recovery essaye d'inclure le nouveau device. Si ok , sinon on pleure chez Fibaro si ok, restore du backup qui a précédé le recovery essaye d'inclure le nouveau device. Si ok , sinon c'est que la DB du dernier backup est corrompue => re-recovery restore d'un backup précédent etc
  13. jojo

    Requêtes Http /get Sur Hcl

    je vois également un <space> entre "HOST:" et ton <IP>
  14. jojo

    Requêtes Http /get Sur Hcl

    comme tu fais appel àune scène, c'est l'IP:port de ta fibaro, pas de la TV qu'il faut mettre. 192.168.0.20 est l'IP de ta TV ou de ta box ?
  15. Merci Lazer. Copier des boutons et leur code, c'est dans mes compétences. Maintenant que j'ai tout réglé au niveau de mon Syno (c'était une corruption dans la définition des caméras : delete et add à nouveau, et c'est ok ). Et donc j'ai validé que l'on pouvait dupliqué les boutons Evidemment l'auto modification du code d'un VD, je n'avais même pas oser y penser. Ce serait éventuellement pour Steven ou Krikroff... Je pensais à beaucoup plus simple : définir au début du main loop une table avec le n° de la camera et l'id du label pour son status local labels = { 3 = "LabCam1", 5 = "LabCam2", } et ton code remplirait le status adéquat pour chaque caméra dans une autre table simitaire. et à la fin on affiche le tout ? Le plus dur me semble ton code où tu dois aller rechercher les infos sur le Syno, le reste me semble à notre portée ...
  16. jojo

    Positionnement Du Soleil

    ça ce sont des math, je ne suis pas astrophysicien ...
  17. jojo

    Support Gea

    tu ne dois pas mettre des devices dans les déclencheurs (en début de script) si leur changement d'état ne doit pas déclencher immédiatement une action. De plus si ça peut attendre 30s (la fréquence de run du GEA), il ne faut pas les mettre
  18. jojo

    Positionnement Du Soleil

    idée au passage : si tu as un fichier xls avec l'info journalière (pour un an), ne saurais-tu pas générer un mail automatique qui serait capturé par le script de pinou (Google Calendar vers HC2/HCL), qui enverrait les instructions à ta box ?
  19. jojo

    Stocker Un État ... ?

    pourquoi n'essayes-tu pas GEA. Tu ferais ce que tu veux en 2 coup de cuillère àpeau
  20. merci Sakkhho, As-tu intégré toutes les propositions de modif des 7 dernières pages (je n'ai pas le courage de tout lire ...) ? pour l'ajouter, tu retires le .json àla fin du nom de fichier (d'où vient cette extension ? tu a fait export virtual device depuis le VD ?)
  21. en fait je suis une grosse fénéasse : si quelqu'un qui a suivit le projet depuis le début pouvait faire une version qui fonctionne en v4.x avec toutes vos propositions, alors je me suis proposé de le rendre compatible avec 3.600. N'ayant pas de v4.x, je ne souhaite pas intégrer toutes ces modifs, car je ne pourrai que TRES difficilement tester. Une bonne ame pour faire une version complète en v4 ?
  22. pas possible de retourner en 4.33 depuis les backup, car ils ne contiennent que des infos de ta config (modules, scènes, ...) SAUF le firmware et les icônes perso (ça c'est pas cool pour couillerot ...)
×
×
  • Créer...