Aller au contenu

Recommended Posts

Bonsoir les geeks,

l'intervalle de date défini comme suit ne fonctionne pas, les actions ne se lancent pas (depuis le 01/01):

 

GEA.add({{"Dates", "12/12", "07/01"}, {"Time", "07:00", "07:01"}},30,"", {"TurnOn", id["Lumiere_Noel"]})
     GEA.add({{"Dates", "12/12", "07/01"}, {"Time", "08:30", "08:31"}},30,"", {"TurnOff", id["Lumiere_Noel"]})

 

Je dois décomposer sur les deux mois comme ceci:

 

GEA.add({{"Dates", "12/12", "31/12"}, {"Time", "07:00", "07:01"}},30,"", {"TurnOn", id["Lumiere_Noel"]})
    GEA.add({{"Dates", "12/12", "31/12"}, {"Time", "08:30", "08:31"}},30,"", {"TurnOff", id["Lumiere_Noel"]})

 

GEA.add({{"Dates", "01/01", "07/01"}, {"Time", "07:00", "07:01"}},30,"", {"TurnOn", id["Lumiere_Noel"]})
    GEA.add({{"Dates", "01/01", "07/01"}, {"Time", "08:30", "08:31"}},30,"", {"TurnOff", id["Lumiere_Noel"]})

 

C'est normal?

 

JP

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

J'aimerai un peu d'aide car je ne comprends pas mon "bug".

 

Dans mon GEA :

--------------------////////////////////        Gestion des volets       \\\\\\\\\\\\\\\\\\\\--------------------
    local estChome = {"Global", "Ferie_Aujourdhui", "OUI"}
	local estTravail = {"Global", "Ferie_Aujourdhui", "NON"}

    -- Jours travaillés
        -- Ouverture du volet de la chambre 1 les jours travaillés
            GEA.add(true, 1*60, "",{estTravail, {"Time", "08:30", "08:45"},{"Open",id["Volet_Chambre1"],100}})

  -- Jours chomés
        -- Ouverture du volet de la chambre 1 les jours chomés
            GEA.add(true, 1*60, "",{estChome, {"Time", "11:30", "11:45"},{"Open",id["Volet_Chambre1"],100}})

Bien sur, je me base sur la quickapp  "Jour férié" Version 4.00b pour HC3 by mprinfo


mon "bug" :

Que ce soit jour travaillé ou ferié le scénario s'execute sans ce soucier du jour; du coup le samedi les volets s'ouvrent à 8H30 :( .

Ma question : Pourquoi ? Que n'ai-je pas bien écrit ou compris dans mon code ?

 

En vous remerciant.

 

Modifié par Manu31
Rajout d'info

Partager ce message


Lien à poster
Partager sur d’autres sites

peut être mettre tes conditions.... dans les conditions justement ! (et non pas dans les actions)

A la place de true.

  • Thanks 1

Partager ce message


Lien à poster
Partager sur d’autres sites

@Lazer : Effectivement... :13: Merci beaucoup ;)

 

Alors j'ai essayé ceci :

           GEA.add({"Global", "Ferie_Aujourdhui", "NON"}, 1*60, "", {{"Time", "08:55", "09:00"},{"Close",id["Volet_Bureau_R1"],100}})
Ou encore :
           GEA.add(estTravail, 1*30, "", {{"Time", "09:29", "09:30"}, {"Close",id["Volet_Bureau_R1"],100}})

Mais le volet ne bouge pas :'( 

 

Après un reboot de la HC tout est bon ;)  DSL pour le dérangement

Modifié par Manu31
Résolu

Partager ce message


Lien à poster
Partager sur d’autres sites

Cela dit ta condition Time est toujours mal placée, elle ne devrait pas être avec les actions (tu utilises la vieille syntaxe de GEA)

Partager ce message


Lien à poster
Partager sur d’autres sites

@Lazer : arf... je vais y arriver à me mettre à jour.
Du coup, il faudrait l'écrire comment (avec le time dans les conditions) ?

 

Comme ça ?

GEA.add(estTravail, {"Time", "09:29", "09:30"}, 1*30, "", {{"Close",id["Volet_Bureau_R1"],100}})

En te remerciant

Partager ce message


Lien à poster
Partager sur d’autres sites

Presque, mais maintenant ta syntaxe n'est plus correcte, car il faut regrouper toutes tes conditions dans un même tableau (délimité par des accolades).

