Aller au contenu

Messages recommandés

Posté(e)

ah ouui, mon raisonnement presnetait quelques manquements, tu as raison, encore un bon exo pour moi

 

Et tout a fait d'accord avec l'usage de S2

Pour m'exercer avec GEA pour faire comme avec le S2, je tenterait cela, qu'en penses tu ?

--Methode 2
-- Exinction allumage sur detection, tache non demarree automatiquement
local ExtinctionCouloir1 = GEA.add(id["LAMPE_TELERUPTEUR_C1"],  1*60, "Extinction couloir sur detection #duration#", {{"Portable", 384},{"turnOff", id["LAMPE_TELERUPTEUR_C1"]}, {"NotStarted"}})
 
--Extinction sur appui bouton poussoir, tache non demarree automatiquement
 local ExtinctionBP = GEA.add(id["LAMPE_TELERUPTEUR_C1"], 5*60, "Extinction allumage manuel #duration#", {{"turnOff", id["LAMPE_TELERUPTEUR_C1"]}, {"NotStarted"}})
 
-- Allumage sur detection
local allumsurdetect = GEA.add(id["DETEC_COULOIR1"], -1, "Déclenchement auto et restart compteur 1min", {{"Portable", 384},{"turnOn", id["LAMPE_TELERUPTEUR_C1"]},{"RestartTask", ExtinctionCouloir1}})
 
--Allumage manuel bouton poussoir
GEA.add(id["LAMPE_TELERUPTEUR_C1"], -1, "Allumage manuel couloir", {{"StopTask", allumsurdetect}, {"RestartTask", ExtinctionBP}})

En partant du principe que l'allumage par detection est la methode par defaut ;-)

 

Les taches ExtinctionCouloir1 et ExtinctionBP ne sont pas demarrees : NotStarted

 

Cas 1 lumière éteinte, allumage manuel par BP lumière éteinte

 

  --Appui BP

--> ligne allumage manuel bouton poussoir

--> Arret de la tache allumsurdetect, demarrage de la tache D'extinctionBP

--> si detection de mouvement, pas d'action je pense puisque la tache allumsurdetect est arretee

 

Cas 2 lumière éteinte, allumage par détection de mouvements

 

--Detection de mouvement

--> allumage par la ligne "allumage par detection"

--> relance de la tache ExtinctionCouloir1

-->pas de conflit avec ExtinctionBP, presence du NotStarted

--> si detection de mouvement, lumiere allumee, relance de la tache extinctioncouloir1

 

Me trompe-je encore ? Ca a l'air d'etre dissocie comme ceci non ?

 

 

ça ne marche qu'à  moitié ... J'ai l'impression que les fonctions "StopTask" / "RestartTask" ne fonctionnent pas correctement !!

Posté(e)

Bon, j'ai réussi à  90% à  faire ce que j'attendais.

Je suis passé par une variable globale à  trois valeurs

     GEA.add({id["DETEC_COULOIR1"],{"Global", "LAMPE_COULOIR1", "OFF"},AlarmOff}, -1, "Déclenchement auto", {{"Time", "Sunset-15>17:00", "Sunrise+15<08:30"},{"Global", "LAMPE_COULOIR1", "AUTO"},{"turnOn", id["LAMPE_TELERUPTEUR_C1"]},{"RestartTask", ExtinctionCouloir1}})
	 GEA.add({id["DETEC_COULOIR1"],{"Global", "LAMPE_COULOIR1", "AUTO"},AlarmOff}, -1, "Relance minuterie automatique", {{"Time", "Sunset-15>17:00", "Sunrise+15<08:30"},{"RestartTask", ExtinctionCouloir1}})
	 GEA.add({id["LAMPE_TELERUPTEUR_C1"],{"Global", "LAMPE_COULOIR1", "OFF"}}, -1, "Déclenchement manuel", {{"Global", "LAMPE_COULOIR1", "MANUEL"},{"StopTask", ExtinctionCouloir1}})
	 
	 local ExtinctionCouloir1 = GEA.add({id["LAMPE_TELERUPTEUR_C1"],{"Global", "LAMPE_COULOIR1", "AUTO"}},  1*60, "Extinction allumage sur detection #duration#", {{"turnOff", id["LAMPE_TELERUPTEUR_C1"]}})
	 GEA.add({id["LAMPE_TELERUPTEUR_C1"],{"Global", "LAMPE_COULOIR1", "MANUEL"}},  5*60, "Extinction allumage manuel #duration#", {{"turnOff", id["LAMPE_TELERUPTEUR_C1"]}})

	 GEA.add({{"Value", id["LAMPE_TELERUPTEUR_C1"],0}}, -1, "Couloir éteint", {{"Global", "LAMPE_COULOIR1", "OFF"}})

