Aller au contenu

Trigger de scène : besoin d’explications


jjacques68

Recommended Posts

La doc porte à confusion... le seul opréateur est "==" (du coup en mode trigger)

Sunrise and sunset

For sunrise and sunset, the interpretation of conditions fields is as follows:

  • type – takes value "date".
  • property – takes one of two values:
    • "sunrise" – sunrise,
    • "sunset" – sunset.
  • value – time in minutes before/after sunrise/sunset:
    • Values lower than 0 indicate how many minutes before sunrise/sunset the scene should start.
    • Value 0 means that the scene should take place at sunrise/sunset.
    • Values greater than 0 indicate how many minutes after sunrise/sunset the scene should start.
  • operator – takes value "==".
  • isTrigger – is the condition also a trigger:
    • true – is a trigger (recommended)
    • false – is only a condition (default)

 

Lien vers le commentaire
Partager sur d’autres sites

comme tu disais un jour, faut relativiser, extrapoler cette doc...

 

j'ajouterai : la bouffer, la digérer, philosopher dessus, la tester, la contre tester, ...

 

en même temps, je sais qu'écrire des documents n'est pas une chose facile...

Lien vers le commentaire
Partager sur d’autres sites

ah ! étrange, 

 

ce soir vers 19h30, la scène n’était plus triggée, alors que on était pas encore au sunset.

j’ai vérifié dans l’API, le sunsetHour était à 20:04...

 

j’ai ajouté un wallplug dans les trigger pour pouvoir la déclencher manuellement, et bien elle voulait pas.

 

c’est comme si elle avait un sunset différent de l’API !!!

Lien vers le commentaire
Partager sur d’autres sites

J’allais le dire... je ne me serais pas la tête je pense [emoji848]


Envoyé de mon iPhone en utilisant Tapatalk

  • Like 1
Lien vers le commentaire
Partager sur d’autres sites

  • 1 month later...

moi je rencontre un bug 

 

voici le code :

-- DÉCLARATIONS (Conditions/Déclencheurs) 
{
    type = "date",
    property = "cron",
    operator = "matchInterval",
    value = {
        date = { "0", "12", "5", "4", "*", "2019" },
        interval = 90 -- 1mn 30s
    },
    isTrigger = true
}



-- ACTIONS 
fibaro.debug("Scene1", "Time : "..os.date("%M mn-%S s"))

resultat :

[28.05.2020] [09:54:33] [DEBUG] [SCENE1]: Time : 54 mn-33 s
[28.05.2020] [09:57:00] [DEBUG] [SCENE1]: Time : 57 mn-00 s
[28.05.2020] [10:00:00] [DEBUG] [SCENE1]: Time : 00 mn-00 s
[28.05.2020] [10:03:00] [DEBUG] [SCENE1]: Time : 03 mn-00 s
[28.05.2020] [10:06:00] [DEBUG] [SCENE1]: Time : 06 mn-00 s

pour 3mn pour 90s ?

 

si je mets 10 s j'ai un interval de 1 mn

 

autre exemple avvec 2 mm

{
    type = "date",
    property = "cron",
    operator = "matchInterval",
    value = {
        date = { "0", "12", "5", "4", "*", "2019" },
        interval = 120
    },
    isTrigger = true
}

resultat :

[28.05.2020] [10:09:10] [DEBUG] [SCENE1]: Time : 09 mn-10 s
[28.05.2020] [10:10:00] [DEBUG] [SCENE1]: Time : 10 mn-00 s
[28.05.2020] [10:12:00] [DEBUG] [SCENE1]: Time : 12 mn-00 s
[28.05.2020] [10:14:00] [DEBUG] [SCENE1]: Time : 14 mn-00 s
[28.05.2020] [10:16:00] [DEBUG] [SCENE1]: Time : 16 mn-00 s
[28.05.2020] [10:18:00] [DEBUG] [SCENE1]: Time : 18 mn-00 s
[28.05.2020] [10:20:00] [DEBUG] [SCENE1]: Time : 20 mn-00 s
[28.05.2020] [10:22:00] [DEBUG] [SCENE1]: Time : 22 mn-00 s
[28.05.2020] [10:24:00] [DEBUG] [SCENE1]: Time : 24 mn-00 s

 

