2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-10 09:16:53 +00:00

HM devices: THSensor,KFM (first try)

git-svn-id: https://svn.fhem.de/fhem/trunk@771 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2010-12-18 07:49:55 +00:00
parent a8bce92309
commit 6ba5458efe
2 changed files with 37 additions and 9 deletions

View File

@ -1117,10 +1117,10 @@ CUL_Attr(@)
my $hash = $defs{$name};
if($a[3] eq "HomeMatic") {
return if($hash->{initString} eq "Ar");
return if($hash->{initString} =~ m/Ar/);
$hash->{Clients} = $clientsHomeMatic;
$hash->{MatchList} = \%matchListHomeMatic;
$hash->{initString} = "Ar";
$hash->{initString} = "X21\nAr"; # X21 is needed for RSSI reporting
CUL_SimpleWrite($hash, $hash->{initString});
} else {
@ -1128,7 +1128,7 @@ CUL_Attr(@)
$hash->{Clients} = $clientsSlowRF;
$hash->{MatchList} = \%matchListSlowRF;
$hash->{initString} = "X21";
CUL_SimpleWrite($hash, "Ax");
CUL_SimpleWrite($hash, "Ax"); # reset AskSin
CUL_SimpleWrite($hash, $hash->{initString});
}

View File

@ -15,15 +15,15 @@ sub CUL_HM_SendCmd($$$$);
sub CUL_HM_Set($@);
my %culHmDevProps=(
"10" => { st => "switch", cl => "receiver" }, # Parse, Set
"20" => { st => "dimmer", cl => "receiver" }, # Parse, Set
"30" => { st => "blindActuator", cl => "receiver" }, # Parse, Set
"10" => { st => "switch", cl => "receiver" }, # Parse,Set
"20" => { st => "dimmer", cl => "receiver" }, # Parse,Set
"30" => { st => "blindActuator", cl => "receiver" }, # Parse,Set
"40" => { st => "remote", cl => "sender" }, # Parse
"41" => { st => "sensor", cl => "sender" },
"42" => { st => "swi", cl => "sender" },
"43" => { st => "pushButton", cl => "sender" },
"60" => { st => "KFM100", cl => "sender" },
"70" => { st => "THSensor", cl => "sender" },
"60" => { st => "KFM100", cl => "sender" }, # Parse,unfinished
"70" => { st => "THSensor", cl => "sender" }, # Parse,unfinished
"80" => { st => "threeStateSensor",cl => "sender" },
"81" => { st => "motionDetector", cl => "sender" },
"C0" => { st => "keyMatic", cl => "sender" },
@ -195,7 +195,8 @@ CUL_HM_Parse($$)
$isack = 1;
}
my $st = AttrVal($name, "subType", undef);
my $st = AttrVal($name, "subType", "");
my $model = AttrVal($name, "model", "");
my $cm = "$channel$msgtype";
my $lcm = "$len$channel$msgtype";
@ -273,6 +274,33 @@ CUL_HM_Parse($$)
}
} elsif($st eq "THSensor") { ##########################################
if($p =~ m/(....)(..)/) {
my ($t, $h) = ($1, $2);
$t = hex($t)/10;
$t -= 3276.8 if($t > 1638.4);
$h = sprintf("%.1f", hex($h)/2.55);
push @event, "state:T:$t H:$h";
push @event, "temperature:$t";
push @event, "humidity:$h";
}
} elsif($st eq "KFM" && $model eq "KFM-Sensor") {
if($p =~ m/814(.)0200(..)(..)(..)/) {
my ($k_cnt, $k_v1, $k_v2, $k_v3) = ($1,$2,$3,$4);
my $v = 128-hex($k_v2); # FIXME: calibrate
$v = 256+$v if($v < 0);
push @event, "rawValue:$v";
}
}
push @event, "unknownMsg:$p" if(!@event);