J’ai crée un widget que j’applique à une commande d’un virtuel de type Liste.
Dans mon script, je récupère la liste des options de la commande pour l’info, #ListValue#, sur laquelle j’applique une action JQuery .on(‹ click ›, … et qui change la valeur de l’info du virtuel.
Lorsque je clique dans le widget, la valeur de l’info est bien changée mais ma variable « ListValue » n’est pas mise à jour dans le widget d’ou un fonctionnement final du widget qui n’est pas OK.
J’ai cherché sur le forum sans trouver ce qui me permettrait de me débloquer.
Il est toujours possible qu’il y ai une erreur dans mon code.
Mais je me demande si il n’y a pas une subtilité du fonctionenment du core Jeedom qui m’échappe.
Par exemple, qu’elles sont les conditions qui provoquent le lancement du code du widget et donc l’exécution de la commande de mise à jour :
jeedom.cmd.update[’#id#’]({display_value:’#state#’, …
Pour ne pas surcharger, je n’ai pas joint à ce message le code de mon widget mais je peux le partager si nécessaire.
Merci pour ta réponse.
Oui, j’avais déja regardé le code du widget core.
Précision également : lorsque j’applique le widget sur la commande, le widget se met a jour et l’affichage est comme attendu. Mais si je clique pour changer la valeur, l’affichage ne bouge pas.
Bonjour,
Je me permet de revenir vers toi. Une idée ?
Une nouvelle précision, j’ignore si cela aura de l’importance pour investiguer le sujet ou si le fonctionnement du core Jeedom en dépend :
Dans la premiere ligne du code que j’ai envoyé, le commentaire n’est pas à jour.
Le libellé du fichier du code du widget est comme indiqué ci-dessous … <!-- file: /var/www/html/data/customTemplates/dashboard/cmd.action.select.HomeMode.html -->
Je suis un peu bloqué la.
J’ai fait pleins d’essais de code et je n’arrive pas a trouver ce qu’il faut faire pour que cela fonctionne.
Merci d’avance.
j’utilise alors l’attribut ‹ selected › pour allumer la valeur affichée dans mon widget.
Hors, dans ce cas, l’attibut ‹ selected › n’est affecté à la bonne option qu’après une mise à jour de la page.
Pour le moment, je n’arrive pas a voir comment et ou cela est réalisé « en temps réel » par le widget core (celui dont tu as rappellé le code ci-dessus).
Bonjour,
Après investigations donc, il me semble que j’ai compris pourquoi mon widget ne réagit pas comme je l’espérait.
Sauf erreur de ma part, mon code est bon. Ce qui se passe …
Je rappelle le contexte:
Virtuel crée avec une INFO et une COMMANDE de type LISTE qui modifie la valeur de l’info.
Un processus Jeedom crée le tag #listValue# et ce tag est utilisé en entrée dans les widgets (y compris Core) pour selectionner la valeur de l’info choisie parmi les valeurs de la liste.
L’action de sélectionner une valeur (par exemple dans un menu déroulant proposé par le widget core) PROVOQUE une mise à jour de la valeur de l’info dans le virtuel mais NE PROVOQUE PAS une mise à jour du tag #listValue#. Ce tag est mis a jour par exemple lorsqu’il y a un rafraichissement de la page.
En conséquence, utiliser le tag #listValue# juste après selection d’une nouvelle valeur de la liste et avant qu’il se soit passé un rafraichissement quelconque conduit à une utilisation erronnée.
Voila. J’espère que je ne me suis pas trompé dans mes conclusions (il faut être prudent et humble).
J’ignore si ce fonctionnement est normal, voulu ou pas ?
En tout cas, je ne sais pas comment forcer cette mise à jour avec une instruction Javascript/JQuery ?
Si quelqu’un pouvait m’aider ?
Non, non,
Regarde mon message d’il y a deux jours. J’ai pas mal cherché et finalement synthétisé ce qui coince.
Mon message commence comme ca :
"Bonjour,
"Après investigations donc, …
Peut être que pour mieux comprendre le problème, il faut savoir que dans le tag #listValue#, l’option choisie est affectée de la propriété « selected » et donc le contenu de la string #listValue# change a chaque fois qu’une valeur différente de la liste est choisie.
Si cette précision peut aider …
Il semble qu’il soit difficile de trouver quelqu’un qui pourrait m’aider sur ce point
Peut être n’ai-je pas poser le problème d’une manière assez explicite.
Je comprend aussi que, malgré leur bonne volonté, les spécialistes ont ici beaucoup de questions à traiter quotidiennement .
Pour info, j’ai pour le moment appliqué l’instruction ’ location.reload() ’ qui remet à jour la page entière lorsque la valeur de l’info/liste est changée mais cette solution n’est pas très satisfaisante.
mais si tu veux c’est de l’api js jeedom
si tu regarde je n’utilise pas le code widget (tag)
je le recréé via api js du html
chaque choix de fonction va changé les variable de temps mini/maxi
et fait une requête actu immédiate sur l’api js jeedom
j’ai pas mis l’actu (au fil du temps)
ensuite pour l’enregistrement du choix de ta liste ton navigateur peux enregistré
ou retourné sur une info virtuel
et tu utilises se genre de manip dans le plug html display
ça demande beaucoup de temps.
donc si ta solution te conviens c’est le principal même si ton idée je l’ai mise de côté
Bonjour,
Je ne maitrise encore rien des dessous de Jeedom mais j’apprend …
C’est un bel outil et Jeedom est au coeur d’un univers fascinant et passionnant, partagé par une communauté de gens vraiment sympas …
Je n’avais pas encore appréhender cette API Jeedom JavaScript dont tu parles. Je vais chercher.
Ta réponse m’ouvre probablement de nouveaux horizons pour développer mes widgets et autres applications.