Aller au contenu

Messages recommandés

Posté(e)

bonjour messieurs,

 

@hansolo, tu as tout a fait raison pour les extinctions avec detecteur et ca fait une ligne de moins

je n'ai pas de detecteur de porte mais si tu fermes la porte et que tu es dans ton cellier, la lumiere s eteint ?

pour ton entree, pourquoi ne pas eteindre sur la duree de lum_couloir ? c 'est pour moi ca donne un autre point de vue et c'st bon pour la tete ;-)

C'est pour ça que je précise tout dépend de la configuration des pièces, mon cellier est trop petit (et trop remplit) pour pouvoir entrer dedans et fermer la porte. (c'est un peu le défaut des demandes sur le forum, on a rarement le contexte)

 

Pour mon entrée, le fait d'utiliser la durée sur la variable entrée me permet de bien dissocier le fonctionnement avec le détecteur d'ouverture du fonctionnement avec les boutons poussoir. Si j’éteins en fonction de la durée d'allumage, les lumières s'éteindraient au bout de la durée définie même en utilisant les BP, ce n'est pas ce que je veux.

 

Mon cahier des charges:

 - allumer la lumière dés l'ouverture de la porte (pratique quand on rentre).

 - éteindre au bout d'un moment (donc si je sors et que j'oublie d'éteindre, la lumière s'éteindra au bout des 5 mn)

 - gestion normale par les BP.

 - si j'ouvre la porte et discute plus de 5 mn, la lumière s'éteind mais pas grave j'ai un BP juste à  coté (pour les rares cas)

Posté(e)

cela fonctionne bien mieux avec le bon nom de module

maintenant j'essai de mettre la variable globale Jour_Nuit a jour pour tester et si ca marche elle sera a nuit pour les declenchement

 

pouvez vous controler ce code c'est celui de hansolo car pas d'erreure dans le debug mais il ne fonctionne pas


GEA.add( {{id["DETECTEUR_SCELLIER"], {"Global", "Jour_Nuit", "Jour"}}}, -1, "", {{"turnOn", id["LUM_SCELLIER_"]}})
--Extinction lumière cellier si pas de mvt durant 3 mn
GEA.add( id["DETECTEUR_SCELLIER"], 40, "", {{"turnOff", id["LUM_SCELLIER_"]}})


je vous en remercie d'avance

Posté(e) (modifié)
GEA.add( {{id["DETECTEUR_SCELLIER"]}, {"Global", "Jour_Nuit", "Jour"}}, -1, "", {{"turnOn", id["LUM_SCELLIER_"]}})
--Extinction lumière cellier si pas de mvt durant 3 mn
GEA.add( id["DETECTEUR_SCELLIER"], 40, "", {{"Inverse"},{"turnOff", id["LUM_SCELLIER_"]}})

Une accolade mal placée dans le première ligne (il en manquait une dans le code que j'ai proposé, j'ai corrigé)

Et oubli de l'option Inverse dans la seconde ligne. (qui inverse la valeur de la première condition)

Modifié par HANSOLO
Posté(e)

merci a toi je teste

donct cela doit etre correcte

GEA.add( {{id["DETECTEUR_SCELLIER"]}, {"Global", "Jour_Nuit", "Jour"}}, -1, "", {{"turnOn", id["LUM_SCELLIER_"]}})
--Extinction lumière cellier si pas de mvt durant 3 mn
GEA.add( id["DETECTEUR_SCELLIER"], 40, "", {{"turnOff", id["LUM_SCELLIER_"]}})

Posté(e)

le code si dessus post de 12h44 ne fonctionne pas a l'allumage mais  fonctionne sur l'extinction seulement

et celui la fonctionne sur les 2 mais il me faut la variable globale Jour_Nuit

 -- LUMIERES 1 ok fonctionne
GEA.add( id["DETECTEUR_SCELLIER"], -1, "", {{"turnOn", id["LUM_SCELLIER_"]}})
 
-- eteindre la lampe plus de detection pdt 1 mins
GEA.add( id["DETECTEUR_SCELLIER"], 1*60, "", {{"Inverse"}, {"turnOff", id["LUM_SCELLIER_"]}})

Posté(e)

@Hansolo,

 

oui tout compris, c'est vrai que devrait avoir plus d'infos sur le cahier des charges ;-) ca nous permettrait a tous de faire ou de proposer le code le plus adequat ;-)

 

Avce GEA tu peux gerer tout de meme l'allumage manuel avec les BP en faisant un StopTask en déclenchement instantané puis un RestartTask dans la ligne d'allumage.

GEA.add(id["lumiere"], -1, "", {{"StopTask", variable}})

@petermoto

 

