Jump to content
    

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

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

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

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

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

Edited by Муравей

Share this post


Link to post
Share on other sites

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

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

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

Edited by xserg

Share this post


Link to post
Share on other sites

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 принимают. Если погуглить, то вроде вылазят альтернативы, так что в принципе это тоже можно считать общепринятым. Сам хочу как-нибудь попробовать.

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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/
 

Share this post


Link to post
Share on other sites

43 minutes ago, AlexandrY said:

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

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

Share this post


Link to post
Share on other sites

58 minutes ago, syoma said:

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

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

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

Share this post


Link to post
Share on other sites

31 minutes ago, AlexandrY said:

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

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

Share this post


Link to post
Share on other sites

Just now, syoma said:

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

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

Share this post


Link to post
Share on other sites

1 hour ago, AlexandrY said:

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...