Skip to content

Commit d288b9e

Browse files
Merge pull request #495 from KipK/shaper_max_current
Current Shaper now use "max_current" instead of "charge_current".
2 parents 7c4d777 + 78778e8 commit d288b9e

File tree

4 files changed

+17
-12
lines changed

4 files changed

+17
-12
lines changed

src/current_shaper.cpp

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ unsigned long CurrentShaperTask::loop(MicroTasks::WakeReason reason) {
2121
if (_enabled && !_evse->clientHasClaim(EvseClient_OpenEVSE_Divert)) {
2222
EvseProperties props;
2323
if (_changed) {
24-
props.setChargeCurrent(_chg_cur);
25-
if (_chg_cur < evse.getMinCurrent() ) {
24+
props.setMaxCurrent(_max_cur);
25+
if (_max_cur < evse.getMinCurrent() ) {
2626
// pause temporary, not enough amps available
2727
props.setState(EvseState::Disabled);
2828
}
@@ -36,7 +36,8 @@ unsigned long CurrentShaperTask::loop(MicroTasks::WakeReason reason) {
3636
event["shaper"] = 1;
3737
event["shaper_live_pwr"] = _live_pwr;
3838
event["shaper_max_pwr"] = _max_pwr;
39-
event["shaper_cur"] = _chg_cur;
39+
event["shaper_cur"] = _max_cur;
40+
event["shaper_updated"] = true;
4041
event_send(event);
4142
}
4243
if (millis() - _timer > EVSE_SHAPER_FAILSAFE_TIME) {
@@ -48,7 +49,8 @@ unsigned long CurrentShaperTask::loop(MicroTasks::WakeReason reason) {
4849
event["shaper"] = 1;
4950
event["shaper_live_pwr"] = _live_pwr;
5051
event["shaper_max_pwr"] = _max_pwr;
51-
event["shaper_cur"] = _chg_cur;
52+
event["shaper_cur"] = _max_cur;
53+
event["shaper_updated"] = false;
5254
event_send(event);
5355
}
5456
}
@@ -69,7 +71,7 @@ void CurrentShaperTask::begin(EvseManager &evse) {
6971
this -> _evse = &evse;
7072
this -> _max_pwr = current_shaper_max_pwr;
7173
this -> _live_pwr = 0;
72-
this -> _chg_cur = 0;
74+
this -> _max_cur = 0;
7375
MicroTask.startTask(this);
7476
StaticJsonDocument<128> event;
7577
event["shaper"] = 1;
@@ -110,7 +112,7 @@ void CurrentShaperTask::setState(bool state) {
110112
}
111113

112114
void CurrentShaperTask::shapeCurrent() {
113-
_chg_cur = round(((_max_pwr - _live_pwr) / evse.getVoltage()) + (evse.getAmps()));
115+
_max_cur = round(((_max_pwr - _live_pwr) / evse.getVoltage()) + (evse.getAmps()));
114116
_changed = true;
115117
}
116118

@@ -120,8 +122,9 @@ int CurrentShaperTask::getMaxPwr() {
120122
int CurrentShaperTask::getLivePwr() {
121123
return _live_pwr;
122124
}
123-
uint8_t CurrentShaperTask::getChgCur() {
124-
return _chg_cur;
125+
126+
uint8_t CurrentShaperTask::getMaxCur() {
127+
return _max_cur;
125128
}
126129
bool CurrentShaperTask::getState() {
127130
return _enabled;

src/current_shaper.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,9 @@ class CurrentShaperTask: public MicroTasks::Task
2525
bool _enabled;
2626
bool _changed;
2727
int _max_pwr; // total current available from the grid
28-
int _live_pwr; // current available to EVSE
28+
int _live_pwr; // current available to EVSE
2929
uint8_t _chg_cur; // calculated charge current to claim
30+
uint8_t _max_cur; // shaper calculated max current
3031
uint32_t _timer;
3132

3233
protected:
@@ -46,7 +47,7 @@ class CurrentShaperTask: public MicroTasks::Task
4647
bool getState();
4748
int getMaxPwr();
4849
int getLivePwr();
49-
uint8_t getChgCur();
50+
uint8_t getMaxCur();
5051
bool isActive();
5152

5253
void notifyConfigChanged(bool enabled, uint32_t max_pwr);

src/mqtt.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ void mqttmsg_callback(MongooseString topic, MongooseString payload) {
7272
else if (topic_string == mqtt_live_pwr)
7373
{
7474
shaper.setLivePwr(payload_str.toInt());
75-
DBUGF("shaper: available amps:%dA", shaper.getChgCur());
75+
DBUGF("shaper: Live Pwr:%dW", shaper.getLivePwr());
7676
}
7777
else if (topic_string == mqtt_vrms)
7878
{

src/web_server.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,8 @@ void buildStatus(DynamicJsonDocument &doc) {
244244

245245
doc["shaper"] = shaper.getState()?1:0;
246246
doc["shaper_live_pwr"] = shaper.getLivePwr();
247-
doc["shaper_chg_cur"] = shaper.getChgCur();
247+
// doc["shaper_cur"] = shaper.getChgCur();
248+
doc["shaper_cur"] = shaper.getMaxCur();
248249

249250
doc["service_level"] = static_cast<uint8_t>(evse.getActualServiceLevel());
250251

0 commit comments

Comments
 (0)