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

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

Модератор: immortal

Ander
Сообщения: 56
Зарегистрирован: Вс авг 27, 2017 9:20 pm

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

Сообщение Ander »

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

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

Сообщение pdfsen »

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

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

Сообщение skysilver »

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

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

Сообщение Andy111 »

День добрый!
Почему-то в 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
Сообщения: 59
Зарегистрирован: Ср авг 23, 2017 5:35 pm

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

Сообщение FredP »

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

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

Сообщение nick7zmail »

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

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

Сообщение FredP »

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

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

Сообщение nick7zmail »

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

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

Сообщение Kvantos »

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
Сообщения: 59
Зарегистрирован: Ср авг 23, 2017 5:35 pm

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

Сообщение FredP »

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