Эх не получилось, пока неработае ...DimSun75 писал(а):Извиняюсь за мою тупость, но в чем вопрос? Нет esp - нет данных, цифры застываю. Включаете esp - данные появляются. Если так, то вроде все правильно работаетwoow писал(а):http:// ваш IP/admin.php?pd=pz_&md=panel&inst=&action=mqttDimSun75 писал(а):Что за панель?
и соответственно Терминал / консоль или как там ещё лицевая оболочка или интерфейс пользователяА прошивка к чему? Если ESP отключена и её не стало.DimSun75 писал(а): Какая прошивка в ESP?
update:
А вот если нужно чтобы МЖД понимал достоверные данные или нет, то есть несколько путей решения вопроса:
1. Добавить esp в модуль "Устройства Online", и по наличию или отсутствию устройства определять достоверны ли данные
2. В классе, куда записываются полученные данные, добавить свойство alive, updated, updatedTime и метод примерно такого содержания:
выбрав его в качестве метода при изменении у какого нибудь полученного свойства, например у давления. При этом esp должно выдавать давление с определенной периодичностью. Время $alive_timeout должно быть больше, чем период выдачи значения с esp. Теперь по значению свойства alive МЖД может определить достоверны ли данные или нет.Код: Выделить всё
$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);
Обновление данных в панеле управления
Модератор: immortal
- woow
- Сообщения: 821
- Зарегистрирован: Пн июл 04, 2016 8:46 am
- Откуда: Mazeikiai
- Благодарил (а): 125 раз
- Поблагодарили: 46 раз
Re: Обновление данных в панеле управления
Raspberry Pi 3B+
- Bagir
- Сообщения: 1613
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 374 раза
Re: Обновление данных в панеле управления
Предлагаю потренироваться на специально созданном тестовом объекте, свойства которого не привязаны ни к чему. Выводите свойства alive и status, к примеру, на сцены, чтобы наглядно видеть их. Или просто следите за ними в X-Ray. Ставьте короткий период mySensorName.aliveTimeOut, к примеру, 10 (10 секунд). Затем, через строку браузера, вызывайте метод statusChanged и передавайте в свойство status что нибудь (без разницы, главное факт обновления данных). Ссылку можно скопировать в настройках метода вашего объекта:
После передачи данных, свойство alive должно сразу быть равным 1. При этом запустится таймер на 10 секунд, который должен будет обнулить свойство alive, если за это время не поступят новые данные, которые перезапустят таймер. Вот так работает процедура контроля свойства alive.
После этих экспериментов, можно переносить полученный опыт на объект, привязанный к железу. Чуток разобраться и всё получится!
После этих экспериментов, можно переносить полученный опыт на объект, привязанный к железу. Чуток разобраться и всё получится!
- Bagir
- Сообщения: 1613
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 374 раза
Re: Обновление данных в панеле управления
Так же надо обратить внимание, что у метода объекта есть код из родительского класса, который обычно запускается первым, а уже потом запускается код из настройки метода самого объекта. Так вот, код, отвечающий за обновление свойства alive находится в настройках класса. Он одинаковый для всех методов объектов, поэтому и "вынесен за скобки так сказать".
- woow
- Сообщения: 821
- Зарегистрирован: Пн июл 04, 2016 8:46 am
- Откуда: Mazeikiai
- Благодарил (а): 125 раз
- Поблагодарили: 46 раз
Re: Обновление данных в панеле управления
Ок. Спасибо, но только уже поздно вечером попробую, всё это реализовать. Меня всё покоя не даёт мысль, что не ужели за столько времени сколько существует МД не кому не возник этот вопрос, что прибор отключён, но мониторинг как бы ведётся и система этого не чувствует, а может выть там авария, тут многие толкует о датчиках загазованности, затопления, движения и т.д. Так всё это бесполезно, сядет батарейка, перегорит (сработает) защита питания, а "умный" ( в этом случае далеко не умный) дом докладывает что всё в норме- маразм. Надо не то что показания перестали идти, но даже некоторым позициям можно было выставлять режим алярма в виде SMS, вибрации...
Raspberry Pi 3B+
-
- Сообщения: 318
- Зарегистрирован: Вс янв 01, 2017 8:32 pm
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 44 раза
Re: Обновление данных в панеле управления
Так я же описал все методы контроля на работоспособность датчиков. А уж дальше, что делать с результатом, все зависит от конкретной системы и каждый решает сам.
Отправлено с моего SM-G850F через Tapatalk
Отправлено с моего SM-G850F через Tapatalk
- woow
- Сообщения: 821
- Зарегистрирован: Пн июл 04, 2016 8:46 am
- Откуда: Mazeikiai
- Благодарил (а): 125 раз
- Поблагодарили: 46 раз
Re: Обновление данных в панеле управления
я с вами согласен, что надо подождать, может, быть авторы этого проекта оценят эти замечания и добавят эту функцию.DimSun75 писал(а):Так я же описал все методы контроля на работоспособность датчиков. А уж дальше, что делать с результатом, все зависит от конкретной системы и каждый решает сам.
Raspberry Pi 3B+
- woow
- Сообщения: 821
- Зарегистрирован: Пн июл 04, 2016 8:46 am
- Откуда: Mazeikiai
- Благодарил (а): 125 раз
- Поблагодарили: 46 раз
Re: Обновление данных в панеле управления
Я пока далёк от понимания того, что вы тут описали. Пока у меня тестовый вариант МД. Сервер на RPi3 и ESP8266 данные с датчиков посылает, по MQTT протоколу, на сервер. Как бы там не было, но для меня это не понятно, испробовал всякие варианты, но результат тот же, данные обновляются только при поступлении по протоколу MQTT поступающие, но стоит отключить питание передатчику и тогда новые данные уже сервер не получает, но последние значение остаются, даже после reboot всей системы.DimSun75 писал(а): А вот если нужно чтобы МЖД понимал достоверные данные или нет, то есть несколько путей решения вопроса:
1. Добавить esp в модуль "Устройства Online", и по наличию или отсутствию устройства определять достоверны ли данные
2. В классе, куда записываются полученные данные, добавить свойство alive, updated, updatedTime и метод примерно такого содержания:
выбрав его в качестве метода при изменении у какого нибудь полученного свойства, например у давления. При этом esp должно выдавать давление с определенной периодичностью. Время $alive_timeout должно быть больше, чем период выдачи значения с esp. Теперь по значению свойства alive МЖД может определить достоверны ли данные или нет.Код: Выделить всё
$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);
Тем более я не могу понять как такой вопрос не актуален всем кто использует эту систему МД. Может быть автор (авторы) обратят на это внимание что такая функция актуальна, чтобы извещала о потери связи или о прекращении поступлении данных с устройств, датчиков и т.п.
Raspberry Pi 3B+