On voit que la condition est toujours exécuter à 0s après le lancement

 

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

@krikroff il faut un multiple de 60 pour que cela fonctionne

Si tu lances une scène à 8h 01mn 20s avec 2mn d'intervalle
Le déclenchement ce fera à
8h03mn00s
Donc moins de 2mn
Après ce sera à bon puisque les déclenchement ce feront x mm 00s

 

je pense que les déclencheur sont lu 1 fois par minute lorsque la minute change donc a 0s

 

ce qui est logique si on regarde la déclaration cron

{
    type = "date",
    property = "cron",
    operator = "match",
    value = {"30", "12", "13", "6", "1", "2018"},
    isTrigger = true
}

on voit qu'il n'y a pas de secondes

 

le bug ce situe au niveau de interval qui devrait être en minute et non pas en seconde

Envoyé de mon BLA-L29 en utilisant Tapatalk
 

Lien vers le commentaire
Partager sur d’autres sites

a priori mon raisonnement est juste les déclencheurs sont exécuter lors du changement des minutes

 

petit test simple

{
    type = "date",
    property = "cron",
    operator = "match",
    value = {"*", "*", "*", "*", "*", "*"},
    isTrigger = true
}

-- action
fibaro.debug("Scene1", "Time : (1 mn) "..os.date("%M mn-%S s"))

resultat :

[28.05.2020] [11:27:44] [DEBUG] [SCENE1]: Time : (1 mn) 27 mn-44 s
[28.05.2020] [11:28:00] [DEBUG] [SCENE1]: Time : (1 mn) 28 mn-00 s
[28.05.2020] [11:29:00] [DEBUG] [SCENE1]: Time : (1 mn) 29 mn-00 s
[28.05.2020] [11:30:00] [DEBUG] [SCENE1]: Time : (1 mn) 30 mn-00 s

donc si on lance la scène en manuel on aura des secondes ce qui est normal

 

par contre si on attend que la scène soit exécuter par les déclarations les secondes seront toujours à 0

 

 

pour moi interval est calculer de la manière suite a partir du cron

Minutes = MinuteActuelle

Minutes = Minutes + interval

puis

le cron value = {Minutes "*""*""*""*""*"}

 

Lien vers le commentaire
Partager sur d’autres sites

Le 04/04/2020 à 11:15, Barelle a dit :

Ben non, à minuit, on est au milieu de la nuit ;).

Donc entre le coucher du soleil et minuit, c'est la nuit, OU, entre minuit et le lever du soleil. Une seule de ces conditions suffit.

Pour résoudre ce problème c'est très simple

 

vu que la nuit est a cheval sur 2 jours trop chiant a guérer

la solution

 

Par défaut il fait nuit

si sunrise >= 0 et sunset <= 0 il fait jour

Lien vers le commentaire
Partager sur d’autres sites

@barelle exact moi j'utilise cette fonction comme tu dis avec un timestamp

----------------------------------------------------------------------
--           Vérification de l'heure et mise à jour                 --
--                de la variable si nécessaire                      --
----------------------------------------------------------------------
function UpdateJourNuit(NomVG, heure)
        local valeurs = "Nuit"
        -- test si on est le jour ou la nuit
        if (heure >= leverSoleil) and (heure < coucherSoleil) then
           valeurs = "Jour"
	    end
        fibaro:debug(string.format("Lever Soleil : %s - Coucher Soleil : %s", leverSoleil, coucherSoleil))
        UpdateVG(NomVG, valeurs) -- mise a jour de la VG Jour_Nuit
end

 

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...