Forum Lifedomus
Demande d'aide utiliser une variable générale dans JS d'un équipement - Version imprimable

+- Forum Lifedomus (http://forum-lifedomus.com)
+-- Forum : Les outils de configuration et design (http://forum-lifedomus.com/forumdisplay.php?fid=7)
+--- Forum : Config Studio (CS) (http://forum-lifedomus.com/forumdisplay.php?fid=8)
+---- Forum : Equipements (http://forum-lifedomus.com/forumdisplay.php?fid=38)
+----- Forum : Equipements (http://forum-lifedomus.com/forumdisplay.php?fid=158)
+------ Forum : Universel (Equipement générique) (http://forum-lifedomus.com/forumdisplay.php?fid=136)
+------ Sujet : Demande d'aide utiliser une variable générale dans JS d'un équipement (/showthread.php?tid=4623)



utiliser une variable générale dans JS d'un équipement - sud-domotique-expert - 01-20-2020

bonjour ,

je cherche comment on peut utiliser une variable (déclarée dans les automatismes) public {ma_var}, dans le javascript d'un équipement.

- que ce soit dans la partie commande/action ou dans le parser JS

pour la partie commande/action, j'ai trouvé une astuce consistant à
- ajouter dans l' action une variable {temp}
- créer un automate qui va appeler cette action, alors {temp} est considéré comme paramètre et on peut via l'automate lui donner la valeur de la variable public {ma_var} qu'on veut utiliser , avec des restrictions sur le type de véhiculé.

donc limité ==> si vous avez une autre solution plus directe , je suis preneur


maintenant je voudrais utiliser ma variable {my_var} dans la partie parser JS
l'astuce que j'ai trouvé consiste à déclarer une variable dans l'équipement {my_var_equip} et créer un automate qui va mettre la valeur de cette variable dans {my_var}

pareil c'est pas naturel et avec des pb de conversions , puisque {my_var_equip} ne peut être que string, double , list


idem si des solutions je suis preneur

merci


RE: utiliser une variable générale dans JS d'un équipement - mtddamien - 05-24-2020

(01-20-2020, 03:06 AM)sud-domotique-expert a écrit : bonjour ,

je cherche comment on peut utiliser une variable (déclarée dans les automatismes) public {ma_var}, dans le javascript d'un équipement.

- que ce soit dans la partie commande/action ou dans le parser JS

pour la partie commande/action, j'ai trouvé une astuce consistant à
- ajouter dans l' action une variable {temp}
- créer un automate qui va appeler cette action, alors {temp} est considéré comme paramètre et on peut via l'automate lui donner la valeur de la variable public {ma_var} qu'on veut utiliser , avec des restrictions sur le type de véhiculé.

donc limité ==> si vous avez une autre solution plus directe , je suis preneur


maintenant je voudrais utiliser ma variable {my_var} dans la partie parser JS
l'astuce que j'ai trouvé consiste à déclarer une variable dans l'équipement {my_var_equip} et créer un automate qui va mettre la valeur de cette variable dans {my_var}

pareil c'est pas naturel et avec des pb de conversions , puisque {my_var_equip} ne peut être que string, double , list


idem si des solutions je suis preneur

merci

Bonjour JL, est ce que je peut utiliser cette methode pour transmettre une variable de l'équipement en modifiant cette approche.

Actuellement, j'ai dans un équipement, la commande JS suivante :

//V11, Temperature consigne piscine
command="/_GyuHdgjhK5mi76vzvr9eW8ye2xxxxxx/update/V11?value={PiscineConsChaud}"


PiscineConsChaud étant une variable de l'équipement.


RE: utiliser une variable générale dans JS d'un équipement - sud-domotique-expert - 05-24-2020

j'ai pas forcément compris ce que tu veux faire ?
tu veux envoyer une commande à ton équipement pour lui donner un ordre sur la température de piscine à adopter ?
/_GyuHdgjhK5mi76vzvr9eW8ye2xxxxxx/update/V11?value={PiscineConsChaud}


cette donnée {PiscineConsChaud} est stockée ou ? tu la récupères comment ?

si c'est comme la température d'un thermostat qui a une consigne et un relevé.

dans ce cas quand tu récupères la valeur de la consigne actuelle, tu vas la stocker dans une variable de ton équipement
j'exploites le retour de le commande "echo" du programme qui gère mon thermostat et je récupères les données en JS

Nest_temperature = trame.substring(trame.indexOf("current_temperature:")+20,trame.indexOf("current_temperature;"));
setTmp = trame.substring(trame.indexOf("settmp:")+7,trame.indexOf("settmp;"));

puis j'affiches la consigne dans un "component steeper", celle de l'équipement dans le retour d'états du steeper, dans ce même steeper tu dis que les actions possibles (la régulation de la consigne)  se fait sur une variable globale numérique


[attachment=2686]

dans mon exemple :  setTmp est la variable de la consigne de l'équipement
et Nest_set_temp_num est la variable globale

dans l'équipement tu as une commande set_température :  /ton_programme?setTmp={temp_setTmp}

tu créés un automate , qui va se déclencher "à chaque changement" de la variable globale (ici - Nest_set_temp_num)
qui va appeler la commande set_température

la commande utilise la variable temporaire temp_setTmp qui permet de faire le transfert (dans l'automate) de la valeur chargée avec Nest_set_temp_char à la commande, et exécute la commande  "set_température"

 note au milieu je suis obligé de convertir la variable Nest_set_temp_num (numérique) en Nest_set_temp_char (string)
et comme mon steeper est avec décimale je transforme la , en . parce que mon équipement n'accepte pas le . comme séparateur décimale.

[attachment=2685]


RE: utiliser une variable générale dans JS d'un équipement - mtddamien - 05-24-2020

Merci JL t'es explication mon permis de solutionné le problème.
l'utilisation d'une variable Global, permet de transféré le la variable dans la trame.

Quelque imprime ecran 

Declencheur

[Image: 3nfv.png]

automate

[Image: 70c3.png]