Faire une opération mathématique sur une “variable de scène”

Pourquoi pas la comparaison de 2 valeurs.
Je ne sais pas si c’est pertinent.
Par exemple comparé la valeur de la température de consigne et la valeur de température dans la pièce.
Alors si les deux valeurs sont égale on stop le chauffage.
Je ne sais pas si c’est réalisable.

4 « J'aime »

peut etre aussi l arrondi et le modulo ?

2 « J'aime »

Oui en effet

Je ne sais pas si tu as vu dans le screenshot, j’ai prévu d’ajouter dans cette PR la possibilité de mettre des variables dans la valeur du bloc « Continuer seulement si », est ce que ce n’est pas ce que tu demandes ?

Oui on peut mettre arrondi au plus proche, arrondi à l’entier supérieur et arrondi à l’entier inférieur ça peut être intéressant d’avoir les 3. Bonne remarque sur le modulo je note

1 « J'aime »

Ce n’ai pas forcément une demande pour moi mais le « continuer seulement si » c’est bien.

Pour compléter sur les conditions, il y a les opérateurs des expressions conditionnel dans mathjs ? : comme les ternary en js ça permettra de faire des pseudos si…sinon dans une action.

Plus globalement sur l’ajout des calculs dans les scènes, je pense qu’on devrait autoriser tous les opérateurs et limiter les fonctions mathjs (celles qu’on appel avec des parenthèses et des paramètres, c’est là que les problèmes de sécurité peuvent apparaitre)

Ça y est, la PR est là

Le code permet d’utiliser des variables et faire des calculs dans les scènes au niveau des blocs « continuer seulement si » et « contrôler un appareil » (voir captures d’écrans un peu plus haut)

Si vous voulez faire des tests, une image est disponible ici bertrandda/gladys:scene-var-eval

5 « J'aime »

Merci pour le travail @bertrandda :clap: C’est vraiment chouette !

Je t’ai fais quelques retours sur la PR : Add calcul and use device value in scene by bertrandda · Pull Request #1742 · GladysAssistant/Gladys · GitHub

C’est fixé
L’image bertrandda/gladys:scene-var-eval est à jour

1 « J'aime »

@bertrandda Je ne sais pas si tu avais vu mes feedbacks ? :slight_smile:

Oui j’ai vu, mais je n’ai pas encore eu le temps de régler tout ça, j’essayerai de le faire ce soir

2 « J'aime »

C’est bon, tes retours sont réglés et l’image docker est à jour

1 « J'aime »

@bertrandda Merci pour les retours, c’est nickel comme ça :slight_smile: Beau boulot, c’est très clair et ça fonctionne super ! J’ai testé en réel, j’ai pas trouvé de bug :raised_hands:

C’est mergé sur master et ça partira dans la prochaine version de Gladys.

4 « J'aime »

Super ça !! :grin:

1 « J'aime »

Enfin, jen avais mare qu’à chaque fois que ma co sautait, mon appel vers mathjs soit ko dans mes scenes !

Petite question:
Le résultat pourra-t-il être utilisé pour ‹ contrôler un appareil ›?

Yes :slight_smile: Regarde mon screenshot ci-dessus

1 « J'aime »

Bonsoir,
Genial tout çà hâte de tester, çà devrait pour m’aider pour la gestion du chauffage, même si moins d’actualité pour le moment​:sunny::sunglasses:.
@bertrandda Est-il possible de faire les opérations sur 2 variables.

Merci pour cette dev

Oui, tu peux mettre plusieurs variables dans le même calcul, du moment que ta variable est déclarée plus haut dans la scène (via une requête ou un bloc récupérer une valeur)

Pour ma part j’ai un scénario d’utilisation de calcul, que j’imagine impossible pour le moment.
J’aimerai que la pompe de ma piscine soit en marche pendant x temps (en Heure) .

En l’occurrence : x = température eau / 2

Est il possible techniquement dans l’avenir de pouvoir utiliser le résultat de ces calculs dans d’autres types de bloc ?
Du genre tout bêtement :

  • allumer la pompe
  • attendre X heures
  • éteindre la pompe

?

@bertrandda Pour info, @AlexTrovato a trouvé une régression dans cette feature, si jamais le contrôle d’un appareil envoyait une valeur égale à 0 ( très probable, car 0 c’est « OFF » pour tous les appareils), la scène s’arrêtait :grimacing:

Heureusement ça n’est pas parti en production et il m’a fait une PR a temps ! :smiley: Merci @AlexTrovato !

Le correctif : Fix zero as a number by atrovato · Pull Request #1773 · GladysAssistant/Gladys · GitHub

2 « J'aime »