Cependant lorsque la lumiere est allumée via le détecteur et que l'on repasse devant le détecteur, j'ai bien la relance de la minuterie, mais j'ai l'impression que le temps se cumule, car la lumière s'éteind oui, mais pas dans la minute (delta des 30s de GEA)  juste aprés la dernière détection...   Je ne comprends pas trop ce détail là .

 

Si vous avez des idées, je suis preneur.

Bonne soirée et merci encore.

Posté(e)

pour une meilleur compréhension du code, rajoute des annotations audessus des ligne . ;)

 

exemple: 

----si  détection et global Lampe_couloir = off et alarmeoff  >> alors>>   entre sunset xxxx et xxxx  passer la golbal lampe_couloire  à   AUTO et allume lampe  et redémarre ExtinctionCouloir1  
GEA.add({id["DETEC_COULOIR1"],{"Global", "LAMPE_COULOIR1", "OFF"},AlarmOff}, -1, "Déclenchement auto", 
{{"Time", "Sunset-15>17:00", "Sunrise+15<08:30"},{"Global", "LAMPE_COULOIR1", "AUTO"},{"turnOn", id["LAMPE_TELERUPTEUR_C1"]},{"RestartTask", ExtinctionCouloir1}})
	 
Posté(e)

Bon, je résume pour les nouvelles fonctionnalités que j'aimerais voir sur mon portail:
J'ai un contact de FGBS pour la manÅ“uvre motorisation = Id 207 (quand la motorisation démarre, elle me colle le contact d'un relais), cela me permet, entre autre à  éclairer la zone du portail la nuit avec une variable "Jour_Nuit" et un autre pour l'état du portail = Id 61 (portail ouvert : 61=1 / portail fermé : 61=0).

Pour l'ouverture du portail (autrement qu'avec les télécommandes d'origine et les poussoirs sur les interphones), j'ai un module virtuel (bouton 1) qui commande un contact de mon IPX.
J'ai déjà  une ligne qui me ferme automatiquement la porte à  22h30

GEA.add(61, 10*60, "", {{"VirtualDevice", 169, 1},{"Time", "22:20", "07:00"},{"Repeat"}}) -- Fermer automatiquement le Portail à  22h30

Il reste ouvert la journée, si on ne le ferme pas à  la télécommande ou avec le module virtuel, mais quand, lors d'une fermeture, les cellules inversent la manÅ“uvre et le portail se rouvre, j'aimerais qu'il retente deux ou trois fermetures au cas où je serais déjà  trop éloigné pour le refaire manuellement à  la télécommande.
On en avait déjà  parlé ici (et les cinq pages suivantes):
http://www.domotique-fibaro.fr/index.php/topic/1211-support-gea/page-181
 L'idée de @jojo d'une variable "Portail" en l'incrémentant à  chaque tentative de re-fermeture avec une notif s'il ne s'est pas fermé ou s'il s'est bien fermé me convenait mais nous n'avions pas réussi à  le mettre en place.

GEA.add ({61, {"Global+", "Portail", 0}, {"Global-", "Portail", 5}}, 1*60, "Erreur fermeture portail => on réessaie", {{"VirtualDevice", 169,1}, {"Global", "Portail", "inc+"}, {"Time", "07:05", "22:15"}})
Posté(e) (modifié)

ce qui te manque c'est : si réouverture par les cellules

 

ce contact tu vas trouver su coté de cellule selon la marque de la cellule 

 

quelle est marque de la motorisation et des cellules ?

Modifié par 971jmd
Posté(e) (modifié)

je voie un code comme ça

---si portail toujour pas fermmer alors tout les 1mm relance la fermeture x5
GEA.add (si VALUE portail = 0   {"Global", "position_portail", "ouvert"}, 1*60, "Erreur fermeture portail => on réessaie", {{"VirtualDevice", 169,1}, {"Global", "Portail", "inc+"}, {"Time", "07:05", "22:15" }, {“MaxTimeâ€, 5} }})

---si portail toujour pas fermmer et relancé x5 envoie message
GEA.add ({"Global", "position_portail", "ouvert"}, {"Global-", "Portail", 5}}, 1*60, "Erreur fermeture portail ", )  {{“MaxTimeâ€, 5})

 GEA.add (si VALUE portail = 1  et {"Global", "position_portail", "ouvert"} }, 1*60, "OK portail Fermer", {"Global", "position_portail", "fermer"}) ----remise a zero



			
				


	Modifié  par 971jmd
	
	

			
		
Posté(e)

 Etat portail = Id 61

portail ouvert : 61=1 / portail fermé : 61=0

On était partit sur une variable de 0 à  5 qui s'incrémente toute seule (pour compter les défauts de fermeture).

