MQTT для новичков

С чего начать и мелкие шаги к реализации

Контроллеры на основе ESP8266
Аватара пользователя
Kotafey
Лейтенант
Сообщения: 311
Зарегистрирован: 18.07.2018{, 15:03}
Репутация: 21
Откуда: Геленджик
Имя: Константин

MQTT для новичков

#41

Сообщение Kotafey » 20.07.2018{, 12:18}

Golan писал(а):
20.07.2018{, 10:36}
После танцев с подключением и прошивкой ESP-01, никак не соображу как в программе сделать чтобы при нажатии кнопки однократно уходило ON, а при отпускании OFF, то есть как в приложении на смартфоне. И счетчик пробовал и триггеры с переключателями ни фига, к МОТТ конечно это не относится, но чтобы не плодить темы. "Проект" :smile171: внизу
СпойлерПоказать
1.jpg
Отправлено спустя 5 минут 21 секунду:
Сегодня у себя на форуме мне задали вопрос, ответить я не смог, знаниЁФФ маловато еще.
Почему нельзя клиенту непосредственно обращаться к publisher?
Просто представь такую картину
У тебя в каждой комнате есть монитор, на котором отображаются все датчики которые есть по дому. Да ещё скажем, ты можешь посмотреть что было неделю назад. Все они берут информацию с брокера. А тот в свою очередь берёт информацию с датчиков и сохраняет историю. Все мониторы подписаны так, что должны в обязательном порядке получать информацию. Значит брокер должен её хранить до тех пор, пока не передаст. А опрашивает он датчики какие-то раз в секунду, а какие-то раз в минуту. И вот у одного монитора села батарейка. Соответственно он не отписался, а просто пропал. И брокер начинает для него информацию копить. Надолго его памяти хватит?
Так почему бы тому, кому нужна информация, не обращаться за ней непосредственно к датчику?
По вопросу на вашем форуме. Немного не правильно описано представление работы брокера. Представим, что какое либо устройство опубликовало "топик". Брокер отсылает данные этого топика всем подписчикам которые в сети. Если появится новый подписчик, то брокер ничего ему не отправит. Но вы заметите, что на облачных сервисах не так. Да, я лично проверял, спустя несколько месяцев включаю еспэшку и она загружает данные. Так что же делать локально?
Решений несколько. Костыльное, публиковать данные по таймеру. Но как только публикатор замолчит, вновь прибывшие подписчики ничего не получат.
Еще одно решение, в блоках которые я выкладывал ранее на этом форуме есть функция перезапрашивать у брокера последние данные. Но и брокер должен это уметь и быть правильно настроен.
Ну и еще, существуют версии протокола QoS0 , QoS1, QoS2 и другие.

Anydy

MQTT для новичков

#42

Сообщение Anydy » 20.07.2018{, 12:23}

Kotafey писал(а):
20.07.2018{, 11:58}
Длительности импульса р триггера может не хватить для публикации.
Что вы такое говорите? Длительность импульса может быть хоть 0.00001 мкс, главное что бы вызвалась команда публикации. Так что это тут не при чем.

Аватара пользователя
Golan
Капитан
Сообщения: 827
Зарегистрирован: 26.11.2017{, 23:18}
Репутация: 77
Откуда: Деревня, 98 домов в Мордовии
Имя: Владимир
Контактная информация:

MQTT для новичков

#43

Сообщение Golan » 20.07.2018{, 12:27}

Kotafey писал(а):
20.07.2018{, 12:18}
QoS0 , QoS1, QoS2
Читал мельком, не было цели подробнее узнать.
Вопрос был в другом у моего коллеги, зачем вообще нужен брокер, когда можно той же кнопке отослать данные сразу получателю?
Я в принципе понимаю зачем, только вот в словах сбульбулировать не могу.
Добро не ценится в современном мире, люди от него наглеют!

Anydy

MQTT для новичков

#44

Сообщение Anydy » 20.07.2018{, 12:36}

У меня в блоках пока что не реализована возможность отправки сообщений с QOS1 или QOS2, но это не проблема включить.
Смысл этого в том что брокер будет постоянно слать эти сообщения клиенту, пока клиент не отчитается о получении данного сообщения.
Я тоже не профессионал в этом протоколе, обьясняю как сам понял)))

Аватара пользователя
Kotafey
Лейтенант
Сообщения: 311
Зарегистрирован: 18.07.2018{, 15:03}
Репутация: 21
Откуда: Геленджик
Имя: Константин

MQTT для новичков

#45

Сообщение Kotafey » 20.07.2018{, 12:40}

Anydy писал(а):
20.07.2018{, 12:23}
Kotafey писал(а):
20.07.2018{, 11:58}
Длительности импульса р триггера может не хватить для публикации.
Что вы такое говорите? Длительность импульса может быть хоть 0.00001 мкс, главное что бы вызвалась команда публикации. Так что это тут не при чем.
Приму к сведению. Все время забываю, что это не эл.схема, а программа.

Anydy

MQTT для новичков

#46

Сообщение Anydy » 20.07.2018{, 12:41}

