From eaac08eeb0ded57df7f007cf3e4524868f2ca0ab Mon Sep 17 00:00:00 2001 From: Yufeng Wang Date: Tue, 2 Jul 2024 12:53:46 -0700 Subject: [PATCH 1/3] [Fabric-Admin] Add Device Manager to manage assigned node ID and remote bridge (#33972) * [Fabric-Admin] Add Device Manager to manage assigned node ID and remote bridge * Address review comments --- examples/fabric-admin/BUILD.gn | 2 + .../commands/clusters/ReportCommand.cpp | 3 + .../commands/fabric-sync/Commands.h | 4 +- .../fabric-sync/FabricSyncCommand.cpp | 145 +++++++++++- .../commands/fabric-sync/FabricSyncCommand.h | 47 +++- .../commands/pairing/PairingCommand.cpp | 4 +- .../device_manager/DeviceManager.cpp | 219 ++++++++++++++++++ .../device_manager/DeviceManager.h | 102 ++++++++ examples/fabric-admin/main.cpp | 3 + examples/fabric-admin/rpc/RpcServer.cpp | 17 +- 10 files changed, 525 insertions(+), 21 deletions(-) create mode 100644 examples/fabric-admin/device_manager/DeviceManager.cpp create mode 100644 examples/fabric-admin/device_manager/DeviceManager.h diff --git a/examples/fabric-admin/BUILD.gn b/examples/fabric-admin/BUILD.gn index 9ab444d5f8dc9c..3427c6c0f6c2d9 100644 --- a/examples/fabric-admin/BUILD.gn +++ b/examples/fabric-admin/BUILD.gn @@ -78,6 +78,8 @@ static_library("fabric-admin-utils") { "commands/pairing/OpenCommissioningWindowCommand.h", "commands/pairing/PairingCommand.cpp", "commands/pairing/ToTLVCert.cpp", + "device_manager/DeviceManager.cpp", + "device_manager/DeviceManager.h", ] deps = [ "${chip_root}/src/app:events" ] diff --git a/examples/fabric-admin/commands/clusters/ReportCommand.cpp b/examples/fabric-admin/commands/clusters/ReportCommand.cpp index b89ec0809433bc..8eb2cc7c33ae0d 100644 --- a/examples/fabric-admin/commands/clusters/ReportCommand.cpp +++ b/examples/fabric-admin/commands/clusters/ReportCommand.cpp @@ -19,6 +19,7 @@ #include "ReportCommand.h" #include +#include #include using namespace ::chip; @@ -44,6 +45,8 @@ void ReportCommand::OnAttributeData(const app::ConcreteDataAttributePath & path, } LogErrorOnFailure(RemoteDataModelLogger::LogAttributeAsJSON(path, data)); + + DeviceMgr().HandleAttributeChange(path, data); } void ReportCommand::OnEventData(const app::EventHeader & eventHeader, TLV::TLVReader * data, const app::StatusIB * status) diff --git a/examples/fabric-admin/commands/fabric-sync/Commands.h b/examples/fabric-admin/commands/fabric-sync/Commands.h index f277c28f9d15b4..94de1d31d8ba09 100644 --- a/examples/fabric-admin/commands/fabric-sync/Commands.h +++ b/examples/fabric-admin/commands/fabric-sync/Commands.h @@ -26,8 +26,10 @@ void registerCommandsFabricSync(Commands & commands, CredentialIssuerCommands * const char * clusterName = "FabricSync"; commands_list clusterCommands = { - make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), make_unique(credsIssuerConfig), + make_unique(credsIssuerConfig), }; commands.RegisterCommandSet(clusterName, clusterCommands, "Commands for fabric synchronization."); diff --git a/examples/fabric-admin/commands/fabric-sync/FabricSyncCommand.cpp b/examples/fabric-admin/commands/fabric-sync/FabricSyncCommand.cpp index 381dc50c83018b..3e050e90904867 100644 --- a/examples/fabric-admin/commands/fabric-sync/FabricSyncCommand.cpp +++ b/examples/fabric-admin/commands/fabric-sync/FabricSyncCommand.cpp @@ -19,6 +19,7 @@ #include "FabricSyncCommand.h" #include #include +#include #include #include #include @@ -36,17 +37,121 @@ constexpr uint32_t kCommissionPrepareTimeMs = 500; constexpr uint16_t kMaxManaulCodeLength = 21; constexpr uint16_t kSubscribeMinInterval = 0; constexpr uint16_t kSubscribeMaxInterval = 60; +constexpr uint16_t kRemoteBridgePort = 5540; } // namespace -CHIP_ERROR FabricSyncAddDeviceCommand::RunCommand(NodeId remoteId) +void FabricSyncAddBridgeCommand::OnCommissioningComplete(chip::NodeId deviceId, CHIP_ERROR err) { -#if defined(PW_RPC_ENABLED) - AddSynchronizedDevice(remoteId); + if (mBridgeNodeId != deviceId) + { + ChipLogProgress(NotSpecified, "Commissioning complete for non-bridge device: NodeId: " ChipLogFormatX64, + ChipLogValueX64(deviceId)); + return; + } + + if (err == CHIP_NO_ERROR) + { + DeviceMgr().SetRemoteBridgeNodeId(mBridgeNodeId); + ChipLogProgress(NotSpecified, "Successfully paired bridge device: NodeId: " ChipLogFormatX64, + ChipLogValueX64(mBridgeNodeId)); + + char command[kMaxCommandSize]; + snprintf(command, sizeof(command), "descriptor subscribe parts-list %d %d %ld %d", kSubscribeMinInterval, + kSubscribeMaxInterval, mBridgeNodeId, kAggragatorEndpointId); + + PushCommand(command); + } + else + { + ChipLogError(NotSpecified, "Failed to pair bridge device (0x:" ChipLogFormatX64 ") with error: %" CHIP_ERROR_FORMAT, + ChipLogValueX64(deviceId), err.Format()); + } + + mBridgeNodeId = kUndefinedNodeId; +} + +CHIP_ERROR FabricSyncAddBridgeCommand::RunCommand(NodeId remoteId) +{ + if (DeviceMgr().IsFabricSyncReady()) + { + // print to console + fprintf(stderr, "Remote Fabric Bridge has been alread configured."); + return CHIP_NO_ERROR; + } + + char command[kMaxCommandSize]; + snprintf(command, sizeof(command), "pairing already-discovered %ld %d %s %d", remoteId, kSetupPinCode, + reinterpret_cast(mRemoteAddr.data()), kRemoteBridgePort); + + PairingCommand * pairingCommand = static_cast(CommandMgr().GetCommandByName("pairing", "already-discovered")); + + if (pairingCommand == nullptr) + { + ChipLogError(NotSpecified, "Pairing onnetwork command is not available"); + return CHIP_ERROR_NOT_IMPLEMENTED; + } + + pairingCommand->RegisterCommissioningDelegate(this); + mBridgeNodeId = remoteId; + + PushCommand(command); + + return CHIP_NO_ERROR; +} + +void FabricSyncRemoveBridgeCommand::OnDeviceRemoved(chip::NodeId deviceId, CHIP_ERROR err) +{ + if (mBridgeNodeId != deviceId) + { + ChipLogProgress(NotSpecified, "An non-bridge device: NodeId: " ChipLogFormatX64 " is removed.", ChipLogValueX64(deviceId)); + return; + } + + if (err == CHIP_NO_ERROR) + { + DeviceMgr().SetRemoteBridgeNodeId(kUndefinedNodeId); + ChipLogProgress(NotSpecified, "Successfully removed bridge device: NodeId: " ChipLogFormatX64, + ChipLogValueX64(mBridgeNodeId)); + } + else + { + ChipLogError(NotSpecified, "Failed to remove bridge device (0x:" ChipLogFormatX64 ") with error: %" CHIP_ERROR_FORMAT, + ChipLogValueX64(deviceId), err.Format()); + } + + mBridgeNodeId = kUndefinedNodeId; +} + +CHIP_ERROR FabricSyncRemoveBridgeCommand::RunCommand() +{ + NodeId bridgeNodeId = DeviceMgr().GetRemoteBridgeNodeId(); + + if (bridgeNodeId == kUndefinedNodeId) + { + // print to console + fprintf(stderr, "Remote Fabric Bridge is not configured yet, nothing to remove."); + return CHIP_NO_ERROR; + } + + mBridgeNodeId = bridgeNodeId; + + char command[kMaxCommandSize]; + snprintf(command, sizeof(command), "pairing unpair %ld", mBridgeNodeId); + + PairingCommand * pairingCommand = static_cast(CommandMgr().GetCommandByName("pairing", "unpair")); + + if (pairingCommand == nullptr) + { + ChipLogError(NotSpecified, "Pairing code command is not available"); + return CHIP_ERROR_NOT_IMPLEMENTED; + } + + pairingCommand->RegisterPairingDelegate(this); + + PushCommand(command); + return CHIP_NO_ERROR; -#else - return CHIP_ERROR_NOT_IMPLEMENTED; -#endif } void FabricSyncDeviceCommand::OnCommissioningWindowOpened(NodeId deviceId, CHIP_ERROR err, chip::SetupPayload payload) @@ -59,7 +164,7 @@ void FabricSyncDeviceCommand::OnCommissioningWindowOpened(NodeId deviceId, CHIP_ if (error == CHIP_NO_ERROR) { char command[kMaxCommandSize]; - NodeId nodeId = 2; // TODO: (Issue #33947) need to switch to dynamically assigned ID + NodeId nodeId = DeviceMgr().GetNextAvailableNodeId(); snprintf(command, sizeof(command), "pairing code %ld %s", nodeId, payloadBuffer); PairingCommand * pairingCommand = static_cast(CommandMgr().GetCommandByName("pairing", "code")); @@ -101,7 +206,7 @@ void FabricSyncDeviceCommand::OnCommissioningComplete(chip::NodeId deviceId, CHI if (err == CHIP_NO_ERROR) { - // TODO: (Issue #33947) Add Synced Device to device manager + DeviceMgr().AddSyncedDevice(Device(mAssignedNodeId, mRemoteEndpointId)); } else { @@ -112,17 +217,23 @@ void FabricSyncDeviceCommand::OnCommissioningComplete(chip::NodeId deviceId, CHI CHIP_ERROR FabricSyncDeviceCommand::RunCommand(EndpointId remoteId) { + if (!DeviceMgr().IsFabricSyncReady()) + { + // print to console + fprintf(stderr, "Remote Fabric Bridge is not configured yet."); + return CHIP_NO_ERROR; + } + char command[kMaxCommandSize]; - NodeId bridgeNodeId = 1; // TODO: (Issue #33947) need to switch to configured ID - snprintf(command, sizeof(command), "pairing open-commissioning-window %ld %d %d %d %d %d", bridgeNodeId, remoteId, - kEnhancedCommissioningMethod, kWindowTimeout, kIteration, kDiscriminator); + snprintf(command, sizeof(command), "pairing open-commissioning-window %ld %d %d %d %d %d", DeviceMgr().GetRemoteBridgeNodeId(), + remoteId, kEnhancedCommissioningMethod, kWindowTimeout, kIteration, kDiscriminator); OpenCommissioningWindowCommand * openCommand = static_cast(CommandMgr().GetCommandByName("pairing", "open-commissioning-window")); if (openCommand == nullptr) { - return CHIP_ERROR_UNINITIALIZED; + return CHIP_ERROR_NOT_IMPLEMENTED; } openCommand->RegisterDelegate(this); @@ -131,3 +242,13 @@ CHIP_ERROR FabricSyncDeviceCommand::RunCommand(EndpointId remoteId) return CHIP_NO_ERROR; } + +CHIP_ERROR FabricAutoSyncCommand::RunCommand(bool enableAutoSync) +{ + DeviceMgr().EnableAutoSync(enableAutoSync); + + // print to console + fprintf(stderr, "Auto Fabric Sync is %s.\n", enableAutoSync ? "enabled" : "disabled"); + + return CHIP_NO_ERROR; +} diff --git a/examples/fabric-admin/commands/fabric-sync/FabricSyncCommand.h b/examples/fabric-admin/commands/fabric-sync/FabricSyncCommand.h index 7b8f6f938afec9..038094583c8554 100644 --- a/examples/fabric-admin/commands/fabric-sync/FabricSyncCommand.h +++ b/examples/fabric-admin/commands/fabric-sync/FabricSyncCommand.h @@ -22,20 +22,25 @@ #include #include +constexpr uint32_t kSetupPinCode = 20202021; constexpr uint16_t kMaxCommandSize = 64; constexpr uint16_t kDiscriminator = 3840; constexpr uint16_t kWindowTimeout = 300; constexpr uint16_t kIteration = 1000; +constexpr uint16_t kAggragatorEndpointId = 1; constexpr uint8_t kEnhancedCommissioningMethod = 1; -class FabricSyncAddDeviceCommand : public CHIPCommand +class FabricSyncAddBridgeCommand : public CHIPCommand, public CommissioningDelegate { public: - FabricSyncAddDeviceCommand(CredentialIssuerCommands * credIssuerCommands) : CHIPCommand("add-device", credIssuerCommands) + FabricSyncAddBridgeCommand(CredentialIssuerCommands * credIssuerCommands) : CHIPCommand("add-bridge", credIssuerCommands) { AddArgument("nodeid", 0, UINT64_MAX, &mNodeId); + AddArgument("device-remote-ip", &mRemoteAddr); } + void OnCommissioningComplete(NodeId deviceId, CHIP_ERROR err) override; + /////////// CHIPCommand Interface ///////// CHIP_ERROR RunCommand() override { return RunCommand(mNodeId); } @@ -43,10 +48,29 @@ class FabricSyncAddDeviceCommand : public CHIPCommand private: chip::NodeId mNodeId; + chip::NodeId mBridgeNodeId; + chip::ByteSpan mRemoteAddr; CHIP_ERROR RunCommand(NodeId remoteId); }; +class FabricSyncRemoveBridgeCommand : public CHIPCommand, public PairingDelegate +{ +public: + FabricSyncRemoveBridgeCommand(CredentialIssuerCommands * credIssuerCommands) : CHIPCommand("remove-bridge", credIssuerCommands) + {} + + void OnDeviceRemoved(chip::NodeId deviceId, CHIP_ERROR err) override; + + /////////// CHIPCommand Interface ///////// + CHIP_ERROR RunCommand() override; + + chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(1); } + +private: + chip::NodeId mBridgeNodeId; +}; + class FabricSyncDeviceCommand : public CHIPCommand, public CommissioningWindowDelegate, public CommissioningDelegate { public: @@ -69,3 +93,22 @@ class FabricSyncDeviceCommand : public CHIPCommand, public CommissioningWindowDe CHIP_ERROR RunCommand(chip::EndpointId remoteId); }; + +class FabricAutoSyncCommand : public CHIPCommand +{ +public: + FabricAutoSyncCommand(CredentialIssuerCommands * credIssuerCommands) : CHIPCommand("enable-auto-sync", credIssuerCommands) + { + AddArgument("state", 0, 1, &mEnableAutoSync, "Set to true to enable auto Fabric Sync, false to disable."); + } + + /////////// CHIPCommand Interface ///////// + CHIP_ERROR RunCommand() override { return RunCommand(mEnableAutoSync); } + + chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(1); } + +private: + bool mEnableAutoSync; + + CHIP_ERROR RunCommand(bool enableAutoSync); +}; diff --git a/examples/fabric-admin/commands/pairing/PairingCommand.cpp b/examples/fabric-admin/commands/pairing/PairingCommand.cpp index 521325a796dce0..5a02739232b054 100644 --- a/examples/fabric-admin/commands/pairing/PairingCommand.cpp +++ b/examples/fabric-admin/commands/pairing/PairingCommand.cpp @@ -543,9 +543,7 @@ void PairingCommand::OnCurrentFabricRemove(void * context, NodeId nodeId, CHIP_E // print to console fprintf(stderr, "Device with Node ID: 0x%lx has been successfully removed.\n", nodeId); -#if defined(PW_RPC_ENABLED) - RemoveSynchronizedDevice(nodeId); -#endif + // TODO: (#33973) Add RPC method RemoveSynchronizedDevice } else { diff --git a/examples/fabric-admin/device_manager/DeviceManager.cpp b/examples/fabric-admin/device_manager/DeviceManager.cpp new file mode 100644 index 00000000000000..4ea0b033c47c7f --- /dev/null +++ b/examples/fabric-admin/device_manager/DeviceManager.cpp @@ -0,0 +1,219 @@ +/* + * + * Copyright (c) 2024 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#include "DeviceManager.h" + +#include + +#include +#include + +using namespace chip; +using namespace chip::app::Clusters; + +// Define the static member +DeviceManager DeviceManager::sInstance; + +void DeviceManager::Init() +{ + // TODO: (#34113) Init mLastUsedNodeId from chip config file + mLastUsedNodeId = 1; +} + +NodeId DeviceManager::GetNextAvailableNodeId() +{ + mLastUsedNodeId++; + VerifyOrDieWithMsg(mLastUsedNodeId < std::numeric_limits::max(), NotSpecified, "No more available NodeIds."); + + return mLastUsedNodeId; +} + +void DeviceManager::UpdateLastUsedNodeId(chip::NodeId nodeId) +{ + if (nodeId > mLastUsedNodeId) + { + ChipLogProgress(NotSpecified, "Updating last used NodeId to " ChipLogFormatX64, ChipLogValueX64(nodeId)); + mLastUsedNodeId = nodeId; + } +} + +void DeviceManager::AddSyncedDevice(const Device & device) +{ + mSyncedDevices.insert(device); + ChipLogProgress(NotSpecified, "Added synced device: NodeId:" ChipLogFormatX64 ", EndpointId %u", + ChipLogValueX64(device.GetNodeId()), device.GetEndpointId()); +} + +Device * DeviceManager::FindDeviceByEndpoint(EndpointId endpointId) +{ + for (auto & device : mSyncedDevices) + { + if (device.GetEndpointId() == endpointId) + { + return const_cast(&device); + } + } + return nullptr; +} + +Device * DeviceManager::FindDeviceByNode(NodeId nodeId) +{ + for (auto & device : mSyncedDevices) + { + if (device.GetNodeId() == nodeId) + { + return const_cast(&device); + } + } + return nullptr; +} + +void DeviceManager::RemoveSyncedDevice(NodeId nodeId) +{ + Device * device = FindDeviceByNode(nodeId); + if (device == nullptr) + { + ChipLogProgress(NotSpecified, "No device found with NodeId:" ChipLogFormatX64, ChipLogValueX64(nodeId)); + return; + } + + mSyncedDevices.erase(*device); + ChipLogProgress(NotSpecified, "Removed synced device: NodeId:" ChipLogFormatX64 ", EndpointId %u", + ChipLogValueX64(device->GetNodeId()), device->GetEndpointId()); +} + +void DeviceManager::HandleAttributeChange(const app::ConcreteDataAttributePath & path, TLV::TLVReader * data) +{ + if (path.mClusterId != Descriptor::Id || path.mAttributeId != Descriptor::Attributes::PartsList::Id) + { + return; + } + + ChipLogProgress(NotSpecified, "Attribute change detected:"); + ChipLogProgress( + NotSpecified, "Endpoint: %u, Cluster: " ChipLogFormatMEI ", Attribute: " ChipLogFormatMEI ", DataVersion: %" PRIu32, + path.mEndpointId, ChipLogValueMEI(path.mClusterId), ChipLogValueMEI(path.mAttributeId), path.mDataVersion.ValueOr(0)); + + app::DataModel::DecodableList value; + CHIP_ERROR error = app::DataModel::Decode(*data, value); + if (error != CHIP_NO_ERROR) + { + ChipLogError(NotSpecified, "Failed to decode attribute value. Error: %" CHIP_ERROR_FORMAT, error.Format()); + return; + } + + std::set newEndpoints; + + // Populate the newEndpoints set from the decoded value using an iterator + auto iter = value.begin(); + while (iter.Next()) + { + newEndpoints.insert(iter.GetValue()); + } + + if (iter.GetStatus() != CHIP_NO_ERROR) + { + ChipLogError(NotSpecified, "Failed to iterate over decoded attribute value."); + return; + } + + // Compare newEndpoints with mSyncedDevices to determine added and removed endpoints + std::vector addedEndpoints; + std::vector removedEndpoints; + + // Note: We're using vectors and manual searches instead of set operations + // because we need to work with the Device objects in mSyncedDevices, + // not just their EndpointIds. This approach allows us to access the full + // Device information when processing changes. + + // Find added endpoints + for (const auto & endpoint : newEndpoints) + { + if (FindDeviceByEndpoint(endpoint) == nullptr) + { + addedEndpoints.push_back(endpoint); + } + } + + // Find removed endpoints + for (auto & device : mSyncedDevices) + { + EndpointId endpointId = device.GetEndpointId(); + if (newEndpoints.find(endpointId) == newEndpoints.end()) + { + removedEndpoints.push_back(endpointId); + } + } + + // Process added endpoints + for (const auto & endpoint : addedEndpoints) + { + ChipLogProgress(NotSpecified, "Endpoint added: %u", endpoint); + + if (mAutoSyncEnabled) + { + char command[64]; + snprintf(command, sizeof(command), "fabricsync sync-device %d", endpoint); + PushCommand(command); + } + } + + // Process removed endpoints + for (const auto & endpoint : removedEndpoints) + { + ChipLogProgress(NotSpecified, "Endpoint removed: %u", endpoint); + + Device * device = FindDeviceByEndpoint(endpoint); + + if (device == nullptr) + { + ChipLogProgress(NotSpecified, "No device on Endpoint: %u", endpoint); + continue; + } + + if (mAutoSyncEnabled) + { + char command[64]; + snprintf(command, sizeof(command), "pairing unpair %ld", device->GetNodeId()); + + PairingCommand * pairingCommand = static_cast(CommandMgr().GetCommandByName("pairing", "unpair")); + + if (pairingCommand == nullptr) + { + ChipLogError(NotSpecified, "Pairing code command is not available"); + return; + } + + pairingCommand->RegisterPairingDelegate(this); + PushCommand(command); + } + } +} + +void DeviceManager::OnDeviceRemoved(NodeId deviceId, CHIP_ERROR err) +{ + if (err != CHIP_NO_ERROR) + { + ChipLogError(NotSpecified, "Failed to remove synced device:(" ChipLogFormatX64 ") with error: %" CHIP_ERROR_FORMAT, + ChipLogValueX64(deviceId), err.Format()); + return; + } + + RemoveSyncedDevice(deviceId); + ChipLogProgress(NotSpecified, "Synced device with NodeId:" ChipLogFormatX64 " has been removed.", ChipLogValueX64(deviceId)); +} diff --git a/examples/fabric-admin/device_manager/DeviceManager.h b/examples/fabric-admin/device_manager/DeviceManager.h new file mode 100644 index 00000000000000..6270cfd40e9df0 --- /dev/null +++ b/examples/fabric-admin/device_manager/DeviceManager.h @@ -0,0 +1,102 @@ +/* + * + * Copyright (c) 2024 Project CHIP Authors + * All rights reserved. + * + * 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. + */ + +#pragma once + +#include +#include +#include + +#include + +class Device +{ +public: + Device(chip::NodeId nodeId, chip::EndpointId endpointId) : mNodeId(nodeId), mEndpointId(endpointId) {} + + chip::NodeId GetNodeId() const { return mNodeId; } + chip::EndpointId GetEndpointId() const { return mEndpointId; } + + bool operator<(const Device & other) const + { + return mNodeId < other.mNodeId || (mNodeId == other.mNodeId && mEndpointId < other.mEndpointId); + } + +private: + chip::NodeId mNodeId; + chip::EndpointId mEndpointId; +}; + +class DeviceManager : public PairingDelegate +{ +public: + DeviceManager() = default; + + void Init(); + + chip::NodeId GetNextAvailableNodeId(); + + chip::NodeId GetRemoteBridgeNodeId() const { return mRemoteBridgeNodeId; } + + void UpdateLastUsedNodeId(chip::NodeId nodeId); + + void SetRemoteBridgeNodeId(chip::NodeId remoteBridgeNodeId) { mRemoteBridgeNodeId = remoteBridgeNodeId; } + + bool IsAutoSyncEnabled() const { return mAutoSyncEnabled; } + + bool IsFabricSyncReady() const { return mRemoteBridgeNodeId != chip::kUndefinedNodeId; } + + void EnableAutoSync(bool state) { mAutoSyncEnabled = state; } + + void AddSyncedDevice(const Device & device); + + void RemoveSyncedDevice(chip::NodeId nodeId); + + void HandleAttributeChange(const chip::app::ConcreteDataAttributePath & path, chip::TLV::TLVReader * data); + + void OnDeviceRemoved(chip::NodeId deviceId, CHIP_ERROR err) override; + +private: + friend DeviceManager & DeviceMgr(); + + static DeviceManager sInstance; + + chip::NodeId mLastUsedNodeId = 0; + chip::NodeId mRemoteBridgeNodeId = chip::kUndefinedNodeId; + std::set mSyncedDevices; + bool mAutoSyncEnabled = false; + bool mInitialized = false; + + Device * FindDeviceByEndpoint(chip::EndpointId endpointId); + Device * FindDeviceByNode(chip::NodeId nodeId); +}; + +/** + * Returns the public interface of the DeviceManager singleton object. + * + * Applications should use this to access features of the DeviceManager + * object. + */ +inline DeviceManager & DeviceMgr() +{ + if (!DeviceManager::sInstance.mInitialized) + { + DeviceManager::sInstance.Init(); + } + return DeviceManager::sInstance; +} diff --git a/examples/fabric-admin/main.cpp b/examples/fabric-admin/main.cpp index d85578f784c293..c7f9089c120c8d 100644 --- a/examples/fabric-admin/main.cpp +++ b/examples/fabric-admin/main.cpp @@ -21,6 +21,7 @@ #include #include #include +#include #include #include @@ -39,6 +40,8 @@ void ApplicationInit() InitRpcServer(kFabricAdminServerPort); ChipLogProgress(NotSpecified, "PW_RPC initialized."); #endif + + DeviceMgr().Init(); } // ================================================================================ diff --git a/examples/fabric-admin/rpc/RpcServer.cpp b/examples/fabric-admin/rpc/RpcServer.cpp index b3cbdcea05409a..51ecb1ff6c13c5 100644 --- a/examples/fabric-admin/rpc/RpcServer.cpp +++ b/examples/fabric-admin/rpc/RpcServer.cpp @@ -20,6 +20,8 @@ #include "pw_rpc_system_server/rpc_server.h" #include "pw_rpc_system_server/socket.h" +#include +#include #include #include @@ -27,17 +29,26 @@ #include "pigweed/rpc_services/FabricAdmin.h" #endif +using namespace ::chip; + namespace { #if defined(PW_RPC_FABRIC_ADMIN_SERVICE) && PW_RPC_FABRIC_ADMIN_SERVICE -class FabricAdmin final : public chip::rpc::FabricAdmin +class FabricAdmin final : public rpc::FabricAdmin { public: pw::Status OpenCommissioningWindow(const chip_rpc_DeviceInfo & request, chip_rpc_OperationStatus & response) override { - chip::NodeId nodeId = request.node_id; + NodeId nodeId = request.node_id; ChipLogProgress(NotSpecified, "Received OpenCommissioningWindow request: 0x%lx", nodeId); - response.success = false; + + char command[64]; + snprintf(command, sizeof(command), "pairing open-commissioning-window %ld %d %d %d %d %d", nodeId, kRootEndpointId, + kEnhancedCommissioningMethod, kWindowTimeout, kIteration, kDiscriminator); + + PushCommand(command); + + response.success = true; return pw::OkStatus(); } From f57b79191615775ab20d325d26bf1f943e291894 Mon Sep 17 00:00:00 2001 From: ready2die4u Date: Wed, 3 Jul 2024 05:11:32 +0900 Subject: [PATCH 2/3] ESP32: Fix to connect to wifi using shell command (#34080) - Fix an issue that 'matter wifi connect' doesn't work on ESP32 by calling chip::Shell::SetWiFiDriver --- examples/platform/esp32/common/Esp32AppServer.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/examples/platform/esp32/common/Esp32AppServer.cpp b/examples/platform/esp32/common/Esp32AppServer.cpp index 4f854c518bd01f..1c30098e9010d5 100644 --- a/examples/platform/esp32/common/Esp32AppServer.cpp +++ b/examples/platform/esp32/common/Esp32AppServer.cpp @@ -38,6 +38,10 @@ #endif // CONFIG_BT_ENABLED #endif // CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE +#ifdef CONFIG_ENABLE_CHIP_SHELL +#include +#endif + #include using namespace chip; @@ -147,6 +151,9 @@ void Esp32AppServer::Init(AppDelegate * sAppDelegate) #if CHIP_DEVICE_CONFIG_ENABLE_WIFI sWiFiNetworkCommissioningInstance.Init(); +#ifdef CONFIG_ENABLE_CHIP_SHELL + chip::Shell::SetWiFiDriver(&(chip::DeviceLayer::NetworkCommissioning::ESPWiFiDriver::GetInstance())); +#endif #endif #if CHIP_DEVICE_CONFIG_ENABLE_ETHERNET sEthernetNetworkCommissioningInstance.Init(); From ca57b597260339b7843428abe5fd042cab3c32ea Mon Sep 17 00:00:00 2001 From: C Freeman Date: Tue, 2 Jul 2024 16:38:54 -0400 Subject: [PATCH 3/3] DM XMLs: Add ToT directory (#33789) * DM XMLs: Add ToT directory Adds a ToT and 1.3 directory for spec scrapes and adjusts the tests to allow either. NOTE: - The conformance test has NOT YET BEEN CHANGED to allow use of inprogress clusters. I want to do this in a separate PR - generator script has not yet been updated to auto-swap the spec branch, so this needs to be run once per directory with the appropriate spec root set to the appropriate checkout - md doc has not yet been updated to track ToT cluster and device type IDs. This will be done in a separate PR. * Fix ID generation * Restyled by autopep8 * Apply suggestions from code review --------- Co-authored-by: Restyled.io --- data_model/{ => 1.3}/clusters/ACL-Cluster.xml | 0 .../{ => 1.3}/clusters/AccountLogin.xml | 0 .../clusters/AdminCommissioningCluster.xml | 0 data_model/{ => 1.3}/clusters/AirQuality.xml | 0 data_model/{ => 1.3}/clusters/AlarmBase.xml | 0 .../{ => 1.3}/clusters/ApplicationBasic.xml | 0 .../clusters/ApplicationLauncher.xml | 0 data_model/{ => 1.3}/clusters/AudioOutput.xml | 0 .../clusters/BallastConfiguration.xml | 0 .../clusters/BasicInformationCluster.xml | 0 .../{ => 1.3}/clusters/Binding-Cluster.xml | 0 .../{ => 1.3}/clusters/BooleanState.xml | 0 .../clusters/BooleanStateConfiguration.xml | 0 data_model/{ => 1.3}/clusters/Channel.xml | 0 .../{ => 1.3}/clusters/ColorControl.xml | 0 .../clusters/ConcentrationMeasurement.xml | 0 .../{ => 1.3}/clusters/ContentAppObserver.xml | 0 .../{ => 1.3}/clusters/ContentControl.xml | 0 .../{ => 1.3}/clusters/ContentLauncher.xml | 0 .../{ => 1.3}/clusters/Descriptor-Cluster.xml | 0 .../clusters/DeviceEnergyManagement.xml | 0 .../clusters/DiagnosticLogsCluster.xml | 0 .../clusters/DiagnosticsEthernet.xml | 0 .../{ => 1.3}/clusters/DiagnosticsGeneral.xml | 0 .../clusters/DiagnosticsSoftware.xml | 0 .../{ => 1.3}/clusters/DiagnosticsThread.xml | 0 .../{ => 1.3}/clusters/DiagnosticsWiFi.xml | 0 .../{ => 1.3}/clusters/DishwasherAlarm.xml | 0 data_model/{ => 1.3}/clusters/DoorLock.xml | 0 .../clusters/ElectricalEnergyMeasurement.xml | 0 .../clusters/ElectricalPowerMeasurement.xml | 0 data_model/{ => 1.3}/clusters/EnergyEVSE.xml | 0 .../{ => 1.3}/clusters/EnergyPreference.xml | 0 data_model/{ => 1.3}/clusters/FanControl.xml | 0 .../{ => 1.3}/clusters/FlowMeasurement.xml | 0 .../clusters/GeneralCommissioningCluster.xml | 0 .../clusters/Group-Key-Management-Cluster.xml | 0 data_model/{ => 1.3}/clusters/Groups.xml | 0 .../{ => 1.3}/clusters/ICDManagement.xml | 0 data_model/{ => 1.3}/clusters/Identify.xml | 0 .../clusters/IlluminanceMeasurement.xml | 0 data_model/{ => 1.3}/clusters/KeypadInput.xml | 0 .../Label-Cluster-FixedLabelCluster.xml | 0 .../clusters/Label-Cluster-LabelCluster.xml | 0 .../Label-Cluster-UserLabelCluster.xml | 0 .../clusters/LaundryDryerControls.xml | 0 .../clusters/LaundryWasherControls.xml | 0 .../{ => 1.3}/clusters/LevelControl.xml | 0 .../clusters/LocalizationConfiguration.xml | 0 .../clusters/LocalizationTimeFormat.xml | 0 .../{ => 1.3}/clusters/LocalizationUnit.xml | 0 data_model/{ => 1.3}/clusters/LowPower.xml | 0 data_model/{ => 1.3}/clusters/MediaInput.xml | 0 .../{ => 1.3}/clusters/MediaPlayback.xml | 0 data_model/{ => 1.3}/clusters/Messages.xml | 0 .../clusters/MicrowaveOvenControl.xml | 0 data_model/{ => 1.3}/clusters/ModeBase.xml | 0 data_model/{ => 1.3}/clusters/ModeSelect.xml | 0 .../clusters/Mode_DeviceEnergyManagement.xml | 0 .../{ => 1.3}/clusters/Mode_Dishwasher.xml | 0 data_model/{ => 1.3}/clusters/Mode_EVSE.xml | 0 .../{ => 1.3}/clusters/Mode_LaundryWasher.xml | 0 .../{ => 1.3}/clusters/Mode_MicrowaveOven.xml | 0 data_model/{ => 1.3}/clusters/Mode_Oven.xml | 0 .../{ => 1.3}/clusters/Mode_RVCClean.xml | 0 data_model/{ => 1.3}/clusters/Mode_RVCRun.xml | 0 .../{ => 1.3}/clusters/Mode_Refrigerator.xml | 0 .../clusters/NetworkCommissioningCluster.xml | 0 data_model/{ => 1.3}/clusters/OTAProvider.xml | 0 .../{ => 1.3}/clusters/OTARequestor.xml | 0 .../{ => 1.3}/clusters/OccupancySensing.xml | 0 data_model/{ => 1.3}/clusters/OnOff.xml | 0 .../clusters/OperationalCredentialCluster.xml | 0 .../{ => 1.3}/clusters/OperationalState.xml | 0 .../clusters/OperationalState_Oven.xml | 0 .../clusters/OperationalState_RVC.xml | 0 .../{ => 1.3}/clusters/PowerSourceCluster.xml | 0 .../PowerSourceConfigurationCluster.xml | 0 .../{ => 1.3}/clusters/PowerTopology.xml | 0 .../clusters/PressureMeasurement.xml | 0 .../clusters/ProxyConfiguration-Cluster.xml | 0 .../clusters/ProxyDiscovery-Cluster.xml | 0 .../clusters/PumpConfigurationControl.xml | 0 .../{ => 1.3}/clusters/RefrigeratorAlarm.xml | 0 .../{ => 1.3}/clusters/ResourceMonitoring.xml | 0 data_model/{ => 1.3}/clusters/Scenes.xml | 0 .../{ => 1.3}/clusters/SmokeCOAlarm.xml | 0 data_model/{ => 1.3}/clusters/Switch.xml | 0 .../{ => 1.3}/clusters/TargetNavigator.xml | 0 .../{ => 1.3}/clusters/TemperatureControl.xml | 0 .../clusters/TemperatureMeasurement.xml | 0 data_model/{ => 1.3}/clusters/Thermostat.xml | 0 .../ThermostatUserInterfaceConfiguration.xml | 0 data_model/{ => 1.3}/clusters/TimeSync.xml | 0 .../clusters/ValidProxies-Cluster.xml | 0 .../clusters/ValveConfigurationControl.xml | 0 data_model/{ => 1.3}/clusters/WakeOnLAN.xml | 0 .../clusters/WaterContentMeasurement.xml | 0 .../{ => 1.3}/clusters/WindowCovering.xml | 0 .../bridge-clusters-ActionsCluster.xml | 0 ...s-BridgedDeviceBasicInformationCluster.xml | 0 .../{ => 1.3}/clusters/cluster_ids.json | 0 .../{ => 1.3}/device_types/Aggregator.xml | 0 .../{ => 1.3}/device_types/AirPurifier.xml | 0 .../device_types/AirQualitySensor.xml | 0 .../{ => 1.3}/device_types/BaseDeviceType.xml | 0 .../device_types/BasicVideoPlayer.xml | 0 .../{ => 1.3}/device_types/BridgedNode.xml | 0 .../device_types/CastingVideoClient.xml | 0 .../device_types/CastingVideoPlayer.xml | 0 .../device_types/ColorDimmerSwitch.xml | 0 .../device_types/ColorTemperatureLight.xml | 0 .../{ => 1.3}/device_types/ContactSensor.xml | 0 .../{ => 1.3}/device_types/ContentApp.xml | 0 .../{ => 1.3}/device_types/ControlBridge.xml | 0 .../{ => 1.3}/device_types/CookSurface.xml | 0 data_model/{ => 1.3}/device_types/Cooktop.xml | 0 .../device_types/DeviceEnergyManagement.xml | 0 .../{ => 1.3}/device_types/DimmableLight.xml | 0 .../device_types/DimmablePlug-InUnit.xml | 0 .../{ => 1.3}/device_types/DimmerSwitch.xml | 0 .../{ => 1.3}/device_types/Dishwasher.xml | 0 .../{ => 1.3}/device_types/DoorLock.xml | 0 .../device_types/DoorLockController.xml | 0 data_model/{ => 1.3}/device_types/EVSE.xml | 0 .../device_types/ElectricalSensor.xml | 0 .../device_types/ExtendedColorLight.xml | 0 .../{ => 1.3}/device_types/ExtractorHood.xml | 0 data_model/{ => 1.3}/device_types/Fan.xml | 0 .../{ => 1.3}/device_types/FlowSensor.xml | 0 .../{ => 1.3}/device_types/GenericSwitch.xml | 0 .../{ => 1.3}/device_types/HumiditySensor.xml | 0 .../{ => 1.3}/device_types/LaundryDryer.xml | 0 .../{ => 1.3}/device_types/LaundryWasher.xml | 0 .../{ => 1.3}/device_types/LightSensor.xml | 0 .../{ => 1.3}/device_types/MicrowaveOven.xml | 0 .../device_types/ModeSelectDeviceType.xml | 0 .../device_types/OccupancySensor.xml | 0 .../{ => 1.3}/device_types/OnOffLight.xml | 0 .../device_types/OnOffLightSwitch.xml | 0 .../device_types/OnOffPlug-inUnit.xml | 0 .../{ => 1.3}/device_types/OnOffSensor.xml | 0 .../{ => 1.3}/device_types/OtaProvider.xml | 0 .../{ => 1.3}/device_types/OtaRequestor.xml | 0 data_model/{ => 1.3}/device_types/Oven.xml | 0 .../{ => 1.3}/device_types/PowerSource.xml | 0 .../{ => 1.3}/device_types/PressureSensor.xml | 0 data_model/{ => 1.3}/device_types/Pump.xml | 0 .../{ => 1.3}/device_types/PumpController.xml | 0 .../{ => 1.3}/device_types/RainSensor.xml | 0 .../{ => 1.3}/device_types/Refrigerator.xml | 0 .../device_types/RoboticVacuumCleaner.xml | 0 .../device_types/RoomAirConditioner.xml | 0 .../device_types/RootNodeDeviceType.xml | 0 .../{ => 1.3}/device_types/SmokeCOAlarm.xml | 0 data_model/{ => 1.3}/device_types/Speaker.xml | 0 .../TemperatureControlledCabinet.xml | 0 .../device_types/TemperatureSensor.xml | 0 .../{ => 1.3}/device_types/Thermostat.xml | 0 .../device_types/VideoRemoteControl.xml | 0 .../device_types/WaterFreezeDetector.xml | 0 .../device_types/WaterLeakDetector.xml | 0 .../{ => 1.3}/device_types/WaterValve.xml | 0 .../{ => 1.3}/device_types/WindowCovering.xml | 0 .../device_types/WindowCoveringController.xml | 0 data_model/{ => 1.3}/scraper_version | 0 data_model/{ => 1.3}/spec_sha | 0 data_model/master/clusters/ACL-Cluster.xml | 252 ++ data_model/master/clusters/AccountLogin.xml | 118 + .../clusters/AdminCommissioningCluster.xml | 142 + data_model/master/clusters/AirQuality.xml | 122 + data_model/master/clusters/AlarmBase.xml | 134 + .../master/clusters/ApplicationBasic.xml | 139 + .../master/clusters/ApplicationLauncher.xml | 162 ++ data_model/master/clusters/AudioOutput.xml | 139 + .../master/clusters/BallastConfiguration.xml | 162 ++ .../clusters/BasicInformationCluster.xml | 364 +++ .../master/clusters/Binding-Cluster.xml | 105 + data_model/master/clusters/BooleanState.xml | 84 + .../clusters/BooleanStateConfiguration.xml | 220 ++ data_model/master/clusters/Channel.xml | 465 ++++ data_model/master/clusters/ColorControl.xml | 1168 +++++++++ .../clusters/CommissionerControlCluster.xml | 154 ++ .../clusters/ConcentrationMeasurement.xml | 264 ++ .../master/clusters/ContentAppObserver.xml | 106 + data_model/master/clusters/ContentControl.xml | 428 +++ .../master/clusters/ContentLauncher.xml | 374 +++ .../clusters/DemandResponseLoadControl.xml | 453 ++++ .../master/clusters/Descriptor-Cluster.xml | 125 + .../clusters/DeviceEnergyManagement.xml | 668 +++++ .../master/clusters/DiagnosticLogsCluster.xml | 136 + .../master/clusters/DiagnosticsEthernet.xml | 176 ++ .../master/clusters/DiagnosticsGeneral.xml | 374 +++ .../master/clusters/DiagnosticsSoftware.xml | 138 + .../master/clusters/DiagnosticsThread.xml | 698 +++++ .../master/clusters/DiagnosticsWiFi.xml | 258 ++ .../master/clusters/DishwasherAlarm.xml | 105 + data_model/master/clusters/DoorLock.xml | 2284 +++++++++++++++++ .../clusters/ElectricalEnergyMeasurement.xml | 224 ++ .../clusters/ElectricalPowerMeasurement.xml | 317 +++ data_model/master/clusters/EnergyCalendar.xml | 287 +++ data_model/master/clusters/EnergyEVSE.xml | 586 +++++ .../master/clusters/EnergyPreference.xml | 144 ++ data_model/master/clusters/EnergyPrice.xml | 233 ++ data_model/master/clusters/FanControl.xml | 300 +++ .../master/clusters/FlowMeasurement.xml | 95 + .../clusters/GeneralCommissioningCluster.xml | 254 ++ .../clusters/Group-Key-Management-Cluster.xml | 235 ++ data_model/master/clusters/Groups.xml | 197 ++ data_model/master/clusters/Humidistat.xml | 283 ++ data_model/master/clusters/ICDManagement.xml | 267 ++ data_model/master/clusters/Identify.xml | 155 ++ .../clusters/IlluminanceMeasurement.xml | 114 + .../clusters/JointFabricDatastoreCluster.xml | 435 ++++ .../master/clusters/JointFabricPKICluster.xml | 99 + data_model/master/clusters/KeypadInput.xml | 367 +++ .../Label-Cluster-FixedLabelCluster.xml | 77 + .../clusters/Label-Cluster-LabelCluster.xml | 88 + .../Label-Cluster-UserLabelCluster.xml | 78 + .../master/clusters/LaundryDryerControls.xml | 96 + .../master/clusters/LaundryWasherControls.xml | 134 + data_model/master/clusters/LevelControl.xml | 316 +++ .../clusters/LocalizationConfiguration.xml | 83 + .../clusters/LocalizationTimeFormat.xml | 148 ++ .../master/clusters/LocalizationUnit.xml | 93 + data_model/master/clusters/LowPower.xml | 74 + data_model/master/clusters/MediaInput.xml | 168 ++ data_model/master/clusters/MediaPlayback.xml | 475 ++++ data_model/master/clusters/Messages.xml | 333 +++ .../master/clusters/MicrowaveOvenControl.xml | 192 ++ data_model/master/clusters/ModeBase.xml | 158 ++ data_model/master/clusters/ModeSelect.xml | 148 ++ .../clusters/Mode_DeviceEnergyManagement.xml | 82 + .../master/clusters/Mode_Dishwasher.xml | 97 + data_model/master/clusters/Mode_EVSE.xml | 82 + .../master/clusters/Mode_LaundryWasher.xml | 97 + .../master/clusters/Mode_MicrowaveOven.xml | 90 + data_model/master/clusters/Mode_Oven.xml | 82 + data_model/master/clusters/Mode_RVCClean.xml | 98 + data_model/master/clusters/Mode_RVCRun.xml | 98 + .../master/clusters/Mode_Refrigerator.xml | 97 + .../master/clusters/Mode_WaterHeater.xml | 82 + .../clusters/NetworkCommissioningCluster.xml | 601 +++++ .../clusters/NetworkIdentityManagement.xml | 169 ++ data_model/master/clusters/OTAProvider.xml | 203 ++ data_model/master/clusters/OTARequestor.xml | 227 ++ .../master/clusters/OccupancySensing.xml | 418 +++ data_model/master/clusters/OnOff.xml | 238 ++ .../clusters/OperationalCredentialCluster.xml | 325 +++ .../master/clusters/OperationalState.xml | 224 ++ .../master/clusters/OperationalState_Oven.xml | 68 + .../master/clusters/OperationalState_RVC.xml | 126 + .../master/clusters/PowerSourceCluster.xml | 829 ++++++ .../PowerSourceConfigurationCluster.xml | 75 + data_model/master/clusters/PowerTopology.xml | 102 + .../master/clusters/PressureMeasurement.xml | 138 + .../clusters/ProxyConfiguration-Cluster.xml | 89 + .../clusters/ProxyDiscovery-Cluster.xml | 98 + .../clusters/PumpConfigurationControl.xml | 446 ++++ .../master/clusters/RefrigeratorAlarm.xml | 85 + .../master/clusters/ResourceMonitoring.xml | 175 ++ data_model/master/clusters/Scenes.xml | 401 +++ data_model/master/clusters/ServiceArea.xml | 231 ++ data_model/master/clusters/SmokeCOAlarm.xml | 308 +++ data_model/master/clusters/Switch.xml | 223 ++ .../master/clusters/TargetNavigator.xml | 142 + .../master/clusters/TemperatureControl.xml | 147 ++ .../clusters/TemperatureMeasurement.xml | 96 + data_model/master/clusters/Thermostat.xml | 1290 ++++++++++ .../ThermostatUserInterfaceConfiguration.xml | 122 + .../clusters/ThreadBorderRouterManagement.xml | 137 + .../clusters/ThreadNetworkDirectory.xml | 142 + data_model/master/clusters/TimeSync.xml | 411 +++ .../master/clusters/ValidProxies-Cluster.xml | 96 + .../clusters/ValveConfigurationControl.xml | 221 ++ data_model/master/clusters/WakeOnLAN.xml | 82 + .../clusters/WaterContentMeasurement.xml | 95 + .../master/clusters/WaterHeaterManagement.xml | 177 ++ .../master/clusters/WiFiNetworkManagement.xml | 89 + data_model/master/clusters/WindowCovering.xml | 700 +++++ .../bridge-clusters-ActionsCluster.xml | 380 +++ ...s-BridgedDeviceBasicInformationCluster.xml | 188 ++ ...e-clusters-EcosystemInformationCluster.xml | 136 + data_model/master/clusters/cluster_ids.json | 124 + data_model/master/device_types/Aggregator.xml | 72 + .../master/device_types/AirPurifier.xml | 85 + .../master/device_types/AirQualitySensor.xml | 108 + .../master/device_types/BaseDeviceType.xml | 90 + .../master/device_types/BasicVideoPlayer.xml | 107 + .../master/device_types/BatteryStorage.xml | 69 + .../master/device_types/BridgedNode.xml | 83 + .../device_types/CastingVideoClient.xml | 121 + .../device_types/CastingVideoPlayer.xml | 126 + .../master/device_types/ColorDimmerSwitch.xml | 92 + .../device_types/ColorTemperatureLight.xml | 140 + .../master/device_types/ContactSensor.xml | 76 + data_model/master/device_types/ContentApp.xml | 105 + .../master/device_types/ControlBridge.xml | 98 + .../master/device_types/CookSurface.xml | 80 + data_model/master/device_types/Cooktop.xml | 77 + .../device_types/DeviceEnergyManagement.xml | 77 + .../master/device_types/DimmableLight.xml | 126 + .../device_types/DimmablePlug-InUnit.xml | 127 + .../master/device_types/DimmerSwitch.xml | 89 + data_model/master/device_types/Dishwasher.xml | 99 + data_model/master/device_types/DoorLock.xml | 108 + .../device_types/DoorLockController.xml | 83 + data_model/master/device_types/EVSE.xml | 79 + .../master/device_types/ElectricalSensor.xml | 74 + .../master/device_types/EnergyTariff.xml | 64 + .../device_types/EnergyTariffCalendar.xml | 64 + .../device_types/ExtendedColorLight.xml | 152 ++ .../master/device_types/ExtractorHood.xml | 89 + data_model/master/device_types/Fan.xml | 89 + data_model/master/device_types/FlowSensor.xml | 78 + .../master/device_types/GenericSwitch.xml | 74 + data_model/master/device_types/HeatPump.xml | 72 + .../device_types/HumidifierDehumidifier.xml | 63 + .../master/device_types/HumiditySensor.xml | 78 + .../master/device_types/JointFabricAdmin.xml | 71 + .../master/device_types/LaundryDryer.xml | 99 + .../master/device_types/LaundryWasher.xml | 99 + .../master/device_types/LightSensor.xml | 79 + .../master/device_types/MicrowaveOven.xml | 94 + .../device_types/ModeSelectDeviceType.xml | 69 + .../master/device_types/NetworkInfraIntro.xml | 58 + .../device_types/NetworkInfraManager.xml | 75 + .../master/device_types/OccupancySensor.xml | 78 + data_model/master/device_types/OnOffLight.xml | 126 + .../master/device_types/OnOffLightSwitch.xml | 86 + .../master/device_types/OnOffPlug-inUnit.xml | 126 + .../master/device_types/OnOffSensor.xml | 92 + .../master/device_types/OtaProvider.xml | 71 + .../master/device_types/OtaRequestor.xml | 71 + data_model/master/device_types/Oven.xml | 70 + .../master/device_types/PowerSource.xml | 68 + .../master/device_types/PressureSensor.xml | 78 + data_model/master/device_types/Pump.xml | 110 + .../master/device_types/PumpController.xml | 101 + data_model/master/device_types/RainSensor.xml | 80 + .../master/device_types/Refrigerator.xml | 86 + .../device_types/RoboticVacuumCleaner.xml | 79 + .../device_types/RoomAirConditioner.xml | 107 + .../device_types/RootNodeDeviceType.xml | 169 ++ .../SecondaryNetworkInterface.xml | 83 + .../master/device_types/SmokeCOAlarm.xml | 84 + data_model/master/device_types/SolarPower.xml | 69 + data_model/master/device_types/Speaker.xml | 72 + .../TemperatureControlledCabinet.xml | 116 + .../master/device_types/TemperatureSensor.xml | 78 + data_model/master/device_types/Thermostat.xml | 148 ++ .../device_types/ThreadBorderRouter.xml | 72 + .../device_types/VideoRemoteControl.xml | 112 + .../device_types/WaterFreezeDetector.xml | 80 + .../master/device_types/WaterHeater.xml | 89 + .../master/device_types/WaterLeakDetector.xml | 80 + data_model/master/device_types/WaterValve.xml | 78 + .../master/device_types/WindowCovering.xml | 128 + .../device_types/WindowCoveringController.xml | 101 + data_model/master/scraper_version | 1 + data_model/master/spec_sha | 1 + scripts/spec_xml/generate_spec_xml.py | 11 +- src/python_testing/TestSpecParsingSupport.py | 26 +- src/python_testing/spec_parsing_support.py | 25 +- 364 files changed, 36150 insertions(+), 9 deletions(-) rename data_model/{ => 1.3}/clusters/ACL-Cluster.xml (100%) rename data_model/{ => 1.3}/clusters/AccountLogin.xml (100%) rename data_model/{ => 1.3}/clusters/AdminCommissioningCluster.xml (100%) rename data_model/{ => 1.3}/clusters/AirQuality.xml (100%) rename data_model/{ => 1.3}/clusters/AlarmBase.xml (100%) rename data_model/{ => 1.3}/clusters/ApplicationBasic.xml (100%) rename data_model/{ => 1.3}/clusters/ApplicationLauncher.xml (100%) rename data_model/{ => 1.3}/clusters/AudioOutput.xml (100%) rename data_model/{ => 1.3}/clusters/BallastConfiguration.xml (100%) rename data_model/{ => 1.3}/clusters/BasicInformationCluster.xml (100%) rename data_model/{ => 1.3}/clusters/Binding-Cluster.xml (100%) rename data_model/{ => 1.3}/clusters/BooleanState.xml (100%) rename data_model/{ => 1.3}/clusters/BooleanStateConfiguration.xml (100%) rename data_model/{ => 1.3}/clusters/Channel.xml (100%) rename data_model/{ => 1.3}/clusters/ColorControl.xml (100%) rename data_model/{ => 1.3}/clusters/ConcentrationMeasurement.xml (100%) rename data_model/{ => 1.3}/clusters/ContentAppObserver.xml (100%) rename data_model/{ => 1.3}/clusters/ContentControl.xml (100%) rename data_model/{ => 1.3}/clusters/ContentLauncher.xml (100%) rename data_model/{ => 1.3}/clusters/Descriptor-Cluster.xml (100%) rename data_model/{ => 1.3}/clusters/DeviceEnergyManagement.xml (100%) rename data_model/{ => 1.3}/clusters/DiagnosticLogsCluster.xml (100%) rename data_model/{ => 1.3}/clusters/DiagnosticsEthernet.xml (100%) rename data_model/{ => 1.3}/clusters/DiagnosticsGeneral.xml (100%) rename data_model/{ => 1.3}/clusters/DiagnosticsSoftware.xml (100%) rename data_model/{ => 1.3}/clusters/DiagnosticsThread.xml (100%) rename data_model/{ => 1.3}/clusters/DiagnosticsWiFi.xml (100%) rename data_model/{ => 1.3}/clusters/DishwasherAlarm.xml (100%) rename data_model/{ => 1.3}/clusters/DoorLock.xml (100%) rename data_model/{ => 1.3}/clusters/ElectricalEnergyMeasurement.xml (100%) rename data_model/{ => 1.3}/clusters/ElectricalPowerMeasurement.xml (100%) rename data_model/{ => 1.3}/clusters/EnergyEVSE.xml (100%) rename data_model/{ => 1.3}/clusters/EnergyPreference.xml (100%) rename data_model/{ => 1.3}/clusters/FanControl.xml (100%) rename data_model/{ => 1.3}/clusters/FlowMeasurement.xml (100%) rename data_model/{ => 1.3}/clusters/GeneralCommissioningCluster.xml (100%) rename data_model/{ => 1.3}/clusters/Group-Key-Management-Cluster.xml (100%) rename data_model/{ => 1.3}/clusters/Groups.xml (100%) rename data_model/{ => 1.3}/clusters/ICDManagement.xml (100%) rename data_model/{ => 1.3}/clusters/Identify.xml (100%) rename data_model/{ => 1.3}/clusters/IlluminanceMeasurement.xml (100%) rename data_model/{ => 1.3}/clusters/KeypadInput.xml (100%) rename data_model/{ => 1.3}/clusters/Label-Cluster-FixedLabelCluster.xml (100%) rename data_model/{ => 1.3}/clusters/Label-Cluster-LabelCluster.xml (100%) rename data_model/{ => 1.3}/clusters/Label-Cluster-UserLabelCluster.xml (100%) rename data_model/{ => 1.3}/clusters/LaundryDryerControls.xml (100%) rename data_model/{ => 1.3}/clusters/LaundryWasherControls.xml (100%) rename data_model/{ => 1.3}/clusters/LevelControl.xml (100%) rename data_model/{ => 1.3}/clusters/LocalizationConfiguration.xml (100%) rename data_model/{ => 1.3}/clusters/LocalizationTimeFormat.xml (100%) rename data_model/{ => 1.3}/clusters/LocalizationUnit.xml (100%) rename data_model/{ => 1.3}/clusters/LowPower.xml (100%) rename data_model/{ => 1.3}/clusters/MediaInput.xml (100%) rename data_model/{ => 1.3}/clusters/MediaPlayback.xml (100%) rename data_model/{ => 1.3}/clusters/Messages.xml (100%) rename data_model/{ => 1.3}/clusters/MicrowaveOvenControl.xml (100%) rename data_model/{ => 1.3}/clusters/ModeBase.xml (100%) rename data_model/{ => 1.3}/clusters/ModeSelect.xml (100%) rename data_model/{ => 1.3}/clusters/Mode_DeviceEnergyManagement.xml (100%) rename data_model/{ => 1.3}/clusters/Mode_Dishwasher.xml (100%) rename data_model/{ => 1.3}/clusters/Mode_EVSE.xml (100%) rename data_model/{ => 1.3}/clusters/Mode_LaundryWasher.xml (100%) rename data_model/{ => 1.3}/clusters/Mode_MicrowaveOven.xml (100%) rename data_model/{ => 1.3}/clusters/Mode_Oven.xml (100%) rename data_model/{ => 1.3}/clusters/Mode_RVCClean.xml (100%) rename data_model/{ => 1.3}/clusters/Mode_RVCRun.xml (100%) rename data_model/{ => 1.3}/clusters/Mode_Refrigerator.xml (100%) rename data_model/{ => 1.3}/clusters/NetworkCommissioningCluster.xml (100%) rename data_model/{ => 1.3}/clusters/OTAProvider.xml (100%) rename data_model/{ => 1.3}/clusters/OTARequestor.xml (100%) rename data_model/{ => 1.3}/clusters/OccupancySensing.xml (100%) rename data_model/{ => 1.3}/clusters/OnOff.xml (100%) rename data_model/{ => 1.3}/clusters/OperationalCredentialCluster.xml (100%) rename data_model/{ => 1.3}/clusters/OperationalState.xml (100%) rename data_model/{ => 1.3}/clusters/OperationalState_Oven.xml (100%) rename data_model/{ => 1.3}/clusters/OperationalState_RVC.xml (100%) rename data_model/{ => 1.3}/clusters/PowerSourceCluster.xml (100%) rename data_model/{ => 1.3}/clusters/PowerSourceConfigurationCluster.xml (100%) rename data_model/{ => 1.3}/clusters/PowerTopology.xml (100%) rename data_model/{ => 1.3}/clusters/PressureMeasurement.xml (100%) rename data_model/{ => 1.3}/clusters/ProxyConfiguration-Cluster.xml (100%) rename data_model/{ => 1.3}/clusters/ProxyDiscovery-Cluster.xml (100%) rename data_model/{ => 1.3}/clusters/PumpConfigurationControl.xml (100%) rename data_model/{ => 1.3}/clusters/RefrigeratorAlarm.xml (100%) rename data_model/{ => 1.3}/clusters/ResourceMonitoring.xml (100%) rename data_model/{ => 1.3}/clusters/Scenes.xml (100%) rename data_model/{ => 1.3}/clusters/SmokeCOAlarm.xml (100%) rename data_model/{ => 1.3}/clusters/Switch.xml (100%) rename data_model/{ => 1.3}/clusters/TargetNavigator.xml (100%) rename data_model/{ => 1.3}/clusters/TemperatureControl.xml (100%) rename data_model/{ => 1.3}/clusters/TemperatureMeasurement.xml (100%) rename data_model/{ => 1.3}/clusters/Thermostat.xml (100%) rename data_model/{ => 1.3}/clusters/ThermostatUserInterfaceConfiguration.xml (100%) rename data_model/{ => 1.3}/clusters/TimeSync.xml (100%) rename data_model/{ => 1.3}/clusters/ValidProxies-Cluster.xml (100%) rename data_model/{ => 1.3}/clusters/ValveConfigurationControl.xml (100%) rename data_model/{ => 1.3}/clusters/WakeOnLAN.xml (100%) rename data_model/{ => 1.3}/clusters/WaterContentMeasurement.xml (100%) rename data_model/{ => 1.3}/clusters/WindowCovering.xml (100%) rename data_model/{ => 1.3}/clusters/bridge-clusters-ActionsCluster.xml (100%) rename data_model/{ => 1.3}/clusters/bridge-clusters-BridgedDeviceBasicInformationCluster.xml (100%) rename data_model/{ => 1.3}/clusters/cluster_ids.json (100%) rename data_model/{ => 1.3}/device_types/Aggregator.xml (100%) rename data_model/{ => 1.3}/device_types/AirPurifier.xml (100%) rename data_model/{ => 1.3}/device_types/AirQualitySensor.xml (100%) rename data_model/{ => 1.3}/device_types/BaseDeviceType.xml (100%) rename data_model/{ => 1.3}/device_types/BasicVideoPlayer.xml (100%) rename data_model/{ => 1.3}/device_types/BridgedNode.xml (100%) rename data_model/{ => 1.3}/device_types/CastingVideoClient.xml (100%) rename data_model/{ => 1.3}/device_types/CastingVideoPlayer.xml (100%) rename data_model/{ => 1.3}/device_types/ColorDimmerSwitch.xml (100%) rename data_model/{ => 1.3}/device_types/ColorTemperatureLight.xml (100%) rename data_model/{ => 1.3}/device_types/ContactSensor.xml (100%) rename data_model/{ => 1.3}/device_types/ContentApp.xml (100%) rename data_model/{ => 1.3}/device_types/ControlBridge.xml (100%) rename data_model/{ => 1.3}/device_types/CookSurface.xml (100%) rename data_model/{ => 1.3}/device_types/Cooktop.xml (100%) rename data_model/{ => 1.3}/device_types/DeviceEnergyManagement.xml (100%) rename data_model/{ => 1.3}/device_types/DimmableLight.xml (100%) rename data_model/{ => 1.3}/device_types/DimmablePlug-InUnit.xml (100%) rename data_model/{ => 1.3}/device_types/DimmerSwitch.xml (100%) rename data_model/{ => 1.3}/device_types/Dishwasher.xml (100%) rename data_model/{ => 1.3}/device_types/DoorLock.xml (100%) rename data_model/{ => 1.3}/device_types/DoorLockController.xml (100%) rename data_model/{ => 1.3}/device_types/EVSE.xml (100%) rename data_model/{ => 1.3}/device_types/ElectricalSensor.xml (100%) rename data_model/{ => 1.3}/device_types/ExtendedColorLight.xml (100%) rename data_model/{ => 1.3}/device_types/ExtractorHood.xml (100%) rename data_model/{ => 1.3}/device_types/Fan.xml (100%) rename data_model/{ => 1.3}/device_types/FlowSensor.xml (100%) rename data_model/{ => 1.3}/device_types/GenericSwitch.xml (100%) rename data_model/{ => 1.3}/device_types/HumiditySensor.xml (100%) rename data_model/{ => 1.3}/device_types/LaundryDryer.xml (100%) rename data_model/{ => 1.3}/device_types/LaundryWasher.xml (100%) rename data_model/{ => 1.3}/device_types/LightSensor.xml (100%) rename data_model/{ => 1.3}/device_types/MicrowaveOven.xml (100%) rename data_model/{ => 1.3}/device_types/ModeSelectDeviceType.xml (100%) rename data_model/{ => 1.3}/device_types/OccupancySensor.xml (100%) rename data_model/{ => 1.3}/device_types/OnOffLight.xml (100%) rename data_model/{ => 1.3}/device_types/OnOffLightSwitch.xml (100%) rename data_model/{ => 1.3}/device_types/OnOffPlug-inUnit.xml (100%) rename data_model/{ => 1.3}/device_types/OnOffSensor.xml (100%) rename data_model/{ => 1.3}/device_types/OtaProvider.xml (100%) rename data_model/{ => 1.3}/device_types/OtaRequestor.xml (100%) rename data_model/{ => 1.3}/device_types/Oven.xml (100%) rename data_model/{ => 1.3}/device_types/PowerSource.xml (100%) rename data_model/{ => 1.3}/device_types/PressureSensor.xml (100%) rename data_model/{ => 1.3}/device_types/Pump.xml (100%) rename data_model/{ => 1.3}/device_types/PumpController.xml (100%) rename data_model/{ => 1.3}/device_types/RainSensor.xml (100%) rename data_model/{ => 1.3}/device_types/Refrigerator.xml (100%) rename data_model/{ => 1.3}/device_types/RoboticVacuumCleaner.xml (100%) rename data_model/{ => 1.3}/device_types/RoomAirConditioner.xml (100%) rename data_model/{ => 1.3}/device_types/RootNodeDeviceType.xml (100%) rename data_model/{ => 1.3}/device_types/SmokeCOAlarm.xml (100%) rename data_model/{ => 1.3}/device_types/Speaker.xml (100%) rename data_model/{ => 1.3}/device_types/TemperatureControlledCabinet.xml (100%) rename data_model/{ => 1.3}/device_types/TemperatureSensor.xml (100%) rename data_model/{ => 1.3}/device_types/Thermostat.xml (100%) rename data_model/{ => 1.3}/device_types/VideoRemoteControl.xml (100%) rename data_model/{ => 1.3}/device_types/WaterFreezeDetector.xml (100%) rename data_model/{ => 1.3}/device_types/WaterLeakDetector.xml (100%) rename data_model/{ => 1.3}/device_types/WaterValve.xml (100%) rename data_model/{ => 1.3}/device_types/WindowCovering.xml (100%) rename data_model/{ => 1.3}/device_types/WindowCoveringController.xml (100%) rename data_model/{ => 1.3}/scraper_version (100%) rename data_model/{ => 1.3}/spec_sha (100%) create mode 100644 data_model/master/clusters/ACL-Cluster.xml create mode 100644 data_model/master/clusters/AccountLogin.xml create mode 100644 data_model/master/clusters/AdminCommissioningCluster.xml create mode 100644 data_model/master/clusters/AirQuality.xml create mode 100644 data_model/master/clusters/AlarmBase.xml create mode 100644 data_model/master/clusters/ApplicationBasic.xml create mode 100644 data_model/master/clusters/ApplicationLauncher.xml create mode 100644 data_model/master/clusters/AudioOutput.xml create mode 100644 data_model/master/clusters/BallastConfiguration.xml create mode 100644 data_model/master/clusters/BasicInformationCluster.xml create mode 100644 data_model/master/clusters/Binding-Cluster.xml create mode 100644 data_model/master/clusters/BooleanState.xml create mode 100644 data_model/master/clusters/BooleanStateConfiguration.xml create mode 100644 data_model/master/clusters/Channel.xml create mode 100644 data_model/master/clusters/ColorControl.xml create mode 100644 data_model/master/clusters/CommissionerControlCluster.xml create mode 100644 data_model/master/clusters/ConcentrationMeasurement.xml create mode 100644 data_model/master/clusters/ContentAppObserver.xml create mode 100644 data_model/master/clusters/ContentControl.xml create mode 100644 data_model/master/clusters/ContentLauncher.xml create mode 100644 data_model/master/clusters/DemandResponseLoadControl.xml create mode 100644 data_model/master/clusters/Descriptor-Cluster.xml create mode 100644 data_model/master/clusters/DeviceEnergyManagement.xml create mode 100644 data_model/master/clusters/DiagnosticLogsCluster.xml create mode 100644 data_model/master/clusters/DiagnosticsEthernet.xml create mode 100644 data_model/master/clusters/DiagnosticsGeneral.xml create mode 100644 data_model/master/clusters/DiagnosticsSoftware.xml create mode 100644 data_model/master/clusters/DiagnosticsThread.xml create mode 100644 data_model/master/clusters/DiagnosticsWiFi.xml create mode 100644 data_model/master/clusters/DishwasherAlarm.xml create mode 100644 data_model/master/clusters/DoorLock.xml create mode 100644 data_model/master/clusters/ElectricalEnergyMeasurement.xml create mode 100644 data_model/master/clusters/ElectricalPowerMeasurement.xml create mode 100644 data_model/master/clusters/EnergyCalendar.xml create mode 100644 data_model/master/clusters/EnergyEVSE.xml create mode 100644 data_model/master/clusters/EnergyPreference.xml create mode 100644 data_model/master/clusters/EnergyPrice.xml create mode 100644 data_model/master/clusters/FanControl.xml create mode 100644 data_model/master/clusters/FlowMeasurement.xml create mode 100644 data_model/master/clusters/GeneralCommissioningCluster.xml create mode 100644 data_model/master/clusters/Group-Key-Management-Cluster.xml create mode 100644 data_model/master/clusters/Groups.xml create mode 100644 data_model/master/clusters/Humidistat.xml create mode 100644 data_model/master/clusters/ICDManagement.xml create mode 100644 data_model/master/clusters/Identify.xml create mode 100644 data_model/master/clusters/IlluminanceMeasurement.xml create mode 100644 data_model/master/clusters/JointFabricDatastoreCluster.xml create mode 100644 data_model/master/clusters/JointFabricPKICluster.xml create mode 100644 data_model/master/clusters/KeypadInput.xml create mode 100644 data_model/master/clusters/Label-Cluster-FixedLabelCluster.xml create mode 100644 data_model/master/clusters/Label-Cluster-LabelCluster.xml create mode 100644 data_model/master/clusters/Label-Cluster-UserLabelCluster.xml create mode 100644 data_model/master/clusters/LaundryDryerControls.xml create mode 100644 data_model/master/clusters/LaundryWasherControls.xml create mode 100644 data_model/master/clusters/LevelControl.xml create mode 100644 data_model/master/clusters/LocalizationConfiguration.xml create mode 100644 data_model/master/clusters/LocalizationTimeFormat.xml create mode 100644 data_model/master/clusters/LocalizationUnit.xml create mode 100644 data_model/master/clusters/LowPower.xml create mode 100644 data_model/master/clusters/MediaInput.xml create mode 100644 data_model/master/clusters/MediaPlayback.xml create mode 100644 data_model/master/clusters/Messages.xml create mode 100644 data_model/master/clusters/MicrowaveOvenControl.xml create mode 100644 data_model/master/clusters/ModeBase.xml create mode 100644 data_model/master/clusters/ModeSelect.xml create mode 100644 data_model/master/clusters/Mode_DeviceEnergyManagement.xml create mode 100644 data_model/master/clusters/Mode_Dishwasher.xml create mode 100644 data_model/master/clusters/Mode_EVSE.xml create mode 100644 data_model/master/clusters/Mode_LaundryWasher.xml create mode 100644 data_model/master/clusters/Mode_MicrowaveOven.xml create mode 100644 data_model/master/clusters/Mode_Oven.xml create mode 100644 data_model/master/clusters/Mode_RVCClean.xml create mode 100644 data_model/master/clusters/Mode_RVCRun.xml create mode 100644 data_model/master/clusters/Mode_Refrigerator.xml create mode 100644 data_model/master/clusters/Mode_WaterHeater.xml create mode 100644 data_model/master/clusters/NetworkCommissioningCluster.xml create mode 100644 data_model/master/clusters/NetworkIdentityManagement.xml create mode 100644 data_model/master/clusters/OTAProvider.xml create mode 100644 data_model/master/clusters/OTARequestor.xml create mode 100644 data_model/master/clusters/OccupancySensing.xml create mode 100644 data_model/master/clusters/OnOff.xml create mode 100644 data_model/master/clusters/OperationalCredentialCluster.xml create mode 100644 data_model/master/clusters/OperationalState.xml create mode 100644 data_model/master/clusters/OperationalState_Oven.xml create mode 100644 data_model/master/clusters/OperationalState_RVC.xml create mode 100644 data_model/master/clusters/PowerSourceCluster.xml create mode 100644 data_model/master/clusters/PowerSourceConfigurationCluster.xml create mode 100644 data_model/master/clusters/PowerTopology.xml create mode 100644 data_model/master/clusters/PressureMeasurement.xml create mode 100644 data_model/master/clusters/ProxyConfiguration-Cluster.xml create mode 100644 data_model/master/clusters/ProxyDiscovery-Cluster.xml create mode 100644 data_model/master/clusters/PumpConfigurationControl.xml create mode 100644 data_model/master/clusters/RefrigeratorAlarm.xml create mode 100644 data_model/master/clusters/ResourceMonitoring.xml create mode 100644 data_model/master/clusters/Scenes.xml create mode 100644 data_model/master/clusters/ServiceArea.xml create mode 100644 data_model/master/clusters/SmokeCOAlarm.xml create mode 100644 data_model/master/clusters/Switch.xml create mode 100644 data_model/master/clusters/TargetNavigator.xml create mode 100644 data_model/master/clusters/TemperatureControl.xml create mode 100644 data_model/master/clusters/TemperatureMeasurement.xml create mode 100644 data_model/master/clusters/Thermostat.xml create mode 100644 data_model/master/clusters/ThermostatUserInterfaceConfiguration.xml create mode 100644 data_model/master/clusters/ThreadBorderRouterManagement.xml create mode 100644 data_model/master/clusters/ThreadNetworkDirectory.xml create mode 100644 data_model/master/clusters/TimeSync.xml create mode 100644 data_model/master/clusters/ValidProxies-Cluster.xml create mode 100644 data_model/master/clusters/ValveConfigurationControl.xml create mode 100644 data_model/master/clusters/WakeOnLAN.xml create mode 100644 data_model/master/clusters/WaterContentMeasurement.xml create mode 100644 data_model/master/clusters/WaterHeaterManagement.xml create mode 100644 data_model/master/clusters/WiFiNetworkManagement.xml create mode 100644 data_model/master/clusters/WindowCovering.xml create mode 100644 data_model/master/clusters/bridge-clusters-ActionsCluster.xml create mode 100644 data_model/master/clusters/bridge-clusters-BridgedDeviceBasicInformationCluster.xml create mode 100644 data_model/master/clusters/bridge-clusters-EcosystemInformationCluster.xml create mode 100644 data_model/master/clusters/cluster_ids.json create mode 100644 data_model/master/device_types/Aggregator.xml create mode 100644 data_model/master/device_types/AirPurifier.xml create mode 100644 data_model/master/device_types/AirQualitySensor.xml create mode 100644 data_model/master/device_types/BaseDeviceType.xml create mode 100644 data_model/master/device_types/BasicVideoPlayer.xml create mode 100644 data_model/master/device_types/BatteryStorage.xml create mode 100644 data_model/master/device_types/BridgedNode.xml create mode 100644 data_model/master/device_types/CastingVideoClient.xml create mode 100644 data_model/master/device_types/CastingVideoPlayer.xml create mode 100644 data_model/master/device_types/ColorDimmerSwitch.xml create mode 100644 data_model/master/device_types/ColorTemperatureLight.xml create mode 100644 data_model/master/device_types/ContactSensor.xml create mode 100644 data_model/master/device_types/ContentApp.xml create mode 100644 data_model/master/device_types/ControlBridge.xml create mode 100644 data_model/master/device_types/CookSurface.xml create mode 100644 data_model/master/device_types/Cooktop.xml create mode 100644 data_model/master/device_types/DeviceEnergyManagement.xml create mode 100644 data_model/master/device_types/DimmableLight.xml create mode 100644 data_model/master/device_types/DimmablePlug-InUnit.xml create mode 100644 data_model/master/device_types/DimmerSwitch.xml create mode 100644 data_model/master/device_types/Dishwasher.xml create mode 100644 data_model/master/device_types/DoorLock.xml create mode 100644 data_model/master/device_types/DoorLockController.xml create mode 100644 data_model/master/device_types/EVSE.xml create mode 100644 data_model/master/device_types/ElectricalSensor.xml create mode 100644 data_model/master/device_types/EnergyTariff.xml create mode 100644 data_model/master/device_types/EnergyTariffCalendar.xml create mode 100644 data_model/master/device_types/ExtendedColorLight.xml create mode 100644 data_model/master/device_types/ExtractorHood.xml create mode 100644 data_model/master/device_types/Fan.xml create mode 100644 data_model/master/device_types/FlowSensor.xml create mode 100644 data_model/master/device_types/GenericSwitch.xml create mode 100644 data_model/master/device_types/HeatPump.xml create mode 100644 data_model/master/device_types/HumidifierDehumidifier.xml create mode 100644 data_model/master/device_types/HumiditySensor.xml create mode 100644 data_model/master/device_types/JointFabricAdmin.xml create mode 100644 data_model/master/device_types/LaundryDryer.xml create mode 100644 data_model/master/device_types/LaundryWasher.xml create mode 100644 data_model/master/device_types/LightSensor.xml create mode 100644 data_model/master/device_types/MicrowaveOven.xml create mode 100644 data_model/master/device_types/ModeSelectDeviceType.xml create mode 100644 data_model/master/device_types/NetworkInfraIntro.xml create mode 100644 data_model/master/device_types/NetworkInfraManager.xml create mode 100644 data_model/master/device_types/OccupancySensor.xml create mode 100644 data_model/master/device_types/OnOffLight.xml create mode 100644 data_model/master/device_types/OnOffLightSwitch.xml create mode 100644 data_model/master/device_types/OnOffPlug-inUnit.xml create mode 100644 data_model/master/device_types/OnOffSensor.xml create mode 100644 data_model/master/device_types/OtaProvider.xml create mode 100644 data_model/master/device_types/OtaRequestor.xml create mode 100644 data_model/master/device_types/Oven.xml create mode 100644 data_model/master/device_types/PowerSource.xml create mode 100644 data_model/master/device_types/PressureSensor.xml create mode 100644 data_model/master/device_types/Pump.xml create mode 100644 data_model/master/device_types/PumpController.xml create mode 100644 data_model/master/device_types/RainSensor.xml create mode 100644 data_model/master/device_types/Refrigerator.xml create mode 100644 data_model/master/device_types/RoboticVacuumCleaner.xml create mode 100644 data_model/master/device_types/RoomAirConditioner.xml create mode 100644 data_model/master/device_types/RootNodeDeviceType.xml create mode 100644 data_model/master/device_types/SecondaryNetworkInterface.xml create mode 100644 data_model/master/device_types/SmokeCOAlarm.xml create mode 100644 data_model/master/device_types/SolarPower.xml create mode 100644 data_model/master/device_types/Speaker.xml create mode 100644 data_model/master/device_types/TemperatureControlledCabinet.xml create mode 100644 data_model/master/device_types/TemperatureSensor.xml create mode 100644 data_model/master/device_types/Thermostat.xml create mode 100644 data_model/master/device_types/ThreadBorderRouter.xml create mode 100644 data_model/master/device_types/VideoRemoteControl.xml create mode 100644 data_model/master/device_types/WaterFreezeDetector.xml create mode 100644 data_model/master/device_types/WaterHeater.xml create mode 100644 data_model/master/device_types/WaterLeakDetector.xml create mode 100644 data_model/master/device_types/WaterValve.xml create mode 100644 data_model/master/device_types/WindowCovering.xml create mode 100644 data_model/master/device_types/WindowCoveringController.xml create mode 100644 data_model/master/scraper_version create mode 100644 data_model/master/spec_sha diff --git a/data_model/clusters/ACL-Cluster.xml b/data_model/1.3/clusters/ACL-Cluster.xml similarity index 100% rename from data_model/clusters/ACL-Cluster.xml rename to data_model/1.3/clusters/ACL-Cluster.xml diff --git a/data_model/clusters/AccountLogin.xml b/data_model/1.3/clusters/AccountLogin.xml similarity index 100% rename from data_model/clusters/AccountLogin.xml rename to data_model/1.3/clusters/AccountLogin.xml diff --git a/data_model/clusters/AdminCommissioningCluster.xml b/data_model/1.3/clusters/AdminCommissioningCluster.xml similarity index 100% rename from data_model/clusters/AdminCommissioningCluster.xml rename to data_model/1.3/clusters/AdminCommissioningCluster.xml diff --git a/data_model/clusters/AirQuality.xml b/data_model/1.3/clusters/AirQuality.xml similarity index 100% rename from data_model/clusters/AirQuality.xml rename to data_model/1.3/clusters/AirQuality.xml diff --git a/data_model/clusters/AlarmBase.xml b/data_model/1.3/clusters/AlarmBase.xml similarity index 100% rename from data_model/clusters/AlarmBase.xml rename to data_model/1.3/clusters/AlarmBase.xml diff --git a/data_model/clusters/ApplicationBasic.xml b/data_model/1.3/clusters/ApplicationBasic.xml similarity index 100% rename from data_model/clusters/ApplicationBasic.xml rename to data_model/1.3/clusters/ApplicationBasic.xml diff --git a/data_model/clusters/ApplicationLauncher.xml b/data_model/1.3/clusters/ApplicationLauncher.xml similarity index 100% rename from data_model/clusters/ApplicationLauncher.xml rename to data_model/1.3/clusters/ApplicationLauncher.xml diff --git a/data_model/clusters/AudioOutput.xml b/data_model/1.3/clusters/AudioOutput.xml similarity index 100% rename from data_model/clusters/AudioOutput.xml rename to data_model/1.3/clusters/AudioOutput.xml diff --git a/data_model/clusters/BallastConfiguration.xml b/data_model/1.3/clusters/BallastConfiguration.xml similarity index 100% rename from data_model/clusters/BallastConfiguration.xml rename to data_model/1.3/clusters/BallastConfiguration.xml diff --git a/data_model/clusters/BasicInformationCluster.xml b/data_model/1.3/clusters/BasicInformationCluster.xml similarity index 100% rename from data_model/clusters/BasicInformationCluster.xml rename to data_model/1.3/clusters/BasicInformationCluster.xml diff --git a/data_model/clusters/Binding-Cluster.xml b/data_model/1.3/clusters/Binding-Cluster.xml similarity index 100% rename from data_model/clusters/Binding-Cluster.xml rename to data_model/1.3/clusters/Binding-Cluster.xml diff --git a/data_model/clusters/BooleanState.xml b/data_model/1.3/clusters/BooleanState.xml similarity index 100% rename from data_model/clusters/BooleanState.xml rename to data_model/1.3/clusters/BooleanState.xml diff --git a/data_model/clusters/BooleanStateConfiguration.xml b/data_model/1.3/clusters/BooleanStateConfiguration.xml similarity index 100% rename from data_model/clusters/BooleanStateConfiguration.xml rename to data_model/1.3/clusters/BooleanStateConfiguration.xml diff --git a/data_model/clusters/Channel.xml b/data_model/1.3/clusters/Channel.xml similarity index 100% rename from data_model/clusters/Channel.xml rename to data_model/1.3/clusters/Channel.xml diff --git a/data_model/clusters/ColorControl.xml b/data_model/1.3/clusters/ColorControl.xml similarity index 100% rename from data_model/clusters/ColorControl.xml rename to data_model/1.3/clusters/ColorControl.xml diff --git a/data_model/clusters/ConcentrationMeasurement.xml b/data_model/1.3/clusters/ConcentrationMeasurement.xml similarity index 100% rename from data_model/clusters/ConcentrationMeasurement.xml rename to data_model/1.3/clusters/ConcentrationMeasurement.xml diff --git a/data_model/clusters/ContentAppObserver.xml b/data_model/1.3/clusters/ContentAppObserver.xml similarity index 100% rename from data_model/clusters/ContentAppObserver.xml rename to data_model/1.3/clusters/ContentAppObserver.xml diff --git a/data_model/clusters/ContentControl.xml b/data_model/1.3/clusters/ContentControl.xml similarity index 100% rename from data_model/clusters/ContentControl.xml rename to data_model/1.3/clusters/ContentControl.xml diff --git a/data_model/clusters/ContentLauncher.xml b/data_model/1.3/clusters/ContentLauncher.xml similarity index 100% rename from data_model/clusters/ContentLauncher.xml rename to data_model/1.3/clusters/ContentLauncher.xml diff --git a/data_model/clusters/Descriptor-Cluster.xml b/data_model/1.3/clusters/Descriptor-Cluster.xml similarity index 100% rename from data_model/clusters/Descriptor-Cluster.xml rename to data_model/1.3/clusters/Descriptor-Cluster.xml diff --git a/data_model/clusters/DeviceEnergyManagement.xml b/data_model/1.3/clusters/DeviceEnergyManagement.xml similarity index 100% rename from data_model/clusters/DeviceEnergyManagement.xml rename to data_model/1.3/clusters/DeviceEnergyManagement.xml diff --git a/data_model/clusters/DiagnosticLogsCluster.xml b/data_model/1.3/clusters/DiagnosticLogsCluster.xml similarity index 100% rename from data_model/clusters/DiagnosticLogsCluster.xml rename to data_model/1.3/clusters/DiagnosticLogsCluster.xml diff --git a/data_model/clusters/DiagnosticsEthernet.xml b/data_model/1.3/clusters/DiagnosticsEthernet.xml similarity index 100% rename from data_model/clusters/DiagnosticsEthernet.xml rename to data_model/1.3/clusters/DiagnosticsEthernet.xml diff --git a/data_model/clusters/DiagnosticsGeneral.xml b/data_model/1.3/clusters/DiagnosticsGeneral.xml similarity index 100% rename from data_model/clusters/DiagnosticsGeneral.xml rename to data_model/1.3/clusters/DiagnosticsGeneral.xml diff --git a/data_model/clusters/DiagnosticsSoftware.xml b/data_model/1.3/clusters/DiagnosticsSoftware.xml similarity index 100% rename from data_model/clusters/DiagnosticsSoftware.xml rename to data_model/1.3/clusters/DiagnosticsSoftware.xml diff --git a/data_model/clusters/DiagnosticsThread.xml b/data_model/1.3/clusters/DiagnosticsThread.xml similarity index 100% rename from data_model/clusters/DiagnosticsThread.xml rename to data_model/1.3/clusters/DiagnosticsThread.xml diff --git a/data_model/clusters/DiagnosticsWiFi.xml b/data_model/1.3/clusters/DiagnosticsWiFi.xml similarity index 100% rename from data_model/clusters/DiagnosticsWiFi.xml rename to data_model/1.3/clusters/DiagnosticsWiFi.xml diff --git a/data_model/clusters/DishwasherAlarm.xml b/data_model/1.3/clusters/DishwasherAlarm.xml similarity index 100% rename from data_model/clusters/DishwasherAlarm.xml rename to data_model/1.3/clusters/DishwasherAlarm.xml diff --git a/data_model/clusters/DoorLock.xml b/data_model/1.3/clusters/DoorLock.xml similarity index 100% rename from data_model/clusters/DoorLock.xml rename to data_model/1.3/clusters/DoorLock.xml diff --git a/data_model/clusters/ElectricalEnergyMeasurement.xml b/data_model/1.3/clusters/ElectricalEnergyMeasurement.xml similarity index 100% rename from data_model/clusters/ElectricalEnergyMeasurement.xml rename to data_model/1.3/clusters/ElectricalEnergyMeasurement.xml diff --git a/data_model/clusters/ElectricalPowerMeasurement.xml b/data_model/1.3/clusters/ElectricalPowerMeasurement.xml similarity index 100% rename from data_model/clusters/ElectricalPowerMeasurement.xml rename to data_model/1.3/clusters/ElectricalPowerMeasurement.xml diff --git a/data_model/clusters/EnergyEVSE.xml b/data_model/1.3/clusters/EnergyEVSE.xml similarity index 100% rename from data_model/clusters/EnergyEVSE.xml rename to data_model/1.3/clusters/EnergyEVSE.xml diff --git a/data_model/clusters/EnergyPreference.xml b/data_model/1.3/clusters/EnergyPreference.xml similarity index 100% rename from data_model/clusters/EnergyPreference.xml rename to data_model/1.3/clusters/EnergyPreference.xml diff --git a/data_model/clusters/FanControl.xml b/data_model/1.3/clusters/FanControl.xml similarity index 100% rename from data_model/clusters/FanControl.xml rename to data_model/1.3/clusters/FanControl.xml diff --git a/data_model/clusters/FlowMeasurement.xml b/data_model/1.3/clusters/FlowMeasurement.xml similarity index 100% rename from data_model/clusters/FlowMeasurement.xml rename to data_model/1.3/clusters/FlowMeasurement.xml diff --git a/data_model/clusters/GeneralCommissioningCluster.xml b/data_model/1.3/clusters/GeneralCommissioningCluster.xml similarity index 100% rename from data_model/clusters/GeneralCommissioningCluster.xml rename to data_model/1.3/clusters/GeneralCommissioningCluster.xml diff --git a/data_model/clusters/Group-Key-Management-Cluster.xml b/data_model/1.3/clusters/Group-Key-Management-Cluster.xml similarity index 100% rename from data_model/clusters/Group-Key-Management-Cluster.xml rename to data_model/1.3/clusters/Group-Key-Management-Cluster.xml diff --git a/data_model/clusters/Groups.xml b/data_model/1.3/clusters/Groups.xml similarity index 100% rename from data_model/clusters/Groups.xml rename to data_model/1.3/clusters/Groups.xml diff --git a/data_model/clusters/ICDManagement.xml b/data_model/1.3/clusters/ICDManagement.xml similarity index 100% rename from data_model/clusters/ICDManagement.xml rename to data_model/1.3/clusters/ICDManagement.xml diff --git a/data_model/clusters/Identify.xml b/data_model/1.3/clusters/Identify.xml similarity index 100% rename from data_model/clusters/Identify.xml rename to data_model/1.3/clusters/Identify.xml diff --git a/data_model/clusters/IlluminanceMeasurement.xml b/data_model/1.3/clusters/IlluminanceMeasurement.xml similarity index 100% rename from data_model/clusters/IlluminanceMeasurement.xml rename to data_model/1.3/clusters/IlluminanceMeasurement.xml diff --git a/data_model/clusters/KeypadInput.xml b/data_model/1.3/clusters/KeypadInput.xml similarity index 100% rename from data_model/clusters/KeypadInput.xml rename to data_model/1.3/clusters/KeypadInput.xml diff --git a/data_model/clusters/Label-Cluster-FixedLabelCluster.xml b/data_model/1.3/clusters/Label-Cluster-FixedLabelCluster.xml similarity index 100% rename from data_model/clusters/Label-Cluster-FixedLabelCluster.xml rename to data_model/1.3/clusters/Label-Cluster-FixedLabelCluster.xml diff --git a/data_model/clusters/Label-Cluster-LabelCluster.xml b/data_model/1.3/clusters/Label-Cluster-LabelCluster.xml similarity index 100% rename from data_model/clusters/Label-Cluster-LabelCluster.xml rename to data_model/1.3/clusters/Label-Cluster-LabelCluster.xml diff --git a/data_model/clusters/Label-Cluster-UserLabelCluster.xml b/data_model/1.3/clusters/Label-Cluster-UserLabelCluster.xml similarity index 100% rename from data_model/clusters/Label-Cluster-UserLabelCluster.xml rename to data_model/1.3/clusters/Label-Cluster-UserLabelCluster.xml diff --git a/data_model/clusters/LaundryDryerControls.xml b/data_model/1.3/clusters/LaundryDryerControls.xml similarity index 100% rename from data_model/clusters/LaundryDryerControls.xml rename to data_model/1.3/clusters/LaundryDryerControls.xml diff --git a/data_model/clusters/LaundryWasherControls.xml b/data_model/1.3/clusters/LaundryWasherControls.xml similarity index 100% rename from data_model/clusters/LaundryWasherControls.xml rename to data_model/1.3/clusters/LaundryWasherControls.xml diff --git a/data_model/clusters/LevelControl.xml b/data_model/1.3/clusters/LevelControl.xml similarity index 100% rename from data_model/clusters/LevelControl.xml rename to data_model/1.3/clusters/LevelControl.xml diff --git a/data_model/clusters/LocalizationConfiguration.xml b/data_model/1.3/clusters/LocalizationConfiguration.xml similarity index 100% rename from data_model/clusters/LocalizationConfiguration.xml rename to data_model/1.3/clusters/LocalizationConfiguration.xml diff --git a/data_model/clusters/LocalizationTimeFormat.xml b/data_model/1.3/clusters/LocalizationTimeFormat.xml similarity index 100% rename from data_model/clusters/LocalizationTimeFormat.xml rename to data_model/1.3/clusters/LocalizationTimeFormat.xml diff --git a/data_model/clusters/LocalizationUnit.xml b/data_model/1.3/clusters/LocalizationUnit.xml similarity index 100% rename from data_model/clusters/LocalizationUnit.xml rename to data_model/1.3/clusters/LocalizationUnit.xml diff --git a/data_model/clusters/LowPower.xml b/data_model/1.3/clusters/LowPower.xml similarity index 100% rename from data_model/clusters/LowPower.xml rename to data_model/1.3/clusters/LowPower.xml diff --git a/data_model/clusters/MediaInput.xml b/data_model/1.3/clusters/MediaInput.xml similarity index 100% rename from data_model/clusters/MediaInput.xml rename to data_model/1.3/clusters/MediaInput.xml diff --git a/data_model/clusters/MediaPlayback.xml b/data_model/1.3/clusters/MediaPlayback.xml similarity index 100% rename from data_model/clusters/MediaPlayback.xml rename to data_model/1.3/clusters/MediaPlayback.xml diff --git a/data_model/clusters/Messages.xml b/data_model/1.3/clusters/Messages.xml similarity index 100% rename from data_model/clusters/Messages.xml rename to data_model/1.3/clusters/Messages.xml diff --git a/data_model/clusters/MicrowaveOvenControl.xml b/data_model/1.3/clusters/MicrowaveOvenControl.xml similarity index 100% rename from data_model/clusters/MicrowaveOvenControl.xml rename to data_model/1.3/clusters/MicrowaveOvenControl.xml diff --git a/data_model/clusters/ModeBase.xml b/data_model/1.3/clusters/ModeBase.xml similarity index 100% rename from data_model/clusters/ModeBase.xml rename to data_model/1.3/clusters/ModeBase.xml diff --git a/data_model/clusters/ModeSelect.xml b/data_model/1.3/clusters/ModeSelect.xml similarity index 100% rename from data_model/clusters/ModeSelect.xml rename to data_model/1.3/clusters/ModeSelect.xml diff --git a/data_model/clusters/Mode_DeviceEnergyManagement.xml b/data_model/1.3/clusters/Mode_DeviceEnergyManagement.xml similarity index 100% rename from data_model/clusters/Mode_DeviceEnergyManagement.xml rename to data_model/1.3/clusters/Mode_DeviceEnergyManagement.xml diff --git a/data_model/clusters/Mode_Dishwasher.xml b/data_model/1.3/clusters/Mode_Dishwasher.xml similarity index 100% rename from data_model/clusters/Mode_Dishwasher.xml rename to data_model/1.3/clusters/Mode_Dishwasher.xml diff --git a/data_model/clusters/Mode_EVSE.xml b/data_model/1.3/clusters/Mode_EVSE.xml similarity index 100% rename from data_model/clusters/Mode_EVSE.xml rename to data_model/1.3/clusters/Mode_EVSE.xml diff --git a/data_model/clusters/Mode_LaundryWasher.xml b/data_model/1.3/clusters/Mode_LaundryWasher.xml similarity index 100% rename from data_model/clusters/Mode_LaundryWasher.xml rename to data_model/1.3/clusters/Mode_LaundryWasher.xml diff --git a/data_model/clusters/Mode_MicrowaveOven.xml b/data_model/1.3/clusters/Mode_MicrowaveOven.xml similarity index 100% rename from data_model/clusters/Mode_MicrowaveOven.xml rename to data_model/1.3/clusters/Mode_MicrowaveOven.xml diff --git a/data_model/clusters/Mode_Oven.xml b/data_model/1.3/clusters/Mode_Oven.xml similarity index 100% rename from data_model/clusters/Mode_Oven.xml rename to data_model/1.3/clusters/Mode_Oven.xml diff --git a/data_model/clusters/Mode_RVCClean.xml b/data_model/1.3/clusters/Mode_RVCClean.xml similarity index 100% rename from data_model/clusters/Mode_RVCClean.xml rename to data_model/1.3/clusters/Mode_RVCClean.xml diff --git a/data_model/clusters/Mode_RVCRun.xml b/data_model/1.3/clusters/Mode_RVCRun.xml similarity index 100% rename from data_model/clusters/Mode_RVCRun.xml rename to data_model/1.3/clusters/Mode_RVCRun.xml diff --git a/data_model/clusters/Mode_Refrigerator.xml b/data_model/1.3/clusters/Mode_Refrigerator.xml similarity index 100% rename from data_model/clusters/Mode_Refrigerator.xml rename to data_model/1.3/clusters/Mode_Refrigerator.xml diff --git a/data_model/clusters/NetworkCommissioningCluster.xml b/data_model/1.3/clusters/NetworkCommissioningCluster.xml similarity index 100% rename from data_model/clusters/NetworkCommissioningCluster.xml rename to data_model/1.3/clusters/NetworkCommissioningCluster.xml diff --git a/data_model/clusters/OTAProvider.xml b/data_model/1.3/clusters/OTAProvider.xml similarity index 100% rename from data_model/clusters/OTAProvider.xml rename to data_model/1.3/clusters/OTAProvider.xml diff --git a/data_model/clusters/OTARequestor.xml b/data_model/1.3/clusters/OTARequestor.xml similarity index 100% rename from data_model/clusters/OTARequestor.xml rename to data_model/1.3/clusters/OTARequestor.xml diff --git a/data_model/clusters/OccupancySensing.xml b/data_model/1.3/clusters/OccupancySensing.xml similarity index 100% rename from data_model/clusters/OccupancySensing.xml rename to data_model/1.3/clusters/OccupancySensing.xml diff --git a/data_model/clusters/OnOff.xml b/data_model/1.3/clusters/OnOff.xml similarity index 100% rename from data_model/clusters/OnOff.xml rename to data_model/1.3/clusters/OnOff.xml diff --git a/data_model/clusters/OperationalCredentialCluster.xml b/data_model/1.3/clusters/OperationalCredentialCluster.xml similarity index 100% rename from data_model/clusters/OperationalCredentialCluster.xml rename to data_model/1.3/clusters/OperationalCredentialCluster.xml diff --git a/data_model/clusters/OperationalState.xml b/data_model/1.3/clusters/OperationalState.xml similarity index 100% rename from data_model/clusters/OperationalState.xml rename to data_model/1.3/clusters/OperationalState.xml diff --git a/data_model/clusters/OperationalState_Oven.xml b/data_model/1.3/clusters/OperationalState_Oven.xml similarity index 100% rename from data_model/clusters/OperationalState_Oven.xml rename to data_model/1.3/clusters/OperationalState_Oven.xml diff --git a/data_model/clusters/OperationalState_RVC.xml b/data_model/1.3/clusters/OperationalState_RVC.xml similarity index 100% rename from data_model/clusters/OperationalState_RVC.xml rename to data_model/1.3/clusters/OperationalState_RVC.xml diff --git a/data_model/clusters/PowerSourceCluster.xml b/data_model/1.3/clusters/PowerSourceCluster.xml similarity index 100% rename from data_model/clusters/PowerSourceCluster.xml rename to data_model/1.3/clusters/PowerSourceCluster.xml diff --git a/data_model/clusters/PowerSourceConfigurationCluster.xml b/data_model/1.3/clusters/PowerSourceConfigurationCluster.xml similarity index 100% rename from data_model/clusters/PowerSourceConfigurationCluster.xml rename to data_model/1.3/clusters/PowerSourceConfigurationCluster.xml diff --git a/data_model/clusters/PowerTopology.xml b/data_model/1.3/clusters/PowerTopology.xml similarity index 100% rename from data_model/clusters/PowerTopology.xml rename to data_model/1.3/clusters/PowerTopology.xml diff --git a/data_model/clusters/PressureMeasurement.xml b/data_model/1.3/clusters/PressureMeasurement.xml similarity index 100% rename from data_model/clusters/PressureMeasurement.xml rename to data_model/1.3/clusters/PressureMeasurement.xml diff --git a/data_model/clusters/ProxyConfiguration-Cluster.xml b/data_model/1.3/clusters/ProxyConfiguration-Cluster.xml similarity index 100% rename from data_model/clusters/ProxyConfiguration-Cluster.xml rename to data_model/1.3/clusters/ProxyConfiguration-Cluster.xml diff --git a/data_model/clusters/ProxyDiscovery-Cluster.xml b/data_model/1.3/clusters/ProxyDiscovery-Cluster.xml similarity index 100% rename from data_model/clusters/ProxyDiscovery-Cluster.xml rename to data_model/1.3/clusters/ProxyDiscovery-Cluster.xml diff --git a/data_model/clusters/PumpConfigurationControl.xml b/data_model/1.3/clusters/PumpConfigurationControl.xml similarity index 100% rename from data_model/clusters/PumpConfigurationControl.xml rename to data_model/1.3/clusters/PumpConfigurationControl.xml diff --git a/data_model/clusters/RefrigeratorAlarm.xml b/data_model/1.3/clusters/RefrigeratorAlarm.xml similarity index 100% rename from data_model/clusters/RefrigeratorAlarm.xml rename to data_model/1.3/clusters/RefrigeratorAlarm.xml diff --git a/data_model/clusters/ResourceMonitoring.xml b/data_model/1.3/clusters/ResourceMonitoring.xml similarity index 100% rename from data_model/clusters/ResourceMonitoring.xml rename to data_model/1.3/clusters/ResourceMonitoring.xml diff --git a/data_model/clusters/Scenes.xml b/data_model/1.3/clusters/Scenes.xml similarity index 100% rename from data_model/clusters/Scenes.xml rename to data_model/1.3/clusters/Scenes.xml diff --git a/data_model/clusters/SmokeCOAlarm.xml b/data_model/1.3/clusters/SmokeCOAlarm.xml similarity index 100% rename from data_model/clusters/SmokeCOAlarm.xml rename to data_model/1.3/clusters/SmokeCOAlarm.xml diff --git a/data_model/clusters/Switch.xml b/data_model/1.3/clusters/Switch.xml similarity index 100% rename from data_model/clusters/Switch.xml rename to data_model/1.3/clusters/Switch.xml diff --git a/data_model/clusters/TargetNavigator.xml b/data_model/1.3/clusters/TargetNavigator.xml similarity index 100% rename from data_model/clusters/TargetNavigator.xml rename to data_model/1.3/clusters/TargetNavigator.xml diff --git a/data_model/clusters/TemperatureControl.xml b/data_model/1.3/clusters/TemperatureControl.xml similarity index 100% rename from data_model/clusters/TemperatureControl.xml rename to data_model/1.3/clusters/TemperatureControl.xml diff --git a/data_model/clusters/TemperatureMeasurement.xml b/data_model/1.3/clusters/TemperatureMeasurement.xml similarity index 100% rename from data_model/clusters/TemperatureMeasurement.xml rename to data_model/1.3/clusters/TemperatureMeasurement.xml diff --git a/data_model/clusters/Thermostat.xml b/data_model/1.3/clusters/Thermostat.xml similarity index 100% rename from data_model/clusters/Thermostat.xml rename to data_model/1.3/clusters/Thermostat.xml diff --git a/data_model/clusters/ThermostatUserInterfaceConfiguration.xml b/data_model/1.3/clusters/ThermostatUserInterfaceConfiguration.xml similarity index 100% rename from data_model/clusters/ThermostatUserInterfaceConfiguration.xml rename to data_model/1.3/clusters/ThermostatUserInterfaceConfiguration.xml diff --git a/data_model/clusters/TimeSync.xml b/data_model/1.3/clusters/TimeSync.xml similarity index 100% rename from data_model/clusters/TimeSync.xml rename to data_model/1.3/clusters/TimeSync.xml diff --git a/data_model/clusters/ValidProxies-Cluster.xml b/data_model/1.3/clusters/ValidProxies-Cluster.xml similarity index 100% rename from data_model/clusters/ValidProxies-Cluster.xml rename to data_model/1.3/clusters/ValidProxies-Cluster.xml diff --git a/data_model/clusters/ValveConfigurationControl.xml b/data_model/1.3/clusters/ValveConfigurationControl.xml similarity index 100% rename from data_model/clusters/ValveConfigurationControl.xml rename to data_model/1.3/clusters/ValveConfigurationControl.xml diff --git a/data_model/clusters/WakeOnLAN.xml b/data_model/1.3/clusters/WakeOnLAN.xml similarity index 100% rename from data_model/clusters/WakeOnLAN.xml rename to data_model/1.3/clusters/WakeOnLAN.xml diff --git a/data_model/clusters/WaterContentMeasurement.xml b/data_model/1.3/clusters/WaterContentMeasurement.xml similarity index 100% rename from data_model/clusters/WaterContentMeasurement.xml rename to data_model/1.3/clusters/WaterContentMeasurement.xml diff --git a/data_model/clusters/WindowCovering.xml b/data_model/1.3/clusters/WindowCovering.xml similarity index 100% rename from data_model/clusters/WindowCovering.xml rename to data_model/1.3/clusters/WindowCovering.xml diff --git a/data_model/clusters/bridge-clusters-ActionsCluster.xml b/data_model/1.3/clusters/bridge-clusters-ActionsCluster.xml similarity index 100% rename from data_model/clusters/bridge-clusters-ActionsCluster.xml rename to data_model/1.3/clusters/bridge-clusters-ActionsCluster.xml diff --git a/data_model/clusters/bridge-clusters-BridgedDeviceBasicInformationCluster.xml b/data_model/1.3/clusters/bridge-clusters-BridgedDeviceBasicInformationCluster.xml similarity index 100% rename from data_model/clusters/bridge-clusters-BridgedDeviceBasicInformationCluster.xml rename to data_model/1.3/clusters/bridge-clusters-BridgedDeviceBasicInformationCluster.xml diff --git a/data_model/clusters/cluster_ids.json b/data_model/1.3/clusters/cluster_ids.json similarity index 100% rename from data_model/clusters/cluster_ids.json rename to data_model/1.3/clusters/cluster_ids.json diff --git a/data_model/device_types/Aggregator.xml b/data_model/1.3/device_types/Aggregator.xml similarity index 100% rename from data_model/device_types/Aggregator.xml rename to data_model/1.3/device_types/Aggregator.xml diff --git a/data_model/device_types/AirPurifier.xml b/data_model/1.3/device_types/AirPurifier.xml similarity index 100% rename from data_model/device_types/AirPurifier.xml rename to data_model/1.3/device_types/AirPurifier.xml diff --git a/data_model/device_types/AirQualitySensor.xml b/data_model/1.3/device_types/AirQualitySensor.xml similarity index 100% rename from data_model/device_types/AirQualitySensor.xml rename to data_model/1.3/device_types/AirQualitySensor.xml diff --git a/data_model/device_types/BaseDeviceType.xml b/data_model/1.3/device_types/BaseDeviceType.xml similarity index 100% rename from data_model/device_types/BaseDeviceType.xml rename to data_model/1.3/device_types/BaseDeviceType.xml diff --git a/data_model/device_types/BasicVideoPlayer.xml b/data_model/1.3/device_types/BasicVideoPlayer.xml similarity index 100% rename from data_model/device_types/BasicVideoPlayer.xml rename to data_model/1.3/device_types/BasicVideoPlayer.xml diff --git a/data_model/device_types/BridgedNode.xml b/data_model/1.3/device_types/BridgedNode.xml similarity index 100% rename from data_model/device_types/BridgedNode.xml rename to data_model/1.3/device_types/BridgedNode.xml diff --git a/data_model/device_types/CastingVideoClient.xml b/data_model/1.3/device_types/CastingVideoClient.xml similarity index 100% rename from data_model/device_types/CastingVideoClient.xml rename to data_model/1.3/device_types/CastingVideoClient.xml diff --git a/data_model/device_types/CastingVideoPlayer.xml b/data_model/1.3/device_types/CastingVideoPlayer.xml similarity index 100% rename from data_model/device_types/CastingVideoPlayer.xml rename to data_model/1.3/device_types/CastingVideoPlayer.xml diff --git a/data_model/device_types/ColorDimmerSwitch.xml b/data_model/1.3/device_types/ColorDimmerSwitch.xml similarity index 100% rename from data_model/device_types/ColorDimmerSwitch.xml rename to data_model/1.3/device_types/ColorDimmerSwitch.xml diff --git a/data_model/device_types/ColorTemperatureLight.xml b/data_model/1.3/device_types/ColorTemperatureLight.xml similarity index 100% rename from data_model/device_types/ColorTemperatureLight.xml rename to data_model/1.3/device_types/ColorTemperatureLight.xml diff --git a/data_model/device_types/ContactSensor.xml b/data_model/1.3/device_types/ContactSensor.xml similarity index 100% rename from data_model/device_types/ContactSensor.xml rename to data_model/1.3/device_types/ContactSensor.xml diff --git a/data_model/device_types/ContentApp.xml b/data_model/1.3/device_types/ContentApp.xml similarity index 100% rename from data_model/device_types/ContentApp.xml rename to data_model/1.3/device_types/ContentApp.xml diff --git a/data_model/device_types/ControlBridge.xml b/data_model/1.3/device_types/ControlBridge.xml similarity index 100% rename from data_model/device_types/ControlBridge.xml rename to data_model/1.3/device_types/ControlBridge.xml diff --git a/data_model/device_types/CookSurface.xml b/data_model/1.3/device_types/CookSurface.xml similarity index 100% rename from data_model/device_types/CookSurface.xml rename to data_model/1.3/device_types/CookSurface.xml diff --git a/data_model/device_types/Cooktop.xml b/data_model/1.3/device_types/Cooktop.xml similarity index 100% rename from data_model/device_types/Cooktop.xml rename to data_model/1.3/device_types/Cooktop.xml diff --git a/data_model/device_types/DeviceEnergyManagement.xml b/data_model/1.3/device_types/DeviceEnergyManagement.xml similarity index 100% rename from data_model/device_types/DeviceEnergyManagement.xml rename to data_model/1.3/device_types/DeviceEnergyManagement.xml diff --git a/data_model/device_types/DimmableLight.xml b/data_model/1.3/device_types/DimmableLight.xml similarity index 100% rename from data_model/device_types/DimmableLight.xml rename to data_model/1.3/device_types/DimmableLight.xml diff --git a/data_model/device_types/DimmablePlug-InUnit.xml b/data_model/1.3/device_types/DimmablePlug-InUnit.xml similarity index 100% rename from data_model/device_types/DimmablePlug-InUnit.xml rename to data_model/1.3/device_types/DimmablePlug-InUnit.xml diff --git a/data_model/device_types/DimmerSwitch.xml b/data_model/1.3/device_types/DimmerSwitch.xml similarity index 100% rename from data_model/device_types/DimmerSwitch.xml rename to data_model/1.3/device_types/DimmerSwitch.xml diff --git a/data_model/device_types/Dishwasher.xml b/data_model/1.3/device_types/Dishwasher.xml similarity index 100% rename from data_model/device_types/Dishwasher.xml rename to data_model/1.3/device_types/Dishwasher.xml diff --git a/data_model/device_types/DoorLock.xml b/data_model/1.3/device_types/DoorLock.xml similarity index 100% rename from data_model/device_types/DoorLock.xml rename to data_model/1.3/device_types/DoorLock.xml diff --git a/data_model/device_types/DoorLockController.xml b/data_model/1.3/device_types/DoorLockController.xml similarity index 100% rename from data_model/device_types/DoorLockController.xml rename to data_model/1.3/device_types/DoorLockController.xml diff --git a/data_model/device_types/EVSE.xml b/data_model/1.3/device_types/EVSE.xml similarity index 100% rename from data_model/device_types/EVSE.xml rename to data_model/1.3/device_types/EVSE.xml diff --git a/data_model/device_types/ElectricalSensor.xml b/data_model/1.3/device_types/ElectricalSensor.xml similarity index 100% rename from data_model/device_types/ElectricalSensor.xml rename to data_model/1.3/device_types/ElectricalSensor.xml diff --git a/data_model/device_types/ExtendedColorLight.xml b/data_model/1.3/device_types/ExtendedColorLight.xml similarity index 100% rename from data_model/device_types/ExtendedColorLight.xml rename to data_model/1.3/device_types/ExtendedColorLight.xml diff --git a/data_model/device_types/ExtractorHood.xml b/data_model/1.3/device_types/ExtractorHood.xml similarity index 100% rename from data_model/device_types/ExtractorHood.xml rename to data_model/1.3/device_types/ExtractorHood.xml diff --git a/data_model/device_types/Fan.xml b/data_model/1.3/device_types/Fan.xml similarity index 100% rename from data_model/device_types/Fan.xml rename to data_model/1.3/device_types/Fan.xml diff --git a/data_model/device_types/FlowSensor.xml b/data_model/1.3/device_types/FlowSensor.xml similarity index 100% rename from data_model/device_types/FlowSensor.xml rename to data_model/1.3/device_types/FlowSensor.xml diff --git a/data_model/device_types/GenericSwitch.xml b/data_model/1.3/device_types/GenericSwitch.xml similarity index 100% rename from data_model/device_types/GenericSwitch.xml rename to data_model/1.3/device_types/GenericSwitch.xml diff --git a/data_model/device_types/HumiditySensor.xml b/data_model/1.3/device_types/HumiditySensor.xml similarity index 100% rename from data_model/device_types/HumiditySensor.xml rename to data_model/1.3/device_types/HumiditySensor.xml diff --git a/data_model/device_types/LaundryDryer.xml b/data_model/1.3/device_types/LaundryDryer.xml similarity index 100% rename from data_model/device_types/LaundryDryer.xml rename to data_model/1.3/device_types/LaundryDryer.xml diff --git a/data_model/device_types/LaundryWasher.xml b/data_model/1.3/device_types/LaundryWasher.xml similarity index 100% rename from data_model/device_types/LaundryWasher.xml rename to data_model/1.3/device_types/LaundryWasher.xml diff --git a/data_model/device_types/LightSensor.xml b/data_model/1.3/device_types/LightSensor.xml similarity index 100% rename from data_model/device_types/LightSensor.xml rename to data_model/1.3/device_types/LightSensor.xml diff --git a/data_model/device_types/MicrowaveOven.xml b/data_model/1.3/device_types/MicrowaveOven.xml similarity index 100% rename from data_model/device_types/MicrowaveOven.xml rename to data_model/1.3/device_types/MicrowaveOven.xml diff --git a/data_model/device_types/ModeSelectDeviceType.xml b/data_model/1.3/device_types/ModeSelectDeviceType.xml similarity index 100% rename from data_model/device_types/ModeSelectDeviceType.xml rename to data_model/1.3/device_types/ModeSelectDeviceType.xml diff --git a/data_model/device_types/OccupancySensor.xml b/data_model/1.3/device_types/OccupancySensor.xml similarity index 100% rename from data_model/device_types/OccupancySensor.xml rename to data_model/1.3/device_types/OccupancySensor.xml diff --git a/data_model/device_types/OnOffLight.xml b/data_model/1.3/device_types/OnOffLight.xml similarity index 100% rename from data_model/device_types/OnOffLight.xml rename to data_model/1.3/device_types/OnOffLight.xml diff --git a/data_model/device_types/OnOffLightSwitch.xml b/data_model/1.3/device_types/OnOffLightSwitch.xml similarity index 100% rename from data_model/device_types/OnOffLightSwitch.xml rename to data_model/1.3/device_types/OnOffLightSwitch.xml diff --git a/data_model/device_types/OnOffPlug-inUnit.xml b/data_model/1.3/device_types/OnOffPlug-inUnit.xml similarity index 100% rename from data_model/device_types/OnOffPlug-inUnit.xml rename to data_model/1.3/device_types/OnOffPlug-inUnit.xml diff --git a/data_model/device_types/OnOffSensor.xml b/data_model/1.3/device_types/OnOffSensor.xml similarity index 100% rename from data_model/device_types/OnOffSensor.xml rename to data_model/1.3/device_types/OnOffSensor.xml diff --git a/data_model/device_types/OtaProvider.xml b/data_model/1.3/device_types/OtaProvider.xml similarity index 100% rename from data_model/device_types/OtaProvider.xml rename to data_model/1.3/device_types/OtaProvider.xml diff --git a/data_model/device_types/OtaRequestor.xml b/data_model/1.3/device_types/OtaRequestor.xml similarity index 100% rename from data_model/device_types/OtaRequestor.xml rename to data_model/1.3/device_types/OtaRequestor.xml diff --git a/data_model/device_types/Oven.xml b/data_model/1.3/device_types/Oven.xml similarity index 100% rename from data_model/device_types/Oven.xml rename to data_model/1.3/device_types/Oven.xml diff --git a/data_model/device_types/PowerSource.xml b/data_model/1.3/device_types/PowerSource.xml similarity index 100% rename from data_model/device_types/PowerSource.xml rename to data_model/1.3/device_types/PowerSource.xml diff --git a/data_model/device_types/PressureSensor.xml b/data_model/1.3/device_types/PressureSensor.xml similarity index 100% rename from data_model/device_types/PressureSensor.xml rename to data_model/1.3/device_types/PressureSensor.xml diff --git a/data_model/device_types/Pump.xml b/data_model/1.3/device_types/Pump.xml similarity index 100% rename from data_model/device_types/Pump.xml rename to data_model/1.3/device_types/Pump.xml diff --git a/data_model/device_types/PumpController.xml b/data_model/1.3/device_types/PumpController.xml similarity index 100% rename from data_model/device_types/PumpController.xml rename to data_model/1.3/device_types/PumpController.xml diff --git a/data_model/device_types/RainSensor.xml b/data_model/1.3/device_types/RainSensor.xml similarity index 100% rename from data_model/device_types/RainSensor.xml rename to data_model/1.3/device_types/RainSensor.xml diff --git a/data_model/device_types/Refrigerator.xml b/data_model/1.3/device_types/Refrigerator.xml similarity index 100% rename from data_model/device_types/Refrigerator.xml rename to data_model/1.3/device_types/Refrigerator.xml diff --git a/data_model/device_types/RoboticVacuumCleaner.xml b/data_model/1.3/device_types/RoboticVacuumCleaner.xml similarity index 100% rename from data_model/device_types/RoboticVacuumCleaner.xml rename to data_model/1.3/device_types/RoboticVacuumCleaner.xml diff --git a/data_model/device_types/RoomAirConditioner.xml b/data_model/1.3/device_types/RoomAirConditioner.xml similarity index 100% rename from data_model/device_types/RoomAirConditioner.xml rename to data_model/1.3/device_types/RoomAirConditioner.xml diff --git a/data_model/device_types/RootNodeDeviceType.xml b/data_model/1.3/device_types/RootNodeDeviceType.xml similarity index 100% rename from data_model/device_types/RootNodeDeviceType.xml rename to data_model/1.3/device_types/RootNodeDeviceType.xml diff --git a/data_model/device_types/SmokeCOAlarm.xml b/data_model/1.3/device_types/SmokeCOAlarm.xml similarity index 100% rename from data_model/device_types/SmokeCOAlarm.xml rename to data_model/1.3/device_types/SmokeCOAlarm.xml diff --git a/data_model/device_types/Speaker.xml b/data_model/1.3/device_types/Speaker.xml similarity index 100% rename from data_model/device_types/Speaker.xml rename to data_model/1.3/device_types/Speaker.xml diff --git a/data_model/device_types/TemperatureControlledCabinet.xml b/data_model/1.3/device_types/TemperatureControlledCabinet.xml similarity index 100% rename from data_model/device_types/TemperatureControlledCabinet.xml rename to data_model/1.3/device_types/TemperatureControlledCabinet.xml diff --git a/data_model/device_types/TemperatureSensor.xml b/data_model/1.3/device_types/TemperatureSensor.xml similarity index 100% rename from data_model/device_types/TemperatureSensor.xml rename to data_model/1.3/device_types/TemperatureSensor.xml diff --git a/data_model/device_types/Thermostat.xml b/data_model/1.3/device_types/Thermostat.xml similarity index 100% rename from data_model/device_types/Thermostat.xml rename to data_model/1.3/device_types/Thermostat.xml diff --git a/data_model/device_types/VideoRemoteControl.xml b/data_model/1.3/device_types/VideoRemoteControl.xml similarity index 100% rename from data_model/device_types/VideoRemoteControl.xml rename to data_model/1.3/device_types/VideoRemoteControl.xml diff --git a/data_model/device_types/WaterFreezeDetector.xml b/data_model/1.3/device_types/WaterFreezeDetector.xml similarity index 100% rename from data_model/device_types/WaterFreezeDetector.xml rename to data_model/1.3/device_types/WaterFreezeDetector.xml diff --git a/data_model/device_types/WaterLeakDetector.xml b/data_model/1.3/device_types/WaterLeakDetector.xml similarity index 100% rename from data_model/device_types/WaterLeakDetector.xml rename to data_model/1.3/device_types/WaterLeakDetector.xml diff --git a/data_model/device_types/WaterValve.xml b/data_model/1.3/device_types/WaterValve.xml similarity index 100% rename from data_model/device_types/WaterValve.xml rename to data_model/1.3/device_types/WaterValve.xml diff --git a/data_model/device_types/WindowCovering.xml b/data_model/1.3/device_types/WindowCovering.xml similarity index 100% rename from data_model/device_types/WindowCovering.xml rename to data_model/1.3/device_types/WindowCovering.xml diff --git a/data_model/device_types/WindowCoveringController.xml b/data_model/1.3/device_types/WindowCoveringController.xml similarity index 100% rename from data_model/device_types/WindowCoveringController.xml rename to data_model/1.3/device_types/WindowCoveringController.xml diff --git a/data_model/scraper_version b/data_model/1.3/scraper_version similarity index 100% rename from data_model/scraper_version rename to data_model/1.3/scraper_version diff --git a/data_model/spec_sha b/data_model/1.3/spec_sha similarity index 100% rename from data_model/spec_sha rename to data_model/1.3/spec_sha diff --git a/data_model/master/clusters/ACL-Cluster.xml b/data_model/master/clusters/ACL-Cluster.xml new file mode 100644 index 00000000000000..5c4c96a687cb13 --- /dev/null +++ b/data_model/master/clusters/ACL-Cluster.xml @@ -0,0 +1,252 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/AccountLogin.xml b/data_model/master/clusters/AccountLogin.xml new file mode 100644 index 00000000000000..8a9ed7d9389f40 --- /dev/null +++ b/data_model/master/clusters/AccountLogin.xml @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/AdminCommissioningCluster.xml b/data_model/master/clusters/AdminCommissioningCluster.xml new file mode 100644 index 00000000000000..ccbb579134dc00 --- /dev/null +++ b/data_model/master/clusters/AdminCommissioningCluster.xml @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/AirQuality.xml b/data_model/master/clusters/AirQuality.xml new file mode 100644 index 00000000000000..c05717863c5ff4 --- /dev/null +++ b/data_model/master/clusters/AirQuality.xml @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/AlarmBase.xml b/data_model/master/clusters/AlarmBase.xml new file mode 100644 index 00000000000000..fd0ccb5bc19d46 --- /dev/null +++ b/data_model/master/clusters/AlarmBase.xml @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ApplicationBasic.xml b/data_model/master/clusters/ApplicationBasic.xml new file mode 100644 index 00000000000000..ee39b8a421209d --- /dev/null +++ b/data_model/master/clusters/ApplicationBasic.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ApplicationLauncher.xml b/data_model/master/clusters/ApplicationLauncher.xml new file mode 100644 index 00000000000000..57d6858dd8ce14 --- /dev/null +++ b/data_model/master/clusters/ApplicationLauncher.xml @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/AudioOutput.xml b/data_model/master/clusters/AudioOutput.xml new file mode 100644 index 00000000000000..27bb5a20bb7952 --- /dev/null +++ b/data_model/master/clusters/AudioOutput.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/BallastConfiguration.xml b/data_model/master/clusters/BallastConfiguration.xml new file mode 100644 index 00000000000000..0f37d86067e994 --- /dev/null +++ b/data_model/master/clusters/BallastConfiguration.xml @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/BasicInformationCluster.xml b/data_model/master/clusters/BasicInformationCluster.xml new file mode 100644 index 00000000000000..428c683a0ea803 --- /dev/null +++ b/data_model/master/clusters/BasicInformationCluster.xml @@ -0,0 +1,364 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Binding-Cluster.xml b/data_model/master/clusters/Binding-Cluster.xml new file mode 100644 index 00000000000000..444c99b315348d --- /dev/null +++ b/data_model/master/clusters/Binding-Cluster.xml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/BooleanState.xml b/data_model/master/clusters/BooleanState.xml new file mode 100644 index 00000000000000..5bb29f53ae0c3e --- /dev/null +++ b/data_model/master/clusters/BooleanState.xml @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/BooleanStateConfiguration.xml b/data_model/master/clusters/BooleanStateConfiguration.xml new file mode 100644 index 00000000000000..01444d565294b3 --- /dev/null +++ b/data_model/master/clusters/BooleanStateConfiguration.xml @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Channel.xml b/data_model/master/clusters/Channel.xml new file mode 100644 index 00000000000000..17144c9032c3e5 --- /dev/null +++ b/data_model/master/clusters/Channel.xml @@ -0,0 +1,465 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ColorControl.xml b/data_model/master/clusters/ColorControl.xml new file mode 100644 index 00000000000000..90d999fa20b4ac --- /dev/null +++ b/data_model/master/clusters/ColorControl.xml @@ -0,0 +1,1168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/CommissionerControlCluster.xml b/data_model/master/clusters/CommissionerControlCluster.xml new file mode 100644 index 00000000000000..eaaa3c51ec4a30 --- /dev/null +++ b/data_model/master/clusters/CommissionerControlCluster.xml @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ConcentrationMeasurement.xml b/data_model/master/clusters/ConcentrationMeasurement.xml new file mode 100644 index 00000000000000..4b51cffa124321 --- /dev/null +++ b/data_model/master/clusters/ConcentrationMeasurement.xml @@ -0,0 +1,264 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ContentAppObserver.xml b/data_model/master/clusters/ContentAppObserver.xml new file mode 100644 index 00000000000000..d6808baf982215 --- /dev/null +++ b/data_model/master/clusters/ContentAppObserver.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ContentControl.xml b/data_model/master/clusters/ContentControl.xml new file mode 100644 index 00000000000000..b2539cf445c289 --- /dev/null +++ b/data_model/master/clusters/ContentControl.xml @@ -0,0 +1,428 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ContentLauncher.xml b/data_model/master/clusters/ContentLauncher.xml new file mode 100644 index 00000000000000..9a5674efa8eb64 --- /dev/null +++ b/data_model/master/clusters/ContentLauncher.xml @@ -0,0 +1,374 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/DemandResponseLoadControl.xml b/data_model/master/clusters/DemandResponseLoadControl.xml new file mode 100644 index 00000000000000..c20a7c3b7f013f --- /dev/null +++ b/data_model/master/clusters/DemandResponseLoadControl.xml @@ -0,0 +1,453 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Descriptor-Cluster.xml b/data_model/master/clusters/Descriptor-Cluster.xml new file mode 100644 index 00000000000000..94d262473d4c9c --- /dev/null +++ b/data_model/master/clusters/Descriptor-Cluster.xml @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/DeviceEnergyManagement.xml b/data_model/master/clusters/DeviceEnergyManagement.xml new file mode 100644 index 00000000000000..ee1b2f0f2725e6 --- /dev/null +++ b/data_model/master/clusters/DeviceEnergyManagement.xml @@ -0,0 +1,668 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/DiagnosticLogsCluster.xml b/data_model/master/clusters/DiagnosticLogsCluster.xml new file mode 100644 index 00000000000000..38520e81a85e16 --- /dev/null +++ b/data_model/master/clusters/DiagnosticLogsCluster.xml @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/DiagnosticsEthernet.xml b/data_model/master/clusters/DiagnosticsEthernet.xml new file mode 100644 index 00000000000000..dfcd3d11c41f52 --- /dev/null +++ b/data_model/master/clusters/DiagnosticsEthernet.xml @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/DiagnosticsGeneral.xml b/data_model/master/clusters/DiagnosticsGeneral.xml new file mode 100644 index 00000000000000..4da912b03dc3df --- /dev/null +++ b/data_model/master/clusters/DiagnosticsGeneral.xml @@ -0,0 +1,374 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/DiagnosticsSoftware.xml b/data_model/master/clusters/DiagnosticsSoftware.xml new file mode 100644 index 00000000000000..7cb3c9ff39ad2f --- /dev/null +++ b/data_model/master/clusters/DiagnosticsSoftware.xml @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/DiagnosticsThread.xml b/data_model/master/clusters/DiagnosticsThread.xml new file mode 100644 index 00000000000000..120efaddf8c08e --- /dev/null +++ b/data_model/master/clusters/DiagnosticsThread.xml @@ -0,0 +1,698 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/DiagnosticsWiFi.xml b/data_model/master/clusters/DiagnosticsWiFi.xml new file mode 100644 index 00000000000000..b3951d967dc31f --- /dev/null +++ b/data_model/master/clusters/DiagnosticsWiFi.xml @@ -0,0 +1,258 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/DishwasherAlarm.xml b/data_model/master/clusters/DishwasherAlarm.xml new file mode 100644 index 00000000000000..bdc399f9399486 --- /dev/null +++ b/data_model/master/clusters/DishwasherAlarm.xml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/DoorLock.xml b/data_model/master/clusters/DoorLock.xml new file mode 100644 index 00000000000000..ea4b9fe1ebbbf8 --- /dev/null +++ b/data_model/master/clusters/DoorLock.xml @@ -0,0 +1,2284 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ElectricalEnergyMeasurement.xml b/data_model/master/clusters/ElectricalEnergyMeasurement.xml new file mode 100644 index 00000000000000..d89b19472a6bbb --- /dev/null +++ b/data_model/master/clusters/ElectricalEnergyMeasurement.xml @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ElectricalPowerMeasurement.xml b/data_model/master/clusters/ElectricalPowerMeasurement.xml new file mode 100644 index 00000000000000..89ad5fa3255fcd --- /dev/null +++ b/data_model/master/clusters/ElectricalPowerMeasurement.xml @@ -0,0 +1,317 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/EnergyCalendar.xml b/data_model/master/clusters/EnergyCalendar.xml new file mode 100644 index 00000000000000..40a8a87f04ec17 --- /dev/null +++ b/data_model/master/clusters/EnergyCalendar.xml @@ -0,0 +1,287 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/EnergyEVSE.xml b/data_model/master/clusters/EnergyEVSE.xml new file mode 100644 index 00000000000000..53605899d05550 --- /dev/null +++ b/data_model/master/clusters/EnergyEVSE.xml @@ -0,0 +1,586 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/EnergyPreference.xml b/data_model/master/clusters/EnergyPreference.xml new file mode 100644 index 00000000000000..37559dfbc30850 --- /dev/null +++ b/data_model/master/clusters/EnergyPreference.xml @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/EnergyPrice.xml b/data_model/master/clusters/EnergyPrice.xml new file mode 100644 index 00000000000000..fa46810900890f --- /dev/null +++ b/data_model/master/clusters/EnergyPrice.xml @@ -0,0 +1,233 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/FanControl.xml b/data_model/master/clusters/FanControl.xml new file mode 100644 index 00000000000000..12d57967801646 --- /dev/null +++ b/data_model/master/clusters/FanControl.xml @@ -0,0 +1,300 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/FlowMeasurement.xml b/data_model/master/clusters/FlowMeasurement.xml new file mode 100644 index 00000000000000..d488b5899b05f0 --- /dev/null +++ b/data_model/master/clusters/FlowMeasurement.xml @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/GeneralCommissioningCluster.xml b/data_model/master/clusters/GeneralCommissioningCluster.xml new file mode 100644 index 00000000000000..519285af02f103 --- /dev/null +++ b/data_model/master/clusters/GeneralCommissioningCluster.xml @@ -0,0 +1,254 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Group-Key-Management-Cluster.xml b/data_model/master/clusters/Group-Key-Management-Cluster.xml new file mode 100644 index 00000000000000..c1819628e34d7b --- /dev/null +++ b/data_model/master/clusters/Group-Key-Management-Cluster.xml @@ -0,0 +1,235 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Groups.xml b/data_model/master/clusters/Groups.xml new file mode 100644 index 00000000000000..1f168e13fad933 --- /dev/null +++ b/data_model/master/clusters/Groups.xml @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Humidistat.xml b/data_model/master/clusters/Humidistat.xml new file mode 100644 index 00000000000000..b709b5d50d2f24 --- /dev/null +++ b/data_model/master/clusters/Humidistat.xml @@ -0,0 +1,283 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ICDManagement.xml b/data_model/master/clusters/ICDManagement.xml new file mode 100644 index 00000000000000..0f15a2729052fa --- /dev/null +++ b/data_model/master/clusters/ICDManagement.xml @@ -0,0 +1,267 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Identify.xml b/data_model/master/clusters/Identify.xml new file mode 100644 index 00000000000000..dbb9daca72fce4 --- /dev/null +++ b/data_model/master/clusters/Identify.xml @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/IlluminanceMeasurement.xml b/data_model/master/clusters/IlluminanceMeasurement.xml new file mode 100644 index 00000000000000..75cf30cd35d931 --- /dev/null +++ b/data_model/master/clusters/IlluminanceMeasurement.xml @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/JointFabricDatastoreCluster.xml b/data_model/master/clusters/JointFabricDatastoreCluster.xml new file mode 100644 index 00000000000000..40e46ecc78519c --- /dev/null +++ b/data_model/master/clusters/JointFabricDatastoreCluster.xml @@ -0,0 +1,435 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/JointFabricPKICluster.xml b/data_model/master/clusters/JointFabricPKICluster.xml new file mode 100644 index 00000000000000..3519a11cec79c6 --- /dev/null +++ b/data_model/master/clusters/JointFabricPKICluster.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/KeypadInput.xml b/data_model/master/clusters/KeypadInput.xml new file mode 100644 index 00000000000000..57d6ef4650e013 --- /dev/null +++ b/data_model/master/clusters/KeypadInput.xml @@ -0,0 +1,367 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Label-Cluster-FixedLabelCluster.xml b/data_model/master/clusters/Label-Cluster-FixedLabelCluster.xml new file mode 100644 index 00000000000000..98106b6fc33e40 --- /dev/null +++ b/data_model/master/clusters/Label-Cluster-FixedLabelCluster.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Label-Cluster-LabelCluster.xml b/data_model/master/clusters/Label-Cluster-LabelCluster.xml new file mode 100644 index 00000000000000..0ca5566f0dc132 --- /dev/null +++ b/data_model/master/clusters/Label-Cluster-LabelCluster.xml @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Label-Cluster-UserLabelCluster.xml b/data_model/master/clusters/Label-Cluster-UserLabelCluster.xml new file mode 100644 index 00000000000000..eba0099ffb59d2 --- /dev/null +++ b/data_model/master/clusters/Label-Cluster-UserLabelCluster.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/LaundryDryerControls.xml b/data_model/master/clusters/LaundryDryerControls.xml new file mode 100644 index 00000000000000..af4f787c0432b7 --- /dev/null +++ b/data_model/master/clusters/LaundryDryerControls.xml @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/LaundryWasherControls.xml b/data_model/master/clusters/LaundryWasherControls.xml new file mode 100644 index 00000000000000..ff001c3a405652 --- /dev/null +++ b/data_model/master/clusters/LaundryWasherControls.xml @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/LevelControl.xml b/data_model/master/clusters/LevelControl.xml new file mode 100644 index 00000000000000..c98db485e6e00a --- /dev/null +++ b/data_model/master/clusters/LevelControl.xml @@ -0,0 +1,316 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/LocalizationConfiguration.xml b/data_model/master/clusters/LocalizationConfiguration.xml new file mode 100644 index 00000000000000..66809f545389be --- /dev/null +++ b/data_model/master/clusters/LocalizationConfiguration.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/LocalizationTimeFormat.xml b/data_model/master/clusters/LocalizationTimeFormat.xml new file mode 100644 index 00000000000000..db8b809b0341a9 --- /dev/null +++ b/data_model/master/clusters/LocalizationTimeFormat.xml @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/LocalizationUnit.xml b/data_model/master/clusters/LocalizationUnit.xml new file mode 100644 index 00000000000000..2c6e1ecbd648e6 --- /dev/null +++ b/data_model/master/clusters/LocalizationUnit.xml @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/LowPower.xml b/data_model/master/clusters/LowPower.xml new file mode 100644 index 00000000000000..cf75cb0c680164 --- /dev/null +++ b/data_model/master/clusters/LowPower.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/MediaInput.xml b/data_model/master/clusters/MediaInput.xml new file mode 100644 index 00000000000000..a92985ff924a75 --- /dev/null +++ b/data_model/master/clusters/MediaInput.xml @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/MediaPlayback.xml b/data_model/master/clusters/MediaPlayback.xml new file mode 100644 index 00000000000000..03175277dc12c5 --- /dev/null +++ b/data_model/master/clusters/MediaPlayback.xml @@ -0,0 +1,475 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Messages.xml b/data_model/master/clusters/Messages.xml new file mode 100644 index 00000000000000..402310c4b92eea --- /dev/null +++ b/data_model/master/clusters/Messages.xml @@ -0,0 +1,333 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/MicrowaveOvenControl.xml b/data_model/master/clusters/MicrowaveOvenControl.xml new file mode 100644 index 00000000000000..b927685e534e0c --- /dev/null +++ b/data_model/master/clusters/MicrowaveOvenControl.xml @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ModeBase.xml b/data_model/master/clusters/ModeBase.xml new file mode 100644 index 00000000000000..48b4d4adac1634 --- /dev/null +++ b/data_model/master/clusters/ModeBase.xml @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ModeSelect.xml b/data_model/master/clusters/ModeSelect.xml new file mode 100644 index 00000000000000..cfdf7adb92761c --- /dev/null +++ b/data_model/master/clusters/ModeSelect.xml @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Mode_DeviceEnergyManagement.xml b/data_model/master/clusters/Mode_DeviceEnergyManagement.xml new file mode 100644 index 00000000000000..9cb426eb51785d --- /dev/null +++ b/data_model/master/clusters/Mode_DeviceEnergyManagement.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Mode_Dishwasher.xml b/data_model/master/clusters/Mode_Dishwasher.xml new file mode 100644 index 00000000000000..40a19828d44ebb --- /dev/null +++ b/data_model/master/clusters/Mode_Dishwasher.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Mode_EVSE.xml b/data_model/master/clusters/Mode_EVSE.xml new file mode 100644 index 00000000000000..ffce1a6a2980ce --- /dev/null +++ b/data_model/master/clusters/Mode_EVSE.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Mode_LaundryWasher.xml b/data_model/master/clusters/Mode_LaundryWasher.xml new file mode 100644 index 00000000000000..5d3cce891790e1 --- /dev/null +++ b/data_model/master/clusters/Mode_LaundryWasher.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Mode_MicrowaveOven.xml b/data_model/master/clusters/Mode_MicrowaveOven.xml new file mode 100644 index 00000000000000..6f1e8ed895f489 --- /dev/null +++ b/data_model/master/clusters/Mode_MicrowaveOven.xml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Mode_Oven.xml b/data_model/master/clusters/Mode_Oven.xml new file mode 100644 index 00000000000000..bf6c1b57928a57 --- /dev/null +++ b/data_model/master/clusters/Mode_Oven.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Mode_RVCClean.xml b/data_model/master/clusters/Mode_RVCClean.xml new file mode 100644 index 00000000000000..b48ffa24a35b50 --- /dev/null +++ b/data_model/master/clusters/Mode_RVCClean.xml @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Mode_RVCRun.xml b/data_model/master/clusters/Mode_RVCRun.xml new file mode 100644 index 00000000000000..ddfad8adc89d2e --- /dev/null +++ b/data_model/master/clusters/Mode_RVCRun.xml @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Mode_Refrigerator.xml b/data_model/master/clusters/Mode_Refrigerator.xml new file mode 100644 index 00000000000000..b4550283daf9e5 --- /dev/null +++ b/data_model/master/clusters/Mode_Refrigerator.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Mode_WaterHeater.xml b/data_model/master/clusters/Mode_WaterHeater.xml new file mode 100644 index 00000000000000..482ea0e33d0f9a --- /dev/null +++ b/data_model/master/clusters/Mode_WaterHeater.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/NetworkCommissioningCluster.xml b/data_model/master/clusters/NetworkCommissioningCluster.xml new file mode 100644 index 00000000000000..cb6e935dcd189e --- /dev/null +++ b/data_model/master/clusters/NetworkCommissioningCluster.xml @@ -0,0 +1,601 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/NetworkIdentityManagement.xml b/data_model/master/clusters/NetworkIdentityManagement.xml new file mode 100644 index 00000000000000..0cb3ee17251741 --- /dev/null +++ b/data_model/master/clusters/NetworkIdentityManagement.xml @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/OTAProvider.xml b/data_model/master/clusters/OTAProvider.xml new file mode 100644 index 00000000000000..2a5be10961f02c --- /dev/null +++ b/data_model/master/clusters/OTAProvider.xml @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/OTARequestor.xml b/data_model/master/clusters/OTARequestor.xml new file mode 100644 index 00000000000000..f6a5ff0365abed --- /dev/null +++ b/data_model/master/clusters/OTARequestor.xml @@ -0,0 +1,227 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/OccupancySensing.xml b/data_model/master/clusters/OccupancySensing.xml new file mode 100644 index 00000000000000..2aae8530b1d512 --- /dev/null +++ b/data_model/master/clusters/OccupancySensing.xml @@ -0,0 +1,418 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/OnOff.xml b/data_model/master/clusters/OnOff.xml new file mode 100644 index 00000000000000..a12de2b2e25eb8 --- /dev/null +++ b/data_model/master/clusters/OnOff.xml @@ -0,0 +1,238 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/OperationalCredentialCluster.xml b/data_model/master/clusters/OperationalCredentialCluster.xml new file mode 100644 index 00000000000000..2aa070f96b2573 --- /dev/null +++ b/data_model/master/clusters/OperationalCredentialCluster.xml @@ -0,0 +1,325 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/OperationalState.xml b/data_model/master/clusters/OperationalState.xml new file mode 100644 index 00000000000000..124362e459e429 --- /dev/null +++ b/data_model/master/clusters/OperationalState.xml @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/OperationalState_Oven.xml b/data_model/master/clusters/OperationalState_Oven.xml new file mode 100644 index 00000000000000..fbcc634330faa7 --- /dev/null +++ b/data_model/master/clusters/OperationalState_Oven.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/OperationalState_RVC.xml b/data_model/master/clusters/OperationalState_RVC.xml new file mode 100644 index 00000000000000..f33791fcf86407 --- /dev/null +++ b/data_model/master/clusters/OperationalState_RVC.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/PowerSourceCluster.xml b/data_model/master/clusters/PowerSourceCluster.xml new file mode 100644 index 00000000000000..1c01cc548bfdee --- /dev/null +++ b/data_model/master/clusters/PowerSourceCluster.xml @@ -0,0 +1,829 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/PowerSourceConfigurationCluster.xml b/data_model/master/clusters/PowerSourceConfigurationCluster.xml new file mode 100644 index 00000000000000..6a47ce1b54cdbd --- /dev/null +++ b/data_model/master/clusters/PowerSourceConfigurationCluster.xml @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/PowerTopology.xml b/data_model/master/clusters/PowerTopology.xml new file mode 100644 index 00000000000000..4ebdda614a4aec --- /dev/null +++ b/data_model/master/clusters/PowerTopology.xml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/PressureMeasurement.xml b/data_model/master/clusters/PressureMeasurement.xml new file mode 100644 index 00000000000000..a46e911253941f --- /dev/null +++ b/data_model/master/clusters/PressureMeasurement.xml @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ProxyConfiguration-Cluster.xml b/data_model/master/clusters/ProxyConfiguration-Cluster.xml new file mode 100644 index 00000000000000..8ad566ec8527b2 --- /dev/null +++ b/data_model/master/clusters/ProxyConfiguration-Cluster.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ProxyDiscovery-Cluster.xml b/data_model/master/clusters/ProxyDiscovery-Cluster.xml new file mode 100644 index 00000000000000..6fa4a9eb6f3a06 --- /dev/null +++ b/data_model/master/clusters/ProxyDiscovery-Cluster.xml @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/PumpConfigurationControl.xml b/data_model/master/clusters/PumpConfigurationControl.xml new file mode 100644 index 00000000000000..c3f79ce8108975 --- /dev/null +++ b/data_model/master/clusters/PumpConfigurationControl.xml @@ -0,0 +1,446 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/RefrigeratorAlarm.xml b/data_model/master/clusters/RefrigeratorAlarm.xml new file mode 100644 index 00000000000000..a3a75011813cd1 --- /dev/null +++ b/data_model/master/clusters/RefrigeratorAlarm.xml @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ResourceMonitoring.xml b/data_model/master/clusters/ResourceMonitoring.xml new file mode 100644 index 00000000000000..43bf28868f3709 --- /dev/null +++ b/data_model/master/clusters/ResourceMonitoring.xml @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Scenes.xml b/data_model/master/clusters/Scenes.xml new file mode 100644 index 00000000000000..bf68f8528fa159 --- /dev/null +++ b/data_model/master/clusters/Scenes.xml @@ -0,0 +1,401 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ServiceArea.xml b/data_model/master/clusters/ServiceArea.xml new file mode 100644 index 00000000000000..7963d93b7eb222 --- /dev/null +++ b/data_model/master/clusters/ServiceArea.xml @@ -0,0 +1,231 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/SmokeCOAlarm.xml b/data_model/master/clusters/SmokeCOAlarm.xml new file mode 100644 index 00000000000000..25c034ac94082c --- /dev/null +++ b/data_model/master/clusters/SmokeCOAlarm.xml @@ -0,0 +1,308 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Switch.xml b/data_model/master/clusters/Switch.xml new file mode 100644 index 00000000000000..c7c94524bed52c --- /dev/null +++ b/data_model/master/clusters/Switch.xml @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/TargetNavigator.xml b/data_model/master/clusters/TargetNavigator.xml new file mode 100644 index 00000000000000..c5fb59919585c1 --- /dev/null +++ b/data_model/master/clusters/TargetNavigator.xml @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/TemperatureControl.xml b/data_model/master/clusters/TemperatureControl.xml new file mode 100644 index 00000000000000..3f5fa9c00332d6 --- /dev/null +++ b/data_model/master/clusters/TemperatureControl.xml @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/TemperatureMeasurement.xml b/data_model/master/clusters/TemperatureMeasurement.xml new file mode 100644 index 00000000000000..176fad6b246a60 --- /dev/null +++ b/data_model/master/clusters/TemperatureMeasurement.xml @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/Thermostat.xml b/data_model/master/clusters/Thermostat.xml new file mode 100644 index 00000000000000..7345fc2e2c9177 --- /dev/null +++ b/data_model/master/clusters/Thermostat.xml @@ -0,0 +1,1290 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ThermostatUserInterfaceConfiguration.xml b/data_model/master/clusters/ThermostatUserInterfaceConfiguration.xml new file mode 100644 index 00000000000000..b4ecd49f93ae4a --- /dev/null +++ b/data_model/master/clusters/ThermostatUserInterfaceConfiguration.xml @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ThreadBorderRouterManagement.xml b/data_model/master/clusters/ThreadBorderRouterManagement.xml new file mode 100644 index 00000000000000..f1e88f8ab86e70 --- /dev/null +++ b/data_model/master/clusters/ThreadBorderRouterManagement.xml @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ThreadNetworkDirectory.xml b/data_model/master/clusters/ThreadNetworkDirectory.xml new file mode 100644 index 00000000000000..3a770c36a214f9 --- /dev/null +++ b/data_model/master/clusters/ThreadNetworkDirectory.xml @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/TimeSync.xml b/data_model/master/clusters/TimeSync.xml new file mode 100644 index 00000000000000..9d4057db8bdb85 --- /dev/null +++ b/data_model/master/clusters/TimeSync.xml @@ -0,0 +1,411 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ValidProxies-Cluster.xml b/data_model/master/clusters/ValidProxies-Cluster.xml new file mode 100644 index 00000000000000..b9db8e1762647f --- /dev/null +++ b/data_model/master/clusters/ValidProxies-Cluster.xml @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/ValveConfigurationControl.xml b/data_model/master/clusters/ValveConfigurationControl.xml new file mode 100644 index 00000000000000..e8dcece07432d3 --- /dev/null +++ b/data_model/master/clusters/ValveConfigurationControl.xml @@ -0,0 +1,221 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/WakeOnLAN.xml b/data_model/master/clusters/WakeOnLAN.xml new file mode 100644 index 00000000000000..4f6e032c084b38 --- /dev/null +++ b/data_model/master/clusters/WakeOnLAN.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/WaterContentMeasurement.xml b/data_model/master/clusters/WaterContentMeasurement.xml new file mode 100644 index 00000000000000..85d44793c93ae4 --- /dev/null +++ b/data_model/master/clusters/WaterContentMeasurement.xml @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/WaterHeaterManagement.xml b/data_model/master/clusters/WaterHeaterManagement.xml new file mode 100644 index 00000000000000..52e1020f164472 --- /dev/null +++ b/data_model/master/clusters/WaterHeaterManagement.xml @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/WiFiNetworkManagement.xml b/data_model/master/clusters/WiFiNetworkManagement.xml new file mode 100644 index 00000000000000..e1c03fbc7061d4 --- /dev/null +++ b/data_model/master/clusters/WiFiNetworkManagement.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/WindowCovering.xml b/data_model/master/clusters/WindowCovering.xml new file mode 100644 index 00000000000000..7ec63dd442d8ae --- /dev/null +++ b/data_model/master/clusters/WindowCovering.xml @@ -0,0 +1,700 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/bridge-clusters-ActionsCluster.xml b/data_model/master/clusters/bridge-clusters-ActionsCluster.xml new file mode 100644 index 00000000000000..5b9b54429b9429 --- /dev/null +++ b/data_model/master/clusters/bridge-clusters-ActionsCluster.xml @@ -0,0 +1,380 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/bridge-clusters-BridgedDeviceBasicInformationCluster.xml b/data_model/master/clusters/bridge-clusters-BridgedDeviceBasicInformationCluster.xml new file mode 100644 index 00000000000000..318ad7fa54dd2a --- /dev/null +++ b/data_model/master/clusters/bridge-clusters-BridgedDeviceBasicInformationCluster.xml @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/bridge-clusters-EcosystemInformationCluster.xml b/data_model/master/clusters/bridge-clusters-EcosystemInformationCluster.xml new file mode 100644 index 00000000000000..42ae5c4fe44cee --- /dev/null +++ b/data_model/master/clusters/bridge-clusters-EcosystemInformationCluster.xml @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/clusters/cluster_ids.json b/data_model/master/clusters/cluster_ids.json new file mode 100644 index 00000000000000..c7654179ede2b5 --- /dev/null +++ b/data_model/master/clusters/cluster_ids.json @@ -0,0 +1,124 @@ +{ + "3": "Identify", + "4": "Groups", + "6": "On/Off", + "8": "Level Control", + "29": "Descriptor", + "30": "Binding", + "31": "AccessControl", + "37": "Actions", + "40": "Basic Information", + "41": "OTA Software Update Provider", + "42": "OTA Software Update Requestor", + "43": "Localization Configuration", + "44": "Time Format Localization", + "45": "Unit Localization", + "46": "Power Source Configuration", + "47": "Power Source", + "48": "General Commissioning", + "49": "Network Commissioning", + "50": "Diagnostic Logs", + "51": "General Diagnostics", + "52": "Software Diagnostics", + "53": "Thread Network Diagnostics", + "54": "Wi", + "55": "Ethernet Network Diagnostics", + "56": "Time Synchronization", + "57": "Bridged Device Basic Information", + "59": "Switch", + "60": "Administrator Commissioning", + "62": "Operational Credentials", + "63": "GroupKeyManagement", + "64": "Fixed Label", + "65": "User Label", + "66": "ProxyConfiguration", + "67": "ProxyDiscovery", + "68": "ValidProxies", + "69": "Boolean State", + "70": "ICDManagement", + "72": "Oven Cavity Operational State", + "73": "Oven Mode", + "74": "Laundry Dryer Controls", + "80": "Mode Select", + "81": "Laundry Washer Mode", + "82": "Refrigerator And Temperature Controlled Cabinet Mode", + "83": "Laundry Washer Controls", + "84": "RVC Run Mode", + "85": "RVC Clean Mode", + "86": "Temperature Control", + "87": "Refrigerator Alarm", + "89": "Dishwasher Mode", + "91": "Air Quality", + "92": "Smoke CO Alarm", + "93": "Dishwasher Alarm", + "94": "Microwave Oven Mode", + "95": "Microwave Oven Control", + "96": "Operational State", + "97": "RVC Operational State", + "98": "Scenes Management", + "113": "HEPA Filter Monitoring", + "114": "Activated Carbon Filter Monitoring", + "121": "Water Tank Level Monitoring", + "128": "Boolean State Configuration", + "129": "Valve Configuration and Control", + "144": "Electrical Power Measurement", + "145": "Electrical Energy Measurement", + "148": "Water Heater Management", + "149": "Energy Price", + "150": "Demand Response Load Control", + "151": "Messages", + "152": "Device Energy Management", + "153": "Energy EVSE", + "154": "Energy Calendar", + "155": "Energy Preference", + "156": "Power Topology", + "157": "Energy EVSE Mode", + "158": "Water Heater Mode", + "159": "Device Energy Management Mode", + "257": "Door Lock", + "258": "Window Covering", + "336": "Service Area", + "512": "Pump Configuration and Control", + "513": "Thermostat", + "514": "Fan Control", + "516": "Thermostat User Interface Configuration", + "517": "Humidistat", + "768": "Color Control", + "769": "Ballast Configuration", + "1024": "Illuminance Measurement", + "1026": "Temperature Measurement", + "1027": "Pressure Measurement", + "1028": "Flow Measurement", + "1029": "Relative Humidity Measurement", + "1030": "Occupancy Sensing", + "1036": "Carbon Monoxide Concentration Measurement", + "1037": "Carbon Dioxide Concentration Measurement", + "1043": "Nitrogen Dioxide Concentration Measurement", + "1045": "Ozone Concentration Measurement", + "1066": "PM2", + "1067": "Formaldehyde Concentration Measurement", + "1068": "PM1 Concentration Measurement", + "1069": "PM10 Concentration Measurement", + "1070": "Total Volatile Organic Compounds Concentration Measurement", + "1071": "Radon Concentration Measurement", + "1104": "Network Identity Management", + "1105": "Wi", + "1106": "Thread Border Router Management", + "1107": "Thread Network Directory", + "1283": "Wake on LAN", + "1284": "Channel", + "1285": "Target Navigator", + "1286": "Media Playback", + "1287": "Media Input", + "1288": "Low Power", + "1289": "Keypad Input", + "1290": "Content Launcher", + "1291": "Audio Output", + "1292": "Application Launcher", + "1293": "Application Basic", + "1294": "Account Login", + "1295": "Content Control", + "1296": "Content App Observer", + "1872": "Ecosystem Information", + "1873": "Commissioner Control" +} diff --git a/data_model/master/device_types/Aggregator.xml b/data_model/master/device_types/Aggregator.xml new file mode 100644 index 00000000000000..48aa4347d850e1 --- /dev/null +++ b/data_model/master/device_types/Aggregator.xml @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/AirPurifier.xml b/data_model/master/device_types/AirPurifier.xml new file mode 100644 index 00000000000000..538d9a4e341efb --- /dev/null +++ b/data_model/master/device_types/AirPurifier.xml @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/AirQualitySensor.xml b/data_model/master/device_types/AirQualitySensor.xml new file mode 100644 index 00000000000000..602781819d1696 --- /dev/null +++ b/data_model/master/device_types/AirQualitySensor.xml @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/BaseDeviceType.xml b/data_model/master/device_types/BaseDeviceType.xml new file mode 100644 index 00000000000000..ddcc49f258f0cb --- /dev/null +++ b/data_model/master/device_types/BaseDeviceType.xml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/BasicVideoPlayer.xml b/data_model/master/device_types/BasicVideoPlayer.xml new file mode 100644 index 00000000000000..ed82d08bc7a112 --- /dev/null +++ b/data_model/master/device_types/BasicVideoPlayer.xml @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/BatteryStorage.xml b/data_model/master/device_types/BatteryStorage.xml new file mode 100644 index 00000000000000..321e9f9dfe2159 --- /dev/null +++ b/data_model/master/device_types/BatteryStorage.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/BridgedNode.xml b/data_model/master/device_types/BridgedNode.xml new file mode 100644 index 00000000000000..59414205c052b5 --- /dev/null +++ b/data_model/master/device_types/BridgedNode.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/CastingVideoClient.xml b/data_model/master/device_types/CastingVideoClient.xml new file mode 100644 index 00000000000000..8f816b3e2a8056 --- /dev/null +++ b/data_model/master/device_types/CastingVideoClient.xml @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/CastingVideoPlayer.xml b/data_model/master/device_types/CastingVideoPlayer.xml new file mode 100644 index 00000000000000..0b65f4f7aab57d --- /dev/null +++ b/data_model/master/device_types/CastingVideoPlayer.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/ColorDimmerSwitch.xml b/data_model/master/device_types/ColorDimmerSwitch.xml new file mode 100644 index 00000000000000..190ab6c7fc8b7e --- /dev/null +++ b/data_model/master/device_types/ColorDimmerSwitch.xml @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/ColorTemperatureLight.xml b/data_model/master/device_types/ColorTemperatureLight.xml new file mode 100644 index 00000000000000..4f7cf64a9fd0a2 --- /dev/null +++ b/data_model/master/device_types/ColorTemperatureLight.xml @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/ContactSensor.xml b/data_model/master/device_types/ContactSensor.xml new file mode 100644 index 00000000000000..6fa5620a77bebb --- /dev/null +++ b/data_model/master/device_types/ContactSensor.xml @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/ContentApp.xml b/data_model/master/device_types/ContentApp.xml new file mode 100644 index 00000000000000..300e3122336ef4 --- /dev/null +++ b/data_model/master/device_types/ContentApp.xml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/ControlBridge.xml b/data_model/master/device_types/ControlBridge.xml new file mode 100644 index 00000000000000..04ff66db808cc9 --- /dev/null +++ b/data_model/master/device_types/ControlBridge.xml @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/CookSurface.xml b/data_model/master/device_types/CookSurface.xml new file mode 100644 index 00000000000000..a32425e2f1df08 --- /dev/null +++ b/data_model/master/device_types/CookSurface.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/Cooktop.xml b/data_model/master/device_types/Cooktop.xml new file mode 100644 index 00000000000000..ea94653008d25a --- /dev/null +++ b/data_model/master/device_types/Cooktop.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/DeviceEnergyManagement.xml b/data_model/master/device_types/DeviceEnergyManagement.xml new file mode 100644 index 00000000000000..cf148dabc13679 --- /dev/null +++ b/data_model/master/device_types/DeviceEnergyManagement.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/DimmableLight.xml b/data_model/master/device_types/DimmableLight.xml new file mode 100644 index 00000000000000..059a0802f77906 --- /dev/null +++ b/data_model/master/device_types/DimmableLight.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/DimmablePlug-InUnit.xml b/data_model/master/device_types/DimmablePlug-InUnit.xml new file mode 100644 index 00000000000000..4d344bfc9fb89c --- /dev/null +++ b/data_model/master/device_types/DimmablePlug-InUnit.xml @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/DimmerSwitch.xml b/data_model/master/device_types/DimmerSwitch.xml new file mode 100644 index 00000000000000..0ad9f23638349a --- /dev/null +++ b/data_model/master/device_types/DimmerSwitch.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/Dishwasher.xml b/data_model/master/device_types/Dishwasher.xml new file mode 100644 index 00000000000000..6e351f38360e4e --- /dev/null +++ b/data_model/master/device_types/Dishwasher.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/DoorLock.xml b/data_model/master/device_types/DoorLock.xml new file mode 100644 index 00000000000000..8b73bbf8679a6b --- /dev/null +++ b/data_model/master/device_types/DoorLock.xml @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/DoorLockController.xml b/data_model/master/device_types/DoorLockController.xml new file mode 100644 index 00000000000000..64d26eba8d8eeb --- /dev/null +++ b/data_model/master/device_types/DoorLockController.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/EVSE.xml b/data_model/master/device_types/EVSE.xml new file mode 100644 index 00000000000000..a6a1e3854c88eb --- /dev/null +++ b/data_model/master/device_types/EVSE.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/ElectricalSensor.xml b/data_model/master/device_types/ElectricalSensor.xml new file mode 100644 index 00000000000000..62c6dd9b4128b2 --- /dev/null +++ b/data_model/master/device_types/ElectricalSensor.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/EnergyTariff.xml b/data_model/master/device_types/EnergyTariff.xml new file mode 100644 index 00000000000000..bf27554ff281db --- /dev/null +++ b/data_model/master/device_types/EnergyTariff.xml @@ -0,0 +1,64 @@ + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/EnergyTariffCalendar.xml b/data_model/master/device_types/EnergyTariffCalendar.xml new file mode 100644 index 00000000000000..ee3a6b9347db38 --- /dev/null +++ b/data_model/master/device_types/EnergyTariffCalendar.xml @@ -0,0 +1,64 @@ + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/ExtendedColorLight.xml b/data_model/master/device_types/ExtendedColorLight.xml new file mode 100644 index 00000000000000..b4057d6b5bc997 --- /dev/null +++ b/data_model/master/device_types/ExtendedColorLight.xml @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/ExtractorHood.xml b/data_model/master/device_types/ExtractorHood.xml new file mode 100644 index 00000000000000..6606b377f47a39 --- /dev/null +++ b/data_model/master/device_types/ExtractorHood.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/Fan.xml b/data_model/master/device_types/Fan.xml new file mode 100644 index 00000000000000..8bf8347e93c5b0 --- /dev/null +++ b/data_model/master/device_types/Fan.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/FlowSensor.xml b/data_model/master/device_types/FlowSensor.xml new file mode 100644 index 00000000000000..bcc27b318aac36 --- /dev/null +++ b/data_model/master/device_types/FlowSensor.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/GenericSwitch.xml b/data_model/master/device_types/GenericSwitch.xml new file mode 100644 index 00000000000000..acfa0a95005291 --- /dev/null +++ b/data_model/master/device_types/GenericSwitch.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/HeatPump.xml b/data_model/master/device_types/HeatPump.xml new file mode 100644 index 00000000000000..ae0ce0e9a4d30a --- /dev/null +++ b/data_model/master/device_types/HeatPump.xml @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/HumidifierDehumidifier.xml b/data_model/master/device_types/HumidifierDehumidifier.xml new file mode 100644 index 00000000000000..a917cbff4450f0 --- /dev/null +++ b/data_model/master/device_types/HumidifierDehumidifier.xml @@ -0,0 +1,63 @@ + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/HumiditySensor.xml b/data_model/master/device_types/HumiditySensor.xml new file mode 100644 index 00000000000000..4a1808d7e0c580 --- /dev/null +++ b/data_model/master/device_types/HumiditySensor.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/JointFabricAdmin.xml b/data_model/master/device_types/JointFabricAdmin.xml new file mode 100644 index 00000000000000..eb57fad58127a4 --- /dev/null +++ b/data_model/master/device_types/JointFabricAdmin.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/LaundryDryer.xml b/data_model/master/device_types/LaundryDryer.xml new file mode 100644 index 00000000000000..d4692c7ad818a5 --- /dev/null +++ b/data_model/master/device_types/LaundryDryer.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/LaundryWasher.xml b/data_model/master/device_types/LaundryWasher.xml new file mode 100644 index 00000000000000..03b85f3bd363b4 --- /dev/null +++ b/data_model/master/device_types/LaundryWasher.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/LightSensor.xml b/data_model/master/device_types/LightSensor.xml new file mode 100644 index 00000000000000..0eca130f921623 --- /dev/null +++ b/data_model/master/device_types/LightSensor.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/MicrowaveOven.xml b/data_model/master/device_types/MicrowaveOven.xml new file mode 100644 index 00000000000000..3ae1fd8d5bf22d --- /dev/null +++ b/data_model/master/device_types/MicrowaveOven.xml @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/ModeSelectDeviceType.xml b/data_model/master/device_types/ModeSelectDeviceType.xml new file mode 100644 index 00000000000000..7848ba0adc787f --- /dev/null +++ b/data_model/master/device_types/ModeSelectDeviceType.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/NetworkInfraIntro.xml b/data_model/master/device_types/NetworkInfraIntro.xml new file mode 100644 index 00000000000000..e5bc56b1f095ac --- /dev/null +++ b/data_model/master/device_types/NetworkInfraIntro.xml @@ -0,0 +1,58 @@ + + + \ No newline at end of file diff --git a/data_model/master/device_types/NetworkInfraManager.xml b/data_model/master/device_types/NetworkInfraManager.xml new file mode 100644 index 00000000000000..800ca8ce10ace6 --- /dev/null +++ b/data_model/master/device_types/NetworkInfraManager.xml @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/OccupancySensor.xml b/data_model/master/device_types/OccupancySensor.xml new file mode 100644 index 00000000000000..233d04f196e388 --- /dev/null +++ b/data_model/master/device_types/OccupancySensor.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/OnOffLight.xml b/data_model/master/device_types/OnOffLight.xml new file mode 100644 index 00000000000000..f71c0bf77fa42c --- /dev/null +++ b/data_model/master/device_types/OnOffLight.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/OnOffLightSwitch.xml b/data_model/master/device_types/OnOffLightSwitch.xml new file mode 100644 index 00000000000000..d6ac7f79520d26 --- /dev/null +++ b/data_model/master/device_types/OnOffLightSwitch.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/OnOffPlug-inUnit.xml b/data_model/master/device_types/OnOffPlug-inUnit.xml new file mode 100644 index 00000000000000..3be1ed0f9eb13d --- /dev/null +++ b/data_model/master/device_types/OnOffPlug-inUnit.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/OnOffSensor.xml b/data_model/master/device_types/OnOffSensor.xml new file mode 100644 index 00000000000000..935a438fb0bbef --- /dev/null +++ b/data_model/master/device_types/OnOffSensor.xml @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/OtaProvider.xml b/data_model/master/device_types/OtaProvider.xml new file mode 100644 index 00000000000000..375ab4e36aa987 --- /dev/null +++ b/data_model/master/device_types/OtaProvider.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/OtaRequestor.xml b/data_model/master/device_types/OtaRequestor.xml new file mode 100644 index 00000000000000..840e322bdccb72 --- /dev/null +++ b/data_model/master/device_types/OtaRequestor.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/Oven.xml b/data_model/master/device_types/Oven.xml new file mode 100644 index 00000000000000..9c5d23e86afda7 --- /dev/null +++ b/data_model/master/device_types/Oven.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/PowerSource.xml b/data_model/master/device_types/PowerSource.xml new file mode 100644 index 00000000000000..9ed71e905535bd --- /dev/null +++ b/data_model/master/device_types/PowerSource.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/PressureSensor.xml b/data_model/master/device_types/PressureSensor.xml new file mode 100644 index 00000000000000..f2b7855db91c83 --- /dev/null +++ b/data_model/master/device_types/PressureSensor.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/Pump.xml b/data_model/master/device_types/Pump.xml new file mode 100644 index 00000000000000..461725136abaec --- /dev/null +++ b/data_model/master/device_types/Pump.xml @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/PumpController.xml b/data_model/master/device_types/PumpController.xml new file mode 100644 index 00000000000000..99acf1fa1c5757 --- /dev/null +++ b/data_model/master/device_types/PumpController.xml @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/RainSensor.xml b/data_model/master/device_types/RainSensor.xml new file mode 100644 index 00000000000000..473de6e31d1598 --- /dev/null +++ b/data_model/master/device_types/RainSensor.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/Refrigerator.xml b/data_model/master/device_types/Refrigerator.xml new file mode 100644 index 00000000000000..4899906c3b985e --- /dev/null +++ b/data_model/master/device_types/Refrigerator.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/RoboticVacuumCleaner.xml b/data_model/master/device_types/RoboticVacuumCleaner.xml new file mode 100644 index 00000000000000..2657a560109829 --- /dev/null +++ b/data_model/master/device_types/RoboticVacuumCleaner.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/RoomAirConditioner.xml b/data_model/master/device_types/RoomAirConditioner.xml new file mode 100644 index 00000000000000..305a893dabc0fe --- /dev/null +++ b/data_model/master/device_types/RoomAirConditioner.xml @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/RootNodeDeviceType.xml b/data_model/master/device_types/RootNodeDeviceType.xml new file mode 100644 index 00000000000000..875a633f9ba9b8 --- /dev/null +++ b/data_model/master/device_types/RootNodeDeviceType.xml @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/SecondaryNetworkInterface.xml b/data_model/master/device_types/SecondaryNetworkInterface.xml new file mode 100644 index 00000000000000..186faac2718079 --- /dev/null +++ b/data_model/master/device_types/SecondaryNetworkInterface.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/SmokeCOAlarm.xml b/data_model/master/device_types/SmokeCOAlarm.xml new file mode 100644 index 00000000000000..518809d449e35a --- /dev/null +++ b/data_model/master/device_types/SmokeCOAlarm.xml @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/SolarPower.xml b/data_model/master/device_types/SolarPower.xml new file mode 100644 index 00000000000000..743da25e7a9a20 --- /dev/null +++ b/data_model/master/device_types/SolarPower.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/Speaker.xml b/data_model/master/device_types/Speaker.xml new file mode 100644 index 00000000000000..d1d9d85beb84c8 --- /dev/null +++ b/data_model/master/device_types/Speaker.xml @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/TemperatureControlledCabinet.xml b/data_model/master/device_types/TemperatureControlledCabinet.xml new file mode 100644 index 00000000000000..299037e145d901 --- /dev/null +++ b/data_model/master/device_types/TemperatureControlledCabinet.xml @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/TemperatureSensor.xml b/data_model/master/device_types/TemperatureSensor.xml new file mode 100644 index 00000000000000..d6ccd5c18db89f --- /dev/null +++ b/data_model/master/device_types/TemperatureSensor.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/Thermostat.xml b/data_model/master/device_types/Thermostat.xml new file mode 100644 index 00000000000000..6acdf63b10eba0 --- /dev/null +++ b/data_model/master/device_types/Thermostat.xml @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/ThreadBorderRouter.xml b/data_model/master/device_types/ThreadBorderRouter.xml new file mode 100644 index 00000000000000..73561999d60eba --- /dev/null +++ b/data_model/master/device_types/ThreadBorderRouter.xml @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/VideoRemoteControl.xml b/data_model/master/device_types/VideoRemoteControl.xml new file mode 100644 index 00000000000000..7896a6f6ee6be5 --- /dev/null +++ b/data_model/master/device_types/VideoRemoteControl.xml @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/WaterFreezeDetector.xml b/data_model/master/device_types/WaterFreezeDetector.xml new file mode 100644 index 00000000000000..f3c5f0580af21f --- /dev/null +++ b/data_model/master/device_types/WaterFreezeDetector.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/WaterHeater.xml b/data_model/master/device_types/WaterHeater.xml new file mode 100644 index 00000000000000..6e80928d792cfc --- /dev/null +++ b/data_model/master/device_types/WaterHeater.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/WaterLeakDetector.xml b/data_model/master/device_types/WaterLeakDetector.xml new file mode 100644 index 00000000000000..0518d148910c78 --- /dev/null +++ b/data_model/master/device_types/WaterLeakDetector.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/WaterValve.xml b/data_model/master/device_types/WaterValve.xml new file mode 100644 index 00000000000000..5c65f4565f6746 --- /dev/null +++ b/data_model/master/device_types/WaterValve.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/WindowCovering.xml b/data_model/master/device_types/WindowCovering.xml new file mode 100644 index 00000000000000..a2d54453b7337f --- /dev/null +++ b/data_model/master/device_types/WindowCovering.xml @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/device_types/WindowCoveringController.xml b/data_model/master/device_types/WindowCoveringController.xml new file mode 100644 index 00000000000000..c48f327754c599 --- /dev/null +++ b/data_model/master/device_types/WindowCoveringController.xml @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data_model/master/scraper_version b/data_model/master/scraper_version new file mode 100644 index 00000000000000..e8ea05db81420d --- /dev/null +++ b/data_model/master/scraper_version @@ -0,0 +1 @@ +1.2.4 diff --git a/data_model/master/spec_sha b/data_model/master/spec_sha new file mode 100644 index 00000000000000..f0b38ddc8c8aac --- /dev/null +++ b/data_model/master/spec_sha @@ -0,0 +1 @@ +b3652909bdf595c7634cea1da0f1e58f837ea35f diff --git a/scripts/spec_xml/generate_spec_xml.py b/scripts/spec_xml/generate_spec_xml.py index bb33c13533991d..7f9ea4ccd24120 100755 --- a/scripts/spec_xml/generate_spec_xml.py +++ b/scripts/spec_xml/generate_spec_xml.py @@ -27,8 +27,10 @@ DEFAULT_CHIP_ROOT = os.path.abspath( os.path.join(os.path.dirname(__file__), '..', '..')) -DEFAULT_OUTPUT_DIR = os.path.abspath( - os.path.join(DEFAULT_CHIP_ROOT, 'data_model')) +DEFAULT_OUTPUT_DIR_1_3 = os.path.abspath( + os.path.join(DEFAULT_CHIP_ROOT, 'data_model', '1.3')) +DEFAULT_OUTPUT_DIR_TOT = os.path.abspath( + os.path.join(DEFAULT_CHIP_ROOT, 'data_model', 'master')) DEFAULT_DOCUMENTATION_FILE = os.path.abspath( os.path.join(DEFAULT_CHIP_ROOT, 'docs', 'spec_clusters.md')) @@ -65,7 +67,6 @@ def make_asciidoc(target: str, include_in_progress: bool, spec_dir: str, dry_run help='Path to the spec root') @click.option( '--output-dir', - default=DEFAULT_OUTPUT_DIR, help='Path to output xml files') @click.option( '--dry-run', @@ -79,6 +80,8 @@ def make_asciidoc(target: str, include_in_progress: bool, spec_dir: str, dry_run help='Include in-progress items from spec') def main(scraper, spec_root, output_dir, dry_run, include_in_progress): # Clusters need to be scraped first because the cluster directory is passed to the device type directory + if not output_dir: + output_dir = DEFAULT_OUTPUT_DIR_TOT if include_in_progress else DEFAULT_OUTPUT_DIR_1_3 scrape_clusters(scraper, spec_root, output_dir, dry_run, include_in_progress) scrape_device_types(scraper, spec_root, output_dir, dry_run, include_in_progress) if not dry_run: @@ -204,7 +207,7 @@ def dump_cluster_ids(output_dir): header = '# List of currently defined spec clusters\n' header += 'This file was **AUTOMATICALLY** generated by `python scripts/generate_spec_xml.py`. DO NOT EDIT BY HAND!\n\n' - clusters, problems = build_xml_clusters() + clusters, problems = build_xml_clusters(clusters_output_dir) all_name_lens = [len(c.name) for c in clusters.values()] name_len = max(all_name_lens) title_id_decimal = ' ID (Decimal) ' diff --git a/src/python_testing/TestSpecParsingSupport.py b/src/python_testing/TestSpecParsingSupport.py index ab73d4ebc20280..c35a5eb0f6bb22 100644 --- a/src/python_testing/TestSpecParsingSupport.py +++ b/src/python_testing/TestSpecParsingSupport.py @@ -15,14 +15,16 @@ # limitations under the License. # +import os import xml.etree.ElementTree as ElementTree import chip.clusters as Clusters from global_attribute_ids import GlobalAttributeIds from matter_testing_support import MatterBaseTest, ProblemNotice, default_matter_test_main from mobly import asserts -from spec_parsing_support import (ClusterParser, XmlCluster, add_cluster_data_from_xml, build_xml_clusters, - check_clusters_for_unknown_commands, combine_derived_clusters_with_base) +from spec_parsing_support import (ClusterParser, PrebuiltDataModelDirectory, SpecParsingException, XmlCluster, + add_cluster_data_from_xml, build_xml_clusters, check_clusters_for_unknown_commands, + combine_derived_clusters_with_base) # TODO: improve the test coverage here # https://github.com/project-chip/connectedhomeip/issues/30958 @@ -230,6 +232,26 @@ def setup_class(self): self.spec_xml_clusters, self.spec_problems = build_xml_clusters() self.all_spec_clusters = set([(id, c.name, c.pics) for id, c in self.spec_xml_clusters.items()]) + def test_build_xml_override(self): + # checks that the 1.3 spec (default) does not contain in-progress clusters and the TOT does + tot_xml_clusters, problems = build_xml_clusters(PrebuiltDataModelDirectory.kMaster) + asserts.assert_greater(len(set(tot_xml_clusters.keys()) - set(self.spec_xml_clusters.keys())), + 0, "In progress dir does not contain any clusters not in 1.3") + # only the pulse width modulation cluster was removed post 1.3 + asserts.assert_equal(set(self.spec_xml_clusters.keys()) - set(tot_xml_clusters.keys()), + set([Clusters.PulseWidthModulation.id]), "There are some 1.3 clusters that are not included in the TOT spec") + + str_path = str(os.path.join(os.path.dirname(os.path.realpath(__file__)), '..', '..', 'data_model', '1.3', 'clusters')) + string_override_check, problems = build_xml_clusters(str_path) + asserts.assert_equal(string_override_check.keys(), self.spec_xml_clusters.keys(), "Mismatched cluster generation") + + path = os.path.join(os.path.dirname(os.path.realpath(__file__)), '..', '..', 'data_model', '1.3', 'clusters') + path_override_check, problems = build_xml_clusters(path) + asserts.assert_equal(path_override_check.keys(), self.spec_xml_clusters.keys(), "Mismatched cluster generation") + + with asserts.assert_raises(SpecParsingException): + build_xml_clusters("baddir") + def test_spec_parsing_access(self): strs = [None, 'view', 'operate', 'manage', 'admin'] for read in strs: diff --git a/src/python_testing/spec_parsing_support.py b/src/python_testing/spec_parsing_support.py index ea62d8a1baceac..bc36049de54cd5 100644 --- a/src/python_testing/spec_parsing_support.py +++ b/src/python_testing/spec_parsing_support.py @@ -47,6 +47,10 @@ def to_access_code(privilege: Clusters.AccessControl.Enums.AccessControlEntryPri return _PRIVILEGE_STR.get(privilege, "") +class SpecParsingException(Exception): + pass + + @dataclass class XmlFeature: code: str @@ -447,13 +451,28 @@ def check_clusters_for_unknown_commands(clusters: dict[int, XmlCluster], problem endpoint_id=0, cluster_id=id, command_id=cmd.id), severity=ProblemSeverity.WARNING, problem="Command with unknown direction")) -def build_xml_clusters() -> tuple[dict[int, XmlCluster], list[ProblemNotice]]: - dir = os.path.join(os.path.dirname(os.path.realpath(__file__)), '..', '..', 'data_model', 'clusters') +class PrebuiltDataModelDirectory(Enum): + k1_3 = auto() + kMaster = auto() + + +def build_xml_clusters(data_model_directory: typing.Union[PrebuiltDataModelDirectory, str] = PrebuiltDataModelDirectory.k1_3) -> tuple[dict[uint, XmlCluster], list[ProblemNotice]]: + if data_model_directory == PrebuiltDataModelDirectory.k1_3: + dir = os.path.join(os.path.dirname(os.path.realpath(__file__)), '..', '..', 'data_model', '1.3', 'clusters') + elif data_model_directory == PrebuiltDataModelDirectory.kMaster: + dir = os.path.join(os.path.dirname(os.path.realpath(__file__)), '..', '..', 'data_model', 'master', 'clusters') + else: + dir = data_model_directory + clusters: dict[int, XmlCluster] = {} pure_base_clusters: dict[str, XmlCluster] = {} ids_by_name: dict[str, int] = {} problems: list[ProblemNotice] = [] - for xml in glob.glob(f"{dir}/*.xml"): + files = glob.glob(f'{dir}/*.xml') + if not files: + raise SpecParsingException(f'No data model files found in specified directory {dir}') + + for xml in files: logging.info(f'Parsing file {xml}') tree = ElementTree.parse(f'{xml}') root = tree.getroot()