Bonjour la communauté Jeedom,
Je coince sur un problème de programmation depuis quelques semaines (je ne suis pas dessus tous les jours).
Voici le contexte :
- J’ai créé un virtuel avec une commande de type string dans laquelle je passe une série de couples Nom/Valeur. Le nom est un texte et la valeur est typiquement la valeur de la batterie d’un équipement. Le tout séparé par des virgules.
- J’ai ensuite écrit un widget qui récupère la valeur et la met dans un tableau à deux entrées. Le premier indice est incrémenté à chaque équipement, le deuxième indice varie de 0 à 1 : 0 : le texte (nom de l’équipement) et 1 la valeur de la batterie.
- Une fois mon tableau alimenté, je le balaye et je classe les batteries dans 3 tableaux : Les batteries chargées, les batteries moyennes et les batteries vides (ou presque). Les valeurs des seuils sont passées en paramètre au widget.
- En final j’ai un tableau avec toutes les entrées (qui ne m’intéresse plus) les trois tableaux : chargées, moyennes, vides, le nombre d’entrées dans chacun des tableaux.
- J’affiche les trois listes proprement (un petit icone de batterie vert / jaune / rouge et le texte dans la couleur adhoc).
Tout va bien jusqu’à là.
Là où je coince :
- J’aimerai pouvoir réutiliser le résultat « Nombre de batterie faibles » qui est calculé par le widget dans un autre widget ou scénario ou autre. Je pensais copier le résultat dans une variable, ou bien mettre à jour une commande info virtuelle.
Sur le principe cela me semblait simple, mais je butte vraiment.
J’ai essayé plusieurs fonctions, sans succès, comme value, setValue, ou le get et le push par url… j’ai surement des problèmes de syntaxe.
J’ai réussi avec une fonction php lancée depuis un bloc code dans un scénario (trouvé sur l’ancien forum) :
$cmd=cmd::byId(766);
$val=$cmd->execCmd();
$cmd->event($val+10);
La commande que j’ai créé (id 766) est bien mise à jour (incrémentée de 10 dans l’exemple). Mais voila, je n’arrive pas à retranscrire ce code php en javascript pour le mettre dans le widget. Je ne maitrise pas tout dans JS.
Je suis sûr que c’est faisable, mais je n’ai rien trouvé dans la communauté ou l’ancien forum, que je parcours depuis près d’un mois.
Si quelqu’un a une idée, une piste, ou même une autre méthode, je regarderai avec attention.
Merci.