MQTT client,secure ON/OFF

Пользовательские блоки для коммкникации и связи GSM, GPRS, IR, Bluetooth и другие
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Ответить
hayk
Сержант
Сообщения: 108
Зарегистрирован: 27.07.2016{, 03:06}
Репутация: 21
Откуда: Yerevan
Имя: Hayk

MQTT client,secure ON/OFF

#1

Сообщение hayk » 02.07.2023{, 22:19}

Блоки клиента mqtt.Работают как с esp32, так и с esp8266, есть возможность включения защищенного соединения.В блоках не реализована вставка сертификата ( мало кому нужно),но в скетче есть закомментированный сертификат и строчка в setup,кому очень нужно вставьте нужный сертификат,в скетче сертификат для брокера hivemq cloud.Отправка сообщения по переднему фронту, Con_Int в настройках Main это интервал между подключениями к брокеру если он не доступен,у библиотеки есть возможность работы с двумя клиентами одновременно,в дальнейшем можно реализовать.Тестировал на hivemq cloud secure connection и shiftr.io,пока все нормально.
Вложения
MQTT-2.5.1.zip
библиотека
(42.69 КБ) 71 скачивание
MQTT.ubl
блоки
(506.15 КБ) 59 скачиваний

pochabych
Рядовой
Сообщения: 37
Зарегистрирован: 09.11.2021{, 15:12}
Репутация: 3
Имя: Денис

MQTT client,secure ON/OFF

#2

Сообщение pochabych » 17.07.2023{, 09:17}

Добрый день. Для начала, По мне так это нужный блок для защиты MQTT соединения, за это плюс в карму :) по блоку возникли вопросы. Я не сильно хорошо знаком с MQTT по этому мой вопрос может показаться глупым. что делает секция setWill_Мessage? почему данномупараметру присвоен статус "Я потерялся" (прикаких условиях он отправляется?) Параметр setWill_Topic значение по умолчанию "My topic" делает отсылку к блоку Публикации? я верно понимаю что сертификат нобходимо вставить в секцию DEC блока маин раскомментировав строку /* const char* local_root_ca = R"EOF( ***** )EOF"; */? Заранее благодарен за ответ. PS временно мой проект работает на 1883 хочу соскочить на 8883 а то мой броке постоянно атакуют перебором паролей и пользователей c серверов Censys

hayk
Сержант
Сообщения: 108
Зарегистрирован: 27.07.2016{, 03:06}
Репутация: 21
Откуда: Yerevan
Имя: Hayk

MQTT client,secure ON/OFF

#3

Сообщение hayk » 17.07.2023{, 12:38}

Значения WillTopic и WillMessage можете изменить на свои и в случае внезапной потери связи клиента с брокером, и по истечении времени KeepAlive, всем кто подписан на WiilTopic будет отправлено сообщение WillMessage,актуально использовать при нестабильной связи.На счет сертификата Вы правильно поняли,в скетче его нужно вставить между "-----BEGIN CERTIFICATE-----" и "-----END CERTIFICATE-----" и еще раскомментировать строку //net.setCACert(local_root_ca); в секции SETUP, хотя соединение на портах 8883 защищено и без сертификата.Есть куча информации в инете по MQTT и Will опции (LWT),можно почитать.

pochabych
Рядовой
Сообщения: 37
Зарегистрирован: 09.11.2021{, 15:12}
Репутация: 3
Имя: Денис

MQTT client,secure ON/OFF

#4

Сообщение pochabych » 17.07.2023{, 22:30}

Проверил все работает. Спасибо огромное. Все же мне не онятна функция уведомления о том что "Я потерялся" при каких условиях она возникает или сообщаем брокеру? При условии отвала и восстановления связи?

SerOv
Лейтенант
Сообщения: 570
Зарегистрирован: 06.01.2018{, 19:50}
Репутация: 26

MQTT client,secure ON/OFF

#5

Сообщение SerOv » 18.07.2023{, 21:56}

