MQTT клиент для Arduino, ESP8266, ESP32

Пользовательские блоки для коммкникации и связи GSM, GPRS, IR, Bluetooth и другие
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
User8
Лейтенант
Сообщения: 341
Зарегистрирован: 12 июн 2017, 14:44
Имя: Евгений

MQTT для Arduino, ESP8266, ESP32

Сообщение User8 »

CraCk писал(а): 06 янв 2019, 16:56Если соединение разорвать например на 15 сек то при восстановление соединения сообщение с нови статусом от есп приходи . Но если разорвать соединение на 1 минуту, то после этого уже новый статус с клиента не приходит.
Нужно выставить на клиенте и на брокере Clean Session = false или no, короче говоря выключить. Если хотя бы на брокере и на принимающей стороне не будет выключен CleanSession то недоставленные сообщения не дойдут.

Отправлено спустя 30 минут 13 секунд:
CraCk писал(а): 06 янв 2019, 16:56Попробовал Выход qosDelivered после прошивки на выходе все время 1 и ничто не влияет на статус.
Вот в таком примере при нажатии на button, led загорится только тогда, когда сообщение будет доставлено. Если сообщение не доставлено, то led не загорится в данном примере.
2019-01-06 193357.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
CraCk
Лейтенант
Сообщения: 674
Зарегистрирован: 10 сен 2015, 21:51
Благодарил (а): 1 раз
Поблагодарили: 1 раз

MQTT для Arduino, ESP8266, ESP32

Сообщение CraCk »

CraCk писал(а): 06 янв 2019, 16:56Уже даже что то работает с QoS. Но есть еще проблема. Если соединение разорвать например на 15 сек то при восстановление соединения сообщение с нови статусом от есп приходи . Но если разорвать соединение на 1 минуту, то после этого уже новый статус с клиента не приходит. Получаться как бы есп сама себя обнуливает по какому то таймеру.
Попробовал тоже самое проделать с QoS=0. Эффект тот же, наверное это не заслуга QoS=1 :( Не суждено. Придется смирится с этим и городить принудительную отправку при потери связи с брокером. Кстати qosDelivered работает только на QoS=1, на QoS=0 выход никак не реагирует.
User8 писал(а): 06 янв 2019, 17:38Нужно выставить на клиенте и на брокере Clean Session = false или no, короче говоря выключить. Если хотя бы на брокере и на принимающей стороне не будет выключен CleanSession то недоставленные сообщения не дойдут.
У меня что на локальном брокере, что на облачном cloudmqtt.com нет таких настроек.
User8 писал(а): 06 янв 2019, 17:38Вот в таком примере при нажатии на button, led загорится только тогда, когда сообщение будет доставлено. Если сообщение не доставлено, то led не загорится в данном примере.
Так работает но как то это не правильно. Всегда делаем отправку по R-тригеру. Может только при доставке импульс выдавать на qosDelivered как по сылке выше?
И еще одно, при компоновке публикация и подписка на одном клиенте не работает подписка. Клиент отправил сообщение но в то же время его не принял.
[spoiler]
Снимок.JPG
[/spoiler]
На предыдущей библиотеке версия 5 работало такое работало.
Еще по предыдущей библиотеке там есть qosDelivered?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
User8
Лейтенант
Сообщения: 341
Зарегистрирован: 12 июн 2017, 14:44
Имя: Евгений

MQTT для Arduino, ESP8266, ESP32

Сообщение User8 »

CraCk писал(а): 07 янв 2019, 00:35Попробовал тоже самое проделать с QoS=0. Эффект тот же, наверное это не заслуга QoS=1 Не суждено. Придется смирится с этим и городить принудительную отправку при потери связи с брокером. Кстати qosDelivered работает только на QoS=1, на QoS=0 выход никак не реагирует.
Лучше возьмите две esp и используйте локальный брокер. У вас не доходят сообщения, потому что на принимающей стороне или на брокере выставлен Clean Session в true, из-за чего после 15 секунд(за это отвечает параметр keepAlive) брокер разрывает сессию с клиентом и удаляет все недоставленные сообщения с qos 1 и 2. Все проверил, доходит все хоть через 10 минут.
CraCk писал(а): 07 янв 2019, 00:35Так работает но как то это не правильно. Всегда делаем отправку по R-тригеру.
Rtrig встроен в блок pub, так что можно не использовать внешний.
CraCk писал(а): 07 янв 2019, 00:35Может только при доставке импульс выдавать на qosDelivered как по сылке выше?
В одном цикле не получается реализовать, поэтому пусть будет так.
CraCk писал(а): 07 янв 2019, 00:35И еще одно, при компоновке публикация и подписка на одном клиенте не работает подписка. Клиент отправил сообщение но в то же время его не принял.
Переделал метод подписки, щас обновлю блоки в первом посте.
CraCk писал(а): 07 янв 2019, 00:35Еще по предыдущей библиотеке там есть qosDelivered?
В других такого не видел. Используемая библиотека на данный момент лучшая.

Отправлено спустя 3 минуты 37 секунд:
CraCk писал(а): 07 янв 2019, 00:35Кстати qosDelivered работает только на QoS=1, на QoS=0 выход никак не реагирует.
Он и предназначен для qos 1 и 2, для qos 0 не нужна проверка доставки.
pipapsix
Лейтенант
Сообщения: 438
Зарегистрирован: 25 окт 2016, 21:26
Откуда: Волгоградская обл.
Имя: СашкаСаняАлександр
Благодарил (а): 1 раз
Поблагодарили: 4 раза

MQTT для Arduino, ESP8266, ESP32

Сообщение pipapsix »

Что то опять все сломалось, не подключается к брокеру последние блоки.
А библиотеки когда менялись,?
У меня и со старыми скомпилировалось все и с новыми.
Не ошибок не вылезло и все равно не работать.

Отправлено спустя 31 минуту 31 секунду:
АААААААААААААА.
Опять с блоком с входами беда.
Без входов работает все.
Не протестил и выложил?)) опять?
пол часа мучаюсь сижу)
CraCk
Лейтенант
Сообщения: 674
Зарегистрирован: 10 сен 2015, 21:51
Благодарил (а): 1 раз
Поблагодарили: 1 раз

