Z-Way Nonsecure Inclusion for Multichannel Devices
Posted: 07 Apr 2022 13:25
I’m developing Z-Wave enddevices based on Z-Wave 700 series (ZGM130S). Since I have got some issues with Z-Way inclusions of multichannel devices for the command classes SECURITY/SECURITY2 I expected a software bug at my end. I now used Silicon Labs’ pre-certified example project PowerStrip and found that Z-Way shows the same issues too. An extract of the PowerStrip command classes are (the dots ... represent further command classes):
// main device (endpoint #0)
static uint8_t cmdClassListNonSecureNotIncluded[] = {…, COMMAND_CLASS_SECURITY, COMMAND_CLASS_SECURITY_2, ...};
static uint8_t cmdClassListNonSecureIncludedSecure[] = {…, COMMAND_CLASS_SECURITY, COMMAND_CLASS_SECURITY_2, ...};
static uint8_t cmdClassListSecure[] = {…};
// endpoint #1
static uint8_t ep1_noSec_InclNonSecure[] = {…, COMMAND_CLASS_SECURITY, COMMAND_CLASS_SECURITY_2};
static uint8_t ep1_noSec_InclSecure[] = {…, COMMAND_CLASS_SECURITY, COMMAND_CLASS_SECURITY_2};
static uint8_t ep1_sec_InclSecure[] = {...};
// endpoint #2
static uint8_t ep2_noSec_InclNonSecure[] = {…, COMMAND_CLASS_SECURITY, COMMAND_CLASS_SECURITY_2};
static uint8_t ep2_noSec_InclSecure[] = {…, COMMAND_CLASS_SECURITY, COMMAND_CLASS_SECURITY_2};
static uint8_t ep2_sec_InclSecure[] = {…};
From my understanding, COMMAND_CLASS_SECURITY and COMMAND_CLASS_SECURITY_2 should be offered at endpoint level (here endpoint #1 and endpoint #2) even if the inclusion is Nonsecure (see above list: ep1_noSec_InclNonSecure and ep2_noSec_InclNonSecure). The Z-Way Nonsecure interview result, however, is “pic01”. When I try to force an interview after the inclusion, the Z-Way response is an error message “pic02”.
Any suggestion / any advice?
Thanks.
// main device (endpoint #0)
static uint8_t cmdClassListNonSecureNotIncluded[] = {…, COMMAND_CLASS_SECURITY, COMMAND_CLASS_SECURITY_2, ...};
static uint8_t cmdClassListNonSecureIncludedSecure[] = {…, COMMAND_CLASS_SECURITY, COMMAND_CLASS_SECURITY_2, ...};
static uint8_t cmdClassListSecure[] = {…};
// endpoint #1
static uint8_t ep1_noSec_InclNonSecure[] = {…, COMMAND_CLASS_SECURITY, COMMAND_CLASS_SECURITY_2};
static uint8_t ep1_noSec_InclSecure[] = {…, COMMAND_CLASS_SECURITY, COMMAND_CLASS_SECURITY_2};
static uint8_t ep1_sec_InclSecure[] = {...};
// endpoint #2
static uint8_t ep2_noSec_InclNonSecure[] = {…, COMMAND_CLASS_SECURITY, COMMAND_CLASS_SECURITY_2};
static uint8_t ep2_noSec_InclSecure[] = {…, COMMAND_CLASS_SECURITY, COMMAND_CLASS_SECURITY_2};
static uint8_t ep2_sec_InclSecure[] = {…};
From my understanding, COMMAND_CLASS_SECURITY and COMMAND_CLASS_SECURITY_2 should be offered at endpoint level (here endpoint #1 and endpoint #2) even if the inclusion is Nonsecure (see above list: ep1_noSec_InclNonSecure and ep2_noSec_InclNonSecure). The Z-Way Nonsecure interview result, however, is “pic01”. When I try to force an interview after the inclusion, the Z-Way response is an error message “pic02”.
Any suggestion / any advice?
Thanks.