Страница 2 из 2

Re: Длительность события, в минутах

Добавлено: Пт апр 02, 2021 2:29 pm
Stryzhak
Посмотрите, пожалуйста, на код:

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

if (gg('Pump3.status')==1){
setGlobal('Pump3.startTime',time());
return;
ClearTimeOut("Timer02");
SetTimeOut("Timer02","rs('WaterPumpAlarm');",$timeout=60);
}
if (gg('Pump3.status')==0){
$finish=time();
$start=gg('Pump3.startTime');
$duration=$finish-$start;
setGlobal('Pump3.durationLast',$duration);
$min=intval($duration/60);
$sec=$duration - ($min*60);
if ($min<=0) {
say('длительность работы насоса '.$sec.' секунд',1);
}
else if ($min==1){
say('длительность работы насоса '.$min.' минута '.$sec.' секунд',1);
}
else if ($min==2 || $min==3 || $min==4){
say('длительность работы насоса '.$min.' минуты '.$sec.' секунд',1);
}
else if ($min>=5){
say('длительность работы насоса '.$min.' минут '.$sec.' секунд',1);
}
}
В этом контексте таймер не срабатывает на 60 секунд, как предполагалось. Подскажите, пожалуйста: почему?

Re: Длительность события, в минутах

Добавлено: Пт апр 02, 2021 2:38 pm
Chainik
Наверное, проблема с синтаксисом. Поменяйте строчку с таймером на:

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

SetTimeOut("Timer02","rs('WaterPumpAlarm');",60);

Re: Длительность события, в минутах

Добавлено: Пт апр 02, 2021 3:42 pm
Stryzhak
Chainik писал(а):
Пт апр 02, 2021 2:38 pm
Наверное, проблема с синтаксисом. Поменяйте строчку с таймером на:

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

SetTimeOut("Timer02","rs('WaterPumpAlarm');",60);
Поменял, не сработало также. Может проблема в другом?

Re: Длительность события, в минутах

Добавлено: Пт апр 02, 2021 4:29 pm
Chainik
А... Еще в этом блоке return надо в конец перенести:

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

if (gg('Pump3.status')==1){
setGlobal('Pump3.startTime',time());
ClearTimeOut("Timer02");
SetTimeOut("Timer02","rs('WaterPumpAlarm');",60);
return;}

Re: Длительность события, в минутах

Добавлено: Пт апр 02, 2021 4:55 pm
fandaymon
И ClearTimeOut не нужен, так как первое что делает функция SetTimeOut, это вызывает ClearTimeOut

Re: Длительность события, в минутах

Добавлено: Пн апр 05, 2021 10:51 am
Stryzhak
Спасибо вам дорогие, после исправлений - все заработало!

Re: Длительность события, в минутах

Добавлено: Пн апр 05, 2021 1:20 pm
Stryzhak
Еще один вопрос, товарищи: при такой реализации

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

if (gg('Pump3.status')==1){
setGlobal('Pump3.startTime',time());
SetTimeOut("Timer02","rs('WaterPumpAlarm');",300);
return;
}
скрипт срабатывает по истечении таймера, а как сделать так чтобы таймер остановился при Pump3.status==0?
Спасибо вам.

Re: Длительность события, в минутах

Добавлено: Пн апр 05, 2021 3:46 pm
Chainik
Видимо, так:

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

if (gg('Pump3.status')==0){
ClearTimeOut("Timer02");
//return;
}
Если дальнейшее выполнение кода при этом должно остановиться, добавьте "return;"

Re: Длительность события, в минутах

Добавлено: Вт апр 20, 2021 1:32 pm
Stryzhak
xor писал(а):
Чт апр 01, 2021 2:47 am
Stryzhak писал(а):
Ср мар 31, 2021 4:16 pm
Здравствуйте дорогие друзья!
У меня схожая задача: надо посчитать время от изменения статуса обьекта с 1 на 0. Я написал такой сценарий:
если есть история свойства статуса насоса -
посмотрите https://connect.smartliving.ru/profile/ ... omili.html
Подскажите, пожалуйста, как в добавленом мною свойстве объекта включить историю?
Спасибо вам

Re: Длительность события, в минутах

Добавлено: Вт апр 20, 2021 1:52 pm
fandaymon
Stryzhak писал(а):
Вт апр 20, 2021 1:32 pm
xor писал(а):
Чт апр 01, 2021 2:47 am
Stryzhak писал(а):
Ср мар 31, 2021 4:16 pm
Здравствуйте дорогие друзья!
У меня схожая задача: надо посчитать время от изменения статуса обьекта с 1 на 0. Я написал такой сценарий:
если есть история свойства статуса насоса -
посмотрите https://connect.smartliving.ru/profile/ ... omili.html
Подскажите, пожалуйста, как в добавленом мною свойстве объекта включить историю?
Спасибо вам
Надо добавить свойство в классе и там же включить историю