Aller au contenu

Messages recommandés

Posté(e)

 Jamais entendu parler de tristable. Je crois que le terme est plus approprié à  un contact actionné électriquement (monostable: position relachée ou bistable: position maintenue). En actionnement manuel, il y a aussi trois positions Off/On/Off puis les inters rotatifs avec x position.

  • Upvote 1
Posté(e)

@Steven

 

J'ai fini par trouver, mai peut etre qu'il y a un moyen plus simple, mai sa fonctionne  

 

il y un probleme la ligne : GEA.add({"Value+", HALO , 1}, -1, "", {{"Value", 30}, {"MaxTime", 1}}   me bloque mon module 30% 

 

a la base je cherche plutôt : 30% entre 17H et 17H30   et  100%  de 17H30 a 6H

local ID_LED = 19
local HALO = 10 
local CENTRAL = 33
local ID_FDG = 68
 
-- Allume les led si elles sont éteinte
--GEA.add( id["PORTE"], 1*60, "La porte de la chambre est ouverte depuis plus de #duration#", {"Repeat", 2})
  
  
GEA.add({"SceneActivation", ID_FDG , 25}, -1, "FGP111 Plug Ventilateur  ", {{"turnOn", ID_LED}, {"Time", "18:19", "01:01"}, {"If", {{"Value-", ID_LED, 1}}}})

GEA.add({"SceneActivation", ID_FDG , 25}, -1, "Halo cuisine  ", {{"turnOn", HALO}, {"If", {{"Value-", HALO, 1}}}})
GEA.add({"Value+", HALO , 1}, -1, "", {{"Value", 30}})
  
  
  
  GEA.add({"SceneActivation", ID_FDG , 25}, -1, "FGS221 eclairage ext  ", {{"turnOn", CENTRAL}, {"If", {{"Value-", CENTRAL, 1}}}})
  
  -- Eteint les LED si elles sont allumées
GEA.add({"SceneActivation", ID_FDG , 24}, -1, "OFF VENTILATEUR", {{"turnOff", ID_LED }, {"If", {{"Value+", ID_LED, 0}}}})  

GEA.add({"SceneActivation", ID_FDG , 24}, -1, "OFF HALO", {{"turnOff", HALO }, {"If", {{"Value+", HALO, 0}}}})  
GEA.add({"Value+", HALO , 1}, -1, "", {{"Value", 30}})
  
GEA.add({"SceneActivation", ID_FDG , 24}, -1, "OFF EXT", {{"turnOff", CENTRAL }, {"If", {{"Value+", CENTRAL, 0}}}})  
  
Posté(e)

bonjour

 

est-ce-qu'il est possible de créée un bouton virtuel pouvant généré 3 clik  sur module ID 68 sachant que l' ID de l'entre S2 est 25  :P

Posté(e)

ou pourrais-je trouver un Dico sur la fonction des état suivant ?

 

 

*value
*isLight  
*batteryLevel
*dead
*parentID
*unit
*valueMeter
*valueSensor
*unitMeter
*unitSensor
*userDescription
*timeStamp
*color
*sceneActivation
*timeStamp
*open
*close
*setValue
*stop
Posté(e)

j'ai créer ce petit scripte pour  mieux voire ce qui ce passe 

 

je c'est pas si sa peut être utile  

--[[
%% properties

%% globals
--]]

--[[ 
%% properties 
value 68
%% globals 
--]]
local IDM = 68



fibaro:getValue(IDM, "value")
local name = fibaro:getValue(IDM, "value" )
fibaro:debug("Valeur en % "..name)



fibaro:getValue(IDM, "dead")
local name = fibaro:getValue(IDM, "dead" )
fibaro:debug("dead "..name)

fibaro:getValue(IDM, "parentID")
local name = fibaro:getValue(IDM, "parentID" )
fibaro:debug("parentID "..name)

fibaro:getValue(IDM, "unit")
local name = fibaro:getValue(IDM, "unit" )
fibaro:debug("unit "..name)

fibaro:getValue(IDM, "valueMeter")
local name = fibaro:getValue(IDM, "valueMeter" )
fibaro:debug("compteur kw "..name)

fibaro:getValue(IDM, "valueSensor")
local name = fibaro:getValue(IDM, "valueSensor" )
fibaro:debug("Consommation actuel "..name)

fibaro:getValue(IDM, "unitMeter")
local name = fibaro:getValue(IDM, "unitMeter" )
fibaro:debug("unitMeter "..name)

fibaro:getValue(IDM, "unitSensor")
local name = fibaro:getValue(IDM, "unitSensor" )
fibaro:debug("unitSensor "..name)

fibaro:getValue(IDM, "userDescription")
local name = fibaro:getValue(IDM, "userDescription" )
fibaro:debug("userDescription "..name)

fibaro:getValue(IDM, "timeStamp")
local name = fibaro:getValue(IDM, "timeStamp" )
fibaro:debug("timeStamp "..name)

fibaro:getValue(IDM, "dead")
local name = fibaro:getValue(IDM, "dead" )
fibaro:debug("dead "..name)


fibaro:getValue(IDM, "sceneActivation")
local name = fibaro:getValue(IDM, "sceneActivation" )
fibaro:debug("sceneActivation "..name)

fibaro:getValue(IDM, "timeStamp")
local name = fibaro:getValue(IDM, "timeStamp" )
fibaro:debug("timeStamp "..name)

fibaro:getValue(IDM, "open")
local name = fibaro:getValue(IDM, "open" )
fibaro:debug("open "..name)

fibaro:getValue(IDM, "close")
local name = fibaro:getValue(IDM, "close" )
fibaro:debug("close "..name)

fibaro:getValue(IDM, "setValue")
local name = fibaro:getValue(IDM, "setValue" )
fibaro:debug("setValue "..name)

fibaro:getValue(IDM, "stop")
local name = fibaro:getValue(IDM, "stop" )
fibaro:debug("stop "..name)
Posté(e)

Bonsoiiiirrrr :-)

 

