Widget pas appliqué si valeur supérieure à 999

Bonjour,

En me basant sur le post de @ajja17orange que je remercie au passage (Solid Gauge - #4 par ajja17orange), je viens de me créer un widget permettant d’avoir une image « off » si la puissance de mon équipement est inférieures à 10 W, et un affichage de la puissance si elle est supérieures à 10 W avec des couleurs différentes :

Codes : <div style="border: 8px solid #ffcc00; border-radius: 100%; width: 80px; height: 80px; background: transparent;"><div style="position: relative; top: 25px;font-size: 22px;">#value##unite#</div></div>

Cela fonctionne très bien, mais quand la puissance est supérieure à 999 W, le widget n’est plus appliqué (comme le 3000 W du dessus). Si je met une valeur inférieure à 1000 W, pas de souci :

Je précise que j’ai mis un espace devant mes unités afin de que la conversion en « kW » ne se fasse pas automatiquement. J’ai essayé de changer la taille du cercle (200 x 200 par exemple), pas d’amélioration.

Auriez-vous une explication ?

Merci par avance.

Bonjour à tous,

Je précise mon problème, cela n’est finalement pas lié à la valeur de 999…
J’ai essayé en changeant mes seuils : 20 / 500 / 700 / 800 (au lieu de 20 / 500 / 1000 / 2000), je perd l’affichage du Widget à 700 W => les tests 4 et 5 ne sont pas reconnu !!
Y-a-t-il une limitation à 3 tests ? J’ai regardé la doc, je n’ai rien vu de particulier à ce sujet…
Savez-vous comment contourner le problème ?

Salut,

Je vois pas trop mais tu peux déjà essayer de mettre tes tests dans l’ordre inverse en commençant par

si
#value# >= 2000
sinon si
#value# >= 1000
etc....

Car dans l’absolu la condition est toujours vraie à partir de 20 à voir si ça arrange le reste

tu dois borner !
0 <= #value# < 20
20 <= #value# < 500
500 <= #value# < 1000
1000 <= #value# < 2000
#value# >= 2000

Bonjour Salvialf, et merci pour ton retour.

En déroulant les tests dans ce sens, aucun widget n’est appliqué… Ce qui est bizarre d’ailleurs…

Salut,

Tu es en thème Dark et n’as renseigné un résultat qu’en thème Light c’est donc normal que le widget ne s’applique pas.

Bonjour prfalken,

J’ai essayé ta méthodo, widget non appliqué :

J’ai essayé en mettant des && (comme dans ce post : Widget multistate. Les icones ne s'affichent pas - #21 par mich0111), résultat similaire à mon post initial :

Merci pour ton aide !

Je viens de tester en renseignant « Light » et « Dark », cela n’a pas d’impact :

tu peux essayer comme ca :

Et nous copier ce que tu mets dans résultat light ou dark car on ne voit qu’une partie or des <div style ou autre a cet endroit plutot que de choisir une icone a l’aide du bouton choisir, je suis pas convaincu non plus !

Le premier test est une image :
<img class='img-responsive' src='data/img/Off - Resized..png'>

Les 4 suivants sont ceux cités dans mon post initial avec des couleurs différentes :

<div style="border: 8px solid #7FFF00; border-radius: 100%; width: 80px; height: 80px; background: transparent;"><div style="position: relative; top: 25px;font-size: 22px;">#value##unite#</div></div>
<div style="border: 8px solid #FF8C00; border-radius: 100%; width: 80px; height: 80px; background: transparent;"><div style="position: relative; top: 25px;font-size: 22px;">#value##unite#</div></div>
<div style="border: 8px solid #FF0000; border-radius: 100%; width: 80px; height: 80px; background: transparent;"><div style="position: relative; top: 25px;font-size: 22px;">#value##unite#</div></div>
<div style="border: 8px solid #7FFF00; border-radius: 100%; width: 80px; height: 80px; background: transparent;"><div style="position: relative; top: 25px;font-size: 22px;">#value##unite#</div></div>

Avec ta proposition, cela fonctionne (couleurs : bleu / jaune / gris et valeur test à 1500) :

J’ai testé en rajoutant une autre condition, elle est reconnue (couleurs : bleu / jaune / gris / orange et valeur test à 1500) :

Cela semble venir des codes… Mais je n’arrive pas à trouver ce qui ne va pas, sachant que les lignes 2 et 3 sont fonctionnelles, mais pas les 4 et 5 qui sont identiques aux 2 et 3…

Bonjour,

J’ai essayé de réduire le code au maximum (<div style="border: 6px solid;"></div>) sans changer les expressions, j’avais toujours le problème. J’ai supprimé le 3ème test, cela fonctionnait sans problème. J’ai rajouté le 3ème test en mettant la même expression que précédemment et le même résultat → Pris en compte !!!
J’ai donc rajouté le code initial → Idem, pris en compte !!

Cela fonctionne dorénavant, mais je ne sais pourquoi car je n’ai rien changé… Du coup, j’ai rajouté une 4ème condition, cela fonctionne aussi :

Merci encore à tous pour votre aide !!

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.