Liniendiagramm aus Messwerten auf dem Raspi?

Gast #5097331
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
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
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 #5097420
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.
Gast #5097433
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
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
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.
Gast #5097510
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.
#5097559
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
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..
Gast #5097643
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
#5097773
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
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
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
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

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.