Comme certains le savent, je cherche(ait) une méthode WAF pour éteindre les lampes automatiquement

Je vois beaucoup de scripts GEA style après 10 minutes on éteint dans le WC si lampe allumée ... le jour ou ma femme reste 12 minutes et que la lumière coupe sans prévenir ça va ch**r (oui je sais, normalement on est là  pour ça ;-) )

On avait trouvé une solution avec double click pour relancer le timer.... ma femme pourquoi pas mais les invités, BabySit, Femme de ménage, etc.  je me vois mal leur expliquer "oui, alors dans la toilette, après 10 minutes faites un double click... et dans la salle de bain là  par contre vous faites....

Bref, je pense avoir enfin trouvé :-D

Le principe est qu'après un certain temps, la lampe est fortement dimmée pour signaler que ça va couper.

Soit le script est relancé automatiquement via détection de mouvement, soit par un appuy long sur le dimmer. (plus de double click)

 

Exemples:

script WC: action sur le dimer (up) et/ou détection de mouvement relance le script

------------------ WC ----------------------- 
    -- Allumage à  95% dès que détection mouvement
  GEA.add( id["DETECTEUR_AEON"], -1, "",{{"Function", function() fibaro:call(id["LAMPE_WC"], "setValue", "95") end}})
    -- On dimme la lampe automatiquement après 2 mn et on l'éteint après 3mn si pas de mouvement ou si la lampe à  été remontée a plus de 76%
local malampewc = GEA.add({"Value+", id["LAMPE_WC"],89}, 2*60, "Dim 15 CAR 120sec à  plus de 89%",{{"Value", 15},{"Repeat"}}   )
local malampewcdim = GEA.add({"Value-", id["LAMPE_WC"],55}, 3*60, "TurnOff apres 180s à  moins de 55%",{{"turnOff"},{"If", {{"Value+", id["LAMPE_WC"], 1}}}},{"Repeat"})
    -- Relance des tâches en cas de détection
  GEA.add(id["DETECTEUR_AEON"], -1, "Tasks Started", {{"RestartTask", malampewc},{"RestartTask", malampewcdim}})
