метод не вызовется, потому что данные перестанут приходить, понимаете? ))dioxin писал(а):Ну так я же давал решение.
Просто в методе который вызывается при обновлении данных дополнительно вставить проверку последнего обновления данных с датчика и дополнительно вызывать этот метод раз в пару минут.
Поняли суть?
Ну или ковырять модуль mqtt. Там нужно найти фунцию отправки данных в базу и сделать дополнительный вывод в объект UPDATED.
[Модуль] MQTT (mqtt)
Модератор: immortal
- Gelezako
- Сообщения: 963
- Зарегистрирован: Чт июн 02, 2016 9:33 pm
- Благодарил (а): 205 раз
- Поблагодарили: 106 раз
- Контактная информация:
Re: Предложения по доработке модуля MQTT
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
- dioxin
- Сообщения: 175
- Зарегистрирован: Вт фев 14, 2017 4:43 pm
- Откуда: Иваново
- Благодарил (а): 15 раз
- Поблагодарили: 46 раз
Re: Предложения по доработке модуля MQTT
Вот нашел в /modules/mqtt.class.php
Тут и надо шаманить.
Код: Выделить всё
$rec['VALUE']=$value.'';
$rec['UPDATED']=date('Y-m-d H:i:s');
SQLUpdate('mqtt', $rec);
Алиска прописана на Debian 11 | Мой канал на youtube по MajorDomo
- dioxin
- Сообщения: 175
- Зарегистрирован: Вт фев 14, 2017 4:43 pm
- Откуда: Иваново
- Благодарил (а): 15 раз
- Поблагодарили: 46 раз
Re: Предложения по доработке модуля MQTT
Да я же говорю, дополнительно принудительно вызывать его раз в пару минут, понимаете?Gelezako писал(а):метод не вызовется, потому что данные перестанут приходить, понимаете? ))dioxin писал(а):Ну так я же давал решение.
Просто в методе который вызывается при обновлении данных дополнительно вставить проверку последнего обновления данных с датчика и дополнительно вызывать этот метод раз в пару минут.
Поняли суть?
Ну или ковырять модуль mqtt. Там нужно найти фунцию отправки данных в базу и сделать дополнительный вывод в объект UPDATED.
Алиска прописана на Debian 11 | Мой канал на youtube по MajorDomo
- dioxin
- Сообщения: 175
- Зарегистрирован: Вт фев 14, 2017 4:43 pm
- Откуда: Иваново
- Благодарил (а): 15 раз
- Поблагодарили: 46 раз
Re: Предложения по доработке модуля MQTT
Разъясняю.
Делаем метод который запускается при обновлении(приходе) данных как я описывал выше. В методе записываем время получения данных в свойство, например *.last_update_mqtt
Делаем сценарий который будет сравнивать свойство *.last_update_mqtt с текущим временем и если оно сильно отличается(например на 3 минуты) значит новые данные не приходили в течении 3х минут. Запускам этот сценарий раз в пару* минут,ну или с каким интервалом у вас приходят данные с mqtt+1 минута.
* периодичность запуска сценария подберете сами
И еще.. Используйте модуль cron для временных задач.
Делаем метод который запускается при обновлении(приходе) данных как я описывал выше. В методе записываем время получения данных в свойство, например *.last_update_mqtt
Делаем сценарий который будет сравнивать свойство *.last_update_mqtt с текущим временем и если оно сильно отличается(например на 3 минуты) значит новые данные не приходили в течении 3х минут. Запускам этот сценарий раз в пару* минут,ну или с каким интервалом у вас приходят данные с mqtt+1 минута.
* периодичность запуска сценария подберете сами
И еще.. Используйте модуль cron для временных задач.
- Рейтинг: 1.16%
Алиска прописана на Debian 11 | Мой канал на youtube по MajorDomo
- Gelezako
- Сообщения: 963
- Зарегистрирован: Чт июн 02, 2016 9:33 pm
- Благодарил (а): 205 раз
- Поблагодарили: 106 раз
- Контактная информация:
Re: Предложения по доработке модуля MQTT
ага, теперь понял, признаю, я тупил жестокоdioxin писал(а):Разъясняю.
Делаем метод который запускается при обновлении(приходе) данных как я описывал выше. В методе записываем время получения данных в свойство, например *.last_update_mqtt
Делаем сценарий который будет сравнивать свойство *.last_update_mqtt с текущим временем и если оно сильно отличается(например на 3 минуты) значит новые данные не приходили в течении 3х минут. Запускам этот сценарий раз в пару* минут,ну или с каким интервалом у вас приходят данные с mqtt+1 минута.
* периодичность запуска сценария подберете сами
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
-
- Сообщения: 2801
- Зарегистрирован: Пн дек 26, 2016 9:51 am
- Откуда: Екатеринбург
- Благодарил (а): 380 раз
- Поблагодарили: 693 раза
- Контактная информация:
Re: Предложения по доработке модуля MQTT
вдруг стал падать цикл mqtt плагина
ничего особо не менял. По какой причине может такое быть?
Зачем нужны эти кнопки, если при нажатии на них ничего не просходит?
Код: Выделить всё
16:25:34 0.07786200 Error registered (type: cycle_stop): ./scripts/cycle_mqtt.php
16:25:34 0.07755000 AUTO-RECOVERY: ./scripts/cycle_mqtt.php
16:25:33 0.01863300 Closing thread: exec php -q ./scripts/cycle_mqtt.php --params "a:0:{}">>/var/www/debmes/log_2017-06-05-cycle_mqtt.php.txt
Зачем нужны эти кнопки, если при нажатии на них ничего не просходит?
СпойлерПоказать
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
-
- Сообщения: 2801
- Зарегистрирован: Пн дек 26, 2016 9:51 am
- Откуда: Екатеринбург
- Благодарил (а): 380 раз
- Поблагодарили: 693 раза
- Контактная информация:
Re: Предложения по доработке модуля MQTT
Нашел причину падения циклов mqtt. Допустим один из топиков связан с объектом, у которого при изменении свойств могут производиться разные действия (создание других объектов, изменение их свойств и т.д.). Дак вот если у последнего связанного объекта вызывается метод OnChange, в котором прописан вызов сценария или метода следующего объекта (допустим callMethod('Motion04.motionDetected'); или Runscript('dfdf' ) с тем же кодом) происходит падение цикла mqtt. Если убрать последнюю связку и прописать код метода или сценария в методе Onchange второго в цепочке объекта, падения прекращаются. Т.е. делаю вывод о том, что цикл падает при вызове метода или сценария. Если этот метод или сценарий вызвать отдельно, то он выполняется без каких-либо ошибок.
- За это сообщение автора directman66 поблагодарил:
- dioxin (Чт июн 08, 2017 7:29 am)
- Рейтинг: 1.16%
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Предложения по доработке модуля MQTT
Пометил себе в копилку ошибок.
- За это сообщение автора sergejey поблагодарил:
- directman66 (Чт июн 08, 2017 12:45 pm)
- Рейтинг: 1.16%
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
- Gelezako
- Сообщения: 963
- Зарегистрирован: Чт июн 02, 2016 9:33 pm
- Благодарил (а): 205 раз
- Поблагодарили: 106 раз
- Контактная информация:
Re: Предложения по доработке модуля MQTT
Подскажите как програмно на пхп рестартонуть брокер? У меня после длительного использования или переподключения новых или старых девайсов перестаёт принимать\слать данные. Лечится рестартом. Хочу сделать авторестартер брокера если данные перестали приходить какое-то время.
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
- dioxin
- Сообщения: 175
- Зарегистрирован: Вт фев 14, 2017 4:43 pm
- Откуда: Иваново
- Благодарил (а): 15 раз
- Поблагодарили: 46 раз
Re: Предложения по доработке модуля MQTT
Попробуй вот так:
Или через shell_exec.
Код: Выделить всё
$ch = curl_init('http://ip_server/panel/xray.html?view_mode=services&service=cycle_mqtt&cmd=restart');
curl_exec($ch);
curl_close($ch);
Алиска прописана на Debian 11 | Мой канал на youtube по MajorDomo