comme ceci, attention à  la syntaxe tu mets trop d'accolade ;-) et pour tester il ne faut pas modifier la variable manuellement, cela ne fonctionne pas.

  • -- LUMIERES 1 ok fonctionne
    
    GEA.add({id["DETECTEUR_SCELLIER"], {"Global", "Jour_Nuit", "Jour"}},  -1, "", {{"turnOn", id["LUM_SCELLIER_"]}})
    
    -- eteindre la lampe plus de detection pdt 1 mins
    GEA.add( id["DETECTEUR_SCELLIER"], 1*60, "", {{"Inverse"}, {"turnOff", id["LUM_SCELLIER_"]}})
Posté(e)

@ pepite

merci teste en cour ............. :2:

 

pour les variables je savais merci du rapelle

 

hansolo me disait d'enlever le "Inverse" (qui inverse la valeur de la première condition) si j'ai bien compris cela inverse le turnOn de la 1er ligne?

comfirmes tu qu'il faut l'enlever

 

c'est pas évident de comprendre le schema de fonctionnement de Gea surtout la syntax d'accolade, parenthèse, ect mais c'est quand meme un peut plus facile que le lua

Posté(e)

désoler @hansolo 

 

au temps pour moi je n'avais pas compris  que tu expliquer la fonction du inverse

 

@PEPITE ET @HANSOLO

 

Alors resultat ca marche tres bien  :13: :13: :60:

merci a vous deux pour tout ce temps passer a m'aidé

 

j'ai plus cas viré mes 8 scènes qui gére mes lumières avec détecteur de mouvements

 

et a continué d'explorer le potentiel de GEA

Posté(e)

Bonjour aux experts

Je reviens vers vous avec une question précédemment posée voici quelques mois mais que je n'arrive toujours pas à  faire fonctionner comme je souhaiterais

 

Je souhaite que mes lumières de couloir s'allume pour 1 minute si le détecteur voit une personne

Cependant je voudrais que les lumières restent allumées lorsque j'appuie sur l'un des boutons poussoir (5min).

Si j'appuie sur un bouton, les lumières s'allument mais lorsque l'oeil détecte une personne je suis parti pour un compte à  rebourt de 1 min et non pour 5 min!

 

Le module de commande de mes lumières est monté comme un télérupteur

 

Voici les lignes de commande que j'essaies

(Remarque j'ai mis des msg push pour identifier le mécanisme)

	 local ExtinctionCouloir1 = GEA.add({id["LAMPE_TELERUPTEUR_C1"],AutoLampeCouloir1},  1*60, "Execution extinction couloir", {{"Portable", 384},{"turnOff", id["LAMPE_TELERUPTEUR_C1"]}})
       GEA.add({id["DETEC_COULOIR1"],AutoLampeCouloir1,AlarmOff}, -1, "Déclenchement auto et restart compteur 1min", {{"Portable", 384},{"turnOn", id["LAMPE_TELERUPTEUR_C1"]},{"RestartTask", ExtinctionCouloir1}})
     	 GEA.add({id["LAMPE_TELERUPTEUR_C1"],{"Value", id["LAMPE_TELERUPTEUR_C1"],1}},  5*60, "Arret au bout de 5min", {{"Portable", 384},{"Global", "LAMPE_COULOIR1", "AUTO"},{"turnOff"}})

Merci de votre aide.

Posté(e)

Il faut pouvoir différencier l'allumage de la lampe par le détecteur de mouvement de par le bouton poussoir.

 

Par les sceneactivation (si le module gérant les lampes le permet, toujours une histoire de contexte), tu peux mettre à   jour une variable locale qui te permettrait d'inhiber la partie détection et extinction au bout d'1 mn, et une dernière ligne pour éteindre au bout de 5 mn et qui remet la variable locale à  sa valeur d'origine.

 

(Et sans RetartTask mais un Inverse pour la partie extinction si pas de mvt)

Posté(e)

L'autre solution est de stocker dans le dimmer l'état manuel ou automatique.
Par exemple: 99% si manuel. 98% si automatique.
Ensuite dans gea utiliser pour chaque méthode une condition (99% ou 98%) pour exécuter un compte àrebours d'une minute ou de 5 minutes.
Va voir dans le showroom gea (dans ma signature) j'utilise ça pour ma Sam et pour mon garage

Sent from my Note4

Posté(e)

Me suis amusé à  mixer @Hansolo et ce que j'aurais essayé en 2 methodes hihi

1 avec ce que fait @Hansolo, (et je sens que je vais devenir adepte) et ce que j'aurais fait avec les restart et les variables de @Hansolo ;-)

1 autre que j'aurais tenté sans variable

 

et ce que fait @sebcbien est pas de mon niveau, peux pas traduire ;-)

