mirror of
https://github.com/espressif/esp-matter.git
synced 2026-04-27 19:13:13 +00:00
components/esp_matter: Fix device energy management mode cluster initialization
This commit is contained in:
@@ -233,11 +233,8 @@ void MicrowaveOvenModeDelegateInitCB(void *delegate, uint16_t endpoint_id)
|
||||
|
||||
void DeviceEnergyManagementModeDelegateInitCB(void *delegate, uint16_t endpoint_id)
|
||||
{
|
||||
VerifyOrReturn(delegate != nullptr);
|
||||
DeviceEnergyManagement::Delegate *_delegate = static_cast<DeviceEnergyManagement::Delegate*>(delegate);
|
||||
chip::BitMask<DeviceEnergyManagement::Feature> feature_map(get_feature_map_value(endpoint_id, DeviceEnergyManagement::Id));
|
||||
DeviceEnergyManagement::Instance *instance = new DeviceEnergyManagement::Instance(endpoint_id, *_delegate, feature_map);
|
||||
(void)instance->Init();
|
||||
ModeBase::Delegate *device_energy_management_mode_delegate = static_cast<ModeBase::Delegate*>(delegate);
|
||||
InitModeDelegate(device_energy_management_mode_delegate, endpoint_id, DeviceEnergyManagementMode::Id);
|
||||
}
|
||||
|
||||
void EnergyEvseDelegateInitCB(void *delegate, uint16_t endpoint_id)
|
||||
|
||||
@@ -539,6 +539,7 @@ int create(uint8_t device_type_index)
|
||||
energy_evse_config.energy_evse.delegate = &energyEvseDelegate;
|
||||
energy_evse_config.energy_evse_mode.delegate = &evseModeDelegate;
|
||||
energy_evse_config.device_energy_management.delegate = &evseDemDelegate;
|
||||
energy_evse_config.device_energy_management.feature_flags = cluster::device_energy_management::feature::power_adjustment::get_id();
|
||||
endpoint = esp_matter::endpoint::energy_evse::create(node, &energy_evse_config, ENDPOINT_FLAG_NONE, NULL);
|
||||
|
||||
esp_matter::endpoint::power_source::config_t power_source_config;
|
||||
@@ -590,6 +591,7 @@ int create(uint8_t device_type_index)
|
||||
static chip::app::Clusters::DeviceEnergyManagement::MockDeviceEnergyManagementDelegate demDelegate;
|
||||
device_energy_management_config.device_energy_management_mode.delegate = &demModeDelegate;
|
||||
device_energy_management_config.device_energy_management.delegate = &demDelegate;
|
||||
device_energy_management_config.device_energy_management.feature_flags = cluster::device_energy_management::feature::power_adjustment::get_id();
|
||||
endpoint = esp_matter::endpoint::device_energy_management::create(node, &device_energy_management_config, ENDPOINT_FLAG_NONE, NULL);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -31,9 +31,12 @@ CHIP_ERROR MockModeBaseDelegate::GetModeLabelByIndex(uint8_t modeIndex, MutableC
|
||||
|
||||
CHIP_ERROR MockModeBaseDelegate::GetModeValueByIndex(uint8_t modeIndex, uint8_t &value)
|
||||
{
|
||||
// Implement your own logic here.
|
||||
ESP_LOGE(LOG_TAG, "%s is not implemented", __func__);
|
||||
return CHIP_ERROR_PROVIDER_LIST_EXHAUSTED;
|
||||
// ModeBase instance initialization expects at least one mode to initialize successfully.
|
||||
if (modeIndex > 0) {
|
||||
return CHIP_ERROR_PROVIDER_LIST_EXHAUSTED;
|
||||
}
|
||||
value = 0;
|
||||
return CHIP_NO_ERROR;
|
||||
}
|
||||
|
||||
CHIP_ERROR MockModeBaseDelegate::GetModeTagsByIndex(uint8_t modeIndex, DataModel::List<detail::Structs::ModeTagStruct::Type> &modeTags)
|
||||
|
||||
Reference in New Issue
Block a user