Aller au contenu

Recommended Posts

Sur HC2 je ne sais plus trop, mais une piste, tu as peut être mal déclaré ta variable GEA.portables dans la fonction config()

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut Lazer,

la variable est Ok car je l'utilise pour détecter si le wall plug du congélateur est out.

Je dois avoir une erreur de syntaxe que je ne vois pas :15:

Partager ce message


Lien à poster
Partager sur d’autres sites

Essaye comme cela :

GEA.add( { id["Bridge_Nuki"]}, 10080*60, "Nuki redémarrée",{{"turnOff", id["Bridge_Nuki"], 1*60}, {"Portable", id["Portable_JP"]}} )

Envoyé de mon RMX1993 en utilisant Tapatalk

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci Dragoniacs, ça fonctionne :60:.

Mais je ne comprends pas, j'ai appliqué le syntaxe GEA V6 mise à dispo par Pepite. Il y a des règles qui s'appliquent lors de l'enchènement des actions?

Partager ce message


Lien à poster
Partager sur d’autres sites

Il manquait des accolades et le message vers le portable n'était pas au bon endroit

Envoyé de mon RMX1993 en utilisant Tapatalk

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui, il me manquait une accolade (j'ai commandé un chien B)).

Par contre tu as mis des accolades autour de { id["Bridge_Nuki"]}   alors que sur le manuel de syntaxe c'est des parenthèses: 
- <ID Module> : id["Module"]
    CONDITIONS : 
        GEA.add( id["TV"]), 30, "", {ACTIONS} )         - Si la TV est allumée depuis 30 secondes \\

 

Il faut toujours des accolades, ou il y a des exceptions?

 

Pourquoi tu as dissocié le message à afficher par le push de {"Portable", id["Portable_JP"]}}?

 

Désolé de toutes ces questions, mais c'est pour gagner en "indépendance" (c'est pas gagné ;)).

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a une heure, lamparo a dit :

GEA.add( id["TV"]), 30, "", {ACTIONS} )         

ça doit être une coquille dans la doc alors, car cette syntaxe est clairement impossible. La parenthèse ferme la ligne, alors que tu as encore des arguments derrière...

Je te conseille d'utiliser un éditeur comme Notepad++, avec la colorisation syntaxique, quand tu mets le curseur sur une parenthèse/crochet/accolade, tu vois où elle s'ouvre/se ferme.

Ainsi on détecte 90% des erreurs et questions posées sur ce topic (et qui ne sont pas évidentes à voir sur le forum du coup)

  • Thanks 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Le message a envoyer par push est le message qu'on affiche derrière le temps de déclenchement. Pas besoin de le placer ailleurs.

