Автоматика для туалета Вытяжной вентилятор, датчик движения, свет.

Программная платформа для систем автоматизации.
Диспетчеризация, Умный дом.
amgstone
Сообщения: 57
Зарегистрирован: 29 янв 2019, 21:19

Автоматика для туалета Вытяжной вентилятор, датчик движения, свет.

Сообщение amgstone » 15 мар 2019, 08:10

добрый день, помогите создать мнемосхему. Как можно сделать в ванной автоматическое включение вентилятора, то есть если зашел в туалет включился свет по датчику движения и я через минуту вышел с туалета то вентилятор после моего выхода не включается, но если я был в туалете 5 минут то после моего выхода с туалета и выключения света включается вентилятор на 5 минут, но если я был в туалете 10 минут то после моего выхода с туалета и виключения света включаеться вентилятор на 10 минут.

homa
Сообщения: 305
Зарегистрирован: 06 фев 2018, 08:22
Контактная информация:

Re: Автоматика для туалета Вытяжной вентилятор, датчик движения, свет.

Сообщение homa » 15 мар 2019, 08:35

amgstone писал(а):
15 мар 2019, 08:10
добрый день, помогите создать мнемосхему. Как можно сделать в ванной автоматическое включение вентилятора, то есть если зашел в туалет включился свет по датчику движения и я через минуту вышел с туалета то вентилятор после моего выхода не включается, но если я был в туалете 5 минут то после моего выхода с туалета и выключения света включается вентилятор на 5 минут, но если я был в туалете 10 минут то после моего выхода с туалета и виключения света включаеться вентилятор на 10 минут.
Тут сценарий нужен, а не мнемосхема

homa
Сообщения: 305
Зарегистрирован: 06 фев 2018, 08:22
Контактная информация:

Re: Автоматика для туалета Вытяжной вентилятор, датчик движения, свет.

Сообщение homa » 15 мар 2019, 09:00

Наверное что-то такое, но без отладки не уверен:
Вложения
vent1.JPG
vent1.JPG (50.5 КБ) 536 просмотров

amgstone
Сообщения: 57
Зарегистрирован: 29 янв 2019, 21:19

Re: Автоматика для туалета Вытяжной вентилятор, датчик движения, свет.

Сообщение amgstone » 15 мар 2019, 11:38

homa писал(а):
15 мар 2019, 09:00
Наверное что-то такое, но без отладки не уверен:
вечером попробую, отпишусь, мнемосхему создал, нужно только проверить))))

amgstone
Сообщения: 57
Зарегистрирован: 29 янв 2019, 21:19

Re: Автоматика для туалета Вытяжной вентилятор, датчик движения, свет.

Сообщение amgstone » 15 мар 2019, 15:36

homa писал(а):
15 мар 2019, 09:00
Наверное что-то такое, но без отладки не уверен:
даже не дрогнулось: Изображение

amgstone
Сообщения: 57
Зарегистрирован: 29 янв 2019, 21:19

Re: Автоматика для туалета Вытяжной вентилятор, датчик движения, свет.

Сообщение amgstone » 15 мар 2019, 15:55

сделал такой скрипт
/**
* @name Світло коридор 1 поверх
* @desc
* @version 4
*/
const motion = Device("SMOTION1");
const lamp = Device("LAMP2", "Светильник коридор 1", [
{"name":"timeOff", "note":"Светильник горит без движения, сек", "type":"number", "val":50},
{"name":"tempVal", "note":"$", "type":"number", "val":300}
]);
const regim = Device("SWITCH1","Режим теплых полов");
startOnChange(motion);

script({
start() {
this.addTimer("T1");
if (this.timer.T1 != 'on'){
if(regim.value != 3){
if(lamp.isOff())
lamp.turnOnSaveAuto();
}
}
this.addListener(motion, "onMotion");
},
onMotion(){
if(lamp.getParam("tempVal")==300){
lamp.setParam("tempVal",150);
}else{
lamp.setParam("tempVal",lamp.getParam("tempVal")+50);
}
this.log(lamp.getParam("tempVal"));
if (motion.isOn()){
if (this.timer.T1 == 'on'){
this.stopTimer("T1");
}
if(regim.value != 1 && regim.value != 3){
if(lamp.isOff())
lamp.turnOnSaveAuto();
}
}
if (motion.isOff()){
this.startTimer("T1",lamp.getParam("timeOff"),"turnOff");
}
},
turnOff() {
if(motion.isOff())
lamp.turnOffSaveAuto();
}
});

но тогда появляется это:
Изображение

Какие есть предложения?

intrapro
Сообщения: 441
Зарегистрирован: 13 дек 2016, 09:14

Re: Автоматика для туалета Вытяжной вентилятор, датчик движения, свет.

Сообщение intrapro » 23 мар 2019, 13:22

amgstone писал(а):
15 мар 2019, 15:55
Какие есть предложения?
Если вам не нравится, что параметры показаны в основном интерфейсе, можно их скрыть - добавить свойство hide:1

Код: Выделить всё

const lamp = Device("LAMP2", "Светильник коридор 1", [
    {"name":"timeOff", "note":"Светильник горит без движения, сек", "type":"number", "val":50, "hide":1 },
    {"name":"tempVal", "note":"$", "type":"number", "val":300, "hide":1 }
  ]); 

intrapro
Сообщения: 441
Зарегистрирован: 13 дек 2016, 09:14

Re: Автоматика для туалета Вытяжной вентилятор, датчик движения, свет.