Avec ce contact, je ne pense pas avoir besoin de variable pour l'état du portail.

Posté(e)

Salut messieurs,

 

@kioneoranga

Sur le 1er code tu recois les push ? lesquels alors ? Et je t'assure les Restart et Stop et autre fonctionnent chez moi ;-)

Sinon dans ton code avec les VG, ta declaration de local doit se trouver avant que tu appelles la variable avec le Restart. donc ton extinctionCouloir1 doit se trouver avant la ligne qui appelle le Restart...

 

C'est d'ailleurs peut-etre pour cela que le code ou les codes ne fonctionnent pas bien ;-) d'ou le 50% ou le 90 %

 

@Did, ah oui je l'avais oublié le portail ;-) on s'y remet ?

Posté(e)

Salut messieurs,

 

@kioneoranga

Sur le 1er code tu recois les push ? lesquels alors ? Et je t'assure les Restart et Stop et autre fonctionnent chez moi ;-)

Sinon dans ton code avec les VG, ta declaration de local doit se trouver avant que tu appelles la variable avec le Restart. donc ton extinctionCouloir1 doit se trouver avant la ligne qui appelle le Restart...

 

C'est d'ailleurs peut-etre pour cela que le code ou les codes ne fonctionnent pas bien ;-) d'ou le 50% ou le 90 %

 

@Did, ah oui je l'avais oublié le portail ;-) on s'y remet ?

 

@Pepite, les msg Push fonctionne parfaitement et le changement de variable aussi.

Lorsque lors de la première détection, j'ai bien le msg "Déclenchement auto" ensuite avec la VD qui passe à  AUTO.

si c'est juste sur un passage dans le couloir, 1min aprés le couloir s'éteint ==> Cool

 

Ensuite si le détecteur allume la lumière mais que je reste dans le couloir, j'ai le msg push suivant Relance minuterie automatique qui s'affiche, mais dans ce cas, la lumière reste allumer et ne s'éteint plus

Je pense que c'est lié au positionnement de la ligne "extinctionCouloir1"

 

En manuel, lorsque j'appui sur le bouton la VG passe à  "MANUEL" et dans ce cas, la lumière reste allumée 5 min et s'éteint comme attendue ==> Cool

 

Ensuite lorsque la lumière s'éteint quelque soit la source d'allumage la VG passe à  OFF et on peut repartir sur un cycle

 

1- si je me trompe pas  la ligne n 6  doit être placer a la ligne 1

 

Ok je prends note je vais réorganiser ce soir les lignes et passer le "local extinctionCouloir1 = ...."  en premier.

Je vous tiendrais informer si cela répond totalement ensuite à  mon attente.

Posté(e)

@Kio,

Oui ce que tu décris correspond bien au fait que GEA ne lise pas quand tu le souhaites ExtinctionCouloir. Il faut TOUJOURS que la declaration des variables soient avant le rappel de cette variable.

 

RAPPEL :

 1- GEA lit de maniere sequentielle, donc ligne par ligne

 2- tes lignes 1, 2 et 3 font un RestartTask de ExtinctionCouloir dont la declaration "local" est en ligne 6.

 3- GEA, en ligne 1, 2 et 3 ne connait donc pas ExtinctionCouloir puisqu'il arrive APRES en ligne 6

 

Ta ligne local ExtinctionCouloir = GEA.add(...) doit donc se trouver avant ta 1ere ligne.

 

GEA va lire ta ligne local  ExtinctionCouloir = .....donc va connaitre cette variable

puis ligne 1, 2 et 3 et va donc pouvoir rappeler la variable ExtinctionCouloir...

 

Bon la je t'avoue en me relisant, j'ai pas l'impression d'avoir ete clair ;-)

 

@Did :

Peut-etre comme ceci, ca se tente

--Portail ouvert et VG "Portail"differente de -1 (donc vrai pour O, 1, 2, 3...), incremente de 1 la variable max 3 fois
GEA.add({61, {"Global!", "Portail", "-1"}}, 1*60, "Erreur fermeture portail : Essai num #value[2]#", {{"VirtualDevice", 169,1}, {"Global", "Portail", "inc+"}, {"Time", "07:05", "22:15"}, {"Repeat"}, {"MaxTime", 3}})

--Portail fermé depuis 1 min, remise à  0 de la VG "Portail"
GEA.add(61, 1*60, "Portail fermé depuis #duration# : Mise à  0 de Portail", {{"Inverse", {"Global", "Portail", "0"}})
  • Upvote 1
Posté(e)

 Bonjour,

@971jmd,

Il n'y a pas de problème, seulement de nouvelles lignes à  créer mais c'est du chinois pour moi.

@pepite,

Oui, merci, j'ai testé tes lignes et il se ferme sans le demander (si je rouvre, rebelotte au bout d'une minute) mais la variable se met bien à  "0".