Golan писал(а):
20.07.2018{, 12:27}
Вопрос был в другом у моего коллеги, зачем вообще нужен брокер, когда можно той же кнопке отослать данные сразу получателю?
Брокер это посредник, клиент отправил сообщение другому клиенту - пока последний не в сети - сообщение лежит на брокере, клиент включился - сообщение ушло. Как то так))

Аватара пользователя
Golan
Капитан
Сообщения: 827
Зарегистрирован: 26.11.2017{, 23:18}
Репутация: 77
Откуда: Деревня, 98 домов в Мордовии
Имя: Владимир
Контактная информация:

MQTT для новичков

#47

Сообщение Golan » 20.07.2018{, 12:46}

А если клиент всегда в сети, то в этом случае, брокер бесполезный посредник?
Добро не ценится в современном мире, люди от него наглеют!

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

MQTT для новичков

#48

Сообщение Sancho » 20.07.2018{, 12:50}

Golan писал(а):
20.07.2018{, 12:46}
А если клиент всегда в сети, то в этом случае, брокер бесполезный посредник?
Я тоже хотел быть в курсе, но сейчас не в сети. А сосед хотел знать только содержание влаги, сейчас не в состоянии принять сообщение. :)

Отправлено спустя 47 секунд:
Подписчиков, кол-во, на топик не ограничено.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Anydy

MQTT для новичков

#49

Сообщение Anydy » 20.07.2018{, 12:51}

Golan писал(а):
20.07.2018{, 12:46}
А если клиент всегда в сети, то в этом случае, брокер бесполезный посредник?
Ну протокол MQTT подразумевается в работе только клиент - брокер.
Публикация сообщений брокеру может быть "без подтверждения" и С "подтверждением"

Аватара пользователя
Kotafey
Лейтенант
Сообщения: 311
Зарегистрирован: 18.07.2018{, 15:03}
Репутация: 21
Откуда: Геленджик
Имя: Константин

MQTT для новичков

#50

Сообщение Kotafey » 20.07.2018{, 12:54}

Anydy писал(а):
20.07.2018{, 12:36}
У меня в блоках пока что не реализована возможность отправки сообщений с QOS1 или QOS2, но это не проблема включить.
Смысл этого в том что брокер будет постоянно слать эти сообщения клиенту, пока клиент не отчитается о получении данного сообщения.
Я тоже не профессионал в этом протоколе, обьясняю как сам понял)))
Правильно. QOS это качество обслуживания.

Аватара пользователя
Golan
Капитан
Сообщения: 827
Зарегистрирован: 26.11.2017{, 23:18}
Репутация: 77
Откуда: Деревня, 98 домов в Мордовии
Имя: Владимир
Контактная информация:

MQTT для новичков

#51

Сообщение Golan » 20.07.2018{, 12:56}

Давайте по другому.
Есть лампочка в одной комнате, она всегда в вайфай сидит, это так упрощенно, в другой комнате кнопка включения, тоже всегда в сети.
Можно же данные о нажатии кнопки напрямую передать к лампочке, без всяких брокеров, ну теоретически?
Добро не ценится в современном мире, люди от него наглеют!

Аватара пользователя
Kotafey
Лейтенант
Сообщения: 311
Зарегистрирован: 18.07.2018{, 15:03}
Репутация: 21
Откуда: Геленджик
Имя: Константин

MQTT для новичков

#52

Сообщение Kotafey » 20.07.2018{, 12:58}

Если при отправке данных не установлен флаг Retain, то брокер рассылает всем подписчикам данные и стирает их. Дальше этот топик пуст до новой публикации.

Отправлено спустя 2 минуты 18 секунд:
Golan писал(а):
20.07.2018{, 12:56}
Давайте по другому.
Есть лампочка в одной комнате, она всегда в вайфай сидит, это так упрощенно, в другой комнате кнопка включения, тоже всегда в сети.
Можно же данные о нажатии кнопки напрямую передать к лампочке, без всяких брокеров, ну теоретически?
Может. Через веб сервер, но нужен протокол, TCP, MODBASE, MQTT и т.п

Отправлено спустя 4 минуты 50 секунд:
Golan писал(а):
20.07.2018{, 12:56}
Давайте по другому.
Есть лампочка в одной комнате, она всегда в вайфай сидит, это так упрощенно, в другой комнате кнопка включения, тоже всегда в сети.
Можно же данные о нажатии кнопки напрямую передать к лампочке, без всяких брокеров, ну теоретически?
Представте, вам нужно доставить груз(данные) из точки А в точку Б. Дорога между точками WiFi. Можно в руках, можно тачкой, можно машиной. Транспорт это и есть протоколы. А можно катапультой? Нет. Дорога это WiFi.

Отправлено спустя 41 секунду:
RETAIN – при публикации данных с установленным флагом retain, брокер сохранит его. При следующей подписке на этот топик брокер незамедлительно отправит сообщение с этим флагом.

Аватара пользователя
Golan
Капитан
Сообщения: 827
Зарегистрирован: 26.11.2017{, 23:18}
Репутация: 77
Откуда: Деревня, 98 домов в Мордовии
Имя: Владимир
Контактная информация:

MQTT для новичков

