Страница 3 из 12
Re: [Модуль] Статусы системы
Добавлено: Пт ноя 03, 2017 10:28 pm
Gelezako
nick7zmail писал(а):
Это собственно работало и до модуля. С ним более гибко и удобно настраивается.
в том-то и прикол что у меня такого чудо поведения никогда не было

после вставки кода что вы дали всё заработало. Очень печально что образ для виндузятников какой-то обрезанный

Может кто-то знает как остальные возможные встроенные функции подтянуть?
Re: [Модуль] Статусы системы
Добавлено: Пт ноя 03, 2017 10:41 pm
nick7zmail
У меня с самого начала в винде это работало...
Re: [Модуль] Статусы системы
Добавлено: Пт ноя 03, 2017 10:48 pm
Gelezako
очень странно, может вы где-то в хелпе вычитали что в checkState нужно подключить sys_states.inc.php, я точно сам не удалял бы этот вызов, но вот всё время что пользуюсь МЖД у меня не было этих переключалок на жёлтый
Re: [Модуль] Статусы системы
Добавлено: Пт ноя 03, 2017 10:52 pm
nick7zmail
Нет...добавить sys_states.inc.php это надо чтоб модуль работал...а настраивал я по этой инструкции
http://majordomo.smartliving.ru/Main/BasicsStates как и говорил...вот только не помню было ли там что-то изначально, или нет...может реально пустые методы были, и я с нуля настраивал....не помню...это было почти 5 лет назад))
Re: [Модуль] Статусы системы
Добавлено: Пт ноя 03, 2017 11:55 pm
kas5858
У меня в методе 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[]="Сохранена системная ошибка";
}
С ними как быть?
Re: [Модуль] Статусы системы
Добавлено: Сб ноя 04, 2017 12:08 am
Gelezako
kas5858 писал(а):У меня в методе checkState объекта "Communication" еще есть
очень странно, получается что ваша проверка уровня батареи сработает только когда телефон потеряет связь с сетью. Т.е. либо полностью сядет, либо кто-то выключит вайфай. К этому времени проверка уже не актуальна. Или я что-то не понимаю?
kas5858 писал(а):а в методе checkState объекта "System"
тут вообще не понятно, вы присваиваете переменной $details какое-то значение, но где это используется?
Re: [Модуль] Статусы системы
Добавлено: Сб ноя 04, 2017 1:00 am
kas5858
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);
}
Я понимаю что много лишнего, но сейчас суть не в этом.
Re: [Модуль] Статусы системы
Добавлено: Сб ноя 04, 2017 1:25 am
kas5858
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>
Re: [Модуль] Статусы системы
Добавлено: Сб ноя 04, 2017 11:37 am
nick7zmail
kas5858 писал(а):
С ними как быть?
Лично у меня подобное в методе, привязанном к свойству батареи в объекте пользователя...
И под это - отдельный информер

- 1.jpg (11.93 КБ) 5558 просмотров
Ибо во-первых если у меня сядет телефон, или у не будет известно местоположение - это никак не отразится на работоспособности системы, по-этому в system не вижу смысла дергать, во-вторых systemstates проверяет всё каждые 5 секунд...а я сомневаюсь, что у вас раз в 5 секунд заряд меняется)) или местоположение...
Так что логичнее это дергать при обновлении свойств батареи как раз, когда координаты приходят и заряд.
Но если вам хочется таки, чтобы это было в классе systemstates - можете создать отдельный объект - PhoneState и то и другое засунуть туда.
А зачем при этом ещё и систмную ошибку регать? Просто интересно...
Re: [Модуль] Статусы системы
Добавлено: Сб ноя 04, 2017 2:47 pm
Gelezako
nick7zmail, у меня есть вопрос, хотелось бы услышать ваши соображения. В МЖД много разных датчиков шлют данные через MQTT, по сути это ардуинки с ethernet шилдом. Т.к. в прошивке нет ICMP т.е. датчики не смогут отвечать на пинги я реализовал проверку работоспособности датчиков постоянно сравнивая время последнего обновления данных и если они дольше чем обычно, то с датчиком что-то случилось. Вопрос: есть ли смысл для будущих реализаций подвязываться на вот эти состояния (жёлтый, красный). Я так понимаю уже реализована стандартная логика для проверки работоспособности разных систем "умного дома", а я городил свою. Сейчас в качестве проверки работоспособности я вижу что используются пинги. Предоставляет ли система другие способы проверки работоспособности?