hallo, ich habe ein funktionierendes shell-script, das mit alle 2 Sekunden Messwerte im JSON-Format liefert ( {"name1":wert1;"name2":wert2;....} ) was ist aus Eurer Sicht der einfachste Weg mit dem RasPi (Installationsaufwand, Lernaufwand, ..), um aus diesen Zahlen ein LinienDiagramm zu erzeugen, das sich alle 2 Sekunden ändert/aktualisiert? (also z.B. so eine "Fieberkurve! wie der Aktienindex) Jede Idee ist willkommen..
danke, jetzt hab ich erstmal was zu lesen.. wenn mam bisher weder gnuplot noch python benutzt hat - womit ist man schneller am Ziel?
Martin schrieb: > danke, jetzt hab ich erstmal was zu lesen.. > > wenn mam bisher weder gnuplot noch python benutzt hat - womit ist man > schneller am Ziel? gnuplot
Martin schrieb: > wenn mam bisher weder gnuplot noch python benutzt hat - womit ist man > schneller am Ziel? Python. Du hast gleich eine komfortable und sehr mächtige Scriptsprache dabei mit der Du die Daten bei Bedarf vielleicht noch aufbereiten kannst und Du kannst auch die ganze Geschichte mit dem automatischen Aktualisieren und was sonst noch Benutzerinterface-mäßig ablaufen soll ebenfalls bequem damit erschlagen. Python als Werkzeug gehört eh in jeden gut sortierten Werkzeugkasten. Mit Gnuplot alleine kommt man auch schon ziemlich weit aber früher oder später kommt der Tag da willst Du noch ein biischen scripten und dann ist eh noch zusätzlich ne Scriptsprache fällig.
:
Bearbeitet durch User
Bernd K. schrieb: > Mit Gnuplot alleine kommt man auch schon ziemlich weit aber früher oder > später kommt der Tag da willst Du noch ein biischen scripten und dann > ist eh noch zusätzlich ne Scriptsprache fällig. Dir ist schon aufgefallen, dass er schon eine Skriptsprache am Start hat? Martin schrieb: > ich habe ein funktionierendes shell-script Man muss nicht der Ideologie willen für jeden Kleinkram noch python in den Eintopf werfen.
danke - alle Beiträge sind sehr hilfreich für mich. In der Tat muss ich ja die Werte erst noch aufbereichten für gnuplot. Vielleicth nehme ich beides.
Jack schrieb: > Dir ist schon aufgefallen, dass er schon eine Skriptsprache am Start > hat? Naja zur Ehrenrettung: Dier Werte mit ced oder awk aus JSON rauszufummeln, fällt mir auch nicht ganz leicht. Da nehme ich gerne eine Sprache, wo ich etwas mehr schreiben muss, aber die sich besser liest.
Axel S. schrieb: > Martin schrieb: >> was ist aus Eurer Sicht der einfachste Weg > > rrdtool Hi, wollte ich auch gerade schreiben. Mein Raspi macht die Temp-Erfassung und auf einem alten Cubie werden die Grafiken erzeugt und per nginx ausgeliefert. Für Python gibt es eine rrdtool Library,die kann ein Update auf dir rrd-dbs und dann auch die Grafiken erzeugen. Sh. : https://oss.oetiker.ch/rrdtool/prog/rrdpython.en.html Gruß Ingo
Martin schrieb: > Jack schrieb: >> Dir ist schon aufgefallen, dass er schon eine Skriptsprache am Start >> hat? > > Naja zur Ehrenrettung: Dier Werte mit ced oder awk aus JSON > rauszufummeln, fällt mir auch nicht ganz leicht. Da nehme ich gerne eine > Sprache, wo ich etwas mehr schreiben muss, aber die sich besser liest. Python mit plotly.js war auch unter dem Gesichtspunkt gedacht, dass du deine Daten vielleicht nicht auf einem Bildschirm darstellen willst der am Raspberry hängt, sondern die über ein Webinterface anschauen können möchtest. Da bietet sich eben plotly.js als leichtgewichtiges Plot-Backend an was sowieso im Browser läuft und auf häufige Aktualisierungen optimiert ist. Den Webserver gibt es bei Python quasi auch inklusive und auch sonst gibt es viele nützliche Bibliotheken, z.B. numpy für Array- und Matrizenrechnung bzw. Datenmanipulation im Allgemeinen. Wenn du Diagramme für ne Doktorarbeit produzieren willst würde ich eher zu Matplotlib oder eben Gnuplot greifen aber das war ja nicht gefragt. Als alternative zu plotly.js gibt es noch bokeh aber das ist nicht so performant. Kannst du dir aber auch mal anschauen. Ein weiteres sehr performantes Plot-Framework ist GR. Das kann wenn man will auch passendes Javascript für den Browser generieren und eine Python-Api hat es auch.
Ich denke du meinst über einen Webserver? Ich hab da schon sehr performante Sites gebaut (WebOszi) mit Flot/PHP/Ajax. Die Werte kamen von einem C-Programm vom Raspi.
zur darstellung im browser: https://jquery.com/ mit http://dmitrybaranovskiy.github.io/raphael/ oder https://developers.google.com/chart/ verheiraten. zusammen mit einem script, das die ajax-aufrufe beantwortet sollte das ganze in unter 100 zeilen (gesamt) machbar sein
So etwas mache ich im Moment auch in der Arbeit. Ich baue mir gerade Beschleunigungskurven mit PyPlot zusammen. Die Messdaten habe ich auch im JSON Format (.txt Datei). Das einlesen und Parsen sind um die fünf Zeilen. Das gane werden denke ich keine 15 Zeilen Code und man bekommt noch schicke Zusatzfeatures wie Zoom und Bild-Export...
Bernhard R. schrieb: > Das einlesen und Parsen sind um die fünf Zeilen. Das gane werden denke > ich keine 15 Zeilen Code und man bekommt noch schicke Zusatzfeatures wie > Zoom und Bild-Export... Die 5 Zeilen würden mich echt interessieren - dann muss ich nicht so lange nach der besten Methode zum parsen suchen.. Ich wäre mit String-Methoden gestartet..
Geht es um Temperaturen usw? Willst DU die Werte auf einem Display am Raspi darstellen? Oder im Browser? Schau Dir mal www.volkszaehler.org an, da hast alles quasi schon fertig
Martin schrieb: > Die 5 Zeilen würden mich echt interessieren - dann muss ich nicht so > lange nach der besten Methode zum parsen suchen.. Ich wäre mit > String-Methoden gestartet.. Ich habe dir ein Skript für Python 3.x (sind denke ich aber nur die "print" Funktionen zu 2.x verschieden) samt passenden Testdaten angehängt. Man müsste auf der Raspel evtl. noch das matplotlib Package für Python installieren. Inwieweit das schon über PIP für Python3 funktioniert weiß ich allerdings gerade nicht.
:
Bearbeitet durch User
Bernhard R. schrieb: > Ich habe dir ein Skript für Python 3.x (sind denke ich aber nur die > "print" Funktionen zu 2.x verschieden) Ich habe es unter Python 2.7 nochmal versucht, und es fehlt dem Interpreter lediglich die Zeile für das Encoding am Anfang.
1 | # -*- coding: utf-8 -*- |
Einfach in die erste Zeile kopieren und es läuft.
Bernhard R. schrieb: > Ich habe dir ein Skript für Python 3.x (sind denke ich aber nur die > "print" Funktionen zu 2.x verschieden) samt passenden Testdaten > angehängt. Danke - das ist super und elegant dazu! ich hätte mich da ewig beschäftigt, die Texte 'rauszufummeln.. Jetzt lerne ich python, aber auch gnuplot.
RRDtool und fünf Zeilen (vielleicht auch sechs) Perl-Script.
:
Bearbeitet durch User
volkszaehler.org erzeugt statische Grafiken oder interaktive Kurven, wo man auch reinzoomen kann. Datenbank wird gleich mitinstalliert (mysql) Die Datenbank kannst du auch mit deinem Script befüllen, welches json rausschmeißt.
Martin schrieb: > ich habe ein funktionierendes shell-script, das mit alle 2 Sekunden > Messwerte im JSON-Format liefert ( {"name1":wert1;"name2":wert2;....} ) > > was ist aus Eurer Sicht der einfachste Weg mit dem RasPi > (Installationsaufwand, Lernaufwand, ..), um aus diesen Zahlen ein > LinienDiagramm zu erzeugen, das sich alle 2 Sekunden > ändert/aktualisiert? (also z.B. so eine "Fieberkurve! wie der > Aktienindex) > > Jede Idee ist willkommen.. Elasticsearch mit seinem Webfrontend Kibana. Damit kannst Du Deine Daten direkt als JSON in den Elasticsearch-Server pumpen, und sie mit Kibana maximal performant und flexibel analysieren und visualisieren. Der Aufwand für die Installation ist minimal, ein Lernaufwand ist vorhanden, aber ziemlich überschaubar, solange man die vielfältigen Möglichkeiten der Volltextsuche nicht benötigt. Trotzdem ist es nicht die schlechteste Idee, eine leistungsfähige, moderne Skriptsprache wie Python im Werkzeugkasten zu haben.
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.