[Модуль] MQTT (mqtt)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Аватара пользователя
dioxin
Сообщения: 175
Зарегистрирован: Вт фев 14, 2017 4:43 pm
Откуда: Иваново
Благодарил (а): 15 раз
Поблагодарили: 46 раз

Re: Предложения по доработке модуля MQTT

Сообщение dioxin » Ср май 24, 2017 12:32 pm

Думаю эти данные хранятся в базе модуля mqtt и достать их можно с помощью запросов к этой базе, но это гемор, проще узнавать время обновления так:
Связать принимаемые данные с новым объектом, при обновлении этого объекта будет запускаться метод который и запишет время приема данных.
Вот пример:
СпойлерПоказать
2017-05-24_12-32-53.jpg
2017-05-24_12-32-53.jpg (46.57 КБ) 6444 просмотра
В методе можно написать нечто подобное:
setGlobal ('Timer.time_read_mqtt', timeNow());
Думаю суть ясна?
За это сообщение автора dioxin поблагодарил:
Gelezako (Ср май 24, 2017 1:00 pm)
Рейтинг: 1.16%
Алиска прописана на Debian 11 | Мой канал на youtube по MajorDomo
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: Предложения по доработке модуля MQTT

Сообщение Gelezako » Ср май 24, 2017 1:00 pm

да, спасибо, сделал через связанный метод, вроде заработало!
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: Предложения по доработке модуля MQTT

Сообщение Gelezako » Пт май 26, 2017 12:39 am

к сожалению работает не так как я ожидал, метод выполняется только тогда когда приходит какое-то значение, а я как раз и хотел использовать время для того что бы определять что с датчиком что-то случилось. Т.е. получается что моя проверка при условии что данные не приходят никогда не сработает если время длитеное время не обновляется. Идеальным вариантом было бы иметь возможность привязать к переменной значение времени, так же как это делается и к значениею с датчика.
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
Аватара пользователя
dioxin
Сообщения: 175
Зарегистрирован: Вт фев 14, 2017 4:43 pm
Откуда: Иваново
Благодарил (а): 15 раз
Поблагодарили: 46 раз

Re: Предложения по доработке модуля MQTT

Сообщение dioxin » Пт май 26, 2017 7:01 am

Ну так проверяем время последнего получения данных и если оно старое(например старее чем стоит отправка данных с датчика), значит с датчика не приходят данные.
Или вместе с данными датчика отправляем на mqtt и время.
Алиска прописана на Debian 11 | Мой канал на youtube по MajorDomo
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: Предложения по доработке модуля MQTT

Сообщение Gelezako » Пт май 26, 2017 12:43 pm

ну вот в том-то и дело что я не могу достучатся до времени последнего получения данных, это поле сейчас нельзя связать со свойством, а можно только значение
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
Аватара пользователя
dioxin
Сообщения: 175
Зарегистрирован: Вт фев 14, 2017 4:43 pm
Откуда: Иваново
Благодарил (а): 15 раз
Поблагодарили: 46 раз

Re: Предложения по доработке модуля MQTT

Сообщение dioxin » Пт май 26, 2017 1:33 pm

Так кто у Вас отсылает данные с датчиков на MQTT сервер?
Я так понимаю majordomo только принимает их с mqtt?
Не зная вашего хозяйства, варианта пока 2:
1- Тупо парсить страницу http://ваш_адрес_majordomo/admin.php?pd=pz_&md=panel&inst=&action=mqtt
2- Тащить данные из базы db_terminal таблица mqtt

Второй вариант предпочтительней... phpmyadmin в помощь
Вот мануал по работе с БД в MD http://majordomo.smartliving.ru/Main/Pr ... ngDatabase
Алиска прописана на Debian 11 | Мой канал на youtube по MajorDomo
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: Предложения по доработке модуля MQTT

Сообщение Gelezako » Пт май 26, 2017 4:09 pm

dioxin писал(а):Так кто у Вас отсылает данные с датчиков на MQTT сервер?
arduino+ethernet shied+MQ2, ну наверно отсылает шилд, сначала на mqtt брокер, а потом МДМ стягивает от брокера данные т.к. подписан на все топики.
dioxin писал(а): Я так понимаю majordomo только принимает их с mqtt?
верно, менять ему без надобности
dioxin писал(а): Не зная вашего хозяйства, варианта пока 2:
1- Тупо парсить страницу http://ваш_адрес_majordomo/admin.php?pd=pz_&md=panel&inst=&action=mqtt
2- Тащить данные из базы db_terminal таблица mqtt

Второй вариант предпочтительней... phpmyadmin в помощь
Вот мануал по работе с БД в MD http://majordomo.smartliving.ru/Main/Pr ... ngDatabase
честно говоря я начал смотреть в другую сторону, ковырял плагин что бы соорудить привязку к свойству, так же как это сделано для значения. Так проще всего, но пока скила пхп не хватает разобрать код Сергея, вот надеюсь что он прочитает тему и даст направление. Для него это дело нескольких минут, а для меня дни :)
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
Аватара пользователя
dioxin
Сообщения: 175
Зарегистрирован: Вт фев 14, 2017 4:43 pm
Откуда: Иваново
Благодарил (а): 15 раз
Поблагодарили: 46 раз

Re: Предложения по доработке модуля MQTT

Сообщение dioxin » Сб май 27, 2017 5:40 am

Ну так пусть ваш arduino+ethernet shied и отправляет время считывания датчика вместе с показаниями на mqtt.
Алиска прописана на Debian 11 | Мой канал на youtube по MajorDomo
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: Предложения по доработке модуля MQTT

Сообщение Gelezako » Сб май 27, 2017 2:47 pm

dioxin писал(а):Ну так пусть ваш arduino+ethernet shied и отправляет время считывания датчика вместе с показаниями на mqtt.
Вы не поняли какую задачу которую я хочу решить. Сейчас попробую описать что бы было понятно в чём моя проблема. Время последнего прихода данных, мне нужно для того что бы понять что датчик нормально работает и данные обновляются. Если значение исправно приходит, то и время постонно обновляется. Т.е. если время, которое отображается в MQTT модуле больше чем текущее время скажем на 5 мин, то это значит что данные с датчика перестали приходить и нужно выдать сообщеньку мол поломалось, надо чинить. Безмысленно мне отсылать время в ардуины, которое и так не дойдёт если что-то произойдёт с датчиком. Так же безсмысленно вешать на метод обработчик т.к. он не сработает если данные перестанут приходить.
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
Аватара пользователя
dioxin
Сообщения: 175
Зарегистрирован: Вт фев 14, 2017 4:43 pm
Откуда: Иваново
Благодарил (а): 15 раз
Поблагодарили: 46 раз

Re: Предложения по доработке модуля MQTT

Сообщение dioxin » Сб май 27, 2017 3:42 pm

Ну так я же давал решение.
Просто в методе который вызывается при обновлении данных дополнительно вставить проверку последнего обновления данных с датчика и дополнительно вызывать этот метод раз в пару минут.
Поняли суть?
Ну или ковырять модуль mqtt. Там нужно найти фунцию отправки данных в базу и сделать дополнительный вывод в объект UPDATED.
Алиска прописана на Debian 11 | Мой канал на youtube по MajorDomo
Ответить