Hi,
für eine Temperaturaufzeichnung möchte ich die Datenbank rrdtool
einsetzen.
Alle notwendigen Pakete habe ich bereits installiert. Beim Erzeugen
einer Datenbank erscheint die Fehlermeldung:
> ERROR: you must define at least one Round Robin Archive
Diese Fehlermeldung erscheint sobald ich dies hier ausführe:
Ich habe nochmals das ganze getestet. So wie es aussieht funktioniert
das mit dem crontab -e Befehl nicht. Es werden nicht automatisch
Eintrage erzeugt.
Hi,
was meinst Du mit "automatisch" erzeugt ?
Laut der Webseite sollst Du neue Einträge mit
crontab -e erzeugen.
Darunter steht dann ja auch
# Unten folgende Zeile einfügen
*/10 * * php5 /home/pi/Temperatur/TemperaturAufzeichnen.php >
/dev/null 2>&1
Was passiert denn , wenn Du auf der Kommandozeile
php5 /home/pi/Temperatur/TemperaturAufzeichnen.php
und
cd /home/pi/Temperatur && sh TemperaturGrafikErstellen.sh
eingibst ? Fehlermeldung ?
Statt php5 verwende ich php
Wenn ich beide Zeilen ausführe, passiert nichts. Keine Ausgabe oder so.
Es wird wieder auf den prompt gewechselt.
> php /home/pi/Temperatur/TemperaturAufzeichnen.php> cd /home/pi/Temperatur && sh TemperaturGrafikErstellen.sh
.. schaue bitte mal , welchen Timestamp die
/home/pi/Temperatur/TemperaturAufzeichnung.rrd
hat .
ls -l /home/pi/Temperatur/TemperaturAufzeichnung.rrd
und ob die
/home/pi/Temperatur/TemperaturTag.png
existiert.
Nach genauer Prüfung habe ich feststellen können, dass die Datei
TemperaturAufzeichnung.rrd sich ändert. Der Zeizstempel ändert sich.
Nur di beiden Bilder werden gar nicht erzeugt.
Meine Vermutung ist du hast in der Crontab keinen vollen Pfad angegeben
die Crontab mag das nicht.
Ansonsten leite die Ausgabe des Crontabs mal in ein Logfile um dann
bekommst auch Fehlermeldungen
z.b. mit "> /pfad/zur/logdatei.log 2>&1"
Schätze mal Du hast das PHP-Beispielscript auf der von Dir verlinkten
Webseite einfach blind kopiert, ohne den Sinn bzw. Funktion von selbigen
richtig zu verstehen.
Ich empfehle Dir deshalb lies hier https://oss.oetiker.ch/rrdtool/ nach
wie man die Funktionen von rrd-Tool richtig benutzt. Man kann das alles
ohne Script im Terminalfenster ausprobieren.
Wenn das funktioniert würde ich im nächsten Schritt die Aufrufe in ein
Bashscript verpacken und erst mal damit testen und probieren. Wenn das
wie gewünscht funktioniert, wäre der nächste Schritt das Bashscript per
PHP aufzurufen. Wenn das funktioniert, kann man sich überlegen ob man
das so wie es ist beläßt oder ob man die Befehlszeilen des Bashscripts
direkt aus PHP heraus aufruft.
Ich würde es bei einem Bashscript welches von PHP aufgerufen wird
belassen. Hat sich bei mir bewährt.
Nimm doch gleich was anständiges. Mit Grafana und innodb kannst du
soviel loggen wie du willst, und jede Menge charts erstellen. Der
Vorteil davon wäre, daß das gleich funktioniert und du nur 1-2 config
files hast.
Hier wollte ich eigentlich nur meinen Kühlschrank überwachen der immer
vereist war. Und seitdem ich den abgetaut habe und per Grafana logge,
funzt der auch wieder :-). Alles auf Raspi 4 der damit bei 20%
ausgelastet ist
Thomas G. schrieb:> Nimm doch gleich was anständiges.
Ist doch Käse was Du da schreibst. Mit rrd-Tool bekommt man schon was
ordentliches hin, wenn man es richtig macht.
Nichts gegen Grafana, das Problem hier ist das der TO einfach nur ein
paar Sourcen zusammenkopiert hat ohne zu verstehen was er da eigentlich
macht.
RRD-Tool hat den Vorteil die Daten zu komprimieren, was bei Wetter- bzw.
Temperaturdaten auch Sinn macht, denn nach 3 Jahren muß ich nicht mehr
wissen, wie hoch die Temperatur am 8.1.21 um 20:40Uhr war. Da reichen
Mittelwert, Minimum und Maximum vom 8.1.21 und genau das macht rrd-Tool.
user schrieb:> Hi Zeno, das ist mir nun klar. Trotzdem gelingt die Grafikausgabe immer> noch nicht,
Lies es Dir auf https://oss.oetiker.ch/rrdtool/ durch wie es gemacht
wird. Am besten die Beispiele von dort nachvollziehen.
Ok Danke. Bin gerade noch dabei um mir das reinzuziehen.
Nun jetzt ist es so, dass in /home/pi/Temperatur/ beide Grafiken
erstellt werden. Allerdings werden die beiden Dateien nicht in das
Verzeichnis /var/www/html/ kopiert.
user schrieb:> Allerdings werden die beiden Dateien nicht in das Verzeichnis> /var/www/html/ kopiert.
Klingt nach einem Rechte-Problem.
Welcher User versucht denn, die Dateien dahin zu kopieren? Hat er
Schreibrechte im Zielverzeichnis?
.. ja, weil weiter unten noch eine Änderung im Script gemacht wird und
die
Graphiken im Verzeichnis /var/www angelegt werden.
Ich glaube Dir fehlt da noch etwas Verständnis.
Bevor Du mit so etwas loslegst, erstmal von oben bis unten lesen und
versuchen zu verstehen.
...
von oben (TemperaturGrafikErstellen.sh) noch den Ausgabepfad auf unser
Document Root „/var/www“ legen.
Shell
nano /home/pi/Temperatur/TemperaturGrafikErstellen.php
Die Pfade entsprechend anpassen:
rrdtool graph /var/www/TemperaturTag.png
....
rrdtool graph /var/www/TemperaturWoche.png
....
nano /home/pi/Temperatur/TemperaturGrafikErstellen.php
Thomas G. schrieb:> grafana.png
110%Rel.Hum?
Zeno schrieb:> RRD-Tool hat den Vorteil die Daten zu komprimieren,
Das geht doch mit influxdb auch, oder wofür ist die 'RETENTION POLICY'
gut?
dBase0 schrieb:> Thomas G. schrieb:>> grafana.png>> 110%Rel.Hum?
Ja, über 100% Hum geht, weil dann Tröpfchen in der Luft hängen.
> Zeno schrieb:>> RRD-Tool hat den Vorteil die Daten zu komprimieren,>> Das geht doch mit influxdb auch, oder wofür ist die 'RETENTION POLICY'> gut?
Sag ich doch. Nimm was Gescheites, was dann auch gleich funktioniert. In
6h -9h hast Du dich in influxdb, Grafana und Telegraf reingearbeitet.
Dann hättest du was womit du die nächsten 10 Jahre anständig arbeiten
kannst.
Mit dem Gefrickel, php Seiten, tausende scripts und CSV files als
database verlierst du aber die nächsten 4 Wochen, und optisch sieht es
am Ende trotzdem beschissen aus, und in 6 Monaten mußt du wieder von
vorn anfangen weil alles vergessen wie es ging.
Ich weiß ja wovon ich rede, habe das alles hinter mir mit python,
gnuplot, scripts ...
Hallo,
ich habe mich nochmals drangesetzt. Die Pfade in den beiden Dateien
TemperaturGrafikErstellen und TemperaturGrafikErstellen.sh sind soweit
korrekt. Nach wie vor wird die Datenbank aktualisiert und die beiden
Grafiken werden auch in dem /home/pi/Temperatur/ abgelegt.
Dann tu doch mal, was dir weiter oben schon mal empfohlen wurden ist.
Die beiden Ausgabeumlenkungen (oder nur die zweite, bei der die Grafik
ja erstellt wird) nach /dev/null auf eine richtige Datei umlenken:
1
*/5 * * * * cd /home/pi/Temperatur && sh TemperaturGrafikErstellen.sh >> /tmp/grafik.log 2>&1
Damit wird in /tmp eine Datei "grafik.log" angelegt und fortgeführt, die
die Ausgaben des TemperaturGrafikErstellen.sh Scripts enthält,
insbesondere auch mögliche Fehlerausschriften.
Wenn das allein dich auch noch nicht weiterbringt, kannst du noch
stattdessen
1
*/5 * * * * cd /home/pi/Temperatur && sh -x TemperaturGrafikErstellen.sh >> /tmp/grafik.log 2>&1
machen. Die Option "-x" bewirkt, dass jedes Kommando vor seiner
Ausführung "angesagt" wird. Damit kann man nachvollziehen, welche
Kommandos in welcher Reihenfolge abgearbeitet werden.
user schrieb:> Der Ordner var/www/ hat die Rechte des Users pi
Und die Grafiken?
Läuft denn der Webserver auch als user pi?
meist ist das ein spezieller user.
user schrieb:> Der Ordner var/www/ hat die Rechte des Users pi
Dann kann der Webserver die Grafiken vermutlich wegen Rechtemangel die
Grafiken nicht lesen.
Mach doch mal ein
1
cd/var
und danach ein
1
ls-l
Die Ausgabe des letzten Befehls postest Du mal hier.
dBase0 schrieb:> Das geht doch mit influxdb auch, oder wofür ist die 'RETENTION POLICY'> gut?
influxdb kenne ich nicht, deshalb kann ich hierzu auch nichts sagen.
Thomas G. schrieb:> Sag ich doch. Nimm was Gescheites, was dann auch gleich funktioniert. In> 6h -9h hast Du dich in influxdb, Grafana und Telegraf reingearbeitet.
Ach ja jetzt muß er sich schon in 3 Tools - Grafana, influxdb und
Telegraf - einarbeiten. Toll!
Erläutere doch mal weshalb die von Dir favorisierten Tools was
Gescheites und rrd-Tool was Ungescheites sind.
Der TO scheitert ja derzeit nicht am Erzeugen seiner Grafik, sondern
ganz offensichtilich an den Rechten in einem Linuxsystem.
Zeno schrieb:> Der TO scheitert ja derzeit nicht am Erzeugen seiner Grafik, sondern> ganz offensichtilich an den Rechten in einem Linuxsystem.
Und wenn rrdtool halt der Anlass ist, sich mal mit irgendwelchen
grundlegenden Unix-Konzepten (Rechte von Dateien und Verzeichnissen,
Ein-/Ausgabeumlenkung, Shellscript-Debugging) zu beschäftigen, dann wäre
doch allein das schon Grund genug, es zumindest erst einmal "zu Fuß" zu
machen, wie er es tut.
Wenn er dann mit dem Ergebnis nicht so recht zufrieden ist und lieber so
ein Rundum-Sorglos-Paket haben möchte, hat er auf dem Weg dahin
zumindest was gelernt.
So ich habe nun mit crontab -e die Änderung mit der Logausgabe gemacht.
Es werden auch zyklisch die beiden Grafiken in dem /home/pi/Temperatur
Ordner angelegt nur das kopieren/anlegen der beiden Dateien geht ja
nicht in dem Ordner var/www/. Ich finde auch in dem ganzen Beispiel
nicht eine Zeile wo dies veranlasst wird.
In dem gezeigten Beispiel scheint es einen Fehler zu geben. Und zwar bei
"Temperatur Grafik erstellen" müsste da nicht nach
"Das Script muss natürlich noch ausführbar gemacht werden"
> sudo chmod +x TemperaturGrafikErstellen.sh
statt
> sudo chmod +x TemperaturGrafikErstellen.php
stehen?
Es scheint auch, dass die Datei TemperaturGrafikErstellen.php nicht
ausgeführt wird.
Jörg W. schrieb:> Und wenn rrdtool halt der Anlass ist, sich mal mit irgendwelchen> grundlegenden Unix-Konzepten (Rechte von Dateien und Verzeichnissen,> Ein-/Ausgabeumlenkung, Shellscript-Debugging) zu beschäftigen,....
Ja, sorry, das hatte ich nicht verstanden, ich dachte, daß er einfach
nur Meßwerte so einfach wie möglich aufnehmen und darstellen wollte.
Sowas wollte ich vor 2-3 Jahren auch, und habe wochenlang mit solchen
Frickeleien verbracht.
user schrieb:> die Datei TemperaturGrafikErstellen.php
sollte wohl auch im Verzeichnis vom Webserver liegen, so dass man sie
vom Browser aus aufrufen kann.
Dann wird (bei Anfrage) die Grafik(en) erstellt.
Thomas G. schrieb:> Jörg W. schrieb:>>> Und wenn rrdtool halt der Anlass ist, sich mal mit irgendwelchen>> grundlegenden Unix-Konzepten (Rechte von Dateien und Verzeichnissen,>> Ein-/Ausgabeumlenkung, Shellscript-Debugging) zu beschäftigen,....>> Ja, sorry, das hatte ich nicht verstanden, ich dachte, daß er einfach> nur Meßwerte so einfach wie möglich aufnehmen und darstellen wollte.> Sowas wollte ich vor 2-3 Jahren auch, und habe wochenlang mit solchen> Frickeleien verbracht.
Naja, so einfach wie möglich ist ja gerade rrdtool: ein einfaches Tool,
das der Unix-Philosophie folgt und mit dem man das Problem einfach lösen
kann. Man muss natürlich einmal ein wenig Doku lesen. Aber normal sollte
man das - wenn man kein Totalanfänger bzgl. Unix ist - in zwei bis drei
Stunden alles problemlos durchgelesen und zusammengebaut haben. Man muss
ja nicht die erweiteren Features (prediction, virtual data sources,
komplexe Graphen …) benutzen.
Ralf D. schrieb:> wenn man kein Totalanfänger bzgl. Unix ist
Gerade das scheint der TE aber zu sein.
Dirk B. schrieb:>> die Datei TemperaturGrafikErstellen.php>> sollte wohl auch im Verzeichnis vom Webserver liegen, so dass man sie> vom Browser aus aufrufen kann.
Er hat ja aber den Weg gewählt, einen Shellscript vom cron aus aller 5
Minuten zu rufen, d.h. sie werden nicht "on demand" dann vom Webserver
erzeugt.
Viele Wege führen halt nach Rom.
Ralf D. schrieb:> Naja, so einfach wie möglich ist ja gerade rrdtool: ein einfaches Tool,> das der Unix-Philosophie folgt und mit dem man das Problem einfach lösen
Ja, so z.B. im Tutorial:
https://oss.oetiker.ch/rrdtool/tut/rrdtutorial.en.html
Next thing to do is to collect data and store it. Here is an example. It
is written partially in pseudo code, *you will have to find out what to
do exactly on your OS to make it work*.
while not the end of the universe
do
get result of ...
Genau das Richtige für einen Anfänger. Damit wird er noch jede Menge
Freude haben...
Thomas G. schrieb:> Damit wird er noch jede Menge Freude haben...
Wenn er etwas lernen will: ja.
Wenn er nur einfach etwas benutzen will: eher nicht.
Was von beiden für ihn zutrifft, hat er uns nicht verraten, wenngleich
seine Fragen schon eher auf Variante 1 hindeuten. Wenn er nichts lernen
wöllte, hätte er wohl schon längst das Handtuch geworfen.
Wenn er aber lernen möchte, sollte er dafür auch die Unterstützung der
Mitforisten bekommen.
Jörg W. schrieb:> Er hat ja aber den Weg gewählt, einen Shellscript vom cron aus aller 5> Minuten zu rufen, d.h. sie werden nicht "on demand" dann vom Webserver> erzeugt.
Ach, das erzeugt auch die Grafiken.
Normalerweise liest das (per cron gestartete Script) ja nur die Daten
von den Sensoren und füllt die Datenbank.
Dirk B. schrieb:> Normalerweise liest das (per cron gestartete Script) ja nur die Daten> von den Sensoren und füllt die Datenbank.
Das macht er jede Minute. crontab entries hat er ja oben gepostet.
Jörg W. schrieb:> Ralf D. schrieb:>> wenn man kein Totalanfänger bzgl. Unix ist>> Gerade das scheint der TE aber zu sein.
Dann sind Tool swie Grafana o.ä. aber auch nicht gerade einfach zu
erlernen. Und damit bringen sie erst einmal keinen grundsätzlichen
Vorteil gegenüber rrdtool.
Als Totaleinsteiger hat man da grundsätzlich erst mal viel zu lernen,
egal ob man rrdtool oder eine der anderen Möglichkeiten nimmt.
Und eigentlich muss man sie sich alle einmal ansehen, um dann
qualifiziert entscheiden zu können, welches Tool man einsetzt. Im
nächsten Jahrzehnt. ;-)