Commit Graph

917 Commits

Author SHA1 Message Date
Mahesh Pimpale 42075d5c75 components/esp_matter: generated data model using automated script
- data_model/legacy/: moved old data model to this folder
- data_model/generated/: contain the automatically generated data model
- tools/data_model_gen: contains the script to generate the data model
2026-04-15 17:05:50 +05:30
Mahesh Pimpale deca4d8f40 components/esp_matter: Add webrtc transport requestor integration 2026-04-15 16:27:32 +05:30
Shu Chen da3910cec5 Merge branch 'components/update_device_type_revision_for_matter1_5' into 'main'
components: update device type revision base on matter1.5

See merge request app-frameworks/esp-matter!1450
2026-04-08 04:18:26 +00:00
Shu Chen 4f43d17262 Merge branch 'custom-network-config' into 'main'
components/esp_matter: add CustomNetworkConfig support

See merge request app-frameworks/esp-matter!1453
2026-04-08 04:17:58 +00:00
Shu Chen 2f6aa4bba5 Merge branch 'feat/decode_command_response_as_json' into 'main'
components/esp_matter_controller: use generic TLV to JSON for command responses decoding

See merge request app-frameworks/esp-matter!1488
2026-04-07 02:42:29 +00:00
Shubham Patil c466b7ce81 components/esp_matter: add CustomNetworkConfig support
Skip the Network Commissioning cluster on the root node when
CONFIG_CUSTOM_NETWORK_CONFIG is enabled, per Matter spec condition
(!CustomNetworkConfig). This allows devices with out-of-band network
configuration (rich UI, manufacturer-specific means) to omit the
cluster as the spec permits.

- Add CONFIG_CUSTOM_NETWORK_CONFIG Kconfig option
- Conditionally skip network_commissioning in root_node config/add
- Exclude integration.cpp from build when custom config enabled
- Add weak stubs for Plugin callbacks as fallback
- Also guarded secondary network device type and all the
  attributes and commands that are part of network commissioning
  cluster
2026-04-06 17:13:27 +05:30
Hrishikesh Dhayagude c6f767254f Merge branch 'bug/resource-monitoring' into 'main'
components/esp_matter: Fix resource_monitor integration

See merge request app-frameworks/esp-matter!1475
2026-04-02 13:09:55 +08:00
Zhibin (Ryan) Wen e48dc7139b components/esp_matter/test: add jsontlv roundtrip and validation tests
Signed-off-by: Zhibin (Ryan) Wen <wenzhibin@espressif.com>
2026-04-01 14:55:27 +08:00
Zhibin (Ryan) Wen 95e523db22 components/esp_matter: improve integer validation in JSON to TLV conversion
- Add is_integral_json_number() helper to verify JSON numbers represent
  integral values before encoding.
- Add range validation for Int32 and UInt32 types to prevent overflow.
- Fix Int64 and UInt64 string parsing to properly validate input strings
  and detect conversion errors.

Signed-off-by: Zhibin (Ryan) Wen <wenzhibin@espressif.com>
2026-04-01 14:55:26 +08:00
Zhibin (Ryan) Wen a33f7bff11 components/esp_matter_controller: use generic TLV to JSON for command responses decoding
Replace hardcoded cluster-specific decoders with a generic TLV-to-JSON
conversion approach in default_success_fcn.

Signed-off-by: Zhibin (Ryan) Wen <wenzhibin@espressif.com>
2026-04-01 14:55:26 +08:00
Zhibin (Ryan) Wen 387a2f9e44 components/esp_matter: add TLV to JSON conversion utility
Add tlv_to_json.cpp/h which converts CHIP TLV data model payload
to cJSON format for debugging and interoperability.

Signed-off-by: Zhibin (Ryan) Wen <wenzhibin@espressif.com>
2026-04-01 14:55:26 +08:00
Zhibin (Ryan) Wen a06ec909f9 components/esp_matter: move jsontlv utilities to dedicated subdirectory
Signed-off-by: Zhibin (Ryan) Wen <wenzhibin@espressif.com>
2026-04-01 14:55:25 +08:00
liyashuai ad78aadb95 components: update device type revision base on matter1.5 2026-03-31 05:51:51 +00:00
Shu Chen 7706cfbdd1 Merge branch 'ci/drop-idf-v4.4' into 'main'
cleanups: drop ESP-IDF v4.4 from ci and remove check_typos.sh

See merge request app-frameworks/esp-matter!1481
2026-03-31 05:51:38 +00:00
Shu Chen b5275f458b Merge branch 'fix_start_up_event' into 'main'
components/esp_matter: call init callbacks for endpoints created before esp_matter::start

