Steven Posté(e) le 18 mai 2014 Auteur Signaler Posté(e) le 18 mai 2014 @lolomail Ton code en optimisé 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° -- 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° -- 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° -- 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"}}) Chaque élément peut être inclus dans plusieurs groupe. Pour tes autres suggestions, ils sont en effet presque toutes déjà réalisable
fredo Posté(e) le 18 mai 2014 Signaler Posté(e) le 18 mai 2014 @Steven Ton GEA, ça me rappelle un noyau évènementiel qu'on avait développé pour nos programmations sur micro-controleurs Motorola 68HC11. C'était àl'époque une grosse révolution, après des années de programmation "linéaire". 1
Steven Posté(e) le 18 mai 2014 Auteur Signaler Posté(e) le 18 mai 2014 En tout cas c'est top ce système, vais pouvoir gérer mes volets pièce par pièce en fonction de la température à l'intérieure et des variables . J'aurais essayer de faire un truc cela aurait été moche comme pas possible et m'aurais pris 10 ans à le faire... Tiens dans le style défi à relever mais je sens que Steven va y arriver haut la main, toujours sur les volets serait-il possible de faire un bout de script de sorte que: - Avec la variable présence maison cela autorise l'ouverture / fermeture des volets quand elle est à 1 - Que les volets s'ouvrent à l'heure du levée du soleil si cette dernière est supérieure à 7h30 en semaine ou bien à 7h30 si l'heure du levée de soleil est inférieure à 7h30 - Gestion des jours semaines et weekend, - Changement de l'heure de levée pour les vacances / jour fériés via une variable - Décalage dans les ouvertures de qqs minutes entre les volets paramétrable J'expose pas mal de paramètres que j'aimerais avoir, je ne sais pas si cela est réalisable simplement. Milles merci Steven pour tout ce que tu fais pour nous!!!! Gestion des jours ... c'est déjà fait. Décalage dans les ouvertues de qqs minutes ... c'est une idée mais difficile Un truc intéressant dans ce que tu demandes est la possibilité d'effectuer une action uniquement si une variable globale est a X ou Y sans faire un groupe. Ensuite pour l'ouverture à 7h30 ou avant .. c'est tordu ton truc mais c'est une idée.
Diuck Posté(e) le 18 mai 2014 Signaler Posté(e) le 18 mai 2014 Salut Steven tu peux getter un Å“il la dessus stp car la scène ne se lance pas, j'oublié c'est la V3 -- Gestion volets "EST" matin -- Si la luminosité est supérieur à 1200 Lux pendant 10 minutes entre 5:30 h et 13 h, on lève les volets 19 et 24 à 75 GEA.add({"Value+", 41, 1200}, 10*60, "Fermeture des volets Ouest Partiel #value# Lux", {{"Time","05:30","20:00"},{"Close",24,75},{"Close",19,75}})
Steven Posté(e) le 18 mai 2014 Auteur Signaler Posté(e) le 18 mai 2014 A vu d'oeil, tout est juste de ton côté. J'ai sà»rement un soucis avec le "close" car c'est une des fonctions que je n'arrive pas tester. Arriverais-tu juste remplacer les {"Close", <id>, 75} par {"Value", <id>, 25} pour tester ? Edit : le "close" et le open sont buggé, je le confirme
Diuck Posté(e) le 18 mai 2014 Signaler Posté(e) le 18 mai 2014 j'ai essayé avec "open" est c'est la même chose Je modifie tous de suite je te dis quoi
Diuck Posté(e) le 18 mai 2014 Signaler Posté(e) le 18 mai 2014 Je confirme c'est ok avec "value" -- Gestion volets "EST" matin -- Si la luminosité est supérieur à1200 Lux pendant 10 minutes entre 5:30 h et 13 h, on lève les volets 19 et 24 à75 GEA.add({"Value+", 41, 600}, 1*60, "Fermeture des volets Ouest Partiel #value# Lux", {{"Time","05:30","20:00"},{"Value",24,75},{"Value",19,75}})
lolomail Posté(e) le 18 mai 2014 Signaler Posté(e) le 18 mai 2014 Ensuite pour l'ouverture à7h30 ou avant .. c'est tordu ton truc mais c'est une idée. Bah c'est pour éviter de se taper àchanger la prog du script de levée ou de couché en fonction de la saison car moyen de voir le volet s'ouvrir à6h du mat quand tu te lèves à7h...
Steven Posté(e) le 18 mai 2014 Auteur Signaler Posté(e) le 18 mai 2014 Version 3.10 disponible Correction des paramètres {"Open", <id>, <valeur>} et {"Close", <id>, <valeur>} Ajout du paramètre {"DST"} pour n'effectuer une action uniquement en mode "heure d'été" Ajout du paramètre {"If", {<condition>[,<condition>[,...]}} Voir exemple ci-dessous -- Si la lumière (69) est allumée un Lundi, Samedi ou Dimanche -- ET que "Vacances = 0" ET que "Absence" = 1 -- ET que la température (8) est inférieur à 18° local condition = {"If",{{"Global", "Absence", "1"},{"Global", "Vacances", "0"},{"Value-", 8, 18}}} GEA.add(69, -1, "La lumière est allumée", {{"Days", "Monday, Weekend"}, condition}) La gestion des parenthèses devient compliquée alors faite attention. 1
sjhp Posté(e) le 18 mai 2014 Signaler Posté(e) le 18 mai 2014 Super, y'a plus qu'a migrer toutes mes diverses scènes sur GEA! Merci pour ton boulot... et bonne nuit
Steven Posté(e) le 18 mai 2014 Auteur Signaler Posté(e) le 18 mai 2014 Bah c'est pour éviter de se taper à changer la prog du script de levée ou de couché en fonction de la saison car moyen de voir le volet s'ouvrir à 6h du mat quand tu te lèves à 7h... Si tu fais quelque chose comme GEA.add(<condition>, 30, "", {{"Time", "Sunrise", "Sunset"}, {"Group", 1}} GEA.add(<condition>, 30, "", {{"Time", "07:00", "23:00"}, {"Group", 1}} GEA.add({"Group", 1}, 30, "Au plus tot à 07:00", {{"Open", 18, 50}}) Il faut que les 2 conditions soient valable pour effectuer les opérations du Group1. Donc si on est entre Sunrise et Sunset et que l'on est entre 7:00 et 23:00.Donc si le levé est à 06:15 ... on n'est pas encore à 07:00 donc au plus tôt les volets se lève à 07:00 et au plus tard à Sunrise. Paris gagné
Did Posté(e) le 18 mai 2014 Signaler Posté(e) le 18 mai 2014 Alors, ça avance. Pour le portail, je check à 22h20 si le portail est fermé au bout de 10mn, le bouton 1 du module virtuel me le ferme. Je peux donc supprimer ma scène en blocs avec le timer à 22h30? Pour les volets, je n'ai pas testé, de plus j'en ai 4 (Id112,113,114,115) que je vais fermer à 80% entre 9h & 19h quand la température de ma sonde (Id67) sera supérieure à 24°. Je ferme actuellement les volets avec une variable Jour_Nuit (couché du soleil + 15mn) mais pas l'ouverture: comme le sunset-sunrise est géré par le GEA, je pense que cela doit pouvoir s'intégrer mais le coucher du soleil en hiver (bien avant 19h) ne va-t-il pas déranger la condition de température entre 9h & 19h (certes pas dépassée surtout en hiver)? Enfin les arroseurs, c'est juste pour limiter à 15 mn l'ouverture des EV en cas de mise en ON ponctuelle, j'en ai 12. Faut-il répéter la ligne 12 fois avec les Id différents ou les définir dans un même groupe? J'ai aussi un pluviomètre (FGBS: Id194), peut-on l'intégrer au GEA. Je n'est pas testé s'il (le GEA) était prioritaire sur une programmation dans le panneau d'arrosage (il est un peu tard). GEA.add(61, 10*60, "", {{"VirtualDevice", 169, 1},{"Time", "22:20", "07:00"}}) -- Fermer automatiquement le Portail à 22h30 GEA.add({"Value+", 67, 24}, 5*60, "", {{"Value", 112, 80},{"Time", "09:00", "19:00"}}) -- Fermer à 80% VR Dressing si température < 24° GEA.add(86, 15*60, "", {{"turnOff"}}) -- Eteindre automatiquement l'arrosage Pelouse 1
Steven Posté(e) le 18 mai 2014 Auteur Signaler Posté(e) le 18 mai 2014 "Alors, ça avance. Pour le portail, je check à22h20 si le portail est fermé au bout de 10mn, le bouton 1 du module virtuel me le ferme. Je peux donc supprimer ma scène en blocs avec le timer à22h30?" GEA.add(61, 10*60, "", {{"VirtualDevice", 169, 1},{"Time", "22:20", "07:00"}}) -- Fermer automatiquement le Portail à22h30Correct "Pour les volets, je n'ai pas testé, de plus j'en ai 4 (Id112,113,114,115) que je vais fermer à80% entre 9h & 19h quand la température de ma sonde (Id67) sera supérieure à24°." GEA.add({"Value+", 67, 24}, 60, "", {{"Group",1},{"Time", "09:00", "19:00"}}) GEA.add({"Value+", 67, 24}, 60, "", {{"Group",1},{"Time", "09:00", "Sunset"}}) GEA.add({"Group",1}, 5*60, "", {{"Value", 112, 80},{"Value", 113, 80},{"Value", 114, 80},{"Value", 115, 80}} Ainsi tu ne positionne tes volets à80% uniquement si il fait +24°, ce jusqu'au couché du soleil et au plus tard 19:00.Fermeture au couché + 15 minutes GEA.add(112, 15*60, "", {{"Value", 112, 0},{"Value", 113, 0},{"Value", 114, 0},{"Value", 115, 0},{"Time", "Sunset", "Sunrise"}}) Pour les arrosseurs, soit tu les controle 1 à1 et dans ce cas il te faut 12 lignes GEA.add(86, 15*60, "", {{"turnOff"}}) -- Eteindre automatiquement l'arrosage Pelouse 1 GEA.add(87, 15*60, "", {{"turnOff"}}) -- Eteindre automatiquement l'arrosage Pelouse 2 Soit tu vérifies uniquement le 1er et les fermes tous GEA.add(86, 15*60, "", {{"turnOff",86},{"turnOff",87},{"turnOff",88}}) -- Eteindre automatiquement l'arrosage Pelouse 1,2 et 3 1
Did Posté(e) le 19 mai 2014 Signaler Posté(e) le 19 mai 2014 Merci beaucoup Steven pour ce SAV tardif. Je crois que je suis le premier à passer en 3.10. Au sujet des volets, je dois mettre les 3 lignes pour les conditions de température + celle de la fermeture au coucher? Je vais contrôler les arroseurs 1 à 1 car ils s'ouvrent chacun leur tour (sinon pas assez de pression) et jamais 2 en même temps. Je viens de testé ma ligne pour l'arroseur en mettant 2*60 (2mn) et en le programmant dans le panneau d'arrosage pour 5mn GEA.add(86, 2*60, "", {{"turnOff"}}) -- Eteindre automatiquement l'arrosage Pelouse 1 Et bien le GEA m'a coupé l'EV au bout de 2mn malgré la programmation du panneau d'arrosage (c'est bon à savoir). Une idée sur mon module universel déguisé en pluviomètre pour interdire à toutes les EV de s'ouvrir (sauf une pour la serre) quand il est en alerte? Ce script est vraiment top, il faut que je m'occupe aussi de mon éclairage de plaque de rue (éclairage à Led de l'interphone + plaque avec mon activité + intérieur de la boîte aux lettres). Il doit s'allumer au coucher du soleil + 15mn et s'éteindre à 23h30 l'été et 22h30 l'hiver (variable saison) et s'allumer en hiver le matin à 7h30 pour s'éteindre au lever du soleil (pas besoin d'allumage les matins d'été).
byackee Posté(e) le 19 mai 2014 Signaler Posté(e) le 19 mai 2014 Merci une nouvelle fois, la partie if est tres intéressante car je voulais créer un trc du genre: si ma plaque de cuissson consomme moins de 15w pendant 10 mins et que l'une des 2 vitesses de hotte est activé alors j'éteins la hotte ( lumiere + ventil). Inversement si la plaque de cuisson consomme plus de 15w pendant 30 secondes alors j'allume la petite vitesse et la lumiere et je passe la VMC en position grange vitesse. Si la plaque consomme plus de 1000w alors je passe ma hotte en grande vitesse Merci mes reves deviennent réalités
Nico Posté(e) le 19 mai 2014 Signaler Posté(e) le 19 mai 2014 Le contrôle de la hotte, tiens j'y avais jamais pensé àça...
Steven Posté(e) le 19 mai 2014 Auteur Signaler Posté(e) le 19 mai 2014 Nouvelle version 3.15 [Nouveauté] ajout du paramètre {"NOTDST"} pour vérifier que nous sommes en heure d'hiver .. à contrario de {"DST"}@DidIl faut que tu reprennes la version 3.15 pour le NOTDST Au sujet des volets, je dois mettre les 3 lignes pour les conditions de température + celle de la fermeture au coucher?Oui, ce code empèche le système de contrôler de la température une fois le coucher du soleil. Comme cela tu n'as pas de confision avec la fermeture des volets.Si le faux pluviomètre (disons que son ID est 999) est en alerte, il faut éteindre les EV GEA.add(999, 1, "", {{"turnOff",86},{"turnOff",87},{"turnOff",88}) -- Eteindre automatiquement l'arrosage Pelouse 1, 2 et 3Le système fermera tes EV (dans les 30 secondes) si le module est en alerte, mais on ne peux pas empêcher l'allumage si ce dernier est programmer dans le panneau d'arrosage.Il doit s'allumer au coucher du soleil + 15mn et s'éteindre à 23h30 l'été et 22h30 l'hiver (variable saison) et s'allumer en hiver le matin à 7h30 pour s'éteindre au lever du soleil (pas besoin d'allumage les matins d'été) local id_eclairage = 998 GEA.add(id_eclairage , 15*60, "", {{"Inverse"}{"Time", "Sunset", "Sunrise"}} -- on allume au coucher du soleil GEA.add(id_eclairage , 60, "", {{"Inverse"}{"Time", "07:30", "Sunset"}, {"NOTDST"}} -- on allume à 7:30 en hiver GEA.add(id_eclairage , 15*60, "", {{"Time", "22:30", "Sunrise"}, {"NOTDST"}} -- on éteint à 22:30 en hiver GEA.add(id_eclairage , 15*60, "", {{"Time", "23:30", "Sunrise"}, {"DST"}} -- on éteint à 23:30 en été
Did Posté(e) le 19 mai 2014 Signaler Posté(e) le 19 mai 2014 Quelle réactivité! et encore une version améliorée. Merci Mr Steven. J'ai intégrer les lignes pour les volets et ça tourne impec. Je m'étais gouré au niveau des 80% d'ouverture, en fait c'était 20%. Je vais ré-essayer à 18h45 de monter la sonde au dessus de 24° pour vérifier s'ils remonte à 19h (si je suis rentré). Je vais me pencher sur le pluviomètre et ma plaque de rue. Je commence à piger le coup des parenthèses et accolades. N'en manquerait-il pas une en fin de ligne sur le pluviomètre?
Domodial Posté(e) le 19 mai 2014 Signaler Posté(e) le 19 mai 2014 Incroyable ! J'ai ajouté les parametre été/hiver, pour la lumière c'est trop top ! Juste un truc que je ne comprends pas pour le Karotz (OpenKarotz) Pour le moment le lapin parle bien sur un évènement GEA. Mais, pour que cela fonctionne, il faut que j'écrive mes phrases dans un VD. Et que je demande a GEA d'appuyer sur un bouton du VD. Comment faire avec mon VD pour que ce soit la phrase passé en paramètre dans GEA, qui soit lue (?)
Steven Posté(e) le 19 mai 2014 Auteur Signaler Posté(e) le 19 mai 2014 N'en manquerait-il pas une en fin de ligne sur le pluviomètre? Absolument, tu as raison ... bien vu. J'ai ajouté le {"Open", <id>, 20} qui veux dire Ouverture du volet de 20% pour éviter ce genre de confusion. Il y a aussi {"Close", <id>, 20) pour fermeture de 20% --- soit ouverture de 80% Enfin, cela permet d'être plus parlant que Value 20 ou 80 ou ... je sais plus
Steven Posté(e) le 19 mai 2014 Auteur Signaler Posté(e) le 19 mai 2014 Juste un truc que je ne comprends pas pour le Karotz (OpenKarotz) Pour le moment le lapin parle bien sur un évènement GEA. Mais, pour que cela fonctionne, il faut que j'écrive mes phrases dans un VD. Et que je demande a GEA d'appuyer sur un bouton du VD. Comment faire avec mon VD pour que ce soit la phrase passé en paramètre dans GEA, qui soit lue (?) Moi je fais ainsi 1) Je met à jour une variable globale avec la phrase à dire 2) J'appuie sur le bouton du module virtuel Le bouton du module virtuel reprend la phrase de la variable globale et envoi la phrase à OpenKarotz. Exemple : -- On met le messsage dans la variable globale puis on appuie sur le bouton du module virtuel GEA.add(69, 10*60, "", {{"Global", "Karotz", "GEA est trop pratique"}, {"VirtualDevice", 19, 1}} Code du bouton de mon virtual device 19 .. bouton 1 local phrase = fibaro:getGlobal("Karotz") if (phrase ~= "") then -- si la phrase n'est pas vide Lapin = Net.FHttp("<adresse ip du rongeur>") Lapin:GET("/cgi-bin/tts?voice=alice&text="..phrase.."&nocache=1") end
lolomail Posté(e) le 19 mai 2014 Signaler Posté(e) le 19 mai 2014 C'est une vraie tuerie ce script que tu nous a fait Steven plus toute les inclusions de demandes tordues comme les miennes! Milles merci!!! Bon je fini de mettre en place la gestion des volets suivant la température puis je passe à la gestion des volets le matin et soir .
Steven Posté(e) le 19 mai 2014 Auteur Signaler Posté(e) le 19 mai 2014 Je suis juste les mains qui transcode vos idées complètement tordues et inhumaines en pauvre script LUA Le seul mérite que j'ai ... est de vous comprendre Ok,
lolomail Posté(e) le 19 mai 2014 Signaler Posté(e) le 19 mai 2014 En tout cas et encore une fois milles merci car tu nous mets a dispo un super script!!! Je commence a le mixer avec le scheduler d'ailleurs, en fait pour la gestion des volets j'ai mis la vérif de la variable schedulergroup a summernormal, comme cela cette partie sera neutraliser l'hiver . Vais poser une question mais je suis quasi sur que tu as déjàprévu, on pourrait faire vérifier la valeur d'une variable avec 4 états? M'explique toujours avec Schedulergroup tu as winternormal, wintervacation, summernormal, summervacation, donc si on voulait faire exécuter un script que lors des periodes normal faudrait faire comment? La je viens de recevoir une notif le volet c'est bien ferme car la temp de la pièce est passée au delàde 22
Steven Posté(e) le 19 mai 2014 Auteur Signaler Posté(e) le 19 mai 2014 C'est pas vraiment possible car il faudrait winternormal OU summernormal et je ne gère pas les OU. Par contre si tu doubles le tout GEA.add(<condition>, <secondes>, "Uniquement si je suis en winternormal", {{"If", {{"Global", "Schedulergroup", "winternormal"}}}} GEA.add(<condition>, <secondes>, "Uniquement si je suis en summernormal ", {{"If", {{"Global", "Schedulergroup", "summernormal"}}}} Ton problème sera résolu. Certes, c'est moins beau mais faisable. Cool pour les volets à 22°
Messages recommandés