Envoyé de mon RMX1993 en utilisant Tapatalk

  • Thanks 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut à tous, je vais implémenter GEA sur ma HC3 et pour tirer profit au max d'une bonne expérience je voudrais commencer par un cas d'école concret, ce qui me permettra de comprendre la gymnastique à faire pour maitriser la bête (enfin j'espère)

J'ai ce scénario qui régit mon allumage automatique de mon entrée lorsque mon motion sensor détecte un mouvement, reste allumé tant qu'il y a du mouvement et s'éteint quand plus aucun mouvement n'est détecté pendant plus de x temps.

avec en plus une vérification sur l'heure  pour n'allumer que le strict minimum quand c'est en pleine nuit.

Voici mon code :

--[[
%% properties
624 value
626 value
275 value
%% globals
--]]
local currentDate = os.date("*t");
local currentTime = string.format("%02d", currentDate.hour)..":".. string.format("%02d",currentDate.min);
local Sunset = fibaro:getValue(1,'sunsetHour')
local Sunrise = fibaro:getValue(1,'sunriseHour')
local luminosite = tonumber(fibaro:getValue(626, "value"))
--local mouvement1 = tonumber(fibaro:getValue(404, "value"))
local mouvement2 = tonumber(fibaro:getValue(624, "value"))
--local mouvement1 = tonumber(fibaro:getValue(275, "value"))
local seuilluminosite = 60
fibaro:debug("Il est "..currentTime)
fibaro:debug("Levé du Soleil : "..Sunrise)
fibaro:debug("Couché du Soleil : "..Sunset)
fibaro:debug("Luminosité : "..luminosite)
fibaro:debug("Mouvement : "..mouvement2)
 -- test si on est dans la fourchette horaire sinon STOP

if (currentTime > "00:00" and currentTime < "07:00") or (currentTime >"09:30" and currentTime < "16:30")
then fibaro:debug("Stop")
fibaro:abort()
end
 
local scenenum = fibaro:countScenes();
fibaro:debug("Nombre de scènes : "..scenenum);
 
if scenenum >= 5 then fibaro:abort();
 end
-- test si première instance de la scène. on allume et stop
if (scenenum >= 1 and luminosite <= seuilluminosite) and ((mouvement2 >=1)) then
  fibaro:call(245, "setBrightness", "100")
  fibaro:call(252, "setBrightness", "100")
  fibaro:call(245, "setColor", "255", "255", "255","0")
  fibaro:call(252, "setColor", "255", "255", "255","0")
  fibaro:call(306, "setBrightness", "40")
  fibaro:call(363 ,"turnOn")
  fibaro:call(29, "turnOn")
  fibaro:call(171, "turnOn")
  fibaro:call(694, "turnOn")   
    fibaro:abort();
end
 -- ici pour les passages suivants devant le fgms
 -- après 60sec sans mouvement on éteint
setTimeout(function()
 local delayedCheck0 = false;
-- local tempDeviceState0, deviceLastModification0 = fibaro:get(404, "value")
 local tempDeviceState1, deviceLastModification1 = fibaro:get(624, "value")
 --local tempsafecouloir = os.time() - deviceLastModification0
 local tempsafeescalier = os.time() - deviceLastModification1   
--    fibaro:debug("Temps écoulé Couloir : "..(tempsafecouloir/60).." min")
 fibaro:debug("Temps écoulé Escalier : "..(tempsafeescalier/60).." min")
 if (tempsafeescalier >= 45)
 then delayedCheck0 = true;
 end
 if ( delayedCheck0 == true )
 then fibaro:call(29, "turnOff")
      fibaro:call(171, "turnOff")
      fibaro:call(363, "turnOff")
      fibaro:call(694, "turnOff") 
      
  --     fibaro:call(245, "startProgram","3")
    --   fibaro:call(252, "startProgram","3")
      -- fibaro:call(245, "setBrightness","15")
    --  fibaro:call(252, "setBrightness","15")
     --  fibaro:call(245, "startProgram","3")
--fibaro:call(252, "startProgram","3")
   setTimeout(function()
    fibaro:call(245, "turnOff")
    fibaro:call(252, "turnOff")
    fibaro:call(306, "turnOff")
     end,60000)
 end
 end,90000)

ça pourrait donner quoi en GEA ce genre de scénario  ?

 

Merci pour votre aide

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai déplacé ton message au bon endroit, je suis sympa car je ne l'ai pas supprimé sans préavis comme expliqué sur l'autre topic ;)

 

Mais euh, désolé là je n'ai aucune motivation pour me lancer dans la lecture de ta longue scène....

 

GEA est un moteur d'exécution de règles.

1 ligne = 1 règle.

Chaque règle comprend 1 ou plusieurs conditions, et 1 ou plusieurs actions.

L'ensemble des règles sont parcourues, testée, et exécutées le cas échant, toutes les 30 secondes.


Ce n'est pas du tout la même approche qu'une grosse scène complexe qui fait papa maman à boire et à manger.

Cela dit GEA fait aussi papa maman à boire et à manger mais avec une approche totalement différente.

 

Le mieux à faire est de te lancer avec des règles simples, que tu étofferas au fur et à mesure, et tu trouveras facilement de l'aide pour te dépanner au cas par cas.

 

Après tout n'est pas faisable avec GEA (ou alors ça serait trop complexe et pas adapté à mon avis).
Exemple concret, j'ai une scène réveil douceur qui effectue plusieurs actions pendant plusieurs minutes. Ben là déjà rien qu'en disant ça, on comprend que GEA n'est pas adapté, il vaut mieux se faire une petite scène à coté (que GEA peut déclencher)

Idem, j'ai une scène alarme, qui est autonome.

 

Bon cela dit, sauf si quelqu'un est motivé pour lire ta scène en entier... bon courage :)

 

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 14 heures, Lazer a dit :

J'ai déplacé ton message au bon endroit, je suis sympa car je ne l'ai pas supprimé sans préavis comme expliqué sur l'autre topic ;)

 

Mais euh, désolé là je n'ai aucune motivation pour me lancer dans la lecture de ta longue scène....

 

GEA est un moteur d'exécution de règles.

1 ligne = 1 règle.

Chaque règle comprend 1 ou plusieurs conditions, et 1 ou plusieurs actions.