Quelque chose dans ce genre là je pense :

GEA.add({estTravail, {"Time", "09:29", "09:30"}}, 1*30, "", {{"Close",id["Volet_Bureau_R1"],100}})

 

 

  • Thanks 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Good day, im trying to adjust a variable based on the triggering of a PIR sensor with the following code

 

GEA.add({"Value+", id["Lvng_Pir"], 0}, 1"", {{"Global""Lvng_Prsnc""Prsnc"}})
GEA.add({"Value-", id["Lvng_Pir"], 0}, 60"", {{"Global""Lvng_Prsnc""Absnc"}})
 
But I cant get this to work.
 
Variable is changed when I test 
GEA.add(true1"", {{"Global""Lvng_Prsnc""Prsnc"}})
 
What am I doing wrong?
 
Salut 
 
 

Partager ce message


Lien à poster
Partager sur d’autres sites

It seems you are using a HC3.

PIR sensor returns a boolean value, you cannot compare its value with a number (0 in your case).

 

It should be OK :

GEA.add({"Value", id["Lvng_Pir"], true}, 1, "", {{"Global", "Lvng_Prsnc", "Prsnc"}})
GEA.add({"Value", id["Lvng_Pir"], false}, 60, "", {{"Global", "Lvng_Prsnc", "Absnc"}}) 
-- or :
GEA.add(id["Lvng_Pir"], 1, "", {{"Global", "Lvng_Prsnc", "Prsnc"}})
GEA.add(id["Lvng_Pir"], 60, "", {{"Inverse"}, {"Global", "Lvng_Prsnc", "Absnc"}})

 

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 3 heures, Lazer a dit :

It seems you are using a HC3.

PIR sensor returns a boolean value, you cannot compare its value with a number (0 in your case).

 

It should be OK :


GEA.add({"Value", id["Lvng_Pir"], true}, 1, "", {{"Global", "Lvng_Prsnc", "Prsnc"}})
GEA.add({"Value", id["Lvng_Pir"], false}, 60, "", {{"Global", "Lvng_Prsnc", "Absnc"}}) 
-- or :
GEA.add(id["Lvng_Pir"], 1, "", {{"Global", "Lvng_Prsnc", "Prsnc"}})
GEA.add(id["Lvng_Pir"], 60, "", {{"Inverse"}, {"Global", "Lvng_Prsnc", "Absnc"}})

 

Thanks for the quick reply

I tested both approached and the first one does not work, the second does work.

 

Do I understand it correctly that for 

GEA.add(id["Lvng_Pir"], 1, "", {{"Global", "Lvng_Prsnc", "Prsnc"}})

the movement needs to be detected for the duration of the value of GEA.checkEvery in order to change the Global -> Lvng_Prsnc?

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Yes, by the way if you want to detect of movement, you have to use the -1 syntax for the duration parameter

-- Set Lvng_Prsnc=Prsnc immediatly when motion is detected
GEA.add(id["Lvng_Pir"], -1, "", {{"Global", "Lvng_Prsnc", "Prsnc"}})

-- Set Lvng_Prsnc=Absnc at least 60 seconds after the last movement (ie after motion sensor returned to inactive state)
GEA.add(id["Lvng_Pir"], 60, "", {{"Inverse"}, {"Global", "Lvng_Prsnc", "Absnc"}})

 

You can change GEA.checkEvery ... but you shouldn't (there is not need).

You just have to understand the difference between immediate GEA instance (-1) and regular GEA instance (check performed every 30s)

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 5 heures, Lazer a dit :

Presque, mais maintenant ta syntaxe n'est plus correcte, car il faut regrouper toutes tes conditions dans un même tableau (délimité par des accolades).

Quelque chose dans ce genre là je pense :


GEA.add({estTravail, {"Time", "09:29", "09:30"}}, 1*30, "", {{"Close",id["Volet_Bureau_R1"],100}})

 

 