--Methode 1 mixte @HAnsolo et moi ;-)

-- Exinction allumage sur detection
local ExtinctionCouloir1 = GEA.add(id["LAMPE_TELERUPTEUR_C1"],  1*60, "Extinction couloir sur detection #duration#", {{"Portable", 384},{"turnOff", id["LAMPE_TELERUPTEUR_C1"]}})

-- Allumage sur detection
GEA.add(id["DETEC_COULOIR1"], -1, "Déclenchement auto et restart compteur 1min", {{"Portable", 384},{"turnOn", id["LAMPE_TELERUPTEUR_C1"]},{"RestartTask", ExtinctionCouloir1}})

--Extinction allumage manuel
GEA.add({"Global", "LAMPE_COULOIR1", "MANUEL"}, 5*60, "Extinction allumage manuel", {{"Global", "LAMPE_COULOIR1", "OFF"}, {"turnOff", id["LAMPE_TELERUPTEUR_C1"]}})

--Allumage manuel bouton poussoir
GEA.add(id["LAMPE_TELERUPTEUR_C1"], -1, "Allumage manuel", {{"StopTask", ExtinctionCouloir1}, {"Global", "LAMPE_COULOIR1", "MANUEL"}})
--Methode 2
-- Exinction allumage sur detection, tache non demarree
local ExtinctionCouloir1 = GEA.add(id["LAMPE_TELERUPTEUR_C1"],  1*60, "Extinction couloir sur detection #duration#", {{"Portable", 384},{"turnOff", id["LAMPE_TELERUPTEUR_C1"]}, {"NotStarted"}})

-- Allumage sur detection
GEA.add(id["DETEC_COULOIR1"], -1, "Déclenchement auto et restart compteur 1min", {{"Portable", 384},{"turnOn", id["LAMPE_TELERUPTEUR_C1"]},{"RestartTask", ExtinctionCouloir1}})

--Extinction sur appui bouton poussoir
GEA.add(id["LAMPE_TELERUPTEUR_C1"], 5*60, "Extinction allumage manuel #duration#", {{"turnOff", id["LAMPE_TELERUPTEUR_C1"]}})
Posté(e) (modifié)

bonjour a tous

 

voici un petit code que j'ai réaliser permettant de dissocier l’interrupteur du détecteur 

 

ligne 4: la détection allume la lampe et active la variable AUTO a 1 et active lampetimer...


local lampetimer = GEA.add({{"Global", "auto", "1"}, {"Value", id["LAMPE_SALON"], 1}} , 1*60, "", {{"turnOff", id["LAMPE_SALON"]}, {"Global", "auto", "0"}}) 
 
GEA.add({"Global", "jour_nuit", "1"}, id["DETECTEUR_MOUVE"],  -1, "", {{"turnOn", id["LAMPE_SALON"]}, {"Global", "auto", "1"}, {"RestartTask", lampetimer}})

Modifié par 971jmd
Posté(e)

Tu as testé? Pour moi dans la méthode 1 la dernière ligne va se déclencher lors de l'allumage manuel ou via détection de mouvement. Ta condition est "la lampe est allumée?" Pas "j'ai appuyé sur le BP?"

Posté(e)

oui mai j'ai oublier de rajouter la global Jour_nuit

 

si  jour_nuit = 1  active détection 

si  jour_nuit = 0  pas de détection  

Posté(e)

Idem pour moi, enfin ce que j'en comprends, dans ta 2eme ligne c'est le passage de ta variable Jour_Nuit à1 qui est ton declencheur et non ton detecteur ..

Il faut que tu les inverses ;-)

Posté(e)

@pepite: pas de fausse modestie stp ! ;-)

 

Voici le code pour ma lampe de garage, avec explications:

Ici pour prévenir de l'extinction imminente, je fais clignoter les lampes une fois (pour ne pas me retrouver dans le noir pendant que je suis occupé à  forer dans un coin)

Je les fait clignoter au lieu de les dimmer car ce sont les tubes TL que je ne peux pas dimmer (ça ne se voit pas ou ça commence à  déconner à  basses valeurs).

Mon script du showroom sam, lui dimme les lampes pour prévenir de l'extinction imminente

A vérifier, mais en relisant un peu, le repeat de la ligne 20 me semble inutile vu que c'est un -1 (mais ça peut être utile avec un oeil fibaro pour le biind time)

-----------------LAMPE GARAGE------------------
  -- surveillance Lampe Garage:
  GEA.add(id2["GARAGE"], 180*60, "La Lampe du garage est Allumée depuis #duration# à  #time#", {{"MaxTime", 8},{"Repeat"}})
-- Cas d'utilisation et besoins: 
     -- Besoin de longues durées d'allumage via action manuelle (2h45).
