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