Aller au contenu
Steven

Gea : Gestionnaire D'événements Automatique

Recommended Posts

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?

Partager ce message


Lien à poster
Partager sur d’autres sites

Comment verrais-tu la chose ? Un exemple de code stp :)

Partager ce message


Lien à poster
Partager sur d’autres sites

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 :(.

Partager ce message


Lien à poster
Partager sur d’autres sites
--[[
%% 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 ?

 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

nan, lolomail parle d'une solution vraiment tordu.

Là , c'est simple  :lol:

Partager ce message


Lien à poster
Partager sur d’autres sites

Ok ok  !! je prends le tain en marche je vous laisse

 

je n'avais qu'a lire les post précédent  ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Vous fumez quoi ? On partage ?

Partager ce message


Lien à poster
Partager sur d’autres sites

nan, lolomail parle d'une solution vraiment tordu.

Là , c'est simple  :lol:

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Vérifie qu'il n'y ait pas d'autres scénarios en cause. Ou de soucis avec un id.

Partager ce message


Lien à poster
Partager sur d’autres sites

Quel boulot Steven merci pour ce script !  :icon1010:

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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 ;).

Partager ce message


Lien à poster
Partager sur d’autres sites

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é par lolomail

Partager ce message


Lien à poster
Partager sur d’autres sites

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.

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

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.

Partager ce message


Lien à poster
Partager sur d’autres sites

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 ?

Partager ce message


Lien à poster
Partager sur d’autres sites

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é.

Partager ce message


Lien à poster
Partager sur d’autres sites

...

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.

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci, c'était donc le -1

Partager ce message


Lien à poster
Partager sur d’autres sites
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.

Partager ce message


Lien à poster
Partager sur d’autres sites

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 :)

Partager ce message


Lien à poster
Partager sur d’autres sites

 

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 :) :) :)
  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.

×