hayk, Спасибо что продолжаете развитие MQTT. Есть к Вам огромная просьба. Сделайте пожалуйста описание блоков. И еще было бы не плохо. Чтобы не было путаницы в дальнейшем. В самом блоке добавьте версию. Будет лучше ориентироваться. А то вы выпустите новую версию а в самом блоке нет его версии. А то в самом проекте этого не видно. какой версией мы пользуемся. Не оставляйте без внимания мой пост. Заранее спасибо.

hayk
Сержант
Сообщения: 108
Зарегистрирован: 27.07.2016{, 03:06}
Репутация: 21
Откуда: Yerevan
Имя: Hayk

MQTT client,secure ON/OFF

#6

Сообщение hayk » 19.07.2023{, 21:33}

pochabych писал(а):
17.07.2023{, 22:30}
Проверил все работает. Спасибо огромное. Все же мне не онятна функция уведомления о том что "Я потерялся" при каких условиях она возникает или сообщаем брокеру? При условии отвала и восстановления связи?
Давайте проведем аналогию с мобильной связью,при разговоре телефон и базовая станция обмениваются кучей информации о которой абонент и понятия не имеет, да и не надо ему,при обрыве связи с Вашим собеседником базовая станция может Вам сразу сообщить,что связь нарушена или абонент вышел из зоны действия и Вы будете знать,что собеседник не на связи ,а не взял паузу и молчит,это и будет в случае mqtt WillMessage . Вы сами прописывайте в настройках блока какое сообщение отправит брокер всем кто подписался на топик WillTopic этого клиента ,всем тем,кому интересно знать,что отвалилась связь с этим клиентом. Mqtt брокер и клиент тоже обмениваются пакетами проверки связи,этим занимается библиотека mqtt и сервер брокера нам этим заниматься не надо.Хотя опцией Will можно и не пользоваться,кому как.

Отправлено спустя 6 минут 30 секунд:
SerOv, полностью с Вами согласен,тем более требование администрации подробное описание блоков,могли удалить блоки,в ближайшее время перезалью блоки с описанием и версией.

SerOv
Лейтенант
Сообщения: 570
Зарегистрирован: 06.01.2018{, 19:50}
Репутация: 26

MQTT client,secure ON/OFF

#7

Сообщение SerOv » 19.07.2023{, 23:21}

hayk писал(а):
19.07.2023{, 21:39}
...при обрыве связи с Вашим собеседником базовая станция может Вам сразу сообщить,что связь нарушена..
Это у меня только не работает? При включении в WillTopic ничего нет. при обрыве связи там появляется надпись I am lost. это вроде логично. но при дальнейшем восстановлении связи, эта надпись никуда не пропадает. В моем понимании там должно быть. при соединении с брокером появиться 1. а при отключении от от брокера должен появиться 0. а она там остается постоянно. Или это только у меняя так? Проверял на ESP32.

hayk
Сержант
Сообщения: 108
Зарегистрирован: 27.07.2016{, 03:06}
Репутация: 21
Откуда: Yerevan
Имя: Hayk

MQTT client,secure ON/OFF

#8

Сообщение hayk » 20.07.2023{, 20:25}

SerOv писал(а):
19.07.2023{, 23:21}
hayk писал(а):
19.07.2023{, 21:39}
...при обрыве связи с Вашим собеседником базовая станция может Вам сразу сообщить,что связь нарушена..
Это у меня только не работает? При включении в WillTopic ничего нет. при обрыве связи там появляется надпись I am lost. это вроде логично. но при дальнейшем восстановлении связи, эта надпись никуда не пропадает. В моем понимании там должно быть. при соединении с брокером появиться 1. а при отключении от от брокера должен появиться 0. а она там остается постоянно. Или это только у меняя так? Проверял на ESP32.
У Вас все работает как нужно,при разрыве брокер посылает willmessage и оно будет у Вас висеть пока не удалите,при восстановлении связи клиент может сам послать на willtopic пустое сообщение и очистить поле или же не пустое, а о том,что он на связи.Давайте рассмотрим пример когда у вас много клиентов,не знаю каким приложением Вы мониторите своих клиентов -Virtuino,KaScada или другое,это не важно,можно в приложении создать отдельную страницу статусов соединения Ваших клиентов,каждому клиенту создать свое текстовое поле,каждому присвоить свой willtopic и willmessage,при обрыве связи клиента 1 брокер отправит сообщение client 1 lost,а при восстановлении клиент туда же отправит,к примеру,client 1 online.
.PNG
.PNG (3.44 КБ) 1713 просмотров

