Liniendiagramm aus Messwerten auf dem Raspi?

Gast #5097331
Lesenswert?

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..
#5097409
Lesenswert?

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.
Gast #5097418
Lesenswert?

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.
Gast #5097433
Lesenswert?

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.
#5097472
Lesenswert?

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
Angehängte Dateien:
#5097503
Lesenswert?

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.
#5097559
Lesenswert?

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...
Gast #5097636
Lesenswert?

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..
#5097773
Lesenswert?

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.
Angehängte Dateien:
Gast #5098301
Lesenswert?

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.
Gast #5099025
Lesenswert?

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.
#5099192
Lesenswert?

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.

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