@Lazer : Merci beaucoup pour ton aide ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour le fil (et mes meilleurs vœux a vous - c'est ma première venue cette année :) )

 

Je ne m'étais pas vraiment pencher sur GEA j'ai ajouté quelques actions mais je développe toujours et je n'ai pas toutes les subtilitées de GEA...

J'ai deux soucis avec le code a suivre.

Je pilote 3 lampes extérieures avec 3 détecteurs de mouvements.

J'ai muté le code de pilotage de "Halogene_Entree" car le variateur a grillé mais le bug reste le même.

Le pilotage est actif a la nuit mais très souvent, les lampes restent allumées et ce même en journée. J'ai merdé à un endroit?

 

Autre bug, dans la section "conciergerie" je m'envoie des pushs sur le téléphone pour des rappels.

Celui de l'aspirateur robot ne fonctionne pas mais il est toujours en intégration donc pas de soucis pour lui de ce côté (pour le moment ^^)

Celui de la porte du garage fonctionne.

Par contre ceux planifiés par calendrier, fosse septique et poubelles, fonctionnent mais ... à 00h00... Une idée?

 

D'avance merci :)

 

--[[
%% autostart
%% properties
44 value
48 value
145 value
122 value
177 value
179 value
181 value
185 value
201 ui.status.value -- VD aspirateur robot
%% globals
--]]

function config() 
  -- ===================================================
  -- CONFIGURATON GENERALE
  -- ===================================================
  GEA.checkEvery = 30
  GEA.portables = {203} 
  GEA.globalvariables = "GEA_Tasks6"
  GEA.language = "fr"
  -- ===================================================
  -- FIN CONFIGURATION GENERALE
  -- =================================================== 
end

function setEvents() 
  -- =========================================================================
  -- ====================     Tableau d'identifiants     =====================
  -- =========================================================================
  
  local id = {
    -- Garage --
    	Porte_Garage = 145,
	-- Extérieur --
    	Detecteur_Allee = 177,
    	Spot_Allee = 181,
    	Ecl_Terrasse = 185,
		Detecteur_Terrasse = 179,
    	Detecteur_Entree = 48,
    	Halogene_Entree = 122,
    -- Interne --
    	Lapinou = 44,
        Xiaomi_vacuum = 201,
  }
  
  local TypeNotification = {Pushbullet=0}

  -- =========================================================================
  -- ========================     Mes tâches GEA     =========================
  -- =========================================================================
              
  -- *****************************
  -- **** Eclairage extérieur ****
  -- *****************************
  	   -- Allée
  	        -- Sur détection présence allée, allumage de l'ensemble de l'éclairage extérieur
	        GEA.add(id["Detecteur_Allee"], -1, "", {{"turnOn", id["Spot_Allee"]},{"turnOn", id["Ecl_Terrasse"]},{"Time", "Sunset", "Sunrise"}})   --,{"turnOn", id["Halogene_Entree"]}            
            GEA.add(id["Detecteur_Allee"], 5*60, "", {{"Inverse"}, {"turnOff",id["Spot_Allee"]},{"turnOff",id["Ecl_Terrasse"]}}) --,{"turnOff",id["Halogene_Entree"]}
  	   -- Porte d'entrée
            -- Allumage automatique du spot puis extinction automatique sous 5 minutes
            -- GEA.add(id["Detecteur_Entree"], -1, "Lumiere porte entrée ON", {{"turnOn", id["Halogene_Entree"]},{"Time", "Sunset", "Sunrise"}})                
            -- GEA.add(id["Detecteur_Entree"], 5*60, "Lumiere porte entrée OFF", {{"Inverse"}, {"turnOff",id["Halogene_Entree"]}})
		-- Terrasse
  	        -- Allumage automatique des éclairages terrasse puis extinction automatique sous 15 minutes
	        GEA.add(id["Detecteur_Terrasse"], -1, "", {{"turnOn", id["Ecl_Terrasse"]},{"Time", "Sunset", "Sunrise"}})                
            GEA.add(id["Detecteur_Terrasse"], 15*60, "", {{"Inverse"}, {"turnOff",id["Ecl_Terrasse"]}})

  -- ************************
  -- *** Aspirateur robot ***
  -- ************************
	-- Start
		--GEA.add(true, 0, "",{{"VariableCache", "CleanningToday", "false"}})
		--GEA.add({{"VariableCache", "CleanningToday", "true"},{"Time", "23:30", "23:31"}}, 30, "", {{"VariableCache", "CleanningToday", "false"}})
		--GEA.add({{"Label", id["Xiaomi_vacuum"], "status", "Chargement"}, {"VariableCache", "CleanningToday", "false"}, {"Time", "10:15", "19:00"}, Absence, AlarmeEnable}, 60*15, "", {{"VirtualDevice", id["Xiaomi_vacuum"],12},{"VariableCache", "CleanningToday", "true"}})
 
  -- ********************
  -- *** Conciergerie ***
  -- ********************
       -- Rappel sortie poubelles
		GEA.add(true, 1*60,"Avez vous pensé a sortir les poubelles?",{"Days", "Wednesday"}, {"Time", "21:00", "21:01"})
       -- Rappel entretien fosse septique
 		GEA.add(true, 1*60,"Avez vous pensé au sachet pour la fosse septique?",{"Days", "Sunday"}, {"Time", "21:00", "21:01"})      
       -- Porte du garage ouverte pendant 1h     
		GEA.add(id["Porte_Garage"] , 60*60, "La porte du garage est ouverte depuis #duration#", {"Repeat"} )
		-- Aspirateur robot
		GEA.add({"Label", id["Xiaomi_vacuum"], "status", "Nettoyage"}, -1, "Je commence l'aspiration de la maison" )
 		GEA.add({{"Label", id["Xiaomi_vacuum"], "status", "Chargement"},{"Label!", id["XAIOMI_VACCUM"], "cleantime", ""},{"Label!", id["XAIOMI_VACCUM"], "cleanarea", ""}}, -1, "J'ai fini pour aujourd'hui, Surface traité : #value[3]#, Temps passé : #value[2]#, je retourne à la base" )
		GEA.add({"Label!", id["Xiaomi_vacuum"], "error", ""}, 30, "J'ai besoin d'aide, #value[1]#" ) 
 
  -- ==========================================================
  -- FIN DU CODE UTILISATEUR
  -- =========================================================== 
end  
  

 

Modifié par gorn

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 1/6/2021 à 10:17 PM, Lazer a dit :

Yes, by the way if you want to detect of movement, you have to use the -1 syntax for the duration parameter


     

      

 

You can change GEA.checkEvery ... but you shouldn't (there is not need).

You just have to understand the difference between immediate GEA instance (-1) and regular GEA instance (check performed every 30s)

Thanks for your help, i do understand it better now

I noticed that 



is not always executed, i.e. the global variable is not always changed to Absnc

is this perhaps a result of the 60 sec in relation to the 30 sec of GEA.check.Every, or is it due to multiple other checks at the same time?

i do check the presence (occupation) of several rooms and store this in a variable in order to control lights etc.

Partager ce message


Lien à poster
Partager sur d’autres sites

You have a missing line, so I have hard time understanding what's wrong....

 

But if you use the -1 duration, then the GEA rule will be executed each time the motion sensor detects a movement, so the global variable will change.

That's totally independent from the 30s delay of the GEA.check.Every parameter.

 

The second rule I gave you, with 60s delay (ie 2*30), will run only after the motion sensor is idle after at least 60s (could be any time between 60s and 89s)

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 2 heures, Lazer a dit :

You have a missing line, so I have hard time understanding what's wrong....

 

But if you use the -1 duration, then the GEA rule will be executed each time the motion sensor detects a movement, so the global variable will change.

That's totally independent from the 30s delay of the GEA.check.Every parameter.

 

The second rule I gave you, with 60s delay (ie 2*30), will run only after the motion sensor is idle after at least 60s (could be any time between 60s and 89s)

yes, sorry, i noticed the missing line, it should read:

 

GEA.add(id["Hll_Pir"], 1*60, "", {{"Inverse"}, {"Global", "Hll_Prsnc", "Absnc"}})

 

so what I try to achieve is that when the motion sensor Hll_Pir is idle for 60 seconds the global variable is changed to Absnc, meaning that the room is not occupied. when the sensor detects motion, the global variable is set to Prsnc

 

i do experience that the global variable is not always set to Absnc while Iam sure the motion sensor has not been activated for several minutes.

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

It may be the case if the detection time of the motion sensor is below 30s (you can check its parameters)

In that case, under certain circumstances, two consecutive regular GEA loops (every 30s) might not see the active motion sensor.... thus, GEA can never consider your second rule (the one with 60s)

I am not sure to be clear....

 

First you could try to increase the motion sensor holding time to a value higher than 30s.

 

Or you could try to add a "Repeat" action to GEA, but I am afraid of side effect :

 GEA.add(id["Hll_Pir"], 1*60, "", {{"Inverse"}, {"Repeat"}, {"Global", "Hll_Prsnc", "Absnc"}}) 

Or even better, something like that to test if the your global variable is different than "Absnc" AND no motion for at least 60s :

 GEA.add({id["Hll_Pir"], {"Global!", "Hll_Prsnc", "Absnc"}}, 1*60, "", {{"Inverse"}, {"Global", "Hll_Prsnc", "Absnc"}}) 

 

By the way, I am far from being an expert to advanced GEA usage, some people here have more experience and should help you... please :)

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

