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:
parent
218dc58b75
commit
efea326a90
@ -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;
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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>
|
||||
|
10
fhem/fhem.pl
10
fhem/fhem.pl
@ -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>";
|
||||
|
Loading…
x
Reference in New Issue
Block a user