SerOv
Лейтенант
Сообщения: 570
Зарегистрирован: 06.01.2018{, 19:50}
Репутация: 26

MQTT client,secure ON/OFF

#9

Сообщение SerOv » 20.07.2023{, 22:11}

hayk писал(а):
20.07.2023{, 20:25}
при обрыве связи клиента 1 брокер отправит сообщение client 1 lost,а при восстановлении клиент туда же отправит,к примеру,client 1 online.
Готовый пример можно показать? Как он отсылает сообщения о потере связи и его востановлении? Не понятно как он это делает. Если ничего не меняется.

tornado
Рядовой
Сообщения: 30
Зарегистрирован: 14.04.2020{, 21:17}
Репутация: 1
Имя: Ivan

MQTT client,secure ON/OFF

#10

Сообщение tornado » 18.08.2023{, 21:31}

При первоначальном запуске и после перезагрузки не читает статус темы (например "0" или "1")- принимает значение после смены темы.
Последний раз редактировалось tornado 19.08.2023{, 06:42}, всего редактировалось 1 раз.

ivansidor012
Сержант
Сообщения: 279
Зарегистрирован: 10.09.2020{, 14:37}
Репутация: 43
Имя: Иван

MQTT client,secure ON/OFF

#11

Сообщение ivansidor012 » 19.08.2023{, 01:50}

hayk писал(а):
20.07.2023{, 20:25}
У Вас все работает как нужно,при разрыве брокер посылает willmessage и оно будет у Вас висеть пока не удалите,при восстановлении связи клиент может сам послать на willtopic пустое сообщение и очистить поле или же не пустое, а о том,что он на связи
так то этим брокер должен заниматься, а не клиент.
ну на всех основных брокерах именно так и происходит: именно брокер извещает о потере/восстановлении связи

Отправлено спустя 4 минуты 22 секунды:
ivansidor012 писал(а):
19.08.2023{, 01:50}
,а при восстановлении клиент туда же отправит,к примеру,client 1 online
клиент не должен специально ничего отправлять - это забота брокера

Отправлено спустя 1 минуту 42 секунды:
ivansidor012 писал(а):
19.08.2023{, 01:54}
Давайте проведем аналогию с мобильной связью,при разговоре телефон и базовая станция обмениваются кучей информации о которой абонент и понятия не имеет, да и не надо ему,при обрыве связи с Вашим собеседником базовая станция может Вам сразу сообщить,что связь нарушена или абонент вышел из зоны действия и Вы будете знать,что собеседник не на связи ,а не взял паузу и молчит,это и будет в случае mqtt WillMessage
вот тут же правильно написано: именно базовая станция мониторит клиентов, но никак не сам клиент сам себя)))

hayk
Сержант
Сообщения: 108
Зарегистрирован: 27.07.2016{, 03:06}
Репутация: 21
Откуда: Yerevan
Имя: Hayk

MQTT client,secure ON/OFF

#12

Сообщение hayk » 20.08.2023{, 09:03}

ivansidor012 писал(а):
19.08.2023{, 01:56}
hayk писал(а):
20.07.2023{, 20:25}
У Вас все работает как нужно,при разрыве брокер посылает willmessage и оно будет у Вас висеть пока не удалите,при восстановлении связи клиент может сам послать на willtopic пустое сообщение и очистить поле или же не пустое, а о том,что он на связи
так то этим брокер должен заниматься, а не клиент.
ну на всех основных брокерах именно так и происходит: именно брокер извещает о потере/восстановлении связи

