@@ -377,10 +377,14 @@ Status DeviceEnergyManagementDelegate::StartTimeAdjustRequest(const uint32_t req
377
377
mForecast .Value ().startTime = savedStartTime;
378
378
mForecast .Value ().endTime = savedEndTime;
379
379
380
+ MatterReportingAttributeChangeCallback (mEndpointId , DeviceEnergyManagement::Id, Forecast::Id);
381
+
380
382
return Status::Failure;
381
383
}
382
384
}
383
385
386
+ MatterReportingAttributeChangeCallback (mEndpointId , DeviceEnergyManagement::Id, Forecast::Id);
387
+
384
388
return Status::Success;
385
389
}
386
390
@@ -457,10 +461,14 @@ Status DeviceEnergyManagementDelegate::PauseRequest(const uint32_t durationS, Ad
457
461
if (cause == AdjustmentCauseEnum::kLocalOptimization )
458
462
{
459
463
mForecast .Value ().forecastUpdateReason = ForecastUpdateReasonEnum::kLocalOptimization ;
464
+
465
+ MatterReportingAttributeChangeCallback (mEndpointId , DeviceEnergyManagement::Id, Forecast::Id);
460
466
}
461
467
else if (cause == AdjustmentCauseEnum::kGridOptimization )
462
468
{
463
469
mForecast .Value ().forecastUpdateReason = ForecastUpdateReasonEnum::kGridOptimization ;
470
+
471
+ MatterReportingAttributeChangeCallback (mEndpointId , DeviceEnergyManagement::Id, Forecast::Id);
464
472
}
465
473
466
474
return Status::Success;
@@ -606,6 +614,8 @@ Status DeviceEnergyManagementDelegate::ResumeRequest()
606
614
// The PauseRequest has effectively been cancelled so as a result the device should
607
615
// go back to InternalOptimisation
608
616
mForecast .Value ().forecastUpdateReason = ForecastUpdateReasonEnum::kInternalOptimization ;
617
+
618
+ MatterReportingAttributeChangeCallback (mEndpointId , DeviceEnergyManagement::Id, Forecast::Id);
609
619
}
610
620
611
621
CHIP_ERROR err = CancelPauseRequestAndGenerateEvent (CauseEnum::kCancelled );
@@ -672,6 +682,8 @@ Status DeviceEnergyManagementDelegate::ModifyForecastRequest(
672
682
}
673
683
674
684
mForecast .Value ().forecastID ++;
685
+
686
+ MatterReportingAttributeChangeCallback (mEndpointId , DeviceEnergyManagement::Id, Forecast::Id);
675
687
}
676
688
677
689
return status;
@@ -725,6 +737,8 @@ Status DeviceEnergyManagementDelegate::RequestConstraintBasedForecast(
725
737
726
738
mForecast .Value ().forecastID ++;
727
739
740
+ MatterReportingAttributeChangeCallback (mEndpointId , DeviceEnergyManagement::Id, Forecast::Id);
741
+
728
742
status = Status::Success;
729
743
}
730
744
@@ -748,6 +762,8 @@ Status DeviceEnergyManagementDelegate::CancelRequest()
748
762
749
763
mForecast .Value ().forecastUpdateReason = ForecastUpdateReasonEnum::kInternalOptimization ;
750
764
765
+ MatterReportingAttributeChangeCallback (mEndpointId , DeviceEnergyManagement::Id, Forecast::Id);
766
+
751
767
/* It is expected the mpDEMManufacturerDelegate will cancel the effects of any previous adjustment
752
768
* request commands, and re-evaluate its forecast for intended operation ignoring those previous
753
769
* requests.
@@ -980,6 +996,8 @@ CHIP_ERROR DeviceEnergyManagementDelegate::SetOptOutState(OptOutStateEnum newVal
980
996
if ((mOptOutState == OptOutStateEnum::kOptOut ) || (mOptOutState == OptOutStateEnum::kLocalOptOut ))
981
997
{
982
998
mForecast .Value ().forecastUpdateReason = ForecastUpdateReasonEnum::kInternalOptimization ;
999
+
1000
+ MatterReportingAttributeChangeCallback (mEndpointId , DeviceEnergyManagement::Id, Forecast::Id);
983
1001
// Generate a new forecast with Internal Optimization
984
1002
// TODO
985
1003
}
@@ -988,6 +1006,8 @@ CHIP_ERROR DeviceEnergyManagementDelegate::SetOptOutState(OptOutStateEnum newVal
988
1006
if ((mOptOutState == OptOutStateEnum::kOptOut ) || (mOptOutState == OptOutStateEnum::kGridOptOut ))
989
1007
{
990
1008
mForecast .Value ().forecastUpdateReason = ForecastUpdateReasonEnum::kInternalOptimization ;
1009
+
1010
+ MatterReportingAttributeChangeCallback (mEndpointId , DeviceEnergyManagement::Id, Forecast::Id);
991
1011
// Generate a new forecast with Internal Optimization
992
1012
// TODO
993
1013
}
0 commit comments