Commit Graph

1108 Commits

Author SHA1 Message Date
Shu Chen 30b0f6ea74 Merge branch 'fix/network-diag-cluster-guard' into 'main'
components/esp_matter: gate network diagnostics clusters on transport config

See merge request app-frameworks/esp-matter!1495
2026-04-20 10:02:31 +00:00
Shubham Patil 588322c892 components/esp_matter: gate network diagnostics clusters on transport config
WiFi and Thread network diagnostics clusters were unconditionally
created on the root node when their Kconfig flags were enabled,
regardless of the actual transport. A Thread-only device would
incorrectly include the WiFi Network Diagnostics cluster.

Gate cluster creation on transport-level defines so that WiFi
diagnostics are only added when WiFi is enabled, and Thread
diagnostics only when Thread is enabled.

Fixes https://github.com/espressif/esp-matter/issues/1649
2026-04-17 13:57:27 +05:30
Hrishikesh Dhayagude 5ee367a862 Merge branch 'fix_controller_remove_keyset' into 'main'
components/esp_matter_controller: fix remove group keyset

See merge request app-frameworks/esp-matter!1505
2026-04-17 13:02:08 +08:00
Hrishikesh Dhayagude 8fc33cbef2 Merge branch 'data_model_gen' into 'main'
Add automated data model generation from Matter XML specifications

See merge request app-frameworks/esp-matter!1138
2026-04-16 19:16:06 +08:00
Shu Chen 51d2fdae22 Merge branch 'controller/cb_improve' into 'main'
Controller: callbacks improvement

See merge request app-frameworks/esp-matter!1501
2026-04-16 10:06:53 +00:00
chendejin 84275136b5 components/esp_matter_controller: fix remove group keyset 2026-04-16 17:20:16 +08:00
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
WanqQixiang 7fea24a7bc controller: callback improvements 2026-04-09 17:55:44 +08:00
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 8428176dcd Merge branch 'pr_1690' into 'main'
[GH_PR] Improve 'subscribe_command` callbacks (CON-1960)

See merge request app-frameworks/esp-matter!1447
2026-03-11 18:11:53 +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
Tomas McGuinness d87aea1b84 Update subscription_command callbacks 2026-03-05 09:42:50 +00:00
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