From e273ae965bf9d182200755a4f36f8d094e85d5ff Mon Sep 17 00:00:00 2001 From: icinger Date: Tue, 17 May 2016 18:59:05 +0000 Subject: [PATCH] 47_OBIS: Fixed bug in reading-names git-svn-id: https://svn.fhem.de/fhem/trunk@11473 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/47_OBIS.pm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/fhem/FHEM/47_OBIS.pm b/fhem/FHEM/47_OBIS.pm index 63149b89b..c3cb2cfc9 100644 --- a/fhem/FHEM/47_OBIS.pm +++ b/fhem/FHEM/47_OBIS.pm @@ -332,6 +332,8 @@ sub OBIS_Parse($$) Log3 $hash,5,"OBIS ($name) - Msg-Parse: $rmsg"; if($rmsg=~/\/.*|^((?:\d{1,3}-\d{1,3}:)?\d{1,3}.\d{1,3}.\d{1,3})(?:\*\d{1,3})?(?:\(.*?\))?\(.*?\)|!/) { # old regex: \/.*|\d-\d{1,3}:\d{1,3}.\d{1,3}.\d{1,3}\*\d{1,3}\(.*?\)|! my $channel=$1; + $channel=~s/:/\./; + $channel=~s/-/\./; if ($hash->{MeterType} eq "Unknown") {$hash->{MeterType}="Standard"} if($rmsg=~/^([23456789]+)-.*/) { Log3 $hash,3,"OBIS ($name) - Unknown OBIS-Device, please report: $rmsg".chr(13).chr(10)."Please report to User icinger at forum.fhem.de"; @@ -393,6 +395,7 @@ sub OBIS_Parse($$) $data=$SML_specialities{"TIME"}[1]->($1) } my $chan=$code//$OBIS_channels{$channel} //$channel; + $chan=$hash->{helper}{Channels}{$channel} //$hash->{helper}{Channels}{$1} // $OBIS_channels{$1} //$channel;; readingsBulkUpdate($hash, $chan ,$data); } $found=1; @@ -402,8 +405,9 @@ sub OBIS_Parse($$) } if ($found==0) { $rmsg=~/^((?:\d{1,3}-\d{1,3}:)?\d{1,3}.\d{1,3}.\d{1,3})(?:\*\d{1,3})?(?:\(.*?\))?\((.*?)(?:\*.*)?\)/; + my $chan=$hash->{helper}{Channels}{$channel} //$hash->{helper}{Channels}{$1} // $OBIS_channels{$1} //$channel;; if (length $2) { - readingsBulkUpdate($hash, $channel ,$2); + readingsBulkUpdate($hash, $chan ,$2); } } }