Widget Clim : 4 états // Comment faire?

Bonjour,
tu pensais à moi :slight_smile: j’ai tenté le widget N états, à paramétrer, pour l’instant ça fonctionne plutot bien (en dashboard mais pas encore en version web-mobile)
basiquement pour mes chauffages fil-pilote, donc 6 états ça ressemble à cela:
image

il y a 1 seule variable avec les labels, et le script affiche les boutons :
#texte# = OFF;HORS-GEL;ECONOMIQUE;MINI;NORMAL;CONFORT
( on ne le voit pas sur l’image, mais le blanc inversé c’est le ‹ hover › au survol de la souris, sinon la valeur sélectionnée c’est le rouge bien sur)

en mode mobile j’ai un pb d’affichage / CSS que j’ai déclaré ici Hauteur de tuile sur widget en v3 (si jamais qq1 a de l’inspiration)

Salut,

A dire vrai je pensais à @MarcF, je ne me souviens même pas avoir vu que tu avais fait cette modif également :sweat_smile: :roll_eyes: :

@Salvialf
Merci de penser à moi tu m’a inspiré et du coup j’ai réussi à faire qlq chose qui me convient sur 6 positions
image

J’ai finalement utilisé une liste :

C’est moins sexy mais ca fonctionne.

Par ailleurs, je suis en pleine rédaction d’un scénario long comme un jour sans fin pour automatiser mes chauffages au maximum sans avoir besoin d’y toucher. C’est que du bonheur.

Manque le version pour mobile
Tu nous l’a promis avant la fin de l’année :laughing:

en attendant j’ai bidouillé le widget sur 4,5 et 6 positions
comme je ne suis pas un spécialiste, j’ai forcé les dimentions car en fonction du texte les cases ne suivaient pas

State_Switch.zip.txt (7,2 Ko)
oter .txt pour dézipper

Hello. Tout d’abord merci du partage. Les novices en code comme moi arrivent à personnaliser leur Jeedom à peu près comme ils veulent.

Mon pb :
J’ai suivi les instruction pour installer le plugin 4state en V4.
Il s’affiche correctement, mais le sélecteur ne s’affiche pas.

Quelqu’un aurait une idée ?

Jeedom V4 en VM sous Proxmox.

EDIT :
Quel boulet :
la commande INFO était en type AUTRE au lieu d’être en NUMERIQUE !
Et j’ai cherché un moment :wink:

Bonjour

est-ce que quelqu’un peut me dire où se trouve le dernier code à jour pour faire un cuseur 3, 4, 5 positions pour V4.
J’ai beau chercher je ne trouve pas beaucoup de code sur la version 3 de @Salvialf mais beaucoup moins claire en explication notamment sur le paramétrage du coup je suis perdu.

Merci par avance

bonjour, je suis depuis peu sur jeedom, et surtout nul sous linux. le bouton pour la commande fil pilote m’interesse. où aller le chercher, et est ce que je peux piloter 2 GPIO?
cordialement
Feely

Bonjour,
oui tu peux commander ce que tu veux du moment que tu a la commande, le widget ne gère que l’affichage. Je ne retrouve plus où j’ai mis ce widget sur le forum alors je te le remet ici:

<div class="cmd cmd-widget" data-type="action" data-subtype="slider" data-cmd_id="#id#" data-cmd_uid="#uid#" data-version="#version#">
  <!-- widget cmd.action.slider.MultiSwitchV2 -->
  <div class="classSwitch6WaysParent#uid#">
    <fieldset><legend style="font-weight:bold;font-size:12px;#hideCmdName#">#name_display#</legend>
      <div class="classSwitch6Ways#uid#">
    </div></fieldset>
  </div>
<script>
 $( function() {
   // split user input into N elements
   var arr = '#texte#'.split(';');
   // generate radio buttons
   $.each(arr, function(index, value) {
     $(".classSwitch6Ways#uid#").append(
       $.parseHTML('<input type="radio" name="key#uid#" id="key' + (index) + '#uid#" value="' + (index) + 
        '"/>'), $.parseHTML('<label for="key' +(index)+ '#uid#">'
        + value + '</label>') );
   });
	// remove radio button
    $( ".classSwitch6Ways#uid# input" ).checkboxradio({
      icon: false
    });

   // on radio value change
   $(".classSwitch6Ways#uid# input[name=key#uid#]").change(function() {
	  jeedom.cmd.execute({id: '#id#', value: this.value});
	});
   
	// set the selected value and the CSS checked class
	console.log("input[type=radio][name=key#uid#][value=#state#]");
   $("input[type=radio][name=key#uid#][value=#state#]").attr('checked', 'checked');
    $( ".classSwitch6Ways#uid# label[for=key#state##uid#]" ).addClass("ui-checkboxradio-checked");
 
	jeedom.cmd.update['#id#']({cmd_id:'#id#', value:'#state#', display_value:'#state#',valueDate:'#valueDate#',collectDate:'#collectDate#'});
  });
  
  jeedom.cmd.update['#id#'] = function(_options){
	console.log(_options);
  }
    
</script>
  <style>
.classSwitch6WaysParent#uid# {
  padding: 0;
}
.classSwitch6Ways#uid# {
  margin:5px 5px 5px 5px;
  color:#D0D0D0;
  border:solid 1px #5B5B5B;
  font-size:1em;
  font-weight:bold;
  line-height:2em;
  border-radius:0.3em;
  background:grey;
  position:relative;
  display:block;
  box-shadow:0px 2px 2px 0px rgba(0, 0, 0, 0.75) inset,0px 2px 2px 0px rgba(255, 255, 255, 0.5);
  padding: 0;
}

.classSwitch6Ways#uid# label {
  cursor:pointer;
  position:relative;
  display:block;
  -webkit-transition: 300ms ease-out;
  -moz-transition: 300ms ease-out;
  transition: 300ms ease-out;
  padding: 0 1em;
  border:none;
}
.classSwitch6Ways#uid# .ui-checkboxradio-checked {
  border:solid 0.5px red!important;
  color:red;
  text-shadow: 1px 1px 3px #000;
}
    
  </style>
</div>

Par contre en v4 j’ai une petite marge à gauche que je n’arrive pas à enlever…
image

merci pour ce code, pour l’instant je cherche à comprendre la logique de jeedom, je dois dire que j’ai beaucoup de mal. je ne sais même pas comment rentrer du code et où pour créer un bouton, si j’ai bien compris il faut créer son propre widget qui veut dire dans mon cas un bouton à multiple choix. apres il faudra que je l’associe à quelque chose pour pouvoir commander mes deux GPIOs du rapsberry afin d’avoir mes 4 états binaires ?
est ce bien celà
cordialement

Bonjour,
le « quelque chose » à associer c’est une commande d’un plugin, faut trouver lequel, je suppose que le plugin jeedouino (gpio) peut le faire, au pire le plugin script si tu sais faire toi même le script qui va bien… (python ou autre).

Bonjour et tout d’abord je te souhaite une bonne et heureuse année.
Pour en revenir au script, pour se faire, faut il que j’installe le plugin « script » du market pour pouvoir créer un script ?