2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-07 19:04:20 +00:00

10_ZWave.pm: implement ZW_APPLICATION_COMMAND_HANLDER_BRIDGE (Forum #134005)

git-svn-id: https://svn.fhem.de/fhem/trunk@27687 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2023-06-18 13:55:34 +00:00
parent 19fdf4dd33
commit e634176953

View File

@ -99,7 +99,7 @@ my %zwave_class = (
"..2607(..)(..)" =>
'sprintf("swmSwitchType:primary %s secondary %s",
Zwave_switchType($1), Zwave_switchType($2))', }}, #V3
SWITCH_ALL => { id => '27',
SWITCH_ALL => { id => '27', obsoleted=>1,
set => { swaIncludeNone => "0100",
swaIncludeOff => "0101",
swaIncludeOn => "0102",
@ -111,8 +111,8 @@ my %zwave_class = (
"03270301" => "swa:off",
"03270302" => "swa:on",
"032703ff" => "swa:on off" } },
SWITCH_TOGGLE_BINARY => { id => '28' },
SWITCH_TOGGLE_MULTILEVEL => { id => '29' },
SWITCH_TOGGLE_BINARY => { id => '28', obsoleted=>1 },
SWITCH_TOGGLE_MULTILEVEL => { id => '29', deprecated=>1 },
CHIMNEY_FAN => { id => '2a' },
SCENE_ACTIVATION => { id => '2b',
set => { sceneActivate => "01%02x%02x" },
@ -130,7 +130,7 @@ my %zwave_class = (
'"group_".hex($1).":scene ".hex($2)."duration ".hex($3)' } },
ZIP_CLIENT => { id => '2e' },
ZIP_ADV_SERVICES => { id => '2f' },
SENSOR_BINARY => { id => '30',
SENSOR_BINARY => { id => '30', deprecated=>1,
get => { sbStatus => "02" },
parse => { "03300300" => "state:closed",
"033003ff" => "state:open",
@ -156,7 +156,7 @@ my %zwave_class = (
"0.3304(..)(..)(.*)"=> '"ccStatus_".hex($1).":".hex($2)',
"..3304(..)(..)(.*)"=> 'ZWave_ccParse(hex($1),hex($2))' } },
ZIP_ADV_CLIENT => { id => '34' },
METER_PULSE => { id => '35' },
METER_PULSE => { id => '35', deprecated=>1 },
BASIC_TARIFF_INFO => { id => '36' },
HRV_STATUS => { id => '37',
get => { hrvStatus => "01%02x",
@ -291,7 +291,7 @@ my %zwave_class = (
"03450307" => "fanState:upDownCirc",
"03450308" => "fanState:quietCirc"
} } ,
CLIMATE_CONTROL_SCHEDULE => { id => '46',
CLIMATE_CONTROL_SCHEDULE => { id => '46', deprecated=>1,
set => { ccs => 'ZWave_ccsSet("%s")' ,
ccsOverride => 'ZWave_ccsSetOverride("%s")'},
get => { ccs => 'ZWave_ccsGet("%s")',
@ -310,7 +310,7 @@ my %zwave_class = (
parse => { "034c02(.*)" => '"doorLockLoggingRecordsSupported:".hex($val)',
"..4c04(.*)" => 'ZWave_doorLLRParse($hash, $1)'} },
NETWORK_MANAGEMANT_BASIC => { id => '4d' },
SCHEDULE_ENTRY_LOCK => { id => '4e', # V1, V2, V3
SCHEDULE_ENTRY_LOCK => { id => '4e', deprecated=>1, # V1, V2, V3
get => { scheduleEntryLockTypeSupported => '09',
scheduleEntryLockWeekDay => "04%02x%02x",
scheduleEntryLockYearDay => "07%02x%02x",
@ -342,7 +342,7 @@ my %zwave_class = (
'ZWave_scheduleEntryLockDailyRepeatingParse($hash, $1)'
}},
ZI_6LOWPAN => { id => '4f' },
BASIC_WINDOW_COVERING => { id => '50',
BASIC_WINDOW_COVERING => { id => '50', obsoleted=>1,
set => { coveringClose => "0140",
coveringOpen => "0100",
coveringStop => "02" },
@ -350,7 +350,7 @@ my %zwave_class = (
"03500100" => "covering:open",
"03500200" => "covering:stop",
"03500240" => "covering:stop" } },
MTP_WINDOW_COVERING => { id => '51' },
MTP_WINDOW_COVERING => { id => '51, obsoleted=>1' },
NETWORK_MANAGEMENT_PROXY => { id => '52' },
NETWORK_SCHEDULE => { id => '53', # V1, Schedule
get => { scheduleSupported => "01",
@ -362,10 +362,10 @@ my %zwave_class = (
parse => { "..5302(.*)" => 'ZWave_scheduleSupportedParse($hash, $1)',
"..5305(.*)" => 'ZWave_scheduleParse($hash, $1)',
"..5309(.*)" => 'ZWave_scheduleStateParse($hash, $1)' } },
NETWORK_MANAGEMENT_PRIMARY=>{ id => '54' },
NETWORK_MANAGEMENT_PRIMARY=>{ id => '54', obsoleted=>1 },
TRANSPORT_SERVICE => { id => '55' },
CRC_16_ENCAP => { id => '56' }, # Parse is handled in the code
APPLICATION_CAPABILITY => { id => '57' },
CRC_16_ENCAP => { id => '56', deprecated=>1 }, # Parse in code
APPLICATION_CAPABILITY => { id => '57', obsoleted=>1 },
ZIP_ND => { id => '58' },
ASSOCIATION_GRP_INFO => { id => '59',
get => { associationGroupName => "01%02x",
@ -443,7 +443,7 @@ my %zwave_class = (
get => { config => "05%02x",
configAll => 'ZWave_configAllGet($hash)' },
parse => { "^..70..(..)(..)(.*)" => 'ZWave_configParse($hash,$1,$2,$3)'} },
ALARM => { id => '71',
ALARM => { id => '71', deprecated=>1,
set => {
alarmnotification => 'ZWave_ALARM_06_Set("%s")', # >=V2
},
@ -490,7 +490,7 @@ my %zwave_class = (
"03750301" => "protection:seq",
"03750302" => "protection:on",
"047503(..)(..)" => 'ZWave_protectionParse($1, $2)'} },
LOCK => { id => '76' },
LOCK => { id => '76', deprecated=>1 },
NODE_NAMING => { id => '77',
set => { name => '(undef, "0100".unpack("H*", "%s"))',
location => '(undef, "0400".unpack("H*", "%s"))' },
@ -514,9 +514,9 @@ my %zwave_class = (
get => { fwMetaData => 'ZWave_firmware($hash, "")' },
set => { fwUpdate => 'ZWave_firmware($hash, "%s")'},
parse => { "..7a(..)(.*)" => 'ZWave_firmwareUpdateParse($hash, $1, $2)' } },
GROUPING_NAME => { id => '7b' },
REMOTE_ASSOCIATION_ACTIVATE=>{id => '7c' },
REMOTE_ASSOCIATION => { id => '7d' },
GROUPING_NAME => { id => '7b', deprecated=>1 },
REMOTE_ASSOCIATION_ACTIVATE=>{id => '7c', obsoleted=>1 },
REMOTE_ASSOCIATION => { id => '7d', obsoleted=>1 },
BATTERY => { id => '80',
get => { battery => "02" },
parse => { "0.8003(..)"=> 'ZWave_battery($1)'} } ,
@ -526,7 +526,7 @@ my %zwave_class = (
parse => { "028105" => "clock:get",
"048106(..)(..)"=> 'ZWave_clockParse($1,$2)' }},
HAIL => { id => '82',
parse => { "028201" => "hail:01"}},
parse => { "028201" => "hail:01", obsoleted=>1}},
WAKE_UP => { id => '84',
set => { wakeupInterval => "04%06x%02x",
wakeupNoMoreInformation => "08" },
@ -575,7 +575,7 @@ my %zwave_class = (
parse => { "038703(..)" => '($1 eq "00" ? "indState:off" :
($1 eq "ff" ? "indState:on" :
"indState:dim ".hex($1)))'} },
PROPRIETARY => { id => '88' },
PROPRIETARY => { id => '88', deprecated=>1 },
LANGUAGE => { id => '89' },
TIME => { id => '8a' ,
set => { timeOffset => 'ZWave_timeOffsetSet($hash, "%s")' },
@ -618,16 +618,20 @@ my %zwave_class = (
"..9881(.*)"=> 'ZWave_secDecrypt($hash, $1, 0)',
"..98c1(.*)"=> 'ZWave_secDecrypt($hash, $1, 1)' } },
AV_TAGGING_MD => { id => '99' },
IP_CONFIGURATION => { id => '9a' },
IP_CONFIGURATION => { id => '9a', obsoleted=>1 },
ASSOCIATION_COMMAND_CONFIGURATION
=> { id => '9b' },
SENSOR_ALARM => { id => '9c',
SENSOR_ALARM => { id => '9c', deprecated=>1,
get => { alarm => "01%02x" },
parse => { "..9c02(..)(..)(..)(....)" =>
'"alarm_type_$2:level ".hex($3)." node ".hex($1)." seconds ".hex($4)'} },
SILENCE_ALARM => { id => '9d' },
SENSOR_CONFIGURATION => { id => '9e' },
SENSOR_CONFIGURATION => { id => '9e', obsoleted=>1 },
SECURITY_S2 => { id => '9f' },
IR_REPEATER => { id => 'a0' },
AUTHENTICATION => { id => 'a1' },
AUTHENTICATION_MEDIA_WRITE=>{ id => 'a2' },
GENERIC_SCHEDULE => { id => 'a3' },
MARK => { id => 'ef' },
NON_INTEROPERABLE => { id => 'f0' },
);
@ -5379,6 +5383,12 @@ ZWave_Parse($$@)
if($cmd eq "ZW_CONTROLLER_CHANGE" && $evt eq "protocolDone") {
AnalyzeCommand(undef, "set $ioName addNode off");
}
} elsif($cmd eq "ZW_APPLICATION_COMMAND_HANLDER_BRIDGE") {#134005 experimental
$arg =~ m/^(..)(..)/;
$id = $1;
$arg = substr($arg, 2, hex($2)*2+2);
$cmd = "APPLICATION_COMMAND_HANDLER";
}
if($evt) {