--------------------------------------------

script Salle à  Manger: action sur le dimer (up) et/ou détection de mouvement relance le script

Il y a une variante pour le jour et une pour la nuit

-------------------SAM------------------------
    -- période NUIT entre sunset et sunrise
local nuitsam = {"Time", "Sunset", "Sunrise"}
    -- Allumage à  75% dès que détection mouvement
  GEA.add( id["DETECTEUR_SAM"], -1, "",{ nuitsam ,{"Function", function() fibaro:call(id["LAMPE_SAM"], "setValue", "75") end}})
    -- On dimme la lampe automatiquement après 5mn et on l'éteint après 3mn si pas de mouvement ou si la lampe à  été remontée a plus de 70%
local malampesam = GEA.add({"Value+", id["LAMPE_SAM"],70}, 5*60, "Dim à  40% CAR 5 min à  plus de 70%",{ nuitsam ,{"Value", 40},{"Repeat"}})
local malampesamdim = GEA.add({"Value-", id["LAMPE_SAM"],45}, 3*60,"apres 3 min à  moins de 45% set à  75% then TurnOff ",{nuitsam,{"Function", function() fibaro:call(id["LAMPE_SAM"], "setValue", "75") end},{"Function", function() fibaro:sleep(300) end},{"turnOff"},{"If", {{"Value+", id["LAMPE_SAM"], 1}}}},{"Repeat"})
    -- Relance des tâches en cas de détection
  GEA.add(id["DETECTEUR_SAM"], -1, "Tasks Started", {  nuitsam ,  {"RestartTask", malampesam},   {"RestartTask", malampesamdim}   }) 
---------------------
    -- Période JOUR entre sunrise et sunset
local joursam = {"Time", "Sunrise", "Sunset"}
    -- On dimme la lampe automatiquement après 60mn et on l'éteint après 70mn si pas d'action manuelle
local malampesam2 = GEA.add(   {"Value+", id["LAMPE_SAM"],70}, 60*60, "Dim à  40% CAR 60min à  plus de 70%",{ joursam ,{"Value", 40},{"Repeat"}}   )
local malampesam2dim =  GEA.add(  {"Value-", id["LAMPE_SAM"],45}, 10*60,"TurnOff apres 10 min à  moins de 45%",{joursam,{"Function", function() fibaro:call(id["LAMPE_SAM"], "setValue", "75") end},{"Function", function() fibaro:sleep(300) end},{"turnOff"},{"If", {{"Value+", id["LAMPE_SAM"], 1}}}},{"Repeat"})
    -- Une action manuelle relance tout
  GEA.add( id["LAMPE_SAM"], -1, "", {{"Inverse"}, {"RestartTask", malampesam2}, {"RestartTask", malampesam2dim}})
-----------------------------------------------   

Tout ça fonctionne très bien, il y a probablement moyen d'optimiser, mais pour certaines choses je "cale".

Exemple qui fonctionne:

{nuitsam ,
      {"Function", function() fibaro:call(id["LAMPE_SAM"], "setValue", "75") end},
      {"Function", function() fibaro:sleep(300) end},
      {"turnOff"},
 {"If", {{"Value+", id["LAMPE_SAM"], 1}}}
},

Alors que ceci ne fonctionne pas...

 

{nuitsam ,
      {"Value", "75"},
      {"Function", function() fibaro:sleep(300) end},
      {"turnOff"},
 {"If", {{"Value+", id["LAMPE_SAM"], 1}}}
},

Steven, Une idée ? Tu vois des améliorations possibles ?

Posté(e)

j'ai un petit souci 

 

Après 3 clik deux condition pour allumer mon HALO

 

condition 1: {"Time", "08:00", "17:30"}     ça fonction nikel

condition 2: si la valeur de  mon HALo est inférieur à  50%, allumer HALO a 40%    ça ne fonction pas

local VAL =  {"Function", function() fibaro:call(id["HALO"], "setValue-", "50") end}
  
