В связи с выходом крупного обновления 5.9.х, приглашаем вас принять участие в вебинаре 09.06.2022 в 15:00. Участвовать

Отопление по датчику температуры



  • Мультисценарий

    Управление радиаторами отопления по датчикам температуры

    /** 
    * @name Батареи по температуре АВТО 
    * @desc Включение-выключение батареи по датчику температуры
    *       Уставка на датчике температуры 
    */
    const bat = Device("ActorD", "Батарея"); 
    
    const dt = Device("SensorA", "Датчик температуры"); 
    
    const script = {
      check() {
        return bat.auto && ( (bat.dval==0)&&(dt.aval <= dt.defval-0.5) || (bat.dval>0)&&(dt.aval >= dt.defval));
      },
    
      start() {
        if (bat.dval==0) {
          this.do(bat, "aon");
        } else {
          this.do(bat, "aoff");
        }
      }
    };
    


  • А как будет такой же, только для 5 версии. Надо наверно разделять сценарии для разных версий, а то учишься по примерам, а не написано для какой версии. Заранее спасибо.



  • @thunder_d Можно так. В самом коде сценария указано, что для V5

    /** 
    * @desc  
    * @version 5
    */
    
    
    const bat = Device("Батарея отопления");
    const dt = Device("Датчик температуры");
    
    startOnChange(dt);
    const script = {
        check() {
          return bat.auto; // Если bat.auto=0 сценарий не запускается
        },  
        start() {
          if (dt.error) {
             this.log('Ошибка датчика температуры батареи отопления! Сценарий не выполнен!');
             return;
          }
         
          if (dt.value - dt.setpoint > 0.3 && bat.state == 1) { 
             bat.off();
             this.log('Батарея отопления выключена: температура ' +dt.value+', уставка '+dt.setpoint);
             return;
          }
          if (dt.value - dt.setpoint < -0.3 && bat.state == 0) { 
             bat.on();
             this.log('Батарея отопления включена: температура ' +dt.value+', уставка '+dt.setpoint);
             return;
          }
        } 
    };