[Модуль] MQTT (mqtt)

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

Модератор: immortal

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

Re: Предложения по доработке модуля MQTT

Сообщение Gelezako »

dioxin писал(а):Ну так я же давал решение.
Просто в методе который вызывается при обновлении данных дополнительно вставить проверку последнего обновления данных с датчика и дополнительно вызывать этот метод раз в пару минут.
Поняли суть?
Ну или ковырять модуль mqtt. Там нужно найти фунцию отправки данных в базу и сделать дополнительный вывод в объект UPDATED.
метод не вызовется, потому что данные перестанут приходить, понимаете? ))
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
Аватара пользователя
dioxin
Сообщения: 175
Зарегистрирован: Вт фев 14, 2017 4:43 pm
Откуда: Иваново

Re: Предложения по доработке модуля MQTT

Сообщение dioxin »

Вот нашел в /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
Откуда: Иваново

Re: Предложения по доработке модуля MQTT

Сообщение dioxin »

Gelezako писал(а):
dioxin писал(а):Ну так я же давал решение.
Просто в методе который вызывается при обновлении данных дополнительно вставить проверку последнего обновления данных с датчика и дополнительно вызывать этот метод раз в пару минут.
Поняли суть?
Ну или ковырять модуль mqtt. Там нужно найти фунцию отправки данных в базу и сделать дополнительный вывод в объект UPDATED.
метод не вызовется, потому что данные перестанут приходить, понимаете? ))
Да я же говорю, дополнительно принудительно вызывать его раз в пару минут, понимаете?
Алиска прописана на Debian 11 | Мой канал на youtube по MajorDomo
Аватара пользователя
dioxin
Сообщения: 175
Зарегистрирован: Вт фев 14, 2017 4:43 pm
Откуда: Иваново

Re: Предложения по доработке модуля MQTT

Сообщение dioxin »

Разъясняю.
Делаем метод который запускается при обновлении(приходе) данных как я описывал выше. В методе записываем время получения данных в свойство, например *.last_update_mqtt
Делаем сценарий который будет сравнивать свойство *.last_update_mqtt с текущим временем и если оно сильно отличается(например на 3 минуты) значит новые данные не приходили в течении 3х минут. Запускам этот сценарий раз в пару* минут,ну или с каким интервалом у вас приходят данные с mqtt+1 минута.

* периодичность запуска сценария подберете сами

И еще.. Используйте модуль cron для временных задач.
Алиска прописана на Debian 11 | Мой канал на youtube по MajorDomo
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Контактная информация:

Re: Предложения по доработке модуля MQTT

Сообщение Gelezako »

dioxin писал(а):Разъясняю.
Делаем метод который запускается при обновлении(приходе) данных как я описывал выше. В методе записываем время получения данных в свойство, например *.last_update_mqtt
Делаем сценарий который будет сравнивать свойство *.last_update_mqtt с текущим временем и если оно сильно отличается(например на 3 минуты) значит новые данные не приходили в течении 3х минут. Запускам этот сценарий раз в пару* минут,ну или с каким интервалом у вас приходят данные с mqtt+1 минута.

* периодичность запуска сценария подберете сами
ага, теперь понял, признаю, я тупил жестоко :)
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
directman66
Сообщения: 2800
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Контактная информация:

Re: Предложения по доработке модуля MQTT

Сообщение directman66 »

вдруг стал падать цикл 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
ничего особо не менял. По какой причине может такое быть?

Зачем нужны эти кнопки, если при нажатии на них ничего не просходит?
SPOILERSPOILER_SHOW
Безымянныйsdsdsd.jpg
Безымянныйsdsdsd.jpg (37.22 КБ) 8292 просмотра
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
directman66
Сообщения: 2800
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Контактная информация:

Re: Предложения по доработке модуля MQTT

Сообщение directman66 »

Нашел причину падения циклов mqtt. Допустим один из топиков связан с объектом, у которого при изменении свойств могут производиться разные действия (создание других объектов, изменение их свойств и т.д.). Дак вот если у последнего связанного объекта вызывается метод OnChange, в котором прописан вызов сценария или метода следующего объекта (допустим callMethod('Motion04.motionDetected'); или Runscript('dfdf' ) с тем же кодом) происходит падение цикла mqtt. Если убрать последнюю связку и прописать код метода или сценария в методе Onchange второго в цепочке объекта, падения прекращаются. Т.е. делаю вывод о том, что цикл падает при вызове метода или сценария. Если этот метод или сценарий вызвать отдельно, то он выполняется без каких-либо ошибок.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Контактная информация:

Re: Предложения по доработке модуля MQTT

Сообщение sergejey »

Пометил себе в копилку ошибок.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Контактная информация:

Re: Предложения по доработке модуля MQTT

Сообщение Gelezako »

Подскажите как програмно на пхп рестартонуть брокер? У меня после длительного использования или переподключения новых или старых девайсов перестаёт принимать\слать данные. Лечится рестартом. Хочу сделать авторестартер брокера если данные перестали приходить какое-то время.
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
Аватара пользователя
dioxin
Сообщения: 175
Зарегистрирован: Вт фев 14, 2017 4:43 pm
Откуда: Иваново

Re: Предложения по доработке модуля MQTT

Сообщение dioxin »

Попробуй вот так:

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

$ch = curl_init('http://ip_server/panel/xray.html?view_mode=services&service=cycle_mqtt&cmd=restart');
curl_exec($ch);
curl_close($ch);
Или через shell_exec.
Алиска прописана на Debian 11 | Мой канал на youtube по MajorDomo
Ответить