Les jauges teleinfo ne s'affichent plus sur les Design en Jeedom v4.4

Tu peux me dire quel Widget de Dashboard tu a testé et me donner le code du widget ?
J’ai peut-être une version différente du code. Vu que j’avais fait des essais pour le rafraîchissement auto en fin d’année dernière.

pour info, si je passe sur le widget standard Jauge de Jeedom, je n’ai plus l’erreur #17

il y en a 3 mais ils sont quasi tous identiques. Pour qu’ils refonctionnent il fallait mettre la fonction update mais j’avais oublié de le faire et au passage de le 4.4 de jeedom il a fallu maintenant rajouter la référence à solid-gauge

le bleu_teleinfo_conso…

tu as peut être un des deux autres encore en affichage

oups j’avais loupé ça:

<script src="core/php/getJS.php?file=3rdparty/highstock/modules/solid-gauge.js"></script>
<div style="min-width : 20px;min-height : 60px;" class="cmd #history# container-fluid tooltips cmd-widget conso#id#"
    data-type="info" data-subtype="numeric" data-cmd_id="#id#" title="#collectDate#">
    <div id="gauge#id#" style="width:100px; height:55px"></div>
</div>
<script>
    console.log('charts: ');
    $('#gauge#id#').highcharts({
        chart: {
            events: {
                click: function (event) {
                    if (!$.mobile && '#history#' == 'history cursor') {
                        $('#md_modal').dialog({ title: "Historique" });
                        $("#md_modal").load('index.php?v=d&modal=cmd.history&id=#id#').dialog('open');
                    }
                }
            },
            type: 'solidgauge',
            height: 80,
            plotBackgroundColor: null,
            plotBackgroundImage: null,
            backgroundColor: null,
            plotBorderWidth: 0,
            plotShadow: false,
            spacingTop: 0,
            spacingLeft: 0,
            spacingRight: 0,
            spacingBottom: 0,
            borderWidth: 0
        },
        title: null,
        pane: {
            center: ['50%', '60%'],
            size: '100%',
            startAngle: - 90,
            endAngle: 90,
            background: {
                backgroundColor: (Highcharts.theme && Highcharts.theme.background2) || '#EEE',
                innerRadius: '60%',
                outerRadius: '100%',
                shape: 'arc'
            }
        },
        tooltip: {
            enabled: false
        },
        // the value axis
        yAxis: {
            stops: [
                [0.1, '#55BF3B'], // green
                [0.5, '#DDDF0D'], // yellow
                [0.9, '#DF5353'] // red
            ],
            lineWidth: 0,
            minorTickInterval: null,
            tickPixelInterval: 400,
            labels: { enabled: false },
            tickWidth: 0,
            min: #minValue#,
            max: #maxValue#,
            title: {
                text: '',
                y: - 0
            }
        },
        labels: { enabled: false },
        plotOptions: {
            solidgauge: {
                dataLabels: {
                    y: 5,
                    borderWidth: 0,
                    useHTML: true
                }
            }
        },
        credits: {
            enabled: false
        },
        exporting: {
            enabled: false
        },
        series: [{
            name: '',
            data: [Math.round(parseFloat('#state#') * 10) / 10],
            dataLabels: {
                y: -20,
                format: '<span style="font-size:9px; color:white;">{y} #unite#</span>'
            },
        }]
    });
    jeedom.cmd.addUpdateFunction('#id#', function (_options) {
        if (isNaN(_options.value)) { _options.value = '#state#' };
        $('.cmd[data-cmd_id=#id#]').attr('title', '{{Date de valeur}} : ' + _options.valueDate + '<br/>{{Date de collecte}} : ' + _options.collectDate)
        $('#gauge#id#').highcharts().series[0].update({ data: [Math.round(parseFloat(_options.value) * 10) / 10] }, false);
        $('#gauge#id#').highcharts().series[0].redraw();
        console.log('charts: '); // + [Math.round(parseFloat(_options.value) * 10) / 10] + ' | ' + '{{Date de valeur}} : ' + _options.valueDate + ' | ' + '{{Date de collecte}} : ' + _options.collectDate);
    });
    jeedom.cmd.refreshValue([{ cmd_id: '#id#', display_value: '#state#', valueDate: '#valueDate#', collectDate: '#collectDate#', alertLevel: '#alertLevel#', unit: '#unite#' }])

</script>

J’ai remis ce code dans bleu_teleinfo_conso et ça ne marche toujours pas.

la jauge ne disparaît pas avec un changement de plan (aller sur un autre plan et revenir sur celui avec la jauge)

jeephp2js.planHeader_id = planID;
jeeFrontEnd.plan.displayPlan();

elle est présente lors de la première ouverture du design via le menu accueil, mais disparaît si je fais F5 sur le navigateur et revient si je change de plan et reviens sur la page avec la Jauge :exploding_head:

