Add dynamic strategy addition for CB PF values
This commit is contained in:
@@ -85,7 +85,9 @@ StandbyState<ModbusIP>::StandbyState() {
|
|||||||
addStrategy("CB16_kW", new SingleValueStrategy(3.1F, 3.0f, 1000));
|
addStrategy("CB16_kW", new SingleValueStrategy(3.1F, 3.0f, 1000));
|
||||||
|
|
||||||
addStrategy("MainCB_PF", new SingleValueStrategy(0.9F, 0.05f, 1000));
|
addStrategy("MainCB_PF", new SingleValueStrategy(0.9F, 0.05f, 1000));
|
||||||
|
for (int i = 1; i <= 8; i++) {
|
||||||
|
addStrategy("CB" + std::to_string(i) + "_PF", new SingleValueStrategy(0.9F, 0.05f, 1000));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -193,7 +195,21 @@ State<ModbusIP>* StandbyState<ModbusIP>::update(Equipment<ModbusIP>* equipment)
|
|||||||
setPointValue(equipment, "MainCB_L3_max_kW", mainCB_maxTotalKw);
|
setPointValue(equipment, "MainCB_L3_max_kW", mainCB_maxTotalKw);
|
||||||
setPointValue(equipment, "MainCB_L3_max_current", mainCB_maxTotalCurrent);
|
setPointValue(equipment, "MainCB_L3_max_current", mainCB_maxTotalCurrent);
|
||||||
|
|
||||||
|
static unsigned long lastMillis = millis();
|
||||||
|
unsigned long now = millis();
|
||||||
|
float dt_hours = (now - lastMillis) / 3600000.0f;
|
||||||
|
lastMillis = now;
|
||||||
|
|
||||||
|
for (int i = 1; i <= 8; i++) {
|
||||||
|
std::string kw_name = "CB" + std::to_string(i) + "_kW";
|
||||||
|
std::string total_name = "CB" + std::to_string(i) + "_TotalKW";
|
||||||
|
std::string pf_name = "CB" + std::to_string(i) + "_PF";
|
||||||
|
|
||||||
|
float kw = getPointValue(equipment, kw_name.c_str());
|
||||||
|
float accumulated = getPointValue(equipment, total_name.c_str());
|
||||||
|
setPointValue(equipment, total_name.c_str(), accumulated + kw * dt_hours);
|
||||||
|
setPointValue(equipment, pf_name.c_str(), getPointValue(equipment, pf_name.c_str()));
|
||||||
|
}
|
||||||
// Apply any strategies defined for the standby state
|
// Apply any strategies defined for the standby state
|
||||||
_applyStrategies(equipment);
|
_applyStrategies(equipment);
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|||||||
Reference in New Issue
Block a user