Aller au contenu
Lazer

Quick App - Gestionnaire d'Événements Automatique - GEA pour HC3

Recommended Posts

alors SceneActivation

quand je lance avec les 2 click ma lampe s'allume ou s'éteint :     GEA.add({"SceneActivation", id["VL_BAR"] , 14}, -1"", {{"OnOff", id["SUSPENSION_CUISINE"] }})

 

sauf que j'ai une ligne plus bas dans le codequi s'active et donc je reçois la notification VLBAR OUVER 70T 

GEA.add({{"Value+", id["VL_BAR"], 70 }} , -1"VLBAR OUVER 70T", {{"Global""VL""ok"} })
 
 
 
Modifié par 971jmd

Partager ce message


Lien à poster
Partager sur d’autres sites

Mais je pense que ça vient du modèle, je vais tester encore quelques trucs

Partager ce message


Lien à poster
Partager sur d’autres sites

Et bien c'est normal non ?

 

Cette règle détecte l'appui sur les boutons :

GEA.add({"SceneActivation", id["VL_BAR"] , 14}, -1, "", {{"OnOff", id["SUSPENSION_CUISINE"] }})

 

Mais pendant ce temps là, puisque tu as appuyé sur les boutons, la lumière le volet de ton bar s'est allumée ouvert

Donc il est tout à fait normal que la seconde règle se déclenche :

 GEA.add({{"Value+", id["VL_BAR"], 70 }} , -1, "VLBAR OUVER 70T", {{"Global", "VL", "ok"} }) 

C'est une conséquence de ton action sur la lumière le volet, pas de la 1ère règle (elle ne serait pas présente, la 2nde règle s'exécuterait également)

 

Bref, typiquement un problème de logique, ça fonctionne comme attendu. La suite de la discussion a plus sa place sur le topic Support GEA, car c'est générique et pas lié à ce QuickApp pour HC3.

 

Modifié par Lazer

Partager ce message


Lien à poster
Partager sur d’autres sites

le Vl du BRA ID 250

la telecomande sceneativation 251

1182906336_Capturedcran2020-12-1412_14_28.png.44f4a1778c1faffe03d21b55373fbf7e.png

 

j'ai tester ça et toutjout la même chose 

 

   GEA.add({"SceneActivation"25124}, -1"", {{"OnOff", id["APPLIQUE_DU_BAR"] }}) 
    GEA.add({"SceneActivation"25114}, -1"", {{"OnOff", id["SUSPENSION_CUISINE"] }})

 

et 

 

GEA.add({{"Value+", 250 70 }} , -1"VLBAR OUVER 70T", {{"Global""VL""ok"} })

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 8 minutes, 971jmd a dit :

désolé mai sous la 7.02 pas ce problème 

Parce qu'elle était toute bugguée, ça fait 10 fois que je le dis....

 

Tu avais bien un problème, c'était que ça ne fonctionnais pas.


Et toi tu penses que le non fonctionnement était normal....

 

Allez, suite sur le topic du Support GEA. Fin de la discussion avant que je ne fasse le ménage de cette page de discussion stérile.

Partager ce message


Lien à poster
Partager sur d’autres sites

C'est moche la pomme :-) elle joue des tours !!

  • Haha 1

Partager ce message


Lien à poster
Partager sur d’autres sites

autre chose, serait-il possible de pouvoir utiliser la VariableCache  en instantané   -1  , ça nous éviterait le crée des variables globale 

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui, et beaucoup d'heures de SAV

Envoyé de mon RMX1993 en utilisant Tapatalk

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 10 heures, 971jmd a dit :

autre chose, serait-il possible de pouvoir utiliser la VariableCache  en instantané   -1  , ça nous éviterait le crée des variables globale 

Je vais étudier ça mais c'est pas gagné.... Ce n'est pas un évènement de la box.

 

Ça me fait penser qu'il faut que je documente les fonctions qui sont utilisables en déclenchement instantané avec -1, ce n'est pas le cas de toutes.

 

 

 

Je fais le SAV du QuickApp GEA sur HC3, pas de l'utilisation de GEA. Il y a le topic Support GEA pour cela.

Je dis cela comme un rappel.... :rolleyes:

  • Like 2

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonsoir, j'ai déployé le QA 7.1 avec quelques règles basiques.

 

Sur un déclenchement instantané 

GEA.add(78, -1, "",{{"turnOn",84,50*60},{"Repeat"}})

J'ai eu une erreur

[16.12.2020] [18:15:07] [ERROR] [QUICKAPP115]: QuickApp crashed

[16.12.2020] [18:15:07] [ERROR] [QUICKAPP115]: main.lua:3109: attempt to index a nil value (upvalue 'self')

 

La ligne en question est

if self.lldebug then tools.debug("Event : " .. json.encode(triggers.filter), "blue") end

 

Pour tester, s'agissant d'une simple info, je l'ai commenté et cela fonctionne.

 

