Zurück   KNX-User-Forum > Supportforen > CometVisu
knx-user-forum - International KNX Award Winner 2010


Links
Kalender
Spende

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 21.01.2013, 13:09
Erfahrener Benutzer
 
Registriert seit: 03.06.2007
Ort: SG-Mittelweser
Beiträge: 677
NetFritz wird schon bald berühmt werden
Standard - √ - rrdfetch und Response

Hallo
Ich möchte in meinen CV-Diagram auch die RRDs vom FLUSKO anzeigen.

In der CV visu_config,xml habe ich folgendes Diagram erstellt.
Code:
         <diagram height="300px" width="700px" period="24" refresh="300" series="hour"                      gridcolor="#707070" popup="true" previewlabels="true" tooltip="true" legendposition="nw">
                 <label>FLUSKO</label>
                 <axis position="right" unit=" W">temp</axis>
                 <rrd yaxis="temp" color="#ffff00" label="FLUSKO">flusko</rrd>
          </diagram>
Diese RRDs kann man mit Hilfe von CURL von einer FLUSKO-API ausgeben lassen.
Dazu habe ich unter /usr/lib/cgi-bin/rrdfetch etwas erweitert.

Code:
#!/bin/sh
#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"`

#FIXME: check path traversal

# rrdtool fetchj /var/www/rrd/$RRD $DS -s$START -e$END -r$RES | gzip -c

 if [ "$RRD" == "flusko.rrd" ]
      then
       #wget -O - http://wiregate544/flot/curl_abfrage.php
       result=$(wget -qO- http://wiregate544/flot/curl_abfrage.php)
       echo "$result"
       echo "$result" >> /var/www/myhouse/log/flusko.txt
 else
      rrdtool fetchj /var/www/rrd/$RRD $DS -s$START -e$END -r$RES | gzip -c
 fi
$result liefert nun die gleiche Antwort wie rrdfetch in Firebug Konsole allerdings wird mein Response in Firebug nicht angezeigt.

Ich schreibe zur Kontrolle mit
"echo "$result" >> /var/www/myhouse/log/flusko.txt"
die Antwort in eine Datei, dort kommt sie richtig an.

Wie kann ich denn eine Anwort an die CV senden?

Gruß NetFritz
__________________
KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
  #2  
Alt 21.01.2013, 14:23
Benutzer
 
Registriert seit: 14.01.2010
Ort: NRW
Beiträge: 36
derwolff2010 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi,
auf die Schnelle würde ich sagen dass du die Ausgabe noch mit GZIP komprimieren musst, also: echo "$result" | gzip -c .

Gruß
Carsten
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
  #3  
Alt 21.01.2013, 15:04
Erfahrener Benutzer
 
Registriert seit: 03.06.2007
Ort: SG-Mittelweser
Beiträge: 677
NetFritz wird schon bald berühmt werden
Standard

Hallo
Ja jetzt ist die Antwort da, aber mein Diagram zeigt nicht an.
Der Timestamp in der Antwort muss wohl der Java-Script Timestamp in ms sein?
Gruß NetFritz
__________________
KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
  #4  
Alt 21.01.2013, 15:15
Benutzer
 
Registriert seit: 14.01.2010
Ort: NRW
Beiträge: 36
derwolff2010 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ja der Timestamp muss in ms sein. Ich hatte ein ähnliches Problem mit dem Timestamp aus einer MySQL-DB. Hab dann einfach bei der Ausgabe "000" angehängt.
Allerdings wurde das Diagramm bei mir trotzdem schon angezeigt, nur mit einer falschen Zeiteinteilung. Vielleicht stimmt doch noch etwas an deinem Aufbau des JSON-Format nicht.

Gruß
Carsten
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
  #5  
Alt 21.01.2013, 16:07
Erfahrener Benutzer
 
Registriert seit: 03.06.2007
Ort: SG-Mittelweser
Beiträge: 677
NetFritz wird schon bald berühmt werden
Standard

Hallo
Hier mal der API-Aufruf mit PHP.
Code:
function curl_abfrage($token,$url,$sensor_id,$interval,$unit){
        $request = $url.$sensor_id."?interval=".$interval. "&unit=" . $unit; 
        $header=array();
        $header[]="Accept: application/json";
        $header[]="X-Version: 1.0";
        $header[]='X-Token: '.$token;
        
        $ch=curl_init();
        curl_setopt($ch,CURLOPT_URL,$request);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); 
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
        
        $str=curl_exec($ch);
        curl_close($ch);
#        $str=json_decode($str);
#        for($x = 0; $x < count($str); $x++) { 
#             $str[$x][0] = $str[$x][0]."000"; # Timestamp an JS-Timestamp anpassen
#        }
#       $str=json_encode($str);
        return($str);
}
Wenn ich das so aufrufe bekomme ich das in Firebug so angezeigt.
Code:
GET http://wiregate544/cgi-bin/rrdfetch?rrd=flusko.rrd&ds=AVERAGE&start=end-24hour&end=now&res=60
200 OK
[IMG]chrome://firebug/content/blank.gif[/IMG] 1.61sjquery.js (Zeile 8434)
ParameterHeaderAntwortJSONCookies
[[1358693100,419],[1358694000,421],[1358694900,763],[1358695800,692],[1358696700,589],[1358697600,598],[1358698500,716],[1358699400,715],[1358700300,635],[1358701200,561],[1358702100,561],[1358703000,664],[1358703900,682],[1358704800,631],[1358705700,565],[1358706600,551],[1358707500,571],[1358708400,642],[1358709300,627],[1358710200,646],[1358711100,556],[1358712000,563],[1358712900,589],[1358713800,605],[1358714700,619],[1358715600,634],[1358716500,588],[1358717400,657],[1358718300,674],[1358719200,564],[1358720100,647],[1358721000,633],[1358721900,542],[1358722800,597],[1358723700,574],[1358724600,384],[1358725500,377],[1358726400,435],[1358727300,592],[1358728200,532],[1358729100,682],[1358730000,684],[1358730900,724],[1358731800,687],[1358732700,598],[1358733600,581],[1358734500,595],[1358735400,513],[1358736300,430],[1358737200,428],[1358738100,364],[1358739000,339],[1358739900,352],[1358740800,401],[1358741700,351],[1358742600,332],[1358743500,366],[1358744400,385],[1358745300,402],[1358746200,390],[1358747100,431],[1358748000,402],[1358748900,355],[1358749800,409],[1358750700,401],[1358751600,336],[1358752500,373],[1358753400,367],[1358754300,414],[1358755200,420],[1358756100,542],[1358757000,727],[1358757900,525],[1358758800,464],[1358759700,433],[1358760600,403],[1358761500,492],[1358762400,426],[1358763300,483],[1358764200,454],[1358765100,2189],[1358766000,470],[1358766900,449],[1358767800,465],[1358768700,419],[1358769600,404],[1358770500,573],[1358771400,483],[1358772300,485],[1358773200,398],[1358774100,365],[1358775000,476],[1358775900,539],[1358776800,496],[1358777700,444],[1358778600,667],[1358779500,"-nan"]]
Der Timestamp ist in sec.
Mache ich die Kommentare raus dann habe ich den Timestamp in ms,
aber er steht dann in der Firebug Ausgabe in ""
Code:
[["1358694000000",421],["1358694900000",763],["1358695800000",692],["1358696700000",589],
bei einem CV-Diagram sieht die Ausgabe so aus,
da ist vor jedem Timestamp eine [
und vor Value eine [
und hinter Value zwei ]].
und Value steht in "".
Code:
[[1358650500000,["23.40"]],[1358650800000,["23.40"]],[1358651100000,["23.40"]],
Wie stelle ich das an, da ich das gleiche Ausgabeformat bekomme?
Gruß NetFritz
__________________
KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
  #6  
Alt 21.01.2013, 16:27
Benutzer
 
Registriert seit: 14.01.2010
Ort: NRW
Beiträge: 36
derwolff2010 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Mit dieser Curl-Funktion kenne ich mich leider nicht aus. Ich hatte mir in C ein Programm geschrieben, dass anhand der Übergabeparameter die Daten aus einer MySQL-DB selektiert und diese in dem richtigen Format zusammenbaut.

Gruß
Carsten
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
  #7  
Alt 21.01.2013, 16:58
Erfahrener Benutzer
 
Registriert seit: 03.06.2007
Ort: SG-Mittelweser
Beiträge: 677
NetFritz wird schon bald berühmt werden
Standard

Hallo
Ich werde das auch wohl zusammenbauen.
Vielen Dank
NetFritz
__________________
KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
  #8  
Alt 21.01.2013, 17:37
Erfahrener Benutzer
 
Registriert seit: 03.06.2007
Ort: SG-Mittelweser
Beiträge: 677
NetFritz wird schon bald berühmt werden
Standard

Hallo
So geht es.
Code:
        $str=json_decode($str);
        $time_value = "[";
        for($x = 0; $x < count($str); $x++) { 
            $time_value =  $time_value . "[" . $str[$x][0] . "000" . ",[" . '"' . $str[$x][1] . '"' . "]],";
        }
        $str = substr_replace($time_value,']',-1,1);
        return($str);
Gruß NetFritz
__________________
KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
  #9  
Alt 24.01.2013, 03:28
Benutzerbild von makki
Erfahrener Benutzer
 
Registriert seit: 07.07.2007
Beiträge: 11.779
makki sorgt für eine eindrucksvolle Atmosphäremakki sorgt für eine eindrucksvolle Atmosphäremakki sorgt für eine eindrucksvolle Atmosphäremakki sorgt für eine eindrucksvolle Atmosphäremakki sorgt für eine eindrucksvolle Atmosphäremakki sorgt für eine eindrucksvolle Atmosphäre
Standard

Siehe auch - √ - Diagram_inline-Plugin zeigt keine Daten an
Es wäre mittelfristig sehr zielführend eine "Version" in den JSON-Output zu packen. Also bitte das auch alle -> rrdtool-devel schicken und das auch zu untermauern.

Makki

P.S.: Warum verwendet OpenWRT wohl rrdtool 1.0
__________________
EIB/KNX & HS3(+Lüfter+picoPSU80), Multiroom-AV mit Russound,mpd,vdr,DM8000, Profilux II+, N141 DALI, DMX, dez. Lüfter (RS485), Wärmepumpe (RS422), 30+ 1-Wire Temp,Luft&Bodenfeuchte,IRTrans
WireGate - Supportforum - bitte keine PN's!
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[KNX/EIB] Read Write Response Telegramme - Lesen des Logs Jache KNX EIB Forum 3 17.01.2013 16:59
- √ - Unterschied zwischen Write und Response? Fry WireGate 5 19.05.2012 22:32
Merten USB Schnittstelle - ETS3 - No response received Haui KNX EIB Forum 6 16.01.2010 18:31
- √ - Linknx sendet nicht lobo KNX EIB Forum 3 14.10.2009 08:01
[KNX/EIB] EIBnet/IP - DISCONNECT RESPONSE Status Codes HFS45 KNX EIB Forum 2 01.09.2008 22:27


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:54 Uhr.



SEO by vBSEO