1.2.3
v1.2.3
This stable release rolls up the entire 1.2.2 beta series (beta1–beta6) on top of 1.2.1.
⭐ Highlights
- New maintained API client — the global/EU backend now runs on our own
mg-saic-client, replacing the unmaintained upstream. - MG India — tyre pressures corrected, and BEVs now report mileage.
- More reliable sensors — smarter temperature glitch filtering and a fix for mileage freezing.
- MG S5 EV — proper climate handling and battery capacity.
- Holiday mode — update interval fixed.
Under the hood: our own maintained client
The global/EU backend has moved to mg-saic-client 0.9.4, our maintained fork of the upstream saic-ismart-client-ng (unmaintained for ~5 months), giving the project direct control over fixes. It's a drop-in replacement — same functionality, only the packaging changed. This also properly resolves the session-cleanup leak behind occasional "Unclosed client session" warnings on reload/restart (#233), via a public close method instead of an internal workaround.
🇮🇳 MG India
- Tyre pressures corrected (#288, thanks @Dr-Blank): Front Right was permanently
Unknown(a schema field-name mismatch), and the other three read ~3× too high (India's raw unit scaled with the global conversion). All four now report real values. - Wheel Tyre Monitor Status (TPMS) is now populated for India, and goes unavailable when the car reports nothing rather than implying "no fault".
- BEV mileage now works — the Mileage sensor was permanently unavailable on India BEVs because it required charging data those cars don't send; it now reads the odometer from status (e.g. MG Windsor EV / EQ100).
- India backend updated to
mg-ismart-india-client0.1.3: passwords capped to the app's 16-character limit, and definitive login rejections are surfaced without burning retry attempts.
🚗 Vehicle support
- MG S5 EV (MGS5): climate now correctly reports Cool when the AC is cooling (previously mislabelled "Fan only" via a generic fallback), and Total Battery Capacity now shows the confirmed 64 kWh instead of "unknown".
🔧 Fixes
- Temperature sensors: smarter glitch filtering. Transient, physically-impossible spikes (including very rapid ones, e.g. two readings 15 ms apart) are now skipped and the last good reading kept, judged by how fast the value changed rather than just how large the jump was — so the sensor no longer latches onto a bad value. Genuine changes still come through, delayed at most one poll.
- Mileage no longer sticks at 6,553.5 km. The basic-status odometer field is 16-bit and saturates past that point; it now falls back to the car's wider odometer field, so mileage reads correctly on any car over 6,553.5 km.
- A/C switch and Climate Mode select now show "unavailable" when the car is unreachable (matching the climate entity) instead of a misleading "off" or a stale value.
- Holiday mode interval is now honoured in hours instead of minutes (#290, thanks @joaommarques) — a custom interval was previously polling ~60× more often than intended.
🧹 Maintenance
- Added regression tests covering the public API session-close lifecycle and the holiday-interval unit, so both stay fixed.
Dependencies
saic-ismart-client-ng==0.9.3→mg-saic-client==0.9.4mg-ismart-india-client0.1.1 → 0.1.3
Upgrading
No configuration changes are required — existing entities, automations, and settings are unaffected. Please restart Home Assistant after updating so the new dependencies are installed.
Thanks to @Dr-Blank and @joaommarques for fixes in this release, and to @john-lazarus for the India backend and ongoing co-maintenance.