mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-03 16:56:54 +00:00
Clients/regexpCLients and Matchlist residing optionally in the device (not the
module). git-svn-id: https://svn.fhem.de/fhem/trunk@764 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
6582c6c62b
commit
33c46c0d18
@ -76,10 +76,6 @@ CUL_Initialize($)
|
|||||||
# Provider
|
# Provider
|
||||||
$hash->{ReadFn} = "CUL_Read";
|
$hash->{ReadFn} = "CUL_Read";
|
||||||
$hash->{WriteFn} = "CUL_Write";
|
$hash->{WriteFn} = "CUL_Write";
|
||||||
$hash->{Clients} = $clientsSlowRF;
|
|
||||||
$hash->{MatchList} = \%matchListSlowRF;
|
|
||||||
$hash->{HomeMaticClients} = $clientsHomeMatic;
|
|
||||||
$hash->{HomeMaticMatchList} = \%matchListHomeMatic;
|
|
||||||
$hash->{ReadyFn} = "CUL_Ready";
|
$hash->{ReadyFn} = "CUL_Ready";
|
||||||
|
|
||||||
# Normal devices
|
# Normal devices
|
||||||
@ -117,6 +113,8 @@ CUL_Define($$)
|
|||||||
if(uc($a[3]) !~ m/^[0-6][0-9A-F][0-6][0-9A-F]$/);
|
if(uc($a[3]) !~ m/^[0-6][0-9A-F][0-6][0-9A-F]$/);
|
||||||
$hash->{FHTID} = uc($a[3]);
|
$hash->{FHTID} = uc($a[3]);
|
||||||
$hash->{initString} = "X21";
|
$hash->{initString} = "X21";
|
||||||
|
$hash->{Clients} = $clientsSlowRF;
|
||||||
|
$hash->{MatchList} = \%matchListSlowRF;
|
||||||
|
|
||||||
if($dev eq "none") {
|
if($dev eq "none") {
|
||||||
Log 1, "$name device is none, commands will be echoed only";
|
Log 1, "$name device is none, commands will be echoed only";
|
||||||
@ -1122,13 +1120,15 @@ CUL_Attr(@)
|
|||||||
|
|
||||||
if($a[3] eq "HomeMatic") {
|
if($a[3] eq "HomeMatic") {
|
||||||
return if($hash->{initString} eq "Ar");
|
return if($hash->{initString} eq "Ar");
|
||||||
$hash->{mode} = "HomeMatic";
|
$hash->{Clients} = $clientsHomeMatic;
|
||||||
|
$hash->{MatchList} = \%matchListHomeMatic;
|
||||||
$hash->{initString} = "Ar";
|
$hash->{initString} = "Ar";
|
||||||
CUL_SimpleWrite($hash, $hash->{initString});
|
CUL_SimpleWrite($hash, $hash->{initString});
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
return if($hash->{initString} eq "X21");
|
return if($hash->{initString} eq "X21");
|
||||||
delete($hash->{mode});
|
$hash->{Clients} = $clientsSlowRF;
|
||||||
|
$hash->{MatchList} = \%matchListSlowRF;
|
||||||
$hash->{initString} = "X21";
|
$hash->{initString} = "X21";
|
||||||
CUL_SimpleWrite($hash, "Ax");
|
CUL_SimpleWrite($hash, "Ax");
|
||||||
CUL_SimpleWrite($hash, $hash->{initString});
|
CUL_SimpleWrite($hash, $hash->{initString});
|
||||||
|
@ -22,6 +22,7 @@ my %culHmDevProps=(
|
|||||||
"41" => { st => "sensor", cl => "sender" },
|
"41" => { st => "sensor", cl => "sender" },
|
||||||
"42" => { st => "swi", cl => "sender" },
|
"42" => { st => "swi", cl => "sender" },
|
||||||
"43" => { st => "pushButton", cl => "sender" },
|
"43" => { st => "pushButton", cl => "sender" },
|
||||||
|
"60" => { st => "KFM100", cl => "sender" },
|
||||||
"80" => { st => "threeStateSensor",cl => "sender" },
|
"80" => { st => "threeStateSensor",cl => "sender" },
|
||||||
"81" => { st => "motionDetector", cl => "sender" },
|
"81" => { st => "motionDetector", cl => "sender" },
|
||||||
"C0" => { st => "keyMatic", cl => "sender" },
|
"C0" => { st => "keyMatic", cl => "sender" },
|
||||||
@ -86,7 +87,9 @@ my %culHmModel=(
|
|||||||
"0044" => "HM-SEN-EP",
|
"0044" => "HM-SEN-EP",
|
||||||
"0045" => "HM-SEC-WDS",
|
"0045" => "HM-SEC-WDS",
|
||||||
"0046" => "HM-SWI-3-FM",
|
"0046" => "HM-SWI-3-FM",
|
||||||
|
"0047" => "KFM-Display",
|
||||||
"0048" => "IS-WDS-TH-OD-S-R3",
|
"0048" => "IS-WDS-TH-OD-S-R3",
|
||||||
|
"0049" => "KFM-Sensor",
|
||||||
"004A" => "HM-SEC-MDIR",
|
"004A" => "HM-SEC-MDIR",
|
||||||
"004C" => "HM-RC-12-SW",
|
"004C" => "HM-RC-12-SW",
|
||||||
"004D" => "HM-RC-19-SW",
|
"004D" => "HM-RC-19-SW",
|
||||||
@ -324,7 +327,7 @@ CUL_HM_Set($@)
|
|||||||
return "Usage: set $a[0] $cmd <btn> [on|off] <txt1> <txt2>" if(@a != 6);
|
return "Usage: set $a[0] $cmd <btn> [on|off] <txt1> <txt2>" if(@a != 6);
|
||||||
return "$a[2] is not a button number" if($a[2] !~ m/^\d$/);
|
return "$a[2] is not a button number" if($a[2] !~ m/^\d$/);
|
||||||
return "$a[3] is not on or off" if($a[3] !~ m/^(on|off)$/);
|
return "$a[3] is not on or off" if($a[3] !~ m/^(on|off)$/);
|
||||||
my $bn = $a[2]*2-($a[3] eq "on" ? 1 : 0);
|
my $bn = $a[2]*2-($a[3] eq "on" ? 0 : 1);
|
||||||
|
|
||||||
CUL_HM_PushCmdStack($hash,
|
CUL_HM_PushCmdStack($hash,
|
||||||
sprintf("++A001%s%s%02d050000000001", $id, $hash->{DEF}, $bn));
|
sprintf("++A001%s%s%02d050000000001", $id, $hash->{DEF}, $bn));
|
||||||
@ -344,8 +347,8 @@ CUL_HM_Set($@)
|
|||||||
$tl = length($l1);
|
$tl = length($l1);
|
||||||
for(my $l = 0; $l < $tl; $l+=28) {
|
for(my $l = 0; $l < $tl; $l+=28) {
|
||||||
my $ml = $tl-$l < 28 ? $tl-$l : 28;
|
my $ml = $tl-$l < 28 ? $tl-$l : 28;
|
||||||
CUL_HM_PushCmdStack($hash,
|
CUL_HM_PushCmdStack($hash, sprintf("++A001%s%s%02d08%s",
|
||||||
sprintf("++A001%s%s%02d08%s", $id, $hash->{DEF}, $bn, substr($l1,$l,$ml)));
|
$id, $hash->{DEF}, $bn, substr($l1,$l,$ml)));
|
||||||
}
|
}
|
||||||
|
|
||||||
CUL_HM_PushCmdStack($hash,
|
CUL_HM_PushCmdStack($hash,
|
||||||
@ -411,12 +414,13 @@ CUL_HM_Pair(@)
|
|||||||
my $stn = $attr{$name}{subType}; # subTypeName
|
my $stn = $attr{$name}{subType}; # subTypeName
|
||||||
my $stt = $stn eq "unknown" ? "subType unknown" : "is a $stn";
|
my $stt = $stn eq "unknown" ? "subType unknown" : "is a $stn";
|
||||||
|
|
||||||
Log GetLogLevel($name,2), "CUL_HM pair: $name $stt, model $attr{$name}{model} ".
|
Log GetLogLevel($name,2),
|
||||||
"serialNr $attr{$name}{serialNr}";
|
"CUL_HM pair: $name $stt, model $attr{$name}{model} ".
|
||||||
|
"serialNr $attr{$name}{serialNr}";
|
||||||
|
|
||||||
# Abort if we are not authorized
|
# Abort if we are not authorized
|
||||||
if($dst eq "000000") {
|
if($dst eq "000000") {
|
||||||
return if(!$iohash->{HM_PAIR} && !AttrVal($iohash->{NAME}, "hm_autopair", 0));
|
return if(!$iohash->{hmPair});
|
||||||
|
|
||||||
} elsif($dst ne $id) {
|
} elsif($dst ne $id) {
|
||||||
return "" ;
|
return "" ;
|
||||||
|
@ -24,7 +24,6 @@ FHEM2FHEM_Initialize($)
|
|||||||
$hash->{WriteFn} = "FHEM2FHEM_Write";
|
$hash->{WriteFn} = "FHEM2FHEM_Write";
|
||||||
$hash->{ReadyFn} = "FHEM2FHEM_Ready";
|
$hash->{ReadyFn} = "FHEM2FHEM_Ready";
|
||||||
$hash->{noRawInform} = 1;
|
$hash->{noRawInform} = 1;
|
||||||
$hash->{regexpClients} = ".*";
|
|
||||||
|
|
||||||
# Normal devices
|
# Normal devices
|
||||||
$hash->{DefFn} = "FHEM2FHEM_Define";
|
$hash->{DefFn} = "FHEM2FHEM_Define";
|
||||||
@ -54,6 +53,7 @@ FHEM2FHEM_Define($$)
|
|||||||
} else {
|
} else {
|
||||||
$hash->{remoteDevice} = $2;
|
$hash->{remoteDevice} = $2;
|
||||||
$hash->{remoteDevice} =~ s/^://;
|
$hash->{remoteDevice} =~ s/^://;
|
||||||
|
$hash->{regexpClients} = ".*";
|
||||||
}
|
}
|
||||||
|
|
||||||
my $dev = $a[2];
|
my $dev = $a[2];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user