Aller au contenu

Recommended Posts

pepite, hansolo, chris6783 , NIKKO et jojo

merci je reviendrais vers vous pour vous dire si ca fonctionne 

 

merci encore

s :74:  :74:  :74:  :74: 

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut les copains,

 

Je plante sur GEA et pas moyen de trouver mon erreur....

 

Je souhaite allumer un halogène du salon lorsque ma variable Présence_Maison = Présent et la variable JOUR_NUIT=NUIT 

 

Je rentre le code mais ça beug...

local condition = {"If",{{"Global", "Presence_Maison", "Present"},{"Global", "JOUR_NUIT", "NUIT"}}}
GEA.add({{"turnOn",id["HALOGENE_SEJOUR_2"]}, "", condition})

Merci pour votre aide.

Partager ce message


Lien à poster
Partager sur d’autres sites

@yohan:

 

Les conditions doivent être en premier suivies de la tempo, push et option. De plus on évite le if:

-- Si VG Presence_Maison sur Present ET VG JOUR_NUIT sur NUIT depuis 30s, allumer allogène
GEA.add({{"Global", "Presence_Maison", "Present"},{"Global", "JOUR_NUIT", "NUIT"}}, 30 , "" , {{"turnOn",id["HALOGENE_SEJOUR_2"]}})

-- Si VG Presence_Maison sur Present ET VG JOUR_NUIT sur NUIT en declenchement immédiat, allumer allogène
-- Mettre Presence_Maison dans entete
GEA.add({{"Global", "Presence_Maison", "Present"},{"Global", "JOUR_NUIT", "NUIT"}}, -1 , "" , {{"turnOn",id["HALOGENE_SEJOUR_2"]}})

Nicolas

Partager ce message


Lien à poster
Partager sur d’autres sites

Ok merci Nico ;)

 

Peut on rajouter une autre condition qui est d'allumer l'halogène si mon FGMS me détecte également ?

Partager ce message


Lien à poster
Partager sur d’autres sites

En déclenchement immédiat cela donnerait par exemple ceci:

-- Sur detection par FGMS ET VG Presence_Maison sur Present ET VG JOUR_NUIT sur NUIT , allumer allogène
-- Mettre l'id du fgms dans l'entete; Ex 90 value
local fgms = 90
GEA.add({fgms,{"Global", "Presence_Maison", "Present"},{"Global", "JOUR_NUIT", "NUIT"}}, -1 , "" , {{"turnOn",id["HALOGENE_SEJOUR_2"]}})

Partager ce message


Lien à poster
Partager sur d’autres sites

Au top ça fonctionne parfaitement :) merci nico ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

pas nico, mais nikko :P

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut syris,

 

Je ne comprends pas bien ce que tu veux faire, a partir de BPS.

 - Tu veux lancer une scene "TV" à  partir de GEA qui mettrait le programme 1 du RGB et et qui eteint le SPOT SALON ?

 

Tu veux récuperer l'etat du program RGB, 1 en l'occurrence ?

Qu'y a t il derriere ton SCENARIO1 ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut pepite,

 

En fait, c'est tout béta, mais pas facile a expliquer, j'ai une ipx avec un bouton poussoir.

Quand j'appuie sur ce bp, ma variable passe a 1, sauf que quand je le relache elle repasse a 0. Je veux donc avec GEA, qu'a une mise a 1 de la variable sa lance qqch, et a une autre remise a 1 (on rappuie) sa l'éteint.

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut @Syris,

 

Désolé pour le retard, je n'ai plus de web, en plein demenagement ;-)

Alors si je comprends bien,

 

1-VG à  1 : on fait qqch

2- VG à  0 quand tu relaches le BP

3- VG de nouveau à  1 : on eteint la meme chose que le 1 ?

 

Peut-etre faut-il passer par une autre variable lorsque ta Vg passe à  1 pour l'extinction, devrait pas y avoir de souci particuliers ;-)

Du genre :

 mets "variableà 1" dans l'entete sous %%globals

-- Allumage Lampe
local variablea1 = {"Global", "variable", "1"}
GEA.add(variableà 1, -1, "Allume", {{"turnOn", id["LAMPE"]}, {"Global", "toto", 1}})