A disposition si besoin de plus d'info.

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui tu as le bug identifié par @971jmd quelques message plus haut (information perdue dans une pluie de message HS qu'il a posté.... :rolleyes:.... pourtant j'ai déjà fait un peu de ménage)

 

Bref, met à jour en version 7.11.

Partager ce message


Lien à poster
Partager sur d’autres sites

Ah, ok, téléchargé ce matin :), effectivement , noyé sous les messages.

Désolé pour le bruit.

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Serait-il possible de gérer les profils avec leur nom plutôt que leur numéro ?

Pour plus de clareté dans le code :)

Modifié par Dragoniacs

Partager ce message


Lien à poster
Partager sur d’autres sites

J'aimerais bien aussi.... tout comme les partitions d'alarme.... mais je n'ai pas encore réussi... c'est pas faute d'avoir essayé.

 

Je n'abandonne pas pour autant, je finirai bien par trouver un moyen.

  • Like 1

Partager ce message


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

I would also like ... just like the alarm partitions .... but I have not yet succeeded ... it's not for lack of trying.

I'm not giving up though, I'll find a way in the end.

Is it a GEA syntax problem or api?

If it's the api this is what I use in ER4

 -- id to profile name

  function self:profileName(id) for _,p in ipairs(api.get("/profiles").profiles) do if p.id == id then return p.name end end end

 -- profile name to id
  function self:profileId(name) for _,p in ipairs(api.get("/profiles").profiles) do if p.name == name then return p.id end end end

  -- set active profile if id ~= nil, or return current active profile if id == nil

  function self:activeProfile(id) 
    if id then
      if type(id)=='string' then id = self:profileName(id) end
      assert(id,"activeProfile(id) - no such id/name")
      return api.put("/profiles",{activeProfile=id}) and id
    end
    return api.get("/profiles").activeProfile 
  end

Partager ce message


Lien à poster
Partager sur d’autres sites

Thanks, API is OK, the problem is about GEA LUA code.

It is not my own development, it's from @Steven and I had (and still have) hard time understanding the code.
 

By the way, I have already added (but commented) the LUA code to find ID from name in latest GEA version, for example :

-- --------------------------------------------------------------------------------
-- Retourne l'ID d'une partition d'alarme selon son nom
-- --------------------------------------------------------------------------------
--[[
function GEA:findAlarmId(alarmId) -- Lazer
	if tonumber(alarmId) then
		return tonumber(alarmId)
	else
		local partitions = api.get("/alarms/v1/partitions")
		local partitionId = nil
		for _, partition in pairs(partitions) do
			if partition.name == alarmId then
				partitionId = partition.id
				break
			end
		end
		assert(tonumber(partitionId), string.format(self.trad.partition_missing, alarmId))
		return partitionId
	end
end
--]]

 

So I have no problem to perform action on profile/alarm based on their names.

But for conditions and triggering, it's a bit more complicated, because the whole GEA structure is meant to detect changes to devices, not to profile/alarm/whatever.

So I must find exactly where I should add extra lines of code to manage alarm and profile's names. I have an idea, so there's hope :)

 

Partager ce message


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

Thanks, API is OK, the problem is about GEA LUA code.

It is not my own development, it's from @Steven and I had (and still have) hard time understanding the code.
 

By the way, I have already added (but commented) the LUA code to find ID from name in latest GEA version, for example :

 

So I have no problem to perform action on profile / alarm based on their names.

But for conditions and triggering, it's a bit more complicated, because the whole GEA structure is meant to detect changes to devices, not to profile / alarm / whatever.

So I must find exactly where I should add extra lines of code to manage alarm and profile's names. I have an idea, so there's hope:)

 

 

Ok, I understand. Good luck :-) 

Partager ce message


Lien à poster
Partager sur d’autres sites

salut 

sans vouloir crée un pluie de message inutile  j'ai constatée un problème avec SceneActivation et le OnOff

 

GEA.add({"SceneActivation", id["TELECOMANDE_VL_BAR"], 24}, -1, "", {{"OnOff", id["APPLIQUE_DU_BAR"] }})
 
