mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-04-16 10:46:03 +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 $cde = ($firstbyte&7) + 1;
|
||||||
my $type = $tlist{$a[2]} ? $tlist{$a[2]} : "unknown";
|
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};
|
my $def = $defptr{$hash->{NAME} . "." . $cde};
|
||||||
$def = $defptr{$cde} if(!$def);
|
$def = $defptr{$cde} if(!$def);
|
||||||
return "" if($def->{IODev} && $def->{IODev}{NAME} ne $hash->{NAME});
|
|
||||||
|
|
||||||
if(!$def) {
|
if(!$def) {
|
||||||
Log 1, "CUL_WS UNDEFINED $type sensor detected, code $cde";
|
Log 1, "CUL_WS UNDEFINED $type sensor detected, code $cde";
|
||||||
return "UNDEFINED CUL_WS: $cde";
|
return "UNDEFINED CUL_WS: $cde";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# It's not our device
|
||||||
|
return "" if($def->{IODev} && $def->{IODev}{NAME} ne $hash->{NAME});
|
||||||
|
|
||||||
|
|
||||||
my $tm=TimeNow();
|
my $tm=TimeNow();
|
||||||
$hash = $def;
|
$hash = $def;
|
||||||
|
|
||||||
@ -127,7 +133,7 @@ CUL_WS_Parse($$)
|
|||||||
$rain = hex($a[5].$a[3].$a[4]) + $c;
|
$rain = hex($a[5].$a[3].$a[4]) + $c;
|
||||||
$val = "R: $rain";
|
$val = "R: $rain";
|
||||||
$devtype = "Rain";
|
$devtype = "Rain";
|
||||||
$family = "WS300";
|
$family = "WS7000";
|
||||||
}
|
}
|
||||||
|
|
||||||
if($typbyte == 3 && int(@a) > 8) { # wind
|
if($typbyte == 3 && int(@a) > 8) { # wind
|
||||||
@ -137,7 +143,7 @@ CUL_WS_Parse($$)
|
|||||||
my $swing = ($a[7]&6) >> 2;
|
my $swing = ($a[7]&6) >> 2;
|
||||||
$val = "W: $wnd D: $dir A: $swing";
|
$val = "W: $wnd D: $dir A: $swing";
|
||||||
$devtype = "Wind";
|
$devtype = "Wind";
|
||||||
$family = "WS300";
|
$family = "WS7000";
|
||||||
}
|
}
|
||||||
|
|
||||||
if($typbyte == 4 && int(@a) > 10) { # temp/hum/press
|
if($typbyte == 4 && int(@a) > 10) { # temp/hum/press
|
||||||
@ -150,7 +156,7 @@ CUL_WS_Parse($$)
|
|||||||
}
|
}
|
||||||
$val = "T: $tmp H: $hum P: $prs";
|
$val = "T: $tmp H: $hum P: $prs";
|
||||||
$devtype = "Indoor";
|
$devtype = "Indoor";
|
||||||
$family = "WS300";
|
$family = "WS7000";
|
||||||
}
|
}
|
||||||
|
|
||||||
if($typbyte == 5 && int(@a) > 5) { # brightness
|
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};
|
my $br = (hex($a[5].$a[4].$a[3])*$fakt) + $hash->{corr1};
|
||||||
$val = "B: $br";
|
$val = "B: $br";
|
||||||
$devtype = "Brightness";
|
$devtype = "Brightness";
|
||||||
$family = "WS300";
|
$family = "WS7000";
|
||||||
}
|
}
|
||||||
|
|
||||||
if($typbyte == 6 && int(@a) > 0) { # Pyro: wurde nie gebaut
|
if($typbyte == 6 && int(@a) > 0) { # Pyro: wurde nie gebaut
|
||||||
$devtype = "Pyro";
|
$devtype = "Pyro";
|
||||||
$family = "WS300";
|
$family = "WS7000";
|
||||||
}
|
}
|
||||||
|
|
||||||
if($typbyte == 7 && int(@a) > 8) { # Temp/hum
|
if($typbyte == 7 && int(@a) > 8) { # Temp/hum
|
||||||
@ -177,6 +183,7 @@ CUL_WS_Parse($$)
|
|||||||
$hum = ($a[7].$a[8].".".$a[5]) + $hash->{corr2};
|
$hum = ($a[7].$a[8].".".$a[5]) + $hash->{corr2};
|
||||||
$val = "T: $tmp H: $hum";
|
$val = "T: $tmp H: $hum";
|
||||||
$devtype = "Temp/Hum";
|
$devtype = "Temp/Hum";
|
||||||
|
$family = "WS7000";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -218,13 +225,14 @@ CUL_WS_Parse($$)
|
|||||||
}
|
}
|
||||||
|
|
||||||
my $name = $hash->{NAME};
|
my $name = $hash->{NAME};
|
||||||
Log GetLogLevel($name,4), "CUL_WS $devtype $name: $val";
|
|
||||||
if(!$val) {
|
if(!$val) {
|
||||||
Log GetLogLevel($name,1), "CUL_WS Cannot decode $msg";
|
Log GetLogLevel($name,1), "CUL_WS Cannot decode $msg";
|
||||||
return "";
|
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";
|
Log 1, "BOGUS: $name reading: $val, skipping it";
|
||||||
return $name;
|
return $name;
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
FHEM:
|
FHEM:
|
||||||
|
- RAWTIME
|
||||||
|
|
||||||
- Remote serial device via IP (for the FHZ1300 WLAN)
|
- Remote serial device via IP (for the FHZ1300 WLAN)
|
||||||
- Common buffer for parallel use of two devices: CUL+FHZ, (WS300/EM1000PC?)
|
- Common buffer for parallel use of two devices: CUL+FHZ, (WS300/EM1000PC?)
|
||||||
- fhem-to-fhem module
|
- fhem-to-fhem module
|
||||||
|
@ -59,7 +59,7 @@ Currently implemented features:<br>
|
|||||||
<li>FHT (Receive/Send)
|
<li>FHT (Receive/Send)
|
||||||
<li>HMS (Receive)
|
<li>HMS (Receive)
|
||||||
<li>S300 (KS300, S300TH, S555TH, etc)
|
<li>S300 (KS300, S300TH, S555TH, etc)
|
||||||
/ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li>reading WS300 data, and up to 9 attached devices</li>
|
<li>reading WS300 data, and up to 9 attached devices</li>
|
||||||
<li>reading EM1000WZ/EM1000EM/EM1000GZ data via an attached EM1010PC</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($internal_data); #
|
||||||
use vars qw(%cmds); # Global command name hash. To be expanded
|
use vars qw(%cmds); # Global command name hash. To be expanded
|
||||||
use vars qw(%data); # Hash for user data
|
use vars qw(%data); # Hash for user data
|
||||||
|
use vars qw($devcount); # To sort the devices
|
||||||
|
|
||||||
use vars qw($reread_active);
|
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 $sig_term = 0; # if set to 1, terminate (saving the state)
|
||||||
my $modpath_set; # Check if modpath was used, and report if not.
|
my $modpath_set; # Check if modpath was used, and report if not.
|
||||||
my $global_cl; # To use from perl snippets
|
my $global_cl; # To use from perl snippets
|
||||||
my $devcount = 0; # To sort the devices
|
|
||||||
my %defaultattr; # Default attributes
|
my %defaultattr; # Default attributes
|
||||||
my %intAt; # Internal at timer hash.
|
my %intAt; # Internal at timer hash.
|
||||||
my $nextat; # Time when next timer will be triggered.
|
my $nextat; # Time when next timer will be triggered.
|
||||||
my $intAtCnt=0;
|
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 =
|
my $namedef =
|
||||||
"where <name> is either:\n" .
|
"where <name> is either:\n" .
|
||||||
"- a single device name\n" .
|
"- a single device name\n" .
|
||||||
@ -401,10 +401,12 @@ sub
|
|||||||
GetLogLevel(@)
|
GetLogLevel(@)
|
||||||
{
|
{
|
||||||
my ($dev,$deflev) = @_;
|
my ($dev,$deflev) = @_;
|
||||||
|
my $df = defined($deflev) ? $deflev : 2;
|
||||||
|
|
||||||
|
return $df if(!defined($dev));
|
||||||
return $attr{$dev}{loglevel}
|
return $attr{$dev}{loglevel}
|
||||||
if(defined($attr{$dev}) && defined($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) = @_;
|
my ($arg) = @_;
|
||||||
|
|
||||||
$devcount = 0;
|
$devcount = 1;
|
||||||
$defs{global}{NR} = $devcount++;
|
$defs{global}{NR} = $devcount++;
|
||||||
$defs{global}{TYPE} = "_internal_";
|
$defs{global}{TYPE} = "_internal_";
|
||||||
$defs{global}{STATE} = "<no definition>";
|
$defs{global}{STATE} = "<no definition>";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user