qMin(32, m_maxIntensity) gives 0 when firmware returns 0 for MaxIntensity
(aberrant value). maxIntensity()==0 then causes every setMaxChargingCurrent
call to be clamped to 0, falling into the <6 A path which pauses charging
silently — the user sees the action succeed but the charger stops.
qBound(6, val, 32) is correct in all cases:
- firmware reports 16 A (mono Trydan) → 16 (real installation limit kept)
- firmware reports 0 (aberrant) → 6 (safe floor, does not claim 32 A)
- firmware reports 65535 (aberrant) → 32 (IEC absolute ceiling)
The real installation limit still comes from MaxIntensity read on the device;
the bounds [6, 32] are only IEC guardrails, not hardcoded defaults.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>