See merge request app-frameworks/esp-matter!1478
2026-03-31 05:49:32 +00:00
Shubham Patil a635162c2d ESP-IDF v4.4 is EOL, remove it from ci 2026-03-31 09:21:28 +05:30
Hrishikesh Dhayagude 437d81f785 Merge branch 'unit-test-app' into 'main'
unit tests framework with QEMU CI

See merge request app-frameworks/esp-matter!1321
2026-03-30 13:20:51 +08:00
Shu Chen 7bd359d502 Merge branch 'remove_path_check_in_eventinfo' into 'main'
esp_matter/data_model_provider: Remove path check from EventInfo

See merge request app-frameworks/esp-matter!1454
2026-03-30 01:44:16 +00:00
Rohit 9ba1ae939a components/esp_matter: Fix resource_monitor integration 2026-03-27 15:57:13 +05:30
chendejin cade5352c4 components/esp_matter: call init callbacks for endpoints created before esp_matter::start 2026-03-27 11:02:43 +08:00
Rohit cbd05e669d components/esp-matter: Fix API name as per the spec. 2026-03-26 11:29:01 +05:30
Shubham Patil 5f799b4f5a components/esp-matter: unit tests for attribute::{update,report} 2026-03-25 17:49:40 +05:30
Shubham Patil 08f53683ea component/esp-matter: unit tests for get_val and get_val_type apis 2026-03-25 17:49:32 +05:30
liyashuai 341e5fbefc data_model/change identify type attribute flag to ATTRIBUTE_FLAG_NONE to fix init failed
fixes: issue:https://github.com/espressif/esp-matter/issues/1612
2026-03-25 19:07:33 +08:00
liyashuai 6ba9eb5de4 esp_matter/data_model_provider: Remove path check from EventInfo
fixes: 1731: https://github.com/espressif/esp-matter/issues/1731#issuecomment-4040543801
2026-03-25 12:25:51 +08:00
Hrishikesh Dhayagude 864b07f505 Merge branch 'fix/cluster_pre_attribute_change_cb' into 'main'
esp_matter/data_model_provider: Add support to call ClusterPreAttributeChangeCallback from esp-matter data model provider.

See merge request app-frameworks/esp-matter!1420
2026-03-24 21:15:19 +08:00
Hrishikesh Dhayagude 7e54fc7251 Merge branch 'fix/device-energy-mgmt-mode-init' into 'main'
Fix Device Energy Management Mode Cluster Initialization

See merge request app-frameworks/esp-matter!1461
2026-03-24 21:14:24 +08:00
Shubham Patil daf12f3421 fix(data_model): unlink cluster from endpoint on cluster::destroy
cluster::destroy() freed the cluster memory and its children (attributes,
commands, events) but never removed the cluster from the parent endpoint's
linked list, leaving a dangling pointer. This caused use-after-free crashes
when creating a new cluster on the same endpoint after destroying one.

Fix: look up the parent endpoint via the endpoint_id stored in the cluster
struct and unlink before freeing, consistent with how attribute::destroy,
command::destroy and event::destroy handle their parent lists.
2026-03-18 09:03:28 +05:30
Mahesh Pimpale 9a87312bd7 components/esp_matter: Fix device energy management mode cluster initialization 2026-03-16 16:28:47 +05:30
Rohit a515c14327 esp_matter/data_model_provider: Add support to call ClusterPreAttributeChangeCallback from esp-matter data model provider. 2026-03-16 15:49:28 +05:30
Hrishikesh Dhayagude 94d54bc335 Merge branch 'feat/irrigation_system_device_type' into 'main'
Add irrigation system device type data model

See merge request app-frameworks/esp-matter!1445
2026-03-12 16:19:48 +08:00
Hrishikesh Dhayagude b40a9f6380 Merge branch 'fix/refactor-update-report-attribute-utils' into 'main'
components/esp-matter: propagate error code from attribute update/report and refactoring

See merge request app-frameworks/esp-matter!1441
2026-03-11 01:00:06 +08:00
Shubham Patil a2926640e9 components/esp-matter: propogate error code from attribute update/report
and refactoring

attribute::update and attribute::report were eating up the error code
returned by set_val and returning ESP_OK. This hide all the errors
reported by set_val.

attribute::update and attribute::report are identical with a simple
delta of whether to call the attribute callback or not. So, refactored
it into as helper function.
2026-03-10 12:27:30 +05:30
mahesh b0f4ae1258 components/esp_matter: Remove duplicate MatterCommodityMeteringPluginServerInitCallback definition 2026-03-06 12:59:55 +05:30
Mahesh Pimpale 96ab773bbc components/esp_matter: Add irrigation system device type data model 2026-03-05 11:19:24 +05:30
Hrishikesh Dhayagude d1966151a2 Merge branch 'pr_1720' into 'main'
[GH_PR] fix(data_model): silence spurious "Cluster cannot be NULL" error during dynamic endpoint init (CON-1987)

