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

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

Модератор: immortal

Аватара пользователя
prmres
Сообщения: 220
Зарегистрирован: Пт ноя 24, 2017 2:24 am
Откуда: оттуда
Благодарил (а): 60 раз
Поблагодарили: 59 раз

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

Сообщение prmres » Пт фев 21, 2020 4:43 pm

convix_maximus писал(а):
Чт фев 20, 2020 10:59 pm
Здравствуйте ребята. Помогите подключить CloudMqtt к мажору. Есть метеостанция, она отправляет в облоко данные, но мажором их не вытянуть. Порты менял, юзеров прописывал для получения топиков, лишь только танцев с бубном не было. Год назад пробовал мажор ради интереса, все получилось, настроилось. Теперь я созрел для организации умного дома, и вот те на, уперся в самое простое. Подскажите плиз.
замыкать умный дом на облачный сервис не самое хорошее решение
отключился по какой-либо причине интернет и что? умный дом накрылся?
поднимайте локально (в доме) свой MQTT-сервер, а если нужно иметь доступ из интернетов к топикам - тогда можно настроить мост на облачный сервис
Установка MQTT-сервера Mosquitto на Ubuntu
Мост к облачному брокеру cloudmqtt.com
За это сообщение автора prmres поблагодарил:
convix_maximus (Чт мар 12, 2020 12:53 pm)
Рейтинг: 1.23%
Не только лишь все!
V.A.S.t
Сообщения: 116
Зарегистрирован: Сб май 11, 2019 6:35 pm
Откуда: Иркутск
Благодарил (а): 8 раз
Поблагодарили: 12 раз

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

Сообщение V.A.S.t » Сб фев 22, 2020 8:04 am

Кто-нибудь разобрался с постоянными реконнектами? Заглянул в лог mosquitto и ужаснулся. Вроде данную тему обсуждали тут, но решения я так и не увидел...
UPD: немного поразбирался с MQTT и выяснил, что скрипт работает только на прием сообщений, а при публикации создается новое соединение и сразу закрывается. Отсюда и постоянные дисконнекты. То есть логика построения модуля такая. А вот как это исправить - непонятно...
convix_maximus
Сообщения: 5
Зарегистрирован: Чт фев 20, 2020 10:49 pm
Благодарил (а): 2 раза
Поблагодарили: 0

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

Сообщение convix_maximus » Сб фев 22, 2020 10:57 am

nick7zmail писал(а):
Пт фев 21, 2020 6:59 am
Попробуйте это решение viewtopic.php?p=112717#p112717
Если сканает - у вас не совсем правильно настроен веб сервер. Можно рыться в конфигах, можно пока так оставить, но до ближайшего обновления. Потом перезапишется, и придется повторить.
Обратил внимание что в X-ray/Services/cycle_mqtt не активен. В статусе Live нет ничего. Возможно из-за этого? Строки заменил, модуль перезапустил.
Аватара пользователя
nick7zmail
Сообщения: 7186
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 1866 раз

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

Сообщение nick7zmail » Вт фев 25, 2020 6:47 am

V.A.S.t писал(а):
Сб фев 22, 2020 8:04 am
Кто-нибудь разобрался с постоянными реконнектами? Заглянул в лог mosquitto и ужаснулся. Вроде данную тему обсуждали тут, но решения я так и не увидел...
UPD: немного поразбирался с MQTT и выяснил, что скрипт работает только на прием сообщений, а при публикации создается новое соединение и сразу закрывается. Отсюда и постоянные дисконнекты. То есть логика построения модуля такая. А вот как это исправить - непонятно...
Я про это давно твержу)) На что мне говорят что это нормально.
Для идеологически правильной работы можно сделать очередь, и засылать из цикла...но это вызовет какие-никакие задержки. Либо писать не на PHP =D php не умеет кидать объекты между потоками.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
directman66
Сообщения: 2745
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 376 раз
Поблагодарили: 628 раз
Контактная информация:

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

Сообщение directman66 » Вт фев 25, 2020 6:52 am

Да я уже натестировался. Подключение для публикации происходит за доли секунд, нет никакого смысла менять текущую логику. А вот подписка, отправка параметров через api и обработка внутренней логики - около 2 секунд. Тут есть над чем поработать. Причем цикл все время подключен к серверу и не отключается.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram | +79122962262 WhatsApp
skysilver
Сообщения: 2871
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 370 раз
Поблагодарили: 1649 раз
Контактная информация:

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

