Перейти к содержанию
    

Посоветуйте чем лучше визуализировать mqtt-данные

Есть системка мониторинга дачи, собранная на коленке на базе WiFi модулей ESP8266. К каждому модулю подключен датчик температуры-влажности SI7021, все модули коннектятся к облаку cloudmqtt.com. На смартфоне есть приложение MQTTDash, которое исправно показывает мне значения температур и влажностей в помещениях, в подполе и на улице. Так пользуюсь уже год, отоплением и бойлером управляю модулями Sonoff. Понятно, что через облака мало надёжности, но не частые падения этого всего хозяйства я переживу, система не жизненно важная и ресурсов я на неё потратил очень мало. Стал интересен вопрос долгосрочного мониторинга климата. В связи с этим ищу какие-то общепринятые подходы логгирования и визуализации трендов значений топиков mqttcloud.

Пока кроме MQTT Eplorer для винды ничего не нашёл, но её функционал сильно мал. Хочется иметь логгирование на ПК и визуализацию длительных периодов времени (недели, может и месяцы), с возможностью масштабирования графиков.

Делал ли кто-нибудь такое и если да, то как?

Заранее спасибо за советы.

Изменено пользователем Муравей

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Данные нужно сохранять на сервере в БД после этого можно сделать отображение и обработку или что Вам нужно;

Стандартный софт для этого - InfluxDB + Grafana

Также для  этого можно использовать существующие облачные сервисы с поддержкой mqtt но придется использовать их форматы. 

Изменено пользователем xserg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 10/23/2019 at 12:23 PM, Муравей said:

Заранее спасибо за советы.

Делал и делаю. https://habr.com/ru/post/388343/

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 10/23/2019 at 11:23 AM, Муравей said:

В связи с этим ищу какие-то общепринятые подходы логгирования и визуализации трендов значений топиков mqttcloud.

Пока кроме MQTT Eplorer для винды ничего не нашёл, но её функционал сильно мал. Хочется иметь логгирование на ПК и визуализацию длительных периодов времени (недели, может и месяцы), с возможностью масштабирования графиков.

Делал ли кто-нибудь такое и если да, то как?

Лично я логи MQTT складываю просто в файл на том же Rpi командой mosquitto_sub -v -t /# | xargs -d$'\n' -L1 sh -c 'date "+%D %T.%3N $0"' >> /var/log/mosquitto/mosq.log & Каждый день скриптом файл закрывается, переименовывается и ложится в архив и запись начинается по новой. Надеюсь, что когда-нибудь я обучу по ним нейросеть, которая будет управлять лучше, чем я. Но то влажные мечты и не для визуализации.

Про InfluxDB + Grafana написали, сервер вам все равно нужен будет (вы же не будете винду 24 часа в сутки включенной держать?), поэтому стоит обратить внимание на системы-интеграторы для умного дома - Home Assistant, Openhab и т.д. Там уже все эти логи и тренды с визуализацией интегрированы и настроены (ну или почти :-) ) и вам нужно просто будет прописать ваши топики, чтобы оно начало захватывать данные из MQTT. Это, в принципе, очень общепринятый подход. У меня такой работает.

Если же хотите без своего сервиса, а тоже в облаке, то я знаю только ThingSpeak - вроде как мощная штука от самих разработчиков Матлаба, но вот с бесплатностью проблемы - хотя для домашнего пользования может и хватит. Они MQTT принимают. Если погуглить, то вроде вылазят альтернативы, так что в принципе это тоже можно считать общепринятым. Сам хочу как-нибудь попробовать.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня дома расположился серверок на BananaPi с белым IP. Я использую Blynk сервер, ThingSpeak сервер ну и Web сервер на нем. Blynk удобен мне, т.к. хотелось использовать моблиьное приложение. Там есть простая визуализация данных (в пределах 3 мес.) и элементы управления (всякие кнопки и другие полезные элементы). В ThingSpeak пишу датчики температуры и показания счетчика Меркурий. На тойже BananaPi лежит страничка для визуализации , которую я могу открыть из любого браузера. Код такой странички можно посмотреть здесь https://github.com/neilh10/thingspeakmultichannel-highcharts

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

49 minutes ago, syoma said:

Про InfluxDB + Grafana написали, сервер вам все равно нужен будет (вы же не будете винду 24 часа в сутки включенной держать?), поэтому стоит обратить внимание на системы-интеграторы для умного дома - Home Assistant, Openhab и т.д.

Это явно не под сценарий TC. InfluxDB слишком узкозаточенная база и не годится для общего применения. 

cloudmqtt.com работает на основе сервера Mosquitto.
Сервер Mosquitto отлично работает под виндой и таки 24 часа в сутки. Переплюнет любого линукса. 
Также Mosquitto работает и локально под виндой на ПК
Выбор базы данных однако задача ответственная.
Поскольку в cloudmqtt.com данные гуляют в  JSON кодировке, то и базу надо выбирать для которой  JSON нативный и это будет https://www.mongodb.com/
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

43 minutes ago, AlexandrY said:

Выбор базы данных однако задача ответственная.
Поскольку в cloudmqtt.com данные гуляют в  JSON кодировке, то и базу надо выбирать для которой  JSON нативный и это будет https://www.mongodb.com/

С точки зрения колки дров или пушки по воробьям - один хрен. Ну mongo, так mongo. Три строчки переписать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

58 minutes ago, syoma said:

С точки зрения колки дров или пушки по воробьям - один хрен. Ну mongo, так mongo. Три строчки переписать.

А теперь тремя строчками сделайте масштабирование времени в openHAB. :sarcastic_hand:

Не, openHAB эт для поиграться и забыть.   

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

31 minutes ago, AlexandrY said:

А теперь тремя строчками сделайте масштабирование времени в openHAB. :sarcastic_hand:

Можете сказать конкретнее, что вы имеете ввиду? Визуалка там встроенная и вообще ничего писать не надо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Just now, syoma said:

Можете сказать конкретнее, что вы имеете ввиду? Визуалка там встроенная и вообще ничего писать не надо.

Масштабирование времени эт когда пишите каждую минуту, а база умеет автоматически конвертировать эти данные по часам, дням, месяцам и т.д.
А не напрямую все данные вливать в график чтобы он сам разрулили агрегацию и прореживание.  
Чисто вопрос быстродействия. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, AlexandrY said:

Масштабирование времени эт когда пишите каждую минуту, а база умеет автоматически конвертировать эти данные по часам, дням, месяцам и т.д.
А не напрямую все данные вливать в график чтобы он сам разрулили агрегацию и прореживание.  
Чисто вопрос быстродействия. 

Не знаю, но не думаю, что для таких проектов это важно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 10/23/2019 at 11:23 AM, Муравей said:

Пока кроме MQTT Eplorer для винды ничего не нашёл, но её функционал сильно мал. Хочется иметь логгирование на ПК и визуализацию длительных периодов времени (недели, может и месяцы), с возможностью масштабирования графиков.

Делал ли кто-нибудь такое и если да, то как?

Кстати, как вариант - поставить RPi, на нем NodeRED, подконнектиться к CloudMQTT. Там есть дашборды, логи и визуализация тоже.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...