components/esp_matter: Add missing elements in data model

This commit is contained in:
mahesh
2025-11-19 14:31:57 +05:30
parent d65e353d8c
commit 08d74ce220
9 changed files with 172 additions and 14 deletions
@@ -3148,6 +3148,13 @@ attribute_t *create_max_measured_value(cluster_t *cluster, nullable<int16_t> val
ATTRIBUTE_FLAG_NULLABLE, esp_matter_nullable_int16(value));
}
attribute_t *create_tolerance(cluster_t *cluster, uint16_t value)
{
attribute_t *attribute = esp_matter::attribute::create(cluster, TemperatureMeasurement::Attributes::Tolerance::Id, ATTRIBUTE_FLAG_NONE, esp_matter_uint16(value));
esp_matter::attribute::add_bounds(attribute, esp_matter_uint16(0), esp_matter_uint16(2048));
return attribute;
}
} /* attribute */
} /* temperature_measurement */
@@ -772,6 +772,7 @@ namespace attribute {
attribute_t *create_measured_value(cluster_t *cluster, nullable<int16_t> value);
attribute_t *create_min_measured_value(cluster_t *cluster, nullable<int16_t> value);
attribute_t *create_max_measured_value(cluster_t *cluster, nullable<int16_t> value);
attribute_t *create_tolerance(cluster_t *cluster, uint16_t value);
} /* attribute */
} /* temperature_measurement */
@@ -1098,6 +1098,7 @@ cluster_t *create(endpoint_t *endpoint, config_t *config, uint8_t flags)
add_function_list(cluster, function_list, function_flags);
/* Attributes managed internally */
/* Setting feature here directly no need keep extra namespace for feature */
global::attribute::create_feature_map(cluster, static_cast<uint32_t>(Groups::Feature::kGroupNames));
/* Attributes not managed internally */
@@ -1449,6 +1449,14 @@ command_t *create_time_snap_shot_response(cluster_t *cluster)
return esp_matter::command::create(cluster, GeneralDiagnostics::Commands::TimeSnapshotResponse::Id, COMMAND_FLAG_GENERATED,
NULL);
}
command_t *create_payload_test_request(cluster_t *cluster)
{
return esp_matter::command::create(cluster, GeneralDiagnostics::Commands::PayloadTestRequest::Id, COMMAND_FLAG_ACCEPTED, NULL);
}
command_t *create_payload_test_response(cluster_t *cluster)
{
return esp_matter::command::create(cluster, GeneralDiagnostics::Commands::PayloadTestResponse::Id, COMMAND_FLAG_GENERATED, NULL);
}
} /* command */
} /* general_diagnostics */
@@ -1896,6 +1904,11 @@ command_t *create_stay_active_request(cluster_t *cluster)
return esp_matter::command::create(cluster, IcdManagement::Commands::StayActiveRequest::Id, COMMAND_FLAG_ACCEPTED,
esp_matter_command_callback_stay_active_request);
}
command_t *create_stay_active_response(cluster_t *cluster)
{
return esp_matter::command::create(cluster, IcdManagement::Commands::StayActiveResponse::Id,
COMMAND_FLAG_GENERATED, NULL);
}
} /* command */
} /* icd_management */
@@ -85,6 +85,8 @@ namespace command {
command_t *create_test_event_trigger(cluster_t *cluster);
command_t *create_time_snap_shot(cluster_t *cluster);
command_t *create_time_snap_shot_response(cluster_t *cluster);
command_t *create_payload_test_request(cluster_t *cluster);
command_t *create_payload_test_response(cluster_t *cluster);
} /* command */
} /* general_diagnostics */
@@ -204,6 +206,7 @@ command_t *create_register_client(cluster_t *cluster);
command_t *create_register_client_response(cluster_t *cluster);
command_t *create_unregister_client(cluster_t *cluster);
command_t *create_stay_active_request(cluster_t *cluster);
command_t *create_stay_active_response(cluster_t *cluster);
} /* command */
} /* icd_management */
@@ -43,14 +43,24 @@ event_t *create_fabric_restriction_review_update(cluster_t *cluster)
} // namespace event
} // namespace access_control
namespace bridged_device_basic_information {
namespace power_source {
namespace event {
event_t *create_active_changed(cluster_t *cluster)
event_t *create_wired_fault_change(cluster_t *cluster)
{
return esp_matter::event::create(cluster, BridgedDeviceBasicInformation::Events::ActiveChanged::Id);
return esp_matter::event::create(cluster, PowerSource::Events::WiredFaultChange::Id);
}
event_t *create_bat_fault_change(cluster_t *cluster)
{
return esp_matter::event::create(cluster, PowerSource::Events::BatFaultChange::Id);
}
event_t *create_bat_charge_fault_change(cluster_t *cluster)
{
return esp_matter::event::create(cluster, PowerSource::Events::BatChargeFaultChange::Id);
}
}
}
} // namespace event
} // namespace bridged_device_basic_information
namespace actions {
namespace event {
@@ -247,6 +257,11 @@ event_t *create_reachable_changed(cluster_t *cluster)
return esp_matter::event::create(cluster, BridgedDeviceBasicInformation::Events::ReachableChanged::Id);
}
event_t *create_active_changed(cluster_t *cluster)
{
return esp_matter::event::create(cluster, BridgedDeviceBasicInformation::Events::ActiveChanged::Id);
}
} // namespace event
} // namespace bridged_device_basic_information
@@ -718,6 +733,41 @@ event_t *create_periodic_energy_measured(cluster_t *cluster)
} // namespace event
} // namespace electrical_energy_measurement
namespace energy_evse {
namespace event {
event_t *create_ev_connected(cluster_t *cluster)
{
return esp_matter::event::create(cluster, EnergyEvse::Events::EVConnected::Id);
}
event_t *create_ev_not_detected(cluster_t *cluster)
{
return esp_matter::event::create(cluster, EnergyEvse::Events::EVNotDetected::Id);
}
event_t *create_energy_transfer_started(cluster_t *cluster)
{
return esp_matter::event::create(cluster, EnergyEvse::Events::EnergyTransferStarted::Id);
}
event_t *create_energy_transfer_stopped(cluster_t *cluster)
{
return esp_matter::event::create(cluster, EnergyEvse::Events::EnergyTransferStopped::Id);
}
event_t *create_fault(cluster_t *cluster)
{
return esp_matter::event::create(cluster, EnergyEvse::Events::Fault::Id);
}
event_t *create_rfid(cluster_t *cluster)
{
return esp_matter::event::create(cluster, EnergyEvse::Events::Rfid::Id);
}
} /* event */
} /* energy_evse */
namespace valve_configuration_and_control {
namespace event {
event_t *create_valve_state_changed(cluster_t *cluster)
@@ -40,13 +40,6 @@ event_t *create_state_changed(cluster_t *cluster);
event_t *create_action_failed(cluster_t *cluster);
} // namespace event
} // namespace actions
namespace bridged_device_basic_information {
namespace event {
event_t *create_active_changed(cluster_t *cluster);
} // namespace event
} // namespace bridged_device_basic_information
namespace basic_information {
namespace event {
event_t *create_start_up(cluster_t *cluster);
@@ -106,6 +99,7 @@ event_t *create_missing_trusted_time_source(cluster_t *cluster);
namespace bridged_device_basic_information {
namespace event {
event_t *create_active_changed(cluster_t *cluster);
event_t *create_start_up(cluster_t *cluster);
event_t *create_shut_down(cluster_t *cluster);
event_t *create_leave(cluster_t *cluster);
@@ -113,6 +107,15 @@ event_t *create_reachable_changed(cluster_t *cluster);
} // namespace event
} // namespace bridged_device_basic_information
namespace power_source {
namespace event {
event_t *create_wired_fault_change(cluster_t *cluster);
event_t *create_bat_fault_change(cluster_t *cluster);
event_t *create_bat_charge_fault_change(cluster_t *cluster);
}
}
namespace smoke_co_alarm {
namespace event {
event_t *create_smoke_alarm(cluster_t *cluster);
@@ -214,6 +217,17 @@ event_t *create_periodic_energy_measured(cluster_t *cluster);
} // namespace event
} // namespace electrical_energy_measurement
namespace energy_evse {
namespace event {
event_t *create_ev_connected(cluster_t *cluster);
event_t *create_ev_not_detected(cluster_t *cluster);
event_t *create_energy_transfer_started(cluster_t *cluster);
event_t *create_energy_transfer_stopped(cluster_t *cluster);
event_t *create_fault(cluster_t *cluster);
event_t *create_rfid(cluster_t *cluster);
} /* event */
} /* energy_evse */
namespace valve_configuration_and_control {
namespace event {
event_t *create_valve_state_changed(cluster_t *cluster);
@@ -429,10 +429,31 @@ esp_err_t add(cluster_t *cluster)
/* Attributes not managed internally */
attribute::create_operating_mode(cluster, 0);
/* commands */
command::create_stay_active_request(cluster);
command::create_stay_active_response(cluster);
return ESP_OK;
}
} /* long_idle_time_support */
namespace dynamic_sit_lit_support {
uint32_t get_id()
{
return (uint32_t)IcdManagement::Feature::kDynamicSitLitSupport;
}
esp_err_t add(cluster_t *cluster)
{
VerifyOrReturnError(cluster, ESP_ERR_INVALID_ARG);
update_feature_map(cluster, get_id());
return ESP_OK;
}
} /* dynamic_sit_lit_support */
} /* feature */
} /* icd_management */
@@ -1093,6 +1114,7 @@ esp_err_t add(cluster_t *cluster)
} /* feature */
} /* ethernet_network_diagnostics */
namespace air_quality {
namespace feature {
@@ -1894,6 +1916,27 @@ esp_err_t add(cluster_t *cluster, config_t *config)
} /* feature */
} /* pressure_measurement */
namespace general_diagnostics {
namespace feature {
namespace data_model_test {
uint32_t get_id()
{
return (uint32_t)GeneralDiagnostics::Feature::kDataModelTest;
}
esp_err_t add(cluster_t *cluster, config_t *config)
{
VerifyOrReturnError(cluster, ESP_ERR_INVALID_ARG);
update_feature_map(cluster, get_id());
command::create_payload_test_request(cluster);
command::create_payload_test_response(cluster);
return ESP_OK;
}
} /* data_model_test */
} /* feature */
} /* general diagnostics */
namespace software_diagnostics {
namespace feature {
@@ -2197,7 +2240,9 @@ esp_err_t add(cluster_t *cluster, config_t *config)
attribute::create_alarms_active(cluster, config->alarms_active);
attribute::create_alarms_supported(cluster, config->alarms_supported);
command::create_enable_disable_alarm(cluster);;
command::create_enable_disable_alarm(cluster);
event::create_alarms_state_changed(cluster);
return ESP_OK;
}
} /* visual */
@@ -2217,7 +2262,9 @@ esp_err_t add(cluster_t *cluster, config_t *config)
attribute::create_alarms_active(cluster, config->alarms_active);
attribute::create_alarms_supported(cluster, config->alarms_supported);
command::create_enable_disable_alarm(cluster);;
command::create_enable_disable_alarm(cluster);
event::create_alarms_state_changed(cluster);
return ESP_OK;
}
} /* audible */
@@ -3832,6 +3879,7 @@ esp_err_t add(cluster_t *cluster)
return ESP_ERR_INVALID_ARG;
}
update_feature_map(cluster, get_id());
return ESP_OK;
}
} /* automatic */
@@ -3967,6 +4015,9 @@ esp_err_t add(cluster_t *cluster)
// Commands
command::create_set_trusted_time_source(cluster);
// Events
event::create_missing_trusted_time_source(cluster);
return ESP_OK;
}
} /* time_sync_client */
@@ -196,6 +196,12 @@ esp_err_t add(cluster_t *cluster);
} /* long_idle_time_support */
namespace dynamic_sit_lit_support {
uint32_t get_id();
esp_err_t add(cluster_t *cluster);
} // namespace dynamic_sit_lit_support
} /* feature */
} /* icd_management */
@@ -956,6 +962,17 @@ esp_err_t add(cluster_t *cluster, config_t *config);
} /* feature */
} /* mode_select */
namespace general_diagnostics {
namespace feature {
namespace data_model_test {
uint32_t get_id();
esp_err_t add(cluster_t *cluster);
} /* data_model_test */
} /* feature */
} /* general diagnostics */
namespace software_diagnostics {
namespace feature {
@@ -1159,6 +1176,7 @@ esp_err_t add(cluster_t *cluster, config_t *config);
} /* feature */
} /* boolean_state_configuration */
namespace power_topology {
namespace feature {