[RESOLU] Scenario Fil pilote IPX800 V4

Bonjour

Sauf erreur de ma part je ne vois pas de sujet qui explique comment mettre à la fois une sortie relais à ON et une autre à OFF sur un même évènement

Mon but est de pouvoir recréer les 2 ordres qui ne comportent qu’une des 2 alternances du courant. Il y a bien un tag ET mais il n’est visiblement valable que pour les entrées et pas pour les sorties.

Merci de votre aide

Bjr
Je ne suis pas sur d’avoir bien compris, mais vous pouvez utiliser switch sur les 2 sorties simultanément, cela passera off celle qui etait On et On celle qui etait off

Merci pour la suggestion mais je ne pense pas que cela fonctionne dans mon cas. En effet SWITCH inverse l’état et moi je veux forcer l’état. Autrement dit, si par exemple mon bouton virtuel doit passer le relais 1 à ON et le relais 2 à OFF, et que c’est 2 relais sont déjà dans leurs bons états respectifs, je ne veux pas que cela change. C’est ce qui arriverait, il me semble avec l’action SWITCH.

En fait je pense que je n’ai pas d’autres choix que de dédoubler mon scénario. C’est bien dommage.

bonjour
je pence que c faisable mais il te faut 2 scene et avec le même événement, exemple sur entrée virtuel1 comme événement ,
scène 1 avec la virtuel1 , relais 1 on/off
scène 2 avec la virtuel 1 avec la vignette non devant , relais 2 on/off
enfin si j’ai bien compris se que tu voulais @JuL
qu’en pense @fgtoul
dit moi si c bon

Bonsoir Bendadftpunk, oui c’est bien ma conclusion aussi (cf mon commentaire précédent). Et cela fonctionne. Je trouve juste cela pas vraiment pratique tant à programmer qu’à piloter (faut 4 widgets qui peuvent tous fonctionner en même temps du coup ce qui ne correspond pas vraiment à la réalité). Je vais tenter en passant par l’API direct en codant un petit sélecteur html et je vous tiendrai au jus.

1 « J'aime »

ok cool , si tu y arrive peut tu partager le prog merci

Alors C’est en (grande) partie bon !

Je commande bien mon thermostat avec 4 ordres

  • Il y a un bug d’affichage que j’ai pas encore trouvé : sous le slider/range je devrais avoir la légende, mais elle ne s’affiche pas. Une m… avec le css.
  • J’aimerais que cela serve d’affichage : si je rafraîchis ma page ou que j’arrive d’autre part, j’ai une position affichée par défaut qui ne correspond pas forcément à réalité.
