lolomail Posté(e) le 20 mai 2014 Signaler Posté(e) le 20 mai 2014 Exactement on pourrait ajouter un léger délais pour décaler un volet l'un par rapport a l'autre avec ta nouvelle fonction?
Steven Posté(e) le 20 mai 2014 Auteur Signaler Posté(e) le 20 mai 2014 Comment verrais-tu la chose ? Un exemple de code stp
lolomail Posté(e) le 20 mai 2014 Signaler Posté(e) le 20 mai 2014 Ah si tu me demandes de réfléchir c'est que c'est déjàpossible Faut que je réfléchisse a tête reposer car la prog c'est pas mon métier .
Diuck Posté(e) le 20 mai 2014 Signaler Posté(e) le 20 mai 2014 --[[ %% properties %% globals --]] if (( fibaro:getGlobalValue("") == "" )) then fibaro:call(20, "open"); fibaro:sleep(28000); fibaro:call(17, "open"); fibaro:sleep(25000); fibaro:call(19, "open"); fibaro:sleep(25000); fibaro:call(24, "open"); end fibaro:sleep(60*1000); Salut à tous Lolomail tu parle de ce genre de code ?
Domodial Posté(e) le 20 mai 2014 Signaler Posté(e) le 20 mai 2014 nan, lolomail parle d'une solution vraiment tordu. Là , c'est simple
Diuck Posté(e) le 20 mai 2014 Signaler Posté(e) le 20 mai 2014 Ok ok !! je prends le tain en marche je vous laisse je n'avais qu'a lire les post précédent
Steven Posté(e) le 20 mai 2014 Auteur Signaler Posté(e) le 20 mai 2014 Vous fumez quoi ? On partage ?
Diuck Posté(e) le 20 mai 2014 Signaler Posté(e) le 20 mai 2014 nan, lolomail parle d'une solution vraiment tordu. Là , c'est simple Ce que je voulais dire la dedans c'est qu'il y a "un décalage en ouverture entre chaque volet" je me doute bien que ce code va faire rire Steven !! message 326
Domodial Posté(e) le 20 mai 2014 Signaler Posté(e) le 20 mai 2014 Rebelote. Ce soir j'arrive. J'ouvre et je ferme. Impec. Il se passe 2h. Puis ma femme arrive elle ouvre et ferme. Impec. Puis 20 mn apres le garage s'ouvre tout seul. J'ai tiré sur le cable de la box. Domotique fini ce soir. Demain je regarde sa télécommande. Je pige plus rien. Mais une chose de sur c'est que ça se passe qu'avec elle. Envoyé de mon GT-N7105 en utilisant Tapatalk
Steven Posté(e) le 20 mai 2014 Auteur Signaler Posté(e) le 20 mai 2014 Vérifie qu'il n'y ait pas d'autres scénarios en cause. Ou de soucis avec un id.
Yohan Posté(e) le 20 mai 2014 Signaler Posté(e) le 20 mai 2014 Quel boulot Steven merci pour ce script !
Domodial Posté(e) le 20 mai 2014 Signaler Posté(e) le 20 mai 2014 Les deux telco utilise les memes scenarios d'ouverture et fermeture. Pige plus...mais pour le moment ca n'arrive qu'àelle. Envoyé de mon GT-N7105 en utilisant Tapatalk
lolomail Posté(e) le 20 mai 2014 Signaler Posté(e) le 20 mai 2014 Bon je viens de regarder, je pense qu'il faut mettre un truc du style: GEA.add({"Time", "Sunrise>07:30", "Sunset<21:00"}, 60, "", {{"Group", 1},{"Group", 2}}) GEA.add({"Group", 1}, 60, "Ouverture volet - #time#", {{"Open", ID_VOLET1, 50},{"Time", "+0min"}}) GEA.add({"Group", 1}, 60, "Ouverture volet - #time#", {{"Open", ID_VOLET2, 50},{"Time", "+xmin"}}) GEA.add({"Group", 1}, 60, "Ouverture volet - #time#", {{"Open", ID_VOLET3, 50},{"Time", "+ymin"}}) Mais làou je sèche c'est pour ajouter un décalage. L'idée derrière ce décallage c'est de faire une exécution d'ouverture plus naturelle, cad que si tout les volets s'ouvrent d'un coup tu sais que c'est contrôlé, s'ils s'ouvrent en décalé de quelques minutes tu ne sais pas si c'est automatique ou si quelqu'un appuie sur un bouton .
lolomail Posté(e) le 20 mai 2014 Signaler Posté(e) le 20 mai 2014 (modifié) Si on reprend le code pour la gestion des volets en fonction de la température, si pendant que Mme fait sa sieste je veux éviter que les volets s'ouvrent à60%, j'ai pensé àregarder si les volets ne sont àouvert de plus de 5% car ils seront ouvert le matin. Donc si Mme fait une sieste elle va complètement fermée le volet et donc bloquer le script. J'ai bon avec le script suivant? GEA.add({"Global", "Absence", "0"}, 60, "", {{"Group", 1},{"Group", 2},{"Group", 3}}) -- si "Absence" = "0" GEA.add({"Global", "Vacances", "0"}, 60, "", {{"Group", 1},{"Group", 2},{"Group", 3}}) -- si "Vacances" = "0" -- Chambre fermeture volet si température supérieure à21°c GEA.add({"Value+", 37, 20.9}, 60, "", {{"Group", 1}}) -- Température < 20.9° GEA.add({"Value+", 78, 5}, 60, "", {{"Group", 1}}) -- Volet ouvert àplus de 5% -- Si toutes les conditions du group 1 sont respectées plus de 10 minutes -- On met le volet à50% et uniquement entre 10:00 et 18:00 GEA.add({"Group", 1}, 10*60, "Fermeture volet chambre à60% à#time#, température >= 21°", {{"Value", 78, 50},{"Time", "10:00", "18:00"}}) -- Chambre fermeture volet si température supérieure à23°c GEA.add({"Value+", 37, 22.9}, 60, "", {{"Group", 2}}) -- Température < 22.9° GEA.add({"Value+", 78, 5}, 60, "", {{"Group", 1}}) -- Volet ouvert àplus de 5% -- Si toutes les conditions du group 1 sont respectées plus de 10 minutes -- On met le volet à70% et uniquement entre 10:00 et 18:00 GEA.add({"Group", 2}, 10*60, "Fermeture volet chambre à70% à#time#, température >= 21°", {{"Value", 78, 70},{"Time", "10:00", "18:00"}}) -- Chambre fermeture volet si température inférieure à21°c GEA.add({"Value-", 37, 20.9}, 60, "", {{"Group", 3}}) -- Température < 20.9° GEA.add({"Value+", 78, 5}, 60, "", {{"Group", 1}}) -- Volet ouvert àplus de 5% -- Si toutes les conditions du group 1 sont respectées plus de 10 minutes -- On met le volet à100% et uniquement entre 10:00 et 18:00 GEA.add({"Group", 3}, 10*60, "Ouverture volet chambre à#time#, température < 21°", {{"Value", 78, 100},{"Time", "10:00", "18:00"}}) Modifié le 20 mai 2014 par lolomail
clarkkent609 Posté(e) le 20 mai 2014 Signaler Posté(e) le 20 mai 2014 OMG! Je viens de me faire les 17 pages, un grand bravo àtoi Steven pour ce script remarquable, et àtous les autres pour leurs idées et leurs tests répétés! Y'a plus qu'àtester ;-) Juste un point qui me passe par la tête, faites attention que vos règles ne rentrent pas en conflit avec le script de simulation de présence pour ceux qui l'utilisent :-) notamment pour les extinctions d'éclairages aléatoires par exemple. 1
Steven Posté(e) le 20 mai 2014 Auteur Signaler Posté(e) le 20 mai 2014 Les deux telco utilise les memes scenarios d'ouverture et fermeture. Pige plus...mais pour le moment ca n'arrive qu'àelle. Envoyé de mon GT-N7105 en utilisant Tapatalk Met en commentaire tout les autres éléments, met le début àTrue. Appuie sur la télécommande de ta femme et regarde ce qui ce passe. La réponse est sûrement là. Éventuellement envoi moi les traces si tu veux bien.
Steven Posté(e) le 20 mai 2014 Auteur Signaler Posté(e) le 20 mai 2014 Bon je viens de regarder, je pense qu'il faut mettre un truc du style: GEA.add({"Time", "Sunrise>07:30", "Sunset<21:00"}, 60, "", {{"Group", 1},{"Group", 2}}) GEA.add({"Group", 1}, 60, "Ouverture volet - #time#", {{"Open", ID_VOLET1, 50},{"Time", "+0min"}}) GEA.add({"Group", 1}, 60, "Ouverture volet - #time#", {{"Open", ID_VOLET2, 50},{"Time", "+xmin"}}) GEA.add({"Group", 1}, 60, "Ouverture volet - #time#", {{"Open", ID_VOLET3, 50},{"Time", "+ymin"}}) Mais làou je sèche c'est pour ajouter un décalage.L'idée derrière ce décallage c'est de faire une exécution d'ouverture plus naturelle, cad que si tout les volets s'ouvrent d'un coup tu sais que c'est contrôlé, s'ils s'ouvrent en décalé de quelques minutes tu ne sais pas si c'est automatique ou si quelqu'un appuie sur un bouton . T'es vraiment un tordu toi ...j'adore Aller et si on résolvait en 1 seconde GEA.add({"Time", "Sunrise>07:30", "Sunset<21:00"}, 60, "", {{"Group", 1},{"Group", 2}}) GEA.add({"Group", 1}, 60, "Ouverture volet - #time#", {{"Open", ID_VOLET1, 50}}) GEA.add({"Group", 1}, 90, "Ouverture volet - #time#", {{"Open", ID_VOLET2, 50}}) GEA.add({"Group", 1}, 120, "Ouverture volet - #time#", {{"Open", ID_VOLET3, 50}}) 1er volet à60 sec, 2ème à90 et 3ème à120 ... c'est un peu ça que tu souhaites non ?
Steven Posté(e) le 20 mai 2014 Auteur Signaler Posté(e) le 20 mai 2014 Si on reprend le code pour la gestion des volets en fonction de la température, si pendant que Mme fait sa sieste je veux éviter que les volets s'ouvrent à 60%, j'ai pensé à regarder si les volets ne sont à ouvert de plus de 5% car ils seront ouvert le matin. Donc si Mme fait une sieste elle va complètement fermée le volet et donc bloquer le script. J'ai bon avec le script suivant? GEA.add({"Global", "Absence", "0"}, 60, "", {{"Group", 1},{"Group", 2},{"Group", 3}}) -- si "Absence" = "0" GEA.add({"Global", "Vacances", "0"}, 60, "", {{"Group", 1},{"Group", 2},{"Group", 3}}) -- si "Vacances" = "0" -- Chambre fermeture volet si température supérieure à 21°c GEA.add({"Value+", 37, 20.9}, 60, "", {{"Group", 1}}) -- Température < 20.9° GEA.add({"Value+", 78, 5}, 60, "", {{"Group", 1}}) -- Volet ouvert à plus de 5% -- Si toutes les conditions du group 1 sont respectées plus de 10 minutes -- On met le volet à 50% et uniquement entre 10:00 et 18:00 GEA.add({"Group", 1}, 10*60, "Fermeture volet chambre à 60% à #time#, température >= 21°", {{"Value", 78, 50},{"Time", "10:00", "18:00"}}) -- Chambre fermeture volet si température supérieure à 23°c GEA.add({"Value+", 37, 22.9}, 60, "", {{"Group", 2}}) -- Température < 22.9° GEA.add({"Value+", 78, 5}, 60, "", {{"Group", 1}}) -- Volet ouvert à plus de 5% -- Si toutes les conditions du group 1 sont respectées plus de 10 minutes -- On met le volet à 70% et uniquement entre 10:00 et 18:00 GEA.add({"Group", 2}, 10*60, "Fermeture volet chambre à 70% à #time#, température >= 21°", {{"Value", 78, 70},{"Time", "10:00", "18:00"}}) -- Chambre fermeture volet si température inférieure à 21°c GEA.add({"Value-", 37, 20.9}, 60, "", {{"Group", 3}}) -- Température < 20.9° GEA.add({"Value+", 78, 5}, 60, "", {{"Group", 1}}) -- Volet ouvert à plus de 5% -- Si toutes les conditions du group 1 sont respectées plus de 10 minutes -- On met le volet à 100% et uniquement entre 10:00 et 18:00 GEA.add({"Group", 3}, 10*60, "Ouverture volet chambre à #time#, température < 21°", {{"Value", 78, 100},{"Time", "10:00", "18:00"}}) Tu as quelques erreurs de copier coller sur le test 5% qui est toujours associé au group 1 et jamais au 2 et 3.Sinon, oui cela fonctionne. Un grand bavo. Un seul soucis : c'est difficilement maintenable. Je te propose ce code suivant local absent = {"Global", "Absence", "0"} local vacances = {"Global", "Vacances", "0"} local temp21 = {"Value+", 37, 20.9} local temp23 = {"Value+", 37, 22.9} local temp20 = {"Value-", 37, 20.9} local group1 = {absent, vacances, temp21} local group2 = {absent, vacances, temp23} local group3 = {absent, vacances, temp20} GEA.add({"Value+", 78, 5}, 10*60, "Fermeture volet chambre à 60% à #time#, température >= 21°", {{"Value", 78, 50},{"Time", "10:00", "18:00"}, {"If", group1}}) GEA.add({"Value+", 78, 5}, 10*60, "Fermeture volet chambre à 70% à #time#, température >= 21°", {{"Value", 78, 70},{"Time", "10:00", "18:00"}, {"If", group2}}) GEA.add({"Value+", 78, 5}, 10*60, "Ouverture volet chambre à #time#, température < 21°", {{"Value", 78, 100},{"Time", "10:00", "18:00"}, {"If", group3}}) Il fait la même chose mais utilise le If au lieu de groupe, cela permet une meilleure lisibilité.
Steven Posté(e) le 20 mai 2014 Auteur Signaler Posté(e) le 20 mai 2014 ... Juste un point qui me passe par la tête, faites attention que vos règles ne rentrent pas en conflit avec le script de simulation de présence pour ceux qui l'utilisent :-) notamment pour les extinctions d'éclairages aléatoires par exemple. Mille fois raison. Eventuellement, n'oublier pas l'usage de GEA.getGlobalForActivation = {"<variable>", "<valeur>"} qui permet de suspendre tout le code.
Did Posté(e) le 20 mai 2014 Signaler Posté(e) le 20 mai 2014 Je cale sur une nouvelle ligne: Id207 est un FGBS actionné par la carte d'une motorisation de portail. Id 100 est un FGS qui commande l'éclairage de la zone du portail. J'essaye d'allumer instantanément l'Id100 à chaque manoeuvres du portail seulement entre le coucher et le lever du soleil. GEA.add(207, 1, "", {{"turnOn",100},{"Time", "Sunset", "Sunrise"}}) -- Allumer automatiquement l'éclairage Portail la nuit GEA.add(100, 30*60, "", {{"turnOff"}}) -- Eteindre automatiquement l'éclairage Portail Si tu as la réponse (je n'en doute pas). Félicitation pour ta récompense amplement méritée. Merci
Steven Posté(e) le 20 mai 2014 Auteur Signaler Posté(e) le 20 mai 2014 Voici voilà . Pour de l'instantané, il ne faut pas oublier d'ajouter l'ID dans l'entête du scipt --[[ %% autostart %% properties 207 value %% globals --]] Et de mettre -1 dans le nombre de secondes. Sinon, t'as tout bon, GEA.add(207, -1, "", {{"turnOn",100},{"Time", "Sunset", "Sunrise"}}) -- Allumer automatiquement l'éclairage Portail la nuit GEA.add(100, 30*60, "", {{"turnOff"}}) -- Eteindre automatiquement l'éclairage Portail
Steven Posté(e) le 20 mai 2014 Auteur Signaler Posté(e) le 20 mai 2014 Le -1 me permet de différencier les commandes dites "immédiates" des autres. Je viens de vérifier et de voir que je l'avait mal documenté. Je corrigerais cela àla prochaine version.
lolomail Posté(e) le 21 mai 2014 Signaler Posté(e) le 21 mai 2014 T'es vraiment un tordu toi ...j'adore ;)Aller et si on résolvait en 1 seconde GEA.add({"Time", "Sunrise>07:30", "Sunset<21:00"}, 60, "", {{"Group", 1},{"Group", 2}})GEA.add({"Group", 1}, 60, "Ouverture volet - #time#", {{"Open", ID_VOLET1, 50}})GEA.add({"Group", 1}, 90, "Ouverture volet - #time#", {{"Open", ID_VOLET2, 50}})GEA.add({"Group", 1}, 120, "Ouverture volet - #time#", {{"Open", ID_VOLET3, 50}})1er volet à60 sec, 2ème à90 et 3ème à120 ... c'est un peu ça que tu souhaites non ?punaise j'ai pas la logique d'un prog mais quand je lis tes codes cela paraît tellement naturel! Au moins j'apprend . C.est exactement cd que je voulais
lolomail Posté(e) le 21 mai 2014 Signaler Posté(e) le 21 mai 2014 local absent = {"Global", "Absence", "0"} local vacances = {"Global", "Vacances", "0"} local temp21 = {"Value+", 37, 20.9} local temp23 = {"Value+", 37, 22.9} local temp20 = {"Value-", 37, 20.9} local group1 = {absent, vacances, temp21} local group2 = {absent, vacances, temp23} local group3 = {absent, vacances, temp20} GEA.add({"Value+", 78, 5}, 10*60, "Fermeture volet chambre à 60% à #time#, température >= 21°", {{"Value", 78, 50},{"Time", "10:00", "18:00"}, {"If", group1}}) GEA.add({"Value+", 78, 5}, 10*60, "Fermeture volet chambre à 70% à #time#, température >= 21°", {{"Value", 78, 70},{"Time", "10:00", "18:00"}, {"If", group2}}) GEA.add({"Value+", 78, 5}, 10*60, "Ouverture volet chambre à #time#, température < 21°", {{"Value", 78, 100},{"Time", "10:00", "18:00"}, {"If", group3}}) Superbe optimisation et tellement plus lisible! Tu veux pas écrire un bouquin "la logique de prog pour les nuls"? Je l'achete de suite :) 1
Messages recommandés