2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-03 16:56:54 +00:00

Update and fixes

git-svn-id: https://svn.fhem.de/fhem/trunk@566 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parix 2010-01-26 19:51:55 +00:00
parent 596176b849
commit edf8981832

View File

@ -4,9 +4,8 @@
# Feedback: http://groups.google.com/group/fhem-users
# Logging to RRDs
# Autor: a[PUNKT]r[BEI]oo2p[PUNKT]net
# Stand: 14.12.2009
# Version: 0.0.91
# Übersetzung in "Richtiges English" sind willkommen ;-))
# Stand: 26.01.2010
# Version: 0.5.0
#*BETA*BETA*BETA*BETA*BETA*BETA*BETA*BETA*BETA*BETA*BETA*BETA*BETA*BETA
#######################################################################
#*BETA*BETA*BETA*BETA*BETA*BETA*BETA*BETA*BETA*BETA*BETA*BETA*BETA*BETA
@ -31,15 +30,23 @@
# For each READINNG you can create seperate RRD-Definitions:
# %data{RRD_LOG}{DEV_TYPE}{READINGS} = RRD_LOG_TYPE
#
# NEW:
# Update :
#
# - keine Ueberpruefung ob READING vorhanden ist im SET
#
# attr -> IODEVSTATS
# If set RRD_Log will log RRS and MSGCNT
# If set RRD_Log will log RSSI and MSGCNT
# <IDOEV-Name>/<DEVICE_Name>_rssi RRD: RRD_Log_5minGAUGE
# <IDOEV-Name>/<DEVICE_Name>_msgcnt RRD: RRD_Log_5minCOUNTER
# also
# <IDOEV-Name>_MSGCNT -> Counter for received Messeages by this IODEV
# <IDOEV-Name>/RAWMSGCOUNT.rrd
#
# ADDTYPE
# set RRDLog ADDTYPE HMS
# es werden alle Devices des Types HMS dem RRDLog zugeordnet
# enpstrechend den konfigurierten READINGs in $data{RRD_LOG}{READING}
#
#
#*BETA*BETA*BETA*BETA*BETA*BETA*BETA*BETA*BETA*BETA*BETA*BETA*BETA*BETA
#######################################################################
@ -64,7 +71,6 @@ RRD_Log_Initialize($)
# Global RRDLog conf
# Mapping READING to RRD-File-Config
# %data{RRD_LOG}{DEV_TYPE}{READINGS} = RRD_LOG_TYPE
# %data{RRD_LOG}{DEV_TYPE}{FUNCTION} = Device-Handling via Function
#FHT
$data{RRD_LOG}{READING}{FHT}{'measured-temp'} = "RRD_Log_15minGAUGE";
$data{RRD_LOG}{READING}{FHT}{'desired-temp'} = "RRD_Log_15minGAUGE";
@ -98,6 +104,8 @@ RRD_Log_Initialize($)
$data{RRD_LOG}{READING}{CUL_RFR}{'msg'} = "RRD_Log_5minCOUNTER";
$data{RRD_LOG}{READING}{CUL_RFR}{'rssi'} = "RRD_Log_5minGAUGE";
$data{RRD_LOG}{READING}{CUL_RFR}{'RAWMSGCOUNT'} = "RRD_Log_5minGAUGE";
#WBS
$data{RRD_LOG}{READING}{WBS}{'Temperature'} = "RRD_Log_5minGAUGE";
# temp. save Path to RRDs
# $data{RRD_LOG}{RRDS}{<DEVICE-NAME>}{<READING>} = $rrd_path
# reset RRS
@ -120,8 +128,8 @@ sub RRD_Log_Define()
return "RRDLOG[Define::ERROR] Invalid Path: $rrdpath";}
$self->{RRDPATH} = $a[2];
#RRD Startdate
$self->{RRD_Start_Date_tsecs} = "1199944800";
$self->{RRD_Start_Date} = "01.10.2008";
$self->{RRD_Start_Date_tsecs} = time();
$self->{RRD_Start_Date} = TimeNow();
#LogLevel auf 5
my $my_name = $self->{NAME};
$attr{$my_name}{'loglevel'} = '5';
@ -174,7 +182,7 @@ sub RRD_Log_Set() {
# Reading check
my $def_type = $defs{$a[2]}{TYPE};
foreach my $reading (@readings){
if(!defined($defs{$a[2]}{READINGS}{$reading})) {return "RRDLOG[SET::ERROR] $a[2] => $reading => Unkown";}
# if(!defined($defs{$a[2]}{READINGS}{$reading})) {return "RRDLOG[SET::ERROR] $a[2] => $reading => Unkown";}
if(!defined($data{RRD_LOG}{READING}{$def_type}{$reading})) {return "RRDLOG[SET::ERROR] $a[2] => $reading => not supported";}
}
$hash->{READINGS}{$a[2]}{TIME} = TimeNow();
@ -277,6 +285,9 @@ sub RRD_Log_Notify() {
else {
($changed_reading, $changed_value) = split(/:/,$defs{$dev_name}{CHANGED}[$i]);
}
if(!defined($defs{$dev_name}{READINGS}{$changed_reading})) {
Log 0, "RRDLOG[NOTIFY::ERROR] $dev_name => $changed_reading => Unkown";
next;}
Log $ll, "RRDLOG[Notify] $dev_name => $changed_reading => $changed_value";
#Trim
if($changed_reading =~ m/^\s+/) {$changed_reading =~ s/^\s+//;}