L'ensemble des règles sont parcourues, testée, et exécutées le cas échant, toutes les 30 secondes.


Ce n'est pas du tout la même approche qu'une grosse scène complexe qui fait papa maman à boire et à manger.

Cela dit GEA fait aussi papa maman à boire et à manger mais avec une approche totalement différente.

 

Le mieux à faire est de te lancer avec des règles simples, que tu étofferas au fur et à mesure, et tu trouveras facilement de l'aide pour te dépanner au cas par cas.

 

Après tout n'est pas faisable avec GEA (ou alors ça serait trop complexe et pas adapté à mon avis).
Exemple concret, j'ai une scène réveil douceur qui effectue plusieurs actions pendant plusieurs minutes. Ben là déjà rien qu'en disant ça, on comprend que GEA n'est pas adapté, il vaut mieux se faire une petite scène à coté (que GEA peut déclencher)

Idem, j'ai une scène alarme, qui est autonome.

 

Bon cela dit, sauf si quelqu'un est motivé pour lire ta scène en entier... bon courage :)

 

Merci @Lazer de ne pas m'avoir banni !!!

Ouais je vais tenter de transcrire ma scène en LUA... mêmle si je ne suis pas un foudre de guerre en prog....

Merci

je vais regarder si je trouve mon bonheur dans le topic

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Heu... un peu comme @Lazer, pas vraiment de courage pour tout me pogner...

 

	GEA.add( {{"Value", id["DET_ALLEE"], 1}, {"(Time)", "Sunset-5", "Sunrise+5"}}, -1, "", {"turnOn", {id["SPOT_ALLEE"], id["ECL_TERRA"], id["ECL_Guirelande"]}, 5*60}, "Détection allée -> Eclairage allée et terrasse pendant 5 minutes")

Ce code ne correspond pas tout a fait a ce que tu veux car là, sur une détection, je lance 5 minutes d'éclairage. Pas certain que lorsque le capteur soit réactivé pendant les 5 minutes ça relance tout...

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 3 minutes, gorn a dit :

Heu... un peu comme @Lazer, pas vraiment de courage pour tout me pogner...

 


	GEA.add( {{"Value", id["DET_ALLEE"], 1}, {"(Time)", "Sunset-5", "Sunrise+5"}}, -1, "", {"turnOn", {id["SPOT_ALLEE"], id["ECL_TERRA"], id["ECL_Guirelande"]}, 5*60}, "Détection allée -> Eclairage allée et terrasse pendant 5 minutes")

Ce code ne correspond pas tout a fait a ce que tu veux car là, sur une détection, je lance 5 minutes d'éclairage. Pas certain que lorsque le capteur soit réactivé pendant les 5 minutes ça relance tout...

Merci @gorn mais comme disait justement @Lazer suis pas certain que ça puisse faire ce que je veux..... je vais regarder autrement. 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Si ça peut aider, pensez à allez voir les 2 Showroom GEA, il y a pas mal d'exemples pratiques dont on peut s'inspirer :

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

salut tout le monde 

 

J'essaye de réaliser la fonction suivante:  au coucher du soleil active la variable couchesoleil = true

 

GEA.add( {"Time""Sunset-15"} , 30,    "", {{"VariableCache""couchesoleil"true}})
 
Mais visiblement ça fonctionne pas
 
Merci d'avance pour votre aide

Partager ce message


Lien à poster
Partager sur d’autres sites

Il te manque le 2nd argument dans la condition "Time"

J'ai pour habitude d'ajouter 1 minute, ce qui laisse une plage assez large de 2 minutes, donc au dessus de l'intervalle GEA de 30 secondes.... ce qui permet d'absorber les éventuels retards ou freeze temporaire de la box.

Donc ça donne :

{"Time", "Sunset-15", "Sunset-14"}

 

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

As tu pensé a déclarer ta variable au lancement de GEA ?

 

Via cette ligne :

GEA.add( true , 0,    "", {{"VariableCache", "couchesoleil", false}})  

 

 

Envoyé de mon RMX1993 en utilisant Tapatalk

 

 

 

 

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

ok merci a vous, je teste quand je rentre 

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

Je découperai cette ligne en deux :

- la première qui déclenche l'allumage de la lumière :