Si j'empêche la fermeture normale, pas de nouvelle tentative de re-fermeture, la variable se met à  "inc+".

Il ne fallait pas déclarer les limites de la variable?

{"Global+", "Portail", 0}, {"Global-", "Portail", 3}

Pour l'empêcher se se fermer systématiquement, je crois me souvenir qu'il faut se servir de l'Id207 (action volontaire de vouloir fermer).

Posté(e)

re,

 

J'ai fait une erreur de syntaxe, il manque une accolade derriere le {"Inverse"}.

la variable passe à  inc+, c'est deja qu'il essaie de refermer mais je crois me souvenir qu'il y avait un bug avec le inc+ amis je n'avais pas suivi je vais essayer de regarder.

 

heuuu, il doit me manquer quelque chose avec l'ID207. C'est ta telecommande ? alors me souviens plus de ce que tu souhaites exactement alors.

 

En fait tu souhaites :

 1- si portail ouvert avec la telecommande, qu'il reste ouvert ?

 2- si tu fermes manuellement le portail avec telecommande, et que tu empeches la fermeture par les cellules, qu'il retente de le refermer

 

reexplique-moi stp, j'ai du passer a cote de qqch. En simple ;-)

 

ton ID 207 te renvoie quoi ? 0 quand il ne fait rien et 1 des que la motorisation demarre, et ce que ce soit pour la fermeture du portail ou l'ouverture ?

Posté(e)

Essaye le code suivant

 

créée un variable : defaut_portail

--- value = 1  ouvert et   value = 0 fermer
---Ouverture
 GEA.add ({{"value", 61, "0"}, {"Global", "Portail", "0"}, {"Global", "defaut_portail", 0}, {"VirtualDevice", 169,1}}, -1, "fermeture du portail par VD" )

 ---Fermeture 
 GEA.add ({{"value", 61, "1"}, {"Global", "Portail", "0"}, {"Global", "defaut_portail", 0}, {"VirtualDevice", 169,1}}, -1, "Ouverture du portail par VD" ) 
 
                              ---******************* VERIF  OUVERTUR et FERMETUR ********************--
 ----Si value passe a 1  ouverture ok 
GEA.add ({"value", 61, "1"}, -1, "Portail Ouvert", {{"Global", "Portail", "0"}, {"Global", "defaut_portail", 0})
 
 ----Si value passe a 0  Fermeture ok
GEA.add ({"value", 61, "0"}, -1, "Portail Fermer", {{"Global", "Portail", "0"}, {"Global", "defaut_portail", 0})
 
 
                               ---******************* VERIF  FERMETURE SI PROBLEME ********************--


-- Verifi si value reste sur 1  plus 1mm alors réalise 5 tentative de fermetur 
  GEA.add ({{"value", 61, "1"}, 1*60, "DEFAUT PORTAIL a la fermeture", {{"VirtualDevice", 169,1}, {"Global", "defaut_portail", 1}, {"Global", "Portail", "inc+"}, {"MaxTime", 5}})

  ---si au bout de 5 tentative  portail toujour pas fermmer  envoie message
GEA.add ({{"Global+", "Portail", "0"}, {"Global", "defaut_portail", 1}}, 1*60, "Erreur fermeture portail ",  {{"Repeat"}, {"MaxTime", 3}})  

Posté(e)

 Oui, j'avais corrigé.

Pour le inc+, @HANSOLO nous avait aiguillé sur une piste, de mémoire, si les limites de la variable sont 0 et 5, l'incrémentation fonctionne entre 1 et 4 (il me semble).

http://www.domotique-fibaro.fr/index.php/topic/1211-support-gea/?p=77871

En fait, si on ne le ferme pas volontairement, il reste ouvert jusqu'à  22h30, donc pour surveiller si une fermeture se déroule correctement, on dispose de:

L'Id207 qui se déclenche systématiquement dès que la motorisation fonctionne (fermeture comme ouverture mais pas gênant car en ouverture, les cellules ne sont pas actives).

L'Id61 qui me renseigne si le portail est fermé: portail fermé : 61=0 et portail différent de fermé (donc ouvert, en tous les cas, pas fermé) : 61=1.

Lors d'une fermeture, les cellules inversent la manÅ“uvre et le portail se rouvre en cas de détection, j'aimerais qu'il retente deux ou trois fermetures au cas où je serais déjà  trop éloigné pour le refaire manuellement à  la télécommande (pour être sà»r qu'il sera bien fermé).

@971jmd, ça plante.

×
×
  • Créer...