Code de mon entrée HTML
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript">
function filPilot(myVal)
{ 
    switch(myVal){
        
        case "0":
          $.post("../api/xdevices.json?key=julIPX&SetR=01&ClearR=02");
          $('output').text("Off");
          break;
        case "120":
          $.post("../api/xdevices.json?key=julIPX&ClearR=01,02");     
          $('output').text("confort");
          break;
        case "80":
          $.post("../api/xdevices.json?key=julIPX&SetR=01,02");
          $('output').text("Eco");
          break;
        case "40":
          $.post("../api/xdevices.json?key=julIPX&SetR=02&ClearR=01");
          $('output').text("hors gel");
          break;
         
  }
 
}
</script>
<style type="text/css">input[type='range'] {
  box-sizing: border-box;
  border: 0px solid transparent;
  padding: 0px;
  margin: 0px;
  width: 238px;
  height: 20px;
  cursor: pointer;
  background: -webkit-repeating-linear-gradient(90deg, #777, #777 4%,transparent  1px, transparent 32% )  ;
  background: -moz-repeating-linear-gradient(90deg, #777, #777 4%,transparent  1px, transparent 32% )  ;
  background: repeating-linear-gradient(90deg, #777, #777 4%,transparent  1px, transparent 32% )  ;
  background-size: 100% 25%;
}
input[type='range'],
/*input[type='range']::-webkit-slider-runnable-track,*/
input[type='range']::-webkit-slider-thumb {
  -webkit-appearance: none;
}
input[type='range']::-webkit-slider-runnable-track {
  box-sizing: border-box;
  width: 200px;
  height: 5px;
  border-radius: 2px;
  background: #777;
}

input[type='range']::-webkit-slider-thumb {
  box-sizing: border-box;
  padding: 0px;
  height: 20px;
  width: 10px;
  border-radius: 2px;
  border: 1px solid;
  margin-top: -8px;
  background: #EEE;
}

input[type='range']:focus {
  outline: none;
}


.container:after {
  position: absolute;
  color: #777;
  content: 'Off Hors-Gel Eco Confort';
  padding-top: 25px;
  word-spacing: 25px;
  left: 0px;
  top: 0px;
  z-index: -1;
}
.container {
  padding: 0px;
  position: relative;
}

output{
  display: block;
  margin-top: 30px;
  color: #777;
}
output:before{
  content:"Selected Value: ";
  font-weight: bold;
}
body {
  font-family: Calibri, Arial;
}</style>
 <div class="container">
  <input type="range" min="0" max="120" step="40" id="rangeInput"  onchange="filPilot(this.value)">
  <output id="output"></output>
</div>

si vous avez une idée d’amelioration, je prends !
Merci

Si je comprend bien tu souhaites mettre un relais à ON et un à OFF quelque soit leur état en appuyant simplement sur un bouton?

Si c’est le cas je ferai:

-créer une Sortie Virtuelle 1 avec un TB 1 seconde

—puis 2 scènes:
-1ère:
SV1
ON
RELAIS 1

-2ème:
SV1
OFF
RELAIS 2

Pour le widget un seul bouton suffit, celui de la SV1

Il est même possible de simplifier à 1 scène en modifiant le câblage sur l’IPX.

En câblant le RELAIS 1 en NO et le RELAIS 2 en NC
La scène serait:

SV1 (toujours TB1)
ON
RELAIS1 / RELAIS 2

Il est toujours possible de piloter chaque relais par n’importe quel autre scénario mais ils sont forcer à cet état lors de l’appuis sur la SV1

Merci @sebyldino pour ta réponse.

  1. dupliquer la scène c’est pas élégant je trouve.
  2. refaire le câblage… euh non merci :wink: c’est déjà bien relou la première fois.
  3. de toute façon à la fin j’aurai 4 boutons à créer sur mon dashboard qui ne s’excluent pas les uns les autres malheureusement (ou alors je ne sais pas faire)

Regarde mon post juste avant les tiens. J’ai réussi ce que je voulais faire et je vais pouvoir carrément virer mes scénarios. J’ai un seul control (une balise HTML range). J’ai « plus » qu’à lier mon output avec l’API en lecture et corriger ma merdouille de css qui fait qu’on ne vois pas la légende (Off Hors Gel Eco Confort) de mon control. Ce sera fait prochainement.

Merci encore

PS: je laisse encore le post ouvert pour voir si des gens veulent améliorer ou corriger mon bout de code. :wink:

Avant Dernière mouture. J’ai réglé mon problème de légende (pas obligatoirement élégant mais fonctionnel).
Prochaine étape faire en sorte que mon output affiche l’état des relais et pas du text brut :

  1. créer une méthode JS qui prends en argument les relais que je veux lire
  2. switch case pour déterminer mon cas
  3. suivant le cas afficher l’état du fil pilot

=> ainsi au refresh ou à l’arriver sur la page j’ai le curseur bien placé et la « position » bien renseignée.

En attendant, le code actuel

Code de mon entrée HTML
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript">
function filPilot(myVal)
{ 
    switch(myVal){
        
        case "0":
          $.post("../api/xdevices.json?key=julIPX&SetR=01&ClearR=02");
          $('output').text("Off");
          break;
        case "120":
          $.post("../api/xdevices.json?key=julIPX&ClearR=01,02");     
          $('output').text("confort");
          break;
        case "80":
          $.post("../api/xdevices.json?key=julIPX&SetR=01,02");
          $('output').text("Eco");
          break;
        case "40":
          $.post("../api/xdevices.json?key=julIPX&SetR=02&ClearR=01");
          $('output').text("hors gel");
          break;
         
  }
 
}
</script>
<style type="text/css">input[type='range'] {
  box-sizing: border-box;
  border: 0px solid transparent;
  padding: 0px;
  margin: 0px;
  width: 238px;
  height: 20px;
  cursor: pointer;
  background: -webkit-repeating-linear-gradient(90deg, #777, #777 4%,transparent  1px, transparent 32% )  ;
  background: -moz-repeating-linear-gradient(90deg, #777, #777 4%,transparent  1px, transparent 32% )  ;
  background: repeating-linear-gradient(90deg, #777, #777 4%,transparent  1px, transparent 32% )  ;
  background-size: 100% 25%;
}
input[type='range'],
/*input[type='range']::-webkit-slider-runnable-track,*/
input[type='range']::-webkit-slider-thumb {
  -webkit-appearance: none;
}
input[type='range']::-webkit-slider-runnable-track {
  box-sizing: border-box;
  width: 200px;
  height: 5px;
  border-radius: 2px;
  background: #777;
}

input[type='range']::-webkit-slider-thumb {
  box-sizing: border-box;
  padding: 0px;
  height: 20px;
  width: 10px;
  border-radius: 2px;
  border: 1px solid;
  margin-top: -8px;
  background: #EEE;
  background-color:#77b55a;
}

input[type='range']:focus {
  outline: none;
}

.rangeTitle{
 	margin-bottom: 5%;
 	color: #777;
    font-weight: bold;
 }
.rangeLegend{ 
  color: #777;
  word-spacing: 32px;
  left: 0px;
  top: 0px;
}
.container {
  padding: 0px;
  position: relative;
}

output{
  display: block;
  margin-top: 30px;
  color: #777;
}
output:before{
  content:"Position: ";
  font-weight: bold;
}
body {
  font-family: Calibri, Arial;
}</style>
 <div class="container">
  <div class="rangeTitle">Petite Chambre</div>
  <input type="range" min="0" max="120" step="40" id="rangeInput"  onchange="filPilot(this.value)">
  <div class="rangeLegend">Off Hors-Gel Eco Confort</div>
  <output id="output"></output>
</div>

et un screenshot:
45

4 « J'aime »

Désolé pour le retour tardive, pas eu le temps avant:

En résumé :

  • vous avez 2 sorties (ici R8 et R5)
  • elles sont reliées au pont de diodes vendu par GCE
  • le pont est branché à l’entrée fil pilot de votre chauffage ou thermostat

=> le widget vous permet de générer la bonne combinaison ON/OFF sur les 2 relais pour générer le bon ordre.
=> le widget lit au chargement de la page l’état des relais et place le sélecteur correctement et met la bonne légende
=> je ne gère que chrome pour le css
=> le css est sûrement améliorable

NB1: Si je savais comment tout télécharger from mon site actuel (pas juste la config),

  • je le ferais :wink:
  • j’intégrerais mon propre css à l’existant
  • j’intégrerais mon propre js à l’existant et je le factoriserais
  • et enfin je ne mettrais que le pur HTML dans le code du widget

NB2: D’un autre côté, avoir tout le code embarqué dans le le widget permet de très vite le mettre en branle sans toucher aux sources de l’IPX.

CONCLUSION : @GCE hésitez pas à proposer ce genre de composants en native dans vos prochaines releases !

Merci (cet IPX est quand même bien puissant :stuck_out_tongue:

Détail Widget Fil Pilot
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript">
    $(function() {
        readFilPilotCHAMBRE1();
  	});
    function readFilPilotCHAMBRE1() {

        var url='../api/xdevices.json?key=julIPX&Get=R'; 
        var response= $.getJSON( url, function( json ) {
            var status = json["R8"].toString()+json["R5"].toString();
            switch(status){       
                case "00":     
                  $('#outputCHAMBRE1').text("Confort");
                  $('#rangeInputCHAMBRE1').val("120");
                  break;
                case "01":
                  $('#outputCHAMBRE1').text("Hors gel");
                  $('#rangeInputCHAMBRE1').val("40");
                  break;
                case "10":
                  $('#outputCHAMBRE1').text("Off");
                  $('#rangeInputCHAMBRE1').val("00");
                  break;
                case "11":
                  $('#outputCHAMBRE1').text("Eco");
                  $('#rangeInputCHAMBRE1').val("80");
                  break;
            }
        });  
    }
	
    function filPilotCHAMBRE1(myVal){ 
        var url='../api/xdevices.json?key=julIPX&';
        switch(myVal){

            case "0":
              $.post(url+"SetR=08&ClearR=05");
              break;
            case "40":
              $.post(url+"SetR=05&ClearR=08");
              break;
            case "80":
              $.post(url+"SetR=08,05");
              break;
           case "120":
              $.post(url+"ClearR=08,05");
              break;
        }
        readFilPilotCHAMBRE1();
	}


</script>
<style type="text/css">
#rangeInputCHAMBRE1 {
  box-sizing: border-box;
  border: 0px solid transparent;
  padding: 0px;
  margin: 0px;
  width: 238px;
  height: 20px;
  cursor: pointer;
  background: repeating-linear-gradient(90deg, #777, #777 4%,transparent  1px, transparent 32% )  ;
  background-size: 100% 25%;
}
#rangeInputCHAMBRE1,#rangeInputCHAMBRE1::-webkit-slider-thumb {
  -webkit-appearance: none;
}
#rangeInputCHAMBRE1::-webkit-slider-runnable-track {
  box-sizing: border-box;
  width: 200px;
  height: 5px;
  border-radius: 2px;
  background: #777;
}

#rangeInputCHAMBRE1::-webkit-slider-thumb {
  box-sizing: border-box;
  padding: 0px;
  height: 20px;
  width: 10px;
  border-radius: 2px;
  border: 1px solid;
  margin-top: -8px;
  background: #EEE;
  background-color:#77b55a;
}

#rangeInputCHAMBRE1:focus {
  outline: none;
}

#rangeTitleCHAMBRE1{
 	margin-bottom: 5%;
 	color: #777;
    font-weight: bold;
 }
#rangeLegendCHAMBRE1{ 
  color: #777;
  word-spacing: 32px;
  left: 0px;
  top: 0px;
}
#containerCHAMBRE1 {
  padding: 0px;
  position: relative;
}

