Обновление данных в панеле управления

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

Модератор: immortal

Аватара пользователя
woow
Сообщения: 821
Зарегистрирован: Пн июл 04, 2016 8:46 am
Откуда: Mazeikiai
Благодарил (а): 125 раз
Поблагодарили: 46 раз

Re: Обновление данных в панеле управления

Сообщение woow » Ср фев 15, 2017 1:27 am

DimSun75 писал(а):
woow писал(а):
DimSun75 писал(а):Что за панель?
http:// ваш IP/admin.php?pd=pz_&md=panel&inst=&action=mqtt

и соответственно Терминал / консоль или как там ещё лицевая оболочка или интерфейс пользователя
DimSun75 писал(а): Какая прошивка в ESP?
А прошивка к чему? Если ESP отключена и её не стало.
Извиняюсь за мою тупость, но в чем вопрос? Нет esp - нет данных, цифры застываю. Включаете esp - данные появляются. Если так, то вроде все правильно работает

update:

А вот если нужно чтобы МЖД понимал достоверные данные или нет, то есть несколько путей решения вопроса:

1. Добавить esp в модуль "Устройства Online", и по наличию или отсутствию устройства определять достоверны ли данные
2. В классе, куда записываются полученные данные, добавить свойство alive, updated, updatedTime и метод примерно такого содержания:

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

 $this->setProperty("updated",time());
 $this->setProperty("updatedTime",date("H:i",time()));
 $this->setProperty("alive",1); 
 
$ot=$this->object_title;
$alive_timeout=(int)$this->getProperty("aliveTimeOut");
if (!$alive_timeout) {
 $alive_timeout=30*60;
}
clearTimeOut($ot."_alive");
setTimeOut($ot."_alive","sg('".$ot.".alive',0);",$alive_timeout); 
выбрав его в качестве метода при изменении у какого нибудь полученного свойства, например у давления. При этом esp должно выдавать давление с определенной периодичностью. Время $alive_timeout должно быть больше, чем период выдачи значения с esp. Теперь по значению свойства alive МЖД может определить достоверны ли данные или нет.
Эх не получилось, пока неработае ...
Raspberry Pi 3B+
Аватара пользователя
Bagir
Сообщения: 1613
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 374 раза

Re: Обновление данных в панеле управления

Сообщение Bagir » Ср фев 15, 2017 8:34 am

Предлагаю потренироваться на специально созданном тестовом объекте, свойства которого не привязаны ни к чему. Выводите свойства alive и status, к примеру, на сцены, чтобы наглядно видеть их. Или просто следите за ними в X-Ray. Ставьте короткий период mySensorName.aliveTimeOut, к примеру, 10 (10 секунд). Затем, через строку браузера, вызывайте метод statusChanged и передавайте в свойство status что нибудь (без разницы, главное факт обновления данных). Ссылку можно скопировать в настройках метода вашего объекта: После передачи данных, свойство alive должно сразу быть равным 1. При этом запустится таймер на 10 секунд, который должен будет обнулить свойство alive, если за это время не поступят новые данные, которые перезапустят таймер. Вот так работает процедура контроля свойства alive.
После этих экспериментов, можно переносить полученный опыт на объект, привязанный к железу. Чуток разобраться и всё получится!
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Аватара пользователя
Bagir
Сообщения: 1613
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 374 раза

Re: Обновление данных в панеле управления

Сообщение Bagir » Ср фев 15, 2017 8:39 am

Так же надо обратить внимание, что у метода объекта есть код из родительского класса, который обычно запускается первым, а уже потом запускается код из настройки метода самого объекта. Так вот, код, отвечающий за обновление свойства alive находится в настройках класса. Он одинаковый для всех методов объектов, поэтому и "вынесен за скобки так сказать".
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Аватара пользователя
woow
Сообщения: 821
Зарегистрирован: Пн июл 04, 2016 8:46 am
Откуда: Mazeikiai
Благодарил (а): 125 раз
Поблагодарили: 46 раз

Re: Обновление данных в панеле управления

Сообщение woow » Ср фев 15, 2017 10:14 am

