diff --git a/components/esp_matter/zap_common/app/PluginApplicationCallbacks.h b/components/esp_matter/zap_common/app/PluginApplicationCallbacks.h index d2c1b49bb..471ba0530 100644 --- a/components/esp_matter/zap_common/app/PluginApplicationCallbacks.h +++ b/components/esp_matter/zap_common/app/PluginApplicationCallbacks.h @@ -9,16 +9,17 @@ void MatterApplicationBasicPluginServerInitCallback(); void MatterApplicationLauncherPluginServerInitCallback(); void MatterAudioOutputPluginServerInitCallback(); void MatterBallastConfigurationPluginServerInitCallback(); -void MatterBarrierControlPluginServerInitCallback(); void MatterBasicInformationPluginServerInitCallback(); -void MatterBinaryInputBasicPluginServerInitCallback(); void MatterBindingPluginServerInitCallback(); void MatterBooleanStatePluginServerInitCallback(); void MatterBooleanStateConfigurationPluginServerInitCallback(); +void MatterBridgedDeviceBasicInformationPluginServerInitCallback(); void MatterCarbonDioxideConcentrationMeasurementPluginServerInitCallback(); void MatterCarbonMonoxideConcentrationMeasurementPluginServerInitCallback(); void MatterChannelPluginServerInitCallback(); void MatterColorControlPluginServerInitCallback(); +void MatterContentAppObserverPluginServerInitCallback(); +void MatterContentControlPluginServerInitCallback(); void MatterContentLauncherPluginServerInitCallback(); void MatterDescriptorPluginServerInitCallback(); void MatterDeviceEnergyManagementPluginServerInitCallback(); @@ -28,7 +29,6 @@ void MatterDishwasherAlarmPluginServerInitCallback(); void MatterDishwasherModePluginServerInitCallback(); void MatterDoorLockPluginServerInitCallback(); void MatterElectricalEnergyMeasurementPluginServerInitCallback(); -void MatterElectricalMeasurementPluginServerInitCallback(); void MatterElectricalPowerMeasurementPluginServerInitCallback(); void MatterEnergyEvsePluginServerInitCallback(); void MatterEnergyEvseModePluginServerInitCallback(); @@ -56,13 +56,14 @@ void MatterLocalizationConfigurationPluginServerInitCallback(); void MatterLowPowerPluginServerInitCallback(); void MatterMediaInputPluginServerInitCallback(); void MatterMediaPlaybackPluginServerInitCallback(); +void MatterMessagesPluginServerInitCallback(); +void MatterMicrowaveOvenControlPluginServerInitCallback(); void MatterMicrowaveOvenModePluginServerInitCallback(); void MatterModeSelectPluginServerInitCallback(); void MatterNetworkCommissioningPluginServerInitCallback(); void MatterNitrogenDioxideConcentrationMeasurementPluginServerInitCallback(); void MatterOccupancySensingPluginServerInitCallback(); void MatterOnOffPluginServerInitCallback(); -void MatterOnOffSwitchConfigurationPluginServerInitCallback(); void MatterOperationalCredentialsPluginServerInitCallback(); void MatterOperationalStatePluginServerInitCallback(); void MatterOtaSoftwareUpdateProviderPluginServerInitCallback(); @@ -77,6 +78,10 @@ void MatterPowerSourcePluginServerInitCallback(); void MatterPowerSourceConfigurationPluginServerInitCallback(); void MatterPowerTopologyPluginServerInitCallback(); void MatterPressureMeasurementPluginServerInitCallback(); +void MatterProxyConfigurationPluginServerInitCallback(); +void MatterProxyDiscoveryPluginServerInitCallback(); +void MatterProxyValidPluginServerInitCallback(); +void MatterPulseWidthModulationPluginServerInitCallback(); void MatterPumpConfigurationAndControlPluginServerInitCallback(); void MatterRadonConcentrationMeasurementPluginServerInitCallback(); void MatterRefrigeratorAlarmPluginServerInitCallback(); @@ -85,6 +90,7 @@ void MatterRelativeHumidityMeasurementPluginServerInitCallback(); void MatterRvcCleanModePluginServerInitCallback(); void MatterRvcOperationalStatePluginServerInitCallback(); void MatterRvcRunModePluginServerInitCallback(); +void MatterSampleMeiPluginServerInitCallback(); void MatterScenesManagementPluginServerInitCallback(); void MatterSmokeCoAlarmPluginServerInitCallback(); void MatterSoftwareDiagnosticsPluginServerInitCallback(); @@ -105,7 +111,6 @@ void MatterValveConfigurationAndControlPluginServerInitCallback(); void MatterWakeOnLanPluginServerInitCallback(); void MatterWiFiNetworkDiagnosticsPluginServerInitCallback(); void MatterWindowCoveringPluginServerInitCallback(); -void MatterBooleanStateConfigurationPluginServerInitCallback(); #include diff --git a/components/esp_matter/zap_common/app/callback-stub.cpp b/components/esp_matter/zap_common/app/callback-stub.cpp index f84ac7e53..0a82e13ca 100644 --- a/components/esp_matter/zap_common/app/callback-stub.cpp +++ b/components/esp_matter/zap_common/app/callback-stub.cpp @@ -51,21 +51,11 @@ void __attribute__((weak)) emberAfBallastConfigurationClusterInitCallback(Endpoi // To prevent warning (void) endpoint; } -void __attribute__((weak)) emberAfBarrierControlClusterInitCallback(EndpointId endpoint) -{ - // To prevent warning - (void) endpoint; -} void __attribute__((weak)) emberAfBasicInformationClusterInitCallback(EndpointId endpoint) { // To prevent warning (void) endpoint; } -void __attribute__((weak)) emberAfBinaryInputBasicClusterInitCallback(EndpointId endpoint) -{ - // To prevent warning - (void) endpoint; -} void __attribute__((weak)) emberAfBindingClusterInitCallback(EndpointId endpoint) { // To prevent warning @@ -81,6 +71,11 @@ void __attribute__((weak)) emberAfBooleanStateConfigurationClusterInitCallback(E // To prevent warning (void) endpoint; } +void __attribute__((weak)) emberAfBridgedDeviceBasicInformationClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} void __attribute__((weak)) emberAfCarbonDioxideConcentrationMeasurementClusterInitCallback(EndpointId endpoint) { // To prevent warning @@ -101,6 +96,16 @@ void __attribute__((weak)) emberAfColorControlClusterInitCallback(EndpointId end // To prevent warning (void) endpoint; } +void __attribute__((weak)) emberAfContentAppObserverClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfContentControlClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} void __attribute__((weak)) emberAfContentLauncherClusterInitCallback(EndpointId endpoint) { // To prevent warning @@ -146,11 +151,6 @@ void __attribute__((weak)) emberAfElectricalEnergyMeasurementClusterInitCallback // To prevent warning (void) endpoint; } -void __attribute__((weak)) emberAfElectricalMeasurementClusterInitCallback(EndpointId endpoint) -{ - // To prevent warning - (void) endpoint; -} void __attribute__((weak)) emberAfElectricalPowerMeasurementClusterInitCallback(EndpointId endpoint) { // To prevent warning @@ -286,6 +286,16 @@ void __attribute__((weak)) emberAfMediaPlaybackClusterInitCallback(EndpointId en // To prevent warning (void) endpoint; } +void __attribute__((weak)) emberAfMessagesClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfMicrowaveOvenControlClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} void __attribute__((weak)) emberAfMicrowaveOvenModeClusterInitCallback(EndpointId endpoint) { // To prevent warning @@ -316,11 +326,6 @@ void __attribute__((weak)) emberAfOnOffClusterInitCallback(EndpointId endpoint) // To prevent warning (void) endpoint; } -void __attribute__((weak)) emberAfOnOffSwitchConfigurationClusterInitCallback(EndpointId endpoint) -{ - // To prevent warning - (void) endpoint; -} void __attribute__((weak)) emberAfOperationalCredentialsClusterInitCallback(EndpointId endpoint) { // To prevent warning @@ -391,6 +396,26 @@ void __attribute__((weak)) emberAfPressureMeasurementClusterInitCallback(Endpoin // To prevent warning (void) endpoint; } +void __attribute__((weak)) emberAfProxyConfigurationClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfProxyDiscoveryClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfProxyValidClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} +void __attribute__((weak)) emberAfPulseWidthModulationClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} void __attribute__((weak)) emberAfPumpConfigurationAndControlClusterInitCallback(EndpointId endpoint) { // To prevent warning @@ -431,6 +456,11 @@ void __attribute__((weak)) emberAfRvcRunModeClusterInitCallback(EndpointId endpo // To prevent warning (void) endpoint; } +void __attribute__((weak)) emberAfSampleMeiClusterInitCallback(EndpointId endpoint) +{ + // To prevent warning + (void) endpoint; +} void __attribute__((weak)) emberAfScenesManagementClusterInitCallback(EndpointId endpoint) { // To prevent warning diff --git a/components/esp_matter/zap_common/app/cluster-init-callback.cpp b/components/esp_matter/zap_common/app/cluster-init-callback.cpp index af816e046..9bc0b906e 100644 --- a/components/esp_matter/zap_common/app/cluster-init-callback.cpp +++ b/components/esp_matter/zap_common/app/cluster-init-callback.cpp @@ -34,18 +34,15 @@ void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId) case app::Clusters::ApplicationLauncher::Id: emberAfApplicationLauncherClusterInitCallback(endpoint); break; + case app::Clusters::AudioOutput::Id: + emberAfAudioOutputClusterInitCallback(endpoint); + break; case app::Clusters::BallastConfiguration::Id: emberAfBallastConfigurationClusterInitCallback(endpoint); break; - case app::Clusters::BarrierControl::Id: - emberAfBarrierControlClusterInitCallback(endpoint); - break; case app::Clusters::BasicInformation::Id: emberAfBasicInformationClusterInitCallback(endpoint); break; - case app::Clusters::BinaryInputBasic::Id: - emberAfBinaryInputBasicClusterInitCallback(endpoint); - break; case app::Clusters::Binding::Id: emberAfBindingClusterInitCallback(endpoint); break; @@ -55,6 +52,9 @@ void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId) case app::Clusters::BooleanStateConfiguration::Id: emberAfBooleanStateConfigurationClusterInitCallback(endpoint); break; + case app::Clusters::BridgedDeviceBasicInformation::Id: + emberAfBridgedDeviceBasicInformationClusterInitCallback(endpoint); + break; case app::Clusters::CarbonDioxideConcentrationMeasurement::Id: emberAfCarbonDioxideConcentrationMeasurementClusterInitCallback(endpoint); break; @@ -67,6 +67,12 @@ void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId) case app::Clusters::ColorControl::Id: emberAfColorControlClusterInitCallback(endpoint); break; + case app::Clusters::ContentAppObserver::Id: + emberAfContentAppObserverClusterInitCallback(endpoint); + break; + case app::Clusters::ContentControl::Id: + emberAfContentControlClusterInitCallback(endpoint); + break; case app::Clusters::ContentLauncher::Id: emberAfContentLauncherClusterInitCallback(endpoint); break; @@ -94,9 +100,6 @@ void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId) case app::Clusters::ElectricalEnergyMeasurement::Id: emberAfElectricalEnergyMeasurementClusterInitCallback(endpoint); break; - case app::Clusters::ElectricalMeasurement::Id: - emberAfElectricalMeasurementClusterInitCallback(endpoint); - break; case app::Clusters::ElectricalPowerMeasurement::Id: emberAfElectricalPowerMeasurementClusterInitCallback(endpoint); break; @@ -178,6 +181,12 @@ void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId) case app::Clusters::MediaPlayback::Id: emberAfMediaPlaybackClusterInitCallback(endpoint); break; + case app::Clusters::Messages::Id: + emberAfMessagesClusterInitCallback(endpoint); + break; + case app::Clusters::MicrowaveOvenControl::Id: + emberAfMicrowaveOvenControlClusterInitCallback(endpoint); + break; case app::Clusters::MicrowaveOvenMode::Id: emberAfMicrowaveOvenModeClusterInitCallback(endpoint); break; @@ -196,9 +205,6 @@ void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId) case app::Clusters::OnOff::Id: emberAfOnOffClusterInitCallback(endpoint); break; - case app::Clusters::OnOffSwitchConfiguration::Id: - emberAfOnOffSwitchConfigurationClusterInitCallback(endpoint); - break; case app::Clusters::OperationalCredentials::Id: emberAfOperationalCredentialsClusterInitCallback(endpoint); break; @@ -241,6 +247,18 @@ void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId) case app::Clusters::PressureMeasurement::Id: emberAfPressureMeasurementClusterInitCallback(endpoint); break; + case app::Clusters::ProxyConfiguration::Id: + emberAfProxyConfigurationClusterInitCallback(endpoint); + break; + case app::Clusters::ProxyDiscovery::Id: + emberAfProxyDiscoveryClusterInitCallback(endpoint); + break; + case app::Clusters::ProxyValid::Id: + emberAfProxyValidClusterInitCallback(endpoint); + break; + case app::Clusters::PulseWidthModulation::Id: + emberAfPulseWidthModulationClusterInitCallback(endpoint); + break; case app::Clusters::PumpConfigurationAndControl::Id: emberAfPumpConfigurationAndControlClusterInitCallback(endpoint); break; @@ -265,6 +283,9 @@ void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId) case app::Clusters::RvcRunMode::Id: emberAfRvcRunModeClusterInitCallback(endpoint); break; + case app::Clusters::SampleMei::Id: + emberAfSampleMeiClusterInitCallback(endpoint); + break; case app::Clusters::ScenesManagement::Id: emberAfScenesManagementClusterInitCallback(endpoint); break; diff --git a/components/esp_matter/zap_common/generate_zap_common_files.py b/components/esp_matter/zap_common/generate_zap_common_files.py new file mode 100755 index 000000000..fb6c65654 --- /dev/null +++ b/components/esp_matter/zap_common/generate_zap_common_files.py @@ -0,0 +1,351 @@ +#!/usr/bin/env python3 + +# Copyright 2024 Espressif Systems (Shanghai) PTE LTD +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +""" +Script to generate files under zap_common directory +""" + +import os +import xml.etree.ElementTree as ET +import argparse +import logging +import sys +import glob +import re + +# These clusters are not implemented in current connectedhomeip repo +EXCLUDE_CLUSTERS = ['Demand Response Load Control', 'Timer'] +# These words are special when formatting the cluster name +WORD_FORMAT_LIST = {'Wifi': 'WiFi', 'Pm2.5': 'Pm25'} + +if not os.getenv('ESP_MATTER_PATH'): + logging.error("ESP_MATTER_PATH environment variable is not set") + sys.exit(1) + +BASE_PATH = os.getenv('ESP_MATTER_PATH') + + +def get_args(): + parser = argparse.ArgumentParser(description='Script to generate files under zap_common directory', + formatter_class=lambda prog: argparse.HelpFormatter(prog, max_help_position=50)) + parser.add_argument('-x', '--xml-dir', + default=os.path.join( + BASE_PATH, 'connectedhomeip/connectedhomeip/src/app/zap-templates/zcl/data-model/chip'), + help='The directory of the xml template files of all the clusters') + parser.add_argument('-o', '--output-dir', + default=os.path.join( + BASE_PATH, 'components/esp_matter/zap_common'), + help='The output directory') + return parser.parse_args() + + +def format_id(id): + if id[0:2] != '0x': + id = hex(int(id)) + hex_id = id[2:] + if len(hex_id) < 8: + hex_id = hex_id.zfill(8) + return '0x' + hex_id.upper() + + +def get_cluster_name(cluster): + ret = '' + for element in cluster: + if element.tag == 'name': + ret = element.text + return ret + + +def get_cluster_id(cluster): + for element in cluster: + if element.tag == 'code': + return format_id(element.text) + + +def get_clusters_from_xml_files(xml_files): + ret = [] + for xml_file in xml_files: + tree = ET.parse(xml_file) + root = tree.getroot() + for child in root: + if child.tag == 'cluster' and get_cluster_name(child) not in EXCLUDE_CLUSTERS: + ret.append(child) + return ret + + +def word_format(word): + capitalized_word = word.capitalize() + if capitalized_word in WORD_FORMAT_LIST.keys(): + return WORD_FORMAT_LIST[capitalized_word] + else: + return capitalized_word + + +def format_cluster_name(cluster_name): + words = re.split(r'[ /]', cluster_name) + capitalized_words = [word_format(word) for word in words] + return ''.join(capitalized_words) + + +def get_formatted_cluster_name(cluster): + return format_cluster_name(get_cluster_name(cluster)) + + +def generate_plugin_application_callbacks_h(xml_files, output_dir): + with open(os.path.join(output_dir, 'app/PluginApplicationCallbacks.h'), 'w') as header_file: + header_file.write('#pragma once\n') + clusters = get_clusters_from_xml_files(xml_files) + clusters.sort(key=get_formatted_cluster_name) + for cluster in clusters: + header_file.write('void Matter{}PluginServerInitCallback();\n'.format( + format_cluster_name(get_cluster_name(cluster)))) + + header_file.writelines( + ['\n', + '#include \n', + '\n', + '#define MATTER_PLUGINS_INIT esp_matter::cluster::plugin_init_callback_common();\n']) + + +def generate_callback_stub_cpp(xml_files, output_dir): + with open(os.path.join(output_dir, 'app/callback-stub.cpp'), 'w') as src_file: + src_file.writelines( + ['#include \n', + '\n', + 'using namespace chip;\n']) + clusters = get_clusters_from_xml_files(xml_files) + clusters.sort(key=get_formatted_cluster_name) + for cluster in clusters: + src_file.write('void __attribute__((weak)) emberAf{}ClusterInitCallback(EndpointId endpoint)\n'.format( + format_cluster_name(get_cluster_name(cluster)))) + src_file.writelines( + ['{\n', + ' // To prevent warning\n', + ' (void) endpoint;\n' + '}\n']) + + +def generate_cluster_init_callback_cpp(xml_files, output_dir): + with open(os.path.join(output_dir, 'app/cluster-init-callback.cpp'), 'w') as src_file: + src_file.writelines( + ['#include \n', + '#include \n', + '#include \n', + '#include \n', + '\n', + 'using namespace chip;\n', + '\n', + '// Cluster Init Functions\n', + 'void emberAfClusterInitCallback(EndpointId endpoint, ClusterId clusterId)\n', + '{\n', + ' switch (clusterId)\n', + ' {\n']) + clusters = get_clusters_from_xml_files(xml_files) + clusters.sort(key=get_formatted_cluster_name) + for cluster in clusters: + formatted_cluster_name = format_cluster_name( + get_cluster_name(cluster)) + src_file.writelines( + [' case app::Clusters::{}::Id:\n'.format(formatted_cluster_name), + ' emberAf{}ClusterInitCallback(endpoint);\n'.format( + formatted_cluster_name), + ' break;\n']) + + src_file.writelines( + [' default:\n', + ' // Unrecognized cluster ID\n', + ' break;\n', + ' }\n', + '}\n']) + + +def get_attribute_read_privilege(attribute): + for element in attribute: + if element.tag == 'access' and element.attrib['op'] == 'read': + if 'privilege' in element.attrib.keys(): + return element.attrib['privilege'] + elif 'role' in element.attrib.keys(): + return element.attrib['role'] + return 'view' + + +def get_attribute_write_privilege(attribute): + for element in attribute: + if element.tag == 'access' and element.attrib['op'] == 'write': + if 'privilege' in element.attrib.keys(): + return element.attrib['privilege'] + elif 'role' in element.attrib.keys(): + return element.attrib['role'] + return 'operate' + + +def get_attribute_name(attribute): + for element in attribute: + if element.tag == 'description': + return element.text + + +def get_command_invoke_privilege(command): + for element in command: + if element.tag == 'access' and element.attrib['op'] == 'invoke': + if 'privilege' in element.attrib.keys(): + return element.attrib['privilege'] + elif 'role' in element.attrib.keys(): + return element.attrib['role'] + return 'operate' + + +def get_event_read_privilege(event): + for element in event: + if element.tag == 'access' and element.attrib['op'] == 'read': + if 'privilege' in element.attrib.keys(): + return element.attrib['privilege'] + elif 'role' in element.attrib.keys(): + return element.attrib['role'] + return 'view' + + +def get_privilege_sort_key(privilege): + return privilege[0] + privilege[2] + + +def get_privileges(clusters): + attribute_read_privileges = [] + attribute_write_privileges = [] + command_invoke_privileges = [] + event_read_privileges = [] + + for cluster in clusters: + cluster_id = get_cluster_id(cluster) + cluster_name = get_cluster_name(cluster) + for element in cluster: + if element.tag == 'attribute': + attribute_id = format_id(element.attrib['code']) + attribute_name = get_attribute_name(element) + attribute_read_privilege = get_attribute_read_privilege(element) + attribute_write_privilege = get_attribute_write_privilege(element) + + if attribute_read_privilege != 'view': + attribute_read_privileges.append( + [cluster_id, cluster_name, attribute_id, attribute_name, attribute_read_privilege]) + + if attribute_write_privilege != 'operate': + attribute_write_privileges.append( + [cluster_id, cluster_name, attribute_id, attribute_name, attribute_write_privilege]) + + if element.tag == 'command': + command_id = format_id(element.attrib['code']) + command_name = element.attrib['name'] + command_invoke_privilege = get_command_invoke_privilege(element) + + if command_invoke_privilege != 'operate': + command_invoke_privileges.append( + [cluster_id, cluster_name, command_id, command_name, command_invoke_privilege]) + + if element.tag == 'event': + event_id = format_id(element.attrib['code']) + event_name = element.attrib['name'] + event_read_privilege = get_event_read_privilege(element) + + if event_read_privilege != 'view': + event_read_privileges.append( + [cluster_id, cluster_name, event_id, event_name, event_read_privilege]) + # Sort the privileges by cluster_id and attribute_id/command_id/event_id + attribute_read_privileges.sort(key=get_privilege_sort_key) + attribute_write_privileges.sort(key=get_privilege_sort_key) + command_invoke_privileges.sort(key=get_privilege_sort_key) + event_read_privileges.sort(key=get_privilege_sort_key) + return attribute_read_privileges, attribute_write_privileges, command_invoke_privileges, event_read_privileges + + + + +def get_privileges_array(privileges, array_type, interaction_type, object_type): + if array_type == 'cluster': + array = '// Parallel array data (*cluster*, {}, privilege) for {} {}\n'.format( + object_type, interaction_type, object_type) + elif array_type == 'attribute' or array_type == 'command' or array_type == 'event': + array = '// Parallel array data (cluster, *{}*, privilege) for {} {}\n'.format( + object_type, interaction_type, object_type) + elif array_type == 'privilege': + array = '// Parallel array data (cluster, {}, *privilege*) for {} {}\n'.format( + object_type, interaction_type, object_type) + else: + logging.error("Invalid array_type") + sys.exit(1) + + array += '#define GENERATED_ACCESS_{}_{}__{} {{ \\\n'.format( + interaction_type.upper(), object_type.upper(), array_type.upper()) + for privilege in privileges: + if array_type == 'cluster': + array += ' {}, /* Cluster: {}, {}: {}, Privilege: {} */ \\\n'.format( + privilege[0], privilege[1], object_type.capitalize(), privilege[3], privilege[4]) + elif array_type == 'attribute' or array_type == 'command' or array_type == 'event': + array += ' {}, /* Cluster: {}, {}: {}, Privilege: {} */ \\\n'.format( + privilege[2], privilege[1], object_type.capitalize(), privilege[3], privilege[4]) + elif array_type == 'privilege': + array += ' chip::Access::Privilege::k{}, /* Cluster: {}, {}: {}, Privilege: {} */ \\\n'.format( + privilege[4].capitalize(), privilege[1], object_type.capitalize(), privilege[3], privilege[4]) + + array += '}\n' + array += '\n' + return array + + +def write_privileges(file, privileges, interaction_type, object_type): + file.write(get_privileges_array(privileges, 'cluster', interaction_type, object_type)) + file.write(get_privileges_array(privileges, object_type, interaction_type, object_type)) + file.write(get_privileges_array(privileges, 'privilege', interaction_type, object_type)) + file.write('////////////////////////////////////////////////////////////////////////////////\n') + file.write('\n') + + +def generate_access_h(xml_files, output_dir): + with open(os.path.join(output_dir, 'zap-generated/access.h'), 'w') as header_file: + header_file.writelines( + ['#pragma once\n', + '\n', + '#include \n', + '\n', + '// Prevent changing generated format\n' + '// clang-format off\n', + '\n', + '////////////////////////////////////////////////////////////////////////////////\n', + '\n']) + # Get privileges from the xml files + clusters = get_clusters_from_xml_files(xml_files) + [attr_read, attr_write, cmd_invoke, event_read] = get_privileges(clusters) + write_privileges(header_file, attr_read, 'read', 'attribute') + write_privileges(header_file, attr_write, 'write', 'attribute') + write_privileges(header_file, cmd_invoke, 'invoke', 'command') + write_privileges(header_file, event_read, 'read', 'event') + + header_file.write('// clang-format on\n') + + +def main(): + logging.basicConfig( + format='[%(asctime)s] [%(levelname)7s] - %(message)s', level=logging.INFO) + args = get_args() + xml_files = glob.glob(os.path.join(args.xml_dir, '*.xml')) + generate_plugin_application_callbacks_h(xml_files, args.output_dir) + generate_callback_stub_cpp(xml_files, args.output_dir) + generate_cluster_init_callback_cpp(xml_files, args.output_dir) + generate_access_h(xml_files, args.output_dir) + + +if __name__ == "__main__": + main() diff --git a/components/esp_matter/zap_common/zap-generated/access.h b/components/esp_matter/zap_common/zap-generated/access.h index 24d3481fc..397a2d802 100644 --- a/components/esp_matter/zap_common/zap-generated/access.h +++ b/components/esp_matter/zap_common/zap-generated/access.h @@ -1,23 +1,3 @@ -/* - * - * Copyright (c) 2022 Project CHIP Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// THIS FILE IS GENERATED BY ZAP - -// Prevent multiple inclusion #pragma once #include @@ -29,215 +9,68 @@ // Parallel array data (*cluster*, attribute, privilege) for read attribute #define GENERATED_ACCESS_READ_ATTRIBUTE__CLUSTER { \ - /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \ - /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \ 0x0000001F, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \ 0x0000001F, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \ - /* Cluster: Access Control, Attribute: SubjectsPerAccessControlEntry, Privilege: view */ \ - /* Cluster: Access Control, Attribute: TargetsPerAccessControlEntry, Privilege: view */ \ - /* Cluster: Access Control, Attribute: AccessControlEntriesPerFabric, Privilege: view */ \ - /* Cluster: Basic Information, Attribute: NodeLabel, Privilege: view */ \ - /* Cluster: Basic Information, Attribute: Location, Privilege: view */ \ - /* Cluster: Basic Information, Attribute: LocalConfigDisabled, Privilege: view */ \ - /* Cluster: OTA Software Update Requestor, Attribute: DefaultOTAProviders, Privilege: view */ \ - /* Cluster: General Commissioning, Attribute: Breadcrumb, Privilege: view */ \ 0x00000031, /* Cluster: Network Commissioning, Attribute: MaxNetworks, Privilege: administer */ \ 0x00000031, /* Cluster: Network Commissioning, Attribute: Networks, Privilege: administer */ \ - /* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: view */ \ 0x00000031, /* Cluster: Network Commissioning, Attribute: LastNetworkingStatus, Privilege: administer */ \ 0x00000031, /* Cluster: Network Commissioning, Attribute: LastNetworkID, Privilege: administer */ \ 0x00000031, /* Cluster: Network Commissioning, Attribute: LastConnectErrorValue, Privilege: administer */ \ 0x0000003E, /* Cluster: Operational Credentials, Attribute: NOCs, Privilege: administer */ \ - /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: view */ \ - /* Cluster: User Label, Attribute: LabelList, Privilege: view */ \ 0x00000046, /* Cluster: ICD Management, Attribute: RegisteredClients, Privilege: administer */ \ 0x00000046, /* Cluster: ICD Management, Attribute: ICDCounter, Privilege: administer */ \ - /* Cluster: Door Lock, Attribute: DoorOpenEvents, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: DoorClosedEvents, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: OpenPeriod, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: Language, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: AutoRelockTime, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: SoundVolume, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: OperatingMode, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: EnableOneTouchLocking, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: EnableInsideStatusLED, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: EnablePrivacyModeButton, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: WrongCodeEntryLimit, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: UserCodeTemporaryDisableTime, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: RequirePINforRemoteOperation, Privilege: view */ \ - /* Cluster: Energy EVSE, Attribute: UserMaximumChargeCurrent, Privilege: view */ \ - /* Cluster: Energy EVSE, Attribute: RandomizationDelayWindow, Privilege: view */ \ - /* Cluster: Energy EVSE, Attribute: ApproximateEVEfficiency, Privilege: view */ \ - /* Cluster: Energy Preference, Attribute: CurrentEnergyBalance, Privilege: view */ \ - /* Cluster: Energy Preference, Attribute: CurrentLowPowerModeSensitivity, Privilege: view */ \ - /* Cluster: Window Covering, Attribute: Mode, Privilege: view */ \ - /* Cluster: Pump Configuration and Control, Attribute: LifetimeRunningHours, Privilege: view */ \ - /* Cluster: Pump Configuration and Control, Attribute: LifetimeEnergyConsumed, Privilege: view */ \ - /* Cluster: Pump Configuration and Control, Attribute: OperationMode, Privilege: view */ \ - /* Cluster: Pump Configuration and Control, Attribute: ControlMode, Privilege: view */ \ - /* Cluster: Thermostat, Attribute: MinHeatSetpointLimit, Privilege: view */ \ - /* Cluster: Thermostat, Attribute: MaxHeatSetpointLimit, Privilege: view */ \ - /* Cluster: Thermostat, Attribute: MinCoolSetpointLimit, Privilege: view */ \ - /* Cluster: Thermostat, Attribute: MaxCoolSetpointLimit, Privilege: view */ \ - /* Cluster: Thermostat, Attribute: MinSetpointDeadBand, Privilege: view */ \ - /* Cluster: Thermostat, Attribute: ControlSequenceOfOperation, Privilege: view */ \ - /* Cluster: Thermostat, Attribute: SystemMode, Privilege: view */ \ - /* Cluster: Thermostat User Interface Configuration, Attribute: KeypadLockout, Privilege: view */ \ - /* Cluster: Thermostat User Interface Configuration, Attribute: ScheduleProgrammingVisibility, Privilege: view */ \ - /* Cluster: Color Control, Attribute: WhitePointX, Privilege: view */ \ - /* Cluster: Color Control, Attribute: WhitePointY, Privilege: view */ \ - /* Cluster: Color Control, Attribute: ColorPointRX, Privilege: view */ \ - /* Cluster: Color Control, Attribute: ColorPointRY, Privilege: view */ \ - /* Cluster: Color Control, Attribute: ColorPointRIntensity, Privilege: view */ \ - /* Cluster: Color Control, Attribute: ColorPointGX, Privilege: view */ \ - /* Cluster: Color Control, Attribute: ColorPointGY, Privilege: view */ \ - /* Cluster: Color Control, Attribute: ColorPointGIntensity, Privilege: view */ \ - /* Cluster: Color Control, Attribute: ColorPointBX, Privilege: view */ \ - /* Cluster: Color Control, Attribute: ColorPointBY, Privilege: view */ \ - /* Cluster: Color Control, Attribute: ColorPointBIntensity, Privilege: view */ \ - /* Cluster: Color Control, Attribute: StartUpColorTemperatureMireds, Privilege: view */ \ + 0x00000101, /* Cluster: Door Lock, Attribute: AliroReaderVerificationKey, Privilege: administer */ \ + 0x00000101, /* Cluster: Door Lock, Attribute: AliroReaderGroupIdentifier, Privilege: administer */ \ + 0x00000101, /* Cluster: Door Lock, Attribute: AliroReaderGroupSubIdentifier, Privilege: administer */ \ + 0x00000101, /* Cluster: Door Lock, Attribute: AliroExpeditedTransactionSupportedProtocolVersions, Privilege: administer */ \ + 0x00000101, /* Cluster: Door Lock, Attribute: AliroGroupResolvingKey, Privilege: administer */ \ + 0x00000101, /* Cluster: Door Lock, Attribute: AliroSupportedBLEUWBProtocolVersions, Privilege: administer */ \ + 0x00000101, /* Cluster: Door Lock, Attribute: AliroBLEAdvertisingVersion, Privilege: administer */ \ + 0x0000050D, /* Cluster: Application Basic, Attribute: AllowedVendorList, Privilege: administer */ \ } // Parallel array data (cluster, *attribute*, privilege) for read attribute #define GENERATED_ACCESS_READ_ATTRIBUTE__ATTRIBUTE { \ - /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \ - /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \ 0x00000000, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \ 0x00000001, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \ - /* Cluster: Access Control, Attribute: SubjectsPerAccessControlEntry, Privilege: view */ \ - /* Cluster: Access Control, Attribute: TargetsPerAccessControlEntry, Privilege: view */ \ - /* Cluster: Access Control, Attribute: AccessControlEntriesPerFabric, Privilege: view */ \ - /* Cluster: Basic Information, Attribute: NodeLabel, Privilege: view */ \ - /* Cluster: Basic Information, Attribute: Location, Privilege: view */ \ - /* Cluster: Basic Information, Attribute: LocalConfigDisabled, Privilege: view */ \ - /* Cluster: OTA Software Update Requestor, Attribute: DefaultOTAProviders, Privilege: view */ \ - /* Cluster: General Commissioning, Attribute: Breadcrumb, Privilege: view */ \ 0x00000000, /* Cluster: Network Commissioning, Attribute: MaxNetworks, Privilege: administer */ \ 0x00000001, /* Cluster: Network Commissioning, Attribute: Networks, Privilege: administer */ \ - /* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: view */ \ 0x00000005, /* Cluster: Network Commissioning, Attribute: LastNetworkingStatus, Privilege: administer */ \ 0x00000006, /* Cluster: Network Commissioning, Attribute: LastNetworkID, Privilege: administer */ \ 0x00000007, /* Cluster: Network Commissioning, Attribute: LastConnectErrorValue, Privilege: administer */ \ 0x00000000, /* Cluster: Operational Credentials, Attribute: NOCs, Privilege: administer */ \ - /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: view */ \ - /* Cluster: User Label, Attribute: LabelList, Privilege: view */ \ 0x00000003, /* Cluster: ICD Management, Attribute: RegisteredClients, Privilege: administer */ \ 0x00000004, /* Cluster: ICD Management, Attribute: ICDCounter, Privilege: administer */ \ - /* Cluster: Door Lock, Attribute: DoorOpenEvents, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: DoorClosedEvents, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: OpenPeriod, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: Language, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: AutoRelockTime, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: SoundVolume, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: OperatingMode, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: EnableOneTouchLocking, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: EnableInsideStatusLED, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: EnablePrivacyModeButton, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: WrongCodeEntryLimit, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: UserCodeTemporaryDisableTime, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: RequirePINforRemoteOperation, Privilege: view */ \ - /* Cluster: Energy EVSE, Attribute: UserMaximumChargeCurrent, Privilege: view */ \ - /* Cluster: Energy EVSE, Attribute: RandomizationDelayWindow, Privilege: view */ \ - /* Cluster: Energy EVSE, Attribute: ApproximateEVEfficiency, Privilege: view */ \ - /* Cluster: Energy Preference, Attribute: CurrentEnergyBalance, Privilege: view */ \ - /* Cluster: Energy Preference, Attribute: CurrentLowPowerModeSensitivity, Privilege: view */ \ - /* Cluster: Window Covering, Attribute: Mode, Privilege: view */ \ - /* Cluster: Pump Configuration and Control, Attribute: LifetimeRunningHours, Privilege: view */ \ - /* Cluster: Pump Configuration and Control, Attribute: LifetimeEnergyConsumed, Privilege: view */ \ - /* Cluster: Pump Configuration and Control, Attribute: OperationMode, Privilege: view */ \ - /* Cluster: Pump Configuration and Control, Attribute: ControlMode, Privilege: view */ \ - /* Cluster: Thermostat, Attribute: MinHeatSetpointLimit, Privilege: view */ \ - /* Cluster: Thermostat, Attribute: MaxHeatSetpointLimit, Privilege: view */ \ - /* Cluster: Thermostat, Attribute: MinCoolSetpointLimit, Privilege: view */ \ - /* Cluster: Thermostat, Attribute: MaxCoolSetpointLimit, Privilege: view */ \ - /* Cluster: Thermostat, Attribute: MinSetpointDeadBand, Privilege: view */ \ - /* Cluster: Thermostat, Attribute: ControlSequenceOfOperation, Privilege: view */ \ - /* Cluster: Thermostat, Attribute: SystemMode, Privilege: view */ \ - /* Cluster: Thermostat User Interface Configuration, Attribute: KeypadLockout, Privilege: view */ \ - /* Cluster: Thermostat User Interface Configuration, Attribute: ScheduleProgrammingVisibility, Privilege: view */ \ - /* Cluster: Color Control, Attribute: WhitePointX, Privilege: view */ \ - /* Cluster: Color Control, Attribute: WhitePointY, Privilege: view */ \ - /* Cluster: Color Control, Attribute: ColorPointRX, Privilege: view */ \ - /* Cluster: Color Control, Attribute: ColorPointRY, Privilege: view */ \ - /* Cluster: Color Control, Attribute: ColorPointRIntensity, Privilege: view */ \ - /* Cluster: Color Control, Attribute: ColorPointGX, Privilege: view */ \ - /* Cluster: Color Control, Attribute: ColorPointGY, Privilege: view */ \ - /* Cluster: Color Control, Attribute: ColorPointGIntensity, Privilege: view */ \ - /* Cluster: Color Control, Attribute: ColorPointBX, Privilege: view */ \ - /* Cluster: Color Control, Attribute: ColorPointBY, Privilege: view */ \ - /* Cluster: Color Control, Attribute: ColorPointBIntensity, Privilege: view */ \ - /* Cluster: Color Control, Attribute: StartUpColorTemperatureMireds, Privilege: view */ \ + 0x00000080, /* Cluster: Door Lock, Attribute: AliroReaderVerificationKey, Privilege: administer */ \ + 0x00000081, /* Cluster: Door Lock, Attribute: AliroReaderGroupIdentifier, Privilege: administer */ \ + 0x00000082, /* Cluster: Door Lock, Attribute: AliroReaderGroupSubIdentifier, Privilege: administer */ \ + 0x00000083, /* Cluster: Door Lock, Attribute: AliroExpeditedTransactionSupportedProtocolVersions, Privilege: administer */ \ + 0x00000084, /* Cluster: Door Lock, Attribute: AliroGroupResolvingKey, Privilege: administer */ \ + 0x00000085, /* Cluster: Door Lock, Attribute: AliroSupportedBLEUWBProtocolVersions, Privilege: administer */ \ + 0x00000086, /* Cluster: Door Lock, Attribute: AliroBLEAdvertisingVersion, Privilege: administer */ \ + 0x00000007, /* Cluster: Application Basic, Attribute: AllowedVendorList, Privilege: administer */ \ } // Parallel array data (cluster, attribute, *privilege*) for read attribute #define GENERATED_ACCESS_READ_ATTRIBUTE__PRIVILEGE { \ - /* Cluster: On/Off, Attribute: StartUpOnOff, Privilege: view */ \ - /* Cluster: Level Control, Attribute: StartUpCurrentLevel, Privilege: view */ \ chip::Access::Privilege::kAdminister, /* Cluster: Access Control, Attribute: ACL, Privilege: administer */ \ chip::Access::Privilege::kAdminister, /* Cluster: Access Control, Attribute: Extension, Privilege: administer */ \ - /* Cluster: Access Control, Attribute: SubjectsPerAccessControlEntry, Privilege: view */ \ - /* Cluster: Access Control, Attribute: TargetsPerAccessControlEntry, Privilege: view */ \ - /* Cluster: Access Control, Attribute: AccessControlEntriesPerFabric, Privilege: view */ \ - /* Cluster: Basic Information, Attribute: NodeLabel, Privilege: view */ \ - /* Cluster: Basic Information, Attribute: Location, Privilege: view */ \ - /* Cluster: Basic Information, Attribute: LocalConfigDisabled, Privilege: view */ \ - /* Cluster: OTA Software Update Requestor, Attribute: DefaultOTAProviders, Privilege: view */ \ - /* Cluster: General Commissioning, Attribute: Breadcrumb, Privilege: view */ \ chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Attribute: MaxNetworks, Privilege: administer */ \ chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Attribute: Networks, Privilege: administer */ \ - /* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: view */ \ chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Attribute: LastNetworkingStatus, Privilege: administer */ \ chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Attribute: LastNetworkID, Privilege: administer */ \ chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Attribute: LastConnectErrorValue, Privilege: administer */ \ chip::Access::Privilege::kAdminister, /* Cluster: Operational Credentials, Attribute: NOCs, Privilege: administer */ \ - /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: view */ \ - /* Cluster: User Label, Attribute: LabelList, Privilege: view */ \ chip::Access::Privilege::kAdminister, /* Cluster: ICD Management, Attribute: RegisteredClients, Privilege: administer */ \ chip::Access::Privilege::kAdminister, /* Cluster: ICD Management, Attribute: ICDCounter, Privilege: administer */ \ - /* Cluster: Door Lock, Attribute: DoorOpenEvents, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: DoorClosedEvents, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: OpenPeriod, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: Language, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: AutoRelockTime, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: SoundVolume, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: OperatingMode, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: EnableOneTouchLocking, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: EnableInsideStatusLED, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: EnablePrivacyModeButton, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: WrongCodeEntryLimit, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: UserCodeTemporaryDisableTime, Privilege: view */ \ - /* Cluster: Door Lock, Attribute: RequirePINforRemoteOperation, Privilege: view */ \ - /* Cluster: Energy EVSE, Attribute: UserMaximumChargeCurrent, Privilege: view */ \ - /* Cluster: Energy EVSE, Attribute: RandomizationDelayWindow, Privilege: view */ \ - /* Cluster: Energy EVSE, Attribute: ApproximateEVEfficiency, Privilege: view */ \ - /* Cluster: Energy Preference, Attribute: CurrentEnergyBalance, Privilege: view */ \ - /* Cluster: Energy Preference, Attribute: CurrentLowPowerModeSensitivity, Privilege: view */ \ - /* Cluster: Window Covering, Attribute: Mode, Privilege: view */ \ - /* Cluster: Pump Configuration and Control, Attribute: LifetimeRunningHours, Privilege: view */ \ - /* Cluster: Pump Configuration and Control, Attribute: LifetimeEnergyConsumed, Privilege: view */ \ - /* Cluster: Pump Configuration and Control, Attribute: OperationMode, Privilege: view */ \ - /* Cluster: Pump Configuration and Control, Attribute: ControlMode, Privilege: view */ \ - /* Cluster: Thermostat, Attribute: MinHeatSetpointLimit, Privilege: view */ \ - /* Cluster: Thermostat, Attribute: MaxHeatSetpointLimit, Privilege: view */ \ - /* Cluster: Thermostat, Attribute: MinCoolSetpointLimit, Privilege: view */ \ - /* Cluster: Thermostat, Attribute: MaxCoolSetpointLimit, Privilege: view */ \ - /* Cluster: Thermostat, Attribute: MinSetpointDeadBand, Privilege: view */ \ - /* Cluster: Thermostat, Attribute: ControlSequenceOfOperation, Privilege: view */ \ - /* Cluster: Thermostat, Attribute: SystemMode, Privilege: view */ \ - /* Cluster: Thermostat User Interface Configuration, Attribute: KeypadLockout, Privilege: view */ \ - /* Cluster: Thermostat User Interface Configuration, Attribute: ScheduleProgrammingVisibility, Privilege: view */ \ - /* Cluster: Color Control, Attribute: WhitePointX, Privilege: view */ \ - /* Cluster: Color Control, Attribute: WhitePointY, Privilege: view */ \ - /* Cluster: Color Control, Attribute: ColorPointRX, Privilege: view */ \ - /* Cluster: Color Control, Attribute: ColorPointRY, Privilege: view */ \ - /* Cluster: Color Control, Attribute: ColorPointRIntensity, Privilege: view */ \ - /* Cluster: Color Control, Attribute: ColorPointGX, Privilege: view */ \ - /* Cluster: Color Control, Attribute: ColorPointGY, Privilege: view */ \ - /* Cluster: Color Control, Attribute: ColorPointGIntensity, Privilege: view */ \ - /* Cluster: Color Control, Attribute: ColorPointBX, Privilege: view */ \ - /* Cluster: Color Control, Attribute: ColorPointBY, Privilege: view */ \ - /* Cluster: Color Control, Attribute: ColorPointBIntensity, Privilege: view */ \ - /* Cluster: Color Control, Attribute: StartUpColorTemperatureMireds, Privilege: view */ \ + chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: AliroReaderVerificationKey, Privilege: administer */ \ + chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: AliroReaderGroupIdentifier, Privilege: administer */ \ + chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: AliroReaderGroupSubIdentifier, Privilege: administer */ \ + chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: AliroExpeditedTransactionSupportedProtocolVersions, Privilege: administer */ \ + chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: AliroGroupResolvingKey, Privilege: administer */ \ + chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: AliroSupportedBLEUWBProtocolVersions, Privilege: administer */ \ + chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: AliroBLEAdvertisingVersion, Privilege: administer */ \ + chip::Access::Privilege::kAdminister, /* Cluster: Application Basic, Attribute: AllowedVendorList, Privilege: administer */ \ } //////////////////////////////////////////////////////////////////////////////// @@ -261,35 +94,56 @@ 0x00000031, /* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: administer */ \ 0x0000003F, /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: manage */ \ 0x00000041, /* Cluster: User Label, Attribute: LabelList, Privilege: manage */ \ - 0x00000101, /* Cluster: Door Lock, Attribute: DoorOpenEvents, Privilege: manage */ \ - 0x00000101, /* Cluster: Door Lock, Attribute: DoorClosedEvents, Privilege: manage */ \ - 0x00000101, /* Cluster: Door Lock, Attribute: OpenPeriod, Privilege: manage */ \ - 0x00000101, /* Cluster: Door Lock, Attribute: Language, Privilege: manage */ \ - 0x00000101, /* Cluster: Door Lock, Attribute: AutoRelockTime, Privilege: manage */ \ - 0x00000101, /* Cluster: Door Lock, Attribute: SoundVolume, Privilege: manage */ \ - 0x00000101, /* Cluster: Door Lock, Attribute: OperatingMode, Privilege: manage */ \ - 0x00000101, /* Cluster: Door Lock, Attribute: EnableOneTouchLocking, Privilege: manage */ \ - 0x00000101, /* Cluster: Door Lock, Attribute: EnableInsideStatusLED, Privilege: manage */ \ - 0x00000101, /* Cluster: Door Lock, Attribute: EnablePrivacyModeButton, Privilege: manage */ \ - 0x00000101, /* Cluster: Door Lock, Attribute: WrongCodeEntryLimit, Privilege: administer */ \ - 0x00000101, /* Cluster: Door Lock, Attribute: UserCodeTemporaryDisableTime, Privilege: administer */ \ - 0x00000101, /* Cluster: Door Lock, Attribute: RequirePINforRemoteOperation, Privilege: administer */ \ 0x0000005C, /* Cluster: Smoke CO Alarm, Attribute: SmokeSensitivityLevel, Privilege: manage */ \ 0x00000099, /* Cluster: Energy EVSE, Attribute: UserMaximumChargeCurrent, Privilege: manage */ \ 0x00000099, /* Cluster: Energy EVSE, Attribute: RandomizationDelayWindow, Privilege: manage */ \ 0x00000099, /* Cluster: Energy EVSE, Attribute: ApproximateEVEfficiency, Privilege: manage */ \ + 0x00000101, /* Cluster: Door Lock, Attribute: DoorOpenEvents, Privilege: manage */ \ + 0x00000101, /* Cluster: Door Lock, Attribute: DoorClosedEvents, Privilege: manage */ \ + 0x00000101, /* Cluster: Door Lock, Attribute: OpenPeriod, Privilege: manage */ \ + 0x00000101, /* Cluster: Door Lock, Attribute: Language, Privilege: manage */ \ + 0x00000101, /* Cluster: Door Lock, Attribute: LEDSettings, Privilege: manage */ \ + 0x00000101, /* Cluster: Door Lock, Attribute: AutoRelockTime, Privilege: manage */ \ + 0x00000101, /* Cluster: Door Lock, Attribute: SoundVolume, Privilege: manage */ \ + 0x00000101, /* Cluster: Door Lock, Attribute: OperatingMode, Privilege: manage */ \ + 0x00000101, /* Cluster: Door Lock, Attribute: EnableLocalProgramming, Privilege: administer */ \ + 0x00000101, /* Cluster: Door Lock, Attribute: EnableOneTouchLocking, Privilege: manage */ \ + 0x00000101, /* Cluster: Door Lock, Attribute: EnableInsideStatusLED, Privilege: manage */ \ + 0x00000101, /* Cluster: Door Lock, Attribute: EnablePrivacyModeButton, Privilege: manage */ \ + 0x00000101, /* Cluster: Door Lock, Attribute: LocalProgrammingFeatures, Privilege: administer */ \ + 0x00000101, /* Cluster: Door Lock, Attribute: WrongCodeEntryLimit, Privilege: administer */ \ + 0x00000101, /* Cluster: Door Lock, Attribute: UserCodeTemporaryDisableTime, Privilege: administer */ \ + 0x00000101, /* Cluster: Door Lock, Attribute: SendPINOverTheAir, Privilege: administer */ \ + 0x00000101, /* Cluster: Door Lock, Attribute: RequirePINforRemoteOperation, Privilege: administer */ \ + 0x00000101, /* Cluster: Door Lock, Attribute: ExpiringUserTimeout, Privilege: administer */ \ 0x00000102, /* Cluster: Window Covering, Attribute: Mode, Privilege: manage */ \ 0x00000200, /* Cluster: Pump Configuration and Control, Attribute: LifetimeRunningHours, Privilege: manage */ \ 0x00000200, /* Cluster: Pump Configuration and Control, Attribute: LifetimeEnergyConsumed, Privilege: manage */ \ 0x00000200, /* Cluster: Pump Configuration and Control, Attribute: OperationMode, Privilege: manage */ \ 0x00000200, /* Cluster: Pump Configuration and Control, Attribute: ControlMode, Privilege: manage */ \ + 0x00000201, /* Cluster: Thermostat, Attribute: HVACSystemTypeConfiguration, Privilege: manage */ \ + 0x00000201, /* Cluster: Thermostat, Attribute: LocalTemperatureCalibration, Privilege: manage */ \ 0x00000201, /* Cluster: Thermostat, Attribute: MinHeatSetpointLimit, Privilege: manage */ \ 0x00000201, /* Cluster: Thermostat, Attribute: MaxHeatSetpointLimit, Privilege: manage */ \ 0x00000201, /* Cluster: Thermostat, Attribute: MinCoolSetpointLimit, Privilege: manage */ \ 0x00000201, /* Cluster: Thermostat, Attribute: MaxCoolSetpointLimit, Privilege: manage */ \ 0x00000201, /* Cluster: Thermostat, Attribute: MinSetpointDeadBand, Privilege: manage */ \ + 0x00000201, /* Cluster: Thermostat, Attribute: RemoteSensing, Privilege: manage */ \ 0x00000201, /* Cluster: Thermostat, Attribute: ControlSequenceOfOperation, Privilege: manage */ \ 0x00000201, /* Cluster: Thermostat, Attribute: SystemMode, Privilege: manage */ \ + 0x00000201, /* Cluster: Thermostat, Attribute: TemperatureSetpointHold, Privilege: manage */ \ + 0x00000201, /* Cluster: Thermostat, Attribute: TemperatureSetpointHoldDuration, Privilege: manage */ \ + 0x00000201, /* Cluster: Thermostat, Attribute: ThermostatProgrammingOperationMode, Privilege: manage */ \ + 0x00000201, /* Cluster: Thermostat, Attribute: OccupiedSetback, Privilege: manage */ \ + 0x00000201, /* Cluster: Thermostat, Attribute: UnoccupiedSetback, Privilege: manage */ \ + 0x00000201, /* Cluster: Thermostat, Attribute: EmergencyHeatDelta, Privilege: manage */ \ + 0x00000201, /* Cluster: Thermostat, Attribute: ACType, Privilege: manage */ \ + 0x00000201, /* Cluster: Thermostat, Attribute: ACCapacity, Privilege: manage */ \ + 0x00000201, /* Cluster: Thermostat, Attribute: ACRefrigerantType, Privilege: manage */ \ + 0x00000201, /* Cluster: Thermostat, Attribute: ACCompressorType, Privilege: manage */ \ + 0x00000201, /* Cluster: Thermostat, Attribute: ACErrorCode, Privilege: manage */ \ + 0x00000201, /* Cluster: Thermostat, Attribute: ACLouverPosition, Privilege: manage */ \ + 0x00000201, /* Cluster: Thermostat, Attribute: ACCapacityformat, Privilege: manage */ \ 0x00000201, /* Cluster: Thermostat, Attribute: Presets, Privilege: manage */ \ 0x00000201, /* Cluster: Thermostat, Attribute: Schedules, Privilege: manage */ \ 0x00000204, /* Cluster: Thermostat User Interface Configuration, Attribute: KeypadLockout, Privilege: manage */ \ @@ -316,6 +170,15 @@ 0x00000301, /* Cluster: Ballast Configuration, Attribute: LampBurnHours, Privilege: manage */ \ 0x00000301, /* Cluster: Ballast Configuration, Attribute: LampAlarmMode, Privilege: manage */ \ 0x00000301, /* Cluster: Ballast Configuration, Attribute: LampBurnHoursTripPoint, Privilege: manage */ \ + 0x00000406, /* Cluster: Occupancy Sensing, Attribute: PIROccupiedToUnoccupiedDelay, Privilege: manage */ \ + 0x00000406, /* Cluster: Occupancy Sensing, Attribute: PIRUnoccupiedToOccupiedDelay, Privilege: manage */ \ + 0x00000406, /* Cluster: Occupancy Sensing, Attribute: PIRUnoccupiedToOccupiedThreshold, Privilege: manage */ \ + 0x00000406, /* Cluster: Occupancy Sensing, Attribute: UltrasonicOccupiedToUnoccupiedDelay, Privilege: manage */ \ + 0x00000406, /* Cluster: Occupancy Sensing, Attribute: UltrasonicUnoccupiedToOccupiedDelay, Privilege: manage */ \ + 0x00000406, /* Cluster: Occupancy Sensing, Attribute: UltrasonicUnoccupiedToOccupiedThreshold, Privilege: manage */ \ + 0x00000406, /* Cluster: Occupancy Sensing, Attribute: PhysicalContactOccupiedToUnoccupiedDelay, Privilege: manage */ \ + 0x00000406, /* Cluster: Occupancy Sensing, Attribute: PhysicalContactUnoccupiedToOccupiedDelay, Privilege: manage */ \ + 0x00000406, /* Cluster: Occupancy Sensing, Attribute: PhysicalContactUnoccupiedToOccupiedThreshold, Privilege: manage */ \ } // Parallel array data (cluster, *attribute*, privilege) for write attribute @@ -337,35 +200,56 @@ 0x00000004, /* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: administer */ \ 0x00000000, /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: manage */ \ 0x00000000, /* Cluster: User Label, Attribute: LabelList, Privilege: manage */ \ - 0x00000004, /* Cluster: Door Lock, Attribute: DoorOpenEvents, Privilege: manage */ \ - 0x00000005, /* Cluster: Door Lock, Attribute: DoorClosedEvents, Privilege: manage */ \ - 0x00000006, /* Cluster: Door Lock, Attribute: OpenPeriod, Privilege: manage */ \ - 0x00000021, /* Cluster: Door Lock, Attribute: Language, Privilege: manage */ \ - 0x00000023, /* Cluster: Door Lock, Attribute: AutoRelockTime, Privilege: manage */ \ - 0x00000024, /* Cluster: Door Lock, Attribute: SoundVolume, Privilege: manage */ \ - 0x00000025, /* Cluster: Door Lock, Attribute: OperatingMode, Privilege: manage */ \ - 0x00000029, /* Cluster: Door Lock, Attribute: EnableOneTouchLocking, Privilege: manage */ \ - 0x0000002A, /* Cluster: Door Lock, Attribute: EnableInsideStatusLED, Privilege: manage */ \ - 0x0000002B, /* Cluster: Door Lock, Attribute: EnablePrivacyModeButton, Privilege: manage */ \ - 0x00000030, /* Cluster: Door Lock, Attribute: WrongCodeEntryLimit, Privilege: administer */ \ - 0x00000031, /* Cluster: Door Lock, Attribute: UserCodeTemporaryDisableTime, Privilege: administer */ \ - 0x00000033, /* Cluster: Door Lock, Attribute: RequirePINforRemoteOperation, Privilege: administer */ \ 0x0000000B, /* Cluster: Smoke CO Alarm, Attribute: SmokeSensitivityLevel, Privilege: manage */ \ 0x00000009, /* Cluster: Energy EVSE, Attribute: UserMaximumChargeCurrent, Privilege: manage */ \ 0x0000000A, /* Cluster: Energy EVSE, Attribute: RandomizationDelayWindow, Privilege: manage */ \ 0x00000027, /* Cluster: Energy EVSE, Attribute: ApproximateEVEfficiency, Privilege: manage */ \ + 0x00000004, /* Cluster: Door Lock, Attribute: DoorOpenEvents, Privilege: manage */ \ + 0x00000005, /* Cluster: Door Lock, Attribute: DoorClosedEvents, Privilege: manage */ \ + 0x00000006, /* Cluster: Door Lock, Attribute: OpenPeriod, Privilege: manage */ \ + 0x00000021, /* Cluster: Door Lock, Attribute: Language, Privilege: manage */ \ + 0x00000022, /* Cluster: Door Lock, Attribute: LEDSettings, Privilege: manage */ \ + 0x00000023, /* Cluster: Door Lock, Attribute: AutoRelockTime, Privilege: manage */ \ + 0x00000024, /* Cluster: Door Lock, Attribute: SoundVolume, Privilege: manage */ \ + 0x00000025, /* Cluster: Door Lock, Attribute: OperatingMode, Privilege: manage */ \ + 0x00000028, /* Cluster: Door Lock, Attribute: EnableLocalProgramming, Privilege: administer */ \ + 0x00000029, /* Cluster: Door Lock, Attribute: EnableOneTouchLocking, Privilege: manage */ \ + 0x0000002A, /* Cluster: Door Lock, Attribute: EnableInsideStatusLED, Privilege: manage */ \ + 0x0000002B, /* Cluster: Door Lock, Attribute: EnablePrivacyModeButton, Privilege: manage */ \ + 0x0000002C, /* Cluster: Door Lock, Attribute: LocalProgrammingFeatures, Privilege: administer */ \ + 0x00000030, /* Cluster: Door Lock, Attribute: WrongCodeEntryLimit, Privilege: administer */ \ + 0x00000031, /* Cluster: Door Lock, Attribute: UserCodeTemporaryDisableTime, Privilege: administer */ \ + 0x00000032, /* Cluster: Door Lock, Attribute: SendPINOverTheAir, Privilege: administer */ \ + 0x00000033, /* Cluster: Door Lock, Attribute: RequirePINforRemoteOperation, Privilege: administer */ \ + 0x00000035, /* Cluster: Door Lock, Attribute: ExpiringUserTimeout, Privilege: administer */ \ 0x00000017, /* Cluster: Window Covering, Attribute: Mode, Privilege: manage */ \ 0x00000015, /* Cluster: Pump Configuration and Control, Attribute: LifetimeRunningHours, Privilege: manage */ \ 0x00000017, /* Cluster: Pump Configuration and Control, Attribute: LifetimeEnergyConsumed, Privilege: manage */ \ 0x00000020, /* Cluster: Pump Configuration and Control, Attribute: OperationMode, Privilege: manage */ \ 0x00000021, /* Cluster: Pump Configuration and Control, Attribute: ControlMode, Privilege: manage */ \ + 0x00000009, /* Cluster: Thermostat, Attribute: HVACSystemTypeConfiguration, Privilege: manage */ \ + 0x00000010, /* Cluster: Thermostat, Attribute: LocalTemperatureCalibration, Privilege: manage */ \ 0x00000015, /* Cluster: Thermostat, Attribute: MinHeatSetpointLimit, Privilege: manage */ \ 0x00000016, /* Cluster: Thermostat, Attribute: MaxHeatSetpointLimit, Privilege: manage */ \ 0x00000017, /* Cluster: Thermostat, Attribute: MinCoolSetpointLimit, Privilege: manage */ \ 0x00000018, /* Cluster: Thermostat, Attribute: MaxCoolSetpointLimit, Privilege: manage */ \ 0x00000019, /* Cluster: Thermostat, Attribute: MinSetpointDeadBand, Privilege: manage */ \ + 0x0000001A, /* Cluster: Thermostat, Attribute: RemoteSensing, Privilege: manage */ \ 0x0000001B, /* Cluster: Thermostat, Attribute: ControlSequenceOfOperation, Privilege: manage */ \ 0x0000001C, /* Cluster: Thermostat, Attribute: SystemMode, Privilege: manage */ \ + 0x00000023, /* Cluster: Thermostat, Attribute: TemperatureSetpointHold, Privilege: manage */ \ + 0x00000024, /* Cluster: Thermostat, Attribute: TemperatureSetpointHoldDuration, Privilege: manage */ \ + 0x00000025, /* Cluster: Thermostat, Attribute: ThermostatProgrammingOperationMode, Privilege: manage */ \ + 0x00000034, /* Cluster: Thermostat, Attribute: OccupiedSetback, Privilege: manage */ \ + 0x00000037, /* Cluster: Thermostat, Attribute: UnoccupiedSetback, Privilege: manage */ \ + 0x0000003A, /* Cluster: Thermostat, Attribute: EmergencyHeatDelta, Privilege: manage */ \ + 0x00000040, /* Cluster: Thermostat, Attribute: ACType, Privilege: manage */ \ + 0x00000041, /* Cluster: Thermostat, Attribute: ACCapacity, Privilege: manage */ \ + 0x00000042, /* Cluster: Thermostat, Attribute: ACRefrigerantType, Privilege: manage */ \ + 0x00000043, /* Cluster: Thermostat, Attribute: ACCompressorType, Privilege: manage */ \ + 0x00000044, /* Cluster: Thermostat, Attribute: ACErrorCode, Privilege: manage */ \ + 0x00000045, /* Cluster: Thermostat, Attribute: ACLouverPosition, Privilege: manage */ \ + 0x00000047, /* Cluster: Thermostat, Attribute: ACCapacityformat, Privilege: manage */ \ 0x00000050, /* Cluster: Thermostat, Attribute: Presets, Privilege: manage */ \ 0x00000051, /* Cluster: Thermostat, Attribute: Schedules, Privilege: manage */ \ 0x00000001, /* Cluster: Thermostat User Interface Configuration, Attribute: KeypadLockout, Privilege: manage */ \ @@ -392,6 +276,15 @@ 0x00000033, /* Cluster: Ballast Configuration, Attribute: LampBurnHours, Privilege: manage */ \ 0x00000034, /* Cluster: Ballast Configuration, Attribute: LampAlarmMode, Privilege: manage */ \ 0x00000035, /* Cluster: Ballast Configuration, Attribute: LampBurnHoursTripPoint, Privilege: manage */ \ + 0x00000010, /* Cluster: Occupancy Sensing, Attribute: PIROccupiedToUnoccupiedDelay, Privilege: manage */ \ + 0x00000011, /* Cluster: Occupancy Sensing, Attribute: PIRUnoccupiedToOccupiedDelay, Privilege: manage */ \ + 0x00000012, /* Cluster: Occupancy Sensing, Attribute: PIRUnoccupiedToOccupiedThreshold, Privilege: manage */ \ + 0x00000020, /* Cluster: Occupancy Sensing, Attribute: UltrasonicOccupiedToUnoccupiedDelay, Privilege: manage */ \ + 0x00000021, /* Cluster: Occupancy Sensing, Attribute: UltrasonicUnoccupiedToOccupiedDelay, Privilege: manage */ \ + 0x00000022, /* Cluster: Occupancy Sensing, Attribute: UltrasonicUnoccupiedToOccupiedThreshold, Privilege: manage */ \ + 0x00000030, /* Cluster: Occupancy Sensing, Attribute: PhysicalContactOccupiedToUnoccupiedDelay, Privilege: manage */ \ + 0x00000031, /* Cluster: Occupancy Sensing, Attribute: PhysicalContactUnoccupiedToOccupiedDelay, Privilege: manage */ \ + 0x00000032, /* Cluster: Occupancy Sensing, Attribute: PhysicalContactUnoccupiedToOccupiedThreshold, Privilege: manage */ \ } // Parallel array data (cluster, attribute, *privilege*) for write attribute @@ -413,35 +306,56 @@ chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Attribute: InterfaceEnabled, Privilege: administer */ \ chip::Access::Privilege::kManage, /* Cluster: Group Key Management, Attribute: GroupKeyMap, Privilege: manage */ \ chip::Access::Privilege::kManage, /* Cluster: User Label, Attribute: LabelList, Privilege: manage */ \ - chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: DoorOpenEvents, Privilege: manage */ \ - chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: DoorClosedEvents, Privilege: manage */ \ - chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: OpenPeriod, Privilege: manage */ \ - chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: Language, Privilege: manage */ \ - chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: AutoRelockTime, Privilege: manage */ \ - chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: SoundVolume, Privilege: manage */ \ - chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: OperatingMode, Privilege: manage */ \ - chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: EnableOneTouchLocking, Privilege: manage */ \ - chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: EnableInsideStatusLED, Privilege: manage */ \ - chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: EnablePrivacyModeButton, Privilege: manage */ \ - chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: WrongCodeEntryLimit, Privilege: administer */ \ - chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: UserCodeTemporaryDisableTime, Privilege: administer */ \ - chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: RequirePINforRemoteOperation, Privilege: administer */ \ chip::Access::Privilege::kManage, /* Cluster: Smoke CO Alarm, Attribute: SmokeSensitivityLevel, Privilege: manage */ \ chip::Access::Privilege::kManage, /* Cluster: Energy EVSE, Attribute: UserMaximumChargeCurrent, Privilege: manage */ \ chip::Access::Privilege::kManage, /* Cluster: Energy EVSE, Attribute: RandomizationDelayWindow, Privilege: manage */ \ chip::Access::Privilege::kManage, /* Cluster: Energy EVSE, Attribute: ApproximateEVEfficiency, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: DoorOpenEvents, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: DoorClosedEvents, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: OpenPeriod, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: Language, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: LEDSettings, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: AutoRelockTime, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: SoundVolume, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: OperatingMode, Privilege: manage */ \ + chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: EnableLocalProgramming, Privilege: administer */ \ + chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: EnableOneTouchLocking, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: EnableInsideStatusLED, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Door Lock, Attribute: EnablePrivacyModeButton, Privilege: manage */ \ + chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: LocalProgrammingFeatures, Privilege: administer */ \ + chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: WrongCodeEntryLimit, Privilege: administer */ \ + chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: UserCodeTemporaryDisableTime, Privilege: administer */ \ + chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: SendPINOverTheAir, Privilege: administer */ \ + chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: RequirePINforRemoteOperation, Privilege: administer */ \ + chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Attribute: ExpiringUserTimeout, Privilege: administer */ \ chip::Access::Privilege::kManage, /* Cluster: Window Covering, Attribute: Mode, Privilege: manage */ \ chip::Access::Privilege::kManage, /* Cluster: Pump Configuration and Control, Attribute: LifetimeRunningHours, Privilege: manage */ \ chip::Access::Privilege::kManage, /* Cluster: Pump Configuration and Control, Attribute: LifetimeEnergyConsumed, Privilege: manage */ \ chip::Access::Privilege::kManage, /* Cluster: Pump Configuration and Control, Attribute: OperationMode, Privilege: manage */ \ chip::Access::Privilege::kManage, /* Cluster: Pump Configuration and Control, Attribute: ControlMode, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: HVACSystemTypeConfiguration, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: LocalTemperatureCalibration, Privilege: manage */ \ chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: MinHeatSetpointLimit, Privilege: manage */ \ chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: MaxHeatSetpointLimit, Privilege: manage */ \ chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: MinCoolSetpointLimit, Privilege: manage */ \ chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: MaxCoolSetpointLimit, Privilege: manage */ \ chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: MinSetpointDeadBand, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: RemoteSensing, Privilege: manage */ \ chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: ControlSequenceOfOperation, Privilege: manage */ \ chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: SystemMode, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: TemperatureSetpointHold, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: TemperatureSetpointHoldDuration, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: ThermostatProgrammingOperationMode, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: OccupiedSetback, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: UnoccupiedSetback, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: EmergencyHeatDelta, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: ACType, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: ACCapacity, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: ACRefrigerantType, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: ACCompressorType, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: ACErrorCode, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: ACLouverPosition, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: ACCapacityformat, Privilege: manage */ \ chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: Presets, Privilege: manage */ \ chip::Access::Privilege::kManage, /* Cluster: Thermostat, Attribute: Schedules, Privilege: manage */ \ chip::Access::Privilege::kManage, /* Cluster: Thermostat User Interface Configuration, Attribute: KeypadLockout, Privilege: manage */ \ @@ -468,6 +382,15 @@ chip::Access::Privilege::kManage, /* Cluster: Ballast Configuration, Attribute: LampBurnHours, Privilege: manage */ \ chip::Access::Privilege::kManage, /* Cluster: Ballast Configuration, Attribute: LampAlarmMode, Privilege: manage */ \ chip::Access::Privilege::kManage, /* Cluster: Ballast Configuration, Attribute: LampBurnHoursTripPoint, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Occupancy Sensing, Attribute: PIROccupiedToUnoccupiedDelay, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Occupancy Sensing, Attribute: PIRUnoccupiedToOccupiedDelay, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Occupancy Sensing, Attribute: PIRUnoccupiedToOccupiedThreshold, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Occupancy Sensing, Attribute: UltrasonicOccupiedToUnoccupiedDelay, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Occupancy Sensing, Attribute: UltrasonicUnoccupiedToOccupiedDelay, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Occupancy Sensing, Attribute: UltrasonicUnoccupiedToOccupiedThreshold, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Occupancy Sensing, Attribute: PhysicalContactOccupiedToUnoccupiedDelay, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Occupancy Sensing, Attribute: PhysicalContactUnoccupiedToOccupiedDelay, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Occupancy Sensing, Attribute: PhysicalContactUnoccupiedToOccupiedThreshold, Privilege: manage */ \ } //////////////////////////////////////////////////////////////////////////////// @@ -489,6 +412,7 @@ 0x00000031, /* Cluster: Network Commissioning, Command: RemoveNetwork, Privilege: administer */ \ 0x00000031, /* Cluster: Network Commissioning, Command: ConnectNetwork, Privilege: administer */ \ 0x00000031, /* Cluster: Network Commissioning, Command: ReorderNetwork, Privilege: administer */ \ + 0x00000031, /* Cluster: Network Commissioning, Command: QueryIdentity, Privilege: administer */ \ 0x00000033, /* Cluster: General Diagnostics, Command: TestEventTrigger, Privilege: manage */ \ 0x00000034, /* Cluster: Software Diagnostics, Command: ResetWatermarks, Privilege: manage */ \ 0x00000035, /* Cluster: Thread Network Diagnostics, Command: ResetCounts, Privilege: manage */ \ @@ -525,12 +449,28 @@ 0x00000101, /* Cluster: Door Lock, Command: ClearWeekDaySchedule, Privilege: administer */ \ 0x00000101, /* Cluster: Door Lock, Command: SetYearDaySchedule, Privilege: administer */ \ 0x00000101, /* Cluster: Door Lock, Command: GetYearDaySchedule, Privilege: administer */ \ + 0x00000101, /* Cluster: Door Lock, Command: ClearYearDaySchedule, Privilege: administer */ \ + 0x00000101, /* Cluster: Door Lock, Command: SetHolidaySchedule, Privilege: administer */ \ + 0x00000101, /* Cluster: Door Lock, Command: GetHolidaySchedule, Privilege: administer */ \ + 0x00000101, /* Cluster: Door Lock, Command: ClearHolidaySchedule, Privilege: administer */ \ 0x00000101, /* Cluster: Door Lock, Command: SetUser, Privilege: administer */ \ 0x00000101, /* Cluster: Door Lock, Command: GetUser, Privilege: administer */ \ 0x00000101, /* Cluster: Door Lock, Command: ClearUser, Privilege: administer */ \ 0x00000101, /* Cluster: Door Lock, Command: SetCredential, Privilege: administer */ \ 0x00000101, /* Cluster: Door Lock, Command: GetCredentialStatus, Privilege: administer */ \ 0x00000101, /* Cluster: Door Lock, Command: ClearCredential, Privilege: administer */ \ + 0x00000101, /* Cluster: Door Lock, Command: SetAliroReaderConfig, Privilege: administer */ \ + 0x00000101, /* Cluster: Door Lock, Command: ClearAliroReaderConfig, Privilege: administer */ \ + 0x00000201, /* Cluster: Thermostat, Command: SetWeeklySchedule, Privilege: manage */ \ + 0x00000201, /* Cluster: Thermostat, Command: ClearWeeklySchedule, Privilege: manage */ \ + 0x00000201, /* Cluster: Thermostat, Command: StartPresetsSchedulesEditRequest, Privilege: manage */ \ + 0x00000201, /* Cluster: Thermostat, Command: CancelPresetsSchedulesEditRequest, Privilege: manage */ \ + 0x00000201, /* Cluster: Thermostat, Command: CommitPresetsSchedulesRequest, Privilege: manage */ \ + 0x00000201, /* Cluster: Thermostat, Command: CancelSetActivePresetRequest, Privilege: manage */ \ + 0x00000507, /* Cluster: Media Input, Command: RenameInput, Privilege: manage */ \ + 0x0000050B, /* Cluster: Audio Output, Command: RenameOutput, Privilege: manage */ \ + 0x0000050E, /* Cluster: Account Login, Command: GetSetupPIN, Privilege: administer */ \ + 0x0000050E, /* Cluster: Account Login, Command: Login, Privilege: administer */ \ 0xFFF1FC06, /* Cluster: Fault Injection, Command: FailAtFault, Privilege: manage */ \ 0xFFF1FC06, /* Cluster: Fault Injection, Command: FailRandomlyAtFault, Privilege: manage */ \ } @@ -552,6 +492,7 @@ 0x00000004, /* Cluster: Network Commissioning, Command: RemoveNetwork, Privilege: administer */ \ 0x00000006, /* Cluster: Network Commissioning, Command: ConnectNetwork, Privilege: administer */ \ 0x00000008, /* Cluster: Network Commissioning, Command: ReorderNetwork, Privilege: administer */ \ + 0x00000009, /* Cluster: Network Commissioning, Command: QueryIdentity, Privilege: administer */ \ 0x00000000, /* Cluster: General Diagnostics, Command: TestEventTrigger, Privilege: manage */ \ 0x00000000, /* Cluster: Software Diagnostics, Command: ResetWatermarks, Privilege: manage */ \ 0x00000000, /* Cluster: Thread Network Diagnostics, Command: ResetCounts, Privilege: manage */ \ @@ -588,12 +529,28 @@ 0x0000000D, /* Cluster: Door Lock, Command: ClearWeekDaySchedule, Privilege: administer */ \ 0x0000000E, /* Cluster: Door Lock, Command: SetYearDaySchedule, Privilege: administer */ \ 0x0000000F, /* Cluster: Door Lock, Command: GetYearDaySchedule, Privilege: administer */ \ + 0x00000010, /* Cluster: Door Lock, Command: ClearYearDaySchedule, Privilege: administer */ \ + 0x00000011, /* Cluster: Door Lock, Command: SetHolidaySchedule, Privilege: administer */ \ + 0x00000012, /* Cluster: Door Lock, Command: GetHolidaySchedule, Privilege: administer */ \ + 0x00000013, /* Cluster: Door Lock, Command: ClearHolidaySchedule, Privilege: administer */ \ 0x0000001A, /* Cluster: Door Lock, Command: SetUser, Privilege: administer */ \ 0x0000001B, /* Cluster: Door Lock, Command: GetUser, Privilege: administer */ \ 0x0000001D, /* Cluster: Door Lock, Command: ClearUser, Privilege: administer */ \ 0x00000022, /* Cluster: Door Lock, Command: SetCredential, Privilege: administer */ \ 0x00000024, /* Cluster: Door Lock, Command: GetCredentialStatus, Privilege: administer */ \ 0x00000026, /* Cluster: Door Lock, Command: ClearCredential, Privilege: administer */ \ + 0x00000028, /* Cluster: Door Lock, Command: SetAliroReaderConfig, Privilege: administer */ \ + 0x00000029, /* Cluster: Door Lock, Command: ClearAliroReaderConfig, Privilege: administer */ \ + 0x00000001, /* Cluster: Thermostat, Command: SetWeeklySchedule, Privilege: manage */ \ + 0x00000003, /* Cluster: Thermostat, Command: ClearWeeklySchedule, Privilege: manage */ \ + 0x00000007, /* Cluster: Thermostat, Command: StartPresetsSchedulesEditRequest, Privilege: manage */ \ + 0x00000008, /* Cluster: Thermostat, Command: CancelPresetsSchedulesEditRequest, Privilege: manage */ \ + 0x00000009, /* Cluster: Thermostat, Command: CommitPresetsSchedulesRequest, Privilege: manage */ \ + 0x0000000A, /* Cluster: Thermostat, Command: CancelSetActivePresetRequest, Privilege: manage */ \ + 0x00000003, /* Cluster: Media Input, Command: RenameInput, Privilege: manage */ \ + 0x00000001, /* Cluster: Audio Output, Command: RenameOutput, Privilege: manage */ \ + 0x00000000, /* Cluster: Account Login, Command: GetSetupPIN, Privilege: administer */ \ + 0x00000002, /* Cluster: Account Login, Command: Login, Privilege: administer */ \ 0x00000000, /* Cluster: Fault Injection, Command: FailAtFault, Privilege: manage */ \ 0x00000001, /* Cluster: Fault Injection, Command: FailRandomlyAtFault, Privilege: manage */ \ } @@ -615,6 +572,7 @@ chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Command: RemoveNetwork, Privilege: administer */ \ chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Command: ConnectNetwork, Privilege: administer */ \ chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Command: ReorderNetwork, Privilege: administer */ \ + chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Command: QueryIdentity, Privilege: administer */ \ chip::Access::Privilege::kManage, /* Cluster: General Diagnostics, Command: TestEventTrigger, Privilege: manage */ \ chip::Access::Privilege::kManage, /* Cluster: Software Diagnostics, Command: ResetWatermarks, Privilege: manage */ \ chip::Access::Privilege::kManage, /* Cluster: Thread Network Diagnostics, Command: ResetCounts, Privilege: manage */ \ @@ -651,12 +609,28 @@ chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Command: ClearWeekDaySchedule, Privilege: administer */ \ chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Command: SetYearDaySchedule, Privilege: administer */ \ chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Command: GetYearDaySchedule, Privilege: administer */ \ + chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Command: ClearYearDaySchedule, Privilege: administer */ \ + chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Command: SetHolidaySchedule, Privilege: administer */ \ + chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Command: GetHolidaySchedule, Privilege: administer */ \ + chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Command: ClearHolidaySchedule, Privilege: administer */ \ chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Command: SetUser, Privilege: administer */ \ chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Command: GetUser, Privilege: administer */ \ chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Command: ClearUser, Privilege: administer */ \ chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Command: SetCredential, Privilege: administer */ \ chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Command: GetCredentialStatus, Privilege: administer */ \ chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Command: ClearCredential, Privilege: administer */ \ + chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Command: SetAliroReaderConfig, Privilege: administer */ \ + chip::Access::Privilege::kAdminister, /* Cluster: Door Lock, Command: ClearAliroReaderConfig, Privilege: administer */ \ + chip::Access::Privilege::kManage, /* Cluster: Thermostat, Command: SetWeeklySchedule, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Thermostat, Command: ClearWeeklySchedule, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Thermostat, Command: StartPresetsSchedulesEditRequest, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Thermostat, Command: CancelPresetsSchedulesEditRequest, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Thermostat, Command: CommitPresetsSchedulesRequest, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Thermostat, Command: CancelSetActivePresetRequest, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Media Input, Command: RenameInput, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Audio Output, Command: RenameOutput, Privilege: manage */ \ + chip::Access::Privilege::kAdminister, /* Cluster: Account Login, Command: GetSetupPIN, Privilege: administer */ \ + chip::Access::Privilege::kAdminister, /* Cluster: Account Login, Command: Login, Privilege: administer */ \ chip::Access::Privilege::kManage, /* Cluster: Fault Injection, Command: FailAtFault, Privilege: manage */ \ chip::Access::Privilege::kManage, /* Cluster: Fault Injection, Command: FailRandomlyAtFault, Privilege: manage */ \ }