Avant toute chose merci de (re)prendre connaissance de la charte et de la respecter.
Pour résumer :
- Avant de poser une question, je cherche si la réponse existe
- Je suis poli, courtois et je respecte tout un chacun sur le forum
- Si un post m'agace : je m'en éloigne plutôt que de répondre d'une façon qui pourrait être mal interprétée


Il n'est jamais du luxe que de rappeler des choses simples :
Courtoisie, amabilité, politesse et bonne humeur sont les maîtres mots pour un forum sympathique, bienveillant et accueillant :)

Le groupe des Helpers est present pour vous aidez, n'hésitez pas à poser des questions ;)

Toute la communauté vous remercie

Memoriser l'état d'un bouton

Réservé à l'utilisation et la création des objets virtuels dans JEEDOM
Répondre
mbdrlp
Timide
Messages : 70
Inscription : 15 sept. 2017, 14:43

Memoriser l'état d'un bouton

Message par mbdrlp » 12 déc. 2018, 23:41

Bonjour,

J'ai créé un virtuel pour controler mon chauffage. J'ai dedans des boutons pour avoir un mode OFF, ABSENT, CONFO, ECO.
Dans mon widget ces boutons du type "default(core)"
Ce que je voudrais, c'est que quand je selectionne un mode, le bouton du mode reste enfoncé (ou change de couleur peu importe) afin de connaitre le mode dans lequel je suis.

Est ce que c'est faisable directement dans le virtuel?

sebfar
Timide
Messages : 349
Inscription : 17 sept. 2018, 13:34

Re: Memoriser l'état d'un bouton

Message par sebfar » 13 déc. 2018, 07:01

Bonjour
Sur test commandes virtuelles tu mets "Etat" (par ex) et tu lui affectes une valeur différente

mbdrlp
Timide
Messages : 70
Inscription : 15 sept. 2017, 14:43

Re: Memoriser l'état d'un bouton

Message par mbdrlp » 14 déc. 2018, 16:03

Je ne suis pas sur de comprendre ce que tu dis.

Ci dessous la partie ou boutons je defini mes commandes:
Capture.PNG
Capture.PNG (62.73 Kio) Consulté 411 fois
Et ci dessous mon widget
widget.PNG
widget.PNG (11.85 Kio) Consulté 411 fois
A quel endroit est ce que je configure mon virtuel pour memoriser l'etat de mes commandes dans mon widget?

Avatar de l’utilisateur
Salvialf
Helper
Messages : 1229
Inscription : 24 févr. 2018, 09:37
Contact :

Re: Memoriser l'état d'un bouton

Message par Salvialf » 14 déc. 2018, 16:33

Salut,

Dans ton équipement d'origine (pas le virtuel) tu as une commande "état". C'est elle qui te dit quel est l'état actuel de ton chauffage. Ensuite il ne reste plus qu'à modifier le widget pour que le retour d'état à l'écran te plaise au niveau lisibilité.

Exemple:
ExempleEtatChauff.jpg
ExempleEtatChauff.jpg (145.08 Kio) Consulté 403 fois
Sinon sur le market des widgets tu as "dashboard.info.numeric.Sky-colorTuile" qui te permet de modifier la couleur de la tuile ou du texte. C'est pour te donner l'info car ça ne fonctionnera pas avec ton utilisation actuelle des modes. Pour le faire fonctionner il faudrait rappatrier directement la commande état (info/numérique) de ton équipement dans le virtuel.
VM Jeedom 3.2.16 sous Proxmox 5.4 sur NUC5i5RYH (Debian 9.9)
Helper Officiel Jeedom
Widgets développés
Téléchargement d'icônes domotique (Topic Forum)

winhex
Actif
Messages : 3641
Inscription : 23 janv. 2015, 01:41

Re: Memoriser l'état d'un bouton

Message par winhex » 14 déc. 2018, 16:45

c'est dans tes boutons actions
tu ajoutes
si #state# == #name#
faire ...
sinon
ne rien faire

il existe un autre lien sinon j'utilise une variante de la methode
viewtopic.php?f=29&t=40971&hilit=vmc#p673163
le lien de la méthode qui n'est pas de moi
viewtopic.php?f=29&t=21295&start=60
et le rendu actuel
viewtopic.php?f=24&t=40626&p=675304#p675270

via l'info c'est aussi faisable mais il faut laissé le widget info se mettre à jour 1/2 secondes

Avatar de l’utilisateur
Salvialf
Helper
Messages : 1229
Inscription : 24 févr. 2018, 09:37
Contact :

Re: Memoriser l'état d'un bouton

Message par Salvialf » 15 déc. 2018, 21:49

Bonsoir @winhex,

A force d'en parler je me suis intéressé au changement de couleur; c'est ok pour les tuiles avec colorTuile ou en y faisant référence dans le code (cf viewtopic.php?f=24&t=40626&p=675850#p675850).

Par contre je ne parviens pas à faire le retour d'état sur les boutons d'action de mes radiateurs (voir image plus haut) en en changeant la couleur. J'ai épluché les posts que tu cites ci-dessus mais il ne se passe rien, je dois louper quelque chose, je pense au niveau du "si #state# == ?? j'ai essayé #name# - #name_display# - #la_valeur# (exemple '99' en confort), etc... L'autre différence c'est que ce ne sont pas des commandes "mode" mais des actions fil-pilote.

Pourrais-tu éclairer ma lanterne ?

Les commandes en question:
Commandesradiateur.jpg
Commandesradiateur.jpg (259.81 Kio) Consulté 375 fois
et le code du widget (incluant une de mes tentatives sur les 3 dernières lignes):

Code : Tout sélectionner

<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('click', function () {
            jeedom.cmd.execute({id: '#id#'});
        });
        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/>');
        }
   if ("#state#" == '#name#') {
				$('#cmdButton#id#').removeClass("btn-default");
				$('#cmdButton#id#').css('background-color', 'rgba(255,0,0,1)!important'); 
        }
    </script>
