Logger für MQTT Messwerte

Gast #5329765
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.
Gast #5329951
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.
Angehängte Dateien:
Gast #5330049
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.
Gast #5331303
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.
Gast #5331338
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?
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren