Страница 10 из 33
MQTT для Arduino, ESP8266, ESP32
Добавлено: 06 янв 2019, 17:38
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
MQTT для Arduino, ESP8266, ESP32
Добавлено: 07 янв 2019, 00:35
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?
MQTT для Arduino, ESP8266, ESP32
Добавлено: 07 янв 2019, 04:23
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 не нужна проверка доставки.
MQTT для Arduino, ESP8266, ESP32
Добавлено: 07 янв 2019, 13:35
pipapsix
Что то опять все сломалось, не подключается к брокеру последние блоки.
А библиотеки когда менялись,?
У меня и со старыми скомпилировалось все и с новыми.
Не ошибок не вылезло и все равно не работать.
Отправлено спустя 31 минуту 31 секунду:
АААААААААААААА.
Опять с блоком с входами беда.
Без входов работает все.
Не протестил и выложил?)) опять?
пол часа мучаюсь сижу)
MQTT для Arduino, ESP8266, ESP32
Добавлено: 09 янв 2019, 13:06
CraCk
User8 писал(а): 07 янв 2019, 04:23Переделал метод подписки, щас обновлю блоки в первом посте.
Проверил, дальше не работает
[spoiler]
Снимок.JPG
[/spoiler]
MQTT для Arduino, ESP8266, ESP32
Добавлено: 09 янв 2019, 15:53
User8
[ref]CraCk[/ref], вот так работает, использовать OR на выходе, не самая лучшая идея, там всегда 1 будет
2019-01-09 175242.png
MQTT для Arduino, ESP8266, ESP32
Добавлено: 09 янв 2019, 21:02
starshoy81
CraCk писал(а): 07 янв 2019, 00:35У меня что на локальном брокере, что на облачном cloudmqtt.com нет таких настроек.
Вот
тут посмотрите. Это в mosquitto.conf прописывается. Только при запуске надо указывать, что используется этот файл конфигурации с параметром -с и путём до него. Иначе загружаются дефолтные настройки, а их я нигде в отдельном файле не нашёл, чтобы поправить.
MQTT для Arduino, ESP8266, ESP32
Добавлено: 12 янв 2019, 22:34
CraCk
User8 писал(а): 09 янв 2019, 15:53[ref]CraCk[/ref], вот так работает, использовать OR на выходе, не самая лучшая идея, там всегда 1 будет
2019-01-09 175242.png
Хоть убейте. Ни как не работает. Может библиотеки почистить? Какие папки по удалять?
starshoy81 писал(а): 09 янв 2019, 21:02Вот тут посмотрите. Это в mosquitto.conf прописывается.
Москито не использую. Терпения не хватило возиться с установкой и настройкой.
MQTT для Arduino, ESP8266, ESP32
Добавлено: 12 янв 2019, 22:55
User8
[ref]CraCk[/ref], а я для кого писал почему не работает, OR нужно заменить на RS. Если не заработает повторите полностью как в посте выше.
MQTT для Arduino, ESP8266, ESP32
Добавлено: 12 янв 2019, 23:02
CraCk
User8 писал(а): 12 янв 2019, 22:55CraCk, а я для кого писал почему не работает, OR нужно заменить на RS. Если не заработает повторите полностью как в посте выше.
Извиняюсь не тот проект прикрепил. Там все по примеру сделано.
MQTT для Arduino, ESP8266, ESP32
Добавлено: 12 янв 2019, 23:58
User8
[ref]CraCk[/ref], а что там за инверсия стоит на блоке switch? Мне что за вас логику проверять? У меня пример что я опубликовал выше работает, значит проблема либо в брокере, либо в самом скетче, скорее всего второе.
MQTT для Arduino, ESP8266, ESP32
Добавлено: 13 янв 2019, 01:02
YuriS
У меня 5 версия блока никак не хочет устанавливать связь с mqttcloud.com Кто сталкивался и решил! В чем может быть проблема?
MQTT для Arduino, ESP8266, ESP32
Добавлено: 13 янв 2019, 01:41
User8
[ref]YuriS[/ref], а зачем использовать 5 версию?
MQTT для Arduino, ESP8266, ESP32
Добавлено: 13 янв 2019, 12:52
CraCk
YuriS писал(а): 13 янв 2019, 01:02У меня 5 версия блока никак не хочет устанавливать связь с mqttcloud.com Кто сталкивался и решил! В чем может быть проблема?
Настройки для основного блока взяты здесь?
[spoiler]
Снимок.JPG
[/spoiler]
User8 писал(а): 12 янв 2019, 23:58CraCk, а что там за инверсия стоит на блоке switch? Мне что за вас логику проверять? У меня пример что я опубликовал выше работает, значит проблема либо в брокере, либо в самом скетче, скорее всего второе.
С логикой все гуд, хоть и криво реализована. Проблема была в настройке брокера.
MQTT для Arduino, ESP8266, ESP32
Добавлено: 13 янв 2019, 20:51
starshoy81
CraCk писал(а): 12 янв 2019, 22:34Москито не использую. Терпения не хватило возиться с установкой и настройкой.
С настройками по умолчанию, он нормально работает. Единственно под линуксом надо настроить пользователя москито и его разрешения.
MQTT для Arduino, ESP8266, ESP32
Добавлено: 14 янв 2019, 00:14
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]
Настроено так же, не хочет на сайте вообще никаких настроек нет
MQTT для Arduino, ESP8266, ESP32
Добавлено: 14 янв 2019, 01:57
CraCk
[ref]YuriS[/ref], ага все понятно.
MQTT для Arduino, ESP8266, ESP32
Добавлено: 15 янв 2019, 21:49
YuriS
Друзья, отзовитесь у кого работает на 5 версии блоков. Настройки все верные, скомпилировано без ошибок. Главный блок с внешними входами.
Отправлено спустя 1 минуту 34 секунды:
Не подключается на сайт mqttcloud. com на выходе блока статус соединения 0
Отправлено спустя 50 секунд:
В каком направлении копать ума не приложу
MQTT для Arduino, ESP8266, ESP32
Добавлено: 15 янв 2019, 22:09
pipapsix
[ref]YuriS[/ref],
я пользовался 5 версией. потом перешел на 6.
тоже не подключалось пока с нуля не создал проэкт.
и это происходило только с версией с внешними входами.
Попробуйте обычный блок МАЙн.
MQTT для Arduino, ESP8266, ESP32
Добавлено: 15 янв 2019, 23:14
Timoha
[ref]YuriS[/ref], попробуйте установить необходимую библиотеку к пятой версии. тестировал шестую версию было так что статус соединения блока Майн был на нуле (ранее установленную библиотеку не обновлял), однако все остальные данные передавались.