-- Via interupteur manuel LAMPE_GARAGE
	-- Allumage de la lumière manuellement (dimmer à  99%, via double click ou dernière valeur d'extinction)
  	-- On clignotte la lampe après 1h30 et on set le dimer à  97% (passe la main au script d'extinction et de détection de mouvement)
    -- Dans tous les cas, après un clignottement, Un double click ramènera le dimmer à  99% et relancerait un cycle de 1h30
  -- Garage était 2h45 à  99%, set 97% (Gea Mvt Garage)
  GEA.add({{"Value", id2["GARAGE"],99},estNotHouse_Manuel}, 165*60, "Garage 1H30 à  99%",{{"turnOff", id2["GARAGE"]},{"Function", function() fibaro:sleep(700) end},{"Value", id2["GARAGE"], 98}})
-- Allumage Via DETECTEUR Mouvement GARAGE
    -- Allumage à  98% dès que détection mouvement. La 2e condition permet de ne pas renvoyer d'ordre d'allumage inutile
  GEA.add({id2["GARAGE_MVT"],{"Value", id2["GARAGE"], 0},estNotHouse_Manuel}, -1, "",{{"Value", id2["GARAGE"], 98}})
  GEA.add({id2["GARAGE_MVT"],{"Value", id2["GARAGE"],97},estNotHouse_Manuel}, -1, "",{{"Value", id2["GARAGE"], 98}})
    -- On clignotte la lampe après 7mn et on la passe à  97% ensuite on l'éteint après 5mn si toujours pas de mouvement
  local malampegarage = GEA.add({{"Value", id2["GARAGE"],98},estNotHouse_Manuel},7*60, "",{{"turnOff", id2["GARAGE"]},{"Function", function() fibaro:sleep(700) end},{"Value", id2["GARAGE"], 97}})
    -- A chaque detection de mouvement, reset du décompte de la tâche ci-dessus
  GEA.add({id2["GARAGE_MVT"],{"Value", id2["GARAGE"],98},estNotHouse_Manuel}, -1, "", {{"RestartTask", malampegarage},{"repeat"}})
  -- Extinction Garage
  GEA.add({{"Value", id2["GARAGE"],97},estNotHouse_Manuel}, 5*60, "",{{"Value", id2["GARAGE"], 99},{"Function", function() fibaro:sleep(500) end},{"turnOff", id2["GARAGE"]}})
----------------------------------------------- 
Posté(e)
GEA.add({"Global", "jour_nuit", "1"}, id["DETECTEUR_MOUVE"],  -1, "", {{"turnOn", id["LAMPE_SALON"]}, {"Global", "auto", "1"}, {"RestartTask", lampetimer}})

Si   jour_nuit = 1 et détection    alors  On lampe salon et passer la variable auto à   1  et lance l varibla local  lampetimer

si   jour_nuit = 0 pas de détection 

local lampetimer = GEA.add({{"Global", "auto", "1"}, {"Value", id["LAMPE_SALON"], 1}} , 1*60, "", {{"turnOff", id["LAMPE_SALON"]}, {"Global", "auto", "0"}}) 

si   variable auto = 1 et value de lampe salon = 1  alors  éteindre dans 1mm  la lampe et repasser la variable auto  à   0

Posté(e)

pas de modestie @sebcbien, je t'assure que ce que tu codes est encore complique pour moi, mais ca vient ;-)

 

@971jmd : je pense encore que tu devrais inverser ton detecteur et ta variable globale et j'ai l'impression qu'il manque des accolades pour tes conditions

As tu testé ? Ca fonctionne ? peut-etre que je me trompe et qu'il est possible d'ecrire comme cela.

GEA.add({id["DETECTEUR_MOUVE"], {"Global", "jour_nuit", "1"}}, -1, "", ....)
Posté(e)

voila c nikel tout fonctionne tester plusieur fois

local lampetimer = GEA.add({{"Global", "auto", "1"}, {"Value", id["LAMPE_SALON"], 1}} , 1*60, "", {{"turnOff", id["LAMPE_SALON"]}, {"Global", "auto", "0"}}) 
 
-----local nuit = {"Global", "jour_nuit", "1"} 

GEA.add({id["DETECTEUR_MOUVE"], {"Global", "jour_nuit", "1"}}, -1 , "", {{"turnOn", id["LAMPE_SALON"]}, {"Global", "auto", "1"}, {"RestartTask", lampetimer}})

Posté(e)

et non un autre scène ma induit en erreur 

 

qui me dire a quoi comment fonctionne    RestarTask :(

 

 

o1", "1"}, {"RestartTask", lampetimer}})  lance une seul foi, je comprend pas 

×
×
  • Créer...