lolomail Posté(e) le 30 décembre 2013 Signaler Posté(e) le 30 décembre 2013 Bonjour, Sur le post du script pour le contrôle du niveau des piles j'ai abordé le sujet nÅ“uds morts pour les détecter et voici un script tip top qui/ - Contrôle les nÅ“uds morts, - Chercher a les réveiller, - Envoie des notifications pour avertir --[[ %% autostart %% properties %% globals --]] local sourceTrigger = fibaro:getSourceTrigger(); if (sourceTrigger["type"] == "autostart") then while true do local currentDate = os.date("*t"); local startSource = fibaro:getSourceTrigger(); if ( ( (tonumber(os.date("%H%M")) >= tonumber(string.format("%02d%02d", "07", "00")) and tonumber(os.date("%H%M")) <= tonumber(string.format("%02d%02d", "23", "00"))) and (math.floor(os.time()/60)-math.floor(1369026000/60))%2 == 0 ) ) then local i = 1 local TotalDevices = 156 + 1 while i < TotalDevices do local status = fibaro:getValue(i, 'dead'); if status == "1" then fibaro:setGlobal('lastDeadNode', i); -- fibaro:call(30, "pressButton", "6"); fibaro:call(1, "wakeUpDeadDevice",i); fibaro:debug("Try to wake up node "..i); fibaro:call(68, "sendPush", "Try to wake up node "..i); fibaro:sleep(5*1000); local status = fibaro:getValue(i, 'dead'); if status == "1" then fibaro:debug("Device "..i.." still dead"); fibaro:call(68, "sendPush", "Device "..i.." still dead"); -- fibaro:call(30, "pressButton", "6"); -- fibaro:call(65, "sendDefinedPushNotification", "9"); -- fibaro:call(2, "sendEmail", "DEAD "..i); else -- fibaro:call(30, "pressButton", "7"); fibaro:debug("Device "..i.." fixed"); fibaro:call(68, "sendPush", "Device "..i.." fixed"); end else end i = i + 1 end end fibaro:sleep(60*1000); end else local currentDate = os.date("*t"); local startSource = fibaro:getSourceTrigger(); if ( startSource["type"] == "other" ) then fibaro:debug("send notification"); fibaro:call(68, "sendPush", "start check dead node"); local i = 1 local TotalDevices = 156 + 1 while i < TotalDevices do local status = fibaro:getValue(i, 'dead'); if status == "1" then fibaro:setGlobal('lastDeadNode', i); -- fibaro:call(30, "pressButton", "6"); fibaro:call(1, "wakeUpDeadDevice",i); fibaro:debug("Try to wake up node "..i); fibaro:call(68, "sendPush", "Try to wake up node "..i); fibaro:sleep(5*1000); local status = fibaro:getValue(i, 'dead'); if status == "1" then fibaro:debug("Device "..i.." still dead"); fibaro:call(68, "sendPush", "Device "..i.." still dead"); -- fibaro:call(30, "pressButton", "6"); -- fibaro:call(65, "sendDefinedPushNotification", "9"); -- fibaro:call(2, "sendEmail", "DEAD "..i); else -- fibaro:call(30, "pressButton", "7"); fibaro:debug("Device "..i.." fixed"); fibaro:call(68, "sendPush", "Device "..i.." fixed"); end else end i = i + 1 end end end Voici le script,son auteur est Olivier MALE. Il faut l'adapter pour le N° d'ID pour le push. Son auteur a aussi mis des "--" devant certaines lignes de notifications push et de virtual device, perso j'ai supprimé ces lignes. Le script fonctionne nickel chez moi.
Moicphil Posté(e) le 30 décembre 2013 Signaler Posté(e) le 30 décembre 2013 Merci de développer le script ( pas le lien ) et de citer l'auteur
Krikroff Posté(e) le 30 décembre 2013 Signaler Posté(e) le 30 décembre 2013 Comment détecter les nÅ“uds morts... A ma sauce . Le script est paramétrable: debug: permet d'avoir une sortie vers la fenêtre 'debug' du HC2 et d’historiser les messages. userID: l'id de l'utilisateur souhaitant recevoir la notification par email. nodes: la liste des nÅ“uds à surveiller et c'est la toute la différence, attention aux périphériques sur batteries, Danfoss LC, moi je dis ça, je dis rien! repeatTime: le temps d'attente chaque interrogation. La scène doit être active, avec démarrage automatique. --[[ %% autostart %% globals --]] -- LUA Script for dead nodes handling V1.0.1 -- Copyright © 2013 Jean-christophe Vermandé fibaro:debug("HC2 start script at " .. os.date()); -- check script instance count in memory if (fibaro:countScenes() > 1) then fibaro:abort(); fibaro:debug("Script already running."); end -- SETTINGS -- Debug true or false (output information in HC2 debug window) local debug = true; -- User ID (email used to notify) local userID = 2; -- List of nodes you want to check local nodes = {4,6,7,8,10,11,12,16,17,18,19,34,35,36,44,45,46,47,48,52,54,59,351,352,353,354}; -- Interval between polling local repeatTime = (30*60*1000); -- 30 minutes -- DO NOT EDIT THE CODE BELOW (except to suit your needs) -- local lookFor = function() local id, status, dtLog; for i = 1, #nodes do id = nodes[i]; status = fibaro:getValue(id, 'dead'); dtLog = os.date(); if status == "1" then -- dead node found local name = fibaro:getName(id); local room = fibaro:getRoomNameByDeviceID(id); local message = dtLog .. " [status] device (" .. name .. " ID#" .. id .. " in room [" .. room .. "]) is flagged as dead node." if debug then fibaro:debug(message) end -- try to wakeUp device fibaro:wakeUpDeadDevice(id); -- send mail fibaro:call(userID, "sendEmail", "Dead Nodes", message); end end end -- START ENGINE LOOP PROCESS while true do lookFor(); fibaro:sleep(repeatTime); end --[[ v 1.0.1 (06-2013) Implement new getRoomName / getRoomNameByDeviceID from 3.552+ v 1.0.0 (01-2013) First stable release --]] 2
lolomail Posté(e) le 30 décembre 2013 Auteur Signaler Posté(e) le 30 décembre 2013 Trop bien tu peux tester que certains modules du coup cela évite d’interroger les vannes danfoss, les sondes de température... Merci, je vais tester
lolomail Posté(e) le 30 décembre 2013 Auteur Signaler Posté(e) le 30 décembre 2013 Question comme je vois que LUA n'a pas de secret pour toi, pourrais-tu me dire comment faire pour faire ouvrir mes volets soit àpartir de 7h soit au lever du soleil si le soleil se lève après 7h?
Arbu-jl Posté(e) le 30 décembre 2013 Signaler Posté(e) le 30 décembre 2013 Bonsoir Krikroff, Merci pour ce script. Ce code ne reveille cependant pas les noeuds morts ? est-ce exacte? Ton code me plait bien cependant, car je peux du coup exclure mes Devices sur batterie, comment l'adapter pour réveiller les autres devices ?
Moicphil Posté(e) le 30 décembre 2013 Signaler Posté(e) le 30 décembre 2013 Je laisse l’intéressé répondre, mais d’après moi son code permet le réveil des nœuds morts : -- try to wakeUp device fibaro:wakeUpDeadDevice(id);
Arbu-jl Posté(e) le 30 décembre 2013 Signaler Posté(e) le 30 décembre 2013 Merci moicphil, en effet, je n'avais pas vu. Du coup, le message mail n'est pas juste alors... e.g.: Mon Dec 30 23:17:44 2013 [status] device (VMC_Speed_2 ID#20 in room [salle de Bains Rez]) is flagged as dead node. Krikroff ??!!??
Krikroff Posté(e) le 30 décembre 2013 Signaler Posté(e) le 30 décembre 2013 Pourquoi le message mail n'est pas juste ?? Le script demande le réveil du nÅ“ud mort et envoi un mail pour prévenir que ce périphérique était en état mort... Le mail ne valide en rien le fait que l'action de réveil est soit valide ou non , pour cela il faut re-tester le nÅ“ud pour voir si il est réveillé, ce que je trouve inutile car pas fiable du tout sachant que le réveil peut être immédiat ou prendre 2 heure. Le but de ce type de script est d'optimiser son installation par détection des problèmes et surtout pas pour pallier définitivement aux nÅ“uds morts qui doivent être éradiqués pour obtenir une installation stable et surtout pérenne.
Moicphil Posté(e) le 30 décembre 2013 Signaler Posté(e) le 30 décembre 2013 Pourquoi le message n'est pas bon ? L'email te renvoi l'Id du nÅ“ud mort, c’est tout, le réveil de celui s'étant executé juste avant. Krikroff, tu me reprend si je me trompe hein? Edit: Bon! on a répondu en même temps!
Arbu-jl Posté(e) le 30 décembre 2013 Signaler Posté(e) le 30 décembre 2013 Dans ce sens en effet, c'est juste... (Je suis content quand je vois que le node est de nouveau fonctionnel ) Il est vrai que j'utilise ce type de code pour réveiller mes noeuds morts car j'en ai quand même pas mal tous les jours. Oui, vous avez raison, cela ne doit pas être la mesure définitive pour pallier au problème. Cependant, mon installation est importante et les murs de la maison sont bien épais. Certains devices, si je ne me trompe pas, réclame qu'une connection directe avec le HC2, comme les vannes Danfoss ou les Aeon 4x1. ce qui limite la fonction repeater des autres devices. Je dois avouer que c'est un peu un casse tête. J'ai placé mon HC2 au centre de la maison, mais cela ne suffit pas. D'une manière générale, le HC2 réveille t-il par lui même les noeuds morts? Avez vous ce type de problème? Comment les avez-vous résolue?
Krikroff Posté(e) le 30 décembre 2013 Signaler Posté(e) le 30 décembre 2013 Je confirme depuis la version 3.5xx le HC2 s'occupe de tout cela, il y a la possibilité de les afficher ou non dans l'interface. Pour la résolution complète des dead nodes attendez la sortie de la V4.xx dans quelques semaines / mois ou installez des wall plugs partout
Arbu-jl Posté(e) le 30 décembre 2013 Signaler Posté(e) le 30 décembre 2013 Ok, merci pour les infos. Je n'étais pas très sure de comprendre ce que voulais dire "Ne pas marqué comme mort" Oui/Non. Si ce n'est qu'une question d'affichage... J'ai bien vu sur le forum Fibaro cette future v4.xx, mais pas trop d'infos en fait.... En avez-vous plus?
BenjyNet Posté(e) le 31 décembre 2013 Signaler Posté(e) le 31 décembre 2013 Je me disais aussi que j'avais activé une option dans le HC2 "wake up dead nodes". Il me semblait bien que le script faisait redondance.
Arbu-jl Posté(e) le 31 décembre 2013 Signaler Posté(e) le 31 décembre 2013 hello tout le monde, je reviens àla charge avec ce script. Serait il possible d'avoir ce type de script avec seulement un récapitulatif journalier des "Dead nodes" plutôt que d'avoir un mail àchaque fois qu'un noeud mort est détecté ? avec pourquoi pas un classement par pièce ou par étage... ce serait plus facile de cette manière pour comprendre et résoudre les zones mal couvertes par le z-wave. Merci pour votre support.
Domodial Posté(e) le 31 décembre 2013 Signaler Posté(e) le 31 décembre 2013 Le but de ce type de script est d'optimiser son installation par détection des problèmes et surtout pas pour pallier définitivement aux nÅ“uds morts qui doivent être éradiqués pour obtenir une installation stable et surtout pérenne. Au départ avec la HC2 j'avais pas mal de lien mort, c'était très pénible. Au fil des mises a jour, je n'en ai plus aucun depuis au moins 2 mises a jour. Et j'ai rien touché !
Fredric Posté(e) le 20 janvier 2014 Signaler Posté(e) le 20 janvier 2014 bonjour, la chose très bizarre chez moi, c'est que c'est seulement les deux modules que j'ai qui sont alimentés pas le secteur et qui sont répéteur, que je pers au moins 10 fois par jour. le Wall Plug et depuis dimanche, le FGRM-222. le wall plug me sert uniquement pour surveiller le frigidaires comme ici: http://www.planete-domotique.com/blog/2013/07/16/fibaro-wallplug-frigo-etou-congelateur/ Et j'ai pleins de trous dans la courbe de consommation àcause de ces pertes. Le FGRM-222 fonction quand même, alors........ j'ai mis en place le script Krikroff pour les réveiller, sans trop comprendre pourquoi je les perds. le paramètre "Ne pas marquer comme mort:" j'ai NON comme réglage, c'est juste une question d'affichage?
PITP2 Posté(e) le 15 août 2014 Signaler Posté(e) le 15 août 2014 Ce script doit etre super :-) mais il ne semble pas se lancer toutes les 30 minutes dans l'interface de debug j'ai uniquement cette ligne. [DEBUG] 13:16:12: HC2 start script at Fri Aug 15 13:16:12 2014 c'est un bon début mais pas de nouvelle ligne toutes les 30 minutes. Faut il rebooter la box ? (j'ai respecté scrupuleusement le "tuto" :-) )
Krikroff Posté(e) le 15 août 2014 Signaler Posté(e) le 15 août 2014 Non le debug "start script" n'apparaît que lors de la première exécution, après il reste en mémoire et ce n'est plus le scheduler du HC2 mais bien la scène elle même qui gère la tâche Il t a un debug si il y a un nœud mort détecté
PITP2 Posté(e) le 15 août 2014 Signaler Posté(e) le 15 août 2014 ok alors je vais en tuer un niark niark ;-) Merci pour l'info
pepite Posté(e) le 7 décembre 2014 Signaler Posté(e) le 7 décembre 2014 Bonjour, J'utilise ce script de Krikroff, dans le debug j'ai bien la notif, d'ailleurs je perds le Wallplug ? Bizarre non ? Mais je ne recois pas le mail, pourtant j'ai bien mis le bon ID :-(, qu'ai je rate ? Combien de temps faut il pour que le reveil des noeuds morts soit effectif ? [DEBUG] 16:55:52: Sat Dec 6 16:55:52 2014 [status] device (WP_Halogene ID#14 in room [Salle à Manger]) is flagged as dead node. MErci a tous
jojo Posté(e) le 19 février 2015 Signaler Posté(e) le 19 février 2015 Bonjour, J'ai piqué (mais pas dans ce topic) un script pour analyser les dead nodes. Sorry, mais je ne retrouve plus où, alors je post sur dans ce topic qui me paraît très approprié. (je ne peux donc pas remercier les auteurs initiaux) J'ai donc fait une V2.0 du VD avec les changements suivants : affichage dans de détail de la VD des noeuds morts (et plus uniquement par mail) possibilité au départ de la VD de spécifier si on veut être notifié ou pas, sans devoir changer le code affichage d'info en vert dans le bas de l'icône DeadNodesAnalysis.V2.0.vfib
pepite Posté(e) le 19 février 2015 Signaler Posté(e) le 19 février 2015 @jojo : super !! celui de krikroff ne te convenait pas ? l'avantage je trouve, cela permet de choisir quel noeud tu veux surveiller, en faisant attention aux modules sur batterie ;-)
jojo Posté(e) le 19 février 2015 Signaler Posté(e) le 19 février 2015 je t'avoue que je ne l'ai pas regardé. Maintenant, je me souviens, j'ai piqué cela à sebcbien dans son post d'optimisation du réseau z-wave : http://www.domotique-fibaro.fr/index.php/topic/2879-conseils-pour-analyser-et-am%C3%A9liorer-la-couverture-zwave/ Et je le trouve super, car il me permet de réveiller automatiquement les devices qui ne sont pas sur batterie. J'ai un FGS qui tombe mort systématiquement, mais se réveille sans problème avec ce script. Effectivement, dans mon script je teste que ce n'est pas un device sur batterie, car le wakeup ne fonctionne pas
jojo Posté(e) le 19 février 2015 Signaler Posté(e) le 19 février 2015 Voici "ma" version 2.1, il y avait une petite erreur dans l'affichage de la version 2.0. DeadNodesAnalysis.V2.1.vfib @Pepite, J'ai regardé plus en détail celui de Krikroff. Sans vouloir manquer de respect au grand maître, je préfère le mien : il vérifie d'office tous les devices (et donc je ne dois pas mettre à jour la liste si j'en ajoute ou retire) je fais le test sur les devices sur batterie : pas d'essai de réveil. Expl : si je retire la pile d'un device sur batterie, parfois il s'affiche comme mort, parfois pas. Je publierai bientôt un petit VD qui permettra de modifier le paramètre d'un device (et donc de le forcer à dead si je sais que j'en ai retiré les batteries) Je trouve l'affichage du détail sympa
Messages recommandés