pepite Posté(e) le 27 mars 2016 Auteur Signaler Partager Posté(e) le 27 mars 2016 tu peux tenter ca alors, et enleve tout ce qu'il y a dans ton entete dans ce cas. local Trigger = fibaro:getSourceTrigger() local maintenant = os.date("%H:%M", os.time()) local heuremini, heuremaxi = "07:00", "07:55" ------- local Humidity = tonumber(fibaro:getValue(3, "Humidity")) local OutsideTemperature = tonumber(fibaro:getValue(3, "Temperature")) local WeatherCondition = fibaro:getValue(3, "WeatherConditionConverted") ----------- local presencetophe = tonumber(fibaro:getGlobalValue("Present_Tophe")) > 0 ----------- fibaro:debug("OutsideTemperature : " .. OutsideTemperature); fibaro:debug("Humidity : " .. Humidity); fibaro:debug("WeatherCondition : " .. WeatherCondition); fibaro:debug("Maintenant : " ..maintenant.. " - Heure mini : " .. heuremini .. " - Heure maxi : " ..heuremaxi) fibaro:debug( "Présence Tophe : " ..(fibaro:getGlobalValue("Present_Tophe"))) if (Trigger["type"] == "autostart" or Trigger["type"] == "other") then fibaro:debug("Scène demarrée") if maintenant > heuremini and maintenant < heuremaxi and presencetophe then if (OutsideTemperature <= 20) then fibaro:call(236, "setColor", "0", "255", "0", "0") -- vert else fibaro:debug("jaune"); fibaro:call(236, "setColor", "255", "255", "0", "0") -- jaune fibaro:sleep(5*1000) end if(Humidity >= 50) then fibaro:debug("rouge"); fibaro:call(236, "setColor", "255", "0", "0", "0") -- rouge fibaro:sleep(5*1000) end if(Humidity >= 50 and OutsideTemperature < 20) then fibaro:debug("blanc"); fibaro:call(236, "setColor", "255", "255", "255", "0") -- blanc fibaro:sleep(5*1000) end if (WeatherCondition == "rain") then fibaro:debug("bleu"); fibaro:call(236, "setColor", "0", "0", "255", "0") -- bleu fibaro:sleep(5*1000) end else fibaro:debug("Pas d'allumage de RGB, en dehors des heures 7:00 - 7:55") end end Lien vers le commentaire Partager sur d’autres sites More sharing options...
domo Posté(e) le 27 mars 2016 Signaler Partager Posté(e) le 27 mars 2016 merci pepite pour le temps que tu me consacre le rgbw ne s'allume pas voici le debug [DEBUG] 15:16:37: OutsideTemperature : 12 [DEBUG] 15:16:37: Humidity : 67 [DEBUG] 15:16:37: WeatherCondition : clear [DEBUG] 15:16:37: Maintenant : 15:16 - Heure mini : 15:16 - Heure maxi : 15:20 [DEBUG] 15:16:37: Présence Tophe : 1 [DEBUG] 15:16:37: Scène demarrée [DEBUG] 15:16:37: Pas d'allumage de RGB, en dehors des heures 15:00 - 15:55 Lien vers le commentaire Partager sur d’autres sites More sharing options...
domo Posté(e) le 27 mars 2016 Signaler Partager Posté(e) le 27 mars 2016 meme en cliquant sur exécuter sa ne fonctionne pas Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 27 mars 2016 Auteur Signaler Partager Posté(e) le 27 mars 2016 (modifié) d'apres le debug : maintenant et heuremini sont identiques, ca doit etre strictement superieur Reessaie pour voir si ca vient de ca stp. ou ca vient des conditions ou du sourcetrigger ? Sinon on peut le faire avec un VD pour tester... Modifié le 27 mars 2016 par pepite Lien vers le commentaire Partager sur d’autres sites More sharing options...
domo Posté(e) le 27 mars 2016 Signaler Partager Posté(e) le 27 mars 2016 [DEBUG] 15:35:08: OutsideTemperature : 12 [DEBUG] 15:35:08: Humidity : 67 [DEBUG] 15:35:08: WeatherCondition : clear [DEBUG] 15:35:08: Maintenant : 15:35 - Heure mini : 15:35 - Heure maxi : 15:38 [DEBUG] 15:35:08: Présence Tophe : 1 [DEBUG] 15:35:08: Scène demarrée [DEBUG] 15:35:08: Pas d'allumage de RGB, en dehors des heures 15:35 - 15:55 c'est se que tu voulais que je test , toujours pas bon Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 27 mars 2016 Auteur Signaler Partager Posté(e) le 27 mars 2016 regarde dans le debug mainentant = heure mini, donc pas d'allumage de RGB je modifie le code local Trigger = fibaro:getSourceTrigger() local maintenant = os.date("%H:%M", os.time()) local heuremini, heuremaxi = "07:00", "07:55" ------- local Humidity = tonumber(fibaro:getValue(3, "Humidity")) local OutsideTemperature = tonumber(fibaro:getValue(3, "Temperature")) local WeatherCondition = fibaro:getValue(3, "WeatherConditionConverted") ----------- local presencetophe = tonumber(fibaro:getGlobalValue("Present_Tophe")) > 0 ----------- fibaro:debug("OutsideTemperature : " .. OutsideTemperature); fibaro:debug("Humidity : " .. Humidity); fibaro:debug("WeatherCondition : " .. WeatherCondition); fibaro:debug("Maintenant : " ..maintenant.. " - Heure mini : " .. heuremini .. " - Heure maxi : " ..heuremaxi) fibaro:debug( "Présence Tophe : " ..(fibaro:getGlobalValue("Present_Tophe"))) if (Trigger["type"] == "autostart" or Trigger["type"] == "other") then fibaro:debug("Scène demarrée") if maintenant >= heuremini and maintenant <= heuremaxi and presencetophe then if (OutsideTemperature <= 20) then fibaro:call(236, "setColor", "0", "255", "0", "0") -- vert else fibaro:debug("jaune"); fibaro:call(236, "setColor", "255", "255", "0", "0") -- jaune fibaro:sleep(5*1000) end if(Humidity >= 50) then fibaro:debug("rouge"); fibaro:call(236, "setColor", "255", "0", "0", "0") -- rouge fibaro:sleep(5*1000) end if(Humidity >= 50 and OutsideTemperature < 20) then fibaro:debug("blanc"); fibaro:call(236, "setColor", "255", "255", "255", "0") -- blanc fibaro:sleep(5*1000) end if (WeatherCondition == "rain") then fibaro:debug("bleu"); fibaro:call(236, "setColor", "0", "0", "255", "0") -- bleu fibaro:sleep(5*1000) end else fibaro:debug("Pas d'allumage de RGB, en dehors des heures 7:00 - 7:55") end end Lien vers le commentaire Partager sur d’autres sites More sharing options...
domo Posté(e) le 27 mars 2016 Signaler Partager Posté(e) le 27 mars 2016 je suis obligé de cliquer sur exécuter pour que sa fonctionne [DEBUG] 16:01:14: OutsideTemperature : 12 [DEBUG] 16:01:14: Humidity : 67 [DEBUG] 16:01:14: WeatherCondition : clear [DEBUG] 16:01:14: Maintenant : 16:01 - Heure mini : 16:01 - Heure maxi : 16:03 [DEBUG] 16:01:14: Présence Tophe : 1 [DEBUG] 16:01:14: Scène demarrée [DEBUG] 16:01:14: rouge [DEBUG] 16:01:19: blanc Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 27 mars 2016 Auteur Signaler Partager Posté(e) le 27 mars 2016 oui on devrait mettre une boucle en fait, mais c'est pas tres optimise, bon on sait que ca fonctionne ;-) Changement de fusil d'epaule avec un VD Crée un VD avec 1 seul bouton Code à mettre dans le boutton : -- Bouton -- local Humidity = tonumber(fibaro:getValue(3, "Humidity")) local OutsideTemperature = tonumber(fibaro:getValue(3, "Temperature")) local WeatherCondition = fibaro:getValue(3, "WeatherConditionConverted") ----------- local presencetophe = tonumber(fibaro:getGlobalValue("Present_Tophe")) > 0 ----------- fibaro:debug("OutsideTemperature : " .. OutsideTemperature); fibaro:debug("Humidity : " .. Humidity); fibaro:debug("WeatherCondition : " .. WeatherCondition); fibaro:debug( "Présence Tophe : " ..(fibaro:getGlobalValue("Present_Tophe"))) if presencetophe then if (OutsideTemperature <= 20) then fibaro:call(236, "setColor", "0", "255", "0", "0") -- vert else fibaro:debug("jaune"); fibaro:call(236, "setColor", "255", "255", "0", "0") -- jaune fibaro:sleep(5*1000) end if(Humidity >= 50) then fibaro:debug("rouge"); fibaro:call(236, "setColor", "255", "0", "0", "0") -- rouge fibaro:sleep(5*1000) end if(Humidity >= 50 and OutsideTemperature < 20) then fibaro:debug("blanc"); fibaro:call(236, "setColor", "255", "255", "255", "0") -- blanc fibaro:sleep(5*1000) end if (WeatherCondition == "rain") then fibaro:debug("bleu"); fibaro:call(236, "setColor", "0", "0", "255", "0") -- bleu fibaro:sleep(5*1000) end end Code a mettre dans le main loop du VD -- Main Loop -- local maintenant = os.date("%H:%M", os.time()) local heuremini, heuremaxi = "07:00", "07:55" local selfId = fibaro:getSelfId() fibaro:debug("Maintenant : " ..maintenant.. " - Heure mini : " .. heuremini .. " - Heure maxi : " ..heuremaxi) -- 1ère fois que le main loop s'exécute, on crée une variable nommée "instance" car elle n'existe pas. Elle existera au 2ème passage donc ne sera pas recrée. if (not instance) then -- on indique la fréquence d'execution souhaitée (en minutes) instance = { lastrun = 0, every = 1 } fibaro:debug("first run") end -- on vérifie la différence entre cette exéction et la dernière (stocké dans instance.lastrun) diff = os.date("*t", os.difftime(os.time(), instance.lastrun)) if maintenant >= heuremini and maintenant <= heuremaxi then -- si la différence en minutes et supérieure ou égale à la fréquence souhaitée (instance.every) if (diff.min >= instance.every) then fibaro:call(selfId, "pressButton", 1) -- on stock l'heure de la nouvelle exécution instance.lastrun = os.time() fibaro:debug("executed") end end Lien vers le commentaire Partager sur d’autres sites More sharing options...
domo Posté(e) le 27 mars 2016 Signaler Partager Posté(e) le 27 mars 2016 alors maintenant sa démarre tout seul impec mais au lieu de s'arrêter la scène redémarre Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 27 mars 2016 Auteur Signaler Partager Posté(e) le 27 mars 2016 oui si tu as laisse instance.every à 1, cela signifie qu'il va appuyer sur le bouton toutes les mins. alors une question : tu veux en fait que cela fonctionne qu'1 fois ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
domo Posté(e) le 27 mars 2016 Signaler Partager Posté(e) le 27 mars 2016 oui juste une fois le matin Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 27 mars 2016 Auteur Signaler Partager Posté(e) le 27 mars 2016 dans ce cas, pas besoin d'heure mini ni maxi, juste une heure à déterminer pour le faire : nouveau code du main loop alors : -- Main Loop -- local maintenant = os.date("%H:%M", os.time()) local heure = "07:00" local selfId = fibaro:getSelfId() fibaro:debug("Maintenant : " ..maintenant.. " - Heure prévue : " .. heure) -- 1ère fois que le main loop s'exécute, on crée une variable nommée "instance" car elle n'existe pas. Elle existera au 2ème passage donc ne sera pas recrée. if (not instance) then -- on indique la fréquence d'execution souhaitée (en minutes) instance = { lastrun = 0, every = 1 } fibaro:debug("first run") end -- on vérifie la différence entre cette exéction et la dernière (stocké dans instance.lastrun) diff = os.date("*t", os.difftime(os.time(), instance.lastrun)) if maintenant == heure then -- si la différence en minutes et supérieure ou égale à la fréquence souhaitée (instance.every) if (diff.min >= instance.every) then fibaro:call(selfId, "pressButton", 1) -- on stock l'heure de la nouvelle exécution instance.lastrun = os.time() fibaro:debug("executed") end end Lien vers le commentaire Partager sur d’autres sites More sharing options...
domo Posté(e) le 27 mars 2016 Signaler Partager Posté(e) le 27 mars 2016 merci beaucoup pour le coup de main tes au top Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 27 mars 2016 Auteur Signaler Partager Posté(e) le 27 mars 2016 De rien !! Ca fonctionne comme tu le souhaites ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
domo Posté(e) le 27 mars 2016 Signaler Partager Posté(e) le 27 mars 2016 oui c'est nickel comme ça j'ai pas besoin de plus encore merci 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
domo Posté(e) le 5 avril 2016 Signaler Partager Posté(e) le 5 avril 2016 Salut pepite c'est possible de modifier quelque chose je voudrais utiliser un VD àla place de Yahoo comme météo Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 5 avril 2016 Auteur Signaler Partager Posté(e) le 5 avril 2016 Salut domo, C'est sur que Yahoo avec son changement d'API devient tout de suite moins fiable ;-) que veux tu faire ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés