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.
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.
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.
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.
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.
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.
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?