Отправлено спустя 4 минуты 22 секунды:
ivansidor012 писал(а):
19.08.2023{, 01:50}
,а при восстановлении клиент туда же отправит,к примеру,client 1 online
клиент не должен специально ничего отправлять - это забота брокера
ivansidor012 писал(а):
19.08.2023{, 01:56}
hayk писал(а):
20.07.2023{, 20:25}
У Вас все работает как нужно,при разрыве брокер посылает willmessage и оно будет у Вас висеть пока не удалите,при восстановлении связи клиент может сам послать на willtopic пустое сообщение и очистить поле или же не пустое, а о том,что он на связи
так то этим брокер должен заниматься, а не клиент.
ну на всех основных брокерах именно так и происходит: именно брокер извещает о потере/восстановлении связи

Отправлено спустя 4 минуты 22 секунды:
ivansidor012 писал(а):
19.08.2023{, 01:50}
,а при восстановлении клиент туда же отправит,к примеру,client 1 online
клиент не должен специально ничего отправлять - это забота брокера

Отправлено спустя 1 минуту 42 секунды:
ivansidor012 писал(а):
19.08.2023{, 01:54}
Давайте проведем аналогию с мобильной связью,при разговоре телефон и базовая станция обмениваются кучей информации о которой абонент и понятия не имеет, да и не надо ему,при обрыве связи с Вашим собеседником базовая станция может Вам сразу сообщить,что связь нарушена или абонент вышел из зоны действия и Вы будете знать,что собеседник не на связи ,а не взял паузу и молчит,это и будет в случае mqtt WillMessage
вот тут же правильно написано: именно базовая станция мониторит клиентов, но никак не сам клиент сам себя)))
Где Вы тут увидели,что клиент должен заниматься отправкой сообщения при разрыве связи,и еще Will ничего не отправляет при восстановлении связи,одним словом прочитайте внимательней поймете о чем речь

ivansidor012
Сержант
Сообщения: 279
Зарегистрирован: 10.09.2020{, 14:37}
Репутация: 43
Имя: Иван

MQTT client,secure ON/OFF

#13

Сообщение ivansidor012 » 20.08.2023{, 21:25}

hayk писал(а):
02.07.2023{, 22:19}
Где Вы тут увидели,что клиент должен заниматься отправкой сообщения при разрыве связи,и еще Will ничего не отправляет при восстановлении связи,одним словом прочитайте внимательней поймете о чем речь
взгляни на скрин своего же примера: с чего вдруг клиент должен отправлять свой статус, если это работа брокера?

не вводи в заблуждение: как клиент отправит сообщение о разрыве, если у клиента нет связи по интернету???

Отправлено спустя 3 минуты 19 секунд:
вот в этом сообщении есть скрин, это что вообще за дичь?)))

viewtopic.php?f=71&t=8595&p=125718#p125406

Отправлено спустя 1 минуту 36 секунд:
hayk писал(а):
20.07.2023{, 20:25}
при разрыве брокер посылает willmessage и оно будет у Вас висеть пока не удалите
вот это че за пурга?))))
куда, кому и что посылает брокер?))))

hayk
Сержант
Сообщения: 108
Зарегистрирован: 27.07.2016{, 03:06}
Репутация: 21
Откуда: Yerevan
Имя: Hayk

MQTT client,secure ON/OFF

#14

Сообщение hayk » 21.08.2023{, 11:47}

ivansidor012 писал(а):
20.08.2023{, 21:30}
hayk писал(а):
02.07.2023{, 22:19}
Где Вы тут увидели,что клиент должен заниматься отправкой сообщения при разрыве связи,и еще Will ничего не отправляет при восстановлении связи,одним словом прочитайте внимательней поймете о чем речь
взгляни на скрин своего же примера: с чего вдруг клиент должен отправлять свой статус, если это работа брокера?

не вводи в заблуждение: как клиент отправит сообщение о разрыве, если у клиента нет связи по интернету???

Отправлено спустя 3 минуты 19 секунд:
вот в этом сообщении есть скрин, это что вообще за дичь?)))

viewtopic.php?f=71&t=8595&p=125718#p125406

