Aller au contenu

Messages recommandés

Posté(e)
Il y a 2 heures, fredokl a dit :

Salut. Je cherche à savoir si GEA permet plusieurs valeurs sur une variable dans les conditions.

Je ne pense pas comme ça, mais de cette façon ce sera bon :

 

GEA.add({"Or"
  ,{"Global","NameVG", "1"}
  ,{"Global","NameVG", "2"}
  ,{"Global","NameVG", "3"}
  ,{"Global","NameVG", "4"}
  ,{"Global","NameVG", "5"}}
  , 30 , "", {"Global","AutreVG","Résultat à afficher"})

 

  • Thanks 1
Posté(e)

Bonjour,

 

@MAM78 Merci pour l'initiative du post sur les options personnelles. bonne idée. :13:

 

@fredokl tu ne peux pas, soit tu utilises la solution de @MAM78 avec Or, qui est tout à fait exacte, soit tu "triches" comme ceci :

 

GEA.add({"Global!","NameVG", "0"}, 30 , "", {"Global","AutreVG","Résultat à afficher"})

 

Quand ta variable globale prendra les valeurs 1,2, 3, 4 ou 5, la ligne sera toujours considérée "VRAIE" par GEA puisque les valeurs seront toujours différentes de "0" :60:

  • Thanks 1
Posté(e)
Il y a 17 heures, soulac a dit :

pourquoi quand je change mes id de module en non cela ne fonctionne pas ?


  --GEA.add({"turnOn", 299}, 30, "", {"turnOff", 299}) ok fonctionne
GEA.add({"turnOn",id[SPOT_ENTREE]}, 30, "", {"turnOff",id[SPOT_ENTREE]})

le message de débug est le suivant :

sommes nous d'accord que les id à renseigné sont juste après function config() comme ceci ?

 


function config() 
  	local id = { 
	-- entree
	OUVERTURE_ENTREE = 280,
    SPOT_ENTREE = 299,
	SPOT_ENTREE_EXTERIEUR = 297,

 

bonjour messieurs désoler de vous déranger pour une question bête mais je ne comprends pas le message d'erreur quand je modifie mon numéro ID par un non voir le message du dessus.

Merci pour votre aide 

Posté(e)

Bonjour,

2 choses :

  - ta déclaration d'IDs doit se trouver dans setEvents() et non config()

  - l'ecriture des tes ids dans tes lignes doit se faire comme cela :

      -- >

id[SPOT_ENTREE] en id["SPOT_ENTREE"]

 

Posté(e)

Il est possible de tester ceci  mais je ne suis pas certain du résultat qui aura dans #value#

 

GEA.add({"Global","NameVG", "#r#1|2|3|4|5"}, 30 , "", {"Global","AutreVG","#value#"})

Mais cela devrait fonctionner.

  • Like 1
  • Thanks 2
Posté(e)

GEA.checkEvery = 30                                         --- spécifié la fréquence de rafraichissement de GEA
GEA.portables = {256}                                       -- tableau des portables pour l'envoi de notification
GEA.globalvariables = "GEA_Tasks6"                   -- Nom de la variable globale à utiliser
GEA.language = "fr"                                          -- langue pour l'affichage

GEA.pluginsvariables  = "GEA_Plugins"                -- Nom de la variable globale utilisée pour les plugins

GEA.debug             = false                                -- true si on souhaite que GEA devienne très bavard

GEA.showRoomNames = true                             -- false si on ne souhaite pas voir le nom de la pièce dans #name#

GEA.batteriesWithRoom = GEA.showRoomNames  -- comme showRoomNames mais uniquement pour {"Batteries", <niveau>}

 

GEA.output = nil                                                -- permet de contourner/supprime l'envoi des notifications fibaro

exemple

GEA.output = function(message) 

   -- faire ce qu'on veux avec le message

end

 

GEA.options.xxxxxxx                                         -- toutes les options utilisateurs (voir quelques exemples sur le site)

 

 

 

Posté(e)

Il y en a d'autres que je garde secrète car elles sont utilisées uniquement pour le bon fonctionnement de GEA et n'apporteraient rien à l'utilisateur.

Posté(e)

@Steven j'ai une suggestion à te faire concernant la mise en forme/filtrage des données qu'il est parfois nécessaire d'appliquer sur les données sources que nous récupérons dans nos devices, VD, VG, source externe via des commandes API, ... et que nous testons pour vérifier une condition.

 

Est-ce qu'il serait envisageable de pouvoir ajouter un tag (exemple : "[Ma_Function, Paramètre1]") dans les fonctions GEA qui correspondrait à une fonction GEA. Cette fonction recevrait la donnée source brute (propriété du devices, Label d'un VD, VG, source externe via des commandes API) et cette fonction appliquera une transformation/mise en forme (en utilisant éventuellement un ou des paramètres optionnelles) et ce serait cette donnée transformée qui serait vérifiée par GEA évaluée la condition ou restituée pour les actions.

 