GEA.add({"SceneActivation", ID_FDG , 25}, -1, "",{{"Time", "08:00", "17:30"}, VAL,{"Function", function() fibaro:call(id["HALO"], "setValue", "40") end}})

Posté(e)

@971jmd

local siMoinsDeCinquante=  {"If", {{"Value-", id["HALO"], 50}}}
GEA.add({"SceneActivation", ID_FDG , 25}, -1, "",{{"Time", "08:00", "17:30"}, siMoinsDeCinquante, {"Value", id["HALO"], 40}}})

.

-----------

.

@sebcbien

 

Chez moi le {"Value", 75} ou {"Value", <id>, 75} fonctionne très bien.

 

Essaie en précisant l'ID soit {"Value", id["LAMPE_SAM"], 75} pour essayer car il se peux que je n'arrive pas détecter correctement l'ID que tu souhaite utilisé.

Posté(e)

@971jmd

"a la base je cherche plutôt : 30% entre 17H et 17H30   et  100%  de 17H30 a 6H"

GEA.add({"Value+", HALO , 0}, -1, "", {{"Value", 30}, {"Time", "17:00", "17:30"}})
GEA.add({"Value+", HALO , 0}, -1, "", {{"Value", 100}, {"Time", "17:30", "06:00"}})

.

"est-ce-qu'il est possible de créée un bouton virtuel pouvant généré 3 clik  sur module ID 68 sachant que l' ID de l'entre S2 est 25"