moi je suis sur le dashboard, je n’utilise pas les design. Tu as des copies d’écran pour montrer le comportement?

C’est pour ça! on parlait pas du même endroit :sweat_smile:
c’est OK au niveau du Dashboard, c’est dans les Design que ça déconne.
J’utilise les design pour mes écrans d’affichage de la tablette fixé au mur et qui sert de gestion centralisée de la domotique.

A l’ouverture de la page :

après un F5 :

Et le graphe réapparaît si je change de page de design et reviens sur celle-là.

Juste pour m’ôter d’un doute, tu peux essayer en déplaçant la ligne

<script src="core/php/getJS.php?file=3rdparty/highstock/modules/solid-gauge.js"></script>

juste après la 1ère div ?

<div class="cmd cmd-widget" data-type="info" data-subtype="numeric"....>

Ce qui donnerait au tout début du code du widget :

<div class="cmd cmd-widget" data-type="info" data-subtype="numeric" .... data-cmd_id="#id#" data-cmd_uid="#uid#" data-eqLogic_id="#eqLogic_id#">
<script src="core/php/getJS.php?file=3rdparty/highstock/modules/solid-gauge.js"></script>

je viens de tester

  • entre les <div></div>
  • après les <div></div> et juste avant <script>
  • à la toute fin du widget, après </script>

çà ne change rien

là je vais avoir du mal à t’aider… tu as d’autres widget que tu utilises et qui permettraient de localiser des différences?

Alors tu peux aussi essayer de la remettre au début en enlevant core/php/getJS.php?file= :

<script src="3rdparty/highstock/modules/solid-gauge.js"></script>
<div class="cmd cmd-widget" data-type="info" data-subtype="numeric"....>
// et le reste de ton code actuel à la suite

Le souci n’est peut être même pas là, je cherche mais ne crois pas me souvenir d’avoir eu de problèmes sur les designs quand j’avais testé ça.

aucun qui utilise Highcharts

@Salvialf ça ne change rien en enlevant core/php/getJS.php?file=

Après ça vient peut-être de modifs dans le core au niveau des design. il y a quelques soucis avec le passage en 4.4 (cf mon souci d’erreur 401 qui a été debug hier et sera publié dans la prochaine version) donc peut-être des corrections à venir qui feront remarcher cette partie. :crossed_fingers:

Petit test intéressant
j’ai remplacé type: 'solidgauge', par type: 'gauge', dans le code et je n’ai plus l’erreur dans la console, le graph s’affiche bien au F5 même si il est très moche par rapport à celui de solidgauge.

Donc ça doit venir de 3rdparty/highstock/ dans le core qui à du être MAJ et qui n’est plus complet ou bien un paramètre qui manque maintenant dans l’appel de Highcharts.

Je vais essayer de regarder la doc de Highcharts et faire des essais

non c’est le même module qu’avant de toute façon ton erreur concerne le module manquant. A ta place j’attendrais la mise à jour de @Noyax37 déjà

j’ai trouvé :grinning:

j’ai ajouté ces lignes dans desktop/custom/custom.js

var script = document.createElement("script");  // create a script DOM node
script.src = "3rdparty/highstock/modules/solid-gauge.js";  // set its src to the provided URL
document.head.appendChild(script);  // add it to the end of the head section of the page

et le graph fonctionne même au F5.
Donc je pense que les includes de <script> dans la page des design ont changés et n’inclus plus solid-gauge.js donc bien un souci dans le core selon moi

le core n’a rien à voir là dedans on est sur des widgets tiers!

Je ne connais pas bien l’environnement de dev de Jeedom, tu as probablement raison.
en tout cas mon script marche, c’était donc un <script> manquant dans le <header> qui bloquait au refresh

Si je comprends bien tout solidgauge fait partie de higcharts-more, est ce qu’il ne faudrait pas aussi charger ce js?

<script src="core/php/getJS.php?file=3rdparty/highstock/highcharts-more.js"></script>
<script src="core/php/getJS.php?file=3rdparty/highstock/modules/solid-gauge.js"></script>

highcharts-more.js est déjà chargé, je le vois dans le code source de la page.

pour moi il y a ceux la de base :

<script
  type="text/javascript"
  src="3rdparty/highstock/highstock.js?md5=96f51195c018aa52b1de1fc91d9326cc"
></script>
<script
  type="text/javascript"
  src="3rdparty/highstock/highcharts-more.js?md5=f356358a3e56f69312c81b581e4cb171"
></script>
<script
  type="text/javascript"
  src="3rdparty/highstock/modules/exporting.js?md5=aa401aefce40b3b7929a27ad2fbc3785"
></script>

non malheureusement tes 2 lignes ajouté dans le widget ne font pas afficher le graph au F5.