Cela ouvrirait des grandes possibilités de création de nouvelles fonctions soit par les utilisateurs ou au sein même de GEA. Comme par exemple :

  • StringToNumber qui utilisable à n'importe quel source (Label, VG, source externe via des commandes API, ... )
  • JSONDecodeFromGlobal pourrait devenir une fonction JSONDecode qui serait applicable à n'importe quel source (Label, VG, ...)
Posté(e)

@MAM78, @pepite, @Steven Merci à vous. Je vais tester la proposition de Steven car c'est la moins longue à mettre en place.

Pour celle de petite, je ne pourrais pas l'utiliser car je dois vraiment utiliser les chiffres [,2,3,4,5,etc...).

En fait j'ai besoin de savoir quand je suis en semaine paire ou impaire. Pour connaître le numéro de semaine, j'utilise un VD que j'ai récupéré sur le forum officiel (enfin je crois) et ensuite je rentre le résultat dans une variable.

En fait j'en ai besoin par rapport à mon travail car j'ai des plannings différents en fonctions des semaines paires ou impaires.

Posté(e)
Il y a 21 heures, MAM78 a dit :

@Steven j'ai une suggestion à te faire concernant la mise en forme/filtrage des données qu'il est parfois nécessaire d'appliquer sur les données sources que nous récupérons dans nos devices, VD, VG, source externe via des commandes API, ... et que nous testons pour vérifier une condition.

 

Est-ce qu'il serait envisageable de pouvoir ajouter un tag (exemple : "[Ma_Function, Paramètre1]") dans les fonctions GEA qui correspondrait à une fonction GEA. Cette fonction recevrait la donnée source brute (propriété du devices, Label d'un VD, VG, source externe via des commandes API) et cette fonction appliquera une transformation/mise en forme (en utilisant éventuellement un ou des paramètres optionnelles) et ce serait cette donnée transformée qui serait vérifiée par GEA évaluée la condition ou restituée pour les actions.

 

Cela ouvrirait des grandes possibilités de création de nouvelles fonctions soit par les utilisateurs ou au sein même de GEA. Comme par exemple :

  • StringToNumber qui utilisable à n'importe quel source (Label, VG, source externe via des commandes API, ... )
  • JSONDecodeFromGlobal pourrait devenir une fonction JSONDecode qui serait applicable à n'importe quel source (Label, VG, ...)

Je ne comprends malheureusement pas vraiment ce que tu souhaites, un exemple serait le bien venu.

 

Pour l'instant, il y a toujours le moyen d'utiliser {"Function", function() ... end} pour les traitements que ne comprend pas GEA. Tu pourrais aussi faire un truc du genre

 

{"StringToNumber", "12", {"Global", "Test"}}   ... mais ça tu l'as déjà fait.

 

 

  • Like 1
Posté(e)
Il y a 15 heures, fredokl a dit :

@MAM78, @pepite, @Steven Merci à vous. Je vais tester la proposition de Steven car c'est la moins longue à mettre en place.

Pour celle de petite, je ne pourrais pas l'utiliser car je dois vraiment utiliser les chiffres [,2,3,4,5,etc...).

En fait j'ai besoin de savoir quand je suis en semaine paire ou impaire. Pour connaître le numéro de semaine, j'utilise un VD que j'ai récupéré sur le forum officiel (enfin je crois) et ensuite je rentre le résultat dans une variable.