</span>
Merci d'avance pour tes lumières.

PS: Au passage tu as du reconnaitre ton widget de température bleu et rouge. Merci pour ça aussi :)
VM Jeedom 3.2.16 sous Proxmox 5.4 sur NUC5i5RYH (Debian 9.9)
Helper Officiel Jeedom
Widgets développés
Téléchargement d'icônes domotique (Topic Forum)

winhex
Actif
Messages : 3641
Inscription : 23 janv. 2015, 01:41

Re: Memoriser l'état d'un bouton

Message par winhex » 15 déc. 2018, 22:38

de rien
je l'aime beaucoup parce qu'il donne toutes les infos, mais je le trouve maintenant trop chargé lorsque tu en mets plusieurs)

toutes de suite se qui cloche
$('#cmdButton#id#').removeClass("btn-default");

c'est comme de l'anglais
enlevé la class btn-default de l'id cmdButton#id#

traduit
sur quoi
#cmdButton#id#

devant # c'est un id
devant . c'est une class

quoi faire
.removeClass / supprimer la classe btn-default
removeClass est une fonction jquery (voir le . devant)

ou est le id ? (de la ligne 2)

devant les 2 quoi faire (ligne 12 et 13)
commenté :
mettre 2 //
cela va bloque l'exécution

et tu inséré une ligne avec
alert("ok");

tu vas avoir un pop up

ça te permet d'avancer par étape
le #state# == #name# est bon
puisque tu as ok

Code : Tout sélectionner

<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 id="cmdButton#id#" 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('click', function () {
            jeedom.cmd.execute({id: '#id#'});
        });
        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/>');
        }
   if ("#state#" == '#name#') {
   alert("ok");
				// $('#cmdButton#id#').removeClass("btn-default");
				// $('#cmdButton#id#').css('background-color', 'rgba(255,0,0,1)!important'); 
        }
    </script>
</span>
si tu n'as pas ok
if ("#state#" == '#name#') {
n'est pas bon

Avatar de l’utilisateur
Salvialf
Helper
Messages : 1229
Inscription : 24 févr. 2018, 09:37
Contact :

Re: Memoriser l'état d'un bouton

Message par Salvialf » 16 déc. 2018, 18:55

Que dire à part un grand MERCI @winhex ! ça fonctionne avec un #state# == '99' par exemple (ça je n'en doutais pas) mais surtout j'ai compris et appris énormément. Merci encore d'avoir pris le temps de me fournir toutes ces explications.

J'ai été nul j'aurai pu trouver en cherchant mieux mais je ne regrette pas de t'avoir demandé du coup.

VM Jeedom 3.2.16 sous Proxmox 5.4 sur NUC5i5RYH (Debian 9.9)
Helper Officiel Jeedom
Widgets développés
Téléchargement d'icônes domotique (Topic Forum)

mbdrlp
Timide
Messages : 70
Inscription : 15 sept. 2017, 14:43

Re: Memoriser l'état d'un bouton

Message par mbdrlp » 19 déc. 2018, 16:41

Merci pour l'information, j'ai fouillé les liens que tu m'as donné et je suis parti sur le code suivant:

Code : Tout sélectionner

<span class="cmd" data-type="action" data-subtype="other" data-cmd_id="#id#" data-cmd_uid="#uid#">
    <a id="cmdButton#id#" class="btn btn-sm btn-default action cmdName tooltips" title="#other_tooltips#" style="background-color:#cmdColor# !important;border-color : transparent !important;">#name_display#</a>
    <script>
        $('.cmd[data-cmd_uid=#uid#]:last .action').off('click').on('click', function () {
            jeedom.cmd.execute({id: '#id#'});
        });
        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/>');
        }
      
      if ('#state#' == '#name_display#') {
         $('#cmdButton#id#').removeClass("btn-default");
          $('#cmdButton#id#').addClass("btn-danger");
            $('#cmdButton#id#').css('background-color', 'rgba(128,128,128,1)!important'); 
        }
    </script>
</span>
Je rencontre un petit problème de mise en page maintenant lorsque je change de mode.
Avant le changement de mode:
avant.PNG
avant.PNG (2.22 Kio) Consulté 307 fois
et apres: Les espaces entre mes boutons disparaissent
apres.PNG
apres.PNG (1.94 Kio) Consulté 307 fois

winhex
Actif
Messages : 3641
Inscription : 23 janv. 2015, 01:41

Re: Memoriser l'état d'un bouton

Message par winhex » 19 déc. 2018, 17:32

si tu met un icone pas de name display
(display = visible)

il manque "else" pour remettre
btn défaut

j'ai trouvé hier pour avoir en javascript la valeur du bouton
afin de se passe du name ou valeur fixe

attend un peu que j'explique
voir en faire un pour le market

si tu en as marre d'attendre inspire toi
un bouton de base avec en pop up la valeur de celui ci

Code : Tout sélectionner

<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('click', function () {
        jeedom.cmd.byId({ // Récupération de la valeur du bouton 
      id: #id#,
      success:  function(resulat) {    
    //  $(".test").html(resulat.configuration.value);
      var valeur_bouton=(resulat.configuration.value);
          alert('le bouton à comme valeur : '+valeur_bouton);

  	 }
  	}); 

			jeedom.cmd.execute({id: '#id#'}); 


        });
        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>

winhex
Actif
Messages : 3641
Inscription : 23 janv. 2015, 01:41

Re: Memoriser l'état d'un bouton

Message par winhex » 21 déc. 2018, 22:17


Répondre

Revenir vers « [Plugin officiel] Virtuels »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités