hier meine Werte:
Code: Alles auswählen
user@wiregate1619:~$ df -k
Dateisystem 1K-Bl▒cke Benutzt Verf▒gbar Ben% Eingeh▒ngt auf
/dev/hda2 3606532 1498160 1998488 43% /
tmpfs 121020 0 121020 0% /lib/init/rw
udev 10240 752 9488 8% /dev
tmpfs 121020 0 121020 0% /dev/shm
/dev/hda1 90295 43731 42710 51% /boot
none 121020 48 120972 1% /tmp
user@wiregate1619:~$
@Robert_Mini ,
hier noch der gesamte Code (wobei das nicht ändern sollte):
Code: Alles auswählen
# Demo-Plugin Grafiken in RRD speichern
# V1.0 2010-03-19
# Eigenen Aufruf-Zyklus auf 300 Sekunden (Default globales RRD-Intervall) setzen
$plugin_info{$plugname.'_cycle'} = $wg_config{''}{'rrd_interval'};
# Luftfeuchte Bad
# Einen Wert der Luftfeuchte von der Gruppenadresse 5/2/79 in einem rrd speichern
# Luftfeuchte_Bad ist ein beliebiger Text; keine Umlaute oder Sonderzeichen (/\: etc)
# und einmalig!
# Dann wird die Funktion knx_read mit der Gruppenadresse aufgerufen,
# hier max. 300 sek alt
# sonst wird ein Lesetelegramm abgesetzt und die Antwort abgewartet
# DPT5 = 1 Byte 0-100%, zwei Möglichkeiten:
# DPT angeben wie unten oder Gruppenadressen aus der ETS importieren, dann kann der Datentyp entfallen
# update_rrd("Luftfeuchte_Bad","",knx_read("5/2/79",300,5)); # Gruppenadresse, maxAlter, DPT
# Beispiel für Temperaturwert (DPT9/EIS5) von "externem" Sensor
update_rrd("akt_Leistung","",knx_read("0/7/210",300,14));
update_rrd("akt_Leistung_Export","",knx_read("0/7/214",300,14));
update_rrd("akt_Aussentemp","",knx_read("0/4/176",0,9));
update_rrd("akt_Zaehlerstand_kWh","",knx_read("0/7/211",300,13));
update_rrd("Leistung_15_Min","",knx_read("0/7/212",900,13));
update_rrd("akt_Zaehlerstand_Wh","",knx_read("0/7/213",300,13)/1000);
update_rrd("HZ_Pumpe_HK1","",knx_read("0/4/180",600,5));
update_rrd("HZ_Pumpe_HK2","",knx_read("0/4/181",600,5));
update_rrd("HZ_Gang_Stellwert","",knx_read("0/3/246",600,5));
update_rrd("HZ_G-Bad_Stellwert","",knx_read("0/3/247",600,5));
update_rrd("HZ_Kueche_Stellwert","",knx_read("0/3/248",600,5));
update_rrd("HZ_Wohnen_Stellwert","",knx_read("0/3/249",600,5));
update_rrd("HZ_Technik_Stellwert","",knx_read("0/3/250",600,5));
update_rrd("HZ_Kind1_Stellwert","",knx_read("0/4/88",600,5));
update_rrd("HZ_Kind2_Stellwert","",knx_read("0/4/89",600,5));
update_rrd("HZ_Eltern_Stellwert","",knx_read("0/4/90",600,5));
update_rrd("HZ_Studio_Stellwert","",knx_read("0/4/91",600,5));
update_rrd("HZ_Bad_Stellwert","",knx_read("0/4/92",600,5));
update_rrd("HZ_G-Bad_W_Stellwert","",knx_read("0/3/251",600,5));
update_rrd("HZ_Bad_W_Stellwert","",knx_read("0/4/93",600,5));
update_rrd("HZ_Werkstatt_Stellwert","",knx_read("0/5/222",600,5));
update_rrd("HZ_HZ_HK1_EG_kein_Bedarf","",knx_read("0/4/197",0,1));
update_rrd("HZ_HZ_HK1_OG_kein_Bedarf","",knx_read("0/4/198",0,1));
update_rrd("HZ_HK1_Vorlauf","",knx_read("0/4/194",600,9));
update_rrd("HZ_HK2_Vorlauf","",knx_read("0/4/195",600,9));
update_rrd("HZ_Gang_Istwert","",knx_read("0/3/233",600,9));
update_rrd("HZ_G-Bad_Istwert","",knx_read("0/3/235",600,9));
update_rrd("HZ_Kueche_Istwert","",knx_read("0/3/237",600,9));
update_rrd("HZ_Essen_Istwert","",knx_read("0/3/239",600,9));
update_rrd("HZ_Wohnen_Istwert","",knx_read("0/3/241",600,9));
update_rrd("HZ_Technik_Istwert","",knx_read("0/3/243",600,9));
update_rrd("HZ_Kind1_Istwert","",knx_read("0/4/77",600,9));
update_rrd("HZ_Kind2_Istwert","",knx_read("0/4/79",600,9));
update_rrd("HZ_Eltern_Istwert","",knx_read("0/4/81",600,9));
update_rrd("HZ_Studio_Istwert","",knx_read("0/4/83",600,9));
update_rrd("HZ_Bad_Istwert","",knx_read("0/4/85",600,9));
update_rrd("HZ_Werkstatt_Istwert","",knx_read("0/5/221",600,9));
update_rrd("HZ_Brenner_Ein","",knx_read("0/4/187",0,1));
update_rrd("HZ_Brenner_Leistung","",knx_read("0/4/202",0,5));
update_rrd("HZ_Brenner_Pumpe","",knx_read("0/4/196",0,5));
update_rrd("HZ_Brenner_Starts","",knx_read("0/4/203",300,12));
update_rrd("HZ_Brenner_VL_Ist","",knx_read("0/4/204",3000,9));
update_rrd("HZ_Brenner_VL_Soll","",knx_read("0/4/205",300,9));
update_rrd("KWL_Aussenluft_Temp","",knx_read("0/5/27",60,9));
update_rrd("KWL_Zuluft_Temp","",knx_read("0/5/28",60,9));
update_rrd("KWL_Abluft_Temp","",knx_read("0/5/29",60,9));
update_rrd("KWL_Fortluft_Temp","",knx_read("0/5/30",60,9));
update_rrd("KWL_Aussen_Hum","",knx_read("0/5/31",60,9));
update_rrd("KWL_Zuluft_Hum","",knx_read("0/5/32",60,9));
update_rrd("KWL_Abluft_Hum","",knx_read("0/5/33",60,9));
update_rrd("KWL_Fortluft_Hum","",knx_read("0/5/34",60,9));
update_rrd("KWL_Luftstrom","",knx_read("0/5/35",60,13));
update_rrd("HZ_Solar_Kessel","",knx_read("0/4/177",600,9));
update_rrd("HZ_Solar_Modul","",knx_read("0/4/178",600,9));
update_rrd("HZ_WW_Kessel","",knx_read("0/4/179",600,9));
update_rrd("Sonnenstand_Azimuth","",knx_read("1/4/156",600,8));
update_rrd("Sonnenstand_Elevation","",knx_read("1/4/157",600,8));
update_rrd("Helligkeit_Ost","",knx_read("1/1/51",600));
update_rrd("Helligkeit_Sued","",knx_read("1/1/52",600));
update_rrd("Helligkeit_West","",knx_read("1/1/53",600));
update_rrd("Helligkeit_Daemmerung","",knx_read("1/1/54",600));
update_rrd("Windsensor","",knx_read("1/1/55",600));
update_rrd("Temp_Dach","",knx_read("1/1/56",600));
update_rrd("Regen","",knx_read("1/1/57",600,1));
update_rrd("Regen_Heizung","",knx_read("1/1/58",600,1));
update_rrd("KWL_Strom","",knx_read("0/5/38",600));
update_rrd("KWL_kWh","",knx_read("0/5/39",600));
update_rrd("HZ_Solar_Ertrag","",knx_read("0/4/207",600));
# Abgerufen können die Grafiken durch Modifikation der Grafik-URL eines vorhandenen
# 1-Wire Sensors werden: z.B. 28.0D22CB010000_temp.rrd im letzten Beispiel durch
# Temp_Kueche.rrd ersetzen. Gross/Kleinschreibung beachten!
# Wenn etwas im Plugin-Log stehen soll, kommentarzeichen # entfernen
# Ideal auch zur Debug-Ausgabe
#return "Graphen wurden aktualisiert";
#Sonst 0 = Alles Ok, kein Logeintrag
return 0;
wenn es nur Plugins anginge die 1-Wire GAs betreffen, dann könnte ich das ganze ja noch nachvollziehen, es waren aber auch andere Plugins betroffen, die sich nur auf den KNX alleine beziehen.
Plugin hierzu:
Code: Alles auswählen
# return 0;
# COMPILE_PLUGIN
my $rrdFile_15min="/var/www/rrd/Gaszaehler_15min.rrd";
my $rrdFile_1h="/var/www/rrd/Gaszaehler_1h.rrd";
my $rrdFile_1d="/var/www/rrd/Gaszaehler_1d.rrd";
my $rrd_15min="Gaszaehler_15min";
my $rrd_1h="Gaszaehler_1h";
my $rrd_1d="Gaszaehler_1d";
my $Gaszaehler_ga="1/0/154";
my $Gasreste_ga="1/0/155";
my $Gasvolumen_ga="1/0/159";
$plugin_info{$plugname . '_cycle'} = 300; # Aufrufzyklus - 5 Minuten
if (!exists $plugin_info{$plugname.'_Zaehlerstand'}) {
$plugin_info{$plugname.'_Zaehlerstand'} = 0;
}
# RRD ggf. anlegen
if (!-e $rrdFile_15min)
{
RRDs::create($rrdFile_15min,
'--step' => 900, # 15 Minuten
'DS:value:COUNTER:2700:0:2147483647',
# 15 min (für 7,5 d) 1 h (für 35 d) 24 h (für 5 y) 7 d (für 25 y)
'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'
);
if (RRDs::error) {
plugin_log($plugname, "Create COUNTER-RRDs failed for $rrdFile_15min: ".RRDs::error);
} else {
plugin_log($plugname, "Created COUNTER-RRD for $rrdFile_15min");
}
}
# RRD für 1 Stunde
if (!-e $rrdFile_1h)
{
RRDs::create($rrdFile_1h,
'--step' => 3600, # 1 Stunde
'DS:value:COUNTER:2700:0:2147483647',
# 1 h (für 35 d) 24 h (für 5 y) 7 d (für 25 y)
'RRA:AVERAGE:0.5:1:840', 'RRA:AVERAGE:0.5:24:1826', 'RRA:AVERAGE:0.5:168:1300',
'RRA:MIN:0.5:1:840', 'RRA:MIN:0.5:24:1826', 'RRA:MIN:0.5:168:1300',
'RRA:MAX:0.5:1:840', 'RRA:MAX:0.5:24:1826', 'RRA:MAX:0.5:168:1300'
);
if (RRDs::error) {
plugin_log($plugname, "Create COUNTER-RRDs failed for $rrdFile_1h: ".RRDs::error);
} else {
plugin_log($plugname, "Created COUNTER-RRD for $rrdFile_1h");
}
}
# RRD für 1 Tag
if (!-e $rrdFile_1d)
{
RRDs::create($rrdFile_1d,
'--start' => -86410,
'--step' => 86400, # 1 Tag
'DS:value:COUNTER:2700:0:2147483647',
# 24 h (für 5 y) 7 d (für 25 y)
'RRA:AVERAGE:0.5:1:1826', 'RRA:AVERAGE:0.5:672:1300',
'RRA:MIN:0.5:1:1826', 'RRA:MIN:0.5:672:1300',
'RRA:MAX:0.5:1:1826', 'RRA:MAX:0.5:672:1300'
);
if (RRDs::error) {
plugin_log($plugname, "Create COUNTER-RRDs failed for $rrdFile_1d: ".RRDs::error);
} else {
plugin_log($plugname, "Created COUNTER-RRD for $rrdFile_1d");
}
}
#Zählerstand auslesen
# Differenz auslesen
my $Differenz=knx_read($Gaszaehler_ga,1,13);
# Alten Zählerstand um Differenz erhöhen
my $Zaehlerstand=$plugin_info{$plugname.'_Zaehlerstand'} + $Differenz;
# Aktuellen Wert speichern
$plugin_info{$plugname.'_Zaehlerstand'} = $Zaehlerstand;
# Zähler rücksetzen
knx_write($Gasreste_ga,1,1);
#RRDs schreiben und Zählerstand auf den Bus
my $count_15min=(time()-900).":".($Zaehlerstand * 9);
my $count_1h=(time()-3600).":".($Zaehlerstand * 36);
my $count_1d=(time()-86400).":".($Zaehlerstand * 864);
RRDs::update("$rrdFile_15min","$count_15min");
RRDs::update("$rrdFile_1h","$count_1h");
RRDs::update("$rrdFile_1d","$count_1d");
update_rrd("Gaszaehler","",$Zaehlerstand/100);
knx_write($Gasvolumen_ga,$Zaehlerstand/100,14);
return;
Wie noch zu sehen ist, lief um 9:55 das Plugin noch normal durch.
Wert abfragen, wird rückgemeldet, Zähler rücksetzen, Null wird zurückgemeldet, Plugin gibt aufsummierten Wert aus.
Ab 10 Uhr passt dann gar nichts mehr.
Nach 2 Neustarts des WG läuft soweit wieder alles. Also auch die Plugins verrichten wieder normal ihren Dienst.
Gruß,
Martin