En fait j'en ai besoin par rapport à mon travail car j'ai des plannings différents en fonctions des semaines paires ou impaires.

Si tu as besoin de savoir si c'est une semaine pair ou impair, voici ce que tu peux faire :

 

GEA.add( {"Frequency", "Monday", 2}, ..., "Lundi semaine pair")
GEA.add( {"Frequency", "Monday", 1}, ..., "Lundi semaine impair")

Par contre, il n'est pas possible de préciser plus d'un jour. Si tu veux faire tout les jours d'une semaine pair, tu peux aussi faire ainsi en ajoutant ta propre option :

 

function config() 
  -- ===================================================
  GEA.options.isoddweek = { name = "Semaine Pair",
    	getValue=function() return os.date("%w") % 2 == 0 end,
    }
  -- =================================================== 
end

function setEvents() 
  -- ==========================================================
	GEA.add({"IsOddWeek"}, 0, "Semaine pair")
  	GEA.add({"IsOddWeek!"}, 0, "Semaine impair")
  -- =========================================================== 
end

Le isOddWeek fera partie de la 6.12 à venir quand j'aurais le temps. :( et après, il te suffira simplement de supprimer dans ton config()

  • Thanks 1
Posté(e) (modifié)
Il y a 2 heures, Steven a dit :

Pour l'instant, il y a toujours le moyen d'utiliser {"Function", function() ... end} pour les traitements que ne comprend pas GEA. Tu pourrais aussi faire un truc du genre

 

{"StringToNumber", "12", {"Global", "Test"}}   ... mais ça tu l'as déjà fait.

 

J'ai supposé qu'il n'était pas possible d'imbriquer les fonction GEA (cf. ma question antérieur), d'où ma suggestion.

 

Je viens d'essayer ta proposition ci-dessus, mais elle ne fonctionne pas pour un label. Je n'ai pas fait le test pour une VG.

 

Voici mon test :

GEA.add({{"RegEx", {"Label", id["VD_HomeMode_Manager"], "lblGaby"}, "Absent"}
        ,{"Trigger", "lblGaby"}}
        ,-1, "StringToAlpha"
        ,{"Push", {id["PHONE_ID_Michel"]}}
        ,"StringToAlpha")

Le problème est que ma fonction "RegEx" reçoit la valeur nil et non le contenu du label.

 

EDIT : je suppose donc que la fonction "Label" n'est pas exécutée avant la fonction "RegEx"

 

Modifié par MAM78
Posté(e)

Je confirme selon cette syntaxe. il n'y a pas de passage dans la fonction Label.

 

Est-ce qu'il y a un problème dans ma syntaxe ou est-ce qu'il n'est pas possible en l'état d'imbriquer des formules dans la partie condition ?

Posté(e)

@MAM78 je ne comprends plus, pourquoi tu n'utilises pas les RegEx natifs de GEA alors ?

 

GEA.add({ {"Label", id["VD_HomeMode_Manager"], "lblGaby","#r#Absent"}
        ,{"Trigger", "lblGaby"}}
        ,-1, "StringToAlpha"
        ,{"Push", {id["PHONE_ID_Michel"]}}
        ,"StringToAlpha")

 

Posté(e)

Thank you all for great help now my Gea works as it should with some 40 functions ;) 

 

For my next function i am wondering if there is any possibility to use randomization ( i know true randomization is impossible). The idea is that if the alarm system is armed then during the late night run a couple of parallel functions at "random" times between 21:45-23:00, turning off different groups of lights in each function. 

 

eg. Monday/day 1 -- 22:06 turn off Lights 1-3, 22:16 turn of lights 4-6, 22:59 turn off lights 7-10

     Tuesday/day 2 -- 21:46 turn off Lights 7-10, 22:08 turn of lights 4-6, 22:22 turn off lights 1-3

 

Any brilliant ideas or solutions?

 

Best regards, 

Daniel

Posté(e)

@StevenMerci de prendre le temps de trouver des solutions. C'est cool!:60:

