Мониторинг состояния системы

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

Модератор: immortal

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

Мониторинг состояния системы

Сообщение sergejey » Вт июн 11, 2013 6:10 pm

Обсуждение страницы Мониторинг состояния системы

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
pdmitry2
Сообщения: 90
Зарегистрирован: Ср фев 06, 2013 1:12 pm
Откуда: Россия, Москва
Благодарил (а): 35 раз
Поблагодарили: 6 раз

Re: Мониторинг состояния системы

Сообщение pdmitry2 » Чт июн 13, 2013 6:36 pm

Сергей, а как сделать аналогично этому

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

$details=array();
$red_state=0;
$yellow_state=0;

if ((gg('sensorEntry.status')==0) && (gg('sensorGarage.status')==0)) {
 $yellow_state=1;
 $details[]="Ворота и гараж открыты";
} elseif (gg('sensorEntry.status')==0) {
 $yellow_state=1;
 $details[]="Ворота открыты.";
}

if (!isOnline("192.168.0.115")) {
 $yellow_state=1;
 $details[]="Камера на втором этаже недоступна";
}

if ((gg('ThisComputer.somebodyHome')==0) && (gg('sensorEntry.status')==0) && (gg('sensorGarage.status')==0)) {
 $red_state=1;
 $details[]="Дома никого нет, а ворота и гараж открыты";
}

if ($red_state) {
 $state='red';
 $state_title='Красный'; 
} elseif ($yellow_state) {
 $state='yellow';
 $state_title='Жёлтый';  
} else {
 $state='green';
 $state_title='Зелёный';   
}

$this->setProperty('stateDetails',implode(". ",$details));

if ($this->getProperty('stateColor')!=$state) {
 $this->setProperty('stateColor',$state);
 $this->setProperty('stateTitle',$state_title);
 if ($state!='green') {
  say("Уровень безопасности изменился на ".$state_title.".");
  say(implode(". ",$details));
 } else {
  say("Уровень безопасности восстановился на ".$state_title);
 }
 $this->callMethod('stateChanged');
}
но, для датчика температуры?
Например, есть датчик со свойством temp_1.temp, как сделать, что бы если температура ниже 20 градусов, в меню управления висел красный статус, а как только температура поднимается выше 20 градусов, статус менялся бы на зелёный, ну и всё это с соответствующими уведомлениями.
Поможете? ;)
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Мониторинг состояния системы

Сообщение sergejey » Пт июн 14, 2013 10:29 am

там в коде есть блок условий. например такое:

if (!isOnline("192.168.0.115")) {
$yellow_state=1;
$details[]="Камера на втором этаже недоступна";
}

можно заменить его на такое (или добавить под ним):

if (getGlobal('temp_1.temp')<20) {
$red_state=1;
$details[]="Температура на датчике 1 ниже 20 градусов";
}

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Satgate_M
Сообщения: 79
Зарегистрирован: Ср дек 26, 2012 8:20 pm
Благодарил (а): 6 раз
Поблагодарили: 0

Re: Мониторинг состояния системы

Сообщение Satgate_M » Вс фев 23, 2014 5:55 pm

Сергей, добрый день.

Более менее разобрался, что за что отвечает, но никак не могу осилить обновление датчиков.
внизу в коде есть параметр(где массив сенсоров задаем): .alive

вот где надо создать это .alive и как его вызывать и что должно в нем быть чтобы сенсоры работали.
По факту у меня сенсоры работают, но система пишет, что датчик не обновляется!

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

Re: Мониторинг состояния системы

Сообщение sergejey » Вс фев 23, 2014 7:58 pm

Satgate_M писал(а):Сергей, добрый день.

Более менее разобрался, что за что отвечает, но никак не могу осилить обновление датчиков.
внизу в коде есть параметр(где массив сенсоров задаем): .alive

вот где надо создать это .alive и как его вызывать и что должно в нем быть чтобы сенсоры работали.
По факту у меня сенсоры работают, но система пишет, что датчик не обновляется!

Спасибо.
Смотрите на моём профайле в коннекте как сделано. Если в кратце, то при обновления значения датчиков у меня устанавливается значение alive в 1 и задаётся таймер, который сбрасывает это значение в 0. Таким образом, если датчик регулярно присылает обновления, то alive будет всегда 1.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Satgate_M
Сообщения: 79
Зарегистрирован: Ср дек 26, 2012 8:20 pm
Благодарил (а): 6 раз
Поблагодарили: 0

Re: Мониторинг состояния системы

Сообщение Satgate_M » Пн фев 24, 2014 7:25 pm

sergejey писал(а):
Satgate_M писал(а):Сергей, добрый день.

Более менее разобрался, что за что отвечает, но никак не могу осилить обновление датчиков.
внизу в коде есть параметр(где массив сенсоров задаем): .alive

вот где надо создать это .alive и как его вызывать и что должно в нем быть чтобы сенсоры работали.
По факту у меня сенсоры работают, но система пишет, что датчик не обновляется!

Спасибо.
Смотрите на моём профайле в коннекте как сделано. Если в кратце, то при обновления значения датчиков у меня устанавливается значение alive в 1 и задаётся таймер, который сбрасывает это значение в 0. Таким образом, если датчик регулярно присылает обновления, то alive будет всегда 1.
В профайле нашел вроде эти alive, а вот какой код в них записан где можно посмотреть?
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Мониторинг состояния системы

Сообщение sergejey » Вт фев 25, 2014 10:25 am

вот, к примеру:

Изображение

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Satgate_M
Сообщения: 79
Зарегистрирован: Ср дек 26, 2012 8:20 pm
Благодарил (а): 6 раз
Поблагодарили: 0

Re: Мониторинг состояния системы

Сообщение Satgate_M » Вт фев 25, 2014 5:19 pm

Добавил в метод tempChanged и при изменении температуры почему-то ничего не происходит ни в alive ни в других полях ничего нет, только температура (снимок в приложении)

И ни как не могу ни у кого получить как поменять статус системы со слов на разцоцветные иконки (антенна, шестерня и тп).
Скриншоты ниже.
Вложения
Снимок экрана 2014-02-25 в 19.21.38.png
Снимок экрана 2014-02-25 в 19.21.38.png (46.66 КБ) 16305 просмотров
Снимок экрана 2014-02-25 в 19.21.08.png
Снимок экрана 2014-02-25 в 19.21.08.png (24.6 КБ) 16305 просмотров
Satgate_M
Сообщения: 79
Зарегистрирован: Ср дек 26, 2012 8:20 pm
Благодарил (а): 6 раз
Поблагодарили: 0

Re: Мониторинг состояния системы

Сообщение Satgate_M » Вт фев 25, 2014 8:08 pm

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

Re: Мониторинг состояния системы

Сообщение sergejey » Ср фев 26, 2014 10:40 am

Satgate_M писал(а):и что это за параметр в таймере 30*60 например как перевести его в реальное время чтобы понимать период обновления?
30*60 это 30 раз по 60 секунд, т.е. 30 минут

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Ответить