Dashboard template - V3 et V4

Bonjour,

Je cherche une petite doc ou un post sur comment faire un dashboard v3 ?
Je ne trouve rien et j’ai du mal a comprendre a partir des exemples que je regarde, notamment le plugin sonos.

Si quelqu’un peut me partager cela, ou un plugin un peu plus simple pour que je comprenne ce serait top.
Et quelle sont les différence pour faire un dashboard template en v4 par rapport au v3 ?

Merci

Bonjour,

Alors je suis tombé sur un mini tuto me permettant de comprendre certaines choses du tuto officiel.
Ma question s’oriente donc plus sur « comment vous le feriez ».

Php, html ça va encore mais JavaScrip ou jQuery sont des choses que je dois découvrir.

Pour rappel mon plugin concerne une alarme.
Dans mon template dashboard, j’aimerais indiquer quels sont les groupes d’alarme actifs avec une images du numéro de groupe qui change de couleur selon actif ou non.

Mais car il y a un mais, je récupère dans ma commande info, le nom des groupes actifs séparé par des plus.
Mais j’ai un fichier JSON que je crée (pour du caching) qui contient le groupid et le et qui pourrait me servir a reconnaître par rapport au nom le numéro du groupe et changer l’image du numéro si il est actif

Pour pourvoir afficher comme je le veut, vous le feriez comment ? Avec du JavaScript qui passe le json ? Avec du php dans l’html du template ? Est-ce que je génère ce bout de code html to mon tohtml avec mes replaces ?

Je suis à l’ecoute de vos recommandations et conseils.

Merci

Bonjour,

J’avance. J’ai donc pris parti de liste en JQuery le JSON.
Tout marche bien.
Par contre, je cherche a afficher une de mes commandes actions qui est un select.
Mais je ne trouve rien que j’arrive a faire fonctionner. Je récupérer bien le listValue dans le tohtml et j’arriver a l’avoir dans une #xxxx_listValue# mais pour le reste, je sèche.

Merci d’avance

Bon finalement a force de chercher. J’ai trouvé. :grinning:
Mais il me reste un souci. Le widget ne se refresh pas toujours.
Pourtant dans ma Class Cmd j’utilise checkAndUpdateCmd().

Y a t’il autre chose pour forcer le widget a se mettre à jour ? enfin les infos, pas tout le widget

lorsque tu exécute une commande action ou cron
tu fais appel à $eqLogic->refreshWidget(); dans pluginid.class.php

Bonjour,

Merci @limad44.
Cependant j’ai vu dans un précédent post ( https://partenaires.jeedom.com/t/probleme-avec-1er-template-et-jeedom-cmd-update/1700/17 ) que si on utilise jeedom.cmd.update alors pas besoin de refreshWidget(), ce qui est mon cas.

Je savais pas
D’après ton lien

Citation :la fonction n’existe pas sur la class cmd mais que sur la class eqLogic

Bon j’ai testé à tout hasard, ca marche.
Par contre ca semble rafraichir tout le widget alors que j’avais compris que maintenant on pouvait simplement rafraichir une commande.

Si quelqu’un peut infirmer/confirmer mes dires ce serait top.

Si tu veux qu’une commande se rafraîchisse, il faut qu’elle ait une fonction jeedom.cmd.update dans le javascript de ton template.
D’après un de tes messages précédents je pense que c’est le cas donc çà devrait marcher.
Par contre si tu appelle refreshWidget çà rafraîchit tout le widget.

Bonjour @vedrine,

J’utilise les jeedom.cmd.execute mais pas les jeedom.cmd.update.
J’ai du mal a voir comment les mettre dans mon code.

Mon code est ici : https://github.com/mguyard/Jeedom-Diagral_eOne/blob/develop/core/template/dashboard/eqLogic.html

Si je comprend bien, en partant de mon code il faudrait que je modifie :

        switch('#status#') {
            case 'off':
                $('.iconCmd#status_id#').addClass('fa fa-unlock');
                break;
            case 'presence':
            case 'group':
                $('.iconCmd#status_id#').addClass('fa fa-lock');
                break;
            case 'tempogroup':
                $('.iconCmd#status_id#').addClass('fa fa-clock');
                break;
            default:
                $('.iconCmd#status_id#').addClass('fas fa-spinner fa-spin');
                break;
        }

par

jeedom.cmd.update['#status_id#'] = function(_options){
        switch('#status#') {
            case 'off':
                $('.iconCmd#status_id#').addClass('fa fa-unlock');
                break;
            case 'presence':
            case 'group':
                $('.iconCmd#status_id#').addClass('fa fa-lock');
                break;
            case 'tempogroup':
                $('.iconCmd#status_id#').addClass('fa fa-clock');
                break;
            default:
                $('.iconCmd#status_id#').addClass('fas fa-spinner fa-spin');
                break;
        }
}

Et la meme chose pour chacune de mes cmd info ?
Merci d’avance

Je pense que oui, j’espère pour toi que tu n’as pas de nombreuses commandes info !
N’oublie pas non plus d’exécuter ta fonction jeedom.cmd.update après l’avoir définie (regarde les exemples dans d’autres widgets)

Une chose me surprend dans ton code: tu ne te sert pas de l’argument _options dans ta fonction.
J’aurais plutôt mis un switch (_options.display_value)
Et après ton code j’aurais ajouté

jeedom.cmd.update['#status_id#']({display_value:'#status#'});

Mais bon je ne suis pas un pro des widgets, je n’ai que peu de plugins à mon actif

Je vais regarder cela. Merci