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("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_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
|
||||
_applyStrategies(equipment);
|
||||
return nullptr;
|
||||
|
||||
Reference in New Issue
Block a user