effectiveMinCurrent returns the effective min current
()
| 146 | |
| 147 | // effectiveMinCurrent returns the effective min current |
| 148 | func (lp *Loadpoint) effectiveMinCurrent() float64 { |
| 149 | lpMin := lp.getMinCurrent() |
| 150 | var vehicleMin, chargerMin float64 |
| 151 | |
| 152 | if v := lp.GetVehicle(); v != nil { |
| 153 | if res, ok := v.OnIdentified().GetMinCurrent(); ok { |
| 154 | vehicleMin = res |
| 155 | } |
| 156 | } |
| 157 | |
| 158 | if c, ok := api.Cap[api.CurrentLimiter](lp.charger); ok { |
| 159 | if res, _, err := c.GetMinMaxCurrent(); err == nil { |
| 160 | chargerMin = res |
| 161 | } |
| 162 | } |
| 163 | |
| 164 | switch { |
| 165 | case max(vehicleMin, chargerMin) == 0: |
| 166 | return lpMin |
| 167 | case chargerMin > 0: |
| 168 | return max(vehicleMin, chargerMin) |
| 169 | default: |
| 170 | return max(vehicleMin, lpMin) |
| 171 | } |
| 172 | } |
| 173 | |
| 174 | // effectiveMaxCurrent returns the effective max current |
| 175 | func (lp *Loadpoint) effectiveMaxCurrent() float64 { |