[Модуль] Статусы системы (sys_states)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: [Модуль] Статусы системы

Сообщение Gelezako » Пт ноя 03, 2017 10:28 pm

nick7zmail писал(а): Это собственно работало и до модуля. С ним более гибко и удобно настраивается.
в том-то и прикол что у меня такого чудо поведения никогда не было :)
после вставки кода что вы дали всё заработало. Очень печально что образ для виндузятников какой-то обрезанный :(
Может кто-то знает как остальные возможные встроенные функции подтянуть?
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: [Модуль] Статусы системы

Сообщение nick7zmail » Пт ноя 03, 2017 10:41 pm

У меня с самого начала в винде это работало...
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: [Модуль] Статусы системы

Сообщение Gelezako » Пт ноя 03, 2017 10:48 pm

очень странно, может вы где-то в хелпе вычитали что в checkState нужно подключить sys_states.inc.php, я точно сам не удалял бы этот вызов, но вот всё время что пользуюсь МЖД у меня не было этих переключалок на жёлтый
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: [Модуль] Статусы системы

Сообщение nick7zmail » Пт ноя 03, 2017 10:52 pm

Нет...добавить sys_states.inc.php это надо чтоб модуль работал...а настраивал я по этой инструкции http://majordomo.smartliving.ru/Main/BasicsStates как и говорил...вот только не помню было ли там что-то изначально, или нет...может реально пустые методы были, и я с нуля настраивал....не помню...это было почти 5 лет назад))
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
kas5858
Сообщения: 364
Зарегистрирован: Вс янв 15, 2017 5:34 pm
Откуда: Москва
Благодарил (а): 100 раз
Поблагодарили: 53 раза

Re: [Модуль] Статусы системы

Сообщение kas5858 » Пт ноя 03, 2017 11:55 pm

У меня в методе checkState объекта "Communication" еще есть

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

if (getGlobal('Aleksandr.BattLevel')<15) {
 $yellow_state=1;
 $details[]="Низкий заряд телефона Александра";
 if (!getGlobal('Aleksandr.BattWarning')) {
  setGlobal('Aleksandr.BattWarning',1);  
  say("Низкий заряд телефона Александра, возможна потеря связи.",2);
 }
} elseif (getGlobal('Aleksandr.BattWarning')) {
 setGlobal('Aleksandr.BattWarning',0);
} 
а в методе checkState объекта "System"

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

$tm=getGlobal('Aleksandr.CoordinatesUpdatedTimestamp');
if (time()-$tm>(2*60*60)) {
  $yellow_state=1;
  $details[]="Неизвестно местоположение Александра";
}

$tmp=SQLSelectOne("SELECT ID FROM system_errors WHERE ACTIVE>0 LIMIT 1");
if ($tmp['ID']) {
  $yellow_state=1;
  $details[]="Сохранена системная ошибка";
} 
С ними как быть?
За это сообщение автора kas5858 поблагодарили (всего 2):
skysilver (Пт ноя 03, 2017 11:58 pm) • Logrus (Сб ноя 04, 2017 8:52 am)
Рейтинг: 2.33%
Raspberry Pi3 - Broadlink - MegaD - Много датчиков - Камеры - Часы.
Изображение Connect
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: [Модуль] Статусы системы

Сообщение Gelezako » Сб ноя 04, 2017 12:08 am

kas5858 писал(а):У меня в методе checkState объекта "Communication" еще есть
очень странно, получается что ваша проверка уровня батареи сработает только когда телефон потеряет связь с сетью. Т.е. либо полностью сядет, либо кто-то выключит вайфай. К этому времени проверка уже не актуальна. Или я что-то не понимаю?
kas5858 писал(а):а в методе checkState объекта "System"
тут вообще не понятно, вы присваиваете переменной $details какое-то значение, но где это используется?
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
kas5858
Сообщения: 364
Зарегистрирован: Вс янв 15, 2017 5:34 pm
Откуда: Москва
Благодарил (а): 100 раз
Поблагодарили: 53 раза

Re: [Модуль] Статусы системы

Сообщение kas5858 » Сб ноя 04, 2017 1:00 am

Gelezako писал(а):
kas5858 писал(а):У меня в методе checkState объекта "Communication" еще есть
очень странно, получается что ваша проверка уровня батареи сработает только когда телефон потеряет связь с сетью. Т.е. либо полностью сядет, либо кто-то выключит вайфай. К этому времени проверка уже не актуальна. Или я что-то не понимаю?
Нет не понял.

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

if (getGlobal('Aleksandr.BattLevel')<15) { // если меньше 15% заряд батареи желтый статус "Низкий заряд телефона Александра"
 $yellow_state=1;
 $details[]="Низкий заряд телефона Александра";
 if (!getGlobal('Aleksandr.BattWarning')) { // если телефон не на зарядке, то Алиса предупреждает что связь с Александром может быть потеряна 
  setGlobal('Aleksandr.BattWarning',1);  
  say("Низкий заряд телефона Александра, возможна потеря связи.",2);
 }
} elseif (getGlobal('Aleksandr.BattWarning')) { // а если на зарядке то не смысла тебя предупреждать, молодец.
 setGlobal('Aleksandr.BattWarning',0);
} 
Я понимаю что много лишнего, но сейчас суть не в этом.
Raspberry Pi3 - Broadlink - MegaD - Много датчиков - Камеры - Часы.
Изображение Connect
kas5858
Сообщения: 364
Зарегистрирован: Вс янв 15, 2017 5:34 pm
Откуда: Москва
Благодарил (а): 100 раз
Поблагодарили: 53 раза

Re: [Модуль] Статусы системы

Сообщение kas5858 » Сб ноя 04, 2017 1:25 am

Gelezako писал(а):
kas5858 писал(а):а в методе checkState объекта "System"
тут вообще не понятно, вы присваиваете переменной $details какое-то значение, но где это используется?
Я так понимаю что это значение передается в свойства "System.stateDetails".
В меню управления выводится

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

Безопасность: <span style="color:%Security.stateColor%">%Security.stateTitle%</span> %Security.stateDetails%<br>
Система:  <span style="color:%System.stateColor%">%System.stateTitle%</span> %System.stateDetails%<br>
Связь:  <span style="color:%Communication.stateColor%">%Communication.stateTitle%</span> %Communication.stateDetails%<br> 
Вложения
1222.PNG
1222.PNG (4.66 КБ) 4287 просмотров
Raspberry Pi3 - Broadlink - MegaD - Много датчиков - Камеры - Часы.
Изображение Connect
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: [Модуль] Статусы системы

Сообщение nick7zmail » Сб ноя 04, 2017 11:37 am

kas5858 писал(а): С ними как быть?
Лично у меня подобное в методе, привязанном к свойству батареи в объекте пользователя...
И под это - отдельный информер
1.jpg
1.jpg (11.93 КБ) 4257 просмотров
Ибо во-первых если у меня сядет телефон, или у не будет известно местоположение - это никак не отразится на работоспособности системы, по-этому в system не вижу смысла дергать, во-вторых systemstates проверяет всё каждые 5 секунд...а я сомневаюсь, что у вас раз в 5 секунд заряд меняется)) или местоположение...
Так что логичнее это дергать при обновлении свойств батареи как раз, когда координаты приходят и заряд.

Но если вам хочется таки, чтобы это было в классе systemstates - можете создать отдельный объект - PhoneState и то и другое засунуть туда.

А зачем при этом ещё и систмную ошибку регать? Просто интересно...
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: [Модуль] Статусы системы

Сообщение Gelezako » Сб ноя 04, 2017 2:47 pm

nick7zmail, у меня есть вопрос, хотелось бы услышать ваши соображения. В МЖД много разных датчиков шлют данные через MQTT, по сути это ардуинки с ethernet шилдом. Т.к. в прошивке нет ICMP т.е. датчики не смогут отвечать на пинги я реализовал проверку работоспособности датчиков постоянно сравнивая время последнего обновления данных и если они дольше чем обычно, то с датчиком что-то случилось. Вопрос: есть ли смысл для будущих реализаций подвязываться на вот эти состояния (жёлтый, красный). Я так понимаю уже реализована стандартная логика для проверки работоспособности разных систем "умного дома", а я городил свою. Сейчас в качестве проверки работоспособности я вижу что используются пинги. Предоставляет ли система другие способы проверки работоспособности?
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
Ответить