sebcbien Posté(e) le 2 juillet 2014 Signaler Posté(e) le 2 juillet 2014 Bonjour, J'ai installé depuis peu le Toolkit de Kirchoff et mon attention a été attirée par le nombre de running instances qu'occupe un scénario block: capture d'écran du toolkit: C'est un script simple qui vérifie si la télé est allumée depuis plus d'1h30 et envoie une notification. Le voici et le script suivant étant le même mais qui vérifie si une lampe n'a pas été allumée depuis 2h (et ne génère pas des running instances) J'avais testé ces scripts avec de petites durées (5-10 minutes) et fonctionnaient, mais depuis que j'ai mis 1h30 et 2h00 il n'ont pas l'air de fonctionner blocks: LUA: --[[ %% autostart %% properties 80 valueSensor %% globals --]] fibaro:sleep(5400000); local delayedCheck0 = false; local tempDeviceState0, deviceLastModification0 = fibaro:get(80, "valueSensor"); if (( tonumber(fibaro:getValue(80, "valueSensor")) > 300 ) and (os.time() - deviceLastModification0) >= 5400) then delayedCheck0 = true; end local startSource = fibaro:getSourceTrigger(); if ( ( delayedCheck0 == true ) or startSource["type"] == "other" ) then fibaro:call(53, "sendDefinedPushNotification", "4"); fibaro:sleep(10000); fibaro:call(26, "sendDefinedPushNotification", "4"); end --[[ %% autostart %% properties 54 valueSensor %% globals --]] fibaro:sleep(7200000); local delayedCheck0 = false; local tempDeviceState0, deviceLastModification0 = fibaro:get(54, "valueSensor"); if (( tonumber(fibaro:getValue(54, "valueSensor")) > 200 ) and (os.time() - deviceLastModification0) >= 7200) then delayedCheck0 = true; end local startSource = fibaro:getSourceTrigger(); if ( ( delayedCheck0 == true ) or startSource["type"] == "other" ) then fibaro:call(26, "sendDefinedPushNotification", "5"); fibaro:call(53, "sendDefinedPushNotification", "5"); end J'ai pas mal de dead nodes qui apparaissent ces derniers temps et je me demande si ce n'est pas lié. Merci pour votre avis
Krikroff Posté(e) le 2 juillet 2014 Signaler Posté(e) le 2 juillet 2014 Oui c'est pas normal d'avoir 20 instances de ta scène, c'est un coup à prendre 20 notifications !!! Un bon reboot de la box pour commencer puis revérifier... et dans le doute ajouter dans la scène le code suivant au début pour éviter d'avoir x instances en même temps: if (fibaro:countScenes() > 1) then fibaro:abort() end;
sebcbien Posté(e) le 2 juillet 2014 Auteur Signaler Posté(e) le 2 juillet 2014 la loi de kirchhoff n'a pas été un de mes meilleur souvenir d'études, mais je commence à changer d'avis ;-)
sebcbien Posté(e) le 2 juillet 2014 Auteur Signaler Posté(e) le 2 juillet 2014 Juste après un reboot, ... j'ai toujours 20 instances !!!??!? J'ai fait un stop, c'est retombé à0. Je vais voir si ça continue, et alors je vais essayer de re-creer la scène sinon bah je vais passer en full LUA, probablement avec le GEA. Domage, j'aime bien les blocs
Krikroff Posté(e) le 2 juillet 2014 Signaler Posté(e) le 2 juillet 2014 Le mode bloc n'est pas en cause...enfin pas complétement je m'explique ... Suivant le code: le trigger id#80 déclenche la scène si > 300W puis bloque l’exécution de la dite scène avec un sleep pour 5400 secondes afin de valider ou pas la condition "TV allumée depuis plus de x minutes...", le truc c'est que si il y a des fluctuations dans la mesure de puissance et que la conso passe à 299W puis de nouveau > 300W il est possible que le trigger déclenche une nouvelle scène et ainsi de suite .... C'est facilement vérifiable en examinant les valeurs de ton ID80 dans le panneau énergie Donc soit passage en LUA avec la ligne de code if (fibaro:countScenes() > 1) then fibaro:abort() end; soit voir pour affiner la conso pour éviter les multiples déclenchements ou aussi pourquoi pas utiliser un variable global en plus pour préserver l'état de la TV -> ON / OFF par exemple.... Pour info, le mode bloc n' est juste qu'une surcouche graphique, c'est toujours du LUA qui tourne derrière
sebcbien Posté(e) le 2 juillet 2014 Auteur Signaler Posté(e) le 2 juillet 2014 En fait sur cette prise j'ai mis tout le "multimédia", ma vielle TV étant la grosse consommatrice, quand elle est allumée l'ensemble monte à 400w facile et descend à une bonne centaine de W éteinte. J'ai effacé et recréé la scène avec un seuil à 200w et en 10 minutes je suis déjà à 13 instances alors que la conso est aux alentours de 10w actuellement ... Très bizarre
Krikroff Posté(e) le 2 juillet 2014 Signaler Posté(e) le 2 juillet 2014 Oui très bizarre, et dans le panneau énergie: l'historique sur ton module ça donne quoi sur 10 minutes, il y a peut-être des piques (invisibles) de consommation... Tu peux essayer la scène version LUA avec la ligne de code en plus au début ? (Histoire de lever le doute sur un possible bug)
sebcbien Posté(e) le 2 juillet 2014 Auteur Signaler Posté(e) le 2 juillet 2014 c'est peut être du a l'instabilité de la conso, àchaque modification de conso de quelques w, un event trigger la scène, et hop une boucle de plus. Et comme j'ai un long laps de temps ces boucles n'expirent pas. En fait je pense que il vaut peut être mieux utiliser la valeur kwh, probablement calculée àl'heure, mais alors je ne pourrai plus mesurer sur 1h30
Krikroff Posté(e) le 2 juillet 2014 Signaler Posté(e) le 2 juillet 2014 En fait je pense qu'il manque en mode bloc la possibilité de limiter le nombre d'instance de la scène afin d'éviter les comportements comme celui ci Donc, Pas un bug mais une conception un peu limite pour le mode bloc! Envoyé de mon iPhone àl'aide de Tapatalk
Messages recommandés