Hallo Leute,
ich habe auf dem Raspi ein C-Programm laufen, das mir Messdaten von
Peripherien senkündlich abruft und diese in ein txt-file speichert. Die
Daten sind mit Tabulator getrennt, voerst, können aber auch durch ein
Komma getrennt werden.
Jetzt suche ich eine Möglichkeit die Daten grafisch darzustellen. Mir
persönlich fehlt der Umgang mit Systemen wie Raspbian und "Datenbanken",
sodass ich es mit MariaDB und MySQL Workbench probiert habe, was sich
nicht als sinnvoll heraus stellte.
Habt ihr eine andere, einfachere Idee? Wäre auch eine
Echtzeitdarstellung der einkommenden daten möglich?
Danke.
Captain Roger schrieb:> ich habe auf dem Raspi ein C-Programm laufen, das mir Messdaten von> Peripherien senkündlich abruft und diese in ein txt-file speichert.
Textfile ist schon mal suboptimal.
> Jetzt suche ich eine Möglichkeit die Daten grafisch darzustellen.
Und das heißt?
Nur einmal? Oder regelmäßig abrufbar? Vielleicht gar mit der Option, den
beobachteten Zeitraum zu verändern?
> Mir> persönlich fehlt der Umgang mit Systemen wie Raspbian und "Datenbanken",> sodass ich es mit MariaDB und MySQL Workbench probiert habe, was sich> nicht als sinnvoll heraus stellte.
Logisch. Workbench ist komplett daneben. Und eine SQL-Datenbank ist für
Zeitreihendaten zumindest nicht die erste Wahl.
> Habt ihr eine andere, einfachere Idee?
Tobi hatte diese Idee: https://oss.oetiker.ch/rrdtool/
Captain Roger schrieb:> Habt ihr eine andere, einfachere Idee? Wäre auch eine> Echtzeitdarstellung der einkommenden daten möglich?
Browser verwenden, mit automatischem Refresh. Darin Grafiken aus rrdtool
einbinden und die Sache hat sich. Beispiel anbei.
Meine persönliche Wahl wäre da Python und matplotlib.
Da würde ich auch direkt das Sensor-Auslesen drin erledigen und das
C-Programm arbeitslos machen...
A. K. schrieb:> Browser verwenden, mit automatischem Refresh. Darin Grafiken aus rrdtool> einbinden und die Sache hat sich. Beispiel anbei.
So wie ich das jetzt recherchiert habe kann ich bei der Erstellung des
Graphen die Zeitspanne festlegen, die geplottet werden kann. Du scheinst
immer eine Woche darzustellen. Ist der Zeitrahmen fest im Script
programmiert oder kann man sagen, dass er bitte alle Daten, die im
txt-file liegen darstellen soll?
Captain Roger schrieb:> A. K. schrieb:>> Browser verwenden, mit automatischem Refresh. Darin Grafiken aus rrdtool>> einbinden und die Sache hat sich. Beispiel anbei.>> So wie ich das jetzt recherchiert habe kann ich bei der Erstellung des> Graphen die Zeitspanne festlegen, die geplottet werden kann. Du scheinst> immer eine Woche darzustellen. Ist der Zeitrahmen fest im Script> programmiert oder kann man sagen, dass er bitte alle Daten, die im> txt-file liegen darstellen soll?
In den rrdtools definierst du eine Datenbank, die aus einer Serie von
Tabellen prinziell gleichen Inhalts mit unterschiedlicher
Aufbewahrungszeit und Mittel/Min/Max-Speicherung besteht, die
automatisch kondensiert werden. Daraus wiederum kann man für beliebige
Zeiträume in HTML eingebettete Grafiken definieren, die bei Aufruf
erzeugt werden. Angehängt sind andere Zeiträume aus dem gleichem
Datenbestand.
(Zu den Daten: Der Aussentemperatursensor liegt bei solcher Witterung
aufgrund der Platzierung etwas drüber und wird nachmittags direkt oder
per Reflexion beschienen)
PS: Wer dieses Jahr als besonders schrecklich empfindet, für den habe
ich die letzten 5 Jahre.
PPS: Erfassung, Speicherung und Webservice macht ein RasPi 2.
Captain Roger schrieb:> So wie ich das jetzt recherchiert habe kann ich bei der Erstellung des> Graphen die Zeitspanne festlegen, die geplottet werden kann. Du scheinst> immer eine Woche darzustellen. Ist der Zeitrahmen fest im Script> programmiert oder kann man sagen, dass er bitte alle Daten, die im> txt-file liegen darstellen soll?
Man kann das auch über eine Eingabefeld machen.
Bei RRDtool speichert eine feste Anzahl von Werten in einem festen
Zeitabstand.
Alte Daten fliegen raus. Die Datenbank hat eine feste Größe.
Normal Z. schrieb:> Wenn's etwas schicker und flexibler sein soll würde ich mal einen Blick> auf InfluxDB und Grafana werfen.
Gute Wahl!
Ansonsten auf direktestem Weg von Deinem TXT- in ein PNG-File rendern
könnte "gnuplot".
Normal Z. schrieb:> Wenn's etwas schicker und flexibler sein soll würde ich mal einen> Blick auf InfluxDB und Grafana werfen.
Das ist aber mit Interkontinentalraketen auf Amöben geschossen.
Rrdtool ist klein und schlank. Ein cgi-Treiber ist auch dabei. Damit
kann man mit minimalem Aufwand eine Website aufsetzen, die die Daten
visualisiert. Gern auch mit vorgeschaltetem HTML-Formular zur Auswahl
des Zeitraums.
Daß rrdtool einen dazu zwingt, mal über den Zeitraum nachzudenken, für
den man die Daten aufheben will, sehe ich als großen Vorteil. Die
meisten Leute denken darüber sonst gar nicht nach und wundern sich nur
irgendwann, daß es langsam wird oder der Massenspeicher voll läuft.
Dirk B. schrieb:> Bei RRDtool speichert eine feste Anzahl von Werten in einem festen> Zeitabstand.> Alte Daten fliegen raus. Die Datenbank hat eine feste Größe.
Ich möchte dazu ergänzen, dass das Tool auch Zusammenfassungen erstellen
kann. So hat man z.B. sekündliche Werte der letzten 24 Stunden, für den
Monate davor die min/max/avg Werte pro Minute und für den noch längeren
Zeitraum davor die min/max/avg Werte pro Stunde.
Axel S. schrieb:> Das ist aber mit Interkontinentalraketen auf Amöben geschossen.
Warum?
InfluxDB und Grafana läuft problemlos und performant auf dem Raspberry.
Grafana bietet eine extrem flexible und direkt im Browser
konfigurierbare Oberfläche. Auswahl verschiedener Zeiträume ist
standardmäßig schon dabei.
Es gibt das "GR" Framework, welches als C-Bibliothek mit Bindings zu
Python und Julia fast keine Wünsche offen lassen sollte. Man kann das
natürlich auch direkt aus C oder C++ nutzen, z.B. aus einem Programm
welches auf QT oder WxWidgets basiert:
https://gr-framework.org/
> sekündlich
Da hatte ich mit RRDTool auf Raspi ein ganz übles Problem. Nach ein paar
Monaten waren die SD-Karten hinüber. Liessen sich nicht mal mehr neu
formatieren. Hatte dann USB-Platten gekauft.
P.S. So 1 bis 2 mal im Jahr kommen die Raspis durcheinander und müssen
neu gebootet werden.
Noch eine Meinung schrieb:>> sekündlich>> Da hatte ich mit RRDTool auf Raspi ein ganz übles Problem. Nach ein paar> Monaten waren die SD-Karten hinüber.
Der übliche Schwachpunkt beim Raspberry Pi. Der Linux Kernel verzögert
Schreibzugriffe, um sie Blockweise auszuführen. Die Zeit ist
konfigurierbar. Darüber hinaus empfehle ich die Option "noatime" in
/etc/fstab. Sie bewirkt, dass Lesezugriffe nicht mehr im
Inhaltsverzeichnis des Speichermediums protokolliert werden.
Manche SD Karten gehen im Raspberry Pi extrem schnell kaputt, weil sie
umformatiert wurden. Bei vielen Karten liegt ein Zettel bei ,auf dem
ausdrücklich davon abgeraten wird.
Ich habe mir ein "Raspberry Pi 3 Official Desktop Starter Kit" gekauft.
Damit teste und protokolliere ich alle 5 Sekunden meinen Internet
Anschluss. Dabei habe ich nur die "noatime" hinzugefügt, das Verzögerte
Schreiben habe ich nicht angepasst. Das Ding läuft seit 2 Jahren ohne
einen einzigen Aussetzer durch. Insofern denke ich, dass diese
offiziellen Sets ihren etwas höheren Preis durchaus wert sind.
Stefanus F. schrieb:> Damit teste und protokolliere ich alle 5 Sekunden meinen Internet> Anschluss.
Warum?
Mal ernsthaft. Selbst wenn das Teil aus anderen Gruenden durchlaeuft.
Gnorm schrieb:>> Damit teste und protokolliere ich alle 5 Sekunden meinen Internet>> Anschluss.> Warum?
Weil Unitymedia immer so tut, als wäre alles in Ordnung und ich vorher
mit einem Vodafone Anschluss (powered by Telekom) auch nicht besser klar
kam. Jetzt kann ich denen detaillierte Protokolle um die Ohren hauen und
Entschädigung fordern. Ich habe 3€ pro Monat gefordert (entsprechend der
Ausfallzeiten), aber dazu verweigern sie seit 8 Monaten jede
Stellungnahme. Ich werde wohl bald einen Anwalt konsultieren.
Das ist so eine Scheiße! Da wohnt man mitten in der Großstadt und kann
trotzdem keinen zuverlässigen Internetanschluss haben. Alle Anbieter
sind schlecht. Auch auf der Arbeit (700m entfernt) haben wir die
gleichen Probleme, obwohl wir dort gewerbliche Anschlüsse von Unitymedia
und Telekom parallel nutzen.
Das Telefonica Mobilfunknetz ist bei mir erheblich zuverlässiger (und
das hat doch eigentlich den miesesten Ruf). Wenn wir keine Streaming
Dienste nutzen würden, hätte ich längst auf UMTS umgestellt.