Le jour n'est pas important pour moi, ce qui m'importe le plus c'est la semaine. J'ai des horaires réguliers mais sur deux types de semaines. Alors juste le fait de savoir que je suis en semaine paire ou impaire me suffit. Peut-être que ta proposition pourra en intéresser d'autres. Je la garde quand même sous le coude au cas où.

Posté(e) (modifié)

Bonsoir a tous.

 

l'un de vous pourrait il me rappeler SVP  la ligne de condition qui teste sur un wallplug est on ? 

 

j'ai fait ces lignes et me manque la condition secondaire :):

 

--Vérif des cameras mal allumées
GEA.add({{"Armed", id["Porte_Entree"]},{"---------", id["Prise_Camera_Salon"]}},30,"camera Salon mal Allumée", {"TurnOn", id["Prise_Camera_Salon"]})
GEA.add({{"Armed", id["Porte_Entree"]},{"---------", id["Prise_Camera_Couloir"]}},30,"camera Couloir mal Allumée", {"TurnOn", id["Prise_Camera_Couloir"]})
GEA.add({{"Armed", id["Porte_Entree"]},{"---------", id["Prise_Camera_Chambre"]}},30,"camera Chambre mal Allumée", {"TurnOn", id["Prise_Camera_Chambre"]})
GEA.add({{"Armed", id["Porte_Entree"]},{"---------", id["Prise_Camera_ChambreAmis"]}},30,"camera Chambre dami mal Allumée", {"TurnOn", id["Prise_Camera_ChambreAmis"]})
  

 

Modifié par schwinny
Posté(e) (modifié)

-- Si le détecteur Cuisine est activé et le WP est off on allume le WP de la machine Nespresso
GEA.add({{id["MOUVEMENT_CUISINE"]}, {id["WP_Nespresso"]}}, -1  , "", {{"Inverse", 2} , {"turnOn", id["WP_Nespresso"]}}, "Mise en marche du Wall Plug Nespresso")
 

j'utilise {"Inverse", 2} pour vérifier si le WP est off. donc si tu ne mets pas {"Inverse", 2} la condition correspond à l'état on.

 

Modifié par MAM78
Posté(e)

Plutôt qu'allumer électriquement, il ne serait pas préférable de désactiver tes caméras plutôt que les éteindre électriquement.

 

Selon la même logique que celle que j'utilise avec mon gestionnaire de cameras sous Surveillance Station.

Posté(e) (modifié)

Merci @MAM78 :)

 

Pour mes cams, elles sont sur Wallplug et quand je rentre, l'alarme est coupé et les cams aussi.

quand je pars c'est l'inverse mais en cas de soucis sur l'activation, GEA réactivera cela :)

