Probleme affichage string

Tags: #<Tag:0x00007f38513d64f0> #<Tag:0x00007f38513d6428>

Bonjour,

j’ai un soucis sur l’affichage de string sur le dashboard (widget defaut)
peut-etre du aux caracteres speciaux?

exemple: je me remonte des infos de gazpar en mqtt dont une date.

parfois je vois ça:
image
je n’ai pas encore poussé pour savoir si c’est au refresh de la valeur ou lié à autre chose.

il suffit que je rafraichisse la page pour voir ça:
image

je remarque aussi la meme chose directement dans l’équipement:
image

quelqu’un a une idée de ce qui genere ces \ ?

Edit: j’ai oublié la base…
je suis en 4.0.61

Apres test, je confirme ce que je pensais :

Au refresh de la valeur, les \ apparaissent sur le Dashboard.
Je rafraîchis la page, ils disparaissent.

pour donner un peu de contexte a mon test: j’ai rafraichi en relançant mon script de mise à jour, mais la valeur n’a pas bougée, seul le collectdate a changé (je ne sais pas si ça a un impact)

Je suis spécialiste des sujets ou je parle tout seul on dirait…

@Salvialf, mon expert widget, une idée du soucis?

C’est un soucis uniquement chez moi du coup?

du coup j’ai fait un F12 mais ça sort de mes compétences.

cette partie là est identique avant et apres le refresh:
image

par contre celle là non:
image

si je lance mon scenario qui rafraichit la valeur, le state contient les \:
image
si je rafraichis la page il ne les contient plus
image

quelqu’un peut m’expliquer comment marche cette partie que je sache ou chercher?
il y a un comportement different au chargement de la page et au refresh de la valeur mais pas moyen de trouver ou c’est géré dans le widget… je suppose que c’est ailleurs mais je sais pas ou.

personne a d’idee?

Je l’ai encore vu aujourd’hui, au moins c’est reproductible…

Je voudrais pas embêter @Jeedom-Team en ouvrant un ticket au support pour ça, c’est juste de l’affichage ils ont sûrement des taches plus importantes à faire.

Si quelqu’un peut m’indiquer où c’est géré je peux déjà voir si je trouve le soucis dans le code.

En gros il faut que je compare le code qui gère l’affichage à celui qui gère le refresh, il doit y avoir une différence qui cause ça.

Salut,

Plutôt qu’un défaut d’affichage, moi je regarderai du coté de ton scénario… et de ce que te retourne MQTT… Que ça disparaisse au refresh c’est une chose, mais c’est pas forcement un comportement étonnant si au début, il y a un truc pas très net dans le champ.

Sauf que si ça venait de la valeur renvoyée par mon scénario, le fait de rafraîchir le Dashboard ne résoudrait pas les soucis d’affichage non?

Petite précision, je vais quand même après manger faire un virtuel et un scénario écrivant directement la commande pour verifier

Tu fais comme tu veux, mais ça ne devrait même pas s’afficher comme ça…
Vérifie que le format avant est correct, si c’est le cas alors il sera toujours le temps de faire une recherche du coté de l’affichage…

EDIT: Un virtuel avec une info mise par scénario et une autre info avec le format xx/xx/xx en dur

Alors du coup le problème n’est pas dans le sens que je pensais et il y en a 2 (je reproduis le cas avec mon virtuel et scénario)

Côté #plugin-jmqtt : la valeur de mon info se retrouve à 14\/09\/2020 Alors que le payload affiche bien 14/09/2020

Côté widget core, le chargement du Dashboard enlève ces \ , et ils apparaissent au refresh. C’est donc le chargement qui n’affiche pas la vrai valeur, le refresh est correct.

ça c’est une mécanique de caractère d’échappement classique

C’est ni un beug coté mqtt, ni un bug dans le core, juste un incompatibilité de mécanisme entre les techno (PHP/JS etc)

La bonne pratique c’est de ne pas envoyer la date formatée avec / … Rien qu’en anglais/français ça ne veut pas dire la même chose mais d’envoyer plutôt un timestamp que l’on formate par la suite. Et comme un timestamp, c’est juste des chiffre tu n’as pas de souci

Tout à fait, çà sent le « / » dans un json balancé en string … A lire les restrictions du format json, notamment sur les / :roll_eyes:

C’est une chaîne de caractère (entre " dans le payload), donc je ne vois pas pourquoi il y a un ajout du \

Pour le widget, je ne suis pas d’accord, l’affichage a l’ouverture de la page et au refresh de la valeur devrait être consistant (soit il affiche toujours les \ présent dans la valeur soit il ne les affiche jamais)

Parcequ’un payload c’est du json

justement : les " en PHP ça s’interprète… A l’inverse de ’ qui ne s’interprète pas…

Le json m’affiche: {"date":"14/09/2020","valeur":3.5}

Je m’attendrzis À retrouver la même valeur dans l’info associée non?

Je voudrais bien envoyer la date dans un autre format, mais c’est ce que fournit l’excel de grdf…

Ce qui me gêne le plus est du coup le widget qui parfois affiche les \ et parfois non suivant si c’est le chargement de la page ou le refresh de la valeur…

Doit y’avoir un \ qui se cache par là :upside_down_face:

Quand je test la valeur du payload, pas de \
Quand je test la valeur de date je les ai…

Si le fonctionnement normal du widget est de les enlever, ça ne me gêne pas de toute façon, mais alors il faut que ce soit aussi fait au rafraîchissement de la valeur et pas seulement au 1er affichage
C’est la qu’il y a une incohérence qui me gêne : le fait de rafraîchir ma page ne devrait pas changer l’affichage de la valeur si celle-ci n’a pas changé.