Страница 25 из 97
Re: Предложения по доработке модуля MQTT
Добавлено: Пт окт 26, 2018 6:34 am
nick7zmail
Да вроде не было такого. По крайней мере раньше. У меня вот по mqtt показания с датчиков приходят. Дак отлично этот алгоритм работает. Если устройство сдохло - сперва время, потом дата. Цикл брокера и сам брокер при этом продолжают работать.
Re: Предложения по доработке модуля MQTT
Добавлено: Сб окт 27, 2018 9:34 am
hc2hunter
Еще вопрос...
Через какое время
модуль MQTT перестает пытаться соединиться с брокером в случае потери связи с ним?
Поясню.
В настоящий момент у меня построена система так, что брокер Mosquitto стоит на роутере на удаленном объекте (даче). Там же находятся и управляемые устройства, которые по mqtt отдают данные на брокер. А вот сама платформа MjDM находится на удаленном сервере и общается с брокером по интернет-каналу (4G).
Вчера канал лопнул (деньги кончились на симке), и MjDM разумеется перестал получать данные с брокера. Связи не было 8 часов. Деньги положил, канал восстановился, все отлично. Но... смотрю, а модуль MQTT нифига свежие данные от брокера не получает. Подумал, может он после какого-то числа попыток откладывает это на время? Подождал. Потом еще подождал... и еще подождал часок. Ничего. Все данные старые.
Тупо перезапустил MjDM - все взлетело, подписка возобновилась.
Баг или фича

Re: Предложения по доработке модуля MQTT
Добавлено: Сб окт 27, 2018 12:26 pm
skysilver
hc2hunter писал(а): Сб окт 27, 2018 9:34 am
Тупо перезапустил MjDM - все взлетело, подписка возобновилась.
По существу вопроса не подскажу, но ребутать весь МДМ это уже перебор. )) Можно было просто рестартануть цикл мктт. Причем это можно из своего кода, например, по событию "Подключение к интернет восстановлено".
Re: Предложения по доработке модуля MQTT
Добавлено: Сб окт 27, 2018 2:19 pm
hc2hunter
а не подскажете где этот цикл искать? и как правильно его дернуть?
кстати, предыдущий мой вопрос видимо тоже с этим тесно связан. обратил внимание, если в системе создавать свои setTimeOutы с длительность до 4 секунд, то mqtt как раз начинает беситься и "плодить" холостые данные, из-за чего беспрерывно срабатывают таймеры опроса устройств ИМЯ_updateTime
Re: Предложения по доработке модуля MQTT
Добавлено: Сб окт 27, 2018 2:54 pm
skysilver
Управление всеми циклами доступно через XRay на вкладке Services.
Если из своего кода, то
setGlobal('cycle_mqttControl', 'restart');
http://majordomo.smartliving.ru/forum/v ... 78&p=71002
Re: Предложения по доработке модуля MQTT
Добавлено: Пн окт 29, 2018 10:41 am
hc2hunter
М-де... все-таки MQTT кривой в majordomo начиная с х.з. какой версии...
Поставил на свежей операционке последнюю версию 1.20 с нуля, обновился до актуальной.
Настроил в ней MQTT, прицепил девайс hunter\Basic\#.
Девайс поработал примерно с часик, шля данные на брокер каждые 4 минуты. Все ок, данные обновлялись, время отклика устройства обновлялось.
Потом я тупо выдернул его из сети. Девайс физически умер. На брокере, разумеется, никаких данных свежих нет. Какого же было мое удивление, когда в панели MQTT я увидел через 15 минут свежие данные от мертвого девайса. "Бинго!"
Приложил картинку - видно, как часть данных "освежились" сами собой в 10:32, в то время как с 10:15 девайс был выключен. Если бы он был включен - он бы прислал полный набор данных.

- mqtt.png (75.5 КБ) 5422 просмотра
И что делать с такой здоровской работой модуля ума не приложу...

Re: Предложения по доработке модуля MQTT
Добавлено: Пн окт 29, 2018 10:51 am
eeak1
hc2hunter писал(а): Пн окт 29, 2018 10:41 am
Поставил на свежей операционке последнюю версию 1.20 с нуля
Так это древняя версия, ровесник динозавров. Сейчас актуально 1.5.3
hc2hunter писал(а): Пн окт 29, 2018 10:41 am
Какого же было мое удивление, когда в панели MQTT я увидел через 15 минут свежие данные от мертвого девайса. "Бинго!"
Может дело в "Retain" ?
hc2hunter писал(а): Пн окт 29, 2018 10:41 am
М-де... все-таки MQTT кривой в majordomo начиная с х.з. какой версии...
Ну не знаю, я давным-давно все перевел на MQTT, единственная проблема - редкие подвисания цикла. Лечится проверкой в onNewMinute и чисткой с рестартом.
Re: Предложения по доработке модуля MQTT
Добавлено: Пн окт 29, 2018 10:57 am
hc2hunter
Тоже думал про Retain, но по умолчанию в модуле он выключен, и я его специально не включал.
Или он неявно где-то прописан еще...?
А почему 1.2 древняя? Это единственный установщик, который предлагается на
https://majordomo.smartliving.ru/skachat-majordomo/
Дальше я уже обновлял его до актуальной из самой панели управления. Сейчас пишет "Вы используете последнюю версию!" (Master)
Re: Предложения по доработке модуля MQTT
Добавлено: Пн окт 29, 2018 11:12 am
eeak1
hc2hunter писал(а): Пн окт 29, 2018 10:57 am
Тоже думал про Retain, но по умолчанию в модуле он выключен, и я его специально не включал.
Удали топик который сам обновляется и посмотри, появится он сам через время или нет. Если появится - значит Retain.
Ты мог его включить 1 раз, дальше он в таком статусе будет пока вручную в БД не сбросишь.
hc2hunter писал(а): Пн окт 29, 2018 10:57 am
А почему 1.2 древняя?
Я думал ты про версию москиты. А если не про нее, тады я не в курсе что за 1.2
Re: Предложения по доработке модуля MQTT
Добавлено: Пн окт 29, 2018 11:21 am
hc2hunter
eeak1 писал(а): Пн окт 29, 2018 11:12 am
Удали топик который сам обновляется и посмотри, появится он сам через время или нет. Если появится - значит Retain.
Ты мог его включить 1 раз, дальше он в таком статусе будет пока вручную в БД не сбросишь.
Спасибо за совет, попробую.
Москита у меня стоит на OpenWRT, на роутере. Судя по информации, она там версии 1.5.3-3
В конфиге самой москиты про retain ничего специально не прописано. По-дефолту. Там это, кажется, persistence называется.
И опять же, данные всплывают только в модуле MjDM, сама москита при этом молчит.