Aller au contenu
Franco268

Déclencheur Event QA HC3

Recommended Posts

Bonjour,

 

J'ai développé un petit QA qui permet d'activé ou de désactiver l'envoi de notifications lorsque ma boite au lettre s'ouvre.

Voici une image qui je pense vous fera comprendre les détails:

image.png.4703bdf6d69701e90523f9ea653db46b.png

 

J'ai programmé le paramétrage (activé, désactivé, désactivé temporairement) et j'arrive à l'étape de détecter l'ouverture de la boite aux lettre, puis d'envoyer ou non la notification.

Sur ma HC2, j'avais fait un VD similaire qui aller activer (ou non) une scène.

Est il possible de tout faire dans le QA sous HC3? Je voudrai savoir comment détecter l'ouverture de la boite aux lettre sans devoir faire une loop de scrutation.

Est ce possible?

 

Merci pour votre aide

Franco

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Utilises-tu GEA ?

le plus simple selon moi, serait d'appeler la fonction du QA, sur condition gérée par GEA.

Partager ce message


Lien à poster
Partager sur d’autres sites

Non je n'utilise pas GEA?

Si tu proposes une alternative... cela veut dire qu'il n'existe pas de déclencheur/event basé sur des appareils dans les QA?

Partager ce message


Lien à poster
Partager sur d’autres sites

tu peux générer un event dans ton QA lors de la détection de l'ouverture de la boite. Tu peux ensuite utiliser cet event dans GEA par exemple ou comme n'importe quelle autre condition

Partager ce message


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

Si tu proposes une alternative... cela veut dire qu'il n'existe pas de déclencheur/event basé sur des appareils dans les QA?

j'ai proposé cette alternative, car je ne connais pas d'autre solution.

Mais @Cardane parle d'event, mais je ne sais pas comment le mettre en oeuvre.

 

=> @Cardane, je serais également intéressé pas un petit exemple (simple SVP), car je sais que le code de GEA le fait déjà.

Partager ce message


Lien à poster
Partager sur d’autres sites

hello @jojo et @Franco268,

 

dans un QA il suffit d'appeler la fonction 

hub.emitCustomEvent(""), avec le nom de l'event que vous désirez entre les "".
ca génère un event qui peut être capté dans les conditions d'une scène par exemple, ou pas GEA
vous pouvez regarder dans mon QA Dans and Dusk, j'utilise ca pour générer un event à chaque phase de la journée.
IL faut aussi définir ces event dans l'onglet Évènement (encore que, il semble que ce ne soit plus nécessaire mais c'est plus propre)

image.thumb.png.4a6d4e7d4e533e1d261053f026e5bcb7.png

 

 

ensuite dans GEA vous pouvez capter l'event comme ca :

 

    GEA.add({"CustomEvent""onCivilDusk"}, -1"ferme tenture droite à Civil Dusk", {"Close"199100})
 

 

 

Citation

 

  • Like 1

Partager ce message


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

IL faut aussi définir ces event dans l'onglet Évènement (encore que, il semble que ce ne soit plus nécessaire mais c'est plus propre)

Merci, je vais regarder ,à tout cela en détail.

Perso, si tout est géré dans le QA, je préfère, et ça doit être possible (cfr GEA avec -1)

Partager ce message


Lien à poster
Partager sur d’autres sites

en fait, de ce que j'ai compris du QA, c'est qu'il crée un event qui pourra ensuite être utilisé dans une scène ou dans GEA.

 

En fait, ce qu'on (que je) voudrait (s), c'est le contraire :

Une méthode d'un QA qui se lance sur base d'un event, soit

  • a été préalablement défini dans la section Evénements/Général; soit  (encore mieux)
  • a été définit préalablement dans le code LUA du QA (fonction onInit() ?)

Je suis persuadé que c'est possible, car GEA le fait (mais je n'ai pas les compétences pour faire le reverse engineering) ...

 

Est-ce plus clair ? 

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui je confirme, le besoin est celui exprimé par Jojo.

 

On est d'accord, ce que propose Cardane est de déclenché une fonction QA à partir d'une scène. C'est ça?