See merge request app-frameworks/esp-matter!1439
2026-03-03 13:48:56 +08:00
Hrishikesh Dhayagude 81f0a4dc85 Merge branch 'pr_1726' into 'main'
[GH_PR] fix(cluster_select): gate Thread clusters on OPENTHREAD_ENABLED (CON-1993)

See merge request app-frameworks/esp-matter!1444
2026-03-03 13:47:59 +08:00
Shubham Patil 039026f8cf components/esp_matter: handle meter identification cluster init's return
value
2026-02-25 17:13:27 +05:30
Chris Leishman a0dfcbf85f fix(cluster_select): gate Thread clusters on OPENTHREAD_ENABLED
The three Thread-related clusters (Thread Network Diagnostics, Thread
Border Router Management, Thread Network Directory) default to enabled
regardless of whether OpenThread is present. On WiFi-only devices this
causes the clusters to be registered on the root node endpoint, but
read requests fail with CHIP_ERROR_NOT_IMPLEMENTED because
CHIP_DEVICE_CONFIG_ENABLE_THREAD is disabled, producing noisy DMG
errors like:

  E chip[DMG]: Fail to retrieve data ... clusterId: 0x0000_0035 err = 2d

Add `depends on OPENTHREAD_ENABLED` so these clusters are only
available when the Thread stack is actually present.
2026-02-24 23:22:39 -08:00
Chris Leishman c718d9b504 fix(data_model): silence spurious "Cluster cannot be NULL" error during dynamic endpoint init
When using the esp_matter data model (CONFIG_ESP_MATTER_ENABLE_DATA_MODEL=y),
attribute::get(endpoint_id, cluster_id, attribute_id) is called during endpoint
registration via emberAfExternalAttributeReadCallback. If the cluster doesn't
exist on the endpoint, the lookup returns NULL, which is then passed to the
two-argument get(cluster_t*, attribute_id) overload that logs at error level.

Add a NULL guard in the three-argument overload to return nullptr early,
consistent with how command::get(endpoint_id, cluster_id, command_id) already
handles this case.

Fixes #1692
2026-02-24 07:32:17 -08:00
Hrishikesh Dhayagude 599247e215 Merge branch 'pr_1719' into 'main'
[GH_PR] Fix: Correct MinSetpointDeadBand bounds to use int8_t (CON-1986)

See merge request app-frameworks/esp-matter!1433
2026-02-18 16:29:49 +08:00
Hrishikesh Dhayagude bc7c3eb7f1 Merge branch 'fix/feature-validation-check' into 'main'
Update Feature Validation check for clusters

See merge request app-frameworks/esp-matter!1423
2026-02-18 12:44:46 +08:00
Szilveszter Szebeni 3a721c2541 Fix: Correct MinSetpointDeadBand bounds to use int8_t
MinSetpointDeadBand is defined as an int8_t, but the bounds were incorrectly created using int16_t. Updated bounds to use int8_t with the correct range (0–127).
2026-02-15 15:51:55 +01:00
Hrishikesh Dhayagude 67db90b84d Merge branch 'feat/add-zone_management-cluster' into 'main'
Add zone_management cluster in esp_matter

See merge request app-frameworks/esp-matter!1397
2026-02-13 17:51:33 +08:00
Shu Chen 77a7e01716 Merge branch 'fix_endpoint_report' into 'main'
components/esp_matter: report attribute change in endpoint::enable and disable

See merge request app-frameworks/esp-matter!1427
2026-02-10 11:06:19 +00:00
mahesh 8164d351b1 components/esp_matter:Add missing feature for device energy management cluster
Replace at most validation check with exact one for closure dimension
cluster
- removed at most validation macro
- add features for door lock, microwave oven, device energy management,
  energy evse devices in all device type app to make them conformant
2026-02-09 12:23:21 +05:30
mahesh 11b6a1d113 components/esp_matter: add zone_management cluster in esp_matter 2026-02-09 12:04:22 +05:30
chendejin dd9d4d9c53 components/esp_matter: report attribute change in endpoint::enable and disable 2026-02-09 10:51:22 +08:00
WanqQixiang 968ff042a8 CI: add astyle pre-commit hook 2026-02-03 15:30:42 +08:00
chendejin f3a727930b components/esp_matter: call init function in endpoint::enable 2026-01-30 14:09:50 +08:00