Bonjour,
J’ai beau faire des essais, je n’arrive pas à faire un widget qui me permet d’avoir une action type bouton poussoir (donc maintenu = 1, relâcher = 0) et d’animer ce widget avec une info (1= allumé=vert 0= éteint=gris)
J’arrive à faire un ou l’autre séparément.
J’utilise le Plugin MyModbus pour lire et écrire dans mon automate wago.
Quelqu’un serait-il m’aiguiller ?
Salut,
Là comme ça il va falloir passer par un widget code je pense.
tu connais le javascript ?
C’est intéressant je veux bien regarder demain si tu veux? Une idée du visuel de bouton que tu veux?
J’étais parti pour faire un bouton de ce style.
J’ai donc 2 variables :
une de type action qui va écrire dans l’automate et activer ma sortie relais pour allumer la lampe
une de type info qui va lire l’état de ma sortie relais (qui peut être également activer par un interrupteur dans la maison)
L’action est donc impulsionnelle (uniquement à 1 tant que le bouton est maintenu)
Le maintient de la sortie est fait dans l’automate.
je m’y était aussi amusé (ancien forum)
de mémoire click.on click.off
retrouver brut de test
le on en virtuel id
le off id dans le widget
<span class="cmd reportModeHidden cmd-widget" style="display: inline !important;margin-right: 2px;" data-type="action" data-subtype="other" data-cmd_id="#id#" data-cmd_uid="#uid#" data-version="#version#">
<a class="btn btn-sm btn-default action cmdName tooltips" title="#name#" style="background-color:#cmdColor# !important;border-color : transparent !important;margin-top: 2px;">#name_display#</a>
<script>
$('.cmd[data-cmd_uid=#uid#]:last .action').off('click').on('mousedown touchstart', function () {
jeedom.cmd.execute({id: '#id#'});
});
$('.cmd[data-cmd_uid=#uid#]:last .action').off('click').on('mouseup touchend', function () {
jeedom.cmd.execute({id: '2196'});
});
if ($('.cmd[data-cmd_uid=#uid#]:last').prev().data('subtype') != undefined && $('.cmd[data-cmd_id=#id#]:last').prev().data('subtype') != 'other'
&& $('.cmd[data-cmd_uid=#uid#]:last').prev().css('display') != 'block') {
$('.cmd[data-cmd_uid=#uid#]:last').prepend('<br/>');
}
</script>
</span>
1 « J'aime »
Bonjour et merci mais je ne comprend pas vraiment la manipulation à faire
Salut @ajja17orange,
Merci
j’ai même pas encore regardé que les 3/4 du boulot est fait !!
Je regarde ça pendant les sieste des p’tits monstres 
Salut,
ça arrive !!!
(le halo rouge autour du pointeur correspond au relâchement du bouton de la souris) :

Il va falloir faire des essais je pense car je ne connais pas le plugin MyModbus qui semble envoyer la valeur 0 ou 1 via une seule commande action/defaut ce qui n’est pas le cas habituellement sur Jeedom.
Je mets tout ça au propre et te partage une 1ère version après le coucher des enfants.
Encore merci @ajja17orange qui m’a fait gagner un temps fou.
Par contre tu dois rester appuyé pour allumer la lumière ? C’est contraignant non ?? J’imagine que c’est pour un usage spécifique…
Tout d’abord merci de votre réactivité à tout les deux 
Je me suis peut être mal exprimé. Mais quand j’appuie sur le bouton, je SET ma sortie de l’automate , donc la lumière est allumée. Si je rappui sur le bouton, je RESET la sortie, donc la lumière s’éteint.
Le widget que j’ai fait fait exactement ce que tu avais demandé à l’origine
c’est pas grave ça m’a permis d’essayer une nouveauté.
OK après avoir lu la doc du plugin myModbus je pense comprendre même si je ne suis pas familier de ce matériel.
Perso j’essayerais de créer un virtuel dans cette idée:

- Commande info Modbus = La commande info/binaire « Eclairage_Pallier » du plugin MyModbus
- Commande action Modbus = La commande action/defaut « Cde_Pallier » du plugin MyModbus
Ensuite il faut créer le widget à appliquer sur cette commande action virtuelle et qui te permette de faire un bouton on/off avec une seule commande action.
-
il faut se rendre dans le menu Outils/widgets puis cliquer sur le bouton code : 
-
Cliquer sur Nouveau et créer un nouveau widget du nom de votre choix avec les caractéristiques suivantes: Version : Dashboard | Type : Action | Sous-type : Defaut
-
Coller le code suivant et sauvegarder:
<div class="cmd cmd-widget cursor" data-type="action" data-subtype="other" data-cmd_id="#id#" data-cmd_uid="#uid#" data-version="#version#" data-eqLogic_id="#eqLogic_id#">
<div class="title #hide_name#">
<div class="cmdName">#valueName#</div>
</div>
<div class="content-sm">
<span class="imgCmd"></span>
</div>
<script>
jeedom.cmd.update['#id#'] = function(_options){
let cmd = $('.cmd[data-cmd_id=#id#]');
(_options.display_value == '1') ?
cmd.find('.imgCmd').empty().append('<img src="data/img/LumOn.png" width="100px">') :
cmd.find('.imgCmd').empty().append('<img src="data/img/LumOff.png" width="100px">')
}
jeedom.cmd.update['#id#']({display_value:'#state#',valueDate:'#valueDate#',collectDate:'#collectDate#',alertLevel:'#alertLevel#'});
$('.cmd[data-cmd_uid=#uid#] .imgCmd').off().on('click', function () {
jeedom.cmd.execute({id: '#id#'});
});
</script>
</div>
Appliquer le widget à partir de l’onglet Affichage de la configuration de la commande, en choisissant Customtemp/Nom_de_votre_Widget dans le menu déroulant.
Les images sont dans le répertoire data/img/ et s’appellent LumOn.png & LumOff.png.
Tout ça sans convictions, c’est surtout pour essayer…
Je viens de suivre tes explications. J’ai donc réussi à créer mon widget, la commande ON/OFF passe bien, j’arrive à allumer et éteindre la lumière. Seul « problème » le visuel ne change pas, j’ai toujours l’image grise (LumOff) quelques soit l’état.
Tu veux bien partager une copie d’écran du virtuel que tu as créé stp?
Ok tu as tout bien fait 
C’est mieux en ajoutant &1 à la suite de la commande info/binaire comme sur cette copie d’écran issue de la doc ?
Quand tu allumes ou éteints la lumière, l’icône indiquant l’état change bien sur le dashboard (croix rouge ou check vert) ?
C’était à l’aveugle faut creuser encore un peu… si t’es dispo demain on fait des tests?!
Oui, au niveau de la dashboard pas de problème.
J’ai l’impression que c’est au niveau du code du widget que ça merdouille ?!
Oui je suis dispo demain si tu veux continuer des tests …
C’est possible je n’ai pas pu le tester…
Essaye d’enlever les apostrophes sur cette ligne:
(_options.display_value == '1') ?
Qui devient:
(_options.display_value == 1) ?
Une fois la modification faite et sauvegardée il est nécessaire de redimensionner la tuile sur le dashboard pour régénérer le cache sinon les modifications ne sont pas prises en compte
Oui je m’en doutais…
On voit ça demain je sais où chercher 
Pas de soucis, je vais me coucher 
Merci en tout cas, bonne nuit et à demain 