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

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

Модераторы: Bagir, Ivan, Vit, immortal, PAV

Ander
Сообщения: 28
Зарегистрирован: Вс авг 27, 2017 9:20 pm
Благодарил (а): 3 раза
Поблагодарили: 0

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

Сообщение Ander » Ср янв 23, 2019 10:12 am

:shock:
Вложения
2019-01-22_23-15-34.png
2019-01-22_23-15-34.png (17.07 КБ) 250 просмотров
Аватара пользователя
pdfsen
Сообщения: 37
Зарегистрирован: Вс янв 13, 2019 8:32 am
Благодарил (а): 7 раз
Поблагодарили: 0

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

Сообщение pdfsen » Чт фев 07, 2019 2:45 pm

Подскажите, пожалуйста, не могу найти как настроить в МДМ работу с двумя MQTT серверами ?
Например, один у меня стоит локально дома и работает со всеми девайсами в локальной сети.
А второй в CloudMQTT работает с девайсами в другом удаленном помещении.
И МДМ надо забирать данные с обоих MQTT серверов.
skysilver
Сообщения: 2284
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 313 раз
Поблагодарили: 1282 раза
Контактная информация:

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

Сообщение skysilver » Пт фев 08, 2019 10:56 am

Модуль работает только с одним брокером.
Делай бридж между двумя твоими брокерами.
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Аватара пользователя
Andy111
Сообщения: 23
Зарегистрирован: Вт апр 25, 2017 1:17 pm
Благодарил (а): 16 раз
Поблагодарили: 1 раз

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

Сообщение Andy111 » Вс фев 10, 2019 8:55 pm

День добрый!
Почему-то в MQTT из ESP8266 перестало приходить значение "0" (видимо NULL, т.е. отсутствует вообще что либо) , вот "1", "2" приходит, а "0", нет!
кусок кода такой:
char *stateChar = "2";
...
if (!digitalRead(_pin)) {state=0; stateChar = "0";}
else {state=1; stateChar = "1";}
...
client.publish(path2"/state", stateChar, true);
///////////
вариант dtostrf((state), 1, 0, stateChar); работает, но ранее в этом устройстве и в других аналогичных устройствах работало по первому варианту. Опасаюсь глюков с другими устройствами и на будущее...
Что не так?
FredP
Сообщения: 48
Зарегистрирован: Ср авг 23, 2017 5:35 pm
Благодарил (а): 2 раза
Поблагодарили: 1 раз

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

Сообщение FredP » Чт фев 14, 2019 6:35 am

Ander писал(а):
Вт янв 22, 2019 5:44 pm
в модуле MQTT есть Связанный объект, его свойство и метод. Свойство содержит данные MQTT, тут все без проблем, а метод как запускается, когда приходят данные? У меня не работает!
Подтверждаю. Хочу запускать скрипт при получении нового значения. Метод не выполняется. Наверное, баг в модуле.
Аватара пользователя
nick7zmail
Сообщения: 5896
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 113 раз
Поблагодарили: 1464 раза

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

Сообщение nick7zmail » Чт фев 14, 2019 7:32 am

Чтобы запускался метод при изменении свойства - надо его в классе связать с этим свойством.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
FredP
Сообщения: 48
Зарегистрирован: Ср авг 23, 2017 5:35 pm
Благодарил (а): 2 раза
Поблагодарили: 1 раз

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

Сообщение FredP » Чт фев 14, 2019 7:53 am

nick7zmail писал(а):
Чт фев 14, 2019 7:32 am
Чтобы запускался метод при изменении свойства - надо его в классе связать с этим свойством.
Ты говоришь о функционале самого мажордомо. А мы говорим о вызове метода из модуля mqTT при обновлении свойства.
Аватара пользователя
nick7zmail
Сообщения: 5896
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 113 раз
Поблагодарили: 1464 раза

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

Сообщение nick7zmail » Чт фев 14, 2019 8:05 am

На самом деле мало модулей, которые вызывают выбранный метод самостоятельно))) По этому в моих модулях этого поля даже нет. Зачем, если можно связать метод со свойством...
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
Kvantos
Сообщения: 161
Зарегистрирован: Вт окт 31, 2017 1:05 pm
Благодарил (а): 11 раз
Поблагодарили: 24 раза

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

Сообщение Kvantos » Чт фев 14, 2019 10:40 am

nick7zmail писал(а):
Чт фев 14, 2019 8:05 am
На самом деле мало модулей, которые вызывают выбранный метод самостоятельно))) По этому в моих модулях этого поля даже нет. Зачем, если можно связать метод со свойством...
вызов метода (при приходе сообщения) в этом модуле будет полезен, если данные приходят часто, и при этом не хочется каждый раз писать их в свойство (повышенная нагрузка на систему + износ флеша) - метод прочтет значение свойства и будет сравнивать с пришедшим значением, и только если оно изменилось запишет измененное свойство....
MDM живет на 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux
FredP
Сообщения: 48
Зарегистрирован: Ср авг 23, 2017 5:35 pm
Благодарил (а): 2 раза
Поблагодарили: 1 раз

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

Сообщение FredP » Чт фев 14, 2019 10:44 am

Ну, на счет повышенной нагрузки - хз... Считать старое, записать в переенную новое, сравнить. Или просто записать в свойство. По моему во втором случае нагрузки меньше. Да и вообще сам MQTT подразумевает асинхронность прихода сообщений. Клиент сам не должен отправлять сообщение если оно такое как и старое.
Именно по этому я и перешел на MQTT с modbus. В модбасе сделал опрос 50 переменных раз в секунду - мажородомо просто захлебнулся в 100% загрузки intel atom E3825 1.33 Ghz и все. А вот MQTT за счет исключения отправки повторных сообщений, уменьшил нагрузку до 20%. Сейчас обновляю 5-6 штук в секунду.
Износ флеша тоже мимо, ведь БД хранится в оперативке и пишется раз в 15 минут...
Тут было бы актуальнее выполнить код при приходе сообщения. Уменьшит трудозатраты ИМХО.
Последний раз редактировалось FredP Чт фев 14, 2019 10:54 am, всего редактировалось 2 раза.
Ответить