Commodity_tariff_example_MultipleIssues_fix (#40648) * Sixed some build errors under gcc/Linux * Revert accidentally changed line * Improvemets of the timeshift test feature in server sources * Improvemets of the timeshift test feature in example sources * Removed floor * changed default tariff sample file * Restyled * Added include file for size_t * Restyled * Update src/app/clusters/commodity-tariff-server/commodity-tariff-server.cpp Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> * Update src/app/clusters/commodity-tariff-server/commodity-tariff-server.cpp Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> * Update src/app/clusters/commodity-tariff-server/CommodityTariffAttrsDataMgmt.cpp Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> * Update src/app/clusters/commodity-tariff-server/commodity-tariff-server.cpp Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> * Update src/app/clusters/commodity-tariff-server/commodity-tariff-server.cpp Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> * Restyled by clang-format * Restyled fixes * Fixes by Gemini's CR notes * Restyle fix * Fixes by Gemini's CR motes * Added thr call - clearEndpointInEventTrigger * Renamed optional structs comparison helpers * Restyled fix * Restyled * Some fixes by failed CI checks * Applied some fixes by CR requests * Fixes by CR requests * Applied code style fix * The Json samples has been moved into C-header as string constans * Applied code style fix * Update CommodityTariffAttrsDataMgmt.cpp Removed commented line * Removed static_assert * Fix for #40085 & #40104 * Fix for #40098,#40100,#40103 * Fix for #40112 * Fix for #40089 * Fix for #40110 (Updated description) * Fix for #40117 * Removed some Json related sources. Added new data samples as C++ structs * server srcs. Update of DataMgmt API * example app srcs. Update of DataMgmt API * Fixes/Iproves for AttrDataMgmt (Change reporting behavior) * Fixes and improvements for time depends attrs update logic * Fixes and improvements in example app for time depends attrs updating * Example app. CR notes fix * Server implementation. CR notes fix * Tariff data samples upd: C++ Array Conversion with Designated Initializers * Improvements and fixes for server sources * Improvements and fixes for example app * Fixed build issues for linux * server srcs. Small code improvements * Server srcs. Fixes/Improvements for data mgmt template * Fix for: #40120, #40121, #40122 - used AttrId type, removed some redundant args In Attrs update flow methods Fix for: #40087 - fixed IsStruct trait Fix for: #40109, #40113, #40114, #40116, #40118, #40123 - Fixed issues with CTC_BaseDataClass removed some redundant API calls Fix for: #40124,#40125,#40126 - the values comparison performs only with to operators == / != * Fix for: #40091,#40105,#40111- the types has renamed * Server srcs. Fix for: #40111 - types has renaming * Fixes for Gemini's CR notes * Update examples/energy-gateway-app/commodity-tariff/include/CommodityTariffSamples.h Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> * Server srcs. code style fix * Example srcs. code style fix * Fixes for Gemini's CR notes. upd * Fixes to support some declared thread-safe features: #40107,#40108, Fix by comment from #40085 * Server srcs. code style fix * Server srcs. Upd by CR nootes * example srcs. The issue ##40128 probably fixed here * Example app. Restyled * Sync with upstream. Conflict fixes * Fixed the field type in tariff samples * Server srcs. Fixed linux build issue * small style fix * Server srcs. Restyled * Server srcs. Some changes related with fix for the isse #39961 * Example app srcs. Some changes related with fix for the isse #39961 * Server srcs. Fixed errs at building for ESP32 * Added CTCs sources paths into ESP32 project cmake * Srv srcs. Code fixes and improvements * The map and unordered_set types has been allowed for CTC in linter checks * Enable Energy-gateway and Energy Management apps run ESP32 CI (#40327) * Made Energy-gateway and Energy Management apps run ESP32 CI * Update .github/workflows/examples-esp32.yaml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Updated examples-esp32.yaml so it only runs the build if there have been changes in particular folders. * Test commit to check if code changes trigger build of EGA / EMA. Will revert this commit later. * Restyled by clang-format * Revert "Test commit to check if code changes trigger build of EGA / EMA. Will revert this commit later." This reverts commit 797e2d8a67b603e099c0b530e4c89f24f7bcce9c. --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Restyled.io <commits@restyled.io> * [OpenSSL] Removing deprecated functions + Adding missing nullptr check (#40590) * changing deprecated functions to new functions * Adding nullptr check and stop using strlen * integrate gemini comments * cast int to size_t since triggering macOs build error * Automating TC-LWM-2.1 (step 7) and updating pics (#39972) * Automating step 7 and updating pics * Restyle * Restyle * Move defaults vars to its own file. (#39696) * Moved _DEFAULTS_ to single file * Update file name * Trying new import type * Fix lint * Removed _ prefix from DEFAULT variables * Updated name from matter_global_defaults to matter_testing_defaults * isort fix * Update matter_test_config to use variables from matter_testing_defaults * Restyled by isort * Restyled by isort * Conflict typo * Fix from CI jo * Restyled by gn * Restyled by isort * Fix import path * Restyled by gn * Restyled by isort * Update file name to match new path matter/testing instead of chip * Restyled by gn --------- Co-authored-by: Restyled.io <commits@restyled.io> * esp32: remove unused Wi-Fi AP settings (#39734) * Enable HardPrivacy mode in the CameraDevice to enable optional attribute HardPrivacyModeOn. (#40598) This is to allow a successful wildcard read of all attributes on the AVSM cluster. * Increase unit test code coverage of `credentials/attestation_verifier/` by 4.3% (#40540) * Add tests for PartialDACVerifier - Added tests to check PartialDACVerifier with invalid parameters (empty attestation info) and with. - Added tests to check PartialDACVerifier with an overly large attestationElements buffer. - Updated build.gn to include the new test file in the build. * Refactor callback function formatting and add comments * Add tests for the DacOnlyPartialAttestationVerifier - TestWithValidAttestation: Tests verifier with valid certificate assets - TestWithVIDPIDMismatch: Tests handling of mismatched Vendor/Product IDs - TestWithNonceMismatch: Tests nonce validation scenarios - TestWithValidDACButInvalidPAI: Tests invalid PAI certificate handling - TestWithMismatchedVendorIDs: Tests DAC/PAI vendor ID mismatch detection - TestPassingVIDPIDChecks: Tests certificates that pass VID/PID validation - TestWithMatchingPAIAndDACProductIDs: Tests matching product ID scenarios - TestWithMismatchedPAIAndDACProductIDs: Tests product ID mismatch detection - TestWithInvalidAttestationSignatureFormat: Tests oversized signature handling * Add comments for readability - Added comments for improve code readbility - Removed a useless test case - Refactored some part of the code * Refactor TestDacOnlyPartialAttestationVerifier to reduce boilerplate - Moved common objects (PartialDACVerifier, attestationResult, attestationCallback) into the test fixture as member variables. - Updated all test cases to use these members directly. - This makes the tests cleaner, easier to maintain, and follows the style guide's advice to avoid repetition. * Cleanup and fix unit tests - Deleted all useless and incorrect tests that did not exercise the intended code paths. - Added missing tests to cover important error conditions and certificate validation scenarios. - Replaced hardcoded vendor/product IDs with descriptive constants for clarity. - Improved naming of alternate vendor/product ID constants for mismatch scenarios. - Changed some comments * Migrate Group Key Management Cluster to be Code Driven (#40504) * Initial seperation of cluster * Update config * Codegen * Complete initial cluster impl, update build files * Add codegen integration * Fix build issues * Use codegen mandatory attributes * Use anon namespace, remove old cluster code * Add unit tests * Restyled by whitespace * Restyled by clang-format * Restyled by gn * Remove old header includes * Remove unused variable * Update BUILD.gn for test * Update config and CodegenIntegration * Codegen * Remove unneeded chip::app references * Restyled by clang-format * Codegen * Add NotifyAttributeChangedIfSuccess on WriteAttribute * Fix CodegenIntegration callback * Update src/app/clusters/group-key-mgmt-server/group-key-mgmt-cluster.cpp Co-authored-by: Andrei Litvin <andy314@gmail.com> * Address review comments * Restyled by whitespace * Restyled by clang-format --------- Co-authored-by: Restyled.io <commits@restyled.io> Co-authored-by: Andrei Litvin <andy314@gmail.com> * [Test Update] ACL_2_8 test module changes for testing ACL override List method (#40238) * Rebasing changes from master into TC_ACL_2_8_Update and squashing commits Adding support for flag forceLegacyListEncoding, useful when writing Attributes with Legacy Write Request Combining prior commits into one im order to merge latest changes WIP: Example of forcing old Write Encoding fixing typehint Update TC_ACL_2_3.py - Added force_legacy_encoding parameter to TC_ACL_2_3 test - Added support for controlling the forceLegacyListEncoding parameter in the TC_ACL_2_3 test through the existing --bool-arg CLI infrastructure. The parameter defaults to True if not specified and can be set via: --bool-arg force_legacy_encoding:false - This allows testing both legacy and non-legacy list encoding behaviors through the test runner. Update TC_ACL_2_3.py Changed expected result for test step 18, as the result should be D_OK_EMPTY if forced legacy encoding, otherwise it should be D_OK_FULL if using the new encoding restyle Updated TC_ACL_2_3 test module: - Changing to establishing a new local function to contain test code - Running the new local function from the main test function, changing the bool value for the force_legacy_encoding var between iterations Restyled by autopep8 clang-tidy fixes: use make_unique to create unique_ptrs making forceLegacyListEncoding default to False Updating TC_ACL_2_8 python3 test module: - Added legacy mode rerun loop to verify that the test will work for both the new and legacy list write methods. - Added test step 11 to show that the test will be rerun after the new list method has completed. - Added resetting the fabrics inbetween the loops of running the new and legacy write list test runs. - This is for easier review of modified ACL_2_6 test module for override PR here: [38693](https://github.com/project-chip/connectedhomeip/pull/38693) - Test Plan PR Link: *To be added* Restoring minor changes noticed during rebase * Update TC_ACL_2_3.py * Update TC_ACL_2_3.py * Stylizer fixes applied * Resolving linting error * Combining teardown th logic between tests into an async function as suggested by Gemini AI * Refactor test steps 9 and 10 in TC_ACL_2_8 to remove code duplication and improve maintainability: - Unified event extraction and verification logic for both legacy and new encoding modes - Always verify the initial 'added' event outside the encoding-specific logic - Consolidated fabricIndex checks into a single loop for all relevant events - Improved readability and maintainability by reducing duplicated code in steps 9 (TH1) and 10 (TH2) * Re-adding test step 11 * Restyled by autopep8 * Updating verbiage for expected results for test steps 9 and 10 --------- Co-authored-by: Alami-Amine <aalami90@gmail.com> Co-authored-by: Restyled.io <commits@restyled.io> * [Test Update] Updating TC_ACL_2_6 test module to include validation for legacy override list write method (#40267) * Updating TC_ACL_2_6 test module to include validation for legacy override list write method: - Update ACL_2_6 python3 test module to add override for list write methods - Updated test steps to match override for legacy and new write lists methods - Created test loop to run test with override then without override - Updated test step 5 to validate override works as expected for this test - Test Plan PR Link: 5183 (Already Merged) * autopep8 and isort fixes implemented * Apply suggestions from code review by Gemini Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> * Updating test step 5 to remove redundant check no longer needed * Refactor: add _validate_event_fields helper for TC_ACL_2_6 test step 5 event validation * Apply suggestions from code review from Amine Updating test to rerun with legacy write list encoding mechanism, instead of with the new write list encoding mechanism Co-authored-by: Amine Alami <43780877+Alami-Amine@users.noreply.github.com> * Resetting ACL events to only admin/case before re-running test with legacy list encoding mechanism * Swapping if statement order in test step 8 * Restyled by autopep8 * Added comment in code for urgency delivery flag for read event and set a new var to hold the magic value --------- Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Co-authored-by: Amine Alami <43780877+Alami-Amine@users.noreply.github.com> Co-authored-by: Restyled.io <commits@restyled.io> * Adding WiFi Validation (#39573) * Adding WiFi Validation * Update PICS from CNET.S to CNET.S.F00 and remove internal check * Centralize codegen integration (#40553) * Start some prototypes * More integration * More work * Restyle * Update attributes sets a bit to help for more generic code * Comment update * General diangostics integration: this seems to cost too much right now * Start seeing some savings afte wifi cluste migration. We are now at 212 bytes of overhead on efr32 and with much better logging * Another update, we are at 124 bytes of overhead * Code size diff is now 100% a wash * All attributes logic... * Slight API cleanup * Add some unit tests * Slightly shorter code * Restyled by clang-format * Use maxendpointcount be 1 * Fix conditional * Fix typo * Fix copy and paste * Update data type * Fix typo * Remove %u check ... althouhg this is silly... * Add file names to gni file * Fix ota provider * Also convert basic information * slight arrange * Undo submodule update * Add one more ember override in dynamic dispatcher * Restyled by clang-format * Fix ifdef not being defined * Fix typo * Fix typo * Update src/app/server-cluster/tests/TestOptionalAttributeSet.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Slight clarity update * Ameba does not like typeof * Also convert the pushav stream transport server * fix compiles * fix compiles * Logic fix in pushav stream server * Slight test adjustment: better comments and looks like a better test * Update src/data-model-providers/codegen/ClusterIntegration.h Co-authored-by: Sergio Soares <sergiosoares@google.com> * Update src/data-model-providers/codegen/ClusterIntegration.cpp Co-authored-by: Sergio Soares <sergiosoares@google.com> * Update comments * Restyled by clang-format * Update some comments to have better capitalization * More comment updates * Some review feedback: updated variable name, added more comment on destroy interface * More renames based on review feedback * A few comment updates * place logging on a configuration flag * Convert group key management cluster as well * make feature map return a value * Restyled by clang-format * Restyled by gn * Fix comment --------- Co-authored-by: Andrei Litvin <andreilitvin@google.com> Co-authored-by: Restyled.io <commits@restyled.io> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Sergio Soares <sergiosoares@google.com> * Update Video/Snapshot streams to adjust range parameters when reusing streams during allocations (#40572) * Adjust IsCompatible for Video and Snapshot streams. * Update the Video and Snapshot streams to adjust the range parameters when an already allocated stream is being re-used. -Minor update to bitRates in scripts and device for AudioStream allocation. * Add test script to validate a narrower range setting of the SnapshotStream min/max resolution during Stream allocation reuse. * Rename variables * Fix BUILD.gn detecting host platform as linux-x86_64 on macOS (#40613) * [Camera] Refactor the AllocateVideoStream method to config camera parameters (#40606) * Refactor the AllocateVideoStream method to accept optional parameters for minimum width, height, frame rate, and bit rate. * Address review comments * Address review comments * Address review lef comment * Implementation of PushAVTransport and PushAVStreamTransportDelegate (#38331) * Implement PushAVTransport and PushAVStreamTransportDelegate. Co-Author: Tushant Yadav <t.yadav@samsung.com> Co-Author: Chayan Ailawalia <c.ailawalia@samsung.com> Signed-off-by: Raveendra Karu <r.karu@samsung.com> * Restyled by clang-format * Restyled by gn * addressed build issue Co-Author: Tushant Yadav <t.yadav@samsung.com> * Implemented delegate API Co-Author: Tushant Yadav <t.yadav@samsung.com> * restyled and commented cluster dependent code Co-Author: Tushant Yadav <t.yadav@samsung.com> * Restyled by clang-format * Restyled by gn * code cleanup Co-Author: Tushant Yadav <t.yadav@samsung.com> * Implement PushAVTransport integration and code cleanup - Add PushAVTransport cluster support to camera-app - Remove TODO comments as dependencies are now resolved - Clean up BUILD.gn files and remove outdated comments Author: Tushant Yadav <t.yadav@samsung.com> * Updated namespace Author: Tushant Yadav <t.yadav@samsung.com> * Rebase to latest code. Signed-off-by: Raveendra Karu <r.karu@samsung.com> * Restyled by clang-format * Restyled by gn * Address LINT errors. Signed-off-by: Raveendra Karu <r.karu@samsung.com> * Fix compile erros to unblock CI * Fix compile error --------- Signed-off-by: Raveendra Karu <r.karu@samsung.com> Co-authored-by: Restyled.io <commits@restyled.io> Co-authored-by: Yufeng Wang <yufengwang@google.com> * ESP32: Add APIs to get random values from secure cert partition (#40563) * ESP32: Add APIs to get random values from secure cert partition * address review from gemini * add some comments and fix names * ESP32: remove redundant c++17 flag setting from example's main component (#40586) All examples already set the C++ standard in the project-level CMakeLists.txt. The main component redundantly sets it again. As per the ESP-IDF C++ support guide, a component should only override the C++ version if it intends to use a different one. We want to keep a consistent version across the project, so the redundant setting is removed. * [Realtek] Support ci test (#40561) * [Realtek] Support ci test * [Realtek] add subset ci build * [Realtek] Add bloat report * [Realtek] Fix build error * [Realtek] Fix build error * [Realtek] Add upload reports * [Tizen] Disable CI size report since it is not necessary (#40627) * Fix Matter Refrigerator and Temperature Controlled Example (#40625) * Remove white space * Fix anchor link's Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> * Update README.md --------- Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> * [TC_EEVSE_2.7] - Fix test script - Fails if run after another test without rebooting DUT (#40498) * Added step 4 (shuffling step numbering) - which sends Disable to EVSE to ensure it is in known state at beginning of test. * Update src/python_testing/TC_EEVSE_2_7.py Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> * Update src/python_testing/TC_EEVSE_2_7.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Hasty Granbery <granbery@google.com> * Additional AGP 8.5.1+ NDK r28 changes (#40462) * [Linux] Disable CI size report since it is not necessary (#40633) * [Create Test] Create ACL 2 9 python3 test module (#39792) * [Create test] Create python3 test module for TC_ACL_2_9 - Create python3 test module for TC_ACL_2_9 for matter-test-scripts task #[620](https://github.com/project-chip/matter-test-scripts/issues/620) - Test steps 1-11 fully implemented and functional - Currently WIP as we need to find a way to cleanup after test steps are run as this test leaves the TH with manage access only and not admin access once this test completes * Added TODO for resetting ACL back to admin rights at end of test steps * Apply suggestions from code review from Gemini-AI Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> * Updating TC_ACL_2_9 python3 test module: - Resolving issue noticed with latest changes suggested by Gemini-AI bot - isort and autopep8 run to resolve sytle issues noticed * Resolving linting errors * Restyled by autopep8 * Updating TC_ACL_2_9 python3 test module: - Changed to establishing TH2 and ran TH2 through the test steps in place of TH1 - Had TH1 remove TH2 fabric index at the end of the test as a final clean up step * Resolving style issues with autopep8 and isort * Removed Test_TC_ACL_2_9 yaml module and references in test runner docs * Update TC_ACL_2_9.py updating chip namespace imports to matter * Restyled by isort * Update src/python_testing/TC_ACL_2_9.py Co-authored-by: C Freeman <cecille@google.com> --------- Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Co-authored-by: Restyled.io <commits@restyled.io> Co-authored-by: C Freeman <cecille@google.com> * Fix crash if JSON Revocation Set is malformed (#40630) * Fix Crash if JSON Revocation Set is malformed * Adding a testcase that covers the failure * integrate AI * Integrating Comment * Removing timeout ceiling from GetConnectedDevice (#40632) * [Camera] Revert Create Video Pipeline change (#40619) * Revert Create Video Pipeline change * Update examples/camera-app/linux/src/camera-device.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Address gemini comments --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Integrate PushAvStreamTransport into camera app (#40573) * Fix StreamUsage constraint checks for Audio and Video stream allocation (#40617) * Fix StreamUsage constraint checks for Audio and Video stream allocation * Adjust test scripts for the new constraints around StreamUsage enum. * Return DynamicConstraintError if the StreamUSage for the de-allocated streamID is Internal. * [Android][Docker] Upgrade Android API level 30 to 34 (#40615) Fix SDK Platform 34 download link * [Camera-Controller] Add instructions for uploading video clip via Push AV Transport (#40624) * Add instructions for uploading video clip via Push AV Transport * Update examples/camera-controller/README.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update examples/camera-controller/README.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update examples/camera-controller/README.md Co-authored-by: Pradip De <pradip.de@gmail.com> * Update examples/camera-controller/README.md Co-authored-by: Pradip De <pradip.de@gmail.com> * Address review comments --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Pradip De <pradip.de@gmail.com> * Add enum handling in AttributePersistence. (#40568) * Add enum check and unit tests * Change AttributePersistence UT * Restyled by whitespace * Restyled by clang-format * Make explicit change in handling for enums * Add missing file to BUILD.gn * Add explicit initialization to avoid static analysis error * Remove TestEnum logic * Change macros for tests * Separate template for enums * Fix header order and add additional Assert for enums --------- Co-authored-by: Restyled.io <commits@restyled.io> * [Closures] Add secure state field validation check. (#40276) * add secure state feild validation * Add test cases * Restyled by whitespace * Restyled by clang-format --------- Co-authored-by: Restyled.io <commits@restyled.io> * [Chef] [Minor fix] [Roomairconditioner] Fix few ZAP initialisation values for setpoint ranges (#40597) * String type has been allowed for CTC in linter checks * Example app. Restyled * Server srcs. Restyled * Updated AtrrMgmt template * Improve by CR request * Server srcs. Restyled * Just to keep changes * Added new tests path * Added actual test cases. * Added few test cases * Upd by Gemeni CR notes * Fixed a Linux build issue * Code style fix * Fixed some build erros in Linux/gcc * Another one fix for CI passing * Code style fix * Removed unused namespace * To save current changes * Fixes to passing some CI checks * Ussed fet test casses in UT set * Bixes build issue in linux env * Applied restyler fix * Few minoe fixes by Gemini CR * Added blockMode fieald in ctx * Just to same progress * Updated some lists len constraints * Added new UT case * Code style upd * Reverted an unwanted edit * Just to save last changes * Just to save last changes in example * Add docs explaining problems in ScanNetworks handling during commissioning. (#40761) * [NXP] Enable Zigbee (#40513) Signed-off-by: Mihnea Pascu <mihnea.pascu@nxp.com> * [ESP32] Fix the BLE advertisement data parsing for BLE scanner (#40733) * ESP32: Fix the BLE advertisement data parsing for BLE scanner * Restyled by clang-format * AI review changes --------- Co-authored-by: Restyled.io <commits@restyled.io> * \ No newline at end of file * \ No newline at end of file * Changed the way to finding of values for Current/Next DayEntryDate attrs * Updated the tariff data sample for NoBlock case * Small improvements in definition of attr validators helpers * Example app. Updates in attr validation context * Upd validator for Tariff Period values * Just to save last changes * Update the GetTariffComponet response * Small updates in validation * Fix to avoid build issues in Linux * Server implementation. Restyled * Example app. Restyled * Fixed comment * Added another variant for ListToMap template * Small fixes by Gemini's CR notes * Fixed log message * Fixed msg format * Restyler update * Server implementation. Removig if X-pattern macro * Just to save last changes * Fixed few critical issues * Update examples/energy-gateway-app/commodity-tariff/src/CommodityTariffEventTriggers.cpp Co-authored-by: Hasty Granbery <hasty@granbery.org> * Server sources. Fixes and improvements by last CR * Server sources. Fixed log messages to AppServer * Server sources. Fixed log messages to AppServer * Reverted path's changhing * Samll code improvements * Upd the xml * Restyled * Removed X-pattern macro * Fixed log message format * Code style fix * Code style fix * Removed asserts and fixed some comments * Fixed some build issues in ESP32 build env * Restyled by whitespace * Fixed XMLs * Update examples/energy-gateway-app/commodity-tariff/include/CommodityTariffSamples.h Co-authored-by: jamesharrow <93921463+jamesharrow@users.noreply.github.com> * Removed unnecessary lines * ESP32 build fix * Upd log messages type * Small arg name fix * Restyled by clang-format * Patch some compile errors in commodity-tariff-server * unwrapped the X-pattern macro * Template dummies mark as not implemented * Fixed naming in function args * Added ret code for the current attr updating methods * Upd ret value for SpanCopiers<> * Removed unused func declaration * big function from a .h file moved to cpp * Jost to store last changhes * Added common GetMgmtObj method to access for all Atts mgmt objs by enum key * Restyler fix * Fixed rotating day checks * Upd xml's for MereId and CMC * Upd xml's for CTC --------- Signed-off-by: Raveendra Karu <r.karu@samsung.com> Signed-off-by: Mihnea Pascu <mihnea.pascu@nxp.com> Co-authored-by: Hasty Granbery <granbery@google.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Co-authored-by: Restyled.io <commits@restyled.io> Co-authored-by: Hasty Granbery <hasty@granbery.org> Co-authored-by: jamesharrow <93921463+jamesharrow@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Amine Alami <43780877+Alami-Amine@users.noreply.github.com> Co-authored-by: Ramiro Recchia <rrecchia@google.com> Co-authored-by: jtrejoespinoza-grid <juanerasmo@google.com> Co-authored-by: Dejin <45139296+DejinChen@users.noreply.github.com> Co-authored-by: Pradip De <pradipd@google.com> Co-authored-by: Lyudmila Kostanyan <119743330+LyudmilaKostanyan@users.noreply.github.com> Co-authored-by: Zaid Omer <zaidomer@google.com> Co-authored-by: Andrei Litvin <andy314@gmail.com> Co-authored-by: Jake Ororke <jororke@csa-iot.org> Co-authored-by: Alami-Amine <aalami90@gmail.com> Co-authored-by: Andrei Litvin <andreilitvin@google.com> Co-authored-by: Sergio Soares <sergiosoares@google.com> Co-authored-by: Philip Gregor <147669098+pgregorr-amazon@users.noreply.github.com> Co-authored-by: Yufeng Wang <yufengwang@google.com> Co-authored-by: [Samsung] Raveendra Karu <r.karu@samsung.com> Co-authored-by: Shubham Patil <shubham.patil@espressif.com> Co-authored-by: Realtek-pankore <86098180+pankore@users.noreply.github.com> Co-authored-by: Arkadiusz Bokowy <a.bokowy@samsung.com> Co-authored-by: Ludovic BOUÉ <lboue@users.noreply.github.com> Co-authored-by: C Freeman <cecille@google.com> Co-authored-by: Pradip De <pradip.de@gmail.com> Co-authored-by: Moises Terrones <moises.tersal@gmail.com> Co-authored-by: sabollim-silabs <158290810+sabollim-silabs@users.noreply.github.com> Co-authored-by: Shreyas Balakrishna Bhandare <bhandares@google.com> Co-authored-by: Boris Zbarsky <bzbarsky@apple.com> Co-authored-by: MihneaP-nxp <mihnea.pascu@nxp.com> Co-authored-by: Wang Qixiang <43193572+wqx6@users.noreply.github.com>
Builds
Tests
Tools
Documentation
Matter (formerly Project CHIP) creates more connections between more objects, simplifying development for manufacturers and increasing compatibility for consumers, guided by the Connectivity Standards Alliance.
Matter is a unified, open-source application-layer connectivity standard built to enable developers and device manufacturers to connect and build reliable, and secure ecosystems and increase compatibility among connected home devices. It is built with market-proven technologies using Internet Protocol (IP) and is compatible with Thread and Wi-Fi network transports. Matter was developed by a Working Group within the Connectivity Standards Alliance (Alliance). This Working Group develops and promotes the adoption of the Matter standard, a royalty-free connectivity standard to increase compatibility among smart home products, with security as a fundamental design tenet. The vision that led major industry players to come together to build Matter is that smart connectivity should be simple, reliable, and interoperable.
Matter simplifies development for manufacturers and increases compatibility for consumers.
The standard was built around a shared belief that smart home devices should be secure, reliable, and seamless to use. By building upon Internet Protocol (IP), Matter enables communication across smart home devices, mobile apps, and cloud services and defines a specific set of IP-based networking technologies for device certification.
The Matter specification details everything necessary to implement a Matter application and transport layer stack. It is intended to be used by implementers as a complete specification.
The Alliance officially opened the Matter Working Group on January 17, 2020, and the specification is available for adoption now.
Visit buildwithmatter.com to learn more and read the latest news and updates about the project.
Matter is developed with the following goals and principles in mind:
Unifying: Matter is built with and on top of market-tested, existing technologies.
Interoperable: The specification permits communication between any Matter-certified device, subject to users’ permission.
Secure: The specification leverages modern security practices and protocols.
User Control: The end user controls authorization for interaction with devices.
Federated: No single entity serves as a throttle or a single point of failure for root of trust.
Robust: The set of protocols specifies a complete lifecycle of a device — starting with the seamless out-of-box experience, through operational protocols, to device and system management specifications required for proper function in the presence of change.
Low Overhead: The protocols are practically implementable on low compute-resource devices, such as MCUs.
Pervasive: The protocols are broadly deployable and accessible, by leveraging IP and being implementable on low-capability devices.
Ecosystem-Flexible: The protocol is flexible enough to accommodate deployment in ecosystems with differing policies.
Easy to Use: The protocol provides smooth, cohesive, integrated provisioning and out-of-box experience.
Open: The Project’s design and technical processes are open and transparent to the general public, including non-members wherever possible.
Matter aims to build a universal IPv6-based communication protocol for smart home devices. The protocol defines the application layer that will be deployed on devices and the different link layers to help maintain interoperability. The following diagram illustrates the normal operational mode of the stack:
The architecture is divided into layers to help separate the different responsibilities and introduce a good level of encapsulation among the various pieces of the protocol stack. The vast majority of interactions flow through the stack captured in the following Figure:
Security: An encoded action frame is then sent down to the Security Layer to encrypt and sign the payload to ensure that data is secured and authenticated by both sender and receiver of a packet.
Message Framing & Routing: With an interaction encrypted and signed, the Message Layer constructs the payload format with required and optional header fields; which specify the message's properties and some routing information.
Matter’s design and technical processes are intended to be open and transparent to the general public, including to Working Group non-members wherever possible. The availability of this GitHub repository and its source code under an Apache v2 license is an important and demonstrable step to achieving this commitment. Matter endeavors to bring together the best aspects of market-tested technologies and redeploy them as a unified and cohesive whole-system solution. The overall goal of this approach is to bring the benefits of Matter to consumers and manufacturers as quickly as possible. As a result, what you observe in this repository is an implementation-first approach to the technical specification, vetting integrations in practice. The Matter repository is growing and evolving to implement the overall architecture. The repository currently contains the security foundations, message framing and dispatch, and an implementation of the interaction model and data model. The code examples show simple interactions, and are supported on multiple transports -- Wi-Fi and Thread -- starting with resource-constrained (i.e., memory, processing) silicon platforms to help ensure Matter’s scalability.
We welcome your contributions to Matter. Read our contribution guidelines here.
Instructions about how to build Matter can be found here .
The Matter repository is structured as follows:
| File/Folder | Content |
|---|---|
| build | Build system support content and built output directories |
| build_overrides | Build system parameter customization for different platforms |
| config | Project configurations |
| credentials | Development and test credentials |
| docs | Documentation, including guides. Visit the Matter SDK documentation page to read it. |
| examples | Example firmware applications that demonstrate use of Matter |
| integrations | 3rd party integrations |
| scripts | Scripts needed to work with the Matter repository |
| src | Implementation of Matter |
| third_party | 3rd party code used by Matter |
| zzz_generated | ZAP generated template code - Revolving around cluster information |
| BUILD.gn | Build file for the GN build system |
| CODE_OF_CONDUCT.md | Code of conduct for Matter and contribution to it |
| CONTRIBUTING.md | Guidelines for contributing to Matter |
| LICENSE | Matter license file |
| REVIEWERS.md | PR reviewers |
| gn_build.sh | Build script for specific projects such as Android, EFR32, etc. |
| README.md | This file |
Matter is released under the Apache 2.0 license.