Du solltest in dem Script evt noch das DS durch CF ersetzen, das ist ja eigentlich die consolidation function.
---
CF
the consolidation function that is applied to the data you want to fetch (AVERAGE,MIN,MAX,LAST)
---
Michael
Ankündigung
Einklappen
Keine Ankündigung bisher.
RRD mit mehreren Werten
Einklappen
X
-
ups, hier dann mit Leerzeichen :-)
Code:#!/bin/bash echo Content-Type: application/json echo Content-Encoding: gzip echo #rrdtool fetch /var/www/rrd/Luftfeuchte_Bad_knx5-2-79.rrd AVERAGE -s-24h RRD=`echo "$QUERY_STRING" | sed -n 's/^.*rrd=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"` DS=`echo "$QUERY_STRING" | sed -n 's/^.*ds=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"` START=`echo "$QUERY_STRING" | sed -n 's/^.*start=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"` END=`echo "$QUERY_STRING" | sed -n 's/^.*end=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"` RES=`echo "$QUERY_STRING" | sed -n 's/^.*res=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"` rrdtool fetch /var/www/$RRD $DS -s$START -e$END -r$RES | \ { while read line ; do if [[ "$line" == *:* ]] #matching lines with ":" then arr=(${line//: / }) #splits string with ": " in array timestamp=${arr[0]} timestamp+="000" #add zeros values="" for (( i=1; i < ${#arr[@]}; i++)) do if ((i > 1)); then values+=","; fi values+="\"${arr[i]}\"" done data+="[$timestamp,[$values]]," fi done echo "[${data%?}]" | gzip -c #cuts last character of $data and makes [] around }
Einen Kommentar schreiben:
-
Hey,
auch bei uns funktioniert "datasourceIndex" nun mit R2054 aus dem SVN - siehe Anlage (Average) - dazu haben wir die "rrdfetch" wie folgt geändert:
---snip---
*** siehe nächste Nachricht ***
---endsnip---
VG
Tommy (der Tester) & Alex (der Programmierer)Angehängte Dateien
Einen Kommentar schreiben:
-
Am besten mal den Auszug aus der XML-Config mitschicken.
Mit den Attributen "legend" und "legendposition" klappt es eigentlich gut.
Einen Kommentar schreiben:
-
DANKEZitat von MicHau Beitrag anzeigenHier gibt es eine Anleitung: CometVisu/HowTo install the development version on the WireGate - Open Automation
und das mit den RRD klappt super
(man muss nur wissen das die Zählung mit 0 anfängt - wäre hier nicht beginnen mit 1 sinnvoller?)
Hier mal ein Beispiel (CPU load auf dem Raspi - die Farben sind furchtbar, ich haben nur schnell eben irgendwelche genommen)
Bildschirmfoto 2014-01-29 um 19.44.58.png
nächste Frage: kann man die irgendwie beschriften? Es gab schon mal einen Thread dazu, aber das "Label" scheint bei mir nicht zu funktionieren
Michael
Einen Kommentar schreiben:
-
Hier gibt es eine Anleitung: CometVisu/HowTo install the development version on the WireGate - Open AutomationZitat von MGK Beitrag anzeigenjetzt frage ich mich nur wie ich dioe SVN Version laden kann
Einen Kommentar schreiben:
-
wow seid ihr fix
jetzt frage ich mich nur wie ich dioe SVN Version laden kann
(sorry, dasist echt eine blöde Frage, aber ich habe bisher nur release-versionen genutzt)
Michael
Einen Kommentar schreiben:
-
WOW das ging aber flott.
Im Editor siehts gut aus. Testen kann ich es mangels rrd's nicht.
Einen Kommentar schreiben:
-
Klappte nicht, ich habe noch was nachgeschoben.Zitat von MicHau Beitrag anzeigenIch hoffe, es klappt!
Achso: der Upgrader muss über die Config-Files laufen, um die Anpassungen automatisch vorzunehmen. Aber das passiert ja beim Start automatisch.
Einen Kommentar schreiben:
-
Na dann holt euch mal die neueste Version aus dem SVN-Repository.
Ich hoffe, es klappt!
Einen Kommentar schreiben:
-
Dann wäre das Attribut datasource eigentlich auch falsch benamt, es sollte dann eigentlich consolidationFunction heißen und zusätzlich ein Attribut datasourceIndex geben.
Passt das soweit?
Einen Kommentar schreiben:
-
Ja rrdfetch liefert alle Datensätze für die angegebene Zeit und Consolidation Function zurück.
Wenn also bekannt ist, in welcher Reihenfolge die unterschiedlichen Daten Sources im RRD liegen, könnte man mit einer Indexnummer das Ergebnisarray auseinander nehmen (Siehe meine Ausgabe).
Wenn man sicher gehen will, könnte man vorher ein "rrdtool info" machen und sich dort die Reihenfolge raus holen und zur Auswahl in der Oberfläche anzeigen lassen.
Simple .... naja ... für den, der sich im CV Code auskennt wahrscheinlich schon.
Einen Kommentar schreiben:
-
Für mich zum Mitschreiben (sorry):
RRDFETCH liefert alle Datensätze zurück, richtig?
D.h. hat das Array 3 Elemente, sind es drei Datensätze. Die könnte man CV-intern einzeln aus dem Array separieren. Also müsste man dem Diagram nur sagen, welche Datensatz-Nummer es nehmen soll und liest aus der JSON-Rückgabe die Werte am entsprechenden Index aus.
Soweit hört sich das recht simple an. Änderungen an RRDFETCH müsste man auch nicht machen.
Einen Kommentar schreiben:
-
Übergabe der Datasource Nummer in der CV und Änderung der rrdfetch.
Einen Kommentar schreiben:


Einen Kommentar schreiben: