Intégration domotique MG iSMART, gratuite et open source

Voitures MG (MG4, ZS EV…) par le cloud SAIC iSMART, Europe : batterie, autonomie, charge, portes.
Affiche vos voitures MG (MG4, ZS EV, MG5, Marvel R, MG4 XPower…) dans Gladys, par le cloud SAIC iSMART (Europe), avec le compte de l'application MG iSMART.
API non officielle, jamais testée avec un vrai compte ni une vraie voiture. L'intégration parle à la passerelle de l'application MG iSMART, comme la bibliothèque saic-ismart-client-ng. SAIC peut la changer sans prévenir. Sans lien avec MG ni SAIC Motor.
Avant de commencer : un compte secondaire
SAIC n'accepte qu'une session par compte. Quand l'intégration se connecte, l'application MG de votre téléphone est déconnectée, et inversement. Le plus simple : créez un compte secondaire (autre e-mail) dans l'application MG iSMART, partagez-lui la voiture depuis votre compte principal, et donnez ce compte secondaire à Gladys.
Si vous utilisez le même compte, l'intégration se reconnecte au plus une fois par 24 h quand sa session est prise. Reprise de nouveau, elle se met en pause : nouvel essai 6 h plus tard au plus tôt, puis toutes les 24 h, et jamais moins de 24 h après sa dernière reconnexion (le bouton « Tester la connexion » compte aussi). Elle ne déconnecte donc pas l'application en boucle. Le renouvellement du jeton, quand il arrive à expiration, est aussi une connexion : il déconnecte l'application si elle utilise le même compte.
Ce que vous obtenez
Un appareil par voiture du compte, avec :
| Fonctionnalité | Contenu |
|---|---|
| Batterie | État de charge en % |
| Autonomie | En km |
| État de charge | Débranchée, Branchée sans charge, En charge, Charge terminée, programmée, défaut… |
| En charge / Branchée | Oui ou non |
| Puissance de charge | En kW, quand la voiture charge (0 sinon) |
| Kilométrage | En km |
| Verrouillage | Verrouillée ou déverrouillée (lecture seule) |
| Portes (4) et coffre | Ouvert ou fermé |
| Latitude, longitude | Position de la voiture, sans historique |
| Température intérieure | En °C |
| Climatisation (en marche) | Oui ou non, et son mode : arrêtée, ventilation, en marche, dégivrage avant |
| Dernier relevé de la voiture | Date et heure du dernier relevé envoyé par la voiture |
| Dernière commande | Le résultat de la dernière commande ou actualisation |
| Boutons | Actualiser maintenant, Verrouiller, Déverrouiller, Ouvrir le coffre, climatisation et charge (démarrer, arrêter) |
Énergie : la passerelle ne donne aucun compteur cumulé fiable. L'intégration ne publie donc aucun index ni consommation : la puissance de charge est un simple capteur.
Position : publiée comme deux nombres, sans historique dans Gladys,
jamais écrite dans les journaux ni dans /data.
La batterie 12 V : des lectures espacées
Chaque lecture réveille la voiture, qui puise alors dans sa batterie 12 V. Réveiller une voiture garée trop souvent peut vider cette batterie et l'empêcher de démarrer. Donc :
- une lecture par voiture toutes les 3 heures par défaut (réglable de 60 minutes à 24 heures), toutes les 30 minutes en charge seulement quand la voiture charge vraiment (branchée, puissance au-dessus de 0), et pendant 12 heures au plus : ensuite, retour à l'intervalle normal ;
- une voiture qui ne répond pas (30 secondes d'attente) est relue après l'intervalle, puis deux fois plus tard à chaque silence (jusqu'à une fois par jour) : jamais en boucle. Pendant ce temps, les boutons de cette voiture n'acceptent qu'un clic par heure (Actualiser ou une commande), qui compte dans le budget de réveils ;
- une erreur n'est jamais relue plus vite que l'intervalle ;
- chaque appui sur un bouton réveille la voiture : « Actualiser maintenant » la relit, et chaque commande la relit avant d'agir. Les appuis sont donc limités par voiture : 2 minutes d'écart au moins, 6 par heure au plus ; au-delà, l'appui est refusé tout de suite avec un message ;
- la liste des véhicules (qui ne réveille pas la voiture) est relue au démarrage, puis toutes les 24 heures ;
- l'heure de la prochaine lecture est gardée dans
/data: un redémarrage ne réveille pas la voiture avant son heure.
Installation
- Installez l'intégration depuis le store de Gladys.
- Dans sa configuration, saisissez l'e-mail et le mot de passe du compte MG iSMART (de préférence le compte secondaire). Le mot de passe est gardé par Gladys dans sa base, jamais réaffiché, envoyé seulement à la passerelle MG iSMART de SAIC, sous forme d'empreinte SHA-1 comme le fait l'application.
- Réglez au besoin l'intervalle, le fuseau horaire (Europe/Paris par défaut) et la langue des noms.
- Enregistrez, puis ajoutez les voitures depuis l'onglet Découverte.
Le bouton Tester la connexion se connecte si besoin et lit la liste des véhicules, sans réveiller les voitures (au plus toutes les 30 secondes). Il réessaie aussi tout de suite après un arrêt.
Commandes (toutes désactivées par défaut)
Chaque commande est un bouton, jamais un interrupteur : un « éteins tout », Google Home, Alexa, HomeKit ou une action de scène « interrupteur » ne les touchent pas. Une scène peut presser un bouton, seulement par une action explicite sur ce bouton, et seulement si son option est activée.
| Bouton | Option à activer |
|---|---|
| Verrouiller | Autoriser le verrouillage |
| Déverrouiller | Autoriser le déverrouillage |
| Ouvrir le coffre | Autoriser l'ouverture du coffre |
| Démarrer / arrêter la clim. | Autoriser les commandes de climatisation |
| Démarrer / arrêter la charge | Autoriser les commandes de charge |
Le déverrouillage et l'ouverture du coffre se font à distance, par quiconque peut presser le bouton dans Gladys : laissez ces options désactivées si vous n'en avez pas besoin.
Comment une commande se passe :
- Gladys reçoit tout de suite la réponse « acceptée » (la passerelle met souvent plus de 10 secondes, et Gladys n'attend que 5 secondes) ; « Dernière commande » affiche « relecture de la voiture… ».
- L'intégration relit la voiture (ce qui la réveille) et décide seulement sur cet état relu, jamais sur la mémoire : une commande inutile (déjà verrouillée, clim déjà en marche…) n'est pas envoyée ; un état inconnu, un relevé de plus de 10 minutes (« état périmé »), une voiture qui ne répond pas, une voiture non branchée (pour la charge) refusent la commande sans l'envoyer. Un état sans date n'est jamais lu comme « déjà fait » : la commande part.
- L'option est revérifiée juste avant l'envoi ; la commande part une seule fois, jamais renvoyée après un échec.
- « Dernière commande » donne le résultat : envoyée et confirmée par MG (pour verrouiller, déverrouiller et la clim, seulement si l'état renvoyé correspond), envoyée avec un état non confirmé, envoyée avec un échec signalé par la voiture, envoyée sans confirmation (la passerelle l'a prise puis n'a plus répondu : vérifiez avant de réessayer), refusée par MG (avant de la prendre), ou non envoyée avec la raison. La voiture est relue environ 90 secondes plus tard.
Après un redémarrage pendant une commande, « Dernière commande » indique qu'elle a été interrompue : vérifiez l'état de la voiture.
Une commande à la fois par voiture. L'intégration n'envoie jamais de code (SMS, e-mail) : la connexion se fait par e-mail et mot de passe seulement.
Erreurs et limites
- E-mail ou mot de passe refusé : arrêt, un seul nouvel essai après 6 h, puis toutes les 24 h. Enregistrer de nouveaux identifiants ou le bouton de test réessaient tout de suite.
- Session prise par l'application : voir « un compte secondaire » ci-dessus.
- 429 (trop de requêtes) : pause de 1 minute à 6 heures (15 minutes sans indication), pour tout (lectures, boutons, commandes), gardée après un redémarrage.
- Réseau, 5xx : nouvel essai après l'intervalle, jamais plus tôt.
/datagarde le jeton de session MG, en clair, dans un fichier réservé à l'utilisateur du conteneur (0600), donc lisible aussi par l'administrateur de la machine et dans les sauvegardes du volume ; jamais l'e-mail, le mot de passe, le VIN ni la position. Ce jeton donne accès à la voiture : il disparaît quand l'intégration est supprimée.- Seules les voitures européennes (passerelle
gateway-mg-eu) et la connexion par e-mail sont prises en charge (pas encore par téléphone). - Non pris en charge pour l'instant : température de consigne, sièges et volant chauffants, vitres, toit, recherche de la voiture, cible de charge, charge programmée, verrou de la prise, alarmes.
- Les journaux ne contiennent jamais le mot de passe, le jeton, le VIN, la position, ni le texte des réponses de la passerelle.
- L'identifiant de chaque voiture dans Gladys est pseudonymisé : une empreinte SHA-256 tronquée du VIN. Ce n'est pas anonyme : qui connaît le VIN peut la recalculer.
Crédits
Portage de saic-ismart-client-ng (SAIC-iSmart-API, MIT, version 0.10.0). Licence Apache-2.0.
Paramètres de configuration
Voici les paramètres demandés par MG iSMART dans son écran de configuration dans Gladys.
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| Votre compte MG iSMART | section | Non | Affiche vos voitures MG (MG4, ZS EV, MG5, Marvel R…) dans Gladys par le cloud SAIC iSMART (Europe) : batterie, autonomie, charge, kilométrage, verrouillage, portes et coffre, position, température intérieure, climatisation. Saisissez l'e-mail et le mot de passe de l'application MG iSMART, de préférence d'un compte secondaire avec qui la voiture est partagée : SAIC n'accepte qu'une session par compte, se connecter ici déconnecte l'application. Chaque lecture réveille la voiture : une lecture toutes les 3 heures par défaut, toutes les 30 minutes en charge. Les commandes (verrouiller, déverrouiller, coffre, climatisation, charge) sont des boutons, chacune désactivée par défaut. API non officielle, jamais testée avec un vrai compte ni une vraie voiture. Sans lien avec MG ni SAIC. |
| E-mail MG iSMART | string | Oui | |
| Mot de passe MG iSMART | secret | Oui | Gardé par Gladys dans sa base, jamais réaffiché, envoyé seulement à la passerelle MG iSMART de SAIC (sous forme d'empreinte SHA-1, comme le fait l'application). |
| Intervalle de lecture (minutes) | number | Non | Minutes entre deux lectures de chaque voiture (60 à 1440). Chaque lecture réveille la voiture et puise dans sa batterie 12 V : gardez-le long. En charge, une lecture toutes les 30 minutes au plus. |
| Autoriser le verrouillage | boolean | Non | Désactivé par défaut. Activé : le bouton « Verrouiller » verrouille la voiture (après l'avoir relue : rien n'est envoyé si elle l'est déjà). |
| Autoriser le déverrouillage | boolean | Non | Désactivé par défaut, à laisser ainsi de préférence. Activé : le bouton « Déverrouiller » déverrouille les portes de la voiture, de n'importe où, par quiconque peut l'actionner dans Gladys (une scène comprise). |
| Autoriser l'ouverture du coffre | boolean | Non | Désactivé par défaut, à laisser ainsi de préférence. Activé : le bouton « Ouvrir le coffre » déverrouille le coffre. |
| Autoriser les commandes de climatisation | boolean | Non | Désactivé par défaut. Activé : les deux boutons de climatisation démarrent et arrêtent la climatisation de la voiture (elle puise dans la batterie de traction). |
| Autoriser les commandes de charge | boolean | Non | Désactivé par défaut. Activé : les deux boutons de charge démarrent et arrêtent la charge d'une voiture branchée. |
| Fuseau horaire de Gladys | string | Non | Sert à l'heure du dernier relevé et des résultats des commandes. Nom IANA, ex. Europe/Paris. |
| Langue des noms des fonctionnalités | select | Non | Sert aux noms des fonctionnalités des voitures ajoutées désormais, aux textes d'état et aux résultats des commandes. |
Comment installer MG iSMART dans Gladys
- Dans Gladys, ouvrez Intégrations : MG iSMART apparaît dans le catalogue, aux côtés des intégrations natives, avec un badge communautaire.
- Cliquez sur Installer. Gladys télécharge l'image Docker (
ghcr.io/lm1lc3n7/gladys-mg-ismart:0.1.1), la démarre dans un bac à sable isolé du cœur, et génère l'interface de l'intégration (appareils, découverte et configuration). - Ouvrez l'écran Configuration de l'intégration, remplissez les paramètres, puis enregistrez.
- Vous pouvez aussi l'installer directement depuis l'URL de son dépôt : https://github.com/LM1LC3N7/gladys-mg-ismart.
MG iSMART nécessite Gladys >=4.86.0. Le catalogue dans Gladys se rafraîchit toutes les heures : une nouvelle version est donc disponible au plus tard une heure après sa sortie.
Vous n'utilisez pas encore Gladys ? C'est gratuit et open source : suivez le guide d'installation pour démarrer.
À propos des intégrations externes
MG iSMART est une intégration externe : une intégration communautaire empaquetée dans un conteneur Docker et publiée sur GitHub, que Gladys installe en un clic et exécute dans un bac à sable isolé de son cœur. Elle est publiée et maintenue par LM1LC3N7, et non par l'équipe cœur de Gladys.
- Parcourir toutes les intégrations, natives et communautaires
- Créer et publier votre propre intégration externe
- Code source sur GitHub — source de cette documentation