Random sur le nombre de répétition

Page : index.php?v=d&m=simupre&p=simupre&id=285#simultab
Jeedom_version : 4.0.40
Uname : Linux jeedom 3.14.79-94 #1 SMP PREEMPT Mon Nov 21 17:13:27 BRST 2016 aarch64 GNU/Linux


Message :
Bonjour,

Serait il possible de rajouter random sur le nombre de répétition ? J’aimerais pouvoir allumer une lumière plusieurs fois sur une soirée, mais pas le même nombre de fois le lendemain.

Merci.

Bonsoir,
Rien ne t’empêche de lancer une scenario journalier qui générera un nombre aléatoire par une fonction rand dans un bloc code.
Ensuite, cette variable pourrait être utilisée afin de fixer le nombre de répétitions

Bonjour
C’est exactement ce que j’ai fait
En plus j’ai ajouté une variable qui stocke la valeur précédente compare l’actuelle si égalité j’ajoute +1 dans la limite du max de mon random

C’est un effectivement un workaround. Mais pourquoi ne pas pouvoir directement utiliser une fonction random dans bloc de retry ? Y a t’il des choix technique derrière cet empêchement ?

La doc du plugin, mentionne :

Repétition : permet de repeter X fois l’action de debut/fin sur la période (attention la période doit etre supérieure à 2min, vous ne pouvez pas faire 5 répetition sur une simulation de durée 5min par exemple). Important il est recommandé de ne pas mettre plus de 5 en repetion, au dela le systeme peut ne pas les éxécuter

Il s’agit donc de faire un aléa de 1 à 5 qui respecte une tempo minimum.
Même si la modification du code est toujours faisable, la team Jeedom est peu nombreuse et doit, à mon sens, se focaliser sur les fonctions essentielles.
Je ne sais pas si vous avez lu la roadmap 2020. En le faisant, vous pourrez voir qu’elle est très très copieuse.
Aussi, si un workaround est possible, autant l’utiliser et proposer une suggestion d’amélioration pour quand ils auront le temps.

Bonne journée

C’est donc un problème de priorité + temps et non une problème technique.

Oui j’ai vu la roadmap très fournie :slight_smile: Personnellement Je trouve le workaround un peu compliqué par rapport à ce que ça pourrait être, mais ça n’est que mon point de vue.

Merci encore à l’équipe Jeedom

J’ai certainement du louper quelque chose @mich0111, j’ai voulu tester ta proposition.

J’ai donc créer une variable qui me génère un nombre aléatoire tous les jours (ça c’est bon) et l’appliquer dans le champ répétition, mais ça ne fonctionne pas, lorsque j’enregistre, le contenu s’efface.

J’ai essayé:

  • #variable(random1to5)#
  • variable(random1to5)

Une idée ?

Merci

Bonjour,

Non, ça ne marche pas comme ça.
Tu crées un scénario que tu lances journellement à minuit 5 par exemple.
Ce scenario contient juste un bloc code avec ça dedans :

// Renvoi d'un entier aléatoire entre une valeur min (incluse) et une valeur max (incluse).
$min = 1;
$max = 5;
$scenario->setdata('alea',rand($min,$max));

Et donc, tu auras ainsi une variable aléatoire « alea » comprise entre 1 et 5.
Ensuite, tu peux l’utiliser comme toutes les variables variable(alea).

Ou tu déclares ta variable alea

Puis dans un bloc action du scénario
Variable Aléa Rand(1,5)

Bloc SI variable(aléa) == 1
Etc

Effectivement, j’étais passé à côté de la fonction mathématiques rand() dans les scénarios.

Mais on ne peut pas passer cette variable à un scénario de simulation. J’ai tenté de le faire pour déterminer des créneaux de fin en fonction de l’heure du lever de soleil. Les fenêtres de saisie n’admettent pas la syntaxe « variable() ».