2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-08 01:14:19 +00:00

47_OBIS: Removed the setSpeed-Function again until further tests

git-svn-id: https://svn.fhem.de/fhem/trunk@12510 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
icinger 2016-11-06 10:50:44 +00:00
parent 3e15d84aff
commit 0c6e554d4f

View File

@ -76,7 +76,7 @@ sub OBIS_Initialize($)
$hash->{ReadyFn} = "OBIS_Ready";
$hash->{DefFn} = "OBIS_Define";
$hash->{ParseFn} = "OBIS_Parse";
# $hash->{SetFn} = "OBIS_Set";
$hash->{SetFn} = "OBIS_Set";
$hash->{UndefFn} = "OBIS_Undef";
$hash->{AttrFn} = "OBIS_Attr";
@ -84,6 +84,9 @@ sub OBIS_Initialize($)
$readingFnAttributes;
}
#1B1B1B1B010101017605002605426200620072630101760107FFFFFFFFFFFF05000CAC6C0B0A01454D4800005A561C726201640DF29B620163676F0076050026054362006200726307017707FFFFFFFFFFFF0B0A01454D4800005A561C070100620AFFFF726201640DF29B7577070100603201010101010104454D480177070100600100FF010101010B0A01454D4800005A561C0177070100010800FF641C0104726201640DF29B621E52FF6404AB760177070100020800FF01726201640DF29B621E52FF6324910177070100100700FF0101621B52005301360101016373F100760500260544620062007263020171016326A3000000001B1B1B1B1A03CDC9
#1B1B1B1B010101017605002605456200620072630101760107FFFFFFFFFFFF05000CAC6D0B0A01454D4800005A561C726201640DF29C62016343D30076050026054662006200726307017707FFFFFFFFFFFF0B0A01454D4800005A561C070100620AFFFF726201640DF29C7577070100603201010101010104454D480177070100600100FF010101010B0A01454D4800005A561C0177070100010800FF641C0104726201640DF29C621E52FF6404AB770177070100020800FF01726201640DF29C621E52FF6324910177070100100700FF0101621B520053012C0101016319F6007605002605476200620072630201710163955D000000001B1B1B1B1A0310B4
#####################################
sub OBIS_Define($$)
{
@ -226,49 +229,49 @@ sub OBIS_Read($)
my $buf = DevIo_SimpleRead($hash);
my $b=$buf;
$b =~ s/(.)/sprintf("%X",ord($1))/eg;
if (defined $hash->{helper}{SpeedChange} && $hash->{helper}{SpeedChange} eq "")
if ( !defined($hash->{helper}{SpeedChange}) || ($hash->{helper}{SpeedChange} eq ""))
{
OBIS_Parse($hash,$buf) if ($hash->{helper}{EoM}!=1);
Log3 $hash,4, "parsing....\r\n";
} else
{
if ($hash->{helper}{SpeedChange2} eq "")
{
Log3 $hash,4,"Part 1";
# $hash->{helper}{SPEED}=$bd{$value};
DevIo_SimpleWrite($hash,$hash->{helper}{DEVICES}[2],undef) ;
Log3 $hash,4,"Writing ".$hash->{helper}{DEVICES}[2];
$hash->{helper}{SpeedChange2}="1";
} elsif ($hash->{helper}{SpeedChange2} eq "1")
{
if ($buf ne hex(15)) {
Log3 $hash,4,"Part 2";
my $sp=$hash->{helper}{SPEED};
my $d=$hash->{DeviceName};
my $repl=$sp;
Log3 $hash,4,"Old Dev: $d";
$d=~/(.*@)(\d*)(.*)/;
my $d2=$1.$hash->{helper}{SpeedChange}.$3;
# $d=~s/(.*@)(\d*)(.*)/$repl$2/ee;
Log3 $hash,4, "Replaced dev: $d2";
RemoveInternalTimer($hash);
DevIo_CloseDev($hash) if $hash->{DeviceName} ne "none";
$hash->{DeviceName} = $d2;
$hash->{helper}{EoM}=-1;
Log3 $hash,5,"OBIS ($name) - Opening device...";
my $t=OBIS_adjustAlign($hash,AttrVal($name,"alignTime",undef),$hash->{helper}{DEVICES}[1]);
Log3 ($hash,5,"OBIS ($name) - Internal timer set to ".FmtDateTime($t)) if ($hash->{helper}{DEVICES}[1]>0);
InternalTimer($t, "GetUpdate", $hash, 0) if ($hash->{helper}{DEVICES}[1]>0);
DevIo_OpenDev($hash, 1, "OBIS_Init");
} else
{
Log3 $hash,4,"Recieved NAK from Meter";
}
$hash->{helper}{SpeedChange2}="";
$hash->{helper}{SpeedChange}="";
Log3 $hash,4, "Cleared helper\r\n";
}
# if ($hash->{helper}{SpeedChange2} eq "")
# {
# Log3 $hash,4,"Part 1";
## $hash->{helper}{SPEED}=$bd{$value};
# DevIo_SimpleWrite($hash,$hash->{helper}{DEVICES}[2],undef) ;
# Log3 $hash,4,"Writing ".$hash->{helper}{DEVICES}[2];
# $hash->{helper}{SpeedChange2}="1";
# } elsif ($hash->{helper}{SpeedChange2} eq "1")
# {
# if ($buf ne hex(15)) {
# Log3 $hash,4,"Part 2";
# my $sp=$hash->{helper}{SPEED};
# my $d=$hash->{DeviceName};
# my $repl=$sp;
# Log3 $hash,4,"Old Dev: $d";
# $d=~/(.*@)(\d*)(.*)/;
# my $d2=$1.$hash->{helper}{SpeedChange}.$3;
# # $d=~s/(.*@)(\d*)(.*)/$repl$2/ee;
#
# Log3 $hash,4, "Replaced dev: $d2";
# RemoveInternalTimer($hash);
# DevIo_CloseDev($hash) if $hash->{DeviceName} ne "none";
# $hash->{DeviceName} = $d2;
# $hash->{helper}{EoM}=-1;
# Log3 $hash,5,"OBIS ($name) - Opening device...";
# my $t=OBIS_adjustAlign($hash,AttrVal($name,"alignTime",undef),$hash->{helper}{DEVICES}[1]);
# Log3 ($hash,5,"OBIS ($name) - Internal timer set to ".FmtDateTime($t)) if ($hash->{helper}{DEVICES}[1]>0);
# InternalTimer($t, "GetUpdate", $hash, 0) if ($hash->{helper}{DEVICES}[1]>0);
# DevIo_OpenDev($hash, 1, "OBIS_Init");
# } else
# {
# Log3 $hash,4,"Recieved NAK from Meter";
# }
# $hash->{helper}{SpeedChange2}="";
# $hash->{helper}{SpeedChange}="";
# Log3 $hash,4, "Cleared helper\r\n";
# }
}
}
return(undef);
@ -298,6 +301,7 @@ sub OBIS_trySMLdecode($$)
# my $telegramm = $&;
my @list=$&=~/(7707)([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]*)/g;
Log3 $hash, 5,"OBIS: Telegram=$msg";
Log 3,@list;
if (!@list) {Log3 $hash,3,"OBIS - Empty datagram: .$msg"};
my $line=hex($list[1])."-".hex($list[2]).":".hex($list[3]).".".hex($list[4]).".".hex($list[5])."*255(";
@ -380,6 +384,7 @@ sub OBIS_Parse($$)
{
my ($hash, $buf) = @_;
my $buf2=uc(unpack('H*',$buf));
Log 5,"uedduhskhdkjhsdkjh";
if($hash->{MeterType}!~/SML|Unknown/ && $buf2=~m/7701([0-9A-F]*?)01/g) {
Log 3,"OBIS_Ext called";
my (undef,undef,$OBISid,undef)=OBIS_decodeTL($1);
@ -397,7 +402,6 @@ sub OBIS_Parse($$)
$hash->{helper}{BUFFER} =substr( $hash->{helper}{BUFFER} , -10000);
}
my %dir=("<"=>"out",">"=>"in");
my $buffer=$hash->{helper}{BUFFER};
my $remainingSML;
($buffer,$remainingSML) = OBIS_trySMLdecode($hash,$buffer) if ($hash->{MeterType}=~/SML|Ext|Unknown/);
@ -522,7 +526,7 @@ sub OBIS_Parse($$)
}
if (AttrVal($name,"unitReadings","off") eq "off") {
$v1=~s/(.*)\*.*/$1/;
$v2=~s/(.*)\*.*/$1/;
if (length $v2) {}$v2=~s/(.*)\*.*/$1/};
}
$v1+=0 if (looks_like_number($v1));
$v2+=0 if (looks_like_number($v2));