Il y a bien longtemps que je ne touche plus à rien car le vaisseau amiral suit sa trajectoire ;) mais suite à une demande de ma femme je me rends compte qu'une option GEA qui consiste à éteindre la lumière après xx secondes ou minutes ne fonctionne pas/plus chez moi. Je suis en GEA 6.11 mais je doute que la 6.13 change quelque chose, étant donné que cette fonctionnalité est utilisé depuis le début de GEA.

 

Si je fais ceci, la lumière s'éteins immédiatement

 GEA.add(id["PORTE_JARDIN3"], -1, "", {{"Inverse"},{"turnOff", id["LUMIERE_JARDIN"]}})

 

Si je fais ceci, elle ne s'éteins pas au bout de 1mn

 GEA.add(id["PORTE_JARDIN3"], 1*30, "", {{"Inverse"},{"turnOff", id["LUMIERE_JARDIN"]}})

 

ne fonctionne pas non plus

 GEA.add(id["PORTE_JARDIN3"], 1*60, "", {{"Inverse"},{"turnOff", id["LUMIERE_JARDIN"]}})

 

J'avoue que j'ai pu rater un truc, mais il y a longtemps j'avais été contraint de mettre -1 sur ma porte d'entrée car elle restait également allumée.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai épuré mes lignes, rien de dingue, juste enlevé des lignes en commentaires... ça re-fonctionne.

