Fredric Posté(e) le 15 mars 2014 Signaler Partager Posté(e) le 15 mars 2014 bonsoir, j'ai besoin d'un œil neuf sur une de mes scène, j'ai une scène général qui ferme mes volets le soir, àla tombée de la nuit. et la scène qui me pose problème, l'ouverture, quand je suis en congés ou en week end. ce qui ce passe, quand la scène fermeture ferme les volets, ils descendent complètement une fois et remontent de 5cm, et là, il "clignotent", en monté, en descente, sans arrêt. pour stopper la scène inverse, j'ai créé un VD avec "fibaro:abort(Id de la scène inverse)" mais cela n'a pas l'air de fonctionner, car quand j'actionne l'un ou l'autre, les scène reste active dans le dashbord. j'ai la variable "journuit" qui fonctionne très bien dans d'autre scène et la variable aujourd'hui(agenda google) qui fonctionne aussi très bien. j'ai la sensation de passer àcoté de quelque chose de simple. quelque chose vous choc dans mes bloc? Lien vers le commentaire Partager sur d’autres sites More sharing options...
lolomail Posté(e) le 15 mars 2014 Signaler Partager Posté(e) le 15 mars 2014 Je pense que ce ne sont pas les bons screenshot, le deuxième est pas plus celui d'ouverture? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fredric Posté(e) le 16 mars 2014 Auteur Signaler Partager Posté(e) le 16 mars 2014 En fait, ces scenes, fonctionnait très bien avant que j'apporte de modification. La première modification est dans la scène de fermeture, j'ai rajouté l'option "et si les volets sont ouverts" car sans cette option, la commande se faisait même si les volets étaient fermés et je recevais sans arrêt la notification tous les jours. Le deuxième changement est dans la scène d'ouverture, j'ai rajouté "ou aujourd'hui =2" pour le week-end. Làle but, c'est que la HC2 fasse la différence entre les congés payés et les week-ends. La chose qui se passe, on dirait que c'est ordre et contrordres, les volets se ferment mais en l'ordre de se réouvrir mes de se refermer etc. etc. et donc cela fait àla claque claque sans arrêt. J'ai beau manuellement faire stop sur toutes les scènes ça ne débloque pas les volets et je suis obligé de couper au compteur ou d'éteindre la boxe, ce qui lui dire que c'était un ordre qui vient d'elle. 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
lolomail Posté(e) le 16 mars 2014 Signaler Partager Posté(e) le 16 mars 2014 Bah tes contre ordres viennent surement de ta conditions si "volets ouverts" car mis comme cela c'est un trigger, cad que cela déclenche les scènes Je pense donc que si tu changes l'état via une scène pour les fermer cela me donne l'info à l'autre scène qui du coup les ouvre et hop c'est reparti pour le cycle suivant. La solution serait de passer en LUA et de ne faire balancer la notification qu'après la fermeture des volets et mettre un check de l'état des volets de ce style: if ( tonumber(fibaro:getValue(ID_Volet, "value")) > 0 ) then fibaro:call(ID_Volet, "close"); fibaro:debug("Volet ouvert et fermeture en cours"); fibaro:call(ID_Smartphone, "sendDefinedPushNotification", "ID_notif"); end Lien vers le commentaire Partager sur d’autres sites More sharing options...
Shad Posté(e) le 16 mars 2014 Signaler Partager Posté(e) le 16 mars 2014 Si j'étais toi je passerais en lua pour deux raisons: - Tu pourrais combiner ta ouverture volet en semaine et quand tes pas là - Ce sera plus simple àcodé Lien vers le commentaire Partager sur d’autres sites More sharing options...
BenjyNet Posté(e) le 16 mars 2014 Signaler Partager Posté(e) le 16 mars 2014 Oui, je suis Shad sur le coup, les blocs ça devient indigeste dès que tu veux un truc un peu tordu Lien vers le commentaire Partager sur d’autres sites More sharing options...
fab971 Posté(e) le 16 mars 2014 Signaler Partager Posté(e) le 16 mars 2014 Je suis en mode bloc et je galère aussi. Je vais essayé de travailler mon script en LUA je crois. Je ferme mes volets à 16% à la tombée de la nuit et les ouvre au lever du soleil à 16%. J'ai 2 problèmes et je voulais avoir votre avis. Lorsque mes volets déjà fermés volontairement avant le coucher du soleil, il s'ouvre de nouveau à 16% et inversement si mes volets sont déjà ouvert avant le lever du soleil, il se ferme pour se mettre à 16%. Mon 2ème problème est que je voudrais que le script ne s'exécute pas si je ne suis pas à la maison (parti en vacances par exemple). Je n'ai pas créer un sujet car je pense que le besoin d'aide est la même. Lien vers le commentaire Partager sur d’autres sites More sharing options...
fab971 Posté(e) le 16 mars 2014 Signaler Partager Posté(e) le 16 mars 2014 Sur la HC2, est-ce qu'on peut utiliser le mode "en alerte" en activant l'alarme et par conséquent il n'exécute pas le script? Cela correspond-il un peu à un mode "je suis hors de chez moi ou en vacances"? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Shad Posté(e) le 16 mars 2014 Signaler Partager Posté(e) le 16 mars 2014 Ajoute une variable globale absent, et tu as juste à l’activé quand tu pars. Le mode alerte veut dire ce que sa veut dire, quand l'alarme se déclenche Et pour ton problème de 16% que je comprend pas, ton code serait pas mal. Quelque conseil pour vous deux: - Passez en lua étape par étape - Utilisez le scheduler, il vous simplifiera la vie et vous aurez juste a réglez les conditions de démarrage de la scène et pas vous occupez de l'heure. - Faites au plus simple et améliorez ensuite par rapport à votre niveaux. Lien vers le commentaire Partager sur d’autres sites More sharing options...
fab971 Posté(e) le 16 mars 2014 Signaler Partager Posté(e) le 16 mars 2014 C'est quoi le scheduler et comment l'utiliser? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Shad Posté(e) le 16 mars 2014 Signaler Partager Posté(e) le 16 mars 2014 TU as tout sur le forum. Lien vers le commentaire Partager sur d’autres sites More sharing options...
fab971 Posté(e) le 16 mars 2014 Signaler Partager Posté(e) le 16 mars 2014 Merci. Effectivement, j'ai envoyé mon message un peu vite. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fredric Posté(e) le 16 mars 2014 Auteur Signaler Partager Posté(e) le 16 mars 2014 si je comprend bien, c'est juste parce que les volets sont coché dans trigger. Je sais bien que le lua est plus complet, mais également plus complexe, je pense que le Bloc de Fibaro est vraiment sympa pour démocratiser la domotique. Cela ouvre vraiment aux plus grand nombres des possibilités impensable avant. c'est pour ça que j'essais de comprends le fonctionnement et les subtilités des bloc. Le Lua est indispensable pour certaine choses, comme les télécommandes ou les VD, mais je crois qu'il faut continuer à expliquer le Lua, rien que pour les possesseur de la HC lite déjà ... merci pour vos réponse, je ferais un retour sur les résulta de mes essais. Lien vers le commentaire Partager sur d’autres sites More sharing options...
lolomail Posté(e) le 16 mars 2014 Signaler Partager Posté(e) le 16 mars 2014 Tentes de décocher le trigger des volets. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fredric Posté(e) le 16 mars 2014 Auteur Signaler Partager Posté(e) le 16 mars 2014 c'est ce que j'ai fais et le résulta demain mais effectivement, je pense que tu as raison, car quand les volets tournent en boucle, je reçois en boucle également le push de fermeture uniquement, si la scène d'ouverture était en cause, je recevrais les push ouverture aussi. si cela fonctionne bien, je passerai en Lua pour avoir la notification "que" lorsqu'ils sont fermés et pas quand l'ordre à était donné. effectivement, ont ne peut pas en bloc. dans l'idée de ton bout de code Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fredric Posté(e) le 17 mars 2014 Auteur Signaler Partager Posté(e) le 17 mars 2014 Voila un test en lua, cela vous semble bon? --[[ %% autostart %% properties %% globals JouretNuit --]] local startSource = fibaro:getSourceTrigger(); --c'est pour le démarrage de la scéne en automatique j'imagine, si quelqu'un peut confirmer --si la nuit tombe et que les volets sont ouverts, meme peut ouverts. if ( ( fibaro:getGlobalValue("JouretNuit") == "Nuit" and tonumber(fibaro:getValue(57, "value")) > 0 and tonumber(fibaro:getValue(65, "value")) > 0 )) --alors fermer les volets jusqu'a la valeur 0 then fibaro:call(57, "close"); fibaro:call(57, "setValue2", "0"); fibaro:call(65, "close"); fibaro:call(65, "setValue2", "0"); end --si les volets sont fermés, donc à0 if ( (tonumber(fibaro:getValue(57, "value")) = 0 and tonumber(fibaro:getValue(65, "value")) = 0 )) -- alors message debug et push iphone fred then fibaro:debug("Volets fermés"); fibaro:call(53, "sendDefinedPushNotification", "20"); end end Lien vers le commentaire Partager sur d’autres sites More sharing options...
Shad Posté(e) le 17 mars 2014 Signaler Partager Posté(e) le 17 mars 2014 Très long pour ce que tu veux faire --[[ %% autostart %% properties %% globals JouretNuit --]] local windowscontrolrelay = {57, 65}; --si la nuit tombe et que les volets sont ouverts, meme peut ouverts. if ( fibaro:getGlobalValue("JouretNuit") == "Nuit") then for i =1, #windowscontrolrelay do if (fibaro:getValue(windowscontrolrelay[i], "value") > 0) then fibaro:call(windowscontrolrelay[i], "close"); elseif (fibaro:getValue(windowscontrolrelay[i], "value") == 0) then --Met le code que tu veux end end fibaro:debug("Volets fermés"); fibaro:call(53, "sendDefinedPushNotification", "20"); fibaro:sleep(60*1000); end Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fredric Posté(e) le 17 mars 2014 Auteur Signaler Partager Posté(e) le 17 mars 2014 Merci Shad, mais je voudrais comprendre pour progrésser déjà , ma scène était-elle bonne? ensuite, peus tu, s'il te plait m'expliquer certain terme, en fait....tout --[[ %% autostart %% properties %% globals JouretNuit --]] local windowscontrolrelay = {57, 65}; -- ça c'est pour faire la concaténation des ID, si j'ai d'autres volets, je rajoute les ID. --si la nuit tombe et que les volets sont ouverts, meme peut ouverts. if ( fibaro:getGlobalValue("JouretNuit") == "Nuit") then for i =1, #windowscontrolrelay do -- la je ne comprend pas if (fibaro:getValue(windowscontrolrelay[i], "value") > 0) then --là , je comprend l'action mais pourquoi les crochés entourent le I? fibaro:call(windowscontrolrelay[i], "close"); elseif (fibaro:getValue(windowscontrolrelay[i], "value") == 0) then --Met le code que tu veux --c'est à dire??? end end fibaro:debug("Volets fermés"); fibaro:call(53, "sendDefinedPushNotification", "20"); fibaro:sleep(60*1000); -- ça, j'avais oublié end Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Shad Posté(e) le 17 mars 2014 Signaler Partager Posté(e) le 17 mars 2014 - Oui tu as juste as rajouter d'autre volet. - for i =1, #windowscontrolrelay do Sa veut dire qu'il va regarde dans ton array les id en commençant par le premier. - if (fibaro:getValue(windowscontrolrelay[i], "value") > 0) tu le met entre crochet pour dire que c'est pas juste un i - elseif (fibaro:getValue(windowscontrolrelay[i], "value") == 0) Je l'ai repris car c'était dans ton code je sais pas pourquoi tu voulais le mettre. A moins que tu veux vérifier à la fin que les volets soit bien fermer dans ce cas il faut ajouter un sleep pour le temps que les volets ce ferme et revérifier que c'est fermer. donc tu as une erreur. Pour ton code: local startSource = fibaro:getSourceTrigger(); Inutile dans le cas présent. En fait il start pour démarrer d'une autre façon ta scène exemple: local startSource = fibaro:getSourceTrigger(); if ( startSource["type"] == "other" ) then Ensuite: fibaro:call(57, "close"); fibaro:call(57, "setValue2", "0"); fibaro:call(65, "close"); fibaro:call(65, "setValue2", "0"); C'est quoi le setValue2 ??? De toute façon le close suffit. Et pour finir je crois que tu as un end en trop. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fredric Posté(e) le 17 mars 2014 Auteur Signaler Partager Posté(e) le 17 mars 2014 Merci, là j'ai tout compris. Le "setValue2", je l'ai piqué dans le code bloc passé en lua et je pensé que c'était pour fermer le volet jusqu’à "0" Effectivement c'était un oublie if ( startSource["type"] == "other" ) then Et oui, tu as raison, je veux savoir si mes volets sont fermé ou arrêtés en cours, il ont une sécurité et je me suis aperçu que si je les arrête à la main en cours, ils stop et il reste comme ça. donc, je veux recevoir le push uniquement quand il sont fermés, voir même, un push si au bout d'une minute ils sont pas fermés, car le plus grand met presque une minute à descendre, c'est pas du violant. en tous cas merci pour l'explication Lien vers le commentaire Partager sur d’autres sites More sharing options...
Shad Posté(e) le 17 mars 2014 Signaler Partager Posté(e) le 17 mars 2014 derient Tiens moi au courant si c'est bon. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fredric Posté(e) le 17 mars 2014 Auteur Signaler Partager Posté(e) le 17 mars 2014 bon, aprés test, j'ai cette erreur line14: attempt to compare number with string qu'en pense tu Shad? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fredric Posté(e) le 17 mars 2014 Auteur Signaler Partager Posté(e) le 17 mars 2014 par contre, pour info, pour ceux qui utilise les bloc, la scène bloc du début du poste sans cocher "trigger" pour les volet fonctionne; mais le push par même si les volet ce sont arrêtés, c'est pour ça que je préfère passer en LUA, essayer en tout cas Lien vers le commentaire Partager sur d’autres sites More sharing options...
Shad Posté(e) le 17 mars 2014 Signaler Partager Posté(e) le 17 mars 2014 Merde j'ai oublier tous les tonumber. --[[ %% autostart %% properties %% globals JouretNuit --]] local windowscontrolrelay = {57, 65}; --si la nuit tombe et que les volets sont ouverts, meme peut ouverts. if ( fibaro:getGlobalValue("JouretNuit") == "Nuit") then for i =1, #windowscontrolrelay do if (tonumber(fibaro:getValue(windowscontrolrelay[i], "value")) > 0) then fibaro:call(windowscontrolrelay[i], "close"); elseif (tonumber(fibaro:getValue(windowscontrolrelay[i], "value")) == 0) then --Met le code que tu veux end end fibaro:debug("Volets fermés"); fibaro:call(53, "sendDefinedPushNotification", "20"); fibaro:sleep(60*1000); end Par contre pense à faire ta vérification que les volets soit fermé. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fredric Posté(e) le 17 mars 2014 Auteur Signaler Partager Posté(e) le 17 mars 2014 --[[ %% autostart %% properties %% globals JouretNuit --]] local windowscontrolrelay = {57, 65}; --si la nuit tombe et que les volets sont ouverts, meme peut ouverts. if ( fibaro:getGlobalValue("JouretNuit") == "Nuit") then for i =1, #windowscontrolrelay do if (tonumber(fibaro:getValue(windowscontrolrelay, "value")) > 0) then fibaro:call(windowscontrolrelay, "close"); fibaro:sleep(60*1000); --attente une minute pour attendre que les volets déscendent elseif (tonumber(fibaro:getValue(windowscontrolrelay, "value")) == 0) then --si les volets sont fermés fibaro:call(53, "sendDefinedPushNotification", "20"); elseif (tonumber(fibaro:getValue(windowscontrolrelay, "value")) > 0) then --si les volets sont pas fermés fibaro:call(53, "sendDefinedPushNotification", "21"); end end fibaro:debug("Volets fermés"); fibaro:sleep(60*1000); end Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés