Declencher un evenement pendant une duree precise

domstuff -  
Reivax962 Messages postés 3742 Statut Membre -
Bonjour,

Etant totalement novice en script,je cherche a declencher un evenement pendant un certain temps.
Il s'agit d'un script pour ma domotique qui permet de forcer les eclairages des chambres a 50% de 23h a 8h du matin quand ils passent a On.

voici mon script actuel:

Module Script
Public Sub Main()
Dim heur as string

heur=Xlobby.GetXlobbyVar("datetime>HH")

if ((Integer.Parse(heur)> 23) and (Integer.Parse(heur)< 8)) then

Xlobby.ExecCommand("plugin-Edomotix", "Local PLCBus : Preset Bright", "lum_parents~25~10")

End if
End Sub
End Module

il a fonctionner une 1ere fois puis plus rien .Je pense a un soucis dans la gestion du temps,j'ai vu qu'on peut utiliser "DateDiff" mais ne sais pas du tout comment integrer ca a mon script.

Merci de vôtre aide.

2 réponses

  1. Reivax962 Messages postés 3742 Statut Membre 1 011
     
    Bonjour,

    Dans cette ligne :
    if ((Integer.Parse(heur)> 23) and (Integer.Parse(heur)< 8)) then

    Je ne vois pas comment cela a pu fonctionner ne serait-ce qu'une fois.
    Il faudrait mettre OR plutôt que AND !

    Ensuite, est-ce qu'il ne faudrait pas remettre la valeur de lumens normale quand tu es hors de cette tranche horaire ?

    Xavier
    0
  2. domstuff
     
    Ben pourtant il a fonctionné,mais pour tester j'avais mis de 15 h à 18 h.
    Me demande si c'est pas à cause du changement de jour que ça va pas.
    Et oui en effet il faut que la luminosité revienne à la normal en dehors de cette plage horaire,mais ça je peux le gérer depuis le prog (Ed-win)
    0
    1. Reivax962 Messages postés 3742 Statut Membre 1 011
       
      Supérieur à 15 et inférieur à 18, ce n'est pas choquant.
      Supérieur à 23 et inférieur à 8, ça l'est !
      ;)

      Essaie plutôt :
      if ((Integer.Parse(heur)> 23) or (Integer.Parse(heur)< 8)) then
      0