GEA.add( {{"Value", id["DET_ALLEE"], 1}, {"(Time)", "Sunset-5", "Sunrise+5"}}, -1, "Détection allée -> Eclairage allée et terrasse pendant 5 minutes", {"turnOn", {id["SPOT_ALLEE"], id["ECL_TERRA"], id["ECL_Guirelande"]})

- la deuxième qui éteint la lumière :

GEA.add( {{"(Time)", "Sunset-5", "Sunrise+5"},{id["SPOT_ALLEE"], id["ECL_TERRA"], id["ECL_Guirelande"]}}, 5*60, "Détection allée -> Extinction Eclairage allée et terrasse après 5 minutes")

Voilà à quelques choses près ce que ça pourrait donner.

 

Nasp

Partager ce message


Lien à poster
Partager sur d’autres sites

j'ai fait comme ça :

 

---Au couche soleil
GEA.add({"Time", "Sunset-15", "Sunset-14"} , 30,    "", {{"VariableCache", "couchesoleil", false} })

--- Au Lever soleil
GEA.add({"Time", "Sunrise-15", "Sunrise-14"} , 30,    "", {{"VariableCache", "couchesoleil", true} })


--- quand le soleil se lève impossibilité d'allumer la lampe juqu'au coucher
GEA.add( {{id["LP_FACADE_EXT"]}, {"VariableCache", "couchesoleil", true}}   , -1,    "", {{"turnOff", id["LP_FACADE_EXT"]}})

---au lever du soleil éteindre la lampe
GEA.add( {"VariableCache", "couchesoleil", true}   , -1,    "", {{"turnOff", id["LP_FACADE_EXT"]}})

 

 

 

Modifié par 971jmd

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut a tous 

petit question dans le QuickApp GEA sous HC3 ou je place le SMARTLED ?

 Merci

--[[
%% properties
%% globals
SMARTLED
--]]


Partager ce message


Lien à poster
Partager sur d’autres sites

Nul part, comme indiqué sur le tuto (que tu vas pouvoir relire...) :

Citation

il n'y a plus besoin (et de toute façon il n'est pas possible) de définir des triggers pour le déclenchement

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 28/10/2021 à 17:57, nasp a dit :

Bonjour,

 

Je découperai cette ligne en deux :

- la première qui déclenche l'allumage de la lumière :


GEA.add( {{"Value", id["DET_ALLEE"], 1}, {"(Time)", "Sunset-5", "Sunrise+5"}}, -1, "Détection allée -> Eclairage allée et terrasse pendant 5 minutes", {"turnOn", {id["SPOT_ALLEE"], id["ECL_TERRA"], id["ECL_Guirelande"]})

- la deuxième qui éteint la lumière :


GEA.add( {{"(Time)", "Sunset-5", "Sunrise+5"},{id["SPOT_ALLEE"], id["ECL_TERRA"], id["ECL_Guirelande"]}}, 5*60, "Détection allée -> Extinction Eclairage allée et terrasse après 5 minutes")

 Voilà à quelques choses près ce que ça pourrait donner.

 

Nasp

Bonjour @nasp,

 

Je me permets de revenir sur cette exemple car j'aurai une petite question:

 

J'ai fais ceci

-- Allume la lumière de l'allée si det garage = on, après le couché et avant levé du soleil
    GEA.add({{"Value", id["Garage_DetMouv"], 1}, {"Time", "Sunset-5", "Sunrise+5"}}, -1, "", {"turnOn", id["Eclairage_Allee"]})
-- Eteint la lumière de l'allée au bout de 5min
    GEA.add({"Value", id["Garage_DetMouv"], 0}, 5*60, "", {"turnOff",id["Eclairage_Allee"]})

Le GEA tourne normalement mais ne fait pas l'action :( 
Je "suppose" que c'est la valeur du détécteur de mouvement que j'ai au garage qui n'est pas "bonne".

c'est un détécteur Aeotec ZW100 MultiSensor6 - Capteur 6 en 1 (mouvements, température, humidité, luminosité, vibrations, UV) Z-Wave+.

 

Ma question :

Comment connaitre les valeurs qu'il retourne en cas de détection de mouvement (Breached) quand il est en mode détéction de mouvement.

 

En vous remerciant

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci @Lazer

j'ai deja commence par mettre a jour mon GEA

j'ai une question si possible

 

GEA.add({"Dates""31/10"}, 30"",  {"httpGet""http://192.168.1.188/Notification?msg="..urlencode("petit test").. "&lum=15&type=FIX&txt=notif&flash=1"}) 
 
la syntaxe et bonne ?
merci

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 12 heures, Manu31 a dit :

c'est un détécteur Aeotec ZW100 MultiSensor6 - Capteur 6 en 1

L'Id du capteur est-elle bien déclarée dans l'entête?

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

×