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

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

Модератор: immortal

Аватара пользователя
ansid
Сообщения: 22
Зарегистрирован: Пн сен 09, 2019 2:52 pm
Благодарил (а): 4 раза
Поблагодарили: 0

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

Сообщение ansid » Вт сен 10, 2019 11:59 am

Divan писал(а):
Вт сен 10, 2019 11:43 am
Методы можно добавлять только в основном объекте, а в под объекте, методы можно только настраивать. Смотрите скриншот ниже.
в итоге так и сделал, но метод не работает. Проверьте мне код плз, мало опыта с пхп.

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

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

if (!isOnline('82.207.45.207')) {
 $yellow_state=1;
 $details[]=LANG_GENERAL_NO_ACCESS;
}

if ($yellow_state) {
 $state='yellow';
 $state_title=LANG_GENERAL_YELLOW;  
} else {
 $state='green';
 $state_title=LANG_GENERAL_GREEN;   
}

$new_details=implode(". ",$details);
if ($this->getProperty("remDetails")!=$new_details) {
 $this->setProperty('remDetails',$new_details);
}

if ($this->getProperty('remColor')!=$state) {
 $this->setProperty('remColor',$state);
 $this->setProperty('remTitle',$state_title);
 if ($state!='green') {
  say(LANG_GENERAL_COMMUNICATION_STATE." ".LANG_GENERAL_CHANGED_TO." ".$state_title.".");
  say(implode(". ",$details));
 } else {
  say(LANG_GENERAL_COMMUNICATION_STATE." ".LANG_GENERAL_RESTORED_TO." ".$state_title);
 }
 $this->callMethod('remchanged');
 }
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

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

Сообщение nick7zmail » Вт сен 10, 2019 1:20 pm

Мне кажется ваша проблема в другом. Вы просто НЕ запускаете метод. По этому при ручном запуске у вас всё сработало. А автоматически надо настроить периодический запуск метода. Тут несколько вариантов.
1) поместить запуск метода (команду, которую выше приводил) в метод onNewHour/onNewMinute в класс Timers или в объект ClockChime этого класса. Эти методы запускаются автоматически системой раз в час/раз в минуту. Если раз в минуту запускать вам будет достаточно - можно и на этом остановиться.
2) сделать "самоперезапускающийся" таймер, который будет запускаться раз в указанное время (где то была тема, лень искать, да и вариант не лучший)
3) воспользоваться модулем Cron, и поставить метод на запуск опять же раз в указанный промежуток.
4) Поместить ваш объект вместе с методами в класс SystemStates. У данного класса метод StatusCheck или как там он - запускается раз в 5 секунд. Весь код переместить туда. Думаю этого более чем достаточно будет.
За это сообщение автора nick7zmail поблагодарил:
ansid (Вт сен 10, 2019 1:30 pm)
Рейтинг: 1.16%
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

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

Сообщение nick7zmail » Вт сен 10, 2019 1:38 pm

Divan писал(а):
Вт сен 10, 2019 11:43 am
Методы можно добавлять только в основном объекте, а в под объекте, методы можно только настраивать. Смотрите скриншот ниже.
То что наверху называется "класс", а внизу как раз - "объект". И настроить можно на уровне класса. У человека как раз как будто через класс код написан, с конструкциями $this->.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
ansid
Сообщения: 22
Зарегистрирован: Пн сен 09, 2019 2:52 pm
Благодарил (а): 4 раза
Поблагодарили: 0

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

Сообщение ansid » Вт сен 10, 2019 1:39 pm

Еще вопрос: в классе systemStates у всех объектов только checkState, а у моего еще и remchanged выполняется, как это исправить?
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

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

Сообщение nick7zmail » Вт сен 10, 2019 2:27 pm

Для начала - скажите где у вас код? В классе, или в методе объекта? Если в методе объекта, и если такой, как вы выше привели - строка $this->callMethod('remchanged'); по идее вызовет метод remchanged при указанных условиях.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
ansid
Сообщения: 22
Зарегистрирован: Пн сен 09, 2019 2:52 pm
Благодарил (а): 4 раза
Поблагодарили: 0

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

Сообщение ansid » Вт сен 10, 2019 2:55 pm

nick7zmail писал(а):
Вт сен 10, 2019 2:27 pm
Для начала - скажите где у вас код? В классе, или в методе объекта? Если в методе объекта, и если такой, как вы выше привели - строка $this->callMethod('remchanged'); по идее вызовет метод remchanged при указанных условиях.
уже разобрался - в настройках метода remchanged было выбрано выполнять код, переключил на сценарий и стало все норм. уже все работает, сделал через systemState и его методы. И создал отдельную панельку с сообщениями про узлы так же как про статусы системы.
Еще вопрос: А как заставить функцию say проговаривать написанное? Ато она только в лог сообщение выводит
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

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

Сообщение nick7zmail » Вт сен 10, 2019 4:07 pm

Приоритет поменять
say('бла бла бла', 3);
Либо MinMsgLevel в ThisComputer поменять. Там минимальный уровень важности при котором сообщения начинают произносится. По-умолчанию вроде 2.
За это сообщение автора nick7zmail поблагодарил:
ansid (Вт сен 10, 2019 9:35 pm)
Рейтинг: 1.16%
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
ansid
Сообщения: 22
Зарегистрирован: Пн сен 09, 2019 2:52 pm
Благодарил (а): 4 раза
Поблагодарили: 0

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

Сообщение ansid » Вт сен 10, 2019 9:34 pm

А есть какая нибудь инструкция по первичной настройке и принципу работы системы, основным функциям? Чтобы не задавать кучу вопросов для решения задачи, а их еще будет очень много.
Jilber
Сообщения: 682
Зарегистрирован: Ср май 03, 2017 7:41 pm
Благодарил (а): 111 раз
Поблагодарили: 107 раз

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

Сообщение Jilber » Вт сен 10, 2019 9:44 pm

Кое что есть здесь: https://kb.mjdm.ru/
Аватара пользователя
ansid
Сообщения: 22
Зарегистрирован: Пн сен 09, 2019 2:52 pm
Благодарил (а): 4 раза
Поблагодарили: 0

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

Сообщение ansid » Ср сен 11, 2019 10:17 am

Есть кнопка на левой панели, говорящая время. Если ее нажать в Majordroid, время говорит 3 раза. Как это вылечить?
Ответить