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.
Ich benutze Grafana (https://grafana.com/) auf einem RaspberryPi. Das kann richtig viel und sieht schnieke aus ;-)
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.