Constat n1 (SceneActivation : temps d'exécution plus long qu'une scène Bloc 
Constat n2 (onoff) : quand je clique deux fois sur l'interrupteur ma lampe s'allume et s'éteint tout de suite c'est pas cyclique mais ça arrive de temps en temps
 
 
J'ai fait le teste avec une scène Bloc, non seulement ça fonctionne plus vite mais je n'ai pas le probleme avec la lampe qui salut et s'éteint 
 

Partager ce message


Lien à poster
Partager sur d’autres sites

C'est étrange ta latence concernant le SceneActivation.... il faudrait que je fasse des tests complémentaires, mais il y a actuellement tellement peu de modules Z-Wave sur le réseau de ma HC3 de développement, que ma box n'est pas représentative d'une activité normale.

C'est de quel ordre cette latence par rapport à la scène bloc ? 1 seconde... ou plus ?

 

Pour ton constat n°2 avec le OnOff, c'est normal non ?

Je veux dire si tu cliques 2 fois sur l'interrupteur, ça allume puis éteint tout de suite la lampe, non ?

Ou alors je n'ai pas bien compris ce qu'est censée faire ta ligne GEA.

Partager ce message


Lien à poster
Partager sur d’autres sites

pour la  latence je dirais 2 sec 

 

sceneActivation = 24 corespond à 2 clicks 

 

--si  2 click alors allume ou éteint la lampe du bar 

GEA.add({"SceneActivation", id["TELECOMANDE_VL_BAR"], 24}, -1, "", {{"OnOff", id["APPLIQUE_DU_BAR"] }})

 

ci-dessous l'Équivalence en scène  bloc

 

3924485_Capturedcran2021-01-0411_44_17.thumb.png.fe19aac3c98bf20869fde9aec91a2ea4.png

Partager ce message


Lien à poster
Partager sur d’autres sites

Ah oui OK, 24 = doubleclic

Mais alors si je comprends bien, c'est comme si GEA interprétait 2 doubles-clics consécutifs.... mais je ne comprends pas pourquoi !

Il faudrait que tu actives le mode GEA.debug=true, puis que tu tentes de reproduire le problème.... ça m'aidera à comprendre.

Partager ce message


Lien à poster
Partager sur d’autres sites

voila le début pour le ON et OFF

---ON
[04.01.2021] [12:24:39] [TRACE] [QA_GEA_249]: Démarrage par événement de GEA 7.11 (mode device [251])
[04.01.2021] [12:24:39] [TRACE] [QA_GEA_249]: --------------------------------------------------------------------------------
[04.01.2021] [12:24:39] [DEBUG] [QA_GEA_249]: @0s [Validation] #5 [SceneActivation, [251,15]]
[04.01.2021] [12:24:39] [DEBUG] [QA_GEA_249]: @0s [Validation*] #6 [SceneActivation, [251,24]][OnOff, [89]]
[04.01.2021] [12:24:39] [TRACE] [QA_GEA_249]:    [Démarrage] #6 [SceneActivation, [251,24]][OnOff, [89]]
[04.01.2021] [12:24:39] [DEBUG] [QA_GEA_249]:         [action] [OnOff, [89]]
[04.01.2021] [12:24:39] [DEBUG] [QA_GEA_249]: @0s [Validation] #7 [SceneActivation, [251,14]][OnOff, [91]]
[04.01.2021] [12:24:39] [DEBUG] [QA_GEA_249]: @0s [Validation] #8 [SceneActivation, [251,25]][OnOff, [112]]



---OFF

[04.01.2021] [12:24:58] [TRACE] [QA_GEA_249]: Démarrage par événement de GEA 7.11 (mode device [251])
[04.01.2021] [12:24:58] [TRACE] [QA_GEA_249]: --------------------------------------------------------------------------------
[04.01.2021] [12:24:58] [DEBUG] [QA_GEA_249]: @0s [Validation] #5 [SceneActivation, [251,15]]
[04.01.2021] [12:24:58] [DEBUG] [QA_GEA_249]: @0s [Validation*] #6 [SceneActivation, [251,24]][OnOff, [89]]
[04.01.2021] [12:24:58] [TRACE] [QA_GEA_249]:    [Démarrage] #6 [SceneActivation, [251,24]][OnOff, [89]]
[04.01.2021] [12:24:58] [DEBUG] [QA_GEA_249]:         [action] [OnOff, [89]]
[04.01.2021] [12:24:58] [DEBUG] [QA_GEA_249]: @0s [Validation] #7 [SceneActivation, [251,14]][OnOff, [91]]
[04.01.2021] [12:24:58] [DEBUG] [QA_GEA_249]: @0s [Validation] #8 [SceneActivation

 

[04.01.2021] [12:29:28] [TRACE] [QA_GEA_249]: GEA fonctionne depuis 5m - Mémoire utilisée : 1666.29 KB

 

Modifié par 971jmd

Partager ce message


Lien à poster
Partager sur d’autres sites
TELECOMANDE_VL_BAR = 251


GEA.add({"SceneActivation", id["TELECOMANDE_VL_BAR"], 24}, -1, "", {{"OnOff", id["APPLIQUE_DU_BAR"] }})   ---ID89
    
GEA.add({"SceneActivation", id["TELECOMANDE_VL_BAR"], 14}, -1, "", {{"OnOff", id["SUSPENSION_CUISINE"] }})  --- ID91
    
GEA.add({"SceneActivation", id["TELECOMANDE_VL_BAR"] , 25}, -1, "", {{"OnOff", id["LP_PISCINE"]}})   ----ID112

 

Modifié par 971jmd

Partager ce message


Lien à poster
Partager sur d’autres sites

×