Zurück   KNX-User-Forum > Öffentlicher Bereich > KNX EIB Forum > Code-Schnipsel
knx-user-forum - International KNX Award Winner 2010


Links
Kalender
Spende

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 16.12.2012, 15:31
Benutzer
 
Registriert seit: 24.08.2010
Ort: bei Freiburg
Beiträge: 176
swingert befindet sich auf einem aufstrebenden Ast
Standard Tagesmaximum abspeichern

Hallo zusammen,

vielleicht habe ich bisher nach dem falschen gesucht, aber da ich mich seit ziemlich genau 2 Tagen mit Perl auseinandersetze und mir mein erstes Plugin angefangen habe, dass die WebSeite meiner Wärmepumpe ausliest und mir manche Daten in RRDs überträgt scheitere ich an einer Problemstellung:
Die WP zeigt mir keine aktuelle Leistungsdaten an sondern immer Tagessummen und "Gesamtsummen" (ich tippe auf Jahressumme). Dies für Wärmemengen, Laufzeigen und Stromverbrauch.

Ich würde an dieser Stelle gerne die Tageswerte ausrechnen und "ablegen" um später in einem Diagramm Außentemperaturen, Wärmemengen und Strombedarf vergleichen zu können.

Wie würden die Experten an so eine Sache herangehen? Oder kann man einfach immer einlesen und ins RRD pumpen und dann beim Auslesen sagen man möchte nur die Tages-Maxima?

Vielen Dank für eure Hilfe!

Viele Grüße
Stefan

p.s. falls noch jemand eine Tecalor THZ (oder Stiebel Eltron LWZ) 404 sein eigen nennt: ich stelle das parsing-script nach Fertigstellung gerne im zur Verfügung, dann muss nicht jeder die Tabellen manuell ausparsen
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 02.02.2013, 10:43
Benutzerbild von JuMi2006
Erfahrener Benutzer
 
Registriert seit: 23.03.2011
Beiträge: 1.907
JuMi2006 sorgt für eine eindrucksvolle AtmosphäreJuMi2006 sorgt für eine eindrucksvolle AtmosphäreJuMi2006 sorgt für eine eindrucksvolle Atmosphäre
Standard

Ja das geht.
Am besten mit COUNTER-RRDs ... die kann man so anlegen dass sie mit einfach mit dem aktuellen Zählerstand gefüttert werden. Die Berechnung der Dirfferenz zum Vortag erfolgt dann um 0:00 Uhr automatisch.

Ich habe diese für den Stromzähler der WP und den Energieertrag den ich aus der WP auslese.

Jetzt kann man via Script/Plugin die letzten Werte aus dem RRD auslesen und sich z.B. daraus die Tages-Arbeitszahl berechnen lassen.

Das ist aber nicht in 2 Minuten erklärt ... an sich aber einfach.


Grüße
__________________
Umgezogen? Ja! ... Fertig? Nein!
Baustelle 2.0 !
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 10.02.2013, 13:59
Benutzer
 
Registriert seit: 24.08.2010
Ort: Görlitz
Beiträge: 25
Netsrac80 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat von JuMi2006 Beitrag anzeigen
Das ist aber nicht in 2 Minuten erklärt ... an sich aber einfach.
Grüße
Servus,
hast du eventuell einen guten Weblink wo das erklärt ist oder z.B. deine Scripte zum erstellen und auswerten eines solchen RRD's bei der Hand?

Für mich wäre so eine Lösung auch hilfreich da ich S0-Stromzähler und WP damit verheiraten könnte.

besten Dank!
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 10.02.2013, 14:27
Benutzerbild von dombn
Benutzer
 
Registriert seit: 18.11.2011
Beiträge: 261
dombn befindet sich auf einem aufstrebenden Ast
Standard

Sehr hilfreich dabei sind erst mal die RRD-Seiten selbst:
RRDtool - About RRDtool

Insbesondere die Bereiche: »Tutorials« und »Documentation«!


Ein Beispiel für COUNTER-RRDs findest du hier:
- √ - COUNTER-RRD mit Boardmitteln?
__________________
KNX: 3 Linien | BMS Quadra, MCU-06 | B.IQ, TS3-Komfort/Plus | Aktoren von PEAR, MDT | BWM/PM von Preussen, Theben, B.E.G., Berker | WireGate mit ca. 35 Temp-Sensoren + 1 MultiSensor
Eingezogen, nur leider alles andere als »fertig« … ;) (Baublog)
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 10.02.2013, 17:07
Benutzerbild von JuMi2006
Erfahrener Benutzer
 
