diff --git a/Software/src/inverter/SOLAX-CAN.cpp b/Software/src/inverter/SOLAX-CAN.cpp index 45a5dde8..ad607fff 100644 --- a/Software/src/inverter/SOLAX-CAN.cpp +++ b/Software/src/inverter/SOLAX-CAN.cpp @@ -129,6 +129,14 @@ void update_values_can_inverter() { //This function maps all the values fetched } } + //Cap the value according to user settings. Some inverters cannot handle large values. + if ((max_charge_rate_amp * 10) > datalayer.battery.info.max_charge_amp_dA) { + max_charge_rate_amp = (datalayer.battery.info.max_charge_amp_dA / 10); + } + if ((max_discharge_rate_amp * 10) > datalayer.battery.info.max_discharge_amp_dA) { + max_discharge_rate_amp = (datalayer.battery.info.max_discharge_amp_dA / 10); + } + // Batteries might be larger than uint16_t value can take if (datalayer.battery.info.total_capacity_Wh > 65000) { capped_capacity_Wh = 65000;