Сообщение intrapro » 23 мар 2019, 13:41

amgstone писал(а):
15 мар 2019, 08:10
добрый день, помогите создать мнемосхему. Как можно сделать в ванной автоматическое включение вентилятора, то есть если зашел в туалет включился свет по датчику движения и я через минуту вышел с туалета то вентилятор после моего выхода не включается, но если я был в туалете 5 минут то после моего выхода с туалета и выключения света включается вентилятор на 5 минут, но если я был в туалете 10 минут то после моего выхода с туалета и виключения света включаеться вентилятор на 10 минут.
Если этот сценарий все еще актуален - с помощью блок-схемы его не реализуешь, так как надо засекать время работы лампы и слушать события устройств во время выполнения сценария.
И лучше свет по датчику движения оставить стандартно. А для вентилятора добавить сценарий, который ориентируется на лампу.

Вот мультисценарий, который работает следующим образом:
При включении лампы вентилятор выключится
При выключении лампы вентилятор включится, если лампа горела более 5 минут, и будет работать столько же, сколько горела лампа

Код: Выделить всё

/** 
* @name Вентилятор в туалете 
* @desc  Вентилятор включается после отключения света на время, пропорциональное работе светильника
*  Работает, если вентилятор находится в режиме АВТО
* @version 4 
*/

const lamp = Device("ActorD"); 
const vent = Device("ActorD"); 

startOnChange([lamp], vent.auto); 

script({
    tsStart:0,
    timeVentOn:0,
    
    start() {
        if (this.isChanged(lamp,'dval') && lamp.isOn())  {
           // Включили лампу - выключаем вентилятор, засекаем время 
          vent.turnOffSaveAuto();
          this.tsStart = Date.now();
          
          // Будем следить за лампой
          this.addListener(lamp, 'onLamp');
        }  
    },
           
    onLamp() {
       // Интересуют только переключения лампы   
       if (!this.isChanged(lamp,'dval')) return;
       
      if (lamp.isOn()) {
         // Лампа включилась - все начинается сначала
         this.stopTimer('T1');
         this.removeListener(vent, 'onVent');
         vent.turnOffSaveAuto();
         this.tsStart = Date.now();
          
      } else {
          // Лампа выключилась - определяем время горения в секундах
          let periodSek = (Date.now() - this.tsStart)/1000;
        
          // Если лампа горела больше 5 мин (300 сек) и вентилятор в автомате 
          if ((periodSek > 300) && vent.auto) {
        
            // Включим вентилятор и взведем таймер, чтобы затем отключить вентилятор
            this.timeVentOn = Math.round(periodSek);
            vent.turnOnSaveAuto();
            this.startTimer('T1', this.timeVentOn, 'onTimerReady');
        
            // Также будем слушать события вентилятора - если его отключат вручную или сбросят автомат
            this.addListener(vent, 'onVent');
          } else {
            // Время менее 5 или вент не авто 
            this.exit();
          }
      }
    },
    
    onVent() {
      if (!vent.auto || vent.isOff()) {
        // Вент отключен или не авто
        this.exit();
      }  
    },
    
    onTimerReady() {
       vent.turnOffSaveAuto();
       this.exit();
    }
});
Вы можете доработать сценарий по своему вкусу :)

amgstone
Сообщения: 57
Зарегистрирован: 29 янв 2019, 21:19

Re: Автоматика для туалета Вытяжной вентилятор, датчик движения, свет.

Сообщение amgstone » 24 мар 2019, 16:54

добрый день, тут все окей, но у меня есть датчик влажности и я хочу чтобы при включении света начился опрос датчика влажности (если начал принимать ванну), и вентилятор включился если влажность увеличилась от заданной даже когда свет включенный.

intrahouse
Сообщения: 543
Зарегистрирован: 12 дек 2016, 20:22

Re: Автоматика для туалета Вытяжной вентилятор, датчик движения, свет.

Сообщение intrahouse » 25 мар 2019, 06:47

amgstone писал(а):
24 мар 2019, 16:54
добрый день, тут все окей, но у меня есть датчик влажности и я хочу чтобы при включении света начился опрос датчика влажности (если начал принимать ванну), и вентилятор включился если влажность увеличилась от заданной даже когда свет включенный.
А при отключенном свете управлять вентилятором по датчику влажности не надо?

Первоначальная задача :
amgstone писал(а):
15 мар 2019, 08:10
есть если зашел в туалет включился свет по датчику движения и я через минуту вышел с туалета то вентилятор после моего выхода не включается, но если я был в туалете 5 минут то после моего выхода с туалета и выключения света включается вентилятор на 5 минут, но если я был в туалете 10 минут то после моего выхода с туалета и виключения света включаеться вентилятор на 10 минут.
Судя по задаче, включать вентилятор можно только тогда, когда свет не горит.
Для чего? Я могу только догадываться. Но хотелось бы знать точнее.
amgstone писал(а):
24 мар 2019, 16:54
и вентилятор включился если влажность увеличилась от заданной даже когда свет включенный
Здесь уже нужно включать вентилятор независимо от света? Только по датчику влажности?

Я предлагаю сформулировать задачу полностью. И не одним предложением, а по пунктам.
И чтобы было понятно, что вы хотите. Какая цель?
Например:
Включать вентилятор при условии:
1. Свет горит/не горит
2. Влажность больше x%
...
Выключать вентилятор при условии:
1.
2.

Попробуйте сформулировать задачу как в примере: https://ih-systems.com/ru/scen-climate2/

Ответить