#53

Сообщение Golan » 20.07.2018{, 13:06}

Воот, то есть нужно рассматривать преимущества и недостатки этих протоколов, нужно в инете поискать может есть таблицы сравнения или что то подобное
Добро не ценится в современном мире, люди от него наглеют!

Anydy

MQTT для новичков

#54

Сообщение Anydy » 20.07.2018{, 13:06}

Kotafey писал(а):
20.07.2018{, 13:00}
Если при отправке данных не установлен флаг Retain, то брокер рассылает всем подписчикам данные и стирает их. Дальше этот топик пуст до новой публикации.
Да, верно!
Golan писал(а):
20.07.2018{, 12:56}
Есть лампочка в одной комнате, она всегда в вайфай сидит, это так упрощенно, в другой комнате кнопка включения, тоже всегда в сети.
Можно же данные о нажатии кнопки напрямую передать к лампочке, без всяких брокеров, ну теоретически?
Конечно можно, используйте другие протоколы!

Аватара пользователя
Kotafey
Лейтенант
Сообщения: 311
Зарегистрирован: 18.07.2018{, 15:03}
Репутация: 21
Откуда: Геленджик
Имя: Константин

MQTT для новичков

#55

Сообщение Kotafey » 20.07.2018{, 13:10}

Третьи сутки работает брокер на есп. Два раза по аварии выключали эл.энергию. Все штатно.

Аватара пользователя
Golan
Капитан
Сообщения: 827
Зарегистрирован: 26.11.2017{, 23:18}
Репутация: 77
Откуда: Деревня, 98 домов в Мордовии
Имя: Владимир
Контактная информация:

MQTT для новичков

#56

Сообщение Golan » 20.07.2018{, 13:13}

Вам бы тему сделать отдельно по этому и подробнее рассказать что там куды тыкать и пихать :smile171: Андрей говорить это утопия, мне лишь бы посидеть и по бульбулировать, интересно же.
Добро не ценится в современном мире, люди от него наглеют!

Anydy

MQTT для новичков

#57

Сообщение Anydy » 20.07.2018{, 13:16}

Kotafey писал(а):
20.07.2018{, 13:10}
Третьи сутки работает брокер на есп. Два раза по аварии выключали эл.энергию. Все штатно.
Ну это конечно хорошо, но не думаю что брокер на ESP будет работать стабильно всегда.....
И какой смысл? Сэкономить тыщу рублей и потерять стабильность?

Отправлено спустя 1 минуту 22 секунды:
Golan писал(а):
20.07.2018{, 13:13}
Вам бы тему сделать отдельно по этому и подробнее рассказать что там куды тыкать и пихать Андрей говорить это утопия, мне лишь бы посидеть и по бульбулировать, интересно же.
Не совсем понял про что ты? Предлагай! Сделаю!

Аватара пользователя
Kotafey
Лейтенант
Сообщения: 311
Зарегистрирован: 18.07.2018{, 15:03}
Репутация: 21
Откуда: Геленджик
Имя: Константин

MQTT для новичков

#58

Сообщение Kotafey » 20.07.2018{, 13:18}

У кого нибудь греются еспэшки? Ощутимо градусов 45.

Аватара пользователя
Golan
Капитан
Сообщения: 827
Зарегистрирован: 26.11.2017{, 23:18}
Репутация: 77
Откуда: Деревня, 98 домов в Мордовии
Имя: Владимир
Контактная информация:

MQTT для новичков

#59

Сообщение Golan » 20.07.2018{, 13:19}

Anydy писал(а):
20.07.2018{, 13:17}
Не совсем понял про что ты? Предлагай! Сделаю!
Да я не тебе, а Константину

Отправлено спустя 1 минуту 7 секунд:
Kotafey писал(а):
20.07.2018{, 13:18}
У кого нибудь греются еспэшки? Ощутимо градусов 45.
У меня сутки стоят две, выше 36 точно, но не горячие.
Добро не ценится в современном мире, люди от него наглеют!

Аватара пользователя
Kotafey
Лейтенант
Сообщения: 311
Зарегистрирован: 18.07.2018{, 15:03}
Репутация: 21
Откуда: Геленджик
Имя: Константин

MQTT для новичков

#60

Сообщение Kotafey » 20.07.2018{, 13:21}

Anydy писал(а):
20.07.2018{, 13:17}
Kotafey писал(а):
20.07.2018{, 13:10}
Третьи сутки работает брокер на есп. Два раза по аварии выключали эл.энергию. Все штатно.
Ну это конечно хорошо, но не думаю что брокер на ESP будет работать стабильно всегда.....
И какой смысл? Сэкономить тыщу рублей и потерять стабильность?

Отправлено спустя 1 минуту 22 секунды:
Golan писал(а):
20.07.2018{, 13:13}
Вам бы тему сделать отдельно по этому и подробнее рассказать что там куды тыкать и пихать Андрей говорить это утопия, мне лишь бы посидеть и по бульбулировать, интересно же.
Не совсем понял про что ты? Предлагай! Сделаю!
Вот я и узнаю, сколько он будет работать.

Ответить

Вернуться в «ESP8266»