Partager ce message


Lien à poster
Partager sur d’autres sites

en fait le QA se lance automatiquement toutes les nuits pour aller chercher sur un site un certain nombres d'infos (lever/coucher soleil, aube/crépuscule, ...) et créer (s'ils n'existent pas déjà) les événements qui pourront servir de déclencheurs dans des Scènes ou GEA, mais PAS (d'après ce que j'ai compris) pour lancer une méthode (fonction) d'un QA.

Partager ce message


Lien à poster
Partager sur d’autres sites

If you want "sourceTriggers" in your QA you can use

https://forum.fibaro.com/topic/62600-detect-keyid-andor-keyattribute-in-a-qa-loop-from-a-device/?do=findComment&comment=255490

 

Ex. for customEvents

function QuickApp:sourceTrigger(event) -- callback for subscribed events
  print("Event:",event.name)
end

function QuickApp:onInit()
  self:debug("Started")
  self:clearSubscriptions() -- Every restart, re-subscribe
  self:subscribe({type='custom-event', name='E1'}) -- Subscribe to custom event
  self:subscribe({type='custom-event', name='E2'}) -- Subscribe to custom event
end

----------- Helper functions --------------
function QuickApp:clearSubscriptions() self:setVariable('TRIGGER_SUB',{}) end
function QuickApp:subscribe(event)
  local s = self:getVariable('TRIGGER_SUB')
  if type(s)~='table' then s = {} end
  s[#s+1]=event
  self:setVariable('TRIGGER_SUB',s)
end

 

  • Like 1
  • Thanks 1

Partager ce message


Lien à poster
Partager sur d’autres sites

I knew you would react and propose a solution.

Now, I "just" have to try to understand how to implement it at home => thank you !

Partager ce message


Lien à poster
Partager sur d’autres sites

Hello jang,

I am looking about your code bellow.

Le 23/10/2022 à 09:29, jang a dit :

If you want "sourceTriggers" in your QA you can use

https://forum.fibaro.com/topic/62600-detect-keyid-andor-keyattribute-in-a-qa-loop-from-a-device/?do=findComment&comment=255490

 

Ex. for customEvents


function QuickApp:sourceTrigger(event) -- callback for subscribed events
  print("Event:",event.name)
end

function QuickApp:onInit()
  self:debug("Started")
  self:clearSubscriptions() -- Every restart, re-subscribe
  self:subscribe({type='custom-event', name='E1'}) -- Subscribe to custom event
  self:subscribe({type='custom-event', name='E2'}) -- Subscribe to custom event
end

----------- Helper functions --------------
function QuickApp:clearSubscriptions() self:setVariable('TRIGGER_SUB',{}) end
function QuickApp:subscribe(event)
  local s = self:getVariable('TRIGGER_SUB')
  if type(s)~='table' then s = {} end
  s[#s+1]=event
  self:setVariable('TRIGGER_SUB',s)
end

 

I have a quickapp with a button "Refresh", this Button is getting some consumption metering but I need to synchronize this Get to an external custom event.

I have search but not found how to wait the event after the push button

 

I want someting like this :

function QuickApp:uiRefreshOnR(event)

-- 12.02.2024 - Titi try to add an event on each changes of Conso Live (Enphase_MeterTotalConsumptionPower_Updated)
	wait(self:sourceTrigger("Enphase_MeterTotalConsumptionPower_Updated")) <- must be addapt
    
    -- then execute the refresh
    self:Refresh()    
end

Have you any idea ? :)

 

Edit: Probably more simple the event can be :

- a custom event generated by another QA (already generated) or

- a changes of the value for a dedicated device

Modifié par TitiXsi

Partager ce message


Lien à poster
Partager sur d’autres sites

What kind of animal is

Conso Live (Enphase_MeterTotalConsumptionPower_Updated)

that is expect to send an event/signal. Another QA? another zwave device? something else?

 

 

Partager ce message


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

What kind of animal is

Conso Live (Enphase_MeterTotalConsumptionPower_Updated)

that is expect to send an event/signal. Another QA? another zwave device? something else?

 

 

:2:

It's the name of my custom event ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

×