Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

 

Est-il possible d'effectuer une action en fonction de l'ordre de déclenchement de 2 détecteurs de mouvement ?

 

Par exemple :

Si déclenchement détecteur A PUIS déclenchement détecteur B alors action1

Si déclenchement détecteur B PUIS déclenchement détecteur A alors action 2

 

Merci pour votre aide.

Posté(e) (modifié)

@ sythetic

salut a tous

GEA.add({"Value+", id["DETEC_A"] , 1}, -1, "",{{"Global", "DETEC_A", "1"}})

GEA.add({"Value+", id["DETEC_B"] , 1}, -1, "",{{"Global", "DETEC_B", "1"}})

----Si A=1 + B=1   alors action....
GEA.add({{"Value+", id["DETEC_A"] , 1},{"Value+", id["DETEC_B"] , 1}}, -1, "",{{.......
Modifié par 971jmd
Posté(e)

si  je trompe pas

 

Je me suis tromper plus haut


---Si A=1 +B=1  alors  action
GEA.add({{"Global", "DETEC_A", "1"}, {"Global", "DETEC_B", "1"}} -1, "",{{......


GEA.add({{"Global", "DETEC_B", "1"}, {"Global", "DETEC_A", "1"}} -1, "",{{......
Posté(e) (modifié)


---SI DETECTTION A= 1

GEA.add({"Value+", id["DETEC_A"] , 1}, -1, "",{{"Global", "DETEC_A", "1"}

---SI DETECTTION B= 1

GEA.add({"Value+", id["DETEC_B"] , 1}, -1, "",{{"Global", "DETEC_B", "1"}

---SI DETEC_A=1 + DETEC_B=1 = ALORS Action et remise a zero de la variable DETEC_A et DETEC_B

GEA.add({{"Global", "DETEC_A", "1"}, {"Global", "DETEC_B", "1"}}, -1, "",{{"turnOn", id["BAR"]},{"Global", "DETEC_A", "0"}, {"Global", "DETEC_B", "0"}})

---SI DETEC_B=1 + DETEC_A=1 = ALORS Action et remise a zero de la variable DETEC_A et DETEC_B

GEA.add({{"Global", "DETEC_B", "1"}, {"Global", "DETEC_A", "1"}}, -1, "",{{"turnOn", id["BAR"]},{"Global", "DETEC_A", "0"}, {"Global", "DETEC_B", "0"}})

Modifié par 971jmd
Posté(e)

Je pense que je vais éviter de faire une remise à  0 des variables.

Si une 2ème personne passe les détecteurs dans le sens inverse alors que la 1ère est toujours au même endroit...elle va se retrouver dans le noir.

---SI DETECTTION   A= 1
GEA.add({"Value+", id["DETEC_A"] , 1}, -1, "",{{"Global", "DETEC_A", "1"}
---SI DETECTTION   B= 1
GEA.add({"Value+", id["DETEC_B"] , 1}, -1, "",{{"Global", "DETEC_B", "1"}

Peu importe le sens de passage, les variables auront toujours une valeur = à  1,  non ?

 

A ton avis, ça peut marcher comme ça ? (j'ai mis des ???? car je ne sais pas comment lier "valeur" et  "variable globale") :


--SI DECTECTION A PUIS DETECTION B ALORS +1 à  DETEC_A et -1 à  DETEC_B
GEA.add({{id["DETEC_A"]}, {id["DETEC_B"]}}, -1, "",{{"Global", "DETEC_A", "inc+"}, {"Global", "DETEC_B", "dec-"}}) 
--SI DECTECTION B PUIS DETECTION A ALORS -1 à  DETEC_A et +1 à  DETEC_B
GEA.add({{id["DETEC_B"]}, {id["DETEC_A"]}}, -1, "",{{"Global", "DETEC_A", "dec-"}, {"Global", "DETEC_B", "inc+"}}) 

---SI VALEUR DETEC_A SUPERIEURE à  0 ALORS Lumière bar = ON
GEA.add({"Value+", ????"] , 0}, -1, "",{{"turnOn", id["BAR"]}})
---SI VALEUR DETEC_A EGALE à  0 ALORS Lumière bar = OFF
GEA.add({"Value", ????"] , 0}, -1, "",{{"turnOff", id["BAR"]}})

---SI VALEUR DETEC_B SUPERIEURE à  0 ALORS Lumière cuisine = ON
GEA.add({"Value+", ????"] , 0}, -1, "",{{"turnOn", id["CUISINE"]}})
---SI VALEUR DETEC_B EGALE à  0 ALORS Lumière cuisine = OFF
GEA.add({"Value", ????"] , 0}, -1, "",{{"turnOff", id["CUISINE"]}})
Posté(e)

a dessolé mai je vient de me rendre compte que ça ne vas pas fonctionné 

 

SAUF SI LA VARIABLE    DETEC_A    ET    DETEC_B passe a 1 dans le meme temps 

---SI DETEC_A=1 + DETEC_B=1  =  ALORS Action et remise a zero de la variable DETEC_A et DETEC_B
GEA.add({{"Global", "DETEC_A", "1"}, {"Global", "DETEC_B", "1"}}, -1, "",{{"turnOn", id["BAR"]},{"Global", "DETEC_A", "0"}, {"Global", "DETEC_B", "0"}}) 
 
---SI DETEC_B=1 + DETEC_A=1  =  ALORS Action et remise a zero de la variable DETEC_A et DETEC_B
GEA.add({{"Global", "DETEC_B", "1"}, {"Global", "DETEC_A", "1"}}, -1, "",{{"turnOn", id["BAR"]},{"Global", "DETEC_A", "0"}, {"Global", "DETEC_B", "0"}})
Posté(e)

SAUF SI LA VARIABLE    DETEC_A    ET    DETEC_B    passe a 1 dans le meme temps 

 

donc OUI  ça fonctionne 

Posté(e)

Tu peux aussi

Créé une variable supplémentaires :RÉSULTATS

si DETEC_A=1 et DETEC_B =1 Alors RÉSULTATS = A

si DETEC_A=0 et DETEC_B =1 Alors RÉSULTATS = B

si DETEC_A=1 et DETEC_B =0 Alors RÉSULTATS = C

si DETEC_A=0 et DETEC_B =0 Alors RÉSULTATS = D

Pour l'action

Si RÉSULTATS = A Action .....

Si RÉSULTATS = B Action ......

Si RÉSULTATS = C Action ......

Si RÉSULTATS = D Action ......

Envoyé de mon iPhone en utilisant Tapatalk

Posté(e)

@971jmd et PEPITE

 

 

j'ai refait avec la ligne GEA.add( {id["CAPT_ENTRE"]}, -1, "ouverture de la porte d'entrée à  #time#") seule. Rien

 

j'ai essayé avec un autre capteur sur une autre porte, rien non plus

 

j'ai exclus et inclus à  nouveau le capteur de la porte d'entrée, et mis à  jour mon gea avec les nouveau N° id , rien :15:

 

La seule différence avec la porte basculante du garage c'est le type de capteur, Vision Door Sensor ZG8101

 

et sur les autres portes de la maison FGK101 Door/Window Sensor

 

Mais cela fonctionné en GEA 5.3

 

alors pourquoi ???

Posté(e)

Si tu viens de réécrire ta ligne , tu as bien placé juste sous %%properties (en haut de la pile) le N° de L'Id de CAP_ENTRE (xxx value), ? La syntaxe de la ligne est bonne,  si le n° d'Id est le bon, l'orthographe du capteur identique dans la ligne et dans local Id, que le portable est bien déclaré dans user local id ça devrait marcher!

Posté(e)

Je viens de faire un test + avec cette ligne ( j'ai la version corrigée par Steven de GEA sous V4.081), Le capteur est un FGK 101

GEA.add(id["DETPORGAR"],-1,"La porte d entrée a été ouverte à#time#",{{"Time","00:01","23:59"}})
Posté(e)

@JOESAB

 

TU A oublier le value

GEA.add({"Value", id["CAPT_ENTRE"] , 1}, -1, "ouverture de la porte d'entrée à  #time#")
 
Posté(e)

Tu peux aussi

Créé une variable supplémentaires :RÉSULTATS

si DETEC_A=1 et DETEC_B =1 Alors RÉSULTATS = A

si DETEC_A=0 et DETEC_B =1 Alors RÉSULTATS = B

si DETEC_A=1 et DETEC_B =0 Alors RÉSULTATS = C

si DETEC_A=0 et DETEC_B =0 Alors RÉSULTATS = D

Pour l'action

Si RÉSULTATS = A Action .....

Si RÉSULTATS = B Action ......

Si RÉSULTATS = C Action ......

Si RÉSULTATS = D Action ......

Envoyé de mon iPhone en utilisant Tapatalk

Les détecteurs seront très proches (quasiment collés l'un à  l'autre) et je ne sais pas si GEA sera suffisamment réactif pour discerné le sens de passage.

Dans un sens j'aurais le résultat C puis A à  seulement quelques millisecondes d'intervalle et dans l'autre sens ce sera le résultat B puis A toujours avec un écart de quelques millisecondes.

 

Voici ce que je cherche à  faire exactement :

 

Je cherche à  modifier (addition ou soustraction) plusieurs variables en fonction de l'ordre de déclenchement de 2 détecteurs de mouvement (sens de passage) et exécuter une action en fonction de la valeur de celles-ci .

 

Par exemple :

Si déclenchement détecteur A PUIS déclenchement détecteur B alors ajouter 1 à  la valeur de la variable V1 et soustraire 1 à  la valeur de la variable V2

Si déclenchement détecteur B PUIS déclenchement détecteur A alors soustraire 1 à  la valeur de la variable V1 et ajouter 1 à  la valeur de la variable V2

Si la valeur de la variable V1 ou V2 = 0 alors exécution de l'action 1

Si la valeur de la variable V1 ou V2 ≥ 1 alors exécution de l'action 2

 

Le but final étant de faire un compteur de passage en tenant compte du sens de celui-ci.

Posté(e)

Hello,

une petite question toute simple pour vous, mais je n'ai pas vu la réponse.

Peux-t-on faire un OU sur une ligne GEA ?

 

Si globale=1 ou sceneactivation alors .......

 

Actuellement je suis obligé de multiplier les lignes pour avoir 2 déclencheurs.

 

MERKI

Posté(e)

pour faire un ou, il suffit de faire deux lignes gea avec des conditions différentes mais des actions identiques

Posté(e)

bonjour à  tous

 

je ne penses pas que le terme "value" soit nécessaire, la ligne pour le garage n'en a pas et fonctionne très bien,

j'ai beau regardé le numéro d'ID et le nom je ne vois pas d'erreur, mais.... peut être à  trop regardé....

 

je ne comprends pas pourquoi ces capteurs ne veulent pas signaler leur ouverture, j'ai essayé avec différent endroit et nom, rien n'y fait !

je vous mets mon script, si une âme charitable voulait regarder de plus près.

 

En scène bloc, il faut choisir entre égal à  normal, ou différent de normal, et je reçois bien les puch, donc le capteur fonctionne bien,

donc c'est bien ma ligne qui est mal structurée

--[[
%% autostart
%% properties
7 value
13 value
19 value
29 value
33 value
34 value
38 value
40 value
41 value
42 value
45 value
46 value
47 value
49 value
51 value
53 value
55 value
64 value
66 value
68 value
107 value
109 value
113 value
115 value
119 value
121 value
127 value
129 value
133 value
135 value
139 value
140 value
144 value
145 value
146 value
147 value
148 value
149 value
151 value
170 value
171 value
172 value
179 value
181 value
183 value
185 value
186 value
187 value
%% globals
--]]


local id = {
--inconnu
STATION_METEO = 101, PORTE_GARAGE = 158, 
--CUISINE
ALARME_SMOKE = 42, SMOKE_CUISINE = 40, TEMP_SMOKE = 41, CAPT_CUISINE = 127, TEMP_CUISINE_0_63 = 129, 
--ENTREE
TEMP_ENTRE_0_57 = 139, VR_ENTRE = 55, CAPT_ENTREE = 187, 
--BUREAU
VR_BUREAU = 38, CAPT_BURE_0_75 = 135, CAT_BUREAU = 133, 
--NOTRE_CHAMBRE
TEMP_CHAMBRE_0_57 = 115, CAPT_CHAMBRE = 113, 
--CHAMBRE2
CAPT_CHAMBRE2 = 183, CAPT_TEMP_CH2 = 185, VR_CHAMBRE = 51, 
--VERANDA
CAPT_COTE_GAUCHE = 29, CAPT_LUX = 35, CAPT_PORTE_VER_SAM = 107, TEMP_VERANDA = 121, CAPT_DROITE = 119, TEMP_VERANDA_VERANDA = 34, CAPT_MOUV = 33, CAM_EXT = 177, 
--SALON
HUB_RESEAU = 144, TV_SALON = 140, CAMERA = 145, AMPLI = 146, BLURAY = 148, CAPT_SAL = 179, CAPT_TEMP_SAL = 181, FRE_SERVEUR = 147, CAPT_LUX_SAL = 172, CAPT_MOUV_SAL = 170, CAPT_TEMP_SAL_SALON = 171, TELE = 149, VR_SALON = 53, LAMPE_SALON = 7, TEMP_SAM__0_07 = 109, SALON = 64, 
--GARAGE
CAM_GARAGE = 66, CAPT_GARAGE = 19, PORTE_COULOIR_GARAGE = 151, GARAGE1 = 156, ALARME_SMOKE_GARAGE = 47, TEMP_GARAGE = 46, SMOKE_GARAGE = 45, 
--BILLARD
PRISE_BILLARD = 49, SORTIE1_CHAUF_BILL = 77, CAPT_FLOD = 21, TEMP_SOL = 23, TEST_2 = 78, RADIATEUR = 13, TEMP_BILLARD = 79, 
--PORTAIL
PORTAIL = 68, PORTAIL_PORTAIL = 155, 
--VARIABLES AUTO
METEOALERTE___60 = 103, JOUR_CHOME = 57, VD_PRESENCE_SA = 164, MY_BATTERIES = 166, DAY_PHASE = 168, VD_PRESENCE_JA = 165, 
--Maison VAR
ALARME_AVANCEE = 161, 
}


-- v 5.40
-- ==================================================
-- GEA : Gestionnaire d'Evénements Automatique
-- ==================================================
-- [FR] Scénario permettant de contrôler si un périphérique est 
-- activé depuis trop longtemps ou lancer un push d'avertissement.
-- Ce scénario permet une annotation plus simple que le code LUA
-- il nécessite néanmoins quelques connaissances.
--
-- [EN] This scene allow you to check every X second the status
-- of a module and send actions if the module is activated since too long.
-- This scene allow you a more simple annotation than LUA
-- it requires some knowledge
--
-- Auteur : Steven P. with modifications of Hansolo and Shyrka973
-- Version : 5.40
-- Special Thanks to :
-- jompa68, Fredric, Diuck, Domodial, moicphil, lolomail, byackee,
-- JossAlf, Did,  sebcbien, chris6783, tibahut and all other guy from Domotique-fibaro.fr
-- ------------------------------------------------------------
-- Historique / History
-- ------------------------------------------------------------
-- L'historique complet est diponible ici / the full history is available here :
-- http://www.domotique-fibaro.fr/index.php/topic/1082-gea-gestionnaire-dévénements-automatique/?p=12428



-- Paramétrage de GEA / GEA configuration
function config()
  GEA.isVersionFour           = true -- On est en version 4.017 Beta ou supérieure / 
  GEA.language                = "FR" -- Votre langue : FR (default) / Your language : EN
  GEA.checkEvery              = 30 -- On vérifie toutes les X secondes  (default : 30) / Check every X seconds
  GEA.portables               = {153, 154} -- Liste des portables devant recevoir une notification {70, 71} / Smartphones you want to be notified
  GEA.debug                   = false -- Affichage des traces dans la console (default : false) / Show trace in the debug window
  -- GEA.getGlobalForActivation = {"SuspendreGEA", "non"} -- active ou désactive l'exécution de GEA via une variable globale / active or deactive GEA execution with a global variable
  -- GEA.catchError             = false
  GEA.optimize                = GEA.typeOptimize["IMMEDIATE_ONLY"]
  -- option : GEA.typeOptimize["NONE"], GEA.typeOptimize["IMMEDIATE_ONLY"], GEA.typeOptimize["ALL"]
  -- permet d'optimiser les soucis liés au getName et getRoom de fibaro mais n'affiche plus le nom des modules concernés.
end 

-- Ajouter ici les événements à  exécuter / Add here events to schedule
-- Une liste d'exemples est disponible dans un fichier annexe samples.lua / A samples list is available in another file called samples.lua
function setEvents() 

---règle jours chomés ou pas pour volets -------
local estChome = {"Global", "JourChome", "OUI"}
local estTravail = {"Global", "JourChome", "NON"}
 
   -------------------------Jourchome----------------------
--Le scénario calcul le jour chome  
GEA.add(true, 30, "", {{"VirtualDevice", 57, 3},{"Time", "00:00", "00:01"}})
-------------------------------------------------------- 

  
-- Mise à  jour des Présences par détection d'adresses IP toutes les minutes
--GEA.add(true, 1*350, "",{{"VirtualDevice", id["VD_PRESENCE_SA"], "1"},{"Repeat"}})
  
 
--------------------GARAGE---------------------
-- Le scénario enverra un push toutes les 10mn tant que la orte du garage sera ouverte
GEA.add( id["CAPT_GARAGE"], 10*60, "La porte de garage est ouverte depuis plus de #duration#", {{"Repeat"}})
-- Msg à  la fermeture de la porte
GEA.add( id["CAPT_GARAGE"], -1, "La porte du garage a été fermée", {{"Inverse"}})
-- Avertissement push si la porte de garage s'ouvre à  des heures non inappropriée
GEA.add( id["CAPT_GARAGE"], -1, "ouverture de la porte du garage à  #time# le #date#")
---------------------

  
--------------------OUVERTURE VOLETS DEVANT SEMAINE---------------------  
--Ouverture le matin
GEA.add({{"Value-", id["VR_BUREAU"], 95}, estTravail}, 1*60, "Ouverture Volet BUREAU", {{"Time", "Sunrise>07:30", "Sunrise>07:31"},{"Open", id["VR_BUREAU"], 100}})  
GEA.add({{"Value-", id["VR_CHAMBRE"], 95}, estTravail}, 1*60, "Ouverture Volet CHAMBRE2", {{"Time", "Sunrise>07:30", "Sunrise>07:31"},{"Open", id["VR_CHAMBRE"], 100}})  
GEA.add({{"Value-", id["VR_ENTRE"], 95}, estTravail}, 1*60, "Ouverture Volet ENTREE", {{"Time", "Sunrise>07:30", "Sunrise>07:31"},{"Open", id["VR_ENTRE"], 100}})  
---------------------------------------------------------
 
-----------------Ouverture volets salon lever du soleil semaine ----------------
GEA.add({{"Value-", id["VR_SALON"], 95}, estTravail}, 1*60, "Ouverture Volet SALON", {{"Time", "Sunrise>07:00", "Sunrise>07:01"},{"Open", id["VR_SALON"], 100}}) 
---------------------------------------------------------
 
  -----------------Ouverture volets salon lever du soleil WE et feries ----------------
GEA.add({{"Value-", id["VR_SALON"], 95}, estChome}, 1*60, "Ouverture Volet SALON", {{"Time", "Sunrise>08:00", "Sunrise>08:01"},{"Open", id["VR_SALON"], 100}}) 
---------------------------------------------------------
 
--------------------OUVERTURE VOLETS DEVANT we et feries---------------------  
 
--Ouverture le matin
GEA.add({{"Value-", id["VR_BUREAU"], 95}, estChome}, 1*60, "Ouverture Volet BUREAU", {{"Time", "Sunrise>8:30", "Sunrise>08:31"},{"Open", id["VR_BUREAU"], 100}})  
GEA.add({{"Value-", id["VR_CHAMBRE"], 95}, estChome}, 1*60, "Ouverture Volet CHAMBRE2", {{"Time", "Sunrise>8:30", "Sunrise>08:31"},{"Open", id["VR_CHAMBRE"], 100}})  
GEA.add({{"Value-", id["VR_ENTRE"], 95}, estChome}, 1*60, "Ouverture Volet ENTREE", {{"Time", "Sunrise>8:30", "Sunrise>08:31"},{"Open", id["VR_ENTRE"], 100}})  
 
--Fermeture des volets du bureau et de la chambre-----
GEA.add(true, 1*60, "fermeture volets bureau/chambre", {{"Time", "Sunset<22:00", "Sunset<22:01"}, {"Close",id["VR_BUREAU"],100}, {"Close",id["VR_CHAMBRE"],100}})
-------------Fermeture du volet du salon-------------------------- 
GEA.add(true, 1*60, "fermeture volet salon", {{"Time", "20:45", "20:48"}, {"Close",id["VR_SALON"],100}})
--------------------  
GEA.add(true, 1*60, "fermeture volet entrée", {{"Time", "21:15", "21:16"}, {"Close",id["VR_ENTRE"],100}})
--------------------  
 
 -----------------porte d'entree ---------------
-- Avertissement push si la porte d'entrée s'ouvre à  des heures non inappropriée
--GEA.add( {id["CAPT_ENTREE"], estTravail}, -1, "ouverture de la porte d'entrée à  #time#", {{"Time", "05:00", "17:00"}})
--GEA.add( id["CAPT_ENTREE"], -1, "ouverture de la porte d'entrée à  #time#", {{"Time", "19:00", "07:50"}})
GEA.add( {id["CAPT_ENTREE"]}, -1, "ouverture de la porte d'entrée à  #time#")  
GEA.add( {id["CAPT_PORTE_VER_SAM"]}, -1, "ouverture de la porte d'entrée à  #time#")
  ---------------------


end
Posté(e)

pour faire un ou, il suffit de faire deux lignes gea avec des conditions différentes mais des actions identiques

Et oui, c'est comme ça que je procède actuellement, mais cela devient un peu lourd. (contrôle multimédia 12 lignes multipliées par x déclencheurs)

@Steven. Tu nous ponds un petit bout de code, afin de pouvoir ajouter un OU dans la lecture des condition en utilisant un caractère non alphabétique  :13:  :13:  :13:

Posté(e)

Joesab

Sous contrôle de nos experts! Il me semble que tu déclares sous %% properties tous tes modules, en fait il ne faut mettre là   que les déclencheurs  - 1, de plus il me semble qu'il y a des modules déclarées mais pas utilisé, du moins dans le script présenté ex tele 149 etc. GEA n'aime pas, j'en ai fait l'experience!

  • Upvote 1
Posté(e)

ok

je vais déjà  supprimer tous les capteurs que je n'utilise pas

 

merci

 

 

Modif

 

Après avoir supprimer les modules inutiles sous %% properties

 

ça marche nickel !!!! :13: :13: :13:

Posté(e)

@joesab,

 

j'ai mis tes ligne dans mon GEA en remplacent l'Id par celui de ma porte et cela fonctionne parfaitement, donc le problème est ailleurs.

----test- joesab
  
  --------------------GARAGE---------------------
-- Le scénario enverra un push toutes les 10mn tant que la orte du garage sera ouverte
GEA.add( 168, 30, "La porte de garage est ouverte depuis plus de #duration#", {{"Repeat"}})
-- Msg à  la fermeture de la porte
GEA.add( 168, -1, "La porte du garage a été fermée", {{"Inverse"}})
-- Avertissement push si la porte de garage s'ouvre à  des heures non inappropriée
GEA.add( 168, -1, "ouverture de la porte du garage à  #time# le #date#")
----------------------------------------------------------------------------------	

donc suis la piste de @jmg38, une ID fantôme ou autre peuvent gêner...

×
×
  • Créer...