From 2134162daea1a61d41dbb582c70f4118098a9d8c Mon Sep 17 00:00:00 2001 From: EricZijian_Siter Date: Thu, 13 Jul 2023 22:17:37 +0800 Subject: [PATCH] Update Smoke CO Alarm Implementation (#27566) * Smoke/CO: Add ExpiryDate * Smoke/CO: Add emberAfHandleEventTrigger * Smoke/CO: Update the handling of attribute changes Unmute when critical alarm is triggered * Smoke/CO: Update the handling of DeviceMuted Cannot mute when critical alarms exist * Smoke/CO: Update zap * Smoke/CO: Update README.md Add building options description * Smoke/CO: Update zap fix UnitTesting cluster * Revert "Smoke/CO: Update zap" This reverts commit 4607dab749967376cf23c8f5e0010344ecf8221c. * Revert "Smoke/CO: Update zap" This reverts commit 75344192fc40dd4255789a9b99ebbe1040139dc8. * Add Unit Testing * Smoke/CO: Update zap Sync Silab changes * Smoke/CO: Add ExpressedState priority * Smoke/CO: Update endOfServiceAlert of zap * [SMCO] Add mExpressedStatePriority * [SMCO] Add timer for test * Separate Warning and Critical Triggered Event --------- Co-authored-by: Hare --- examples/smoke-co-alarm-app/silabs/BUILD.gn | 23 +- examples/smoke-co-alarm-app/silabs/README.md | 10 + .../silabs/include/SmokeCoAlarmManager.h | 76 +- .../smoke-co-alarm-app/silabs/src/AppTask.cpp | 9 +- .../silabs/src/SmokeCoAlarmManager.cpp | 373 +- .../silabs/src/ZclCallbacks.cpp | 8 +- .../smoke-co-alarm-app/silabs/with_pw_rpc.gni | 5 - .../smoke-co-alarm-app.matter | 654 +- .../smoke-co-alarm-app.zap | 5241 +++++------------ .../smoke-co-alarm-server.cpp | 83 +- .../smoke-co-alarm-server.h | 3 +- 11 files changed, 2418 insertions(+), 4067 deletions(-) diff --git a/examples/smoke-co-alarm-app/silabs/BUILD.gn b/examples/smoke-co-alarm-app/silabs/BUILD.gn index c105d95546b958..d4ebe73cf0475c 100644 --- a/examples/smoke-co-alarm-app/silabs/BUILD.gn +++ b/examples/smoke-co-alarm-app/silabs/BUILD.gn @@ -49,6 +49,21 @@ declare_args() { chip_print_memory_usage = false } +if (slc_generate) { + # Generate Project Specific config (Board, hardware used etc..) + print(exec_script("${chip_root}/third_party/silabs/slc_gen/run_slc.py", + [ + rebase_path(chip_root), + "${silabs_board}", + "${disable_lcd}", + "${use_wstk_buttons}", + "${use_wstk_leds}", + "${use_external_flash}", + "${silabs_mcu}", + ], + "list lines")) +} + if (wifi_soc) { siwx917_sdk("sdk") { sources = [ @@ -115,6 +130,10 @@ silabs_executable("smoke_co_alarm_app") { include_dirs = [ "include" ] defines = [] + if (silabs_board == "BRD2704A") { + defines += [ "SL_STATUS_LED=0" ] + } + sources = [ "${examples_common_plat_dir}/main.cpp", "src/AppTask.cpp", @@ -122,10 +141,6 @@ silabs_executable("smoke_co_alarm_app") { "src/ZclCallbacks.cpp", ] - if (chip_build_libshell) { - sources += [ "src/EventHandlerLibShell.cpp" ] - } - deps = [ ":sdk", app_data_model, diff --git a/examples/smoke-co-alarm-app/silabs/README.md b/examples/smoke-co-alarm-app/silabs/README.md index 88ec2711989229..2aec36eb0cb6c9 100644 --- a/examples/smoke-co-alarm-app/silabs/README.md +++ b/examples/smoke-co-alarm-app/silabs/README.md @@ -379,3 +379,13 @@ features can easily be toggled on or off. Here is a short list of options : $ ./scripts/examples/gn_silabs_example.sh ./examples/smoke-co-alarm-app/silabs ./out/smoke-co-alarm-app BRD4164A kvs_max_entries=50 ``` + +### Enabling test event trigger + +`silabs_test_event_trigger_enabled, silabs_test_event_trigger_enable_key` + + ``` + The value of silabs_test_event_trigger_enable_key is specific to each device manufacturer + + $ ./scripts/examples/gn_silabs_example.sh ./examples/smoke-co-alarm-app/silabs ./out/smoke-co-alarm-app BRD4164A silabs_test_event_trigger_enabled=true silabs_test_event_trigger_enable_key=\"00112233445566778899aabbccddeeff\" + ``` diff --git a/examples/smoke-co-alarm-app/silabs/include/SmokeCoAlarmManager.h b/examples/smoke-co-alarm-app/silabs/include/SmokeCoAlarmManager.h index d8047f6ea600b6..be1b38a8bb5e3a 100644 --- a/examples/smoke-co-alarm-app/silabs/include/SmokeCoAlarmManager.h +++ b/examples/smoke-co-alarm-app/silabs/include/SmokeCoAlarmManager.h @@ -31,18 +31,90 @@ class SmokeCoAlarmManager { public: + using ExpressedStateEnum = chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum; + + enum TriggeredEvent_t + { + kTriggeredEvent_WarningSmokeAlarm = 0xffffffff00000090, + kTriggeredEvent_CriticalSmokeAlarm = 0xffffffff0000009c, + kTriggeredEvent_SmokeAlarmClear = 0xffffffff000000a0, + kTriggeredEvent_WarningCOAlarm = 0xffffffff00000091, + kTriggeredEvent_CriticalCOAlarm = 0xffffffff0000009d, + kTriggeredEvent_COAlarmClear = 0xffffffff000000a1, + kTriggeredEvent_WarningBatteryAlert = 0xffffffff00000095, + kTriggeredEvent_CriticalBatteryAlert = 0xffffffff0000009e, + kTriggeredEvent_BatteryAlertClear = 0xffffffff000000a5, + kTriggeredEvent_HardwareFaultAlert = 0xffffffff00000093, + kTriggeredEvent_HardwareFaultAlertClear = 0xffffffff000000a3, + kTriggeredEvent_EndofServiceAlert = 0xffffffff0000009a, + kTriggeredEvent_EndofServiceAlertClear = 0xffffffff000000aa, + kTriggeredEvent_DeviceMute = 0xffffffff0000009b, + kTriggeredEvent_DeviceMuteClear = 0xffffffff000000ab, + kTriggeredEvent_InterconnectSmokeAlarm = 0xffffffff00000092, + kTriggeredEvent_InterconnectSmokeAlarmClear = 0xffffffff000000a2, + kTriggeredEvent_InterconnectCOAlarm = 0xffffffff00000094, + kTriggeredEvent_InterconnectCOAlarmClear = 0xffffffff000000a4, + kTriggeredEvent_ContaminationStateHigh = 0xffffffff00000096, + kTriggeredEvent_ContaminationStateLow = 0xffffffff00000097, + kTriggeredEvent_ContaminationStateClear = 0xffffffff000000a6, + kTriggeredEvent_SensitivityLevelHigh = 0xffffffff00000098, + kTriggeredEvent_SensitivityLevelLow = 0xffffffff00000099, + kTriggeredEvent_SensitivityLevelClear = 0xffffffff000000a8, + } TriggeredEvent; + CHIP_ERROR Init(); /** * @brief Execute the self-test process and attribute changes * */ - bool StartSelfTesting(); + bool OnSelfTesting(); + + /** + * @brief Execute the self-test process manually + * + */ + bool ManualSelfTesting(); + + /** + * @brief Execute the HandleEventTrigger process + * + */ + bool OnEventTriggerHandle(uint64_t eventTrigger); + + /** + * @brief Updates the expressed state with new value + * + * @param endpointId ID of the endpoint + * @param expressedState expressed state + * @param isSet true on set, false on unset + * @return true on success, false on failure + */ + bool SetExpressedState(chip::EndpointId endpointId, ExpressedStateEnum expressedState, bool isSet); private: friend SmokeCoAlarmManager & AlarmMgr(void); - chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum mExpressedState; + /** + * @brief Record expressed state in decreasing priority + * + */ + std::array mExpressedStatePriority; + + /** + * @brief Expression status record values + * + */ + int mExpressedStateMask = 1; + + bool mEndSelfTesting; + + void CancelTimer(void); + void StartTimer(uint32_t aTimeoutMs); + + static void TimerEventHandler(TimerHandle_t xTimer); + static void SelfTestingEventHandler(AppEvent * aEvent); + static void EndSelfTestingEventHandler(AppEvent * aEvent); static SmokeCoAlarmManager sAlarm; }; diff --git a/examples/smoke-co-alarm-app/silabs/src/AppTask.cpp b/examples/smoke-co-alarm-app/silabs/src/AppTask.cpp index 21873ea7488c2c..4e2341e3b7ef45 100644 --- a/examples/smoke-co-alarm-app/silabs/src/AppTask.cpp +++ b/examples/smoke-co-alarm-app/silabs/src/AppTask.cpp @@ -21,7 +21,6 @@ #include "LEDWidget.h" -#include #include #include #include @@ -38,7 +37,7 @@ #include -#if defined(SL_CATALOG_SIMPLE_LED_LED1_PRESENT) +#if (defined(SL_CATALOG_SIMPLE_LED_LED1_PRESENT) || defined(BRD4325B)) #define LIGHT_LED 1 #else #define LIGHT_LED 0 @@ -141,7 +140,11 @@ void AppTask::AppTaskMain(void * pvParameter) void AppTask::ButtonActionEventHandler(AppEvent * aEvent) { - SILABS_LOG("Button pressed!"); + bool success = AlarmMgr().ManualSelfTesting(); + if (!success) + { + SILABS_LOG("Manual self-test failed"); + } } void AppTask::ButtonEventHandler(uint8_t button, uint8_t btnAction) diff --git a/examples/smoke-co-alarm-app/silabs/src/SmokeCoAlarmManager.cpp b/examples/smoke-co-alarm-app/silabs/src/SmokeCoAlarmManager.cpp index 8b1b3544ef75af..d6ee7535a036fb 100644 --- a/examples/smoke-co-alarm-app/silabs/src/SmokeCoAlarmManager.cpp +++ b/examples/smoke-co-alarm-app/silabs/src/SmokeCoAlarmManager.cpp @@ -29,32 +29,387 @@ using namespace ::chip::DeviceLayer; SmokeCoAlarmManager SmokeCoAlarmManager::sAlarm; +TimerHandle_t sAlarmTimer; + CHIP_ERROR SmokeCoAlarmManager::Init() { - ExpressedStateEnum currentExpressedState = ExpressedStateEnum::kNormal; - // read current ExpressedState on endpoint one + mExpressedStatePriority = { + ExpressedStateEnum::kTesting, ExpressedStateEnum::kEndOfService, ExpressedStateEnum::kSmokeAlarm, + ExpressedStateEnum::kCOAlarm, ExpressedStateEnum::kInterconnectSmoke, ExpressedStateEnum::kInterconnectCO, + ExpressedStateEnum::kHardwareFault, ExpressedStateEnum::kBatteryAlert, ExpressedStateEnum::kNormal + }; + + // Create FreeRTOS sw timer for alarm timer. + sAlarmTimer = xTimerCreate("alarmTmr", // Just a text name, not used by the RTOS kernel + pdMS_TO_TICKS(1), // == default timer period + false, // no timer reload (==one-shot) + (void *) this, // init timer id = alarm obj context + TimerEventHandler // timer callback handler + ); + + if (sAlarmTimer == NULL) + { + SILABS_LOG("sAlarmTimer timer create failed"); + return APP_ERROR_CREATE_TIMER_FAILED; + } + + // read current State on endpoint one chip::DeviceLayer::PlatformMgr().LockChipStack(); - SmokeCoAlarmServer::Instance().GetExpressedState(1, currentExpressedState); + ExpressedStateEnum currentExpressedState; + bool success = SmokeCoAlarmServer::Instance().GetExpressedState(1, currentExpressedState); + if (success) + { + mExpressedStateMask |= (1 << to_underlying(currentExpressedState)); + } + + AlarmStateEnum currentSmokeState; + success = SmokeCoAlarmServer::Instance().GetSmokeState(1, currentSmokeState); + if (success && (currentSmokeState != AlarmStateEnum::kNormal)) + { + mExpressedStateMask |= (1 << to_underlying(ExpressedStateEnum::kSmokeAlarm)); + } + + AlarmStateEnum currentCOState; + success = SmokeCoAlarmServer::Instance().GetCOState(1, currentCOState); + if (success && (currentCOState != AlarmStateEnum::kNormal)) + { + mExpressedStateMask |= (1 << to_underlying(ExpressedStateEnum::kCOAlarm)); + } + + AlarmStateEnum currentBatteryAlert; + success = SmokeCoAlarmServer::Instance().GetBatteryAlert(1, currentBatteryAlert); + if (success && (currentBatteryAlert != AlarmStateEnum::kNormal)) + { + mExpressedStateMask |= (1 << to_underlying(ExpressedStateEnum::kBatteryAlert)); + } + + bool currentHardwareFaultAlert; + success = SmokeCoAlarmServer::Instance().GetHardwareFaultAlert(1, currentHardwareFaultAlert); + if (success && (currentHardwareFaultAlert != false)) + { + mExpressedStateMask |= (1 << to_underlying(ExpressedStateEnum::kHardwareFault)); + } + + EndOfServiceEnum currentEndOfServiceAlert; + success = SmokeCoAlarmServer::Instance().GetEndOfServiceAlert(1, currentEndOfServiceAlert); + if (success && (currentEndOfServiceAlert != EndOfServiceEnum::kNormal)) + { + mExpressedStateMask |= (1 << to_underlying(ExpressedStateEnum::kEndOfService)); + } chip::DeviceLayer::PlatformMgr().UnlockChipStack(); - mExpressedState = currentExpressedState; + mEndSelfTesting = false; return CHIP_NO_ERROR; } -bool SmokeCoAlarmManager::StartSelfTesting() +void SmokeCoAlarmManager::StartTimer(uint32_t aTimeoutMs) +{ + if (xTimerIsTimerActive(sAlarmTimer)) + { + SILABS_LOG("app timer already started!"); + CancelTimer(); + } + + // timer is not active, change its period to required value (== restart). + // FreeRTOS- Block for a maximum of 100 ms if the change period command + // cannot immediately be sent to the timer command queue. + if (xTimerChangePeriod(sAlarmTimer, pdMS_TO_TICKS(aTimeoutMs), pdMS_TO_TICKS(100)) != pdPASS) + { + SILABS_LOG("sAlarmTimer timer start() failed"); + appError(APP_ERROR_START_TIMER_FAILED); + } +} + +void SmokeCoAlarmManager::CancelTimer(void) +{ + if (xTimerStop(sAlarmTimer, pdMS_TO_TICKS(0)) == pdFAIL) + { + SILABS_LOG("sAlarmTimer stop() failed"); + appError(APP_ERROR_STOP_TIMER_FAILED); + } +} + +void SmokeCoAlarmManager::TimerEventHandler(TimerHandle_t xTimer) +{ + // Get alarm obj context from timer id. + SmokeCoAlarmManager * alarm = static_cast(pvTimerGetTimerID(xTimer)); + + // The timer event handler will be called in the context of the timer task + // once sAlarmTimer expires. Post an event to apptask queue with the actual handler + // so that the event can be handled in the context of the apptask. + AppEvent event; + event.Type = AppEvent::kEventType_Timer; + event.TimerEvent.Context = alarm; + if (alarm->mEndSelfTesting) + { + event.Handler = EndSelfTestingEventHandler; + } + AppTask::GetAppTask().PostEvent(&event); +} + +void SmokeCoAlarmManager::SelfTestingEventHandler(AppEvent * aEvent) { + chip::DeviceLayer::PlatformMgr().LockChipStack(); bool success = SmokeCoAlarmServer::Instance().SetTestInProgress(1, true); + chip::DeviceLayer::PlatformMgr().UnlockChipStack(); - if (success) + if (!success) { - SILABS_LOG("Start self-testing!"); + SILABS_LOG("Start self-testing failed"); + return; + } + + SILABS_LOG("Start self-testing!"); + + AlarmMgr().mEndSelfTesting = true; + AlarmMgr().StartTimer(10000); // Self-test simulation in progress +} + +void SmokeCoAlarmManager::EndSelfTestingEventHandler(AppEvent * aEvent) +{ + AlarmMgr().mEndSelfTesting = false; + chip::DeviceLayer::PlatformMgr().LockChipStack(); + bool success = SmokeCoAlarmServer::Instance().SetTestInProgress(1, false); + if (success) + { + AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kTesting, false); SILABS_LOG("End self-testing!"); } + chip::DeviceLayer::PlatformMgr().UnlockChipStack(); +} + +bool SmokeCoAlarmManager::OnSelfTesting() +{ + AppEvent event; + event.Handler = SelfTestingEventHandler; + AppTask::GetAppTask().PostEvent(&event); + + return true; +} + +bool SmokeCoAlarmManager::ManualSelfTesting() +{ + bool success = false; + + if ((mExpressedStateMask & 0b110010110) == 0) + { + chip::DeviceLayer::PlatformMgr().LockChipStack(); + success = AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kTesting, true); + chip::DeviceLayer::PlatformMgr().UnlockChipStack(); + + if (success) + { + success = OnSelfTesting(); + } + } + + return success; +} + +bool SmokeCoAlarmManager::OnEventTriggerHandle(uint64_t eventTrigger) +{ + bool success = false; + + switch (eventTrigger) + { + case kTriggeredEvent_WarningSmokeAlarm: + success = SmokeCoAlarmServer::Instance().SetSmokeState(1, AlarmStateEnum::kWarning); + if (success) + { + success = AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kSmokeAlarm, true); + } + break; + + case kTriggeredEvent_CriticalSmokeAlarm: + success = SmokeCoAlarmServer::Instance().SetSmokeState(1, AlarmStateEnum::kCritical); + if (success) + { + success = AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kSmokeAlarm, true); + } + break; + + case kTriggeredEvent_SmokeAlarmClear: + success = SmokeCoAlarmServer::Instance().SetSmokeState(1, AlarmStateEnum::kNormal); + if (success) + { + success = AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kSmokeAlarm, false); + } + break; + + case kTriggeredEvent_WarningCOAlarm: + success = SmokeCoAlarmServer::Instance().SetCOState(1, AlarmStateEnum::kWarning); + if (success) + { + success = AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kCOAlarm, true); + } + break; + + case kTriggeredEvent_CriticalCOAlarm: + success = SmokeCoAlarmServer::Instance().SetCOState(1, AlarmStateEnum::kCritical); + if (success) + { + success = AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kCOAlarm, true); + } + break; + + case kTriggeredEvent_COAlarmClear: + success = SmokeCoAlarmServer::Instance().SetCOState(1, AlarmStateEnum::kNormal); + if (success) + { + success = AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kCOAlarm, false); + } + break; + + case kTriggeredEvent_WarningBatteryAlert: + success = SmokeCoAlarmServer::Instance().SetBatteryAlert(1, AlarmStateEnum::kWarning); + if (success) + { + success = AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kBatteryAlert, true); + } + break; + + case kTriggeredEvent_CriticalBatteryAlert: + success = SmokeCoAlarmServer::Instance().SetBatteryAlert(1, AlarmStateEnum::kCritical); + if (success) + { + success = AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kBatteryAlert, true); + } + break; + + case kTriggeredEvent_BatteryAlertClear: + success = SmokeCoAlarmServer::Instance().SetBatteryAlert(1, AlarmStateEnum::kNormal); + if (success) + { + success = AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kBatteryAlert, false); + } + break; + + case kTriggeredEvent_HardwareFaultAlert: + success = SmokeCoAlarmServer::Instance().SetHardwareFaultAlert(1, true); + if (success) + { + success = AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kHardwareFault, true); + } + break; + + case kTriggeredEvent_HardwareFaultAlertClear: + success = SmokeCoAlarmServer::Instance().SetHardwareFaultAlert(1, false); + if (success) + { + success = AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kHardwareFault, false); + } + break; + + case kTriggeredEvent_EndofServiceAlert: + success = SmokeCoAlarmServer::Instance().SetEndOfServiceAlert(1, EndOfServiceEnum::kExpired); + if (success) + { + success = AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kEndOfService, true); + } + break; + + case kTriggeredEvent_EndofServiceAlertClear: + success = SmokeCoAlarmServer::Instance().SetEndOfServiceAlert(1, EndOfServiceEnum::kNormal); + if (success) + { + success = AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kEndOfService, false); + } + break; + + case kTriggeredEvent_DeviceMute: + success = SmokeCoAlarmServer::Instance().SetDeviceMuted(1, MuteStateEnum::kMuted); + break; + + case kTriggeredEvent_DeviceMuteClear: + success = SmokeCoAlarmServer::Instance().SetDeviceMuted(1, MuteStateEnum::kNotMuted); + break; + + case kTriggeredEvent_InterconnectSmokeAlarm: + success = SmokeCoAlarmServer::Instance().SetInterconnectSmokeAlarm(1, AlarmStateEnum::kWarning); + if (success) + { + success = AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kInterconnectSmoke, true); + } + break; + + case kTriggeredEvent_InterconnectSmokeAlarmClear: + success = SmokeCoAlarmServer::Instance().SetInterconnectSmokeAlarm(1, AlarmStateEnum::kNormal); + if (success) + { + success = AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kInterconnectSmoke, false); + } + break; + + case kTriggeredEvent_InterconnectCOAlarm: + success = SmokeCoAlarmServer::Instance().SetInterconnectCOAlarm(1, AlarmStateEnum::kWarning); + if (success) + { + success = AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kInterconnectCO, true); + } + break; + + case kTriggeredEvent_InterconnectCOAlarmClear: + success = SmokeCoAlarmServer::Instance().SetInterconnectCOAlarm(1, AlarmStateEnum::kNormal); + if (success) + { + success = AlarmMgr().SetExpressedState(1, ExpressedStateEnum::kInterconnectCO, false); + } + break; + + case kTriggeredEvent_ContaminationStateHigh: + success = SmokeCoAlarmServer::Instance().SetContaminationState(1, ContaminationStateEnum::kWarning); + break; + + case kTriggeredEvent_ContaminationStateLow: + success = SmokeCoAlarmServer::Instance().SetContaminationState(1, ContaminationStateEnum::kLow); + break; + + case kTriggeredEvent_ContaminationStateClear: + success = SmokeCoAlarmServer::Instance().SetContaminationState(1, ContaminationStateEnum::kNormal); + break; + + case kTriggeredEvent_SensitivityLevelHigh: + success = SmokeCoAlarmServer::Instance().SetSensitivityLevel(1, SensitivityEnum::kHigh); + break; + + case kTriggeredEvent_SensitivityLevelLow: + success = SmokeCoAlarmServer::Instance().SetSensitivityLevel(1, SensitivityEnum::kLow); + break; + + case kTriggeredEvent_SensitivityLevelClear: + success = SmokeCoAlarmServer::Instance().SetSensitivityLevel(1, SensitivityEnum::kStandard); + break; + + default: + break; + } + + return success; +} + +bool SmokeCoAlarmManager::SetExpressedState(EndpointId endpointId, ExpressedStateEnum expressedState, bool isSet) +{ + bool success = false; + + if (isSet) + { + mExpressedStateMask |= (1 << to_underlying(expressedState)); + } + else + { + mExpressedStateMask &= ~(1 << to_underlying(expressedState)); + } - SmokeCoAlarmServer::Instance().SetExpressedState(1, mExpressedState); - SmokeCoAlarmServer::Instance().SetTestInProgress(1, false); + for (auto it : mExpressedStatePriority) + { + if (mExpressedStateMask & (1 << to_underlying(it))) + { + success = SmokeCoAlarmServer::Instance().SetExpressedState(endpointId, it); + break; + } + } return success; } diff --git a/examples/smoke-co-alarm-app/silabs/src/ZclCallbacks.cpp b/examples/smoke-co-alarm-app/silabs/src/ZclCallbacks.cpp index 28c84a6b206e8d..49050b80d6675c 100644 --- a/examples/smoke-co-alarm-app/silabs/src/ZclCallbacks.cpp +++ b/examples/smoke-co-alarm-app/silabs/src/ZclCallbacks.cpp @@ -23,6 +23,7 @@ #include "AppConfig.h" #include "SmokeCoAlarmManager.h" +#include "SilabsTestEventTriggerDelegate.h" #include #include #include @@ -63,5 +64,10 @@ void emberAfSmokeCoAlarmClusterInitCallback(EndpointId endpoint) bool emberAfPluginSmokeCoAlarmSelfTestRequestCommand(EndpointId endpointId) { - return AlarmMgr().StartSelfTesting(); + return AlarmMgr().OnSelfTesting(); +} + +bool emberAfHandleEventTrigger(uint64_t eventTrigger) +{ + return AlarmMgr().OnEventTriggerHandle(eventTrigger); } diff --git a/examples/smoke-co-alarm-app/silabs/with_pw_rpc.gni b/examples/smoke-co-alarm-app/silabs/with_pw_rpc.gni index 8312252d1a56c9..d06a784404a350 100644 --- a/examples/smoke-co-alarm-app/silabs/with_pw_rpc.gni +++ b/examples/smoke-co-alarm-app/silabs/with_pw_rpc.gni @@ -25,10 +25,5 @@ app_data_model = "${chip_root}/examples/smoke-co-alarm-app/smoke-co-alarm-common" chip_enable_pw_rpc = true chip_enable_openthread = true -chip_openthread_ftd = true cpp_standard = "gnu++17" - -# To fit in flash -chip_detail_logging = false -show_qr_code = false diff --git a/examples/smoke-co-alarm-app/smoke-co-alarm-common/smoke-co-alarm-app.matter b/examples/smoke-co-alarm-app/smoke-co-alarm-common/smoke-co-alarm-app.matter index f2428d0cd24af7..f48b0979eff509 100644 --- a/examples/smoke-co-alarm-app/smoke-co-alarm-common/smoke-co-alarm-app.matter +++ b/examples/smoke-co-alarm-app/smoke-co-alarm-common/smoke-co-alarm-app.matter @@ -79,6 +79,75 @@ server cluster Identify = 3 { command access(invoke: manage) TriggerEffect(TriggerEffectRequest): DefaultSuccess = 64; } +/** Attributes and commands for group configuration and manipulation. */ +server cluster Groups = 4 { + bitmap Feature : BITMAP32 { + kGroupNames = 0x1; + } + + bitmap NameSupportBitmap : BITMAP8 { + kGroupNames = 0x80; + } + + readonly attribute NameSupportBitmap nameSupport = 0; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct AddGroupRequest { + group_id groupID = 0; + CHAR_STRING groupName = 1; + } + + request struct ViewGroupRequest { + group_id groupID = 0; + } + + request struct GetGroupMembershipRequest { + group_id groupList[] = 0; + } + + request struct RemoveGroupRequest { + group_id groupID = 0; + } + + request struct AddGroupIfIdentifyingRequest { + group_id groupID = 0; + CHAR_STRING groupName = 1; + } + + response struct AddGroupResponse = 0 { + ENUM8 status = 0; + group_id groupID = 1; + } + + response struct ViewGroupResponse = 1 { + ENUM8 status = 0; + group_id groupID = 1; + CHAR_STRING groupName = 2; + } + + response struct GetGroupMembershipResponse = 2 { + nullable INT8U capacity = 0; + group_id groupList[] = 1; + } + + response struct RemoveGroupResponse = 3 { + ENUM8 status = 0; + group_id groupID = 1; + } + + fabric command access(invoke: manage) AddGroup(AddGroupRequest): AddGroupResponse = 0; + fabric command ViewGroup(ViewGroupRequest): ViewGroupResponse = 1; + fabric command GetGroupMembership(GetGroupMembershipRequest): GetGroupMembershipResponse = 2; + fabric command access(invoke: manage) RemoveGroup(RemoveGroupRequest): RemoveGroupResponse = 3; + fabric command access(invoke: manage) RemoveAllGroups(): DefaultSuccess = 4; + fabric command access(invoke: manage) AddGroupIfIdentifying(AddGroupIfIdentifyingRequest): DefaultSuccess = 5; +} + /** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */ server cluster Descriptor = 29 { struct DeviceTypeStruct { @@ -460,17 +529,6 @@ server cluster TimeFormatLocalization = 44 { readonly attribute int16u clusterRevision = 65533; } -/** This cluster is used to describe the configuration and capabilities of a Device's power system. */ -server cluster PowerSourceConfiguration = 46 { - readonly attribute INT8U sources[] = 0; - readonly attribute command_id generatedCommandList[] = 65528; - readonly attribute command_id acceptedCommandList[] = 65529; - readonly attribute event_id eventList[] = 65530; - readonly attribute attrib_id attributeList[] = 65531; - readonly attribute bitmap32 featureMap = 65532; - readonly attribute int16u clusterRevision = 65533; -} - /** This cluster is used to describe the configuration and capabilities of a physical power source that provides power to the Node. */ server cluster PowerSource = 47 { enum BatApprovedChemistryEnum : ENUM16 { @@ -691,11 +749,9 @@ server cluster PowerSource = 47 { readonly attribute PowerSourceStatusEnum status = 0; readonly attribute int8u order = 1; readonly attribute char_string<60> description = 2; - readonly attribute nullable int32u wiredAssessedCurrent = 6; readonly attribute BatChargeLevelEnum batChargeLevel = 14; readonly attribute boolean batReplacementNeeded = 15; readonly attribute BatReplaceabilityEnum batReplaceability = 16; - readonly attribute char_string<60> batReplacementDescription = 19; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -1247,119 +1303,6 @@ server cluster ThreadNetworkDiagnostics = 53 { command ResetCounts(): DefaultSuccess = 0; } -/** The Wi-Fi Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ -server cluster WiFiNetworkDiagnostics = 54 { - enum AssociationFailureCauseEnum : ENUM8 { - kUnknown = 0; - kAssociationFailed = 1; - kAuthenticationFailed = 2; - kSsidNotFound = 3; - } - - enum ConnectionStatusEnum : ENUM8 { - kConnected = 0; - kNotConnected = 1; - } - - enum SecurityTypeEnum : ENUM8 { - kUnspecified = 0; - kNone = 1; - kWEP = 2; - kWPA = 3; - kWPA2 = 4; - kWPA3 = 5; - } - - enum WiFiVersionEnum : ENUM8 { - kA = 0; - kB = 1; - kG = 2; - kN = 3; - kAc = 4; - kAx = 5; - kAh = 6; - } - - bitmap Feature : BITMAP32 { - kPacketCounts = 0x1; - kErrorCounts = 0x2; - } - - info event Disconnection = 0 { - INT16U reasonCode = 0; - } - - info event AssociationFailure = 1 { - AssociationFailureCauseEnum associationFailure = 0; - INT16U status = 1; - } - - info event ConnectionStatus = 2 { - ConnectionStatusEnum connectionStatus = 0; - } - - readonly attribute nullable octet_string<6> bssid = 0; - readonly attribute nullable SecurityTypeEnum securityType = 1; - readonly attribute nullable WiFiVersionEnum wiFiVersion = 2; - readonly attribute nullable int16u channelNumber = 3; - readonly attribute nullable int8s rssi = 4; - readonly attribute nullable int32u beaconLostCount = 5; - readonly attribute nullable int32u beaconRxCount = 6; - readonly attribute nullable int32u packetMulticastRxCount = 7; - readonly attribute nullable int32u packetMulticastTxCount = 8; - readonly attribute nullable int32u packetUnicastRxCount = 9; - readonly attribute nullable int32u packetUnicastTxCount = 10; - readonly attribute nullable int64u currentMaxRate = 11; - readonly attribute nullable int64u overrunCount = 12; - readonly attribute command_id generatedCommandList[] = 65528; - readonly attribute command_id acceptedCommandList[] = 65529; - readonly attribute event_id eventList[] = 65530; - readonly attribute attrib_id attributeList[] = 65531; - readonly attribute bitmap32 featureMap = 65532; - readonly attribute int16u clusterRevision = 65533; - - command ResetCounts(): DefaultSuccess = 0; -} - -/** The Ethernet Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */ -server cluster EthernetNetworkDiagnostics = 55 { - enum PHYRateEnum : ENUM8 { - kRate10M = 0; - kRate100M = 1; - kRate1G = 2; - kRate25G = 3; - kRate5G = 4; - kRate10G = 5; - kRate40G = 6; - kRate100G = 7; - kRate200G = 8; - kRate400G = 9; - } - - bitmap Feature : BITMAP32 { - kPacketCounts = 0x1; - kErrorCounts = 0x2; - } - - readonly attribute nullable PHYRateEnum PHYRate = 0; - readonly attribute nullable boolean fullDuplex = 1; - readonly attribute int64u packetRxCount = 2; - readonly attribute int64u packetTxCount = 3; - readonly attribute int64u txErrCount = 4; - readonly attribute int64u collisionCount = 5; - readonly attribute int64u overrunCount = 6; - readonly attribute nullable boolean carrierDetect = 7; - readonly attribute int64u timeSinceReset = 8; - readonly attribute command_id generatedCommandList[] = 65528; - readonly attribute command_id acceptedCommandList[] = 65529; - readonly attribute event_id eventList[] = 65530; - readonly attribute attrib_id attributeList[] = 65531; - readonly attribute bitmap32 featureMap = 65532; - readonly attribute int16u clusterRevision = 65533; - - command ResetCounts(): DefaultSuccess = 0; -} - /** Commands to trigger a Node to allow a new Administrator to commission it. */ server cluster AdministratorCommissioning = 60 { enum CommissioningWindowStatusEnum : ENUM8 { @@ -1618,6 +1561,53 @@ server cluster UserLabel = 65 { readonly attribute int16u clusterRevision = 65533; } +/** Allows servers to ensure that listed clients are notified when a server is available for communication. */ +server cluster IcdManagement = 70 { + bitmap Feature : BITMAP32 { + kCheckInProtocolSupport = 0x1; + } + + fabric_scoped struct MonitoringRegistrationStruct { + fabric_sensitive node_id checkInNodeID = 1; + fabric_sensitive int64u monitoredSubject = 2; + fabric_sensitive octet_string<16> key = 3; + fabric_idx fabricIndex = 254; + } + + readonly attribute int32u idleModeInterval = 0; + readonly attribute int32u activeModeInterval = 1; + readonly attribute int16u activeModeThreshold = 2; + readonly attribute access(read: administer) MonitoringRegistrationStruct registeredClients[] = 3; + readonly attribute access(read: administer) int32u ICDCounter = 4; + readonly attribute int16u clientsSupportedPerFabric = 5; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct RegisterClientRequest { + node_id checkInNodeID = 0; + INT64U monitoredSubject = 1; + OCTET_STRING<16> key = 2; + optional OCTET_STRING<16> verificationKey = 3; + } + + request struct UnregisterClientRequest { + node_id checkInNodeID = 0; + optional OCTET_STRING<16> key = 1; + } + + response struct RegisterClientResponse = 1 { + INT32U ICDCounter = 0; + } + + fabric command access(invoke: manage) RegisterClient(RegisterClientRequest): RegisterClientResponse = 0; + fabric command access(invoke: manage) UnregisterClient(UnregisterClientRequest): DefaultSuccess = 2; + command access(invoke: manage) StayActiveRequest(): DefaultSuccess = 3; +} + /** This cluster provides an interface for observing and managing the state of smoke and CO alarms. */ server cluster SmokeCoAlarm = 92 { enum AlarmStateEnum : ENUM8 { @@ -1716,6 +1706,7 @@ server cluster SmokeCoAlarm = 92 { readonly attribute AlarmStateEnum interconnectCOAlarm = 9; readonly attribute ContaminationStateEnum contaminationState = 10; attribute SensitivityEnum sensitivityLevel = 11; + readonly attribute epoch_s expiryDate = 12; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -1726,6 +1717,223 @@ server cluster SmokeCoAlarm = 92 { command SelfTestRequest(): DefaultSuccess = 0; } +/** The Test Cluster is meant to validate the generated code */ +server cluster UnitTesting = 4294048773 { + enum SimpleEnum : ENUM8 { + kUnspecified = 0; + kValueA = 1; + kValueB = 2; + kValueC = 3; + } + + bitmap Bitmap16MaskMap : BITMAP16 { + kMaskVal1 = 0x1; + kMaskVal2 = 0x2; + kMaskVal3 = 0x4; + kMaskVal4 = 0x4000; + } + + bitmap Bitmap32MaskMap : BITMAP32 { + kMaskVal1 = 0x1; + kMaskVal2 = 0x2; + kMaskVal3 = 0x4; + kMaskVal4 = 0x40000000; + } + + bitmap Bitmap64MaskMap : BITMAP64 { + kMaskVal1 = 0x1; + kMaskVal2 = 0x2; + kMaskVal3 = 0x4; + kMaskVal4 = 0x4000000000000000; + } + + bitmap Bitmap8MaskMap : BITMAP8 { + kMaskVal1 = 0x1; + kMaskVal2 = 0x2; + kMaskVal3 = 0x4; + kMaskVal4 = 0x40; + } + + bitmap SimpleBitmap : BITMAP8 { + kValueA = 0x1; + kValueB = 0x2; + kValueC = 0x4; + } + + struct SimpleStruct { + int8u a = 0; + boolean b = 1; + SimpleEnum c = 2; + octet_string d = 3; + char_string e = 4; + SimpleBitmap f = 5; + single g = 6; + double h = 7; + } + + fabric_scoped struct TestFabricScoped { + fabric_sensitive int8u fabricSensitiveInt8u = 1; + optional fabric_sensitive int8u optionalFabricSensitiveInt8u = 2; + nullable fabric_sensitive int8u nullableFabricSensitiveInt8u = 3; + optional nullable fabric_sensitive int8u nullableOptionalFabricSensitiveInt8u = 4; + fabric_sensitive char_string fabricSensitiveCharString = 5; + fabric_sensitive SimpleStruct fabricSensitiveStruct = 6; + fabric_sensitive int8u fabricSensitiveInt8uList[] = 7; + fabric_idx fabricIndex = 254; + } + + struct NullablesAndOptionalsStruct { + nullable int16u nullableInt = 0; + optional int16u optionalInt = 1; + optional nullable int16u nullableOptionalInt = 2; + nullable char_string nullableString = 3; + optional char_string optionalString = 4; + optional nullable char_string nullableOptionalString = 5; + nullable SimpleStruct nullableStruct = 6; + optional SimpleStruct optionalStruct = 7; + optional nullable SimpleStruct nullableOptionalStruct = 8; + nullable SimpleEnum nullableList[] = 9; + optional SimpleEnum optionalList[] = 10; + optional nullable SimpleEnum nullableOptionalList[] = 11; + } + + struct NestedStruct { + int8u a = 0; + boolean b = 1; + SimpleStruct c = 2; + } + + struct NestedStructList { + int8u a = 0; + boolean b = 1; + SimpleStruct c = 2; + SimpleStruct d[] = 3; + int32u e[] = 4; + octet_string f[] = 5; + int8u g[] = 6; + } + + struct DoubleNestedStructList { + NestedStructList a[] = 0; + } + + struct TestListStructOctet { + int64u member1 = 0; + octet_string<32> member2 = 1; + } + + info event TestEvent = 1 { + INT8U arg1 = 1; + SimpleEnum arg2 = 2; + BOOLEAN arg3 = 3; + SimpleStruct arg4 = 4; + SimpleStruct arg5[] = 5; + SimpleEnum arg6[] = 6; + } + + fabric_sensitive info event TestFabricScopedEvent = 2 { + fabric_idx fabricIndex = 254; + } + + attribute boolean boolean = 0; + attribute Bitmap8MaskMap bitmap8 = 1; + attribute Bitmap16MaskMap bitmap16 = 2; + attribute Bitmap32MaskMap bitmap32 = 3; + attribute Bitmap64MaskMap bitmap64 = 4; + attribute int8u int8u = 5; + attribute int16u int16u = 6; + attribute int24u int24u = 7; + attribute int32u int32u = 8; + attribute int40u int40u = 9; + attribute int48u int48u = 10; + attribute int56u int56u = 11; + attribute int64u int64u = 12; + attribute int8s int8s = 13; + attribute int16s int16s = 14; + attribute int24s int24s = 15; + attribute int32s int32s = 16; + attribute int40s int40s = 17; + attribute int48s int48s = 18; + attribute int56s int56s = 19; + attribute int64s int64s = 20; + attribute enum8 enum8 = 21; + attribute enum16 enum16 = 22; + attribute single floatSingle = 23; + attribute double floatDouble = 24; + attribute octet_string<10> octetString = 25; + attribute INT8U listInt8u[] = 26; + attribute OCTET_STRING listOctetString[] = 27; + attribute TestListStructOctet listStructOctetString[] = 28; + attribute long_octet_string<1000> longOctetString = 29; + attribute char_string<10> charString = 30; + attribute long_char_string<1000> longCharString = 31; + attribute epoch_us epochUs = 32; + attribute epoch_s epochS = 33; + attribute vendor_id vendorId = 34; + attribute NullablesAndOptionalsStruct listNullablesAndOptionalsStruct[] = 35; + attribute SimpleEnum enumAttr = 36; + attribute SimpleStruct structAttr = 37; + attribute int8u rangeRestrictedInt8u = 38; + attribute int8s rangeRestrictedInt8s = 39; + attribute int16u rangeRestrictedInt16u = 40; + attribute int16s rangeRestrictedInt16s = 41; + attribute LONG_OCTET_STRING listLongOctetString[] = 42; + attribute TestFabricScoped listFabricScoped[] = 43; + timedwrite attribute boolean timedWriteBoolean = 48; + attribute boolean generalErrorBoolean = 49; + attribute boolean clusterErrorBoolean = 50; + attribute nullable boolean nullableBoolean = 16384; + attribute nullable Bitmap8MaskMap nullableBitmap8 = 16385; + attribute nullable Bitmap16MaskMap nullableBitmap16 = 16386; + attribute nullable Bitmap32MaskMap nullableBitmap32 = 16387; + attribute nullable Bitmap64MaskMap nullableBitmap64 = 16388; + attribute nullable int8u nullableInt8u = 16389; + attribute nullable int16u nullableInt16u = 16390; + attribute nullable int24u nullableInt24u = 16391; + attribute nullable int32u nullableInt32u = 16392; + attribute nullable int40u nullableInt40u = 16393; + attribute nullable int48u nullableInt48u = 16394; + attribute nullable int56u nullableInt56u = 16395; + attribute nullable int64u nullableInt64u = 16396; + attribute nullable int8s nullableInt8s = 16397; + attribute nullable int16s nullableInt16s = 16398; + attribute nullable int24s nullableInt24s = 16399; + attribute nullable int32s nullableInt32s = 16400; + attribute nullable int40s nullableInt40s = 16401; + attribute nullable int48s nullableInt48s = 16402; + attribute nullable int56s nullableInt56s = 16403; + attribute nullable int64s nullableInt64s = 16404; + attribute nullable enum8 nullableEnum8 = 16405; + attribute nullable enum16 nullableEnum16 = 16406; + attribute nullable single nullableFloatSingle = 16407; + attribute nullable double nullableFloatDouble = 16408; + attribute nullable octet_string<10> nullableOctetString = 16409; + attribute nullable char_string<10> nullableCharString = 16414; + attribute nullable SimpleEnum nullableEnumAttr = 16420; + attribute nullable SimpleStruct nullableStruct = 16421; + attribute nullable int8u nullableRangeRestrictedInt8u = 16422; + attribute nullable int8s nullableRangeRestrictedInt8s = 16423; + attribute nullable int16u nullableRangeRestrictedInt16u = 16424; + attribute nullable int16s nullableRangeRestrictedInt16s = 16425; + readonly attribute command_id generatedCommandList[] = 65528; + readonly attribute command_id acceptedCommandList[] = 65529; + readonly attribute event_id eventList[] = 65530; + readonly attribute attrib_id attributeList[] = 65531; + readonly attribute bitmap32 featureMap = 65532; + readonly attribute int16u clusterRevision = 65533; + + request struct TestEmitTestEventRequestRequest { + INT8U arg1 = 0; + SimpleEnum arg2 = 1; + BOOLEAN arg3 = 2; + } + + command Test(): DefaultSuccess = 0; + command TestNotHandled(): DefaultSuccess = 1; + command TestSpecific(): TestSpecificResponse = 2; + command TestEmitTestEventRequest(TestEmitTestEventRequestRequest): TestEmitTestEventResponse = 20; +} + endpoint 0 { device type rootdevice = 22, version 1; binding cluster OtaSoftwareUpdateProvider; @@ -1740,8 +1948,6 @@ endpoint 0 { } server cluster AccessControl { - emits event AccessControlEntryChanged; - emits event AccessControlExtensionChanged; callback attribute acl; callback attribute extension; callback attribute subjectsPerAccessControlEntry default = 4; @@ -1753,9 +1959,6 @@ endpoint 0 { } server cluster BasicInformation { - emits event StartUp; - emits event ShutDown; - emits event Leave; callback attribute dataModelRevision default = 10; callback attribute vendorName; callback attribute vendorID; @@ -1780,9 +1983,6 @@ endpoint 0 { } server cluster OtaSoftwareUpdateRequestor { - emits event StateTransition; - emits event VersionApplied; - emits event DownloadError; callback attribute defaultOTAProviders default = 0; ram attribute updatePossible default = 1; ram attribute updateState default = 0; @@ -1806,22 +2006,6 @@ endpoint 0 { ram attribute clusterRevision default = 1; } - server cluster PowerSourceConfiguration { - callback attribute sources; - ram attribute featureMap default = 0; - ram attribute clusterRevision default = 1; - } - - server cluster PowerSource { - emits event WiredFaultChange; - ram attribute status default = 1; - ram attribute order default = 0; - ram attribute description default = "USB"; - ram attribute wiredAssessedCurrent; - ram attribute featureMap default = 1; - ram attribute clusterRevision default = 1; - } - server cluster GeneralCommissioning { ram attribute breadcrumb default = 0x0000000000000000; callback attribute basicCommissioningInfo; @@ -1851,10 +2035,6 @@ endpoint 0 { } server cluster GeneralDiagnostics { - emits event HardwareFaultChange; - emits event RadioFaultChange; - emits event NetworkFaultChange; - emits event BootReason; callback attribute networkInterfaces; callback attribute rebootCount default = 0x0000; callback attribute upTime default = 0x0000000000000000; @@ -1945,41 +2125,6 @@ endpoint 0 { ram attribute clusterRevision default = 1; } - server cluster WiFiNetworkDiagnostics { - emits event Disconnection; - emits event AssociationFailure; - emits event ConnectionStatus; - callback attribute bssid; - callback attribute securityType; - callback attribute wiFiVersion; - callback attribute channelNumber default = 0x0000; - callback attribute rssi default = 0x00; - callback attribute beaconLostCount default = 0x00000000; - callback attribute beaconRxCount default = 0x00000000; - callback attribute packetMulticastRxCount default = 0x00000000; - callback attribute packetMulticastTxCount default = 0x00000000; - callback attribute packetUnicastRxCount default = 0x00000000; - callback attribute packetUnicastTxCount default = 0x00000000; - callback attribute currentMaxRate default = 0x0000000000000000; - callback attribute overrunCount default = 0x0000000000000000; - ram attribute featureMap default = 3; - ram attribute clusterRevision default = 1; - } - - server cluster EthernetNetworkDiagnostics { - callback attribute PHYRate; - callback attribute fullDuplex default = 0x00; - callback attribute packetRxCount default = 0x0000000000000000; - callback attribute packetTxCount default = 0x0000000000000000; - callback attribute txErrCount default = 0x0000000000000000; - callback attribute collisionCount default = 0x0000000000000000; - callback attribute overrunCount default = 0x0000000000000000; - callback attribute carrierDetect default = 0x00; - callback attribute timeSinceReset default = 0x0000000000000000; - ram attribute featureMap default = 3; - ram attribute clusterRevision default = 1; - } - server cluster AdministratorCommissioning { callback attribute windowStatus default = 0; callback attribute adminFabricIndex default = 1; @@ -2003,7 +2148,7 @@ endpoint 0 { callback attribute groupKeyMap; callback attribute groupTable; callback attribute maxGroupsPerFabric; - callback attribute maxGroupKeysPerFabric default = 1; + callback attribute maxGroupKeysPerFabric; ram attribute featureMap default = 0; ram attribute clusterRevision default = 1; } @@ -2019,29 +2164,47 @@ endpoint 0 { ram attribute featureMap default = 0; ram attribute clusterRevision default = 1; } -} -endpoint 1 { - server cluster Identify { - ram attribute identifyTime default = 0x0000; - ram attribute identifyType default = 0x0; + server cluster IcdManagement { + ram attribute idleModeInterval default = 500; + ram attribute activeModeInterval default = 300; + ram attribute activeModeThreshold default = 300; + callback attribute registeredClients; + ram attribute ICDCounter; + ram attribute clientsSupportedPerFabric default = 1; callback attribute generatedCommandList; callback attribute acceptedCommandList; callback attribute eventList; callback attribute attributeList; + ram attribute featureMap default = 1; + ram attribute clusterRevision default = 1; + } +} +endpoint 1 { + device type anonymousEndpointType = 118, version 1; + + server cluster Identify { + ram attribute identifyTime default = 0x0; + ram attribute identifyType default = 0x00; + ram attribute featureMap default = 0; + ram attribute clusterRevision default = 4; + } + + server cluster Groups { + ram attribute nameSupport; ram attribute featureMap default = 0; ram attribute clusterRevision default = 4; } server cluster PowerSource { - ram attribute status default = 1; - ram attribute order default = 1; - ram attribute description default = "Battery"; - ram attribute batChargeLevel; + emits event BatFaultChange; + ram attribute status default = 0; + ram attribute order default = 2; + ram attribute description default = "B2"; + ram attribute batChargeLevel default = 0; ram attribute batReplacementNeeded; ram attribute batReplaceability; - ram attribute batReplacementDescription; - ram attribute featureMap default = 0x0A; + ram attribute featureMap default = 2; ram attribute clusterRevision default = 1; } @@ -2064,14 +2227,101 @@ endpoint 1 { persist attribute deviceMuted default = 0; ram attribute testInProgress default = 0; persist attribute hardwareFaultAlert default = 0; - persist attribute endOfServiceAlert default = 1; + persist attribute endOfServiceAlert default = 0; ram attribute interconnectSmokeAlarm default = 0; ram attribute interconnectCOAlarm default = 0; ram attribute contaminationState default = 0; ram attribute sensitivityLevel default = 1; + ram attribute expiryDate default = 0; ram attribute featureMap default = 3; ram attribute clusterRevision default = 1; } + + server cluster UnitTesting { + emits event TestEvent; + ram attribute boolean default = false; + ram attribute bitmap8 default = 0; + ram attribute bitmap16 default = 0; + ram attribute bitmap32 default = 0; + ram attribute bitmap64 default = 0; + ram attribute int8u default = 0; + ram attribute int16u default = 0; + ram attribute int24u default = 0; + ram attribute int32u default = 0; + ram attribute int40u default = 0; + ram attribute int48u default = 0; + ram attribute int56u default = 0; + ram attribute int64u default = 0; + ram attribute int8s default = 0; + ram attribute int16s default = 0; + ram attribute int24s default = 0; + ram attribute int32s default = 0; + ram attribute int40s default = 0; + ram attribute int48s default = 0; + ram attribute int56s default = 0; + ram attribute int64s default = 0; + ram attribute enum8 default = 0; + ram attribute enum16 default = 0; + ram attribute floatSingle default = 0; + ram attribute floatDouble default = 0; + ram attribute octetString; + callback attribute listInt8u; + callback attribute listOctetString; + callback attribute listStructOctetString; + ram attribute longOctetString; + ram attribute charString; + ram attribute longCharString; + ram attribute epochUs; + ram attribute epochS; + ram attribute vendorId default = 0; + callback attribute listNullablesAndOptionalsStruct; + ram attribute enumAttr; + callback attribute structAttr; + ram attribute rangeRestrictedInt8u default = 70; + ram attribute rangeRestrictedInt8s default = -5; + ram attribute rangeRestrictedInt16u default = 200; + ram attribute rangeRestrictedInt16s default = -5; + callback attribute listLongOctetString; + callback attribute listFabricScoped; + ram attribute timedWriteBoolean; + callback attribute generalErrorBoolean; + callback attribute clusterErrorBoolean; + ram attribute nullableBoolean default = false; + ram attribute nullableBitmap8 default = 0; + ram attribute nullableBitmap16 default = 0; + ram attribute nullableBitmap32 default = 0; + ram attribute nullableBitmap64 default = 0; + ram attribute nullableInt8u default = 0; + ram attribute nullableInt16u default = 0; + ram attribute nullableInt24u default = 0; + ram attribute nullableInt32u default = 0; + ram attribute nullableInt40u default = 0; + ram attribute nullableInt48u default = 0; + ram attribute nullableInt56u default = 0; + ram attribute nullableInt64u default = 0; + ram attribute nullableInt8s default = 0; + ram attribute nullableInt16s default = 0; + ram attribute nullableInt24s default = 0; + ram attribute nullableInt32s default = 0; + ram attribute nullableInt40s default = 0; + ram attribute nullableInt48s default = 0; + ram attribute nullableInt56s default = 0; + ram attribute nullableInt64s default = 0; + ram attribute nullableEnum8 default = 0; + ram attribute nullableEnum16 default = 0; + ram attribute nullableFloatSingle default = 0; + ram attribute nullableFloatDouble default = 0; + ram attribute nullableOctetString; + ram attribute nullableCharString; + ram attribute nullableEnumAttr; + callback attribute nullableStruct; + ram attribute nullableRangeRestrictedInt8u default = 70; + ram attribute nullableRangeRestrictedInt8s default = -5; + ram attribute nullableRangeRestrictedInt16u default = 200; + ram attribute nullableRangeRestrictedInt16s default = -5; + ram attribute featureMap default = 0; + ram attribute clusterRevision default = 1; + } } diff --git a/examples/smoke-co-alarm-app/smoke-co-alarm-common/smoke-co-alarm-app.zap b/examples/smoke-co-alarm-app/smoke-co-alarm-common/smoke-co-alarm-app.zap index 30e2f14b557c08..e2c4aaa0e63082 100644 --- a/examples/smoke-co-alarm-app/smoke-co-alarm-common/smoke-co-alarm-app.zap +++ b/examples/smoke-co-alarm-app/smoke-co-alarm-common/smoke-co-alarm-app.zap @@ -250,6 +250,22 @@ "maxInterval": 65344, "reportableChange": 0 }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "ClusterRevision", "code": 65533, @@ -344,7 +360,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "5", "reportable": 1, "minInterval": 0, "maxInterval": 65344, @@ -500,7 +516,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "5", "reportable": 1, "minInterval": 0, "maxInterval": 65344, @@ -603,10 +619,10 @@ ] }, { - "name": "Descriptor", - "code": 29, + "name": "On/off Switch Configuration", + "code": 7, "mfgCode": null, - "define": "DESCRIPTOR_CLUSTER", + "define": "ON_OFF_SWITCH_CONFIGURATION_CLUSTER", "side": "client", "enabled": 0, "attributes": [ @@ -622,98 +638,184 @@ "bounded": 0, "defaultValue": "1", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 } ] }, { - "name": "Descriptor", - "code": 29, + "name": "On/off Switch Configuration", + "code": 7, "mfgCode": null, - "define": "DESCRIPTOR_CLUSTER", + "define": "ON_OFF_SWITCH_CONFIGURATION_CLUSTER", "side": "server", - "enabled": 1, + "enabled": 0, "attributes": [ { - "name": "DeviceTypeList", + "name": "switch type", "code": 0, "mfgCode": null, "side": "server", - "type": "array", + "type": "enum8", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ServerList", - "code": 1, + "name": "switch actions", + "code": 16, "mfgCode": null, "side": "server", - "type": "array", + "type": "enum8", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { - "name": "ClientList", - "code": 2, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "1", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 + } + ] + }, + { + "name": "Level Control", + "code": 8, + "mfgCode": null, + "define": "LEVEL_CONTROL_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "MoveToLevel", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 }, { - "name": "PartsList", + "name": "Move", + "code": 1, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Step", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "Stop", "code": 3, "mfgCode": null, - "side": "server", - "type": "array", + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "MoveToLevelWithOnOff", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "MoveWithOnOff", + "code": 5, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StepWithOnOff", + "code": 6, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StopWithOnOff", + "code": 7, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "5", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Level Control", + "code": 8, + "mfgCode": null, + "define": "LEVEL_CONTROL_CLUSTER", + "side": "server", + "enabled": 0, + "attributes": [ { - "name": "FeatureMap", - "code": 65532, + "name": "CurrentLevel", + "code": 0, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int8u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 }, { @@ -723,35 +825,53 @@ "side": "server", "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "5", "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, + "minInterval": 0, + "maxInterval": 65344, "reportableChange": 0 } ] }, { - "name": "Access Control", - "code": 31, + "name": "Descriptor", + "code": 29, "mfgCode": null, - "define": "ACCESS_CONTROL_CLUSTER", + "define": "DESCRIPTOR_CLUSTER", "side": "client", - "enabled": 0 + "enabled": 0, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] }, { - "name": "Access Control", - "code": 31, + "name": "Descriptor", + "code": 29, "mfgCode": null, - "define": "ACCESS_CONTROL_CLUSTER", + "define": "DESCRIPTOR_CLUSTER", "side": "server", "enabled": 1, "attributes": [ { - "name": "ACL", + "name": "DeviceTypeList", "code": 0, "mfgCode": null, "side": "server", @@ -767,7 +887,7 @@ "reportableChange": 0 }, { - "name": "Extension", + "name": "ServerList", "code": 1, "mfgCode": null, "side": "server", @@ -783,56 +903,108 @@ "reportableChange": 0 }, { - "name": "SubjectsPerAccessControlEntry", + "name": "ClientList", "code": 2, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "array", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "TargetsPerAccessControlEntry", + "name": "PartsList", "code": 3, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "array", "included": 1, "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AccessControlEntriesPerFabric", - "code": 4, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "bitmap32", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Access Control", + "code": 31, + "mfgCode": null, + "define": "ACCESS_CONTROL_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ + { + "name": "ClusterRevision", + "code": 65533, + "mfgCode": null, + "side": "client", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Access Control", + "code": 31, + "mfgCode": null, + "define": "ACCESS_CONTROL_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ + { + "name": "ACL", + "code": 0, "mfgCode": null, "side": "server", "type": "array", @@ -847,77 +1019,115 @@ "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "Extension", + "code": 1, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "SubjectsPerAccessControlEntry", + "code": 2, "mfgCode": null, "side": "server", "type": "int16u", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "4", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ], - "events": [ + }, { - "name": "AccessControlEntryChanged", - "code": 0, + "name": "TargetsPerAccessControlEntry", + "code": 3, "mfgCode": null, "side": "server", - "included": 1 + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "3", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 }, { - "name": "AccessControlExtensionChanged", - "code": 1, + "name": "AccessControlEntriesPerFabric", + "code": 4, "mfgCode": null, "side": "server", - "included": 1 - } - ] - }, - { - "name": "Basic Information", - "code": 40, - "mfgCode": null, - "define": "BASIC_INFORMATION_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ + "type": "int16u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "4", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "AttributeList", + "code": 65531, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "ClusterRevision", "code": 65533, "mfgCode": null, - "side": "client", + "side": "server", "type": "int16u", "included": 1, "storageOption": "RAM", - "singleton": 1, + "singleton": 0, "bounded": 0, "defaultValue": "1", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 } ] @@ -1282,29 +1492,6 @@ "maxInterval": 65344, "reportableChange": 0 } - ], - "events": [ - { - "name": "StartUp", - "code": 0, - "mfgCode": null, - "side": "server", - "included": 1 - }, - { - "name": "ShutDown", - "code": 1, - "mfgCode": null, - "side": "server", - "included": 1 - }, - { - "name": "Leave", - "code": 2, - "mfgCode": null, - "side": "server", - "included": 1 - } ] }, { @@ -1591,29 +1778,6 @@ "maxInterval": 65344, "reportableChange": 0 } - ], - "events": [ - { - "name": "StateTransition", - "code": 0, - "mfgCode": null, - "side": "server", - "included": 1 - }, - { - "name": "VersionApplied", - "code": 1, - "mfgCode": null, - "side": "server", - "included": 1 - }, - { - "name": "DownloadError", - "code": 2, - "mfgCode": null, - "side": "server", - "included": 1 - } ] }, { @@ -1863,233 +2027,44 @@ ] }, { - "name": "Power Source Configuration", - "code": 46, + "name": "General Commissioning", + "code": 48, "mfgCode": null, - "define": "POWER_SOURCE_CONFIGURATION_CLUSTER", + "define": "GENERAL_COMMISSIONING_CLUSTER", "side": "client", - "enabled": 0 - }, - { - "name": "Power Source Configuration", - "code": 46, - "mfgCode": null, - "define": "POWER_SOURCE_CONFIGURATION_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ + "enabled": 0, + "commands": [ { - "name": "Sources", + "name": "ArmFailSafe", "code": 0, "mfgCode": null, - "side": "server", - "type": "array", - "included": 1, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "FeatureMap", - "code": 65532, + "name": "SetRegulatoryConfig", + "code": 2, "mfgCode": null, - "side": "server", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 0 }, + { + "name": "CommissioningComplete", + "code": 4, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + } + ], + "attributes": [ { "name": "ClusterRevision", "code": 65533, "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "1", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - } - ] - }, - { - "name": "Power Source", - "code": 47, - "mfgCode": null, - "define": "POWER_SOURCE_CLUSTER", - "side": "client", - "enabled": 0 - }, - { - "name": "Power Source", - "code": 47, - "mfgCode": null, - "define": "POWER_SOURCE_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ - { - "name": "Status", - "code": 0, - "mfgCode": null, - "side": "server", - "type": "PowerSourceStatusEnum", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "1", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "Order", - "code": 1, - "mfgCode": null, - "side": "server", - "type": "int8u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "Description", - "code": 2, - "mfgCode": null, - "side": "server", - "type": "char_string", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "USB", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "WiredAssessedCurrent", - "code": 6, - "mfgCode": null, - "side": "server", - "type": "int32u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "FeatureMap", - "code": 65532, - "mfgCode": null, - "side": "server", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "1", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "1", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - } - ], - "events": [ - { - "name": "WiredFaultChange", - "code": 0, - "mfgCode": null, - "side": "server", - "included": 1 - } - ] - }, - { - "name": "General Commissioning", - "code": 48, - "mfgCode": null, - "define": "GENERAL_COMMISSIONING_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ - { - "name": "ArmFailSafe", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "SetRegulatoryConfig", - "code": 2, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "CommissioningComplete", - "code": 4, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "client", + "side": "client", "type": "int16u", "included": 1, "storageOption": "RAM", @@ -2795,36 +2770,6 @@ "maxInterval": 65344, "reportableChange": 0 } - ], - "events": [ - { - "name": "HardwareFaultChange", - "code": 0, - "mfgCode": null, - "side": "server", - "included": 1 - }, - { - "name": "RadioFaultChange", - "code": 1, - "mfgCode": null, - "side": "server", - "included": 1 - }, - { - "name": "NetworkFaultChange", - "code": 2, - "mfgCode": null, - "side": "server", - "included": 1 - }, - { - "name": "BootReason", - "code": 3, - "mfgCode": null, - "side": "server", - "included": 1 - } ] }, { @@ -4097,7 +4042,7 @@ "mfgCode": null, "define": "WIFI_NETWORK_DIAGNOSTICS_CLUSTER", "side": "server", - "enabled": 1, + "enabled": 0, "attributes": [ { "name": "BSSID", @@ -4339,29 +4284,6 @@ "maxInterval": 65344, "reportableChange": 0 } - ], - "events": [ - { - "name": "Disconnection", - "code": 0, - "mfgCode": null, - "side": "server", - "included": 1 - }, - { - "name": "AssociationFailure", - "code": 1, - "mfgCode": null, - "side": "server", - "included": 1 - }, - { - "name": "ConnectionStatus", - "code": 2, - "mfgCode": null, - "side": "server", - "included": 1 - } ] }, { @@ -4406,7 +4328,7 @@ "mfgCode": null, "define": "ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER", "side": "server", - "enabled": 1, + "enabled": 0, "attributes": [ { "name": "PHYRate", @@ -4587,26 +4509,76 @@ ] }, { - "name": "Administrator Commissioning", - "code": 60, + "name": "Switch", + "code": 59, "mfgCode": null, - "define": "ADMINISTRATOR_COMMISSIONING_CLUSTER", + "define": "SWITCH_CLUSTER", "side": "client", + "enabled": 0 + }, + { + "name": "Switch", + "code": 59, + "mfgCode": null, + "define": "SWITCH_CLUSTER", + "side": "server", "enabled": 0, - "commands": [ + "attributes": [ { - "name": "OpenCommissioningWindow", - "code": 0, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 + "side": "server", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 }, { - "name": "OpenBasicCommissioningWindow", - "code": 1, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, - "source": "client", + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "1", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + } + ] + }, + { + "name": "Administrator Commissioning", + "code": 60, + "mfgCode": null, + "define": "ADMINISTRATOR_COMMISSIONING_CLUSTER", + "side": "client", + "enabled": 0, + "commands": [ + { + "name": "OpenCommissioningWindow", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 + }, + { + "name": "OpenBasicCommissioningWindow", + "code": 1, + "mfgCode": null, + "source": "client", "incoming": 1, "outgoing": 1 }, @@ -5118,22 +5090,6 @@ "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "1", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "AttributeList", - "code": 65531, - "mfgCode": null, - "side": "server", - "type": "array", - "included": 0, - "storageOption": "External", - "singleton": 0, - "bounded": 0, "defaultValue": "", "reportable": 1, "minInterval": 1, @@ -5307,13 +5263,55 @@ ] }, { - "name": "Occupancy Sensing", - "code": 1030, + "name": "ICD Management", + "code": 70, "mfgCode": null, - "define": "OCCUPANCY_SENSING_CLUSTER", + "define": "ICD_MANAGEMENT_CLUSTER", "side": "client", "enabled": 0, + "commands": [ + { + "name": "RegisterClient", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "UnregisterClient", + "code": 2, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + }, + { + "name": "StayActiveRequest", + "code": 3, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "ClusterRevision", "code": 65533, @@ -5324,191 +5322,123 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "1", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 } ] }, { - "name": "Occupancy Sensing", - "code": 1030, + "name": "ICD Management", + "code": 70, "mfgCode": null, - "define": "OCCUPANCY_SENSING_CLUSTER", + "define": "ICD_MANAGEMENT_CLUSTER", "side": "server", - "enabled": 0, + "enabled": 1, + "commands": [ + { + "name": "RegisterClientResponse", + "code": 1, + "mfgCode": null, + "source": "server", + "incoming": 1, + "outgoing": 1 + } + ], "attributes": [ { - "name": "Occupancy", + "name": "IdleModeInterval", "code": 0, "mfgCode": null, "side": "server", - "type": "OccupancyBitmap", + "type": "int32u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "500", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "OccupancySensorType", + "name": "ActiveModeInterval", "code": 1, "mfgCode": null, "side": "server", - "type": "OccupancySensorTypeEnum", + "type": "int32u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "300", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "OccupancySensorTypeBitmap", + "name": "ActiveModeThreshold", "code": 2, "mfgCode": null, "side": "server", - "type": "OccupancySensorTypeBitmap", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "server", "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "3", + "defaultValue": "300", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 - } - ] - } - ] - }, - { - "name": "MA-doorlock", - "deviceTypeName": "MA-all-clusters-app", - "deviceTypeCode": 0, - "deviceTypeProfileId": 259, - "clusters": [ - { - "name": "Identify", - "code": 3, - "mfgCode": null, - "define": "IDENTIFY_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ - { - "name": "Identify", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 }, { - "name": "TriggerEffect", - "code": 64, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - } - ], - "attributes": [ - { - "name": "FeatureMap", - "code": 65532, + "name": "RegisteredClients", + "code": 3, "mfgCode": null, - "side": "client", - "type": "bitmap32", + "side": "server", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "client", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "4", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - } - ] - }, - { - "name": "Identify", - "code": 3, - "mfgCode": null, - "define": "IDENTIFY_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ - { - "name": "IdentifyTime", - "code": 0, + "name": "ICDCounter", + "code": 4, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int32u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "IdentifyType", - "code": 1, + "name": "ClientsSupportedPerFabric", + "code": 5, "mfgCode": null, "side": "server", - "type": "IdentifyTypeEnum", + "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -5588,7 +5518,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -5604,69 +5534,45 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "1", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 } ] - }, + } + ] + }, + { + "name": "Anonymous Endpoint Type", + "deviceTypeName": "MA-smokecoalarm", + "deviceTypeCode": 118, + "deviceTypeProfileId": 259, + "clusters": [ { - "name": "Groups", - "code": 4, + "name": "Identify", + "code": 3, "mfgCode": null, - "define": "GROUPS_CLUSTER", + "define": "IDENTIFY_CLUSTER", "side": "client", "enabled": 0, "commands": [ { - "name": "AddGroup", + "name": "Identify", "code": 0, "mfgCode": null, "source": "client", "incoming": 1, - "outgoing": 1 + "outgoing": 0 }, { - "name": "ViewGroup", - "code": 1, + "name": "TriggerEffect", + "code": 64, "mfgCode": null, "source": "client", "incoming": 1, - "outgoing": 1 - }, - { - "name": "GetGroupMembership", - "code": 2, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "RemoveGroup", - "code": 3, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "RemoveAllGroups", - "code": 4, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "AddGroupIfIdentifying", - "code": 5, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 + "outgoing": 0 } ], "attributes": [ @@ -5698,68 +5604,50 @@ "bounded": 0, "defaultValue": "4", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 } ] }, { - "name": "Groups", - "code": 4, + "name": "Identify", + "code": 3, "mfgCode": null, - "define": "GROUPS_CLUSTER", + "define": "IDENTIFY_CLUSTER", "side": "server", - "enabled": 0, - "commands": [ + "enabled": 1, + "attributes": [ { - "name": "AddGroupResponse", + "name": "IdentifyTime", "code": 0, "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 1 + "side": "server", + "type": "int16u", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0x0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 }, { - "name": "ViewGroupResponse", + "name": "IdentifyType", "code": 1, "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "GetGroupMembershipResponse", - "code": 2, - "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "RemoveGroupResponse", - "code": 3, - "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ - { - "name": "NameSupport", - "code": 0, - "mfgCode": null, "side": "server", - "type": "NameSupportBitmap", + "type": "IdentifyTypeEnum", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0x00", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { @@ -5768,7 +5656,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 1, + "included": 0, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -5784,7 +5672,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 1, + "included": 0, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -5800,7 +5688,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 1, + "included": 0, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -5816,7 +5704,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 1, + "included": 0, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -5854,22 +5742,22 @@ "bounded": 0, "defaultValue": "4", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 } ] }, { - "name": "Scenes", - "code": 5, + "name": "Groups", + "code": 4, "mfgCode": null, - "define": "SCENES_CLUSTER", + "define": "GROUPS_CLUSTER", "side": "client", "enabled": 0, "commands": [ { - "name": "AddScene", + "name": "AddGroup", "code": 0, "mfgCode": null, "source": "client", @@ -5877,7 +5765,7 @@ "outgoing": 1 }, { - "name": "ViewScene", + "name": "ViewGroup", "code": 1, "mfgCode": null, "source": "client", @@ -5885,7 +5773,7 @@ "outgoing": 1 }, { - "name": "RemoveScene", + "name": "GetGroupMembership", "code": 2, "mfgCode": null, "source": "client", @@ -5893,7 +5781,7 @@ "outgoing": 1 }, { - "name": "RemoveAllScenes", + "name": "RemoveGroup", "code": 3, "mfgCode": null, "source": "client", @@ -5901,7 +5789,7 @@ "outgoing": 1 }, { - "name": "StoreScene", + "name": "RemoveAllGroups", "code": 4, "mfgCode": null, "source": "client", @@ -5909,20 +5797,12 @@ "outgoing": 1 }, { - "name": "RecallScene", + "name": "AddGroupIfIdentifying", "code": 5, "mfgCode": null, "source": "client", "incoming": 1, "outgoing": 1 - }, - { - "name": "GetSceneMembership", - "code": 6, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 } ], "attributes": [ @@ -5954,22 +5834,22 @@ "bounded": 0, "defaultValue": "4", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 } ] }, { - "name": "Scenes", - "code": 5, + "name": "Groups", + "code": 4, "mfgCode": null, - "define": "SCENES_CLUSTER", + "define": "GROUPS_CLUSTER", "side": "server", - "enabled": 0, + "enabled": 1, "commands": [ { - "name": "AddSceneResponse", + "name": "AddGroupResponse", "code": 0, "mfgCode": null, "source": "server", @@ -5977,7 +5857,7 @@ "outgoing": 1 }, { - "name": "ViewSceneResponse", + "name": "ViewGroupResponse", "code": 1, "mfgCode": null, "source": "server", @@ -5985,7 +5865,7 @@ "outgoing": 1 }, { - "name": "RemoveSceneResponse", + "name": "GetGroupMembershipResponse", "code": 2, "mfgCode": null, "source": "server", @@ -5993,372 +5873,330 @@ "outgoing": 1 }, { - "name": "RemoveAllScenesResponse", + "name": "RemoveGroupResponse", "code": 3, "mfgCode": null, "source": "server", "incoming": 1, "outgoing": 1 - }, - { - "name": "StoreSceneResponse", - "code": 4, - "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "GetSceneMembershipResponse", - "code": 6, - "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 1 } ], "attributes": [ { - "name": "SceneCount", + "name": "NameSupport", "code": 0, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "NameSupportBitmap", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentScene", - "code": 1, + "name": "GeneratedCommandList", + "code": 65528, "mfgCode": null, "side": "server", - "type": "int8u", - "included": 1, - "storageOption": "RAM", + "type": "array", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentGroup", - "code": 2, + "name": "AcceptedCommandList", + "code": 65529, "mfgCode": null, "side": "server", - "type": "group_id", - "included": 1, - "storageOption": "RAM", + "type": "array", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "SceneValid", - "code": 3, + "name": "EventList", + "code": 65530, "mfgCode": null, "side": "server", - "type": "boolean", - "included": 1, - "storageOption": "RAM", + "type": "array", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "NameSupport", - "code": 4, + "name": "AttributeList", + "code": 65531, "mfgCode": null, "side": "server", - "type": "bitmap8", - "included": 1, - "storageOption": "RAM", + "type": "array", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "LastConfiguredBy", - "code": 5, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, "side": "server", - "type": "node_id", - "included": 0, + "type": "bitmap32", + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "4", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Power Source", + "code": 47, + "mfgCode": null, + "define": "POWER_SOURCE_CLUSTER", + "side": "client", + "enabled": 0, + "attributes": [ { - "name": "AcceptedCommandList", - "code": 65529, + "name": "FeatureMap", + "code": 65532, "mfgCode": null, - "side": "server", - "type": "array", + "side": "client", + "type": "bitmap32", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "EventList", - "code": 65530, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, - "side": "server", - "type": "array", + "side": "client", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Power Source", + "code": 47, + "mfgCode": null, + "define": "POWER_SOURCE_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ { - "name": "AttributeList", - "code": 65531, + "name": "Status", + "code": 0, "mfgCode": null, "side": "server", - "type": "array", + "type": "PowerSourceStatusEnum", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "Order", + "code": 1, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int8u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "2", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "Description", + "code": 2, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "char_string", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "B2", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "On/Off", - "code": 6, - "mfgCode": null, - "define": "ON_OFF_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ - { - "name": "Off", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "On", - "code": 1, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 }, { - "name": "Toggle", - "code": 2, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ - { - "name": "FeatureMap", - "code": 65532, + "name": "WiredAssessedInputVoltage", + "code": 3, "mfgCode": null, - "side": "client", - "type": "bitmap32", - "included": 1, + "side": "server", + "type": "int32u", + "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "WiredAssessedInputFrequency", + "code": 4, "mfgCode": null, - "side": "client", + "side": "server", "type": "int16u", - "included": 1, + "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "On/Off", - "code": 6, - "mfgCode": null, - "define": "ON_OFF_CLUSTER", - "side": "server", - "enabled": 0, - "attributes": [ + }, { - "name": "OnOff", - "code": 0, + "name": "WiredCurrentType", + "code": 5, "mfgCode": null, "side": "server", - "type": "boolean", - "included": 1, + "type": "WiredCurrentTypeEnum", + "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", - "reportable": 0, - "minInterval": 0, - "maxInterval": 65344, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "GlobalSceneControl", - "code": 16384, + "name": "WiredAssessedCurrent", + "code": 6, "mfgCode": null, "side": "server", - "type": "boolean", - "included": 1, + "type": "int32u", + "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "OnTime", - "code": 16385, + "name": "WiredNominalVoltage", + "code": 7, "mfgCode": null, "side": "server", - "type": "int16u", - "included": 1, + "type": "int32u", + "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "OffWaitTime", - "code": 16386, + "name": "WiredMaximumCurrent", + "code": 8, "mfgCode": null, "side": "server", - "type": "int16u", - "included": 1, + "type": "int32u", + "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "StartUpOnOff", - "code": 16387, + "name": "WiredPresent", + "code": 9, "mfgCode": null, "side": "server", - "type": "OnOffStartUpOnOff", - "included": 1, + "type": "boolean", + "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, @@ -6369,12 +6207,12 @@ "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "ActiveWiredFaults", + "code": 10, "mfgCode": null, "side": "server", "type": "array", - "included": 1, + "included": 0, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -6385,13 +6223,13 @@ "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "BatVoltage", + "code": 11, "mfgCode": null, "side": "server", - "type": "array", - "included": 1, - "storageOption": "External", + "type": "int32u", + "included": 0, + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -6401,13 +6239,13 @@ "reportableChange": 0 }, { - "name": "EventList", - "code": 65530, + "name": "BatPercentRemaining", + "code": 12, "mfgCode": null, "side": "server", - "type": "array", - "included": 1, - "storageOption": "External", + "type": "int8u", + "included": 0, + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -6417,13 +6255,13 @@ "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "BatTimeRemaining", + "code": 13, "mfgCode": null, "side": "server", - "type": "array", - "included": 1, - "storageOption": "External", + "type": "int32u", + "included": 0, + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -6433,11 +6271,11 @@ "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "BatChargeLevel", + "code": 14, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "BatChargeLevelEnum", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -6449,274 +6287,168 @@ "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "BatReplacementNeeded", + "code": 15, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "boolean", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "4", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "On/off Switch Configuration", - "code": 7, - "mfgCode": null, - "define": "ON_OFF_SWITCH_CONFIGURATION_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ + }, { - "name": "ClusterRevision", - "code": 65533, + "name": "BatReplaceability", + "code": 16, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "BatReplaceabilityEnum", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "On/off Switch Configuration", - "code": 7, - "mfgCode": null, - "define": "ON_OFF_SWITCH_CONFIGURATION_CLUSTER", - "side": "server", - "enabled": 0, - "attributes": [ + }, { - "name": "switch type", - "code": 0, + "name": "BatPresent", + "code": 17, "mfgCode": null, "side": "server", - "type": "enum8", - "included": 1, + "type": "boolean", + "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "switch actions", - "code": 16, + "name": "ActiveBatFaults", + "code": 18, "mfgCode": null, "side": "server", - "type": "enum8", - "included": 1, - "storageOption": "RAM", + "type": "array", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "BatReplacementDescription", + "code": 19, "mfgCode": null, "side": "server", - "type": "int16u", - "included": 1, + "type": "char_string", + "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "", "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, + "minInterval": 1, + "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Level Control", - "code": 8, - "mfgCode": null, - "define": "LEVEL_CONTROL_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ - { - "name": "MoveToLevel", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "Move", - "code": 1, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "Step", - "code": 2, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "Stop", - "code": 3, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "MoveToLevelWithOnOff", - "code": 4, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "MoveWithOnOff", - "code": 5, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "StepWithOnOff", - "code": 6, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 }, { - "name": "StopWithOnOff", - "code": 7, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ - { - "name": "FeatureMap", - "code": 65532, + "name": "BatCommonDesignation", + "code": 20, "mfgCode": null, - "side": "client", - "type": "bitmap32", - "included": 1, + "side": "server", + "type": "BatCommonDesignationEnum", + "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "BatANSIDesignation", + "code": 21, "mfgCode": null, - "side": "client", - "type": "int16u", - "included": 1, + "side": "server", + "type": "char_string", + "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "5", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Level Control", - "code": 8, - "mfgCode": null, - "define": "LEVEL_CONTROL_CLUSTER", - "side": "server", - "enabled": 0, - "attributes": [ + }, { - "name": "CurrentLevel", - "code": 0, + "name": "BatIECDesignation", + "code": 22, "mfgCode": null, "side": "server", - "type": "int8u", - "included": 1, + "type": "char_string", + "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "RemainingTime", - "code": 1, + "name": "BatApprovedChemistry", + "code": 23, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "BatApprovedChemistryEnum", "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MinLevel", - "code": 2, + "name": "BatCapacity", + "code": 24, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int32u", "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MaxLevel", - "code": 3, + "name": "BatQuantity", + "code": 25, "mfgCode": null, "side": "server", "type": "int8u", @@ -6724,100 +6456,100 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0xFE", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentFrequency", - "code": 4, + "name": "BatChargeState", + "code": 26, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "BatChargeStateEnum", "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MinFrequency", - "code": 5, + "name": "BatTimeToFullCharge", + "code": 27, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int32u", "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MaxFrequency", - "code": 6, + "name": "BatFunctionalWhileCharging", + "code": 28, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "boolean", "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Options", - "code": 15, + "name": "BatChargingCurrent", + "code": 29, "mfgCode": null, "side": "server", - "type": "LevelControlOptions", - "included": 1, + "type": "int32u", + "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "OnOffTransitionTime", - "code": 16, + "name": "ActiveBatChargeFaults", + "code": 30, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "array", "included": 0, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "OnLevel", - "code": 17, + "name": "GeneratedCommandList", + "code": 65528, "mfgCode": null, "side": "server", - "type": "int8u", - "included": 1, - "storageOption": "RAM", + "type": "array", + "included": 0, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -6827,93 +6559,13 @@ "reportableChange": 0 }, { - "name": "OnTransitionTime", - "code": 18, + "name": "AcceptedCommandList", + "code": 65529, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "array", "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "OffTransitionTime", - "code": 19, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "DefaultMoveRate", - "code": 20, - "mfgCode": null, - "side": "server", - "type": "int8u", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "StartUpCurrentLevel", - "code": 16384, - "mfgCode": null, - "side": "server", - "type": "int8u", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "GeneratedCommandList", - "code": 65528, - "mfgCode": null, - "side": "server", - "type": "array", - "included": 1, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "AcceptedCommandList", - "code": 65529, - "mfgCode": null, - "side": "server", - "type": "array", - "included": 1, - "storageOption": "External", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -6928,7 +6580,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 1, + "included": 0, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -6944,7 +6596,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 1, + "included": 0, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -6964,7 +6616,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "2", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -6980,21 +6632,40 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "5", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 } + ], + "events": [ + { + "name": "BatFaultChange", + "code": 1, + "mfgCode": null, + "side": "server", + "included": 1 + } ] }, { - "name": "Descriptor", - "code": 29, + "name": "Smoke CO Alarm", + "code": 92, "mfgCode": null, - "define": "DESCRIPTOR_CLUSTER", + "define": "SMOKE_CO_ALARM_CLUSTER", "side": "client", "enabled": 0, + "commands": [ + { + "name": "SelfTestRequest", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], "attributes": [ { "name": "FeatureMap", @@ -7031,147 +6702,147 @@ ] }, { - "name": "Descriptor", - "code": 29, + "name": "Smoke CO Alarm", + "code": 92, "mfgCode": null, - "define": "DESCRIPTOR_CLUSTER", + "define": "SMOKE_CO_ALARM_CLUSTER", "side": "server", - "enabled": 0, + "enabled": 1, "attributes": [ { - "name": "DeviceTypeList", + "name": "ExpressedState", "code": 0, "mfgCode": null, "side": "server", - "type": "array", + "type": "ExpressedStateEnum", "included": 1, - "storageOption": "External", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ServerList", + "name": "SmokeState", "code": 1, "mfgCode": null, "side": "server", - "type": "array", + "type": "AlarmStateEnum", "included": 1, - "storageOption": "External", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClientList", + "name": "COState", "code": 2, "mfgCode": null, "side": "server", - "type": "array", + "type": "AlarmStateEnum", "included": 1, - "storageOption": "External", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "PartsList", + "name": "BatteryAlert", "code": 3, "mfgCode": null, "side": "server", - "type": "array", + "type": "AlarmStateEnum", "included": 1, - "storageOption": "External", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "DeviceMuted", + "code": 4, "mfgCode": null, "side": "server", - "type": "array", + "type": "MuteStateEnum", "included": 1, - "storageOption": "External", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "TestInProgress", + "code": 5, "mfgCode": null, "side": "server", - "type": "array", + "type": "boolean", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "EventList", - "code": 65530, + "name": "HardwareFaultAlert", + "code": 6, "mfgCode": null, "side": "server", - "type": "array", + "type": "boolean", "included": 1, - "storageOption": "External", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "EndOfServiceAlert", + "code": 7, "mfgCode": null, "side": "server", - "type": "array", + "type": "EndOfServiceEnum", "included": 1, - "storageOption": "External", + "storageOption": "NVM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "InterconnectSmokeAlarm", + "code": 8, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "AlarmStateEnum", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -7183,37 +6854,27 @@ "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "InterconnectCOAlarm", + "code": 9, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "AlarmStateEnum", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Binding", - "code": 30, - "mfgCode": null, - "define": "BINDING_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ + }, { - "name": "FeatureMap", - "code": 65532, + "name": "ContaminationState", + "code": 10, "mfgCode": null, - "side": "client", - "type": "bitmap32", + "side": "server", + "type": "ContaminationStateEnum", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -7225,11 +6886,11 @@ "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "SensitivityLevel", + "code": 11, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "SensitivityEnum", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -7239,28 +6900,18 @@ "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Binding", - "code": 30, - "mfgCode": null, - "define": "BINDING_CLUSTER", - "side": "server", - "enabled": 0, - "attributes": [ + }, { - "name": "Binding", - "code": 0, + "name": "ExpiryDate", + "code": 12, "mfgCode": null, "side": "server", - "type": "array", + "type": "epoch_s", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -7272,7 +6923,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 1, + "included": 0, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -7288,7 +6939,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 1, + "included": 0, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -7304,7 +6955,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 1, + "included": 0, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -7320,7 +6971,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 1, + "included": 0, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -7340,7 +6991,7 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "3", "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -7362,1938 +7013,81 @@ "maxInterval": 65534, "reportableChange": 0 } - ] - }, - { - "name": "Basic Information", - "code": 40, - "mfgCode": null, - "define": "BASIC_INFORMATION_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "client", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 1, - "bounded": 0, - "defaultValue": "1", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - } - ] - }, - { - "name": "Basic Information", - "code": 40, - "mfgCode": null, - "define": "BASIC_INFORMATION_CLUSTER", - "side": "server", - "enabled": 0, - "attributes": [ - { - "name": "DataModelRevision", - "code": 0, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "External", - "singleton": 1, - "bounded": 0, - "defaultValue": "10", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "VendorName", - "code": 1, - "mfgCode": null, - "side": "server", - "type": "char_string", - "included": 1, - "storageOption": "External", - "singleton": 1, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "VendorID", - "code": 2, - "mfgCode": null, - "side": "server", - "type": "vendor_id", - "included": 1, - "storageOption": "External", - "singleton": 1, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "ProductName", - "code": 3, - "mfgCode": null, - "side": "server", - "type": "char_string", - "included": 1, - "storageOption": "External", - "singleton": 1, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "ProductID", - "code": 4, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "External", - "singleton": 1, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "NodeLabel", - "code": 5, - "mfgCode": null, - "side": "server", - "type": "char_string", - "included": 1, - "storageOption": "NVM", - "singleton": 1, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "Location", - "code": 6, - "mfgCode": null, - "side": "server", - "type": "char_string", - "included": 1, - "storageOption": "External", - "singleton": 1, - "bounded": 0, - "defaultValue": "XX", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "HardwareVersion", - "code": 7, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "External", - "singleton": 1, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "HardwareVersionString", - "code": 8, - "mfgCode": null, - "side": "server", - "type": "char_string", - "included": 1, - "storageOption": "External", - "singleton": 1, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "SoftwareVersion", - "code": 9, - "mfgCode": null, - "side": "server", - "type": "int32u", - "included": 1, - "storageOption": "External", - "singleton": 1, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "SoftwareVersionString", - "code": 10, - "mfgCode": null, - "side": "server", - "type": "char_string", - "included": 1, - "storageOption": "External", - "singleton": 1, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "ManufacturingDate", - "code": 11, - "mfgCode": null, - "side": "server", - "type": "char_string", - "included": 1, - "storageOption": "External", - "singleton": 1, - "bounded": 0, - "defaultValue": "20210614123456ZZ", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "PartNumber", - "code": 12, - "mfgCode": null, - "side": "server", - "type": "char_string", - "included": 1, - "storageOption": "External", - "singleton": 1, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "ProductURL", - "code": 13, - "mfgCode": null, - "side": "server", - "type": "long_char_string", - "included": 1, - "storageOption": "External", - "singleton": 1, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "ProductLabel", - "code": 14, - "mfgCode": null, - "side": "server", - "type": "char_string", - "included": 1, - "storageOption": "External", - "singleton": 1, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "SerialNumber", - "code": 15, - "mfgCode": null, - "side": "server", - "type": "char_string", - "included": 1, - "storageOption": "External", - "singleton": 1, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "LocalConfigDisabled", - "code": 16, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 1, - "storageOption": "NVM", - "singleton": 1, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "Reachable", - "code": 17, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 1, - "storageOption": "RAM", - "singleton": 1, - "bounded": 0, - "defaultValue": "1", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "UniqueID", - "code": 18, - "mfgCode": null, - "side": "server", - "type": "char_string", - "included": 1, - "storageOption": "External", - "singleton": 1, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "CapabilityMinima", - "code": 19, - "mfgCode": null, - "side": "server", - "type": "CapabilityMinimaStruct", - "included": 1, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 1, - "bounded": 0, - "defaultValue": "1", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - } - ] - }, - { - "name": "Power Source", - "code": 47, - "mfgCode": null, - "define": "POWER_SOURCE_CLUSTER", - "side": "client", - "enabled": 0 - }, - { - "name": "Power Source", - "code": 47, - "mfgCode": null, - "define": "POWER_SOURCE_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ - { - "name": "Status", - "code": 0, - "mfgCode": null, - "side": "server", - "type": "PowerSourceStatusEnum", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "1", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "Order", - "code": 1, - "mfgCode": null, - "side": "server", - "type": "int8u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "1", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "Description", - "code": 2, - "mfgCode": null, - "side": "server", - "type": "char_string", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "Battery", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "WiredAssessedCurrent", - "code": 6, - "mfgCode": null, - "side": "server", - "type": "int32u", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "BatChargeLevel", - "code": 14, - "mfgCode": null, - "side": "server", - "type": "BatChargeLevelEnum", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "BatReplacementNeeded", - "code": 15, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "BatReplaceability", - "code": 16, - "mfgCode": null, - "side": "server", - "type": "BatReplaceabilityEnum", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "BatReplacementDescription", - "code": 19, - "mfgCode": null, - "side": "server", - "type": "char_string", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "FeatureMap", - "code": 65532, - "mfgCode": null, - "side": "server", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0A", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "1", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - } - ] - }, - { - "name": "Smoke CO Alarm", - "code": 92, - "mfgCode": null, - "define": "SMOKE_CO_ALARM_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ - { - "name": "SelfTestRequest", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - } - ], - "attributes": [ - { - "name": "FeatureMap", - "code": 65532, - "mfgCode": null, - "side": "client", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "client", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "1", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - } - ] - }, - { - "name": "Smoke CO Alarm", - "code": 92, - "mfgCode": null, - "define": "SMOKE_CO_ALARM_CLUSTER", - "side": "server", - "enabled": 1, - "attributes": [ - { - "name": "ExpressedState", - "code": 0, - "mfgCode": null, - "side": "server", - "type": "ExpressedStateEnum", - "included": 1, - "storageOption": "NVM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "SmokeState", - "code": 1, - "mfgCode": null, - "side": "server", - "type": "AlarmStateEnum", - "included": 1, - "storageOption": "NVM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "COState", - "code": 2, - "mfgCode": null, - "side": "server", - "type": "AlarmStateEnum", - "included": 1, - "storageOption": "NVM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "BatteryAlert", - "code": 3, - "mfgCode": null, - "side": "server", - "type": "AlarmStateEnum", - "included": 1, - "storageOption": "NVM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "DeviceMuted", - "code": 4, - "mfgCode": null, - "side": "server", - "type": "MuteStateEnum", - "included": 1, - "storageOption": "NVM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "TestInProgress", - "code": 5, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "HardwareFaultAlert", - "code": 6, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 1, - "storageOption": "NVM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "EndOfServiceAlert", - "code": 7, - "mfgCode": null, - "side": "server", - "type": "EndOfServiceEnum", - "included": 1, - "storageOption": "NVM", - "singleton": 0, - "bounded": 0, - "defaultValue": "1", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "InterconnectSmokeAlarm", - "code": 8, - "mfgCode": null, - "side": "server", - "type": "AlarmStateEnum", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "InterconnectCOAlarm", - "code": 9, - "mfgCode": null, - "side": "server", - "type": "AlarmStateEnum", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "ContaminationState", - "code": 10, - "mfgCode": null, - "side": "server", - "type": "ContaminationStateEnum", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "SensitivityLevel", - "code": 11, - "mfgCode": null, - "side": "server", - "type": "SensitivityEnum", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "1", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "GeneratedCommandList", - "code": 65528, - "mfgCode": null, - "side": "server", - "type": "array", - "included": 0, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "AcceptedCommandList", - "code": 65529, - "mfgCode": null, - "side": "server", - "type": "array", - "included": 0, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "EventList", - "code": 65530, - "mfgCode": null, - "side": "server", - "type": "array", - "included": 0, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "AttributeList", - "code": 65531, - "mfgCode": null, - "side": "server", - "type": "array", - "included": 0, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "FeatureMap", - "code": 65532, - "mfgCode": null, - "side": "server", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "3", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "1", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - } - ], - "events": [ - { - "name": "SmokeAlarm", - "code": 0, - "mfgCode": null, - "side": "server", - "included": 1 - }, - { - "name": "COAlarm", - "code": 1, - "mfgCode": null, - "side": "server", - "included": 1 - }, - { - "name": "LowBattery", - "code": 2, - "mfgCode": null, - "side": "server", - "included": 1 - }, - { - "name": "HardwareFault", - "code": 3, - "mfgCode": null, - "side": "server", - "included": 1 - }, - { - "name": "EndOfService", - "code": 4, - "mfgCode": null, - "side": "server", - "included": 1 - }, - { - "name": "SelfTestComplete", - "code": 5, - "mfgCode": null, - "side": "server", - "included": 1 - }, - { - "name": "AlarmMuted", - "code": 6, - "mfgCode": null, - "side": "server", - "included": 1 - }, - { - "name": "MuteEnded", - "code": 7, - "mfgCode": null, - "side": "server", - "included": 1 - }, - { - "name": "InterconnectSmokeAlarm", - "code": 8, - "mfgCode": null, - "side": "server", - "included": 1 - }, - { - "name": "InterconnectCOAlarm", - "code": 9, - "mfgCode": null, - "side": "server", - "included": 1 - }, - { - "name": "AllClear", - "code": 10, - "mfgCode": null, - "side": "server", - "included": 1 - } - ] - }, - { - "name": "Door Lock", - "code": 257, - "mfgCode": null, - "define": "DOOR_LOCK_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ - { - "name": "LockDoor", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "UnlockDoor", - "code": 1, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "UnlockWithTimeout", - "code": 3, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "SetWeekDaySchedule", - "code": 11, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "GetWeekDaySchedule", - "code": 12, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "ClearWeekDaySchedule", - "code": 13, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "SetYearDaySchedule", - "code": 14, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "GetYearDaySchedule", - "code": 15, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "ClearYearDaySchedule", - "code": 16, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "SetHolidaySchedule", - "code": 17, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "GetHolidaySchedule", - "code": 18, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "ClearHolidaySchedule", - "code": 19, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "SetUser", - "code": 26, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "GetUser", - "code": 27, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "ClearUser", - "code": 29, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "SetCredential", - "code": 34, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "GetCredentialStatus", - "code": 36, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 0 - }, - { - "name": "ClearCredential", - "code": 38, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ - { - "name": "FeatureMap", - "code": 65532, - "mfgCode": null, - "side": "client", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "client", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "6", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - } - ] - }, - { - "name": "Door Lock", - "code": 257, - "mfgCode": null, - "define": "DOOR_LOCK_CLUSTER", - "side": "server", - "enabled": 0, - "commands": [ - { - "name": "GetWeekDayScheduleResponse", - "code": 12, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - }, - { - "name": "GetYearDayScheduleResponse", - "code": 15, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - }, - { - "name": "GetHolidayScheduleResponse", - "code": 18, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - }, - { - "name": "GetUserResponse", - "code": 28, - "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "SetCredentialResponse", - "code": 35, - "mfgCode": null, - "source": "server", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "GetCredentialStatusResponse", - "code": 37, - "mfgCode": null, - "source": "server", - "incoming": 0, - "outgoing": 1 - } - ], - "attributes": [ - { - "name": "LockState", - "code": 0, - "mfgCode": null, - "side": "server", - "type": "DlLockState", - "included": 1, - "storageOption": "NVM", - "singleton": 0, - "bounded": 0, - "defaultValue": "1", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "LockType", - "code": 1, - "mfgCode": null, - "side": "server", - "type": "DlLockType", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "ActuatorEnabled", - "code": 2, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "DoorState", - "code": 3, - "mfgCode": null, - "side": "server", - "type": "DoorStateEnum", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "DoorOpenEvents", - "code": 4, - "mfgCode": null, - "side": "server", - "type": "int32u", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "DoorClosedEvents", - "code": 5, - "mfgCode": null, - "side": "server", - "type": "int32u", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "OpenPeriod", - "code": 6, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "NumberOfTotalUsersSupported", - "code": 17, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "10", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "NumberOfPINUsersSupported", - "code": 18, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "10", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "NumberOfRFIDUsersSupported", - "code": 19, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "10", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "NumberOfWeekDaySchedulesSupportedPerUser", - "code": 20, - "mfgCode": null, - "side": "server", - "type": "int8u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "10", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "NumberOfYearDaySchedulesSupportedPerUser", - "code": 21, - "mfgCode": null, - "side": "server", - "type": "int8u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "10", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "NumberOfHolidaySchedulesSupported", - "code": 22, - "mfgCode": null, - "side": "server", - "type": "int8u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "10", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "MaxPINCodeLength", - "code": 23, - "mfgCode": null, - "side": "server", - "type": "int8u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "8", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "MinPINCodeLength", - "code": 24, - "mfgCode": null, - "side": "server", - "type": "int8u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "6", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "MaxRFIDCodeLength", - "code": 25, - "mfgCode": null, - "side": "server", - "type": "int8u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "20", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "MinRFIDCodeLength", - "code": 26, - "mfgCode": null, - "side": "server", - "type": "int8u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "10", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "CredentialRulesSupport", - "code": 27, - "mfgCode": null, - "side": "server", - "type": "DlCredentialRuleMask", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "1", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "NumberOfCredentialsSupportedPerUser", - "code": 28, - "mfgCode": null, - "side": "server", - "type": "int8u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "5", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "Language", - "code": 33, - "mfgCode": null, - "side": "server", - "type": "char_string", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "en", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "LEDSettings", - "code": 34, - "mfgCode": null, - "side": "server", - "type": "int8u", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "AutoRelockTime", - "code": 35, - "mfgCode": null, - "side": "server", - "type": "int32u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "60", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "SoundVolume", - "code": 36, - "mfgCode": null, - "side": "server", - "type": "int8u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x00", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "OperatingMode", - "code": 37, - "mfgCode": null, - "side": "server", - "type": "OperatingModeEnum", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x00", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "SupportedOperatingModes", - "code": 38, - "mfgCode": null, - "side": "server", - "type": "DlSupportedOperatingModes", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0xFFF6", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "DefaultConfigurationRegister", - "code": 39, - "mfgCode": null, - "side": "server", - "type": "DlDefaultConfigurationRegister", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "EnableLocalProgramming", - "code": 40, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "1", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "EnableOneTouchLocking", - "code": 41, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x00", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "EnableInsideStatusLED", - "code": 42, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "EnablePrivacyModeButton", - "code": 43, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x00", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "LocalProgrammingFeatures", - "code": 44, - "mfgCode": null, - "side": "server", - "type": "DlLocalProgrammingFeatures", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "WrongCodeEntryLimit", - "code": 48, - "mfgCode": null, - "side": "server", - "type": "int8u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "3", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "UserCodeTemporaryDisableTime", - "code": 49, - "mfgCode": null, - "side": "server", - "type": "int8u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "10", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "SendPINOverTheAir", - "code": 50, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "RequirePINforRemoteOperation", - "code": 51, - "mfgCode": null, - "side": "server", - "type": "boolean", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, + ], + "events": [ { - "name": "ExpiringUserTimeout", - "code": 53, + "name": "SmokeAlarm", + "code": 0, "mfgCode": null, "side": "server", - "type": "int16u", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 + "included": 1 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "COAlarm", + "code": 1, "mfgCode": null, "side": "server", - "type": "array", - "included": 1, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 + "included": 1 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "LowBattery", + "code": 2, "mfgCode": null, "side": "server", - "type": "array", - "included": 1, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 + "included": 1 }, { - "name": "EventList", - "code": 65530, + "name": "HardwareFault", + "code": 3, "mfgCode": null, "side": "server", - "type": "array", - "included": 1, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 + "included": 1 }, { - "name": "AttributeList", - "code": 65531, + "name": "EndOfService", + "code": 4, "mfgCode": null, "side": "server", - "type": "array", - "included": 1, - "storageOption": "External", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 + "included": 1 }, { - "name": "FeatureMap", - "code": 65532, + "name": "SelfTestComplete", + "code": 5, "mfgCode": null, "side": "server", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0xDB3", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 + "included": 1 }, { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "6", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - } - ], - "events": [ - { - "name": "DoorLockAlarm", - "code": 0, + "name": "AlarmMuted", + "code": 6, "mfgCode": null, "side": "server", "included": 1 }, { - "name": "DoorStateChange", - "code": 1, + "name": "MuteEnded", + "code": 7, "mfgCode": null, "side": "server", "included": 1 }, { - "name": "LockOperation", - "code": 2, + "name": "InterconnectSmokeAlarm", + "code": 8, "mfgCode": null, "side": "server", "included": 1 }, { - "name": "LockOperationError", - "code": 3, + "name": "InterconnectCOAlarm", + "code": 9, "mfgCode": null, "side": "server", "included": 1 }, { - "name": "LockUserChange", - "code": 4, + "name": "AllClear", + "code": 10, "mfgCode": null, "side": "server", "included": 1 @@ -9301,303 +7095,223 @@ ] }, { - "name": "Barrier Control", - "code": 259, + "name": "Unit Testing", + "code": 4294048773, "mfgCode": null, - "define": "BARRIER_CONTROL_CLUSTER", + "define": "UNIT_TESTING_CLUSTER", "side": "client", "enabled": 0, - "commands": [ - { - "name": "BarrierControlGoToPercent", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "BarrierControlStop", - "code": 1, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ - { - "name": "FeatureMap", - "code": 65532, - "mfgCode": null, - "side": "client", - "type": "bitmap32", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "client", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "1", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - } - ] - }, - { - "name": "Barrier Control", - "code": 259, - "mfgCode": null, - "define": "BARRIER_CONTROL_CLUSTER", - "side": "server", - "enabled": 0, - "attributes": [ - { - "name": "barrier moving state", - "code": 1, - "mfgCode": null, - "side": "server", - "type": "enum8", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 - }, - { - "name": "barrier safety status", - "code": 2, - "mfgCode": null, - "side": "server", - "type": "bitmap16", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 + "commands": [ + { + "name": "Test", + "code": 0, + "mfgCode": null, + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "barrier capabilities", - "code": 3, + "name": "TestNotHandled", + "code": 1, "mfgCode": null, - "side": "server", - "type": "bitmap8", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "barrier open events", - "code": 4, + "name": "TestSpecific", + "code": 2, "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 0, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "0x0000", - "reportable": 1, - "minInterval": 1, - "maxInterval": 65534, - "reportableChange": 0 + "source": "client", + "incoming": 1, + "outgoing": 1 }, { - "name": "barrier close events", - "code": 5, + "name": "TestEmitTestEventRequest", + "code": 20, "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 0, + "source": "client", + "incoming": 1, + "outgoing": 0 + } + ], + "attributes": [ + { + "name": "FeatureMap", + "code": 65532, + "mfgCode": null, + "side": "client", + "type": "bitmap32", + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "barrier command open events", - "code": 6, + "name": "ClusterRevision", + "code": 65533, "mfgCode": null, - "side": "server", + "side": "client", "type": "int16u", - "included": 0, + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "1", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - }, + } + ] + }, + { + "name": "Unit Testing", + "code": 4294048773, + "mfgCode": null, + "define": "UNIT_TESTING_CLUSTER", + "side": "server", + "enabled": 1, + "attributes": [ { - "name": "barrier command close events", - "code": 7, + "name": "boolean", + "code": 0, "mfgCode": null, "side": "server", - "type": "int16u", - "included": 0, + "type": "boolean", + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "false", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "barrier open period", - "code": 8, + "name": "bitmap8", + "code": 1, "mfgCode": null, "side": "server", - "type": "int16u", - "included": 0, + "type": "Bitmap8MaskMap", + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "barrier close period", - "code": 9, + "name": "bitmap16", + "code": 2, "mfgCode": null, "side": "server", - "type": "int16u", - "included": 0, + "type": "Bitmap16MaskMap", + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "barrier position", - "code": 10, + "name": "bitmap32", + "code": 3, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "Bitmap32MaskMap", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "bitmap64", + "code": 4, "mfgCode": null, "side": "server", - "type": "array", + "type": "Bitmap64MaskMap", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "int8u", + "code": 5, "mfgCode": null, "side": "server", - "type": "array", + "type": "int8u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "EventList", - "code": 65530, + "name": "int16u", + "code": 6, "mfgCode": null, "side": "server", - "type": "array", + "type": "int16u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "int24u", + "code": 7, "mfgCode": null, "side": "server", - "type": "array", + "type": "int24u", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "int32u", + "code": 8, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "int32u", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -9609,151 +7323,27 @@ "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "int40u", + "code": 9, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int40u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Color Control", - "code": 768, - "mfgCode": null, - "define": "COLOR_CONTROL_CLUSTER", - "side": "client", - "enabled": 0, - "commands": [ - { - "name": "MoveToHue", - "code": 0, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "MoveHue", - "code": 1, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "StepHue", - "code": 2, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "MoveToSaturation", - "code": 3, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "MoveSaturation", - "code": 4, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "StepSaturation", - "code": 5, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "MoveToHueAndSaturation", - "code": 6, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "MoveToColor", - "code": 7, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "MoveColor", - "code": 8, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "StepColor", - "code": 9, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "MoveToColorTemperature", - "code": 10, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "StopMoveStep", - "code": 71, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - }, - { - "name": "MoveColorTemperature", - "code": 75, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 }, - { - "name": "StepColorTemperature", - "code": 76, - "mfgCode": null, - "source": "client", - "incoming": 1, - "outgoing": 1 - } - ], - "attributes": [ - { - "name": "FeatureMap", - "code": 65532, + { + "name": "int48u", + "code": 10, "mfgCode": null, - "side": "client", - "type": "bitmap32", + "side": "server", + "type": "int48u", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -9765,245 +7355,235 @@ "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "int56u", + "code": 11, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "int56u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "5", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Color Control", - "code": 768, - "mfgCode": null, - "define": "COLOR_CONTROL_CLUSTER", - "side": "server", - "enabled": 0, - "attributes": [ + }, { - "name": "CurrentHue", - "code": 0, + "name": "int64u", + "code": 12, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int64u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", - "reportable": 0, + "defaultValue": "0", + "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentSaturation", - "code": 1, + "name": "int8s", + "code": 13, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int8s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", - "reportable": 0, + "defaultValue": "0", + "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "RemainingTime", - "code": 2, + "name": "int16s", + "code": 14, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentX", - "code": 3, + "name": "int24s", + "code": 15, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int24s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x616B", - "reportable": 0, + "defaultValue": "0", + "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CurrentY", - "code": 4, + "name": "int32s", + "code": 16, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int32s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x607D", - "reportable": 0, + "defaultValue": "0", + "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "DriftCompensation", - "code": 5, + "name": "int40s", + "code": 17, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "int40s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CompensationText", - "code": 6, + "name": "int48s", + "code": 18, "mfgCode": null, "side": "server", - "type": "char_string", + "type": "int48s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ColorTemperatureMireds", - "code": 7, + "name": "int56s", + "code": 19, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int56s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00FA", - "reportable": 0, + "defaultValue": "0", + "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ColorMode", - "code": 8, + "name": "int64s", + "code": 20, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "int64s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x01", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Options", - "code": 15, + "name": "enum8", + "code": 21, "mfgCode": null, "side": "server", - "type": "bitmap8", + "type": "enum8", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "NumberOfPrimaries", - "code": 16, + "name": "enum16", + "code": 22, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "enum16", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Primary1X", - "code": 17, + "name": "float_single", + "code": 23, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "single", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Primary1Y", - "code": 18, + "name": "float_double", + "code": 24, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "double", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Primary1Intensity", - "code": 19, + "name": "octet_string", + "code": 25, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "octet_string", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -10015,13 +7595,13 @@ "reportableChange": 0 }, { - "name": "Primary2X", - "code": 21, + "name": "list_int8u", + "code": 26, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -10031,13 +7611,13 @@ "reportableChange": 0 }, { - "name": "Primary2Y", - "code": 22, + "name": "list_octet_string", + "code": 27, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -10047,13 +7627,13 @@ "reportableChange": 0 }, { - "name": "Primary2Intensity", - "code": 23, + "name": "list_struct_octet_string", + "code": 28, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -10063,11 +7643,11 @@ "reportableChange": 0 }, { - "name": "Primary3X", - "code": 25, + "name": "long_octet_string", + "code": 29, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "long_octet_string", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -10079,11 +7659,11 @@ "reportableChange": 0 }, { - "name": "Primary3Y", - "code": 26, + "name": "char_string", + "code": 30, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "char_string", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -10095,11 +7675,11 @@ "reportableChange": 0 }, { - "name": "Primary3Intensity", - "code": 27, + "name": "long_char_string", + "code": 31, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "long_char_string", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -10111,11 +7691,11 @@ "reportableChange": 0 }, { - "name": "Primary4X", + "name": "epoch_us", "code": 32, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "epoch_us", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -10127,11 +7707,11 @@ "reportableChange": 0 }, { - "name": "Primary4Y", + "name": "epoch_s", "code": 33, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "epoch_s", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -10143,15 +7723,31 @@ "reportableChange": 0 }, { - "name": "Primary4Intensity", + "name": "vendor_id", "code": 34, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "vendor_id", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "list_nullables_and_optionals_struct", + "code": 35, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, "defaultValue": "", "reportable": 1, "minInterval": 1, @@ -10159,11 +7755,11 @@ "reportableChange": 0 }, { - "name": "Primary5X", + "name": "enum_attr", "code": 36, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "SimpleEnum", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -10175,13 +7771,13 @@ "reportableChange": 0 }, { - "name": "Primary5Y", + "name": "struct_attr", "code": 37, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "SimpleStruct", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -10191,7 +7787,7 @@ "reportableChange": 0 }, { - "name": "Primary5Intensity", + "name": "range_restricted_int8u", "code": 38, "mfgCode": null, "side": "server", @@ -10200,14 +7796,30 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "70", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "range_restricted_int8s", + "code": 39, + "mfgCode": null, + "side": "server", + "type": "int8s", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "-5", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Primary6X", + "name": "range_restricted_int16u", "code": 40, "mfgCode": null, "side": "server", @@ -10216,36 +7828,52 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "200", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Primary6Y", + "name": "range_restricted_int16s", "code": 41, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "-5", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Primary6Intensity", + "name": "list_long_octet_string", "code": 42, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "array", "included": 1, - "storageOption": "RAM", + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "list_fabric_scoped", + "code": 43, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -10255,11 +7883,11 @@ "reportableChange": 0 }, { - "name": "WhitePointX", + "name": "timed_write_boolean", "code": 48, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "boolean", "included": 1, "storageOption": "RAM", "singleton": 0, @@ -10271,13 +7899,13 @@ "reportableChange": 0 }, { - "name": "WhitePointY", + "name": "general_error_boolean", "code": 49, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "boolean", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -10287,12 +7915,28 @@ "reportableChange": 0 }, { - "name": "ColorPointRX", + "name": "cluster_error_boolean", "code": 50, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "boolean", "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "unsupported", + "code": 255, + "mfgCode": null, + "side": "server", + "type": "boolean", + "included": 0, "storageOption": "RAM", "singleton": 0, "bounded": 0, @@ -10303,381 +7947,413 @@ "reportableChange": 0 }, { - "name": "ColorPointRY", - "code": 51, + "name": "nullable_boolean", + "code": 16384, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "boolean", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "false", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ColorPointRIntensity", - "code": 52, + "name": "nullable_bitmap8", + "code": 16385, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "Bitmap8MaskMap", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ColorPointGX", - "code": 54, + "name": "nullable_bitmap16", + "code": 16386, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "Bitmap16MaskMap", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ColorPointGY", - "code": 55, + "name": "nullable_bitmap32", + "code": 16387, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "Bitmap32MaskMap", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "nullable_bitmap64", + "code": 16388, + "mfgCode": null, + "side": "server", + "type": "Bitmap64MaskMap", + "included": 1, + "storageOption": "RAM", + "singleton": 0, + "bounded": 0, + "defaultValue": "0", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "nullable_int8u", + "code": 16389, + "mfgCode": null, + "side": "server", + "type": "int8u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ColorPointGIntensity", - "code": 56, + "name": "nullable_int16u", + "code": 16390, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ColorPointBX", - "code": 58, + "name": "nullable_int24u", + "code": 16391, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int24u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ColorPointBY", - "code": 59, + "name": "nullable_int32u", + "code": 16392, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int32u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ColorPointBIntensity", - "code": 60, + "name": "nullable_int40u", + "code": 16393, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int40u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "EnhancedCurrentHue", - "code": 16384, + "name": "nullable_int48u", + "code": 16394, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int48u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "EnhancedColorMode", - "code": 16385, + "name": "nullable_int56u", + "code": 16395, "mfgCode": null, "side": "server", - "type": "enum8", + "type": "int56u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x01", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ColorLoopActive", - "code": 16386, + "name": "nullable_int64u", + "code": 16396, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int64u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ColorLoopDirection", - "code": 16387, + "name": "nullable_int8s", + "code": 16397, "mfgCode": null, "side": "server", - "type": "int8u", + "type": "int8s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x00", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ColorLoopTime", - "code": 16388, + "name": "nullable_int16s", + "code": 16398, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int16s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0019", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ColorLoopStartEnhancedHue", - "code": 16389, + "name": "nullable_int24s", + "code": 16399, "mfgCode": null, "side": "server", - "type": "int16u", - "included": 0, + "type": "int24s", + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x2300", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ColorLoopStoredEnhancedHue", - "code": 16390, + "name": "nullable_int32s", + "code": 16400, "mfgCode": null, "side": "server", - "type": "int16u", - "included": 0, + "type": "int32s", + "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ColorCapabilities", - "code": 16394, + "name": "nullable_int40s", + "code": 16401, "mfgCode": null, "side": "server", - "type": "bitmap16", + "type": "int40s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ColorTempPhysicalMinMireds", - "code": 16395, + "name": "nullable_int48s", + "code": 16402, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int48s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x0000", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ColorTempPhysicalMaxMireds", - "code": 16396, + "name": "nullable_int56s", + "code": 16403, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int56s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0xFEFF", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "CoupleColorTempToLevelMinMireds", - "code": 16397, + "name": "nullable_int64s", + "code": 16404, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int64s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "StartUpColorTemperatureMireds", - "code": 16400, + "name": "nullable_enum8", + "code": 16405, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "enum8", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "GeneratedCommandList", - "code": 65528, + "name": "nullable_enum16", + "code": 16406, "mfgCode": null, "side": "server", - "type": "array", + "type": "enum16", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AcceptedCommandList", - "code": 65529, + "name": "nullable_float_single", + "code": 16407, "mfgCode": null, "side": "server", - "type": "array", + "type": "single", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "EventList", - "code": 65530, + "name": "nullable_float_double", + "code": 16408, "mfgCode": null, "side": "server", - "type": "array", + "type": "double", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "0", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "AttributeList", - "code": 65531, + "name": "nullable_octet_string", + "code": 16409, "mfgCode": null, "side": "server", - "type": "array", + "type": "octet_string", "included": 1, - "storageOption": "External", + "storageOption": "RAM", "singleton": 0, "bounded": 0, "defaultValue": "", @@ -10687,124 +8363,104 @@ "reportableChange": 0 }, { - "name": "FeatureMap", - "code": 65532, + "name": "nullable_char_string", + "code": 16414, "mfgCode": null, "side": "server", - "type": "bitmap32", + "type": "char_string", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "nullable_enum_attr", + "code": 16420, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "SimpleEnum", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "5", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Temperature Measurement", - "code": 1026, - "mfgCode": null, - "define": "TEMPERATURE_MEASUREMENT_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ + }, { - "name": "FeatureMap", - "code": 65532, + "name": "nullable_struct", + "code": 16421, "mfgCode": null, - "side": "client", - "type": "bitmap32", + "side": "server", + "type": "SimpleStruct", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "0", + "defaultValue": "", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "ClusterRevision", - "code": 65533, + "name": "nullable_range_restricted_int8u", + "code": 16422, "mfgCode": null, - "side": "client", - "type": "int16u", + "side": "server", + "type": "int8u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "1", + "defaultValue": "70", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 - } - ] - }, - { - "name": "Temperature Measurement", - "code": 1026, - "mfgCode": null, - "define": "TEMPERATURE_MEASUREMENT_CLUSTER", - "side": "server", - "enabled": 0, - "attributes": [ + }, { - "name": "MeasuredValue", - "code": 0, + "name": "nullable_range_restricted_int8s", + "code": 16423, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int8s", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": "-5", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MinMeasuredValue", - "code": 1, + "name": "nullable_range_restricted_int16u", + "code": 16424, "mfgCode": null, "side": "server", - "type": "int16s", + "type": "int16u", "included": 1, "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x8000", + "defaultValue": "200", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "MaxMeasuredValue", - "code": 2, + "name": "nullable_range_restricted_int16s", + "code": 16425, "mfgCode": null, "side": "server", "type": "int16s", @@ -10812,18 +8468,18 @@ "storageOption": "RAM", "singleton": 0, "bounded": 0, - "defaultValue": "0x8000", + "defaultValue": "-5", "reportable": 1, "minInterval": 1, "maxInterval": 65534, "reportableChange": 0 }, { - "name": "Tolerance", - "code": 3, + "name": "write_only_int8u", + "code": 16426, "mfgCode": null, "side": "server", - "type": "int16u", + "type": "int8u", "included": 0, "storageOption": "RAM", "singleton": 0, @@ -10840,7 +8496,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 1, + "included": 0, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -10856,7 +8512,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 1, + "included": 0, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -10872,7 +8528,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 1, + "included": 0, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -10888,7 +8544,7 @@ "mfgCode": null, "side": "server", "type": "array", - "included": 1, + "included": 0, "storageOption": "External", "singleton": 0, "bounded": 0, @@ -10930,105 +8586,14 @@ "maxInterval": 65534, "reportableChange": 0 } - ] - }, - { - "name": "Occupancy Sensing", - "code": 1030, - "mfgCode": null, - "define": "OCCUPANCY_SENSING_CLUSTER", - "side": "client", - "enabled": 0, - "attributes": [ - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "client", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "3", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - } - ] - }, - { - "name": "Occupancy Sensing", - "code": 1030, - "mfgCode": null, - "define": "OCCUPANCY_SENSING_CLUSTER", - "side": "server", - "enabled": 0, - "attributes": [ - { - "name": "Occupancy", - "code": 0, - "mfgCode": null, - "side": "server", - "type": "OccupancyBitmap", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, + ], + "events": [ { - "name": "OccupancySensorType", + "name": "TestEvent", "code": 1, "mfgCode": null, "side": "server", - "type": "OccupancySensorTypeEnum", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "OccupancySensorTypeBitmap", - "code": 2, - "mfgCode": null, - "side": "server", - "type": "OccupancySensorTypeBitmap", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 - }, - { - "name": "ClusterRevision", - "code": 65533, - "mfgCode": null, - "side": "server", - "type": "int16u", - "included": 1, - "storageOption": "RAM", - "singleton": 0, - "bounded": 0, - "defaultValue": "3", - "reportable": 1, - "minInterval": 0, - "maxInterval": 65344, - "reportableChange": 0 + "included": 1 } ] } @@ -11046,13 +8611,13 @@ "deviceIdentifier": 22 }, { - "endpointTypeName": "MA-doorlock", + "endpointTypeName": "Anonymous Endpoint Type", "endpointTypeIndex": 1, "profileId": 259, "endpointId": 1, "networkId": 0, "endpointVersion": 1, - "deviceIdentifier": 0 + "deviceIdentifier": 118 } ], "log": [] diff --git a/src/app/clusters/smoke-co-alarm-server/smoke-co-alarm-server.cpp b/src/app/clusters/smoke-co-alarm-server/smoke-co-alarm-server.cpp index 733cead11265ac..403955d33e41d5 100644 --- a/src/app/clusters/smoke-co-alarm-server/smoke-co-alarm-server.cpp +++ b/src/app/clusters/smoke-co-alarm-server/smoke-co-alarm-server.cpp @@ -86,6 +86,11 @@ bool SmokeCoAlarmServer::SetSmokeState(EndpointId endpointId, AlarmStateEnum new Events::SmokeAlarm::Type event{}; SendEvent(endpointId, event); } + + if (success && (newSmokeState == AlarmStateEnum::kCritical)) + { + SetDeviceMuted(endpointId, MuteStateEnum::kNotMuted); + } } return success; @@ -105,6 +110,11 @@ bool SmokeCoAlarmServer::SetCOState(EndpointId endpointId, AlarmStateEnum newCOS Events::COAlarm::Type event{}; SendEvent(endpointId, event); } + + if (success && (newCOState == AlarmStateEnum::kCritical)) + { + SetDeviceMuted(endpointId, MuteStateEnum::kNotMuted); + } } return success; @@ -124,6 +134,11 @@ bool SmokeCoAlarmServer::SetBatteryAlert(EndpointId endpointId, AlarmStateEnum n Events::LowBattery::Type event{}; SendEvent(endpointId, event); } + + if (success && (newBatteryAlert == AlarmStateEnum::kCritical)) + { + SetDeviceMuted(endpointId, MuteStateEnum::kNotMuted); + } } return success; @@ -136,7 +151,58 @@ bool SmokeCoAlarmServer::SetDeviceMuted(EndpointId endpointId, MuteStateEnum new if (success && (deviceMuted != newDeviceMuted)) { - success = SetAttribute(endpointId, Attributes::DeviceMuted::Id, Attributes::DeviceMuted::Set, newDeviceMuted); + if (newDeviceMuted == MuteStateEnum::kMuted) + { + AlarmStateEnum alarmState; + success = GetAttribute(endpointId, Attributes::SmokeState::Id, Attributes::SmokeState::Get, alarmState); + if (success && (alarmState == AlarmStateEnum::kCritical)) + { + success = false; + } + + if (success) + { + success = GetAttribute(endpointId, Attributes::COState::Id, Attributes::COState::Get, alarmState); + if (success && (alarmState == AlarmStateEnum::kCritical)) + { + success = false; + } + } + + if (success) + { + success = GetAttribute(endpointId, Attributes::BatteryAlert::Id, Attributes::BatteryAlert::Get, alarmState); + if (success && (alarmState == AlarmStateEnum::kCritical)) + { + success = false; + } + } + + if (success) + { + success = GetAttribute(endpointId, Attributes::InterconnectSmokeAlarm::Id, Attributes::InterconnectSmokeAlarm::Get, + alarmState); + if (success && (alarmState == AlarmStateEnum::kCritical)) + { + success = false; + } + } + + if (success) + { + success = + GetAttribute(endpointId, Attributes::InterconnectCOAlarm::Id, Attributes::InterconnectCOAlarm::Get, alarmState); + if (success && (alarmState == AlarmStateEnum::kCritical)) + { + success = false; + } + } + } + + if (success) + { + success = SetAttribute(endpointId, Attributes::DeviceMuted::Id, Attributes::DeviceMuted::Set, newDeviceMuted); + } if (success) { @@ -234,6 +300,11 @@ bool SmokeCoAlarmServer::SetInterconnectSmokeAlarm(EndpointId endpointId, AlarmS Events::InterconnectSmokeAlarm::Type event{}; SendEvent(endpointId, event); } + + if (success && (newInterconnectSmokeAlarm == AlarmStateEnum::kCritical)) + { + SetDeviceMuted(endpointId, MuteStateEnum::kNotMuted); + } } return success; @@ -255,6 +326,11 @@ bool SmokeCoAlarmServer::SetInterconnectCOAlarm(EndpointId endpointId, AlarmStat Events::InterconnectCOAlarm::Type event{}; SendEvent(endpointId, event); } + + if (success && (newInterconnectCOAlarm == AlarmStateEnum::kCritical)) + { + SetDeviceMuted(endpointId, MuteStateEnum::kNotMuted); + } } return success; @@ -350,6 +426,11 @@ bool SmokeCoAlarmServer::GetSensitivityLevel(EndpointId endpointId, SensitivityE return GetAttribute(endpointId, Attributes::SensitivityLevel::Id, Attributes::SensitivityLevel::Get, sensitivityLevel); } +bool SmokeCoAlarmServer::GetExpiryDate(EndpointId endpointId, uint32_t & expiryDate) +{ + return GetAttribute(endpointId, Attributes::ExpiryDate::Id, Attributes::ExpiryDate::Get, expiryDate); +} + chip::BitFlags SmokeCoAlarmServer::GetFeatures(EndpointId endpointId) { chip::BitFlags featureMap; diff --git a/src/app/clusters/smoke-co-alarm-server/smoke-co-alarm-server.h b/src/app/clusters/smoke-co-alarm-server/smoke-co-alarm-server.h index 1adf563c4d53ff..2c43c9ed636961 100644 --- a/src/app/clusters/smoke-co-alarm-server/smoke-co-alarm-server.h +++ b/src/app/clusters/smoke-co-alarm-server/smoke-co-alarm-server.h @@ -72,7 +72,6 @@ class SmokeCoAlarmServer bool SetInterconnectCOAlarm(chip::EndpointId endpointId, AlarmStateEnum newInterconnectCOAlarm); bool SetContaminationState(chip::EndpointId endpointId, ContaminationStateEnum newContaminationState); bool SetSensitivityLevel(chip::EndpointId endpointId, SensitivityEnum newSensitivityLevel); - // bool SetExpiryDate(chip::EndpointId endpointId, Date newExpiryDate); // TODO: Date type encoding not defined bool GetExpressedState(chip::EndpointId endpointId, ExpressedStateEnum & expressedState); bool GetSmokeState(chip::EndpointId endpointId, AlarmStateEnum & smokeState); @@ -86,7 +85,7 @@ class SmokeCoAlarmServer bool GetInterconnectCOAlarm(chip::EndpointId endpointId, AlarmStateEnum & interconnectCOAlarm); bool GetContaminationState(chip::EndpointId endpointId, ContaminationStateEnum & contaminationState); bool GetSensitivityLevel(chip::EndpointId endpointId, SensitivityEnum & sensitivityLevel); - // bool GetExpiryDate(chip::EndpointId endpointId, Date & expiryDate); // TODO: Date type encoding not defined + bool GetExpiryDate(chip::EndpointId endpointId, uint32_t & expiryDate); chip::BitFlags GetFeatures(chip::EndpointId endpointId);