#outputCHAMBRE1{
  display: block;
  margin-top: 30px;
  
  
}
#outputCHAMBRE1:before{
 content:"Position: ";  
 color: #777;
}

</style>
 <div id="containerCHAMBRE1">
  <div id="rangeTitleCHAMBRE1">GRANDE CHAMBRE</div>
  <input type="range" id="rangeInputCHAMBRE1" min="0" max="120" step="40"  onchange="filPilotCHAMBRE1(this.value)">
  <div id="rangeLegendCHAMBRE1">Off Hors-Gel Eco Confort</div>
  <output id="outputCHAMBRE1"></output>
</div>
3 « J'aime »

Bonjour @JuL,

J’ai moi aussi bricolé un widget pour fil pilote avec la symbolique de celui du X-4FP.

Vous pouvez trouver des infos dans ces posts :

qui font des choses proches mais par pilotage via X-ENO ou X-4FP sur EDRT. L’adapter à votre configuration de pilotage par relais doit être assez facile.

Par ailleurs, j’ai déjà soumis l’idée à @Benjamin_GCE (par MP) de pouvoir passer 2 ordres contraires via un même scénario pour piloter 2 actionneurs d’un micro-module Ubiwizz (c’est exactement le même pb qu’avec les relais) pour accéder aux états Hors Gel et Arrêt. Cela nécessite d’avoir un flag qui permet de faire inverser l’ordre de On en Off ou inversement. Ce n’est déjà pas très simple pour les actionneurs Enocean qui se pilotent individuellement, ça risque d’être pire pour les relais qui se pilotent ensemble. Il m’avait indiqué en parler à son responsable. Je n’ai pas eu de nouvelle depuis. mais nous verrons peut-être cette fonctionnalité arriver dans une prochaine release…

Bien cdlt