MQTT для Arduino, ESP8266, ESP32

Сообщение CraCk »

User8 писал(а): 07 янв 2019, 04:23Переделал метод подписки, щас обновлю блоки в первом посте.
Проверил, дальше не работает :(
[spoiler]
Снимок.JPG
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
User8
Лейтенант
Сообщения: 341
Зарегистрирован: 12 июн 2017, 14:44
Имя: Евгений

MQTT для Arduino, ESP8266, ESP32

Сообщение User8 »

[ref]CraCk[/ref], вот так работает, использовать OR на выходе, не самая лучшая идея, там всегда 1 будет
2019-01-09 175242.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
starshoy81
Лейтенант
Сообщения: 530
Зарегистрирован: 05 апр 2016, 23:30
Откуда: Санкт-Петербург
Имя: Илья

MQTT для Arduino, ESP8266, ESP32

Сообщение starshoy81 »

CraCk писал(а): 07 янв 2019, 00:35У меня что на локальном брокере, что на облачном cloudmqtt.com нет таких настроек.
Вот тут посмотрите. Это в mosquitto.conf прописывается. Только при запуске надо указывать, что используется этот файл конфигурации с параметром -с и путём до него. Иначе загружаются дефолтные настройки, а их я нигде в отдельном файле не нашёл, чтобы поправить.
CraCk
Лейтенант
Сообщения: 674
Зарегистрирован: 10 сен 2015, 21:51
Благодарил (а): 1 раз
Поблагодарили: 1 раз

MQTT для Arduino, ESP8266, ESP32

Сообщение CraCk »

User8 писал(а): 09 янв 2019, 15:53[ref]CraCk[/ref], вот так работает, использовать OR на выходе, не самая лучшая идея, там всегда 1 будет

2019-01-09 175242.png
Хоть убейте. Ни как не работает. Может библиотеки почистить? Какие папки по удалять?
starshoy81 писал(а): 09 янв 2019, 21:02Вот тут посмотрите. Это в mosquitto.conf прописывается.
Москито не использую. Терпения не хватило возиться с установкой и настройкой.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
User8
Лейтенант
Сообщения: 341
Зарегистрирован: 12 июн 2017, 14:44
Имя: Евгений

MQTT для Arduino, ESP8266, ESP32

Сообщение User8 »

[ref]CraCk[/ref], а я для кого писал почему не работает, OR нужно заменить на RS. Если не заработает повторите полностью как в посте выше.
CraCk
Лейтенант
Сообщения: 674
Зарегистрирован: 10 сен 2015, 21:51
Благодарил (а): 1 раз
Поблагодарили: 1 раз

MQTT для Arduino, ESP8266, ESP32

Сообщение CraCk »

User8 писал(а): 12 янв 2019, 22:55CraCk, а я для кого писал почему не работает, OR нужно заменить на RS. Если не заработает повторите полностью как в посте выше.
Извиняюсь не тот проект прикрепил. Там все по примеру сделано.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
User8
Лейтенант
Сообщения: 341
Зарегистрирован: 12 июн 2017, 14:44
Имя: Евгений

MQTT для Arduino, ESP8266, ESP32

Сообщение User8 »

[ref]CraCk[/ref], а что там за инверсия стоит на блоке switch? Мне что за вас логику проверять? У меня пример что я опубликовал выше работает, значит проблема либо в брокере, либо в самом скетче, скорее всего второе.
YuriS
Рядовой
Сообщения: 4
Зарегистрирован: 23 дек 2018, 22:49
Имя: Юрий

MQTT для Arduino, ESP8266, ESP32

Сообщение YuriS »

У меня 5 версия блока никак не хочет устанавливать связь с mqttcloud.com Кто сталкивался и решил! В чем может быть проблема?
User8
Лейтенант
Сообщения: 341
Зарегистрирован: 12 июн 2017, 14:44
Имя: Евгений

MQTT для Arduino, ESP8266, ESP32

Сообщение User8 »

[ref]YuriS[/ref], а зачем использовать 5 версию?
CraCk
Лейтенант
Сообщения: 674
Зарегистрирован: 10 сен 2015, 21:51
Благодарил (а): 1 раз
Поблагодарили: 1 раз

MQTT для Arduino, ESP8266, ESP32

Сообщение CraCk »

YuriS писал(а): 13 янв 2019, 01:02У меня 5 версия блока никак не хочет устанавливать связь с mqttcloud.com Кто сталкивался и решил! В чем может быть проблема?
Настройки для основного блока взяты здесь?
[spoiler]
Снимок.JPG
[/spoiler]
User8 писал(а): 12 янв 2019, 23:58CraCk, а что там за инверсия стоит на блоке switch? Мне что за вас логику проверять? У меня пример что я опубликовал выше работает, значит проблема либо в брокере, либо в самом скетче, скорее всего второе.
С логикой все гуд, хоть и криво реализована. Проблема была в настройке брокера.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
starshoy81
Лейтенант
Сообщения: 530
Зарегистрирован: 05 апр 2016, 23:30
Откуда: Санкт-Петербург
Имя: Илья

MQTT для Arduino, ESP8266, ESP32

Сообщение starshoy81 »

CraCk писал(а): 12 янв 2019, 22:34Москито не использую. Терпения не хватило возиться с установкой и настройкой.
С настройками по умолчанию, он нормально работает. Единственно под линуксом надо настроить пользователя москито и его разрешения.
YuriS
Рядовой
Сообщения: 4
Зарегистрирован: 23 дек 2018, 22:49
Имя: Юрий

MQTT для Arduino, ESP8266, ESP32

Сообщение YuriS »

CraCk писал(а): 13 янв 2019, 12:52 [quote=YuriS post_id=62178 time=<a href="tel:1547330574">1547330574</a> user_id=11371]У меня 5 версия блока никак не хочет устанавливать связь с mqttcloud.com Кто сталкивался и решил! В чем может быть проблема?
Настройки для основного блока взяты здесь?
[spoiler]
Снимок.JPG
[/spoiler]
[quote=User8 post_id=62174 time=<a href="tel:1547326691">1547326691</a> user_id=6293]CraCk, а что там за инверсия стоит на блоке switch? Мне что за вас логику проверять? У меня пример что я опубликовал выше работает, значит проблема либо в брокере, либо в самом скетче, скорее всего второе.[/quote]
Настроено так же, не хочет на сайте вообще никаких настроек нет
CraCk
Лейтенант
Сообщения: 674
Зарегистрирован: 10 сен 2015, 21:51
Благодарил (а): 1 раз
Поблагодарили: 1 раз

MQTT для Arduino, ESP8266, ESP32

Сообщение CraCk »

[ref]YuriS[/ref], ага все понятно.
YuriS
Рядовой
Сообщения: 4
Зарегистрирован: 23 дек 2018, 22:49
Имя: Юрий

MQTT для Arduino, ESP8266, ESP32

Сообщение YuriS »

Друзья, отзовитесь у кого работает на 5 версии блоков. Настройки все верные, скомпилировано без ошибок. Главный блок с внешними входами.

Отправлено спустя 1 минуту 34 секунды:
Не подключается на сайт mqttcloud. com на выходе блока статус соединения 0

Отправлено спустя 50 секунд:
В каком направлении копать ума не приложу
pipapsix
Лейтенант
Сообщения: 438
Зарегистрирован: 25 окт 2016, 21:26
Откуда: Волгоградская обл.
Имя: СашкаСаняАлександр
Благодарил (а): 1 раз
Поблагодарили: 4 раза

MQTT для Arduino, ESP8266, ESP32

Сообщение pipapsix »

[ref]YuriS[/ref],
я пользовался 5 версией. потом перешел на 6.
тоже не подключалось пока с нуля не создал проэкт.
и это происходило только с версией с внешними входами.
Попробуйте обычный блок МАЙн.
Timoha
Рядовой
Сообщения: 11
Зарегистрирован: 06 окт 2017, 21:15
Откуда: Москва
Имя: Юрий

MQTT для Arduino, ESP8266, ESP32

Сообщение Timoha »

[ref]YuriS[/ref], попробуйте установить необходимую библиотеку к пятой версии. тестировал шестую версию было так что статус соединения блока Майн был на нуле (ранее установленную библиотеку не обновлял), однако все остальные данные передавались.
Ответить

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость