Hallo,
habe mich länger nicht mit Wiregate beschäftigt und wollte jetzt in den Feiertagen ein generisches Plugin schreiben, welches einen beliebigen aktuellen Zählerstand in ein rrd wegschreibt und aufgelaufene Tages-/Wochen-/Monats-/Jahrewerte zurückliefert.
Dazu u.a. folgende Fragen:
wie kann ich aus dem vorhandenen rrd den Zählerstand von vor x Tagen auslesen?
wie kann ich mir den zugehörigen Graphen im Browser anzeigen lassen?
Danke für Eure Hilfe!
habe mich länger nicht mit Wiregate beschäftigt und wollte jetzt in den Feiertagen ein generisches Plugin schreiben, welches einen beliebigen aktuellen Zählerstand in ein rrd wegschreibt und aufgelaufene Tages-/Wochen-/Monats-/Jahrewerte zurückliefert.
Code:
################## ### ZAEHLER ### ################## $plugin_info{$plugname.'_cycle'} = 0; my $rrd="zaehler"; my $rrdFile="/var/www/rrd/$rrd.rrd"; my $counter_ga = "9/0/11"; # Gruppenadresse Zaehlerstand, s.a. $laststate (DPT9) $plugin_subscribe{$counter_ga}{$plugname} = 1; # rrd file erzeugen, falls es noch nicht existiert if (!-e $rrdFile) { RRDs::create($rrdFile, '--step' => 86400, # 24 h 'DS:value:COUNTER:90000:0:2147483647', # 1 d (für 5 y) 7 d (für 25 y) 'RRA:AVERAGE:0.5:1:1826', 'RRA:AVERAGE:0.5:7:1300', 'RRA:MIN:0.5:1:1826', 'RRA:MIN:0.5:7:1300', 'RRA:MAX:0.5:1:1826', 'RRA:MAX:0.5:7:1300', ); if (RRDs::error) { plugin_log($plugname, "Create COUNTER-RRDs failed for $rrdFile: ".RRDs::error); } else { plugin_log($plugname, "Created COUNTER-RRD for $rrdFile"); } } # Telegramm eingetroffen if (($msg{'apci'} eq "A_GroupValue_Write") and ($msg{'dst'} eq $counter_ga)) { my $laststate = knx_read($counter_ga,3600,9); update_rrd($rrd, "", $laststate, "COUNTER"); plugin_log($plugname,"Zaehlerstand: ".$laststate); return "Zaehlerstand: $laststate "; }
wie kann ich aus dem vorhandenen rrd den Zählerstand von vor x Tagen auslesen?
wie kann ich mir den zugehörigen Graphen im Browser anzeigen lassen?
Danke für Eure Hilfe!
Kommentar