mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-03 16:56:54 +00:00
ZWDongle/ZWave: readd changes (#38315)
git-svn-id: https://svn.fhem.de/fhem/trunk@9027 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
93f3c785c4
commit
4f508166dc
@ -36,7 +36,6 @@ my %sets = (
|
|||||||
"sendNIF" => { cmd => "12%02x05@" },# ZW_SEND_NODE_INFORMATION
|
"sendNIF" => { cmd => "12%02x05@" },# ZW_SEND_NODE_INFORMATION
|
||||||
"setNIF" => { cmd => "03%02x%02x%02x%02x" },
|
"setNIF" => { cmd => "03%02x%02x%02x%02x" },
|
||||||
# SERIAL_API_APPL_NODE_INFORMATION
|
# SERIAL_API_APPL_NODE_INFORMATION
|
||||||
"timeouts" => { cmd => "06%02x%02x"},# SERIAL_API_SET_TIMEOUTS
|
|
||||||
"reopen" => { cmd => "" },
|
"reopen" => { cmd => "" },
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -51,6 +50,7 @@ my %gets = (
|
|||||||
"nodeInfo" => "41%02x", # ZW_GET_NODE_PROTOCOL_INFO
|
"nodeInfo" => "41%02x", # ZW_GET_NODE_PROTOCOL_INFO
|
||||||
"nodeList" => "02", # SERIAL_API_GET_INIT_DATA
|
"nodeList" => "02", # SERIAL_API_GET_INIT_DATA
|
||||||
"random" => "1c%02x", # ZW_GET_RANDOM
|
"random" => "1c%02x", # ZW_GET_RANDOM
|
||||||
|
"timeouts" => "06%02x%02x", # SERIAL_API_SET_TIMEOUTS
|
||||||
"version" => "15", # ZW_GET_VERSION
|
"version" => "15", # ZW_GET_VERSION
|
||||||
|
|
||||||
"raw" => "%s", # hex
|
"raw" => "%s", # hex
|
||||||
@ -174,8 +174,6 @@ use vars qw(%zw_type6);
|
|||||||
'11' => 'SWITCH_MULTILEVEL',
|
'11' => 'SWITCH_MULTILEVEL',
|
||||||
);
|
);
|
||||||
|
|
||||||
my $serInit;
|
|
||||||
|
|
||||||
sub
|
sub
|
||||||
ZWDongle_Initialize($)
|
ZWDongle_Initialize($)
|
||||||
{
|
{
|
||||||
@ -337,7 +335,7 @@ ZWDongle_Get($@)
|
|||||||
if(!defined($gets{$type}));
|
if(!defined($gets{$type}));
|
||||||
|
|
||||||
my $fb = substr($gets{$type}, 0, 2);
|
my $fb = substr($gets{$type}, 0, 2);
|
||||||
if($fb =~ m/^[0-8A-F]+$/i && !$serInit &&
|
if($fb =~ m/^[0-8A-F]+$/i && $type ne "caps" &&
|
||||||
ReadingsVal($name, "caps","") !~ m/\b$zw_func_id{$fb}\b/) {
|
ReadingsVal($name, "caps","") !~ m/\b$zw_func_id{$fb}\b/) {
|
||||||
return "$type is unsupported by this controller";
|
return "$type is unsupported by this controller";
|
||||||
}
|
}
|
||||||
@ -475,20 +473,20 @@ ZWDongle_DoInit($)
|
|||||||
{
|
{
|
||||||
my $hash = shift;
|
my $hash = shift;
|
||||||
my $name = $hash->{NAME};
|
my $name = $hash->{NAME};
|
||||||
$serInit = 1;
|
|
||||||
|
|
||||||
DevIo_SetHwHandshake($hash) if($hash->{USBDev});
|
DevIo_SetHwHandshake($hash) if($hash->{USBDev});
|
||||||
$hash->{PARTIAL} = "";
|
$hash->{PARTIAL} = "";
|
||||||
|
|
||||||
ZWDongle_Clear($hash);
|
ZWDongle_Clear($hash);
|
||||||
ZWDongle_Get($hash, $name, "caps"); $serInit = 0;
|
ZWDongle_Get($hash, $name, "caps");
|
||||||
ZWDongle_Get($hash, $name, "homeId");
|
ZWDongle_Get($hash, $name, "homeId");
|
||||||
ZWDongle_Get($hash, $name, ("random", 32)); # Sec relevant
|
ZWDongle_Get($hash, $name, ("random", 32)); # Sec relevant
|
||||||
ZWDongle_Set($hash, $name, ("timeouts", 100, 15)); # Sec relevant
|
ZWDongle_Set($hash, $name, ("timeouts", 100, 15)); # Sec relevant
|
||||||
ZWDongle_ReadAnswer($hash, "timeouts", "^0106");
|
ZWDongle_ReadAnswer($hash, "timeouts", "^0106");
|
||||||
# NODEINFO_LISTENING, Generic Static controller, Specific Static Controller, 0
|
# NODEINFO_LISTENING, Generic Static controller, Specific Static Controller, 0
|
||||||
ZWDongle_Set($hash, $name, ("setNIF", 1, 2, 1, 0)); # Sec relevant (?)
|
ZWDongle_Set($hash, $name, ("setNIF", 1, 2, 1, 0)); # Sec relevant (?)
|
||||||
$hash->{STATE} = "Initialized";
|
|
||||||
|
readingsSingleUpdate($hash, "state", "Initialized", 1);
|
||||||
return undef;
|
return undef;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,7 +21,8 @@ my %zwave_id2class;
|
|||||||
my %zwave_class = (
|
my %zwave_class = (
|
||||||
NO_OPERATION => { id => '00' },
|
NO_OPERATION => { id => '00' },
|
||||||
BASIC => { id => '20',
|
BASIC => { id => '20',
|
||||||
set => { basicValue => "01%02x" },
|
set => { basicValue => "01%02x",
|
||||||
|
basicSet => "01%02x" }, # Alias, Forum #38200
|
||||||
get => { basicStatus => "02", },
|
get => { basicStatus => "02", },
|
||||||
parse => { "..2001(.*)"=> '"basicSet:$1"', # Forum #36980
|
parse => { "..2001(.*)"=> '"basicSet:$1"', # Forum #36980
|
||||||
"..2002" => "basicGet:request", # sent by the remote
|
"..2002" => "basicGet:request", # sent by the remote
|
||||||
@ -1972,6 +1973,9 @@ s2Hex($)
|
|||||||
<li>basicValue value<br>
|
<li>basicValue value<br>
|
||||||
Send value (0-255) to this device. The interpretation is device dependent,
|
Send value (0-255) to this device. The interpretation is device dependent,
|
||||||
e.g. for a SWITCH_BINARY device 0 is off and anything else is on.</li>
|
e.g. for a SWITCH_BINARY device 0 is off and anything else is on.</li>
|
||||||
|
<li>basicValue value<br>
|
||||||
|
Alias for basicValue, to make mapping from the incoming events easier.
|
||||||
|
</li><br>
|
||||||
|
|
||||||
<br><br><b>Class BASIC_WINDOW_COVERING</b>
|
<br><br><b>Class BASIC_WINDOW_COVERING</b>
|
||||||
<li>coveringClose<br>
|
<li>coveringClose<br>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user