Страница 1 из 3
Взаимодействие с Mqtt
Добавлено: Пн апр 24, 2017 10:13 pm
ZhenyaRUS39
Добрый день. Делаю проект в котором куча датчиков esp8266 шлют по mqtt свои состояния и данные раз в 10 минут на сервер MD с mosquitto и потом засыпают, но должны уметь и принимать данные с сервера.
Проблема в том, что если данные на сервере публикуются в те моменты, пока датчики офлайн, то датчики эти данные не получат (получают только те, что онлайн в момент публикации на сервере). Как можно решить эту проблему? Может кто знает готовые варианты? Вариант городить сложную систему публикация/ответ(подтверждение приёма), как-то неправильно, да и на каждый датчик городить придётся.
Или проще всё на post и html переделать?
Re: Взаимодействие с Mqtt
Добавлено: Вт апр 25, 2017 12:08 am
olehs
Retain включили для этих датчиков в настройках MQTT в MD?
Re: Взаимодействие с Mqtt
Добавлено: Вт апр 25, 2017 8:08 am
ZhenyaRUS39
Дпде и не знал про такую функцию, вечером попробую, спасибо.
Re: Взаимодействие с Mqtt
Добавлено: Вт апр 25, 2017 1:17 pm
Cracken090
Доброго времени суток! Настраиваю MQTT, но столкнулся с проблемой
Суть проблемы: с mqtt-spy отправляю данные. Данные приходят в majordomo, но ответа (эхо) нет.
Подскажите пожалуйста в чем может быть проблема?
Re: Взаимодействие с Mqtt
Добавлено: Вт апр 25, 2017 9:59 pm
ZhenyaRUS39
Не нашёл Retain в mqtt, где её искать?
Re: Взаимодействие с Mqtt
Добавлено: Вт апр 25, 2017 10:25 pm
olehs
ZhenyaRUS39 писал(а):Не нашёл Retain в mqtt, где её искать?
В настройках каждого конкретного датчика
Re: Взаимодействие с Mqtt
Добавлено: Ср апр 26, 2017 8:11 am
xneo
Как назначить выполнение методов объекта (привязанного к топику) при изменении статуса после получения нового значения?
Подробнее:
Имеется Relay1 у которого есть свойство status которое обновляется при обновлении топика Devices/Relay1. Так же у него есть методы turnOn и turnOff в которых выполняются команды.
При нажатии на объект на сцене или при переключении через меню всё корректно отрабатывает. Но вот при смене статуса (после получения новых данных из топика Devices/Relay1) - на сцене визуализация выполняется (меняется на вкл или выкл в зависимости от статуса), а методы не отрабатывают.
Где можно найти назначение статуса объекту при получении нового сообщения в топике? Я бы туда прикрутил бы refresh (в родительском классе описан этот метод и он выполняет другие в зависимости от статуса).
Ну или может быть есть какой то другой вариант взаимодействия?
Re: Взаимодействие с Mqtt
Добавлено: Ср апр 26, 2017 11:53 am
ZhenyaRUS39
olehs писал(а):ZhenyaRUS39 писал(а):Не нашёл Retain в mqtt, где её искать?
В настройках каждого конкретного датчика
Можете подробнее рассказать.
В топиках только такие настройки.
Сами датчики на esp, и понять не могу где включается retain.
Re: Взаимодействие с Mqtt
Добавлено: Ср апр 26, 2017 11:57 am
olehs
Все верно. Это я неправильно выразился. Ищите в настройках топика.

- Безымянный.jpg (107.51 КБ) 6637 просмотров
Re: Взаимодействие с Mqtt
Добавлено: Ср апр 26, 2017 12:12 pm
xneo
xneo писал(а):Как назначить выполнение методов объекта (привязанного к топику) при изменении статуса после получения нового значения?
Подробнее:
Имеется Relay1 у которого есть свойство status которое обновляется при обновлении топика Devices/Relay1. Так же у него есть методы turnOn и turnOff в которых выполняются команды.
При нажатии на объект на сцене или при переключении через меню всё корректно отрабатывает. Но вот при смене статуса (после получения новых данных из топика Devices/Relay1) - на сцене визуализация выполняется (меняется на вкл или выкл в зависимости от статуса), а методы не отрабатывают.
Где можно найти назначение статуса объекту при получении нового сообщения в топике? Я бы туда прикрутил бы refresh (в родительском классе описан этот метод и он выполняет другие в зависимости от статуса).
Ну или может быть есть какой то другой вариант взаимодействия?
Временно сделал не самый лучший костыль - добавил в onNewMinute проверку вызов метода refresh у всех объектов класса реле. Но во первых это большая задержка, а я точно знаю что есть обработчик который реагирует на получение сообщений мгновенно. И во вторых это неправильно на мой взгляд и загромождает код.