Aller au contenu

Sunrise/Sunset avec offset aléatoire


Julien92130

Messages recommandés

Bonjour à tous, 

 

Dans mon profil vacances sur HC3 j’ai des scènes qui ouvrent/ferment les volets en fonction du lever/coucher du soleil. Rien d’exceptionnel jusque-là. 

 

Pour simuler une présence plus « humaine » (et donc tromper des éventuels cambrioleurs en repérage nous avons eu plusieurs tentatives de cambriolage dans l’immeuble), j’aimerai trouver une solution qui me permettrai d’ajouter un offset aléatoire aux heures de lever/coucher du soleil. 

 

Concrètement, remplacer le « -60 » de l’exemple ci-dessous par un nombre aléatoire compris dans une plage horaire définie.

{
    type = "date",
    property = "sunset",
    operator = "==",
    value = -60,
    isTrigger = true
}

La fonction LUA math.random() me permet de faire ça, mais je ne sais pas s’il est possible de l’utiliser dans la colonne « DECLARATIONS (Conditions/Triggers) » ? 

 

Sinon je me contenterai de la variation naturelle du soleil de + ou - quelques minutes par jour :)

 

Merci d’avance pour vos lumières et bon week-end prolongé !

 

 

 
 
Lien vers le commentaire
Partager sur d’autres sites

je crains que ce soit plus compliqué que ça...

 

à moins que qqun ait une autre idée...

 

à l'ancienne :

je définirais une liste d'heures d'ouverture et de fermeture.

je ferais une scène qui tourne en boucle toutes les minutes.

chaque jour on prends une heure aléatoire dans la liste prédéfinis.

 

 

Lien vers le commentaire
Partager sur d’autres sites

@jjacques68 tu te rappelle la scène que l'on n'a corrigé elle sert à cela

Cette sert de créé des déclencheurs pour une autre scène qui ouvrent les volets
Vu le nouveautés sur hc3 je vais pouvoir simplifier

L'idée est la suivante

J'utilise une déclaration par exemple 60 mn avant coucher soleil ce qui va lancer la scène
Après une table Avec les déclencheurs que je veux
Exemple
Table = {-60, 45, 50,-30}
Ensuite j'ajoute un 0 à la table
Le 0 = coucher du soleil
Ensuite table.sort
Après tu metristes le timeout
Un soustraction
Table[1]-Table[2] te donne le temps de pause
Tu parcours toute ta table comme cela
À la fin de la table ta scène s arrête
C'est simple est efficace

Moi faut que je regarde si on peut faire une déclaration en fonction des minutes
Par exemple
Si minute = 00 la scène ce lance

Envoyé de mon BLA-L29 en utilisant Tapatalk

Lien vers le commentaire
Partager sur d’autres sites

alors moi j'ai fais autrement, du moins pour avoir une simulation d'éclairage.

 

j'ai défini une variable tableau avec plusieurs suites de device, correspondant à tout les déplacements possible dans la maison, dans l'ordre réel :

par exemple, pour allé au garage : éclairage escalier cave, éclairage cave, éclairage garage.

autre exemple : pour allé dans la chambre : éclairage entrée, éclairage escalier, éclairage étage, éclairage chambre.

 

j'ai une 2ème variable tableau contenant une liste de durée (interval entre 2 séquences)

 

le soir à partir du couché de soleil, je choisi une séquence au hasard, qui l'allume successivement les lumières, les laisses allumées pendant une durée aléatoire et les éteint dans l'ordre inverse.

Puis après un interval (pris dans la variable tableau) aléatoire, je recommence une autre séquence (aléatoire)

 

donc en gros tous les x temps, j'ai une séquence y qui tourne pendant une durée z. 

 

ça marche très bien, sauf que je suis déçu du générateur de nombre aléatoire qui, je trouve, est pas si aléatoire que ça...

j'utilise cette méthode pour en générer un

 

function Randomize(x)
    if x and x ~= 0 then 
        math.randomseed(os.time()) --init du random
        fibaro.sleep(1000)
        return math.random(x)
    end
    return nil
end

 

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...