Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Nochwas:
Ich habe gelesen, dass das Backend nicht in den offiziellen, sondern nur in den Wiregate-Sourcen enthalten ist.
Kann jemand dies irgendwo auf cometvisu.de ablegen (anhang; .zip entfernen.)
Naja aus Sicherheitsgründen können im Wiki nicht direkt archive wie z.B. ZIP oder ausführbare Datein hochgeladen werden. Aber die Datei die du angehängt hast, stammt doch aus einer Quelle im Internet. Könnte man den nicht einfach darauf verlinken?
Und wie steht es mit den Copyrights? Man müsste doch bestimmt die Quelle mit angeben...
Nochwas:
Ich habe gelesen, dass das Backend nicht in den offiziellen, sondern nur in den Wiregate-Sourcen enthalten ist.
Das WireGate Repository ist genau so offiziell wie cometvisu.org. Wenn Du Angst hat, dass das WireGate beendet werden sollte, könnte man es immer noch weg kopieren. Ablegen würde ich es dann eher auf der SourceForge-Projekt-Seite unter Downloads... (-> Open Automation - Browse /CometVisu at SourceForge.net)
Wenn man jetzt allerdings sagt, dass man da viel weiter entwickeln möchte (wieso?!?) und Scheu davor hat Schreibzugriff auf's WireGate-Repository zu bekommen, dann können wir das gerne auch im Open Automation SVN lagern.
Und wie steht es mit den Copyrights? Man müsste doch bestimmt die Quelle mit angeben...
Da ich die Datei nicht öffnen kann, kann ich nicht bestätigen, bin mir aber ziemlich sicher, dass das vom Makki und unter GPL ist.
TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!
Das WireGate Repository ist genau so offiziell wie cometvisu.org.
Ja. Es wäre dennoch gut, alles beisammen zu haben, oder?
Ist schon komisch, das Backend ganz woanders zu hosten. Aber mir egal.
Im wiregate-repo ist es halt eine *.deb. Damit kann nicht jeder etwas anfangen. Mit tar.gz schon.
Wenn man jetzt allerdings sagt, dass man da viel weiter entwickeln möchte (wieso?!?) und Scheu davor hat Schreibzugriff auf's WireGate-Repository zu bekommen, dann können wir das gerne auch im Open Automation SVN lagern.
Nein, nix weiterentwickeln. Nur alles beisammen haben. Als src.
Da ich die Datei nicht öffnen kann, kann ich nicht bestätigen, bin mir aber ziemlich sicher, dass das vom Makki und unter GPL ist.
Ja. Es wäre dennoch gut, alles beisammen zu haben, oder?
Ist schon komisch, das Backend ganz woanders zu hosten. Aber mir egal.
Im wiregate-repo ist es halt eine *.deb. Damit kann nicht jeder etwas anfangen. Mit tar.gz schon.
Ein Binary tar.gz macht keinen Sinn - das ist zu Systemabhängig (32 Bit? 64 Bit? GLib-Version? Gar CPU Architektur?!?), ein Source tar.gz dagegen schon.
=> Kann ich gerne packen und zu den Files (s.o.) hochladen.
TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!
TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!
Hier funktioniert folgendes neues rrdfetch. Es wäre schön wenn das mal jemand testen könnte der keine gepatchte Version hat, wobei das natürlich auch mit gepatchten Versionen funktionieren sollte.
Dieses script nutzt die rrdtool eigene "fetch" option statt der gepatchten "fetchj" und macht dann daraus die json-Ausgabe.
Viel Spaß!
rrdfetch
Code:
#!/bin/bash
#echo Content-Type: text/plain
#JuMi2006 - https://knx-user-forum.de
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/$RRD $DS -s$START -e$END -r$RES | \
{ while read line ;
do
if [[ "$line" == *:* ]]
then
arr=(${line//: / })
a=${arr[0]}
b=${arr[1]}
a+="000"
b=`printf "%f\n" $b`
data+="[$a,[\"$b\"]],"
fi
done
echo "[${data%?}]" | gzip -c
}
Da ich da nicht drinnen stecke, weiß ich nicht genau was Du wo machen möchtest.
Bei dem Shell-Code mit dem printf fällt mir aber auf, dass das printf in Backticks steht - was heißt, dass hier für jeden Aufruf ein neuer Prozess gestartet werden muss...
Kann man das nicht in purem Bash, in Sed, Perl, Python oder sonst-irgendwas machen?
Ansonsten kann man natürlich in JavaScript auch fürchterlich viel machen - aber man sollte nur ein Minimum an Daten übertragen. Der Visu in der Wand ist's egal, beim Smartphone, das gerade evtl. nur EDGE hat, kann's dramatisch sein.
TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!
Danke !
Das war ein guter Hinweis - deutlich schneller.
EDIT2:
Irgendwie hatte ich mich damals verrannt, geht hier auch mit Exponenten.
Code:
#!/bin/bash
#echo Content-Type: text/plain
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/$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
a=${arr[0]}
b=${arr[1]}
a+="000" #add zeros
data+="[$a,[\"$b\"]],"
fi
done
echo "[${data%?}]" | gzip -c #cuts last character of $data and makes [] around
}
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar