Accueil » mai 2020
Les fonctions mathématiques

Cet article est en cours de rédaction, je compléterais et changerais peut-être l'affichage de celui-ci en fonction de mes recherches et en fonction de la méthode de classement que je trouverais la plus simple... (Pourquoi faire compliquer ?)



VariablesExplicationsExemplesRésultatsRemarques
rand(1,10)Donne un nombre aléatoire de 1 à 10.
randText(texte1;texte2;texte…​..)Permet de retourner un des textes aléatoirement (séparer les texte par un ; ).

Il n’y a pas de limite dans le nombre de texte.
randText(il fait #[salon][oeil][température]#;La température est de #[salon][oeil][température]#;Actuellement on a #[salon][oeil][température]#)La fonction retournera un de ces textes aléatoirement à chaque exécution.
 randomColor(min,max)Donne une couleur aléatoire compris entre 2 bornes ( 0 => rouge, 50 => vert, 100 => bleu). randomColor(40,60)Retourne une couleur aléatoire proche du vert.
 trigger(commande)Permet de connaître le déclencheur du scénario ou de savoir si c’est bien la commande passée en paramètre qui a déclenché le scénario.trigger(#[Salle de bain][Hydrometrie][Humidité]#)1 si c’est bien #[Salle de bain][Hydrometrie][Humidité]# qui a déclenché le scénario sinon 0
 triggerValue(commande)Permet de connaître la valeur du déclencheur du scénario.triggerValue(#[Salle de bain][Hydrometrie][Humidité]#)80 si l’hydrométrie de #[Salle de bain][Hydrometrie][Humidité]# est de 80 %.
 round(valeur,[decimal])Donne un arrondi au-dessus, [decimal] nombre de décimales après la virgule.round(#[Salle de bain][Hydrometrie][Humidité]# / 10)Renvoie 9 si le pourcentage d’humidité et 85
 odd(valeur)Permet de savoir si un nombre est impair ou non. Renvoie 1 si impair 0 sinon.odd(3)Renvoie 1
 median(commande1,commande2…​.commandeN)Renvoie la médiane des valeurs.median(15,25,20)Renvoie 20
 time_op(time,value)Permet de faire des opérations sur le temps, avec time=temps (ex : 1530) et value=valeur à ajouter ou à soustraire en minutes.time_op(#time#, -90)s’il est 16h50, renvoie : 1650 - 0130 = 1520
 time_between(time,start,end)Permet de tester si un temps est entre deux valeurs avec time=temps (ex : 1530), start=temps, end=temps.

Les valeurs start et end peuvent être à cheval sur minuit.
 time_diff(date1,date1[,format])Permet de connaître la différence entre 2 dates (les dates doivent être au format AAAA/MM/JJ HH:MM:SS).

Par défaut (si vous ne mettez rien pour format), la méthode retourne le nombre total de jours.

Vous pouvez lui demander en secondes (s), minutes (m), heures (h).

Exemple en secondes time_diff(2018-02-02 14:55:00,2018-02-25 14:55:00,s)
 formatTime(time)Permet de formater le retour d’une chaine #time#.formatTime(1650)Renvoie 16h50
 floor(time/60)Permet de convertir des secondes en minutes, ou des minutes en heures (floor(time/3600) pour des secondes en heures)floor(130/60)Renvoie 2 (minutes si 130s, ou heures si 130m)

Les tags

Cet article est en cours de rédaction, je compléterais et changerais peut-être l'affichage de celui-ci en fonction de mes recherches et en fonction de la méthode de classement que je trouverais la plus simple... (Pourquoi faire compliquer ?)



TagsExplications
#seconde# Seconde courante (sans les zéros initiaux, ex : 6 pour 08:07:06)
#heure# Heure courante au format 24h (sans les zéros initiaux, ex : 8 pour 08:07:06 ou 17 pour 17:15)
#heure12# Heure courante au format 12h (sans les zéros initiaux, ex : 8 pour 08:07:06)
#minute# Minute courante (sans les zéros initiaux, ex : 7 pour 08:07:06)
#jour# Jour courant (sans les zéros initiaux, ex : 6 pour 06/07/2017)
#mois# Mois courant (sans les zéros initiaux, ex : 7 pour 06/07/2017)
#annee# Année courante
#time#L'heure actuelle (de jeedom) sous forme numérique.
#timestamp# Nombre de secondes depuis le 1er janvier 1970
#date# Jour et mois. Attention, le premier nombre est le mois. (ex : 1215 pour le 15 décembre)
#semaine# Numéro de la semaine (ex : 51)
#sjour# Nom du jour de la semaine (ex : Samedi)
#njour# Numéro du jour de 0 (dimanche) à 6 (samedi)
#smois#Nom du mois (ex : Janvier)
#IP# IP interne de Jeedom
#hostname# Nom de la machine Jeedom
#trigger# Peut être le nom de la commande qui a déclenché le scénario, ‘api’ si le lancement a été déclenché par l’API, ‘schedule’ si il a été lancé par une programmation, ‘user’ si il a été lancé manuellement
#query# interaction ayant déclenché le scénario
#profil# profil de l’utilisateur ayant déclenché le scénario (peut être vide).

Utilisation de la fonction lastScenarioExecution(scenario)



Explication de la fonction lastScenarioExecution fournie par la documentation de Jeedom :

  • lastScenarioExecution(scenario) : Donne la durée en secondes depuis le dernier lancement du scénario. 0 : Le scénario n’existe pas
  • lastScenarioExecution(#[Salle de bain][Lumière][Auto]#) Renvoie 300 si le scénario s’est lancé pour la dernière fois il y a 5 min

La documentation est pour moi légèrement incomplète et peut prêtée à confusion.

Pour éviter tout problème, utiliser l'ID du scénario dans l'argument (contenu de la parenthèse) de la fonction.

Exemple avec un scénario dont l'ID est 5 : lastScenarioExecution(5)

La fonction lastScenarioExecution ne peut pas être utilisée dans le scénario dont le temps doit être calculé, le temps d'exécution restera toujours à 0, le scénario devant s'exécuté pour utiliser la fonction... Il faudra donc passer par un scénario intermédiaire.