Widget HTML : Avis d'expert javascript demandé

Bonjour,
J’aurais un problème à soumettre, à savoir un wiget HTML affichant un mode ECO ou CONFORT avec un changement d’icône en fonction de l’entrée digitale N°2 (ECO avec lune et CONFORT avec soleil par exemple). J’ai cru m’en sortir tout seul mais… c’est un échec total :sob:
De plus, le widget ne réagit même pas au changement d’état de l’entrée digitale en question. Je m’étais pourtant inspiré de quelque chose qui fonctionne bien dans un autre widget.

var isSwitchedOn = datasources["XML_V4"]["response"]["in"][3] == 0;// "in"3 = Entrée digitale N°2
var color = `color: #${ isSwitchedOn ? '00ffff' : 'ffff00' };`;

return `
<div class="widget" style="${color}">
  <div class="tw-display">
    <div class="tw-tr">
      <div class="tw-value-wrapper tw-td">
        <span class="glyphicons glyphicons-${ isSwitchedOn ? "moon" : "sun" } x2"></span>
      </div>
      <div class="tw-value" style="font-size: 18px; margin: 20px 0 0 20px;${color}">
         Mode  : ${ isSwitchedOn ? "ECO" : "CONFORT" }
      </div>
    </div>
  </div>
</div>
`;

Où ai-je fait une (des) erreur (s) ?
Merci pour votre aide.

bonjour,

var color =`

il manque le backquote , mais il a peut-être disparu lors de ton copier/coller du code
EDIT : OK, après mise en forme de ton code par @ZogStrip, le bacquote est bien prèsent.

le datasource XML_V4 est bien enregistré sur le dashboard courant ?
quel fichier utilises-tu IO.xml ou bien status.xml ?
si tu utilises IO.XML, le script est ok
si c’est Status.xml, il faut utiliser [« Btn3 »] au lieu de [« IN »][3]

2 « J'aime »

Merci pour ta réponse rapide. Je récape → 1) le datasource est bien enregistré sur le dashboard (il y a plusieurs widget html qui fonctionnent sur ce même dashboard.
2) j’utilise bien le fichier io.xml

Je sèche:wink:

je ne vois pas d’erreur dans le script.
la vérité est ailleurs (???)

1 « J'aime »

Lorsque vous ouvrez la console de votre navigateur, voyez-vous des erreurs JavaScript ?

essaie avec

var isSwitchedOn = datasources["XML_V4"]["response"]["in"][3] < 1;// "in"3 = Entrée digitale N°2

Je ne sais pas pourquoi, mais fmmomo avait rencontré ce problème.

Merci pour votre aide. Je suis désolé de n’être pas d’une grande utilité dans ce domaine.
J’ai ouvert pour la 1ère fois la console du navigateur, il y a plusieurs pages à l’écran, sans que je puisse y comprendre qqchose. Je vous joins un extrait

je ne sais pas si c’est utile pour vous?

1 « J'aime »

J’ai essayé avec ta proposition, c’est idem. Entre temps, j’ai redémarré l’IPX800 ainsi que mon PC (en désespoir de cause), c’est idem.
Il y a une diablerie là-dessous.

1 « J'aime »

du coup on risque de se poser trop de questions, et taper à côté. :frowning:

comment s’affiche le widget, peux-tu nous faire une capture ?
comment est définie la datasource ?
qu’est-ce qui est relié à l’entrée 2 ?

Pas vraiment, mais je crois que je sais d’où vient le problème :slight_smile:

Vous parlez de gérer l’entrée digitale n°2 mais vous utilisez l’état de l’entrée digitale n°4 !

En effet, vous utilisez

datasources["XML_V4"]["response"]["in"][3]

qui donne le status du l’entrée digitale 3 + 1 = 4, alors qu’il faut utiliser

datasources["XML_V4"]["response"]["in"][1]

qui donne le status de l’entrée digitale 1 + 1 = 2 :wink:

3 « J'aime »

Bien vu, je n’avais pas tilté sur l’inversion d’index :frowning:

Que dire à part BRAVO !!! et surtout un super grand merci :slight_smile:
Honte à moi :confounded:

2 « J'aime »

Merci à toi aussi, bien-sûr.
Vous êtes les Chevaliers Blancs de ce topic :slight_smile:
Cdlt.

2 « J'aime »

Bonsoir @ZogStriP,

Dans le 14ème message de ce post il y a le widget de @Aspro95 qui est très simpa, si
j’avais un script fonctionnel je pourrai éventuellement l’adapter.
Malheureusement, le script ne fonctionne pas, et je ne comprend pas pourquoi absolument
rien ne se passe (ni message d’erreur, ni icones mal placées…).
Je vais finir par croire que j’ai du mal avec « copier/coller ».
Le script tel qu’il est est-il complet …?

Cdt

Avez-vous une source de données sur le dashboard sur lequel vous utilisez le widget qui s’appelle « XML_V4 » ?

J’ai simplement modifié ceci:

var isSwitchedOn = datasources["XML_V4"]["response"]["in"][1] == 0;

non, le flux « XML_V4 » n’est pas fourni par l’IPX ?

Non, il faut créer une source de données pour que les widgets se mettent à jour :wink:

Ok, j’étais mal parti… j’étais tellement persuadé du contraire que je ne me suis même pas
posé la question (le nom du flux de donné est très bien choisi) ^^

pour utiliser le script tel quel, la datasource doit pointer sur io.xml.

1 « J'aime »

Widget HTML avec ipx800_V1 version 2.05.03 :sweat_smile:
J’ai créé un widget HTML après avoir créé une source de données V1 (X-Devices (XML) l’autre type XML ne fonctionnant pas.
J’arrive à afficher dans le widget la température sur l’entrée analogique1 de la V1. Jusque là tout va bien :innocent:
Je voudrais enrichir le widget avec un icône et afficher °C derrière la valeur et là c’est galère !

return `
<table width='100%'>
  <tr>
    <td align=left valign=middle width=‘10%’><span style=‘color: #ff00ff'class="glyphicons glyphicons-temperature x2"></span></td>
    <td align=left valign=middle width=‘50%’><span style=‘color: #ff00ff'>Départ plancher</span></td>
    <td align=right valign=middle><span style=‘color: #ff00ff;font-size: 20px;'>${((datasources["V1"]["response"]["an1"])*0.00323)*100).toFixed(1)} °C</span></td>
  </tr>
</table>
`;

Exemple de ce que cela donne

Qu’en pensent les experts SVP ?
Cdlt