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

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ответить
GreatBAO
Сообщения: 119
Зарегистрирован: Пн авг 24, 2015 11:24 am
Откуда: Сочи
Благодарил (а): 4 раза
Поблагодарили: 14 раз

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

Сообщение GreatBAO » Ср ноя 09, 2016 3:21 pm

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

вопрос: как можно реализовать проверку к примеру раз в 30 секунд свойства этих объектов ?
то есть, мне нужно что бы система сама мониторила свойство last_update (с переодичностью 30 секунд) всех объектов класса ESP на момент устаревания данных и производила перевод статуса свойства online в offline по средствам кода PHP
сам код по проверке и изменению статуса написать могу, но не могу понять куда его впихнуть и как вызывать каждые 30 минут
а так же не могу разобраться как в коде проверить определенное свойство всех объектов класса
ErmolenkoM
Сообщения: 560
Зарегистрирован: Ср сен 04, 2013 10:31 am
Откуда: Самара
Благодарил (а): 99 раз
Поблагодарили: 140 раз
Контактная информация:

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

Сообщение ErmolenkoM » Ср ноя 09, 2016 9:57 pm

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);
}
За это сообщение автора ErmolenkoM поблагодарил:
Amarok (Чт ноя 10, 2016 8:50 am)
Рейтинг: 1.16%
aka msh555
Cubian на Cubietruck, Connect
GreatBAO
Сообщения: 119
Зарегистрирован: Пн авг 24, 2015 11:24 am
Откуда: Сочи
Благодарил (а): 4 раза
Поблагодарили: 14 раз

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

Сообщение GreatBAO » Чт ноя 10, 2016 9:06 pm

с перебором объектов разобрался - спасибо
а насчет onNewMinute не совсем понял, он же запускается раз в минуту, а мне нужно проверять чаще
Аватара пользователя
lanket
Сообщения: 1168
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 260 раз
Поблагодарили: 163 раза

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

Сообщение lanket » Чт ноя 10, 2016 10:52 pm

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

Отправлено с моего Redmi Note 3 через Tapatalk
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
SolarW
Сообщения: 179
Зарегистрирован: Вс июл 31, 2016 11:24 pm
Благодарил (а): 35 раз
Поблагодарили: 24 раза

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

Сообщение SolarW » Чт ноя 10, 2016 11:29 pm

lanket писал(а):Модуль cron вам поможет
Это вряд ли, там насколько помнится тоже чаще раза в минуту задачу не вызвать.
Аватара пользователя
lanket
Сообщения: 1168
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 260 раз
Поблагодарили: 163 раза

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

Сообщение lanket » Чт ноя 10, 2016 11:37 pm

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

Отправлено с моего Redmi Note 3 через Tapatalk
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
GreatBAO
Сообщения: 119
Зарегистрирован: Пн авг 24, 2015 11:24 am
Откуда: Сочи
Благодарил (а): 4 раза
Поблагодарили: 14 раз

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

Сообщение GreatBAO » Пт ноя 11, 2016 10:32 am

ну крон кроном, думал что как то возможно это реализовать средствами MJD
ладно, запалим пока отдельным скриптом
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

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

Сообщение sergejey » Пт ноя 11, 2016 2:17 pm

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

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
GreatBAO
Сообщения: 119
Зарегистрирован: Пн авг 24, 2015 11:24 am
Откуда: Сочи
Благодарил (а): 4 раза
Поблагодарили: 14 раз

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

Сообщение GreatBAO » Пт ноя 11, 2016 5:03 pm

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