Registriert seit: 23.03.2011
Beiträge: 1.907
JuMi2006 sorgt für eine eindrucksvolle AtmosphäreJuMi2006 sorgt für eine eindrucksvolle AtmosphäreJuMi2006 sorgt für eine eindrucksvolle Atmosphäre
Standard

Damit bekommst Du den letzten Wert aus einem 24h-Counter-RRD:

Code:
### Last values from RRD

$plugin_info{$plugname.'_cycle'} = 900; # alle x sekunden

my $RRDName = "WP_1-8-1_1440";
my $ds   = "AVERAGE"; # Datasource: MIN AVERAGE MAX - egal bei Werten <180h
my $start = "now-1d"; # AT-STYLE TIME SPECIFICATION 
my $end   = "now";

my ($dbstart, $step, $names, $data) = RRDs::fetch('/var/www/rrd/'.$RRDName.'.rrd', "--start=$start","--end=$end", $ds);

foreach my $line (@$data) {
   foreach my $val (@$line) {
	next unless defined $val;
	return $val; ###Hier steht der Wert
    }
}
Grüße
__________________
Umgezogen? Ja! ... Fertig? Nein!
Baustelle 2.0 !
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 12.02.2013, 13:08
Benutzer
 
Registriert seit: 24.08.2010
Ort: bei Freiburg
Beiträge: 176
swingert befindet sich auf einem aufstrebenden Ast
Standard

Hi zusammen,

ich habe mir jetzt mal aus anderen Threads versucht den RRD Create zu kopieren. Da ich das ja nur einmal brauche, war meine Idee, das einfach per Shell auf dem WG zu machen.

Hier mal das Kommando mit dem ich es versuche:
Code:
rrdtool create --step 300 \
 DS:value:COUNTER:2700:0:2147483647 \
 RRA:AVERAGE:0.5:1:720 \
 RRA:AVERAGE:0.5:4:840 \
 RRA:AVERAGE:0.5:96:1826 \
 RRA:AVERAGE:0.5:672:1300 \
 RRA:MIN:0.5:1:720 \
 RRA:MIN:0.5:4:840 \
 RRA:MIN:0.5:96:1826 \
 RRA:MIN:0.5:672:1300 \
 RRA:MAX:0.5:1:720 \
 RRA:MAX:0.5:4:840 \
 RRA:MAX:0.5:96:1826 \
 RRA:MAX:0.5:672:1300
Komischerweise bekomme ich immer einen Fehler. Wenn ich es ganz versuche erhalte ich den Fehler, dass ich mindestens eine Data Source angeben muss. Wenn ich dann nur die ersten zwei Zeilen verwende beschwert sich das Tool das ein RRA fehlt. Ich habe es sogar schon von Hand abgetippt um zu verhindern, dass sich irgendwo ein "Steuerzeichen" eingeschlichen hat. Irgendwie sehe ich glaube ich den Wald vor lauter Bäumen nicht mehr.

Wäre über jede Hilfe dankbar!

Viele Grüße
Stefan

Geändert von swingert (12.02.2013 um 13:13 Uhr) Grund: Quelltext-Umrandung
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 13.02.2013, 08:09
Benutzerbild von JuMi2006
Erfahrener Benutzer
 
Registriert seit: 23.03.2011
Beiträge: 1.907
JuMi2006 sorgt für eine eindrucksvolle AtmosphäreJuMi2006 sorgt für eine eindrucksvolle AtmosphäreJuMi2006 sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat von swingert Beitrag anzeigen
Irgendwie sehe ich glaube ich den Wald vor lauter Bäumen nicht mehr.
Das glaube ich auch .
Sämtliche Systeme dieser Welt sind erstmal brot-dumm ... wenn Du eine Datei erstellen möchtest können die blöden Computer immer noch nicht ahnen:
- Wie die Datein heißen soll
- Wo die Datei erstellt werden soll

Also in kurz: Gib einfach einen Pfad und einen Dateinamen mit an

Code:
rrdtool create /tmp/test.rrd --step 300 \
 DS:value:COUNTER:2700:0:2147483647 \
 RRA:AVERAGE:0.5:1:720 \
 RRA:AVERAGE:0.5:4:840 \
 RRA:AVERAGE:0.5:96:1826 \
 RRA:AVERAGE:0.5:672:1300 \
 RRA:MIN:0.5:1:720 \
 RRA:MIN:0.5:4:840 \
 RRA:MIN:0.5:96:1826 \
 RRA:MIN:0.5:672:1300 \
 RRA:MAX:0.5:1:720 \
 RRA:MAX:0.5:4:840 \
 RRA:MAX:0.5:96:1826 \
 RRA:MAX:0.5:672:1300
