Aller au contenu
jjacques68

Trigger de scène : besoin d’explications

Recommended Posts

en tout cas si c'est un bug, faut le garder celui-là :16: je pensais pas dire ça un jour...

Partager ce message


Lien à poster
Partager sur d’autres sites

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)

 

Partager ce message


Lien à poster
Partager sur d’autres sites
à l’instant, Krikroff a dit :

(du coup en mode trigger)

aaaaahhhhhhhh la blague !

 

je sais pas !

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

:93:

Partager ce message


Lien à poster
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...

Partager ce message


Lien à poster
Partager sur d’autres sites

Et encore moins un moteur de règles ;)... 

  • Like 1

Partager ce message


Lien à poster
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 !!!

Partager ce message


Lien à poster
Partager sur d’autres sites

Hum... comment vérifier cela


Envoyé de mon iPhone en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

j’aimerai aussi le vérifier... je sais pas comment,

mais je sens que ces conditions vont finir en code...

Partager ce message


Lien à poster
Partager sur d’autres sites

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


Envoyé de mon iPhone en utilisant Tapatalk

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

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

 

 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

60 secondes est le minimum de ce que je comprends, 90 cela devrait fonctionner donc...

Partager ce message


Lien à poster
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
 

Partager ce message


Lien à poster
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 "*""*""*""*""*"}

 

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
Partager sur d’autres sites

Ouais :(, sauf que, sunrise est toujours positif et sunset jamais négatif !

C'est plutôt le timestamp courant  qui doit être compris entre les deux :rolleyes:

 

Partager ce message


Lien à poster
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

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Nous sommes d'accord :bravo:, mais ma réponse citée précédemment concernait la nécessité d'un Ou au lieu d'un ET... 

Partager ce message


Lien à poster
Partager sur d’autres sites

×