jtella45 Posté(e) le 10 mars 2014 Signaler Posté(e) le 10 mars 2014 Besoin d'aide, j'ai un scenario qui gere mon ballon d'eau chaude tous les soirs, il allume le ballon a 00h05 et l'éteint à05h45 tout était fonctionnel jusqu'àil y a 2 jours a l'heure dite le scénario ne s'enclenche plus, il fonctionne si je le démarre manuellement je n'ai rien rajouté àla box, ni rien enlevé j'ai fait un test en changeant l'heure hier soir et ça a fonctionné, j'ai donc remis l'heure à00h05 et ce matin pas d'eau chaude !!! quelqu'un a t il une idée?
Tomzebest Posté(e) le 10 mars 2014 Signaler Posté(e) le 10 mars 2014 Salut! Poste peut être ton code en LUA, il y a des pros ici! J'ai cru voir une fois sur un forum que l'heure doit être dans un format spécial. Genre pour 6h c'était 6 et non 06 ou l'inverse je ne me rappelle plus. Sinon crée ton script avec les blocs tu n'auras surement pas de problème c'est pratique pour tout ce qui est gestion en fonction des jours et des heures. Si tu code est bien en LUA tu peux le poster entre les 2 balises ['code'] script LUA ['/code'] (supprime les ' que j'ai mises) il sera aux couleurs de fibaro (merci domotique-fibaro).
jtella45 Posté(e) le 10 mars 2014 Auteur Signaler Posté(e) le 10 mars 2014 c'est un script avec des blocs
jtella45 Posté(e) le 10 mars 2014 Auteur Signaler Posté(e) le 10 mars 2014 et ca un fonctionne un coup sur deux
Moicphil Posté(e) le 10 mars 2014 Signaler Posté(e) le 10 mars 2014 As- tu coché "lancer au démarrage du home center" ?
Moicphil Posté(e) le 10 mars 2014 Signaler Posté(e) le 10 mars 2014 Peut tu quand même nous montrer ta scène ( imprim écran ) ? D'ailleurs, si t'es en "bloc" tu dois avoir 2 scènes non ?
jtella45 Posté(e) le 10 mars 2014 Auteur Signaler Posté(e) le 10 mars 2014 je fais comment pour inserer une image dsl, je n'y arrive pas
Moicphil Posté(e) le 10 mars 2014 Signaler Posté(e) le 10 mars 2014 http://www.domotique-fibaro.fr/index.php/topic/89-utilisation-de-la-galerie-photo/
jtella45 Posté(e) le 10 mars 2014 Auteur Signaler Posté(e) le 10 mars 2014 en simple c'est tous les jours de la semaine coché a ce moment precis 00h05 alors allume ballon eau chaude et eteindre ballon eau chaude après 20100s ca a fonctionné pendant quinze jours et ca ne marche pas depuis 2 jours, comme si l'info n'était pas transmise
Moicphil Posté(e) le 10 mars 2014 Signaler Posté(e) le 10 mars 2014 Oui, j'ai compris... Mais peux tu quand même nous montrer ta scène pour vérifier, difficile de t'aider "a l'aveugle"... (as-tu redémarré ta hc2 ? )
Tomzebest Posté(e) le 10 mars 2014 Signaler Posté(e) le 10 mars 2014 Regarde dans ton dashboard si la scène est bien en route. Le bouton stop doit être visible.
Moicphil Posté(e) le 10 mars 2014 Signaler Posté(e) le 10 mars 2014 il me semble que le timer est mal placé...
jtella45 Posté(e) le 10 mars 2014 Auteur Signaler Posté(e) le 10 mars 2014 ca fonctionnait depuis quinze jours, je n'ai rien changé
Moicphil Posté(e) le 10 mars 2014 Signaler Posté(e) le 10 mars 2014 Excuse moi, j'avais mal vu, si il est bien placé ! Comme a dit @tomzebest, comment est ta scène dans le dashboard? As tu essayé de redémarrer la hc2 ?
Moicphil Posté(e) le 10 mars 2014 Signaler Posté(e) le 10 mars 2014 Oui, c'est quand même étrange... Essaye éventuellement de supprimer ta scène et de la recréer.
jtella45 Posté(e) le 10 mars 2014 Auteur Signaler Posté(e) le 10 mars 2014 ok j'essaie mais bon suis sceptique le plus bizarre c'est que si j'essaie maintenant en mettant 21h10 ca va fonctionner et que tout àl'heure il se peut que ça ne fonctionne pas c'est comme si il y avait une coupure de courant au moment du déclenchement àminuit cinq
Tomzebest Posté(e) le 10 mars 2014 Signaler Posté(e) le 10 mars 2014 Je pense que quand tu as la scène qui n'a plus fonctionné, tu as peut être la veille appuyé sur le bouton RUN. A partir de ce moment la, la boucle de lecture infinie ne se fait plus. Tu as vérifié sur ton dashboard comme je t'ai dis? --[[ %% 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 ( ( ((currentDate.wday == 1 or currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6 or currentDate.wday == 7) and string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == "00:05") ) ) then fibaro:call(107, "turnOn"); fibaro:sleep(20100000); fibaro:call(107, "turnOff"); end fibaro:sleep(60*1000); end else local currentDate = os.date("*t"); local startSource = fibaro:getSourceTrigger(); if ( startSource["type"] == "other" ) then fibaro:call(107, "turnOn"); fibaro:sleep(20100000); fibaro:call(107, "turnOff"); end end Regarde en 9 si la source de déclenchement de la scène est autostart, tu as la lecture en boucle infinie (while true do), mais en 30 si la source de déclenchement de la scène est other (manuel en appuyant sur run), le script est lu une seule fois et du coup il allume ton ballon. Il n'y a plus d'utilisation de la partie heure et journée (variable currentDate est utilisée dans le script en autostart, mais pas en déclenchement manuel). C'est ce que je n'aime pas avec les blocs graphiques, tu ne peux pas voir les "erreurs" du logiciel.
jtella45 Posté(e) le 10 mars 2014 Auteur Signaler Posté(e) le 10 mars 2014 il y a stop dans le dashboard
jtella45 Posté(e) le 10 mars 2014 Auteur Signaler Posté(e) le 10 mars 2014 j'ai bien autostart en 9 et other en 29 mais la je t'avoue que je ne te suis plus en clair ca veut dire quoi ? lol
Tomzebest Posté(e) le 10 mars 2014 Signaler Posté(e) le 10 mars 2014 En fait ca veut dire que si la scene est déclenchée grâce à autostart, elle démarre automatiquement et si tu lis avec tes yeux le script a partir de la, il va utiliser la commande while true do qui fera lire le script à ta box, en boucle indéfiniment. Et dans cette boucle de lecture, il y a vérification de l'heure, du jour etc. --[[ %% autostart %% properties %% globals --]] local sourceTrigger = fibaro:getSourceTrigger(); if (sourceTrigger["type"] == "autostart") then -- si la source de déclenchement de la scène est autostart, la lecture du script se lance automatiquement après enregistrement while true do -- Ensuite cette commande lance une lecture en boucle infinie local currentDate = os.date("*t"); local startSource = fibaro:getSourceTrigger(); if ( ( ((currentDate.wday == 1 or currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6 or currentDate.wday == 7) and string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == "00:05") ) ) -- vérification de tes conditions heures et jours then fibaro:call(107, "turnOn"); fibaro:sleep(20100000); fibaro:call(107, "turnOff"); end -- fin de la condition fibaro:sleep(60*1000); end -- fin du script, mais la box va reprendre la lecture depuis en haut. En gros le script sera lu par la box en qqs secondes et recommencera indéfiniment
Tomzebest Posté(e) le 10 mars 2014 Signaler Posté(e) le 10 mars 2014 Par contre si tu appuies sur run, même si la lecture du script est en cours via la boucle de lecture infinie, la box va lire à partir de ce moment la local currentDate = os.date("*t"); local startSource = fibaro:getSourceTrigger(); if ( startSource["type"] == "other" -- déclenchement manuel de la lecture du script à la suite de l'appui sur le bouton run de la scène ) then fibaro:call(107, "turnOn"); fibaro:sleep(20100000); fibaro:call(107, "turnOff"); end Donc pas de lecture en boucle infinie, la box va lire le script une seule fois rapidement et en plus il n'y aura pas de condition heures et jours... En gros il allumera ton ballon directement et l'eteindra au bout du temps défini.
Tomzebest Posté(e) le 10 mars 2014 Signaler Posté(e) le 10 mars 2014 Je te conseille du coup de mettre en LUA --[[ %% autostart %% properties %% globals --]] while true do local currentDate = os.date("*t"); if ( ( ((currentDate.wday == 1 or currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6 or currentDate.wday == 7) and string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == "00:05") ) ) then fibaro:call(107, "turnOn"); fibaro:debug('Il est 00:05, le ballon démarre la chauffe') fibaro:sleep(20100*1000); fibaro:call(107, "turnOff"); fibaro:debug('Il est 05:45, le ballon arrête la chauffe') end fibaro:sleep(60*1000); end Une dernière chose importante. Quand une scène est en lecture en boucle infinie avec while true do (on appelle ca aussi infinite loop), si tu veux modifier la scène, tu dois aller tout en bas du script et cliquer sur le bouton bleu désactiver. Tu arrêtes la lecture. Ensuite change le script et enregistre. Vérifie dans le dashboard que la scène est bien active et normalement ca sera bon. Je t'ai intégré une fonction debug pour que le lendemain tu vérifie que le ballon s'est bien allumé ou éteint aux heures voulues. Et pense à modifier ton numéro de device à la place du mien (107)
Messages recommandés