Проверка состояния свойства
Модератор: immortal
-
- Сообщения: 119
- Зарегистрирован: Пн авг 24, 2015 11:24 am
- Откуда: Сочи
- Благодарил (а): 4 раза
- Поблагодарили: 14 раз
Проверка состояния свойства
Есть десяток модулей ESP
Под данные модули создан класс ESP с определенными свойствами и объектами
ESP модули раз в 30 секунд шлют по MQTT пакет в свойство status = 1, при получении нового значения в свойство status оно запускает обработку метода, который меняет свойство last_update
тем самым я вижу статус онлайна каждого ESP модуля и дату его последнего отзыва
вопрос: как можно реализовать проверку к примеру раз в 30 секунд свойства этих объектов ?
то есть, мне нужно что бы система сама мониторила свойство last_update (с переодичностью 30 секунд) всех объектов класса ESP на момент устаревания данных и производила перевод статуса свойства online в offline по средствам кода PHP
сам код по проверке и изменению статуса написать могу, но не могу понять куда его впихнуть и как вызывать каждые 30 минут
а так же не могу разобраться как в коде проверить определенное свойство всех объектов класса
Под данные модули создан класс ESP с определенными свойствами и объектами
ESP модули раз в 30 секунд шлют по MQTT пакет в свойство status = 1, при получении нового значения в свойство status оно запускает обработку метода, который меняет свойство last_update
тем самым я вижу статус онлайна каждого ESP модуля и дату его последнего отзыва
вопрос: как можно реализовать проверку к примеру раз в 30 секунд свойства этих объектов ?
то есть, мне нужно что бы система сама мониторила свойство last_update (с переодичностью 30 секунд) всех объектов класса ESP на момент устаревания данных и производила перевод статуса свойства online в offline по средствам кода PHP
сам код по проверке и изменению статуса написать могу, но не могу понять куда его впихнуть и как вызывать каждые 30 минут
а так же не могу разобраться как в коде проверить определенное свойство всех объектов класса
-
- Сообщения: 560
- Зарегистрирован: Ср сен 04, 2013 10:31 am
- Откуда: Самара
- Благодарил (а): 99 раз
- Поблагодарили: 140 раз
- Контактная информация:
Re: Проверка состояния свойства
1. onNewMinute
2. http://majordomo.smartliving.ru/Main/Pr ... gFunctions
Пример перебора объектов в цикле и установки значения свойств:
Код: Выделить всё
$h=(int)date('G',time());
$m=date('i',time());
if (($h>=8)) {
if ($m=="00") {
say(timeNow());
}
}
Пример перебора объектов в цикле и установки значения свойств:
Код: Выделить всё
$objects=getObjectsByClass("class_name");
foreach($objects as $obj) {
setGlobal($obj['TITLE'].".property_name",1);
}
- За это сообщение автора ErmolenkoM поблагодарил:
- Amarok (Чт ноя 10, 2016 8:50 am)
- Рейтинг: 1.16%
-
- Сообщения: 119
- Зарегистрирован: Пн авг 24, 2015 11:24 am
- Откуда: Сочи
- Благодарил (а): 4 раза
- Поблагодарили: 14 раз
Re: Проверка состояния свойства
с перебором объектов разобрался - спасибо
а насчет onNewMinute не совсем понял, он же запускается раз в минуту, а мне нужно проверять чаще
а насчет onNewMinute не совсем понял, он же запускается раз в минуту, а мне нужно проверять чаще
- lanket
- Сообщения: 1168
- Зарегистрирован: Вт окт 14, 2014 11:27 pm
- Откуда: Санкт-Петербург
- Благодарил (а): 260 раз
- Поблагодарили: 163 раза
Re: Проверка состояния свойства
Модуль cron вам поможетGreatBAO писал(а):с перебором объектов разобрался - спасибо
а насчет onNewMinute не совсем понял, он же запускается раз в минуту, а мне нужно проверять чаще
Отправлено с моего Redmi Note 3 через Tapatalk
Разработка голосового асистента для Мажордомо по любому ключевому слову.
Обсужение
gitHub 2й версии терминала
GitHub модуля для МД
gitHub сырого модуля 2й версии
Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Обсужение
gitHub 2й версии терминала
GitHub модуля для МД
gitHub сырого модуля 2й версии
Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
-
- Сообщения: 179
- Зарегистрирован: Вс июл 31, 2016 11:24 pm
- Благодарил (а): 35 раз
- Поблагодарили: 24 раза
Re: Проверка состояния свойства
Это вряд ли, там насколько помнится тоже чаще раза в минуту задачу не вызвать.lanket писал(а):Модуль cron вам поможет
- lanket
- Сообщения: 1168
- Зарегистрирован: Вт окт 14, 2014 11:27 pm
- Откуда: Санкт-Петербург
- Благодарил (а): 260 раз
- Поблагодарили: 163 раза
Re: Проверка состояния свойства
Тогда если линух то родной cron с запуском php который в свою очередь будет делать то что вам нужноSolarW писал(а):Это вряд ли, там насколько помнится тоже чаще раза в минуту задачу не вызвать.lanket писал(а):Модуль cron вам поможет
Отправлено с моего Redmi Note 3 через Tapatalk
Разработка голосового асистента для Мажордомо по любому ключевому слову.
Обсужение
gitHub 2й версии терминала
GitHub модуля для МД
gitHub сырого модуля 2й версии
Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Обсужение
gitHub 2й версии терминала
GitHub модуля для МД
gitHub сырого модуля 2й версии
Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
-
- Сообщения: 119
- Зарегистрирован: Пн авг 24, 2015 11:24 am
- Откуда: Сочи
- Благодарил (а): 4 раза
- Поблагодарили: 14 раз
Re: Проверка состояния свойства
ну крон кроном, думал что как то возможно это реализовать средствами MJD
ладно, запалим пока отдельным скриптом
ладно, запалим пока отдельным скриптом
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Проверка состояния свойства
Для меня стандартный способ в данном случае, это с каждым обновлением ставить свойство alive в 1 и сразу ставить таймер (в вашем случае на те же 30 секнду) на установку этого свойства в ноль. Если всё хорошо, то этот таймер никогда не сработает. Если сработает, значит с момента обновления прошло более 30 секунд.
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 119
- Зарегистрирован: Пн авг 24, 2015 11:24 am
- Откуда: Сочи
- Благодарил (а): 4 раза
- Поблагодарили: 14 раз
Re: Проверка состояния свойства
во, а про таймеры я даже и не подумалsergejey писал(а):Для меня стандартный способ в данном случае, это с каждым обновлением ставить свойство alive в 1 и сразу ставить таймер (в вашем случае на те же 30 секнду) на установку этого свойства в ноль. Если всё хорошо, то этот таймер никогда не сработает. Если сработает, значит с момента обновления прошло более 30 секунд.
Сергей спасибо, сам бы не додумался