-- Extinction
GEA.add({variablea1, {"Global", "toto", "1"}}, -1, "Extinction lampe", {{"turnOff', id["LAMPE"]}, {"Global", "toto", "0"}})

A tester, je ne sais pas si c'est tres clair ;-)

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Ou plus simple sans utiliser de VG.

 

mettre en condition l'état du module commandé.

 

en 2 lignes

Si la VG est à  1 (en immédiat) et que le module est allumé alors extinction du module

Si la VG est à  1 (en immédiat) et que le module est éteint alors allumage du module

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

SAlut HANSOLO,

 

Oui, mais je crois avoir compris que c'etait un IPX derriere et pas un module. Si j'ai bien compris. ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui l'IPX est la commande pas le module à  commander (toujours pareil si la demande est bien comprise...)

 

Si un des BP de l'IPX est actionné la VG scenario1 passe à  1 (si j'ai bien compris) et les modules à  piloter un RGB et un module pilotant un spot (si j'ai bien compris)

Partager ce message


Lien à poster
Partager sur d’autres sites

Dans ce cas oui tu as raison ;-). j'ai lu trop vite, ou tres peu le code qu'il a donné hihih

 

au fait, je vois que tu as un ODIKOKEYS, t'en es content ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Pour ma serrure OKIDOKEYS, globalement oui j'en suis satisfait.

 

Les points négatif

J'attends  la disponibilité de la smart gateway (module WIFI) depuis 1 an (annoncé début 2016....)

Sur IOS le mode mains libre qui fonctionne bien 40% du temps sur un Iphone 6S et 90% sur un ipod dernière génération.

La consommation de pile plutôt élevée (4-5 mois) mais certainement du fait de la serrure mécanique (trop dur à  actionner?)

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci Pepite, effectivement en jouant avec une autre variable, sa devrait le faire. (Sa me semble logique en fait la mnt :P)

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci pour le retour @Hansolo,

 

J'hésite encore.

 

Désolé pour le HS les modos.

 

@Syris,

De rien, mais ce que propose @Hansolo est pas mal aussi, ca t'evite la Variable supp.

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut,

 

J’ai 4 éclairages extérieurs pilotés indépendamment que je souhaite asservir à  l'ouverture de mon portail.

Mon idée était d’allumer l’éclairage pendant 5 minutes à  l’ouverture du portail.

Mes lignes GEA sont fonctionnelles jusque-là .

Cependant, il m’arrive de laisser certain éclairage allumé pendant des soirées pour l’aspect déco extérieur.

Lorsque j’ouvre mon portail avec un (ou plusieurs) éclairage actif, toutes mes lampe ce coupent après les 5min.

Y-a-t-il un moyen de mémoriser l’état de ces 4 lampes pour laisser allumer celles qui l’étaient avant l’ouverture et éteindre celles éteinte ?

Partager ce message


Lien à poster
Partager sur d’autres sites

oui, c'est bien possible, mais pour le faire si tard c'est Nikko, moi ce sera pour demain

Partager ce message


Lien à poster
Partager sur d’autres sites

@banzai861

 

 

Alors pas sà»r du fonctionnement car pas testé, mais en gros tu ne dois éteindre au bout de 5 minutes que les lampes allumées par ouverture de portail c'est ça?

-- Pour chaque éclairage extinction au bout de 5 minutes. Règle non active au début de GEA
-- Utilisation de StopTask car de mémoire bug dans MaxTime
-- GestionA = GEA.add(id["ECL_A"], 5*60 , "" , {{"turnOff",id["ECL_A"]},{"NotStarted"},{"MaxTime",1}})
GestionA = GEA.add(id["ECL_A"], 5*60 , "" , {{"turnOff",id["ECL_A"]},{"NotStarted"},{"StopTask",GestionA}})
GestionB = GEA.add(id["ECL_B"], 5*60 , "" , {{"turnOff",id["ECL_B"]},{"NotStarted"},{"StopTask",GestionB}})
GestionC = GEA.add(id["ECL_C"], 5*60 , "" , {{"turnOff",id["ECL_C"]},{"NotStarted"},{"StopTask",GestionC}})
GestionD = GEA.add(id["ECL_D"], 5*60 , "" , {{"turnOff",id["ECL_D"]},{"NotStarted"},{"StopTask",GestionD}})

-- A l'ouverture du portail si ECL éteint alors on l'allume et relance la tache d'extinction
-- Ainsi seuls les éclairage qui étaient éteints avant ouveture s'éteindrons au bout de 5 minutes.
GEA.add({id["PORTAIL"],{"Value",id["ECL_A"],0}}, -1 , "" , {{"turnOn",id["ECL_A"]},{"RestartTask",GestionA}})
GEA.add({id["PORTAIL"],{"Value",id["ECL_B"],0}}, -1 , "" , {{"turnOn",id["ECL_B"]},{"RestartTask",GestionB}})
GEA.add({id["PORTAIL"],{"Value",id["ECL_C"],0}}, -1 , "" , {{"turnOn",id["ECL_C"]},{"RestartTask",GestionC}})
GEA.add({id["PORTAIL"],{"Value",id["ECL_D"],0}}, -1 , "" , {{"turnOn",id["ECL_D"]},{"RestartTask",GestionD}})

C'est tordu et lourd, je l'avoue (en plus de ne peut-être pas fonctionner)......

 

Nicolas

Partager ce message


Lien à poster
Partager sur d’autres sites

BOnjour messieurs,

 

PAs sur du besoin du StopTask dans les declarations Gestion... LE "Notstarted" devrait suffire je crois.

A tester aussi

Possible aussi avec des variables mises à  jour en fonction de l'ouverture du portail je pense.

Partager ce message


Lien à poster
Partager sur d’autres sites

C'est bizarre, dans cette config de test, je reçois les deux notifications (lancement et stop) en même tps mais le rgb se lance et s'arrête bien? ( 2 notifs pr on (lancement et stop) et 2 notifs pour off (lancement et stop)) 

Que voyez vous de spécial ?

local SCENARIO1     = {"Global", "IPX_IN8", "1"} -- BP pour scenario numéro 1
local SCENE1ACTIVE = {"Global", "SCENE1", "1"}

GEA.add(SCENARIO1, -1, "Lancement Scénario TV", {{"Program", id["RGB"], 1},{"turnOff",id["SPOT_SALON"]}, {"Global", "SCENE1", 1}})
GEA.add({SCENARIO1, SCENE1ACTIVE}, -1, "Stop Scénario TV", {{"turnOff",id["RGB"]}, {"Global", "SCENE1", 0}})

Partager ce message


Lien à poster
Partager sur d’autres sites

@pepite:

Le notstarted et le stop task font la même chose, à  la différence que le notstarted est réalisé avant le contrôle des conditions lors de la création des tables alors que le stoptask n'est exécuté que si la condition est vraie et périodiquement.

Dans mes lignes, le not started est là  pour empécher à  la lampe de s'éteindre au bout de 5 minutes tant que le portail n'a pas été ouvert au moins 1 fois (donc restarttask).

Il (le notstarted)  ne s'applique que lors de la sauvegarde lors de la création des table/actions par GEA. Par la suite il n'est plus controlé. => La tache deviendra active uniquement au premier restarttask


Si tu supprimes le stoptask et laisses juste le notstarted, tant que le restart task de la tache n'aura pas été executée cette ligne ne se produira pas; normal.

Mais dès lors où ton portail aura été ouvert au moins 1 fois (avec lumière éteint), la tache devient active et le reste; Donc ensuite La seule condition qui rentrera en jeu pour éteindre au bout de 5 minutes sera que la lampe soit allumée.

 

Avec le stoptask, une fois la lumière éteinte la tache n'est plus controlée et tu peux allumer manuellement la lampe sans craindre qu'elle ne s'éteigne au bout de 5 minutes.

C'est en tout cas comme ça que je comprends les choses quand je relis le code de GEA

 

@banzai861: L'utilisation de stoptask/restarstak/notstarted suppose l'existence de la VG "GEA_Tasks"

 

Nicolas

  • Upvote 3

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci Nikko,

 

cela fonctionne nickel.

pour comprendre un peu mieux, quand sur la ligne 12 on lance {"RestartTask",GestionA}

cela mémorise une sorte de variable local?

je pense que sur la ligne 5 {"StopTask",GestionA} passe à  0 cette variable mémorisé.

mais je ne comprend pas comment GEA fais la distinction entre l'allumage par le portail ou par une autre commande

Partager ce message


Lien à poster
Partager sur d’autres sites

Cela ne mémorise pas une variable locale, mais en fait chaque Ligne GEA possède un identifiant. Un Stoptask/notstarted suspend l'identifiant; en clair cette ligne GEA n'est plus contrôlée tant qu'elle n'est pas marquée de nouveau active par un restarttask.

 

La ligne d'arret de lampe ne devient active qu'a partir du moment où tu ouvres ton portail ET que la dite lumière est éteinte alors que si tu allumes ta lampe à  la main, il n'y a aucune action GEA qui dit que tu dois démarre l'action.

 

D'ailleurs si tu éteins ta lumière à  la main moins de 5 minutes après l'allumage par le portail, tu auras comme conséquence qu'au prochain allumage de lampe, cette dernière s'éteindra au bout de 5 minutes, car rien n'auras déclenché le stop task. Il faudrait en plus ajouter un truc du genre:

GEA.add(id["ECL_A"], 30 , "" , {{"inverse"},{"StopTask",GestionA}})
--ou en instantané:
GEA.add(id["ECL_A"], -1 , "" , {{"inverse"},{"StopTask",GestionA}})

Attention avec le -1 si tu es dans la dernière version du HC2, où le nombre d'instances max de scènes peut être ajusté, il faudrait dans ton cas mettre au moins à  5

 

Nicolas

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

×