Sensible wow :D Je ne sais même pas ce qui a pu provoquer cette anno.

Partager ce message


Lien à poster
Partager sur d’autres sites

Moi j'ai le même souci, de temps en temps en 6.11 et 6.13. Je sauvegarde la scène et ça fonctionne a nouveau quelque jours....

Envoyé de mon SM-A705FN en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Je viens tout de décortiquer ! Et en fait ça provient de "Inverse" qui n'est pas reconnu avec un timer type 1*30 mais fonctionne avec -1

Bon après je suis pas bien doué.

Partager ce message


Lien à poster
Partager sur d’autres sites

Il ne me semble jamais avoir eu de soucis avec "Inverse", pourtant j'en utilise beaucoup.

 

La solution de contournement, c'est de tester la "Value" du module dans les conditions.

Sur HC2, quelque chose comme :

GEA.add({"Value", id["PORTE_JARDIN3"], "0"}, 60, ...

Ou sur HC3 :

GEA.add({"Value", id["PORTE_JARDIN3"], false}, 60, ...

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci @Lazer ça marche vachement bien. Je ne suis vraiment pas doué...

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 1/8/2021 à 2:24 PM, Lazer a dit :

It may be the case if the detection time of the motion sensor is below 30s (you can check its parameters)

In that case, under certain circumstances, two consecutive regular GEA loops (every 30s) might not see the active motion sensor .... thus, GEA can never consider your second rule (the one with 60s)

I am not sure to be clear ....

 

First you could try to increase the motion sensor holding time to a value higher than 30s.

 

Or you could try to add a "Repeat" action to GEA, but I am afraid of side effect :


        

Or even better, something like that to test if the your global variable is different than "Absnc" AND no motion for at least 60s :


          

 

By the way, I am far from being an expert to advanced GEA usage, some people here have more experience and should help you ... please :)

 

thanks for the effort, works perfect now 

Partager ce message


Lien à poster
Partager sur d’autres sites

Hello 

tout le monde et bonne année

 

J'ai un soucis depuis peu, je suis e  GEA6.14 depuis 6 mois.

Je n'ai jamais eu de problème mais depuis peu, j'ai un problème, GEA se désactive, les scènes ne fonctionnent plus, lorsque je redémarrai ma HC2 cela était ok mais aujourd'hui RIEN

 

Voici ce que j'ai 

 

image.png.3c93357a96153239325d42c089638b8b.png

 

Et si je clic sur démarrer 

 

image.png.ed85c17a8ccc48999f11e624ae9e7a8d.png

 

Pourtant j'arrive à redémarrer ma box depuis l'interface et mes commandes Modules fonctionnent en manuel !!!!

 

Une idée ???

 

 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

×