mirror of
https://github.com/espressif/esp-matter.git
synced 2026-04-27 19:13:13 +00:00
components/esp_matter: Add missing elements in data model
This commit is contained in:
@@ -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 {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user