Сообщение skysilver » Вт фев 25, 2020 12:08 pm

nick7zmail писал(а):
Вт фев 25, 2020 6:47 am
Либо писать не на PHP =D php не умеет кидать объекты между потоками.
Умеет, но будет не кросс-платформенно - винда в пролёте.
nick7zmail писал(а):
Вт фев 25, 2020 6:47 am
Для идеологически правильной работы можно сделать очередь, и засылать из цикла...но это вызовет какие-никакие задержки.
Через сокеты в неблокирующем режиме можно сделать - тогда не будет задержек и очередь через поллинг базы не нужна будет. У меня в модуле LG webOS так сделано.
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
convix_maximus
Сообщения: 5
Зарегистрирован: Чт фев 20, 2020 10:49 pm
Благодарил (а): 2 раза
Поблагодарили: 0

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

Сообщение convix_maximus » Пт мар 13, 2020 12:18 pm

prmres писал(а):
Пт фев 21, 2020 4:43 pm
convix_maximus писал(а):
Чт фев 20, 2020 10:59 pm
Здравствуйте ребята. Помогите подключить CloudMqtt к мажору. Есть метеостанция, она отправляет в облоко данные, но мажором их не вытянуть. Порты менял, юзеров прописывал для получения топиков, лишь только танцев с бубном не было. Год назад пробовал мажор ради интереса, все получилось, настроилось. Теперь я созрел для организации умного дома, и вот те на, уперся в самое простое. Подскажите плиз.

замыкать умный дом на облачный сервис не самое хорошее решение
отключился по какой-либо причине интернет и что? умный дом накрылся?
поднимайте локально (в доме) свой MQTT-сервер, а если нужно иметь доступ из интернетов к топикам - тогда можно настроить мост на облачный сервис
Установка MQTT-сервера Mosquitto на Ubuntu
Мост к облачному брокеру cloudmqtt.com
Что-то не всё команды работают (( Так понимаю нужно установить Ubuntu и после чего на него устанавливать доп. ПО? Помогите плиз советом.
Аватара пользователя
yii
Сообщения: 245
Зарегистрирован: Пн апр 17, 2017 1:39 pm
Благодарил (а): 30 раз
Поблагодарили: 30 раз

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

Сообщение yii » Чт апр 09, 2020 6:43 am

Идея, может будет реализована? :)

Понадобилось вчера удалить штук 20 топиков с установленным ретейн флагом... это же ад, только ручками, и в каждом сначала установить флаг ретейн и отправить в него пустой пайлоад, а только после этого удалять...

Может сделать что бы нажатии кнопки удалить, сначала бы в топик посылалась мессага с флагом ретейн и пустым пайлоадом, а уже потом удалять топик? Топикам без ретейна хуже не станет, а топики с ретейном будут удаляться одной кнопкой...
Аватара пользователя
xor
Сообщения: 1520
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 156 раз
Поблагодарили: 449 раз

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

Сообщение xor » Чт апр 09, 2020 10:35 pm

yii писал(а):
Чт апр 09, 2020 6:43 am
Идея, может будет реализована? :)

Понадобилось вчера удалить штук 20 топиков с установленным ретейн флагом... это же ад, только ручками, и в каждом сначала установить флаг ретейн и отправить в него пустой пайлоад, а только после этого удалять...

Может сделать что бы нажатии кнопки удалить, сначала бы в топик посылалась мессага с флагом ретейн и пустым пайлоадом, а уже потом удалять топик? Топикам без ретейна хуже не станет, а топики с ретейном будут удаляться одной кнопкой...
пишите свой скрипт, по всем топикам вызывая функцию
function mqttPublish($topic, $value, $qos = 0, $retain = 0):

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

include_once(DIR_MODULES . 'mqtt/mqtt.class.php');
$mqtt = new mqtt();
$rezult = $mqtt->mqttPublish($topic, 0,  0, 1);
Stor
Сообщения: 119
Зарегистрирован: Ср окт 31, 2018 11:45 pm
Благодарил (а): 7 раз
Поблагодарили: 4 раза

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

Сообщение Stor » Сб апр 11, 2020 9:03 pm

Всем привет.
Сейчас проверил логи апача, обнаружил много ошибок на подобии:

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

[Sat Apr 11 07:27:26.675471 2020] [:error] [pid 26617] [client 127.0.0.1:57156] PHP Warning:  Invalid argument supplied for foreach() in /var/www/modules/mqtt/mqtt.class.php on line 289
Это норм или нет?
Ответить