[TUTO] Virtuel Arrêt forcé / Auto / Marche forcée avec reprise automatique

Bonjour à tous,

Suite à un besoin spécifique, j’ai créer ce weekend un équipement virtuel pour mettre en marche/arrêt forcé ou auto mon ballon d’eau chaude, peut-être que ça peut te servir.

Un virtuel sur la dashboard et un scénario permet le contrôle et la visualisation :
image

L’appui sur l’un des boutons change le mode du chauffe eau :

  • STOP : « Arrêt forcé » (pour 1h).
  • CLOCK : « Auto » → programmation de la chauffe entre 1h30 et 6h,
  • FIRE : « Marche forcée » (pour 1h).

Le champ date en dessous, permet de modifier la date/heure de fin de la dérogation en cours (si forcé) ou de conserver le mode de fonctionnement en cours jusqu’à une certaine date (si auto).

Le virtuel est le suivant :


Configuration avancée de l’équipement (Graphique de fond) :

Configuration avancée de la commande « Auto » :

Configuration avancée des commandes « Arrêt forcé » et « Marche forcée » :

Configuration avancée de la commande « Date de reprise auto » :

Le widget « Date reprise » est en mode code :

<div style="width:185px;" class="tooltips cmd cmd-widget" data-type="action" data-subtype="slider" data-cmd_id="#id#" data-cmd_uid="#uid#" data-version="#version#">
  <span style="#hideCmdName#" class="cmdName">#name_display#</span>
  <div class="content-sm">
    <input id="input#id#" class="form-control input-sm value execute" type="datetime-local" data-cmd_id="#id#" required style="margin-top:5px;width:175px!important;height:30px!important;min-height:30px!important;max-height:30px!important;" />
  </div>
  <script>
    jeedom.cmd.update['#id#'] = function(_options){
      if (_options.display_value!="") {
        var theVal = new Date(_options.display_value*1000);
        theVal.setHours(theVal.getHours() - theVal.getTimezoneOffset()/60);
        var theStr = theVal.toISOString();
        theStr = theStr.substr(0,theStr.indexOf("."));
        $('#input#id#').val(theStr);
      } else { 
        $('#input#id#').val("");
      }
      if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
        $('.cmd[data-cmd_uid=#uid#] .execute').off("change").on("change", function () {
          var theDate = new Date(this.value);
          jeedom.cmd.execute({id:'#id#', value: { slider: theDate.getTime()/1000 }});
        });
      } else {
        $('.cmd[data-cmd_uid=#uid#]:last .execute').off("keypress").keypress(function( event ) {
             if(event.which == 13) {
               var theDate = new Date(this.value);
               jeedom.cmd.execute({id:'#id#', value: { slider: theDate.getTime()/1000 }});
             }
        });
      }
    }
    jeedom.cmd.update['#id#']({display_value:'#state#',valueDate:'#valueDate#',collectDate:'#collectDate#',alertLevel:'#alertLevel#'});
  </script>
</div>

Le widget « Gestion » :

Le scénario :


Code du scénario
- Nom du scénario : Chauffe Eau
- Objet parent : Entrée
- Mode du scénario : all
    - Programmation : 10 * * * *
    - Programmation : 40 * * * *
    - Evènement : #[Entrée][Gestion Chauffe Eau][Gestion]#
    - Evènement : #[Entrée][Gestion Chauffe Eau][Date reprise]#

    ACTION
     remove_inat - Options : {"enable":"1","background":"0"}

    SI intval(#[Entrée][Gestion Chauffe Eau][Date reprise]#) > #timestamp# && (#[Entrée][Gestion Chauffe Eau][Gestion]# != 0)
    ALORS
        DANS (intval(#[Entrée][Gestion Chauffe Eau][Date reprise]#) - #timestamp#) / 60 + 1
        FAIRE
         (scenario) start de [Chauffage][Entrée][Chauffe Eau]
    SINON
     event - Options : {"enable":"1","background":"0","cmd":"#[Entr\u00e9e][Gestion Chauffe Eau][Gestion]#","value":"0"}
     event - Options : {"enable":"1","background":"0","cmd":"#[Entr\u00e9e][Gestion Chauffe Eau][Date reprise]#","value":""}

    SI (#[Entrée][Gestion Chauffe Eau][Gestion]# < 0)
    ALORS
     #[Entrée][Chauffe Eau][Off 1]# - Options : {"enable":"1","background":"0"}
     (stop) Arret du scenario
    SINON
    
    SI (#[Entrée][Gestion Chauffe Eau][Gestion]# > 0)
    ALORS
     #[Entrée][Chauffe Eau][On 1]# - Options : {"enable":"1","background":"0"}
     (stop) Arret du scenario
    SINON
    
    SI time_between(#time#,0130,0600)
    ALORS
     #[Entrée][Chauffe Eau][On 1]# - Options : {"enable":"1","background":"0"}
    SINON
     #[Entrée][Chauffe Eau][Off 1]# - Options : {"enable":"1","background":"0"}

Je peux donner plus de détails sur le fonctionnement, les widgets, ou autre, si besoin.

Bad

8 « J'aime »