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

Exact, ça m’est venu après.

étrangement, le code 200 est renvoyé mais Gladys renvoie une erreur (donc pas de variable à réutiliser).

Ok, en fait le fait d’utiliser des accolades hors variables, fait générer l’erreur. Je met à jour l’issue GitHub.

1 « J'aime »

@lmilcent En fait l’erreur vient du fait qu’on ne gérait pas correctement les tableaux dans les réponses, la fonction de parsing ne gérait que les objets.

J’ai fais une PR qui fixe l’issue:

Est-ce que tu as un environnement de DEV pour tester?

En attendant sinon, tu peux utiliser l’API Math.js avec un string simple au lieu d’un tableau, et ça fonctionne bien :slight_smile:

Ce que j’ai observé lors de mes tests:

  • Fait d’abord un test avec une expression sans variable, genre « 10+10 » (attention, pas d’espace, Math.js n’aime pas les espaces visiblement)
  • Appuie sur « Essayer », ce qui va remplir le dictionnaire de variables dispo, car la requête n’a pas besoin de dépendance pour tester la requête
  • Ensuite, remplace l’expression par l’expression correcte que tu veux avec les variables souhaitée. N’appuie pas sur essayer, les variables ne sont pas dispo.
  • Tu peux tester l’exécution de la scène avec le bouton « Démarrer » en haut de la scène

Chez moi ça marche comme ça :slight_smile:

C’est la méthode que j’ai faite ensuite. Mais de mon côté, ça ne fonctionne pas sur la version actuelle de Gladys.

Je n’ai pas particulièrement d’environnement de test, j’utilise directement ma production en sauvegardant ma DB avant.
En cas d’erreur, je restaure la DB et repart sur la version stable :sweat_smile:
On est pas sur un service critique, donc je peux me le permettre !

Ah oui, il y avait un autre bug en fait, les attributs qui sont retournés en « null » faisaient crasher la génération des variables :smiley: Il faut attendre le correctif du coup.

Ok, je parlais plus d’environnement de dev (genre sur ton laptop, pour pouvoir tester les PR)

Bon pas grave, je vais tester moi même extensivement avec l’API de Math.js et ça partira dans la prochaine release de Gladys (pas celle que tu verras aujourd’hui)

J’avais commencé à m’en faire un, mais le soucis était au niveau du service Zigbee. Sans adaptateur, je ne pouvais pas l’utiliser avec les données de ma DB (afin de faire des tests sur des données réelles).
Il n’y aurait pas une astuce pour simuler un adaptateur, ne pas lancer Zigbee2MQTT mais pouvoir tout de même utiliser les données en DB ?

Ca dépend de ce que tu veux tester, effectivement pour tester des PR lié au Zigbee2mqtt, ça sera pas évident, après pour tester des trucs lié au core, pas besoin de services, moi j’utilise souvent le service MQTT en local pour tester, j’envoie des valeurs sur un mosquitto local ( J’utilise https://mqttx.app/ ), je me fais un petit dashboard, et ça suffit pour tester la plupart des développements core!

Si jamais tu veux tester avec ta DB, pour ne pas que ça ait d’impact sur ta prod, il faut que tu désactive tout ce qui est lié à Gladys Plus pour pas que ça se connecte à la place de ta prod.

En général ce que je fais moi quand je veux loader une DB d’un user, c’est qu’en amont de lancer Gladys, je vide la table t_variable qui stocke tous les credentials de tous les services, et comme ça je suis certain que lancer une instance de test ne contactera pas en réel les services du user (calendriers, Gladys Plus, etc…)

Merci pour l’info ! J’y aurais pas pensé.

Z2m supporte le tcp via ser2net, je vais m’y pencher bientôt. Je ne sais pas si @spenceur a testé

Ça permet de rendre dispo le dongle via réseau

1 « J'aime »

C’est prometteur !

Hello @VonOx , est ce que cette solution de z2m via ser2net pour rendre le dongle dispo via réseau serait compatible avec wsl ? car wsl les port usb ne sont pas reconnu …
autre question : est ce qu un capteur peut etre suivi par plusieurs dongles z2m (ex Sonoff) ?

Comme dit plus haut, je n’ai pas pas encore testé, mais je penses que oui.

Les device zigbee sont appairés à un dongle. C’est exclusif.

1 « J'aime »

Une autre solution sinon qu’on a souvent abordé c’est d’être capable de se connecter à un MQTT distant sur l’intégration Z2M, ça permettrait de se connecter à un Z2M sur un Pi distant, et de voir ce que ça donne sur une version de Gladys de dev

@lmilcent Pour info j’ai avancé sur le sujet aujourd’hui par rapport à ton bug avec la requête HTTP vers Mathjs, c’était pas simple car du coup j’ai du changer le format utilisé par le front pour les variables pour gérer les tableaux, tout en restant compatible avec l’existant et les différents « consommateurs » de ces variables: le bloc ‹ message › et le bloc ‹ continuer seulement si ›.

J’ai poussé sur ma PR la dernière version, je reprend lundi dessus ( Il est 19h ici :smiley: )

Si jamais tu veux jouer ce week-end et t’assurer que ça fonctionne bien, tu peux te faire popper un petit env de développement, pas besoin d’importer ta DB vu que c’est juste dans les scènes, tu créé juste une nouvelle scène :slight_smile:

1 « J'aime »

Merci à toi et bon weekend, profite bien !

1 « J'aime »

Pour info j’ai mergé la PR qui fixe le bug avec l’API Math.js, ça partira dans la prochaine version de Gladys !

1 « J'aime »

Top merci :slight_smile:
Je vais pouvoir me faire une scène qui utilise une sorte de calcul de moyenne, en attendant que Gladys le supporte.

Use case

  1. M’alerter si mon frigo se réchauffe :
    Récupérer la valeur du capteur de mon frigo toutes les 30 minutes pendant 2 heures et m’alerter si la moyenne de ces valeurs est supérieur à un seuil.

  2. (en été seulement) M’alerter quand j’aère mon appartement, mais qu’il commence à se réchauffer :
    Si la moyenne des températures de mon salon et salle à manger est proche, identique ou supérieur à la température extérieur, me rappeler de fermer les fenêtres.

Testé et approuvé (https://gladys-new-device-name.netlify.app/) !

image
(Mon capteur de dehors n’a plus de batterie depuis 2 semaines car il fait en réalité 13°C)

3 « J'aime »

Pratique Gladys Plus pour tester les fix purement front :slight_smile:

2 « J'aime »

Absolument :slight_smile:
Pas besoin d’environnement de dev côté utilisateur !

1 « J'aime »