2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-14 21:49:12 +00:00

Small changes/fixes

git-svn-id: https://svn.fhem.de/fhem/trunk@418 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2009-07-26 09:20:07 +00:00
parent 218dc58b75
commit efea326a90
4 changed files with 26 additions and 14 deletions

View File

@ -84,15 +84,21 @@ CUL_WS_Parse($$)
my $cde = ($firstbyte&7) + 1;
my $type = $tlist{$a[2]} ? $tlist{$a[2]} : "unknown";
# There are only 8 S300 devices. In order to enable more, we try to look up
# the name in connection with the receiver's name ("CUL868.1", "CUL433.1")
# See attr <name> IODev XX
my $def = $defptr{$hash->{NAME} . "." . $cde};
$def = $defptr{$cde} if(!$def);
return "" if($def->{IODev} && $def->{IODev}{NAME} ne $hash->{NAME});
if(!$def) {
Log 1, "CUL_WS UNDEFINED $type sensor detected, code $cde";
return "UNDEFINED CUL_WS: $cde";
}
# It's not our device
return "" if($def->{IODev} && $def->{IODev}{NAME} ne $hash->{NAME});
my $tm=TimeNow();
$hash = $def;
@ -127,7 +133,7 @@ CUL_WS_Parse($$)
$rain = hex($a[5].$a[3].$a[4]) + $c;
$val = "R: $rain";
$devtype = "Rain";
$family = "WS300";
$family = "WS7000";
}
if($typbyte == 3 && int(@a) > 8) { # wind
@ -137,7 +143,7 @@ CUL_WS_Parse($$)
my $swing = ($a[7]&6) >> 2;
$val = "W: $wnd D: $dir A: $swing";
$devtype = "Wind";
$family = "WS300";
$family = "WS7000";
}
if($typbyte == 4 && int(@a) > 10) { # temp/hum/press
@ -150,7 +156,7 @@ CUL_WS_Parse($$)
}
$val = "T: $tmp H: $hum P: $prs";
$devtype = "Indoor";
$family = "WS300";
$family = "WS7000";
}
if($typbyte == 5 && int(@a) > 5) { # brightness
@ -163,12 +169,12 @@ CUL_WS_Parse($$)
my $br = (hex($a[5].$a[4].$a[3])*$fakt) + $hash->{corr1};
$val = "B: $br";
$devtype = "Brightness";
$family = "WS300";
$family = "WS7000";
}
if($typbyte == 6 && int(@a) > 0) { # Pyro: wurde nie gebaut
$devtype = "Pyro";
$family = "WS300";
$family = "WS7000";
}
if($typbyte == 7 && int(@a) > 8) { # Temp/hum
@ -177,6 +183,7 @@ CUL_WS_Parse($$)
$hum = ($a[7].$a[8].".".$a[5]) + $hash->{corr2};
$val = "T: $tmp H: $hum";
$devtype = "Temp/Hum";
$family = "WS7000";
}
@ -218,13 +225,14 @@ CUL_WS_Parse($$)
}
my $name = $hash->{NAME};
Log GetLogLevel($name,4), "CUL_WS $devtype $name: $val";
if(!$val) {
Log GetLogLevel($name,1), "CUL_WS Cannot decode $msg";
return "";
}
Log GetLogLevel($name,4), "CUL_WS $devtype $name: $val";
if(defined($hum) && $hum < 0) {
if(defined($hum) && $hum < 0) {
Log 1, "BOGUS: $name reading: $val, skipping it";
return $name;
}

View File

@ -1,4 +1,6 @@
FHEM:
- RAWTIME
- Remote serial device via IP (for the FHZ1300 WLAN)
- Common buffer for parallel use of two devices: CUL+FHZ, (WS300/EM1000PC?)
- fhem-to-fhem module

View File

@ -59,7 +59,7 @@ Currently implemented features:<br>
<li>FHT (Receive/Send)
<li>HMS (Receive)
<li>S300 (KS300, S300TH, S555TH, etc)
/ul>
</ul>
</li>
<li>reading WS300 data, and up to 9 attached devices</li>
<li>reading EM1000WZ/EM1000EM/EM1000GZ data via an attached EM1010PC</li>

View File

@ -133,6 +133,7 @@ use vars qw($init_done); #
use vars qw($internal_data); #
use vars qw(%cmds); # Global command name hash. To be expanded
use vars qw(%data); # Hash for user data
use vars qw($devcount); # To sort the devices
use vars qw($reread_active);
@ -146,12 +147,11 @@ my $rcvdquit; # Used for quit handling in init files
my $sig_term = 0; # if set to 1, terminate (saving the state)
my $modpath_set; # Check if modpath was used, and report if not.
my $global_cl; # To use from perl snippets
my $devcount = 0; # To sort the devices
my %defaultattr; # Default attributes
my %intAt; # Internal at timer hash.
my $nextat; # Time when next timer will be triggered.
my $intAtCnt=0;
my $cvsid = '$Id: fhem.pl,v 1.75 2009-07-04 10:09:27 rudolfkoenig Exp $';
my $cvsid = '$Id: fhem.pl,v 1.76 2009-07-26 09:20:07 rudolfkoenig Exp $';
my $namedef =
"where <name> is either:\n" .
"- a single device name\n" .
@ -401,10 +401,12 @@ sub
GetLogLevel(@)
{
my ($dev,$deflev) = @_;
my $df = defined($deflev) ? $deflev : 2;
return $df if(!defined($dev));
return $attr{$dev}{loglevel}
if(defined($attr{$dev}) && defined($attr{$dev}{loglevel}));
return defined($deflev) ? $deflev : 2;
return $df;
}
@ -1930,7 +1932,7 @@ doGlobalDef($)
{
my ($arg) = @_;
$devcount = 0;
$devcount = 1;
$defs{global}{NR} = $devcount++;
$defs{global}{TYPE} = "_internal_";
$defs{global}{STATE} = "<no definition>";