Ок. Спасибо, но только уже поздно вечером попробую, всё это реализовать. Меня всё покоя не даёт мысль, что не ужели за столько времени сколько существует МД не кому не возник этот вопрос, что прибор отключён, но мониторинг как бы ведётся и система этого не чувствует, а может выть там авария, тут многие толкует о датчиках загазованности, затопления, движения и т.д. Так всё это бесполезно, сядет батарейка, перегорит (сработает) защита питания, а "умный" ( в этом случае далеко не умный) дом докладывает что всё в норме- маразм. Надо не то что показания перестали идти, но даже некоторым позициям можно было выставлять режим алярма в виде SMS, вибрации...
Raspberry Pi 3B+
DimSun75
Сообщения: 318
Зарегистрирован: Вс янв 01, 2017 8:32 pm
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 44 раза

Re: Обновление данных в панеле управления

Сообщение DimSun75 » Ср фев 15, 2017 10:26 am

Так я же описал все методы контроля на работоспособность датчиков. А уж дальше, что делать с результатом, все зависит от конкретной системы и каждый решает сам.

Отправлено с моего SM-G850F через Tapatalk
Аватара пользователя
woow
Сообщения: 821
Зарегистрирован: Пн июл 04, 2016 8:46 am
Откуда: Mazeikiai
Благодарил (а): 125 раз
Поблагодарили: 46 раз

Re: Обновление данных в панеле управления

Сообщение woow » Пт фев 17, 2017 2:48 am

DimSun75 писал(а):Так я же описал все методы контроля на работоспособность датчиков. А уж дальше, что делать с результатом, все зависит от конкретной системы и каждый решает сам.
я с вами согласен, что надо подождать, может, быть авторы этого проекта оценят эти замечания и добавят эту функцию.
Raspberry Pi 3B+
Аватара пользователя
woow
Сообщения: 821
Зарегистрирован: Пн июл 04, 2016 8:46 am
Откуда: Mazeikiai
Благодарил (а): 125 раз
Поблагодарили: 46 раз

Re: Обновление данных в панеле управления

Сообщение woow » Вт фев 21, 2017 11:50 am

DimSun75 писал(а): А вот если нужно чтобы МЖД понимал достоверные данные или нет, то есть несколько путей решения вопроса:

1. Добавить esp в модуль "Устройства Online", и по наличию или отсутствию устройства определять достоверны ли данные
2. В классе, куда записываются полученные данные, добавить свойство alive, updated, updatedTime и метод примерно такого содержания:

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

 $this->setProperty("updated",time());
 $this->setProperty("updatedTime",date("H:i",time()));
 $this->setProperty("alive",1); 
 
$ot=$this->object_title;
$alive_timeout=(int)$this->getProperty("aliveTimeOut");
if (!$alive_timeout) {
 $alive_timeout=30*60;
}
clearTimeOut($ot."_alive");
setTimeOut($ot."_alive","sg('".$ot.".alive',0);",$alive_timeout); 
выбрав его в качестве метода при изменении у какого нибудь полученного свойства, например у давления. При этом esp должно выдавать давление с определенной периодичностью. Время $alive_timeout должно быть больше, чем период выдачи значения с esp. Теперь по значению свойства alive МЖД может определить достоверны ли данные или нет.
Я пока далёк от понимания того, что вы тут описали. Пока у меня тестовый вариант МД. Сервер на RPi3 и ESP8266 данные с датчиков посылает, по MQTT протоколу, на сервер. Как бы там не было, но для меня это не понятно, испробовал всякие варианты, но результат тот же, данные обновляются только при поступлении по протоколу MQTT поступающие, но стоит отключить питание передатчику и тогда новые данные уже сервер не получает, но последние значение остаются, даже после reboot всей системы.
Тем более я не могу понять как такой вопрос не актуален всем кто использует эту систему МД. Может быть автор (авторы) обратят на это внимание что такая функция актуальна, чтобы извещала о потери связи или о прекращении поступлении данных с устройств, датчиков и т.п.
Raspberry Pi 3B+
Ответить