@@ -30,27 +30,29 @@ unsigned long CurrentShaperTask::loop(MicroTasks::WakeReason reason) {
3030 props.setState (EvseState::None);
3131 }
3232 _changed = false ;
33+ _updated = true ;
3334 _timer = millis ();
3435 evse.claim (EvseClient_OpenEVSE_Shaper,EvseManager_Priority_Safety, props);
3536 StaticJsonDocument<128 > event;
3637 event[" shaper" ] = 1 ;
3738 event[" shaper_live_pwr" ] = _live_pwr;
3839 event[" shaper_max_pwr" ] = _max_pwr;
3940 event[" shaper_cur" ] = _max_cur;
40- event[" shaper_updated" ] = true ;
41+ event[" shaper_updated" ] = _updated ;
4142 event_send (event);
4243 }
4344 if (millis () - _timer > EVSE_SHAPER_FAILSAFE_TIME) {
4445 // available power has not been updated since EVSE_SHAPER_FAILSAFE_TIME, pause charge
4546 DBUGF (" shaper_live_pwr has not been updated in time, pausing charge" );
47+ _updated = false ;
4648 props.setState (EvseState::Disabled);
4749 evse.claim (EvseClient_OpenEVSE_Shaper,EvseManager_Priority_Limit, props);
4850 StaticJsonDocument<128 > event;
4951 event[" shaper" ] = 1 ;
5052 event[" shaper_live_pwr" ] = _live_pwr;
5153 event[" shaper_max_pwr" ] = _max_pwr;
5254 event[" shaper_cur" ] = _max_cur;
53- event[" shaper_updated" ] = false ;
55+ event[" shaper_updated" ] = _updated ;
5456 event_send (event);
5557 }
5658 }
@@ -71,7 +73,8 @@ void CurrentShaperTask::begin(EvseManager &evse) {
7173 this -> _evse = &evse;
7274 this -> _max_pwr = current_shaper_max_pwr;
7375 this -> _live_pwr = 0 ;
74- this -> _max_cur = 0 ;
76+ this -> _max_cur = 0 ;
77+ this -> _updated = false ;
7578 MicroTask.startTask (this );
7679 StaticJsonDocument<128 > event;
7780 event[" shaper" ] = 1 ;
@@ -112,6 +115,7 @@ void CurrentShaperTask::setState(bool state) {
112115}
113116
114117void CurrentShaperTask::shapeCurrent () {
118+ _updated = true ;
115119 _max_cur = round (((_max_pwr - _live_pwr) / evse.getVoltage ()) + (evse.getAmps ()));
116120 _changed = true ;
117121}
@@ -132,4 +136,8 @@ bool CurrentShaperTask::getState() {
132136
133137bool CurrentShaperTask::isActive () {
134138 return _evse->clientHasClaim (EvseClient_OpenEVSE_Shaper);
139+ }
140+
141+ bool CurrentShaperTask::isUpdated () {
142+ return _updated;
135143}
0 commit comments