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

Проверка состояния свойства

Добавлено: Ср ноя 09, 2016 3:21 pm
GreatBAO
Есть десяток модулей ESP
Под данные модули создан класс ESP с определенными свойствами и объектами
ESP модули раз в 30 секунд шлют по MQTT пакет в свойство status = 1, при получении нового значения в свойство status оно запускает обработку метода, который меняет свойство last_update
тем самым я вижу статус онлайна каждого ESP модуля и дату его последнего отзыва

вопрос: как можно реализовать проверку к примеру раз в 30 секунд свойства этих объектов ?
то есть, мне нужно что бы система сама мониторила свойство last_update (с переодичностью 30 секунд) всех объектов класса ESP на момент устаревания данных и производила перевод статуса свойства online в offline по средствам кода PHP
сам код по проверке и изменению статуса написать могу, но не могу понять куда его впихнуть и как вызывать каждые 30 минут
а так же не могу разобраться как в коде проверить определенное свойство всех объектов класса

Re: Проверка состояния свойства

Добавлено: Ср ноя 09, 2016 9:57 pm
ErmolenkoM
1. onNewMinute

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

$h=(int)date('G',time());
$m=date('i',time());

if (($h>=8)) {
 if ($m=="00") {
   say(timeNow());
 }
}
2. http://majordomo.smartliving.ru/Main/Pr ... gFunctions
Пример перебора объектов в цикле и установки значения свойств:

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

$objects=getObjectsByClass("class_name");
foreach($objects as $obj) {
 setGlobal($obj['TITLE'].".property_name",1);
}

Re: Проверка состояния свойства

Добавлено: Чт ноя 10, 2016 9:06 pm
GreatBAO
с перебором объектов разобрался - спасибо
а насчет onNewMinute не совсем понял, он же запускается раз в минуту, а мне нужно проверять чаще

Re: Проверка состояния свойства

Добавлено: Чт ноя 10, 2016 10:52 pm
lanket
GreatBAO писал(а):с перебором объектов разобрался - спасибо
а насчет onNewMinute не совсем понял, он же запускается раз в минуту, а мне нужно проверять чаще
Модуль cron вам поможет

Отправлено с моего Redmi Note 3 через Tapatalk

Re: Проверка состояния свойства

Добавлено: Чт ноя 10, 2016 11:29 pm
SolarW
lanket писал(а):Модуль cron вам поможет
Это вряд ли, там насколько помнится тоже чаще раза в минуту задачу не вызвать.

Re: Проверка состояния свойства

Добавлено: Чт ноя 10, 2016 11:37 pm
lanket
SolarW писал(а):
lanket писал(а):Модуль cron вам поможет
Это вряд ли, там насколько помнится тоже чаще раза в минуту задачу не вызвать.
Тогда если линух то родной cron с запуском php который в свою очередь будет делать то что вам нужно

Отправлено с моего Redmi Note 3 через Tapatalk

Re: Проверка состояния свойства

Добавлено: Пт ноя 11, 2016 10:32 am
GreatBAO
ну крон кроном, думал что как то возможно это реализовать средствами MJD
ладно, запалим пока отдельным скриптом

Re: Проверка состояния свойства

Добавлено: Пт ноя 11, 2016 2:17 pm
sergejey
Для меня стандартный способ в данном случае, это с каждым обновлением ставить свойство alive в 1 и сразу ставить таймер (в вашем случае на те же 30 секнду) на установку этого свойства в ноль. Если всё хорошо, то этот таймер никогда не сработает. Если сработает, значит с момента обновления прошло более 30 секунд.

Re: Проверка состояния свойства

Добавлено: Пт ноя 11, 2016 5:03 pm
GreatBAO
sergejey писал(а):Для меня стандартный способ в данном случае, это с каждым обновлением ставить свойство alive в 1 и сразу ставить таймер (в вашем случае на те же 30 секнду) на установку этого свойства в ноль. Если всё хорошо, то этот таймер никогда не сработает. Если сработает, значит с момента обновления прошло более 30 секунд.
во, а про таймеры я даже и не подумал :)
Сергей спасибо, сам бы не додумался