Scene HC3 - sourceTrigger
Comment connaitre la source du déclenchement d'une scène
Le déclenchement d'une scène est stocker sous forme de table dans sourceTrigger
Pour connaitre la source tu déclenchement
-- ACTIONS
local trigger = sourceTrigger
print(json.encode(trigger))
Sauvegarder et lancer l'action
resultat :
{"property":"execute","id":2,"type":"user"}
On voit :
property = "execute" -- string
id = 2 (2 = compte admin) -- numerique
type = "user" --string
Comment Utiliser cette table ?
Exemple :
je veux savoir si la scène est lancer par l'utilisateur
local trigger = sourceTrigger
if (trigger.property == "execute") then -- declechement manuel
print("Scene lancer manuellement par l'utilisateur)")
end
Exemple :
Je veux soir quel utilisateur a lancer la scéne
local trigger = sourceTrigger
if (trigger.property == "execute") then -- declechement manuel
print("Scene lancer manuellement par l'utilisateur) ", trigger.id)
end
Maintenant que nous savons comment fonction sourceTrigger nous allons voir comment cela fonctionne avec des déclarations
Exemple :
j'ai un cron qui déclenche la scène toutes les 10 mn je veux connaitre le jour date heure minute de chaque déclenchement
--DÉCLARATIONS (Conditions/Déclencheurs)
{
type = "date",
property = "cron",
operator = "match",
value = {"10,20,20,30,40,50,0", "*", "*", "*", "*","*"}
}
-- ACTIONS
local trigger = sourceTrigger
if (trigger.property == "cron") then
if (trigger.type=="date") then
local Minutes = trigger.value[1]
local Heure = trigger.value[2]
local Jour = trigger.value[3]
local Mois = trigger.value[4]
local NomJourNumerique = tonumber(trigger.value[5])
local JourString = {"Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"}
local NonJourString = JourString[NomJourNumerique]
local Annee = trigger.value[6]
print (string.format("%s %s/%s/%s à %s h %s mn", NonJourString,Jour,Mois,Annee,Minutes,Heure))
end
end
resultat :
Vendredi 5/6/2020 à 20 h 10 mn