Grüße
__________________
Umgezogen? Ja! ... Fertig? Nein!
Baustelle 2.0 !
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 13.02.2013, 08:26
Benutzer
 
Registriert seit: 24.08.2010
Ort: bei Freiburg
Beiträge: 176
swingert befindet sich auf einem aufstrebenden Ast
Standard

Zitat von JuMi2006 Beitrag anzeigen
Sämtliche Systeme dieser Welt sind erstmal brot-dumm ... wenn Du eine Datei erstellen möchtest können die blöden Computer immer noch nicht ahnen:
- Wie die Datein heißen soll
- Wo die Datei erstellt werden soll

Also in kurz: Gib einfach einen Pfad und einen Dateinamen mit an
aaaaaah - jetzt weiß ich, was ich in den X Jahren seit meinem Informatik-Studium schon immer implementieren wollte So schwer kann das doch nicht sein

das kommt davon, wenn man sich geistig in das Thema versucht einzubraten um dann hochzurechnen wie viele Werte und wie lange ein RRA genutzt werden soll
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 23.02.2013, 22:52
Benutzerbild von Chris M.
Erfahrener Benutzer
 
Registriert seit: 14.12.2008
Beiträge: 4.859
Chris M. sorgt für eine eindrucksvolle AtmosphäreChris M. sorgt für eine eindrucksvolle AtmosphäreChris M. sorgt für eine eindrucksvolle AtmosphäreChris M. sorgt für eine eindrucksvolle Atmosphäre
Standard

Meine Wetterstation (ELV...) gibt die Regenmenge auch nur aufsummiert aus (was im Rahmen der unzuverlässigen Funk-Übertragung sehr sinnvoll ist!).

Kann ich evtl. das COUNTER-RRD auch dazu verwenden die Regenmenge für die letzte Stunde und für die letzten 24 Stunden auszurechnen?
__________________
TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
  #10  
Alt 24.02.2013, 14:25
Benutzerbild von JuMi2006
Erfahrener Benutzer
 
Registriert seit: 23.03.2011
Beiträge: 1.907
JuMi2006 sorgt für eine eindrucksvolle AtmosphäreJuMi2006 sorgt für eine eindrucksvolle AtmosphäreJuMi2006 sorgt für eine eindrucksvolle Atmosphäre
Standard

Ja Chris das geht.
Leider hat makki das noch nicht reingepatcht.

Wichtig beim COUNTER ist dass der Wert, bevor er ins RRD geschrieben wird mit step des RRD multipliziert wird da sich rrdtool auf "per second" bezieht.

Im verlinkten Thema von Dominik ist das ganz gut erörtert.

Man könnte sich bis dahin so eine eigene sub machen, hier ist $step dann einfach in Sekunden mitzugeben.

Code:
my $rrdpath = "/var/www/rrd";
...
rrd_counter ("RRD_Name",$val,$step);

sub rrd_counter
{
my $rrdname = $_[0];
my $value = $_[1];
my $step = $_[2];
$rrdname = $rrdname."\.rrd";
my $rrdfile = $rrdpath."\/".$rrdname;
unless (-e $rrdfile)
{
RRDs::create ($rrdfile,"DS:value:COUNTER:".(($step)*3).":0:10000000000","RRA:AVERAGE:0.5:1:365","RRA:AVERAGE:0.5:7:300","-s ".($step));
}
my $countervalue = int($value*$step);
RRDs::update("$rrdfile", "N:$countervalue");
}
Die Datensätze hier sind auf reinen Tagesverbrauch angelegt und könnten evtl. in der Menge etwas zu wenig sein für z.B. die Regenmengen der letzten 1400 Stunden .
Das ist jetzt auch mal ungetestet geändert. Oder einfach den wiregated patchen .

Grüße
__________________
Umgezogen? Ja! ... Fertig? Nein!
Baustelle 2.0 !
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
Anfängerfrage: LED Stripe per Dali / Verschiedene Farben als Szene abspeichern Andy2012 KNX EIB Forum 4 07.12.2012 10:00
[Expertenfunktion] Zählerstände abspeichern NetFritz WireGate 19 05.01.2012 11:46
[HS-Logik] Projekt in anderem Verzeichnis abspeichern? lucky Code-Schnipsel 3 21.07.2010 12:02
ETS3 Projekt abspeichern kiwifan KNX EIB Forum 7 29.01.2009 19:18


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:36 Uhr.



SEO by vBSEO