You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Many thanks for providing this api. Truly amazing work.
This week I purchased a new MGS6. I have noticed there are a few features that the iSmart app allows the user to control that aren’t in this api yet which will benefit some of the new cars coming out from MG:
heated rear seats (left and right). This is standard on the Trophy model of the MGS6. Also comes as standard on MGIM5 and MGIM6. On my S6 Trophy, the app only allows for on and off of the rear seats individually (unlike the front seats with 3 levels of heat)
heated steering wheel. This si standard on Trophy model of the MGS6. Also available on MG4 EV, MGS5, MGIM5 and MGIM6
ventilated front seats. This is standard on the Trophy model of the MGS6. Also comes as standard on the MGIM5 and MGIM6. It doesn’t seem to be exposed in iSmart app though. Maybe accessible in the api?
Cyberster has heated steering wheel too - although I’m not sure why I would need support in HA. The wheel heats up very quickly once you turn it on in the car.
Cyberster has heated steering wheel too - although I’m not sure why I would need support in HA. The wheel heats up very quickly once you turn it on in the car.
In HA, assuming you leave home similar time on selected days and it is cold outside, you can build an automation to turn on chair heating, steering wheel heating and heat the cabin so the car is all toasty warm all over when you get in. Especially if you have medical conditions meaning hands really feel the cold
Also just want to add an extra rquest - in the iSmart app, on the MGS6 at least, there is an option called 'Ventilation'. Not sure if it is on other cars as well, but it drops the window slightly to allow air in the car eg on a hot day (useful feature at the moment where the UK is roasting!)
@townsmcp Thanks for the detailed request. I've split it into sub-issues: #33 (steering wheel), #34 (rear seats), #35 (ventilated front seats), #36 (window ventilation).
None of these are supported yet. The library follows the iSmart app's protocol, so we need live captures of the app traffic from an MG S6.
@townsmcp I looked at your fork. It already covers most of this: the heated steering wheel (#33), rear heated seats (#34) and window ventilation (#36). It also has the front-seat left/right naming fix and the richer error codes.
Would you open pull requests against this repo? Separate PRs would be easiest to review:
Seat, steering wheel and window features. Your feat/rear-seat-heat-levels branch looks like a good base.
Error codes and SaicReturnCode (feat/error-codes).
Please:
Rebase on current master.
Leave out the CI, PyPI publish, README credits, funding and pyproject.toml changes.
Please also confirm that the captured traffic came from an MG S6 EV, and which region. Ventilated front seats (#35) aren't covered yet, so the Telegram capture offer above still applies to that one.
Thanks @nanomad. I've opened the first PR, for #33 (heated steering wheel). It's built on current master, with none of the CI, publishing, metadata or close() changes.
To confirm: the captures came from my MG S6 EV, on a UK account (EU servers).
I'll keep the PRs small, one per feature, so each is quick to review. Next up:
ventilated front seats (Ventilated front seats control #35): the iSmart app on my S6 does have them, and I've captured the controls, so I'll open a PR for that one too
@nanomad, I've also opened # for the front-seat left/right naming fix you mentioned (17/18 are the physical front-left/right seats on both LHD and RHD cars, not driver/passenger), with a PR to follow.
@nanomad, I've opened #54 for the richer error codes / SaicReturnCode, with a PR to follow. Window ventilation (#36) is also up now, and doesn't depend on the seat PRs.
Quick question on the app logic you mentioned in #35. I pulled the current Android apps from my Android dev phone (MG iSmart EU 3.0.8 and MAXUS EU 2.0.3) to have a look myself, but both are packed with iJiaMi. The real code is encrypted, and only the resources (strings and layouts) are readable.
How did you get to readable code? An older version from before the packing, a dump at runtime, or a different app? I'd like to use the same route to check how features like ventilated seats or discharging are gated per model, so we're not guessing. I am on Telegram if you would rather not say here.
Activity
Johndowne commentedon Jun 7, 2026
Cyberster has heated steering wheel too - although I’m not sure why I would need support in HA. The wheel heats up very quickly once you turn it on in the car.
townsmcp commentedon Jun 7, 2026
In HA, assuming you leave home similar time on selected days and it is cold outside, you can build an automation to turn on chair heating, steering wheel heating and heat the cabin so the car is all toasty warm all over when you get in. Especially if you have medical conditions meaning hands really feel the cold
townsmcp commentedon Jun 23, 2026
Also just want to add an extra rquest - in the iSmart app, on the MGS6 at least, there is an option called 'Ventilation'. Not sure if it is on other cars as well, but it drops the window slightly to allow air in the car eg on a hot day (useful feature at the moment where the UK is roasting!)
nanomad commentedon Oct 17, 2026
@townsmcp Thanks for the detailed request. I've split it into sub-issues: #33 (steering wheel), #34 (rear seats), #35 (ventilated front seats), #36 (window ventilation).
None of these are supported yet. The library follows the iSmart app's protocol, so we need live captures of the app traffic from an MG S6.
nanomad commentedon Oct 17, 2026
@townsmcp I looked at your fork. It already covers most of this: the heated steering wheel (#33), rear heated seats (#34) and window ventilation (#36). It also has the front-seat left/right naming fix and the richer error codes.
Would you open pull requests against this repo? Separate PRs would be easiest to review:
feat/rear-seat-heat-levelsbranch looks like a good base.SaicReturnCode(feat/error-codes).Please:
master.pyproject.tomlchanges.close()methods. Add close() to release the underlying httpx.AsyncClient #31 and Raise SaicApiClosedException when a closed client is reused #32 already addedclose()and a closed-client guard.Please also confirm that the captured traffic came from an MG S6 EV, and which region. Ventilated front seats (#35) aren't covered yet, so the Telegram capture offer above still applies to that one.
townsmcp commentedon Oct 25, 2026
Thanks @nanomad. I've opened the first PR, for #33 (heated steering wheel). It's built on current
master, with none of the CI, publishing, metadata orclose()changes.To confirm: the captures came from my MG S6 EV, on a UK account (EU servers).
I'll keep the PRs small, one per feature, so each is quick to review. Next up:
SaicReturnCodetownsmcp commentedon Oct 25, 2026
@nanomad, I've also opened # for the front-seat left/right naming fix you mentioned (17/18 are the physical front-left/right seats on both LHD and RHD cars, not driver/passenger), with a PR to follow.
Progress so far:
townsmcp commentedon Oct 25, 2026
@nanomad, I've opened #54 for the richer error codes /
SaicReturnCode, with a PR to follow. Window ventilation (#36) is also up now, and doesn't depend on the seat PRs.nanomad commentedon Oct 25, 2026
@townsmcp I'm going to review them one by one, thanks for help!
townsmcp commentedon Oct 26, 2026
Quick question on the app logic you mentioned in #35. I pulled the current Android apps from my Android dev phone (MG iSmart EU 3.0.8 and MAXUS EU 2.0.3) to have a look myself, but both are packed with iJiaMi. The real code is encrypted, and only the resources (strings and layouts) are readable.
How did you get to readable code? An older version from before the packing, a dump at runtime, or a different app? I'd like to use the same route to check how features like ventilated seats or discharging are gated per model, so we're not guessing. I am on Telegram if you would rather not say here.