lionel Posté(e) le 4 janvier 2014 Signaler Partager Posté(e) le 4 janvier 2014 Avant que les beaux jours ne reviennent j ai créer ce petit script pour gérer le temps de filtration en fonction de la Température de la piscine (les retours sur une amélioration de celui sont les bienvenues) tout d abord ,j ai une créer un scénario qui: - ce lance tous les jours à 14 hrs - relève la température de la piscine - lance le script ci dessous --[[ %% properties %% globals --]] --filtration en route en fonction de le température de la piscine fibaro:debug("HC2 demarre le script le " .. os.date()); local MaVariable MaVariable=fibaro:getValue(112,'value')--module temperature piscine fibaro:debug('value = ' .. MaVariable) if (MaVariable >= '24' and MaVariable < '26') then sleep(288*100*1000) -- 8 heures fibaro:call(115,"turnOff") fibaro:debug(115) if (MaVariable >= '26' and MaVariable < '28') then sleep(360*100*1000) -- 10 heures fibaro:call(115,'turnOff') fibaro:debug(115) end end Lien vers le commentaire Partager sur d’autres sites More sharing options...
Shad Posté(e) le 4 janvier 2014 Signaler Partager Posté(e) le 4 janvier 2014 Sympa, mais si sa peut te donner des idées voilàce que je compte faire: - remplissage automatique de l'eau - un virtual device pour la piscine avec température-marche arret moteur- un bouton pour aller àla piscine(déroule les stores..)-bouton sortie piscine pour tout ranger. - et la musique Lien vers le commentaire Partager sur d’autres sites More sharing options...
lionel Posté(e) le 4 janvier 2014 Auteur Signaler Partager Posté(e) le 4 janvier 2014 très bonne idée le virtuel device (j ai pas de store) ,mais bouton pour les soirées ( Projo ;musique ;et remise en route de la filtration ) super Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Shad Posté(e) le 4 janvier 2014 Signaler Partager Posté(e) le 4 janvier 2014 you are welcome Lien vers le commentaire Partager sur d’autres sites More sharing options...
i-magin Posté(e) le 4 janvier 2014 Signaler Partager Posté(e) le 4 janvier 2014 J'ai un petit peu de mal àsuivre... - pourquoi deux scripts et pas un seul ? - ce script arrêterait la filtration en cours selon un délai ? - Mais quel script lance la filtration ? - ne serait-il pas judicieux de gérer une variable globale de fin de filtration ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
lionel Posté(e) le 4 janvier 2014 Auteur Signaler Partager Posté(e) le 4 janvier 2014 - c était mes premiers pas en LUA (donc une scene bloc et un script), mais c est vrai ,je vais essayer de les fusionner - oui ,en fonction de la température prise a un moment donné je filtre plus ou moins longtemps - celui ci : --[[ %% 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) == "14:00") ) ) then fibaro:startScene(54); end fibaro:sleep(60*1000); end else local currentDate = os.date("*t"); local startSource = fibaro:getSourceTrigger(); if ( startSource["type"] == "other" ) then fibaro:startScene(54); end end mais en scene Bloc - c est à dire ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
i-magin Posté(e) le 4 janvier 2014 Signaler Partager Posté(e) le 4 janvier 2014 Ok, je comprends mieux, mais je ne vois pas de "turnOn" ? Je pensais possible de calculer l'heure de fin de la filtration, qui aurait été traitée par une condition "if" Mais la fonction "sleep" ira bien dans ton cas, puisqu'il n'y a pas d'autres actions dans ton script Lien vers le commentaire Partager sur d’autres sites More sharing options...
lionel Posté(e) le 4 janvier 2014 Auteur Signaler Partager Posté(e) le 4 janvier 2014 turnON dans une autre scène la filtration démarre a une heure précise aussi shah a donné une bonne idée du virtuel device (histoire de tout regroupé) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Shad Posté(e) le 4 janvier 2014 Signaler Partager Posté(e) le 4 janvier 2014 Quelque chose me dérange dans ton script. si j'étais toi je ferais: --[[ %% properties %% globals --]] --filtration en route en fonction de le température de la piscine fibaro:debug("HC2 demarre le script le " .. os.date()); local startSource = fibaro:getSourceTrigger(); local MaVariable MaVariable=fibaro:getValue(112,'value')--module temperature piscine fibaro:debug('value = ' .. MaVariable) 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) == "14:00") then fibaro:setGlobal("Piscine", "On"); fibaro:call(115,"turnOn"); if (MaVariable >= '24' and MaVariable < '26') then sleep(288*100*1000) -- 8 heures fibaro:call(115,"turnOff") fibaro:debug(115) elseif (MaVariable >= '26' and MaVariable < '28') then sleep(360*100*1000) -- 10 heures fibaro:call(115,'turnOff') fibaro:debug(115) end elseif ( startSource["type"] == "other" ) then if (fibaro:getGlobalValue("Piscine") == Off) then fibaro:call(115,'turnOn'); fibaro:setGlobal("Piscine", "On"); elseif (fibaro:getGlobalValue("Piscine") == On) then fibaro:call(115,'turnOff'); fibaro:setGlobal("Piscine", "Off"); end end fibaro:sleep(60*1000) Là le script gère tous tout seul juste creer une variable Piscine avec des valeurs définie On et Off. Et il sait si ton moteur est en marche ou arrêter et tu peux l’arrêter de toi même.Mais je suis toujours pas convaincue par les sleep et ce code car j'aimerais que quand je redémarre la piscine il n'est pas perdu quand est-ce qu'il doit s'arrêter. Je vais m'y penché un peu plus ce soir car je dois le mettre en place pour moi d'ici peu. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Shad Posté(e) le 4 janvier 2014 Signaler Partager Posté(e) le 4 janvier 2014 Bon j'ai réfléchie et trouver comment faire les choses bien. Déjà il faut utiliser le scheduler de robmac. Je vais refaire le tout et je te poste après. Lien vers le commentaire Partager sur d’autres sites More sharing options...
lionel Posté(e) le 4 janvier 2014 Auteur Signaler Partager Posté(e) le 4 janvier 2014 Mais je suis toujours pas convaincue par les sleep et ce code car j'aimerais que quand je redémarre la piscine il n'est pas perdu quand est-ce qu'il doit s'arrêter. si la mise en route de la filtration est gérée par une autre scène (c est mon cas), c est la prise de température qui gère l arrêt ... donc le code n est pas dépendant du module filtration !? j attends avec impatience ton code ,je sens que je vais passer une semaine a essayer de le comprendre Lien vers le commentaire Partager sur d’autres sites More sharing options...
Shad Posté(e) le 4 janvier 2014 Signaler Partager Posté(e) le 4 janvier 2014 T'inquiete je regarde sa. Par contre je pourrais pas le tester donc j'attendrais tes retours Lien vers le commentaire Partager sur d’autres sites More sharing options...
lolomail Posté(e) le 4 janvier 2014 Signaler Partager Posté(e) le 4 janvier 2014 Déjàil faut utiliser le scheduler de robmac. Pourrais-tu développer le but et le fonctionnement de ce scheduler? Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Shad Posté(e) le 4 janvier 2014 Signaler Partager Posté(e) le 4 janvier 2014 http://forum.fibaro.com/viewtopic.php?t=3200&sid=4bf231e8d7c9f44f48810e0c16974ad5 C'est un script développé par robmac avec l'aide de jompa68 et A.Socha. Dans la dernière version il a ajouté un réveil qui permet d’effectuer une action. En fait je suis entrain de basé tout mes scènes dessus.Tu peux choisir à quel heure, ou quel moment lancer une scène. C'est vraiment un agenda ou tu met toutes tes taches quotidiennes. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Moicphil Posté(e) le 4 janvier 2014 Signaler Partager Posté(e) le 4 janvier 2014 @ Shad, Ce qui serais top, c'est de nous faire un résumé de ce script (en francais !) avec un exemple d'utilisation . Tu pourrais le poster dans "scénario et script lua"... Lien vers le commentaire Partager sur d’autres sites More sharing options...
lionel Posté(e) le 5 janvier 2014 Auteur Signaler Partager Posté(e) le 5 janvier 2014 une petite question: comment fait t on pour afficher dans un label du VD,la valeur de température d un capteur de porte ? j ai essayer ça mais ça ne fonctionne pas local TempPiscine = fibaro:getValue(112, "value") fibaro:debug('La Température est de: ' ..TempPiscine) fibaro:call(176, "ui.Label1.value", " TempPiscine") Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
i-magin Posté(e) le 5 janvier 2014 Signaler Partager Posté(e) le 5 janvier 2014 Je suppose que "TempPiscine" s'affiche au niveau de ton label ? Enlève les guillemets qui entourent TempPiscine dans ta troisième ligne Et précision pour "ui.Label1.value" : tu as saisi Label1 dans l'ID du label ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
lionel Posté(e) le 5 janvier 2014 Auteur Signaler Partager Posté(e) le 5 janvier 2014 -Oui pour TempPiscine -j ai enlevé les guillemets -oui pour l ID par contre toujours rien, aucune valeur ne n affiche Lien vers le commentaire Partager sur d’autres sites More sharing options...
i-magin Posté(e) le 5 janvier 2014 Signaler Partager Posté(e) le 5 janvier 2014 Le debug te renvoie une valeur ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
lionel Posté(e) le 5 janvier 2014 Auteur Signaler Partager Posté(e) le 5 janvier 2014 oui le debug me renvoie bien la température Lien vers le commentaire Partager sur d’autres sites More sharing options...
i-magin Posté(e) le 5 janvier 2014 Signaler Partager Posté(e) le 5 janvier 2014 Bon, je n'avais pas suffisamment regardé.... ajoute "setProperty" fibaro:call(176,"setProperty","ui.Label1.value", TempPiscine) NB : en lançant le debug, tu n'avais pas un retour d'erreur ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
lionel Posté(e) le 5 janvier 2014 Auteur Signaler Partager Posté(e) le 5 janvier 2014 ça fonctionne ,Merci et non je n avais pas d erreur, par contre peut être pas une bonne idée de faire sur le debug il recupere la température toutes les 3 secondes la HC2 ne va peut être pas aimée ?! Lien vers le commentaire Partager sur d’autres sites More sharing options...
lolomail Posté(e) le 5 janvier 2014 Signaler Partager Posté(e) le 5 janvier 2014 Ca veux dire qu'on pourrait faire un VD pour afficher les températures de toutes les pièces Lien vers le commentaire Partager sur d’autres sites More sharing options...
i-magin Posté(e) le 5 janvier 2014 Signaler Partager Posté(e) le 5 janvier 2014 Pour l'impact sur la box, je ne suis pas suffisamment compétent, mais est-ce que tu peux nous dire si l'historique des événements est "alimenté" par le relevé de température que tu déclenches ? Si ton module est sur batterie, il va falloir prévoir un budget ... Récupérer la température toutes les 3 secondes ? est-ce bien nécessaire ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
lolomail Posté(e) le 5 janvier 2014 Signaler Partager Posté(e) le 5 janvier 2014 En fait après réflexion cela ne servirait pas àgrand chose, avec l'appli iPhone tu as une visu rapide des temps de toutes les pièces Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés