2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-02-01 01:09:47 +00:00

WS3600 update readings with readingsBulkUpdate

git-svn-id: https://svn.fhem.de/fhem/trunk@4100 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
joes1 2013-10-23 09:22:03 +00:00
parent 2690e8eff3
commit 8afada79cf

View File

@ -37,6 +37,8 @@ package main;
# 15.07.2013 Josch state handling improved (shows conn problems) # 15.07.2013 Josch state handling improved (shows conn problems)
# 16.08.2013 Josch Logging improved: Level relative to verbosity level # 16.08.2013 Josch Logging improved: Level relative to verbosity level
# 27.08.2013 Josch Change to Log3, loglevel removed # 27.08.2013 Josch Change to Log3, loglevel removed
# 02.10.2013 Josch check if rawreading defined (empty lines)
# 22.10.2013 Josch update readings with readingsBulkUpdate()
use strict; use strict;
use warnings; use warnings;
#use Device::SerialPort; #use Device::SerialPort;
@ -249,9 +251,9 @@ WS3600_Read($)
my $AnythingRead = 0; my $AnythingRead = 0;
$hash->{LastRead} = $tn; $hash->{LastRead} = $tn;
readingsBeginUpdate($hash);
if(defined($defs{$name}{READINGS}{"State"})) { if(defined($defs{$name}{READINGS}{"State"})) {
$defs{$name}{READINGS}{"State"}{VAL} = 0xFF; readingsBulkUpdate($hash,"State", 0xFF);
$defs{$name}{READINGS}{"State"}{TIME} = $tn;
} }
# Log 4-GetLogLevel($name,0), "WS3600(Dbg): (4) Info"; # Log 4-GetLogLevel($name,0), "WS3600(Dbg): (4) Info";
@ -266,26 +268,26 @@ WS3600_Read($)
foreach my $inputline ( @lines ) { foreach my $inputline ( @lines ) {
$inputline =~ s/\s+$//; $inputline =~ s/\s+$//;
my ($rawreading, $val, $val2) = split(/ /, $inputline); my ($rawreading, $val, $val2) = split(/ /, $inputline);
if(defined($rawreading)) {
Log3 $name, 4, "WS3600(Dbg): $name read $inputline|$rawreading|$val|$val2"; Log3 $name, 4, "WS3600(Dbg): $name read $inputline|$rawreading|$val|$val2";
if(defined($TranslatedCodes{$rawreading})) { if(defined($TranslatedCodes{$rawreading})) {
$reading = $TranslatedCodes{$rawreading}; $reading = $TranslatedCodes{$rawreading};
$defs{$name}{READINGS}{$reading}{VAL} = $val; readingsBulkUpdate($hash,$reading, $val);
$defs{$name}{READINGS}{$reading}{TIME} = $tn; $AnythingRead = 1;
$AnythingRead = 1; }
} # write Date/Time-Records
# write Date/Time-Records elsif(defined($TranslatedDateTimeCodes{$rawreading})) {
elsif(defined($TranslatedDateTimeCodes{$rawreading})) { $reading = $TranslatedDateTimeCodes{$rawreading};
$reading = $TranslatedDateTimeCodes{$rawreading}; readingsBulkUpdate($hash,$reading, $val . " " . $val2);
$defs{$name}{READINGS}{$reading}{VAL} = $val . " " . $val2; $AnythingRead = 1;
$defs{$name}{READINGS}{$reading}{TIME} = $tn; }
$AnythingRead = 1; # append Time-Record to Date-Record (managed by same Name)
} elsif(defined($TranslatedTimeCodes{$rawreading})) {
# append Time-Record to Date-Record (managed by same Name) $reading = $TranslatedTimeCodes{$rawreading};
elsif(defined($TranslatedTimeCodes{$rawreading})) { $defs{$name}{READINGS}{$reading}{VAL} .= " " . $val;
$reading = $TranslatedTimeCodes{$rawreading}; $defs{$name}{READINGS}{$reading}{TIME} = $tn;
$defs{$name}{READINGS}{$reading}{VAL} .= " " . $val; $AnythingRead = 1;
$defs{$name}{READINGS}{$reading}{TIME} = $tn; }
$AnythingRead = 1;
} }
} }
if($AnythingRead) { if($AnythingRead) {
@ -297,11 +299,11 @@ WS3600_Read($)
. " Hi: " . $defs{$name}{READINGS}{"rel-Humidity-inside"}{VAL}; . " Hi: " . $defs{$name}{READINGS}{"rel-Humidity-inside"}{VAL};
$hash->{CHANGED}[0] = $hash->{STATE}; $hash->{CHANGED}[0] = $hash->{STATE};
DoTrigger($name, undef);
} }
else { else {
$hash->{STATE} = "no data received"; $hash->{STATE} = "no data received";
} }
readingsEndUpdate($hash,1);
# Call us in n seconds again. # Call us in n seconds again.
my $nt = gettimeofday() + $hash->{Timer}; my $nt = gettimeofday() + $hash->{Timer};
$nt -= $nt % $hash->{Timer}; # round $nt -= $nt % $hash->{Timer}; # round