Et si une zone est mal armée, je la rearme via GEA :) 

 

 

 

 --Verif des Zones mal armées
  GEA.add({{"Armed", id["Porte_Entree"]},{"Disarmed", id["Oeuil_TV"]}},30,"Oeuil TV mal armé", {"setArmed", id["Oeuil_TV"]})
  GEA.add({{"Armed", id["Porte_Entree"]},{"Disarmed", id["Oeuil_Canape"]}},30,"Oeuil Canape mal armé", {"setArmed", id["Oeuil_Canape"]})
  GEA.add({{"Armed", id["Porte_Entree"]},{"Disarmed", id["Oeuil_Cuisine"]}},30,"Oeuil Cuisine mal armé", {"setArmed", id["Oeuil_Cuisine"]})
  GEA.add({{"Armed", id["Porte_Entree"]},{"Disarmed", id["Oeuil_Douche"]}},30,"Oeuil Douche mal armé", {"setArmed", id["Oeuil_Douche"]})
  GEA.add({{"Armed", id["Porte_Entree"]},{"Disarmed", id["Oeuil_SDB"]}},30,"Oeuil SDB mal armé", {"setArmed", id["Oeuil_SDB"]})
  GEA.add({{"Armed", id["Porte_Entree"]},{"Disarmed", id["Oeuil_SDB_Lavabo"]}},30,"Oeuil SDB Lavabo mal armé", {"setArmed", id["Oeuil_SDB_Lavabo"]})
  GEA.add({{"Armed", id["Porte_Entree"]},{"Disarmed", id["Oeuil_WC"]}},30,"Oeuil WC mal armé", {"setArmed", id["Oeuil_WC"]})
  GEA.add({{"Armed", id["Porte_Entree"]},{"Disarmed", id["Oeuil_WC_2"]}},30,"Oeuil WC2 mal armé", {"setArmed", id["Oeuil_WC2"]})
  GEA.add({{"Armed", id["Porte_Entree"]},{"Disarmed", id["Oeuil_Couloir_Entree"]}},30,"Oeuil Couloir Entree mal armé", {"setArmed", id["Oeuil_Couloir_Entree"]})
  GEA.add({{"Armed", id["Porte_Entree"]},{"Disarmed", id["Oeuil_Couloir_Salon"]}},30,"Oeuil Couloir Salon mal armé", {"setArmed", id["Oeuil_Couloir_Salon"]})
  GEA.add({{"Armed", id["Porte_Entree"]},{"Disarmed", id["Oeuil_Couloir_Chambre"]}},30,"Oeuil Couloi Chambre mal armé", {"setArmed", id["Oeuil_Couoir_chambre"]})
  GEA.add({{"Armed", id["Porte_Entree"]},{"Disarmed", id["Oeuil_Chambre"]}},30,"Oeuil Chambre mal armé", {"setArmed", id["Oeuil_Chambre"]})
  GEA.add({{"Armed", id["Porte_Entree"]},{"Disarmed", id["Oeuil_Chambre2"]}},30,"Oeuil Chambre 2 mal armé", {"setArmed", id["Oeuil_Chambre2"]})
  GEA.add({{"Armed", id["Porte_Entree"]},{"Disarmed", id["Oeuil_Chambre_Dami"]}},30,"Oeuil Chambre dami mal armé", {"setArmed", id["Oeuil_Chambre_Dami"]})
  GEA.add({{"Armed", id["Porte_Entree"]},{"Disarmed", id["Oeil_Chambre_Dami2"]}},30,"Oeuil Chambre dami 2 mal armé", {"setArmed", id["Oeuil_Chambre_Dami2"]})
  GEA.add({{"Armed", id["Porte_Entree"]},{"Disarmed", id["Fenetre_Salon"]}},30,"Fentre Salon mal armée", {"setArmed", id["Fenetre_Salon"]})
  GEA.add({{"Armed", id["Porte_Entree"]},{"Disarmed", id["Fenetre_Cuisine"]}},30,"Fenetre Cuisine mal armée", {"setArmed", id["Fenetre_Cuisine"]})
  GEA.add({{"Armed", id["Porte_Entree"]},{"Disarmed", id["Fenetre_Chambre"]}},30,"Fenetre Chambre mal armée", {"setArmed", id["Fenetre_Chambre"]})
  GEA.add({{"Armed", id["Porte_Entree"]},{"Disarmed", id["Fenetre_Chambre_Dami"]}},30,"Fenetre Chambre Dami mal armée", {"setArmed", id["Fenetre_Chambre_Dami"]})
    
  --Vérif des cameras mal allumées
  GEA.add({{"Armed", id["Porte_Entree"]},{id["Prise_Camera_Salon"]}},30,"camera Salon mal Allumée", {{"Inverse", 2},{"TurnOn", id["Prise_Camera_Salon"]}})
  GEA.add({{"Armed", id["Porte_Entree"]},{id["Prise_Camera_Couloir"]}},30,"camera Couloir mal Allumée", {{"Inverse", 2},{"TurnOn", id["Prise_Camera_Couloir"]}})
  GEA.add({{"Armed", id["Porte_Entree"]},{id["Prise_Camera_Chambre"]}},30,"camera Chambre mal Allumée", {{"Inverse", 2},{"TurnOn", id["Prise_Camera_Chambre"]}})
  GEA.add({{"Armed", id["Porte_Entree"]},{id["Prise_Camera_ChambreAmis"]}},30,"camera Chambre dami mal Allumée", {{"Inverse", 2},{"TurnOn", id["Prise_Camera_ChambreAmis"]}})
  

Pour les cams, je préfère les couper pour raisons de confidentialité... On ne sait jamais :) 

 

 

Modifié par schwinny
×
×
  • Créer...