[Модуль] MQTT (mqtt)
Модератор: immortal
- pdfsen
- Сообщения: 78
- Зарегистрирован: Вс янв 13, 2019 8:32 am
- Благодарил (а): 17 раз
- Поблагодарили: 0
Re: [Модуль] MQTT (mqtt)
Подскажите, пожалуйста, не могу найти как настроить в МДМ работу с двумя MQTT серверами ?
Например, один у меня стоит локально дома и работает со всеми девайсами в локальной сети.
А второй в CloudMQTT работает с девайсами в другом удаленном помещении.
И МДМ надо забирать данные с обоих MQTT серверов.
Например, один у меня стоит локально дома и работает со всеми девайсами в локальной сети.
А второй в CloudMQTT работает с девайсами в другом удаленном помещении.
И МДМ надо забирать данные с обоих MQTT серверов.
-
- Сообщения: 3006
- Зарегистрирован: Чт авг 21, 2014 8:28 am
- Откуда: Киров, Россия
- Благодарил (а): 400 раз
- Поблагодарили: 1753 раза
- Контактная информация:
Re: [Модуль] MQTT (mqtt)
Модуль работает только с одним брокером.
Делай бридж между двумя твоими брокерами.
Делай бридж между двумя твоими брокерами.
- Рейтинг: 1.16%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Мой CONNECT | Блоги | Telegram
- Andy111
- Сообщения: 25
- Зарегистрирован: Вт апр 25, 2017 1:17 pm
- Благодарил (а): 32 раза
- Поблагодарили: 2 раза
Re: [Модуль] MQTT (mqtt)
День добрый!
Почему-то в 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); работает, но ранее в этом устройстве и в других аналогичных устройствах работало по первому варианту. Опасаюсь глюков с другими устройствами и на будущее...
Что не так?
Почему-то в 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); работает, но ранее в этом устройстве и в других аналогичных устройствах работало по первому варианту. Опасаюсь глюков с другими устройствами и на будущее...
Что не так?
-
- Сообщения: 59
- Зарегистрирован: Ср авг 23, 2017 5:35 pm
- Благодарил (а): 2 раза
- Поблагодарили: 2 раза
Re: [Модуль] MQTT (mqtt)
Подтверждаю. Хочу запускать скрипт при получении нового значения. Метод не выполняется. Наверное, баг в модуле.
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: [Модуль] MQTT (mqtt)
Чтобы запускался метод при изменении свойства - надо его в классе связать с этим свойством.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
-
- Сообщения: 59
- Зарегистрирован: Ср авг 23, 2017 5:35 pm
- Благодарил (а): 2 раза
- Поблагодарили: 2 раза
Re: [Модуль] MQTT (mqtt)
Ты говоришь о функционале самого мажордомо. А мы говорим о вызове метода из модуля mqTT при обновлении свойства.nick7zmail писал(а): ↑Чт фев 14, 2019 7:32 amЧтобы запускался метод при изменении свойства - надо его в классе связать с этим свойством.
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: [Модуль] MQTT (mqtt)
На самом деле мало модулей, которые вызывают выбранный метод самостоятельно))) По этому в моих модулях этого поля даже нет. Зачем, если можно связать метод со свойством...
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
- Kvantos
- Сообщения: 295
- Зарегистрирован: Вт окт 31, 2017 1:05 pm
- Благодарил (а): 26 раз
- Поблагодарили: 49 раз
Re: [Модуль] MQTT (mqtt)
вызов метода (при приходе сообщения) в этом модуле будет полезен, если данные приходят часто, и при этом не хочется каждый раз писать их в свойство (повышенная нагрузка на систему + износ флеша) - метод прочтет значение свойства и будет сравнивать с пришедшим значением, и только если оно изменилось запишет измененное свойство....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
-
- Сообщения: 59
- Зарегистрирован: Ср авг 23, 2017 5:35 pm
- Благодарил (а): 2 раза
- Поблагодарили: 2 раза
Re: [Модуль] MQTT (mqtt)
Ну, на счет повышенной нагрузки - хз... Считать старое, записать в переенную новое, сравнить. Или просто записать в свойство. По моему во втором случае нагрузки меньше. Да и вообще сам MQTT подразумевает асинхронность прихода сообщений. Клиент сам не должен отправлять сообщение если оно такое как и старое.
Именно по этому я и перешел на MQTT с modbus. В модбасе сделал опрос 50 переменных раз в секунду - мажородомо просто захлебнулся в 100% загрузки intel atom E3825 1.33 Ghz и все. А вот MQTT за счет исключения отправки повторных сообщений, уменьшил нагрузку до 20%. Сейчас обновляю 5-6 штук в секунду.
Износ флеша тоже мимо, ведь БД хранится в оперативке и пишется раз в 15 минут...
Тут было бы актуальнее выполнить код при приходе сообщения. Уменьшит трудозатраты ИМХО.
Именно по этому я и перешел на MQTT с modbus. В модбасе сделал опрос 50 переменных раз в секунду - мажородомо просто захлебнулся в 100% загрузки intel atom E3825 1.33 Ghz и все. А вот MQTT за счет исключения отправки повторных сообщений, уменьшил нагрузку до 20%. Сейчас обновляю 5-6 штук в секунду.
Износ флеша тоже мимо, ведь БД хранится в оперативке и пишется раз в 15 минут...
Тут было бы актуальнее выполнить код при приходе сообщения. Уменьшит трудозатраты ИМХО.
Последний раз редактировалось FredP Чт фев 14, 2019 10:54 am, всего редактировалось 2 раза.