Forum: PC Hard- und Software Logger für MQTT Messwerte


von Johannes S. (Gast)


Lesenswert?

Gibt es einfache Tools zur Trend Darstellung von Werten die per Mqtt 
geliefert werden? Ich habe Sensoren die zB sowas publishen: 
{"Sensor":{"Temp":-178, "Hum":3646}} (werte x 100).
Also sowas wie der serielle Plotter von Arduino, nur für MQTT.

Oh, Shit Autokorrektur, Logger sollte im Betreff stehen :( Gut, konnte 
ich selber korrigieren.

von Schwarzseher (Gast)


Angehängte Dateien:

Lesenswert?

Die typischen Smart-Home-Programme?

Oder collectd&rrdtool (Läuft bei mir auf dem WLan-router mit, OpenWRT, 
kann über LUCI konfiguriert und abgefragt werden)
Sh. erster screenshot. (Ja, der Außen-Sensor liegt den halben Tag in der 
prallen Sonne)

ist aber nicht "einfach" im Sinne von Starten und sofort was sehen.

FHEM geht auch, zieht die Werte aus denselben MQTT-Topics, hab das aber 
noch nicht wirklich konfiguriert.

Openhab gäbs auch noch, das ist aber (wg. Java) zu fett um einfach mit 
auf dem WLan-Router zu laufen, brauchst also einen zusatz-RasPi o.Ä.


Ansonsten, wenn ein Handy/Tablet greifbar ist: Es gibt einige 
"MQTT-Dashboards" die das gewünschte können. "Linear MQTT Dashboard" 
z.B. hat einige Graph-Plot-Optionen.

von Borislav B. (boris_b)


Angehängte Dateien:

Lesenswert?

Ich benutze Grafana (https://grafana.com/) auf einem RaspberryPi.
Das kann richtig viel und sieht schnieke aus ;-)

: Bearbeitet durch User
von Johannes S. (Gast)


Lesenswert?

Danke,
ja es ist für Homeautomation, ich gehe das aber langsam an und wollte 
jetzt noch nicht ein 'fettes' Steuerprogramm installieren. OpenHAB hatte 
ich mal auf dem RaspPi, das ist ein ziemlicher Resourcenfresser und man 
muss sich da auch erst mal reinarbeiten, genau wie FHEM. Deshalb wollte 
ich erstmla quick 'n dirty sehen was mein Sensor so liefert. Für einen 
Sensor im Haus habe ich das schon einem kleinen TFT, aber ich dachte für 
den Funksensor geht sowas erstmal einfacher am PC.
Grafana sieht gut aus, werde ich mir näher ansehen. Ansonsten arbeite 
ich mich weiter in JavaScript/NodeJS ein, MQTT Anbindung sind nur ein 
paar Zeilen, das habe ich schon.

von 50c (Gast)


Lesenswert?

Johannes S. schrieb:
> Grafana sieht gut aus, werde ich mir näher ansehen. Ansonsten arbeite
> ich mich weiter in JavaScript/NodeJS ein, MQTT Anbindung sind nur ein
> paar Zeilen, das habe ich schon.

wenn dir Grafana gefällt und du auch JavaScript/NodeJS ins Spiel 
bringst, dann schaue dir doch auch mal NodeRed (https://nodered.org/) 
an.

von Andreas B. (bitverdreher)


Angehängte Dateien:

Lesenswert?

Kann man in Openwrt mit einem Script erledigen.
SQLite muß installiert sein.
Das letzte, was MQTT sendet, muß in diesem Fall ein "/end" sein.
Anschließend lasse ich eienn Script auf die DB los, der Gnuplot aufruft.

: Bearbeitet durch User
von Antitroller (Gast)


Lesenswert?

Noch zwei leichtgewichtige Alternative zu FHEM & Co.:

https://domoticz.com/
http://iobroker.net/

von Johannes S. (Gast)


Lesenswert?

Gute Tips, zum MQTT-Dashboard habe ich auch etwas gefunden das passt.
Das grössere Kapitel 'Homeautomation' Software braucht etwas mehr Zeit, 
kommt später.
Dann habe ich ein paar Zeile JS (und NodeJS) zusammenbekommen, damit 
erhalte schon ein Array von Temperaturen:
1
console.log('starting mqtt client...');
2
3
var mqtt    = require('mqtt');
4
var client  = mqtt.connect({ port : 1883, host: 'jojosRPi3-1'});
5
var temperatures = new Array;
6
7
client.on('connect', function () {
8
  client.subscribe('RFM/#');
9
});
10
11
client.on('message', function (topic, message) {
12
  // message is already a JSON string
13
  var value = JSON.parse(message);
14
  //console.log(topic + ': ' + message.toString());
15
  temperatures.push(value.Sensor.Temp / 100.0);
16
  console.log(temperatures);
17
});

Ein http server sind ja auch nur ein paar Zeilen in NodeJS und eine 
Seite mit HightCharts oder PlotLy und das Datenarray da rein werfen 
kriege ich auch noch hin. Das ist mir erstmal dirty genug.
Dann machen eben eher die MQTT-Dashboards was ich möchte, für 
langfristig ist natürlich eine Datenbankanbindung besser. Die möchte ich 
auf dem RPi aber nicht auf der kleinen Flashkarte laufen lassen, da habe 
ich keine guten Erfahrungen mit gemacht.

von Schwarzseher (Gast)


Angehängte Dateien:

Lesenswert?

Andreas B. schrieb:
> Kann man in Openwrt mit einem Script erledigen.

Läuft bei mir auch über ein Script, im collectd über das "exec"-Plugin 
eingebunden.

https://collectd.org/wiki/index.php/Plugin:Exec

Beim Einsatz auf Flash-Speicher mit häufigen Updates: Dem Linux-Kernel 
mehr dreckigen Schreib-Cache erlauben, für mehr Lebensdauer:

# sysctl.conf:
vm.dirty_background_ratio = 50
vm.dirty_ratio = 70
vm.dirty_expire_centisecs = 30000
vm.dirty_writeback_centisecs = 6000


Beim Stromausfall sind dann vielleicht ein paar Minuten Temperaturdaten 
verloren, so what?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.