Отправлено спустя 1 минуту 36 секунд:
hayk писал(а):
20.07.2023{, 20:25}
при разрыве брокер посылает willmessage и оно будет у Вас висеть пока не удалите
вот это че за пурга?))))
куда, кому и что посылает брокер?))))
Как я вижу у Вас трудности с освоением прочитанной информации,был конкретный вопрос от пользователя ,что висит сообщение при разрыве связи и не пропадает,как вариант предложил решение как его удалить и мониторить клиентов,и заметьте написано при восстановлении связи клиент отправляет сообщение,а что отправляет брокер можете почитать в инете о работе mqtt серверов,вот выноска с одного из ресурсов "Will Flag - при установленном флаге, после того, как клиент отключится от брокера без отправки команды DISCONNECT(в случаях непредсказуемого обрыва связи и т.д.), брокер оповестит об этом всех подключенных к нему клиентов через так называемый Will Message... ".И еще Вы мне тыкайте,мы с Вами никого не крестили.

ivansidor012
Сержант
Сообщения: 279
Зарегистрирован: 10.09.2020{, 14:37}
Репутация: 43
Имя: Иван

MQTT client,secure ON/OFF

#15

Сообщение ivansidor012 » 21.08.2023{, 15:52}

hayk писал(а):
21.08.2023{, 11:47}
висит сообщение при разрыве связи и не пропадает,как вариант предложил решение
какое может быть решение, кроме смены ГОВНОброкера?

Отправлено спустя 1 минуту 30 секунд:
hayk писал(а):
21.08.2023{, 11:47}
И еще Вы мне тыкайте,мы с Вами никого не крестили
подсказать тебе, оскорбленному "тыканием", где находится ближайший мировой суд?)))

tornado
Рядовой
Сообщения: 30
Зарегистрирован: 14.04.2020{, 21:17}
Репутация: 1
Имя: Ivan

MQTT client,secure ON/OFF

#16

Сообщение tornado » 08.09.2023{, 19:52}

hayk,есть ли в блоке MQTT PUB встроенный FTrig или надо добавить внешний?

hayk
Сержант
Сообщения: 108
Зарегистрирован: 27.07.2016{, 03:06}
Репутация: 21
Откуда: Yerevan
Имя: Hayk

MQTT client,secure ON/OFF

#17

Сообщение hayk » 08.09.2023{, 21:24}

tornado писал(а):
08.09.2023{, 19:52}
hayk,есть ли в блоке MQTT PUB встроенный FTrig или надо добавить внешний?
Есть,добавлять не надо.

ivansidor012
Сержант
Сообщения: 279
Зарегистрирован: 10.09.2020{, 14:37}
Репутация: 43
Имя: Иван

MQTT client,secure ON/OFF

#18

Сообщение ivansidor012 » 08.09.2023{, 22:10}

hayk писал(а):
21.08.2023{, 11:47}
Как я вижу у Вас трудности с освоением прочитанной информации,был конкретный вопрос от пользователя ,что висит сообщение при разрыве связи и не пропадает,как вариант предложил решение как его удалить и мониторить клиентов,и заметьте написано при восстановлении связи клиент отправляет сообщение,а что отправляет брокер можете почитать в инете о работе mqtt серверов,вот выноска с одного из ресурсов "Will Flag - при установленном флаге, после того, как клиент отключится от брокера без отправки команды DISCONNECT(в случаях непредсказуемого обрыва связи и т.д.), брокер оповестит об этом всех подключенных к нему клиентов через так называемый Will Message... ".И еще Вы мне тыкайте,мы с Вами никого не крестили.
чувааааак - это все настраивается на брокере)))

Отправлено спустя 2 минуты 9 секунд:
hayk писал(а):
21.08.2023{, 11:47}
"Will Flag - при установленном флаге, после того, как клиент отключится от брокера без отправки команды DISCONNECT(в случаях непредсказуемого обрыва связи и т.д.), брокер оповестит об этом всех подключенных к нему клиентов через так называемый Will Message...
зачем клиенту1 знать о том что клиент2 потерял связь с брокером через will топик, предназначенный лишь для мониторинга статуса коннекта к брокеру между клиентом1 и брокером???????

Ответить

Вернуться в «Коммуникация и связь»