Je ne crois pas que cela soit réalisable :(

 

 

Dico :

 

*value

Valeur du module 0 ou 1 pour un interrupteur .. entre 0 et 100 pour un dimmer, autre par exemple 21.3 pour un thermomètre.

*isLight  
True si le module gère un éclairage
*batteryLevel
Le niveau de la batterie (pile)
*dead
True si le module est notifié comme mort (ne répond plus)
*parentID
L'identifiant du parent. Par exemple pour un thermomètre connecté sur un détecteur de porte le parentID du thermomètre est l'ID du détecteur de porte.
*unit
L'unité utilisée liée à  la "value" par exemple "C" pour Celsius, "W" pour Watt, ...
*valueMeter
Pour une prise avec indication de consommation, la valeur du cumulé
*valueSensor
Pour une prise avec indication  de consommation, la valeur instantanée
*unitMeter
L'unité utilisée pour la valeur cumulée par exemple "Kwh"
*unitSensor
L'unité utilisée pour la valeur instantanée par exemple "W"
*userDescription
.. aucune idée ...
*timeStamp
Un timeStamp est un tampon contenant une heure par exemple l'heure de la dernière modification
*color
La couleur d'un Wall Plug ou d'un module RGBW
*sceneActivation
La dernière activation par scène (paramètre 41)
*open
Pour des volets roulants ... Ouvir ... permet d'ouvrir un volet
*close
Pour des volets roulants ... Fermer ... permet de fermer un volet
*setValue
Permet de modifier la valeur "value" précisée plus haut
*stop
Pour des volets roulants ... Arrêter... permet d'arrèter la course d'un volet
  • Upvote 1
Posté(e)

@sebcbien

 

Chez moi le {"Value", 75} ou {"Value", <id>, 75} fonctionne très bien.

 

Essaie en précisant l'ID soit {"Value", id["LAMPE_SAM"], 75} pour essayer car il se peux que je n'arrive pas détecter correctement l'ID que tu souhaite utilisé.

 

Yep, en précisant l'id, ça marche nickel ! merci :-)

 

code définitif ici:

  • Upvote 1
Posté(e)

je souhaite créé deux Boutons Virtuel me permettant de changer la variante 25

 

mai je voie pas trop comment :P  

 

un bouton +

un bouton -

local siSupfer25 =  {"If", {{"Value+", id["TEMP"], 25}}} 
Posté(e)

Il n'y a aucun moyen de faire discuter GEA avec un module virtuel ... a moins que le module virtuel modifie une Variable Globale et que GEA lise cette même variable.

 

Mais tout cela ne devrait pas vraiment ce trouver dans ce topique. Il devrait même sà»rement y avoir déjà  des exemples sur ce forum.

 

Sinon, hésite pas à  poser la question (mais pas sur GEA) et je regarderais à  temps perdu (ce qui normalement n'est pas très lent) :)

  • Upvote 1
Posté(e)

Salut Steven,

 

Pour la gestion des volets, je compte reprendre ce code : 

-- Gestion ouverture volets
-- Définition variable
local absent = {"Global", "Absence", "0"}	-- si "Absence" = "0"
local travail = {"Global", "repos", "0"}	-- si "repos" = "0"
local repos = {"Global", "repos", "1"}		-- si "repos" = "1"
 
-- Ouverture en semaine
GEA.add(..........., {{"If", {absent}}, {"Days", "Weekdays"}, {"Time", "Sunrise>07:30", "Sunset"}})
 
-- Ouverture en week-end
GEA.add(..........., {{"If", {absent}}, {"Days", "Weekend"}, {"Time", "Sunrise>08:30", "Sunset"}})
 
-- Ouverture en repos
GEA.add(..........., {{"If", {absent, repos}}})

J'ai au total 6 volets. Dois je déclarer un GEA.add pour chaque volet ?

 

Pour les variables, on peut utiliser celle de ton VD jourchomé ?

Posté(e)

Bonjour Steven,

 

Mon projet tourne maintenant comme une horloge et j'attend encore un peu avant de passer à  la version 4.xx.

GEA.add({"Sensor-", id["BUR_ORDI_CONSO"], 50}, 5*60, "Arret Ordinateurs #value#", {{"Days","Weekday"}, {"Time", "18:00", "9:00"}, {"turnOff", id["BUR_ORDI_SW1"]},{"If", {{"Value+", id["BUR_ORDI_SW1"], 0}}}}) 
GEA.add({"Sensor-", id["BUR_ORDI_CONSO"], 50}, 5*60, "Arret Ordinateurs #value#", {{"Days","Weekend"}, {"turnOff", id["BUR_ORDI_SW1"]},{"If", {{"Value+", id["BUR_ORDI_SW1"], 0}}}})  

Sur le code ci-dessus, qui fonctionne très bien habituellement j'ai remarqué la chose suivante :

Sur la partie des jours de la semaine, j'ai noté de 18h00 à  9h00. Quand la consommation, lors du passage à  18h et à  200w par exemple et qu'il passe ensuite à  15w, après 18h le script capte bien le sensor et fait le travail.

Par contre si la consommation est à  15w avant 18 et qu'elle ne bouge plus par la suite, alors l’événement n'est pas vu car j'imagine qu'il n'y a pas de changement et donc la règle n'est pas revu.

Je précise que le module envoie son rapport toutes les 30s.

Comment puis je faire pour qu'à  partir de 18h dans mon cas, le système reprenne la consommation même si elle est stable.

 

Merci à  toi.

Amicalement

Séb

Invité chris6783
Posté(e)

Bonjour

Tu peux appliquer {repeat} àla tâche pour forcer son évaluation même sans changement ou alors la redémarrer à18h via restartTask. Mais peut être que Steven aura une autre alternative àproposer

Posté(e)

Bonjour chris6783,

 

En fait je dois créer une nouvelle tache vers 18h pour relancer à  ce moment précis la réévaluation de la première. J'imagine que cette solution est plus "économique" en process que la première solution repeat qui devra ce reproduire même quand la condition n'a pas changer.

 

Merci pour ta réponse rapide.

 

Séb

Posté(e)

Salut Steven,

 

Pour la gestion des volets, je compte reprendre ce code : 

-- Gestion ouverture volets
-- Définition variable
local absent = {"Global", "Absence", "0"}	-- si "Absence" = "0"
local travail = {"Global", "repos", "0"}	-- si "repos" = "0"
local repos = {"Global", "repos", "1"}		-- si "repos" = "1"
 
-- Ouverture en semaine
GEA.add(..........., {{"If", {absent}}, {"Days", "Weekdays"}, {"Time", "Sunrise>07:30", "Sunset"}})
 
-- Ouverture en week-end
GEA.add(..........., {{"If", {absent}}, {"Days", "Weekend"}, {"Time", "Sunrise>08:30", "Sunset"}})
 
-- Ouverture en repos
GEA.add(..........., {{"If", {absent, repos}}})

J'ai au total 6 volets. Dois je déclarer un GEA.add pour chaque volet ?

 

Pour les variables, on peut utiliser celle de ton VD jourchomé ?

 

Oui tu peux reprendre la variable JourChome de HANSOLO :)

 

Je ferais ainsi à  ta place :

local ouvrirTous = {"Open", 100},{"Open", 101},{"Open", 102},{"Open", 103},{"Open", 104},{"Open", 105}
--...
GEA.add(true, 30, "Ouverture des volets à  #time#", {{"If", {absent, repos}}, ouvrirTous})

@SebDel

 

Quand on précise une tranche d'heure ... la 1ère chose que vérifie GEA est justement cette heure. Donc tant qu'il n'est pas 18h00 ta ligne est ignorée. Ensuite à  18h00 elle va vérifier le sensor. Dans ton cas, ce dernier doit être à  moins de 50W pendant 5 minutes ET la prise allumée. Comme tu as mis 5 minutes (5*60) GEA ne vérifie pas s'il y a eu un changement ou pas .. il vérifie point c'est tout. Donc si le PC consomme moins de 50W, à  18h05 il devrait s'éteindre.

 

En bref, cela devrait toujours fonctionner et je ne vois pas ou pourrais être le soucis.   :(

Posté(e)

je souhaite qu'on m'explique la fonction variable globale.

 

Mon HALO allume bien en actionnant mes lampes (CENTRAL ou Mur)  mai ne s'éteins pas 20s  

--[[
%% autostart
%% properties
32 value
33 value
35 value
30 value
61 value
10 value
14 value
68 sceneActivation

%% globals
A globals
B globals
--]]

GEA.add( id["CENTRAL"], -1, "S1", {{"Global", "SourceLumiere", "A"}, {"turnOn", id["HALO"]}})
GEA.add( id["MUR"], -1, "S2", {{"Global", "SourceLumiere", "B"}, {"turnOn", id["HALO"]}})
 
GEA.add( id["HALO"], 20, "S1OFF", {{"turnOff"}, {"If",{{"Global", "SourceLumiere", "A"}}}})
                                             
GEA.add( id["HALO"], 30, "S2OFF", {{"turnOff"}, {"If",{{"Global", "SourceLumiere", "B"}}}})

Posté(e)

Bonjour Steven,

 

En fait ce qui se passe, c'est que si la prise est allumée et que la consommation est inférieur à  50W avant 18h et qu'après rien ne change alors la prise ne s'arrête pas.

Par contre si à  18h15, j'allume la machine qui va consommer 200W et que je l'arrête à  18h20, alors à  18h25 la prise sera bien coupée.

Ce que j'ai fait, c'est que j'ai ajouté un restarttask de 18h00 à  18h02 sur la tache précédente. Je vais voir si ca améliore ma situation mais, comme tu me le précise aussi, je n'y crois guère.

 

Pour les tests, je suis un peu embêté aujourd'hui, car ce matin, la box m'a reseté tous les modules et les AEON ne répondent plus...

Comme c'est avec eux que les consommations remontent, je ne suis pas très avancé pour mon problème.

Je pense que le disfonctionnement ne vient pas de GEA mais plutôt d'un problème de remonté de conso avec la box.

 

Je reviens vers toi dès que je peux faire les tests...

Merci.

Séb

Posté(e)

@971jmd
Premièrement, tu peux enlever tes ligne 15 et 16 qui ne servent àrien du tout.
Deuxièmement, as-tu créer la variable globale "SourceLumiere" depuis ton panneau des variables
Troisièment, tu utilises un ton qui fait penser que tout t'es dû. Saches que seul les ennuis sont gratuits et accessible aisément. Si tu souhaites que l'on aide ou assiste je pense qu'un "s'il vous plaît" ou "merci" de temps en temps serait un bon début.

  • Upvote 5
×
×
  • Créer...