Aller au contenu principal

Intégration domotique Monta, gratuite et open source

Intégration Monta pour Gladys Assistant

Bornes gérées par Monta, API officielle : état, énergie de la charge ; démarrage et arrêt.

Affiche les bornes de votre compte Monta dans Gladys, par l'API publique officielle de Monta : état de la borne, véhicule branché, état et énergie de la charge, batterie du véhicule (quand il la transmet) et relevé du compteur. Un bouton arrête la charge ; un autre la démarre, seulement si vous l'autorisez.

Jamais testé avec une vraie borne : écrit d'après la documentation publique de l'API et monta-python, et testé seulement contre des réponses fabriquées. Sans lien avec Monta.

Avant de commencer​

  1. Connectez-vous au portail Monta (https://portal2.monta.app).
  2. Ouvrez le menu utilisateur (en bas à gauche), puis Applications, puis + Add Application. Donnez-lui les portées :
    • charge-points (les bornes ; obligatoire),
    • charge-transactions (les charges : énergie, batterie, état ; obligatoire pour les boutons d'arrêt et de démarrage : sans elle, l'intégration ne sait jamais quelle charge arrêter),
    • control-charging (pour les boutons de démarrage et d'arrêt).
  3. Copiez l'identifiant client et le secret client. Monta n'affiche le secret qu'une fois : s'il est perdu, utilisez Reset dans la liste des applications.

Configuration​

ChampRôle
Identifiant clientL'identifiant client de l'application.
Secret clientGardé par Gladys dans sa base, jamais réaffiché, envoyé seulement à Monta, en HTTPS, pour obtenir un jeton d'accès.
Autoriser le démarrage d'une chargeDésactivé par défaut. Voir « Commandes ».
Intervalle de rafraîchissement120 s par défaut, de 60 s à 1 h.
LangueDes noms des fonctionnalités, des textes d'état et des erreurs des commandes.

Enregistrez, puis ajoutez les bornes depuis l'onglet Découverte.

Ce que vous obtenez​

Un appareil par borne (son identifiant Monta est l'identifiant de l'appareil, pour toujours) :

FonctionnalitéValeur
ÉtatL'état de la borne (disponible, en charge, véhicule branché sans charge, erreur, déconnectée de Monta...).
ConnecteurDisponible, occupé, réservé, indisponible, en défaut.
État de chargeEn charge, véhicule connecté, en pause, inactif.
Véhicule branché0 / 1.
ChargeL'état de la charge en cours, ou de la dernière.
Énergie de la chargekWh de la charge en cours, ou de la dernière.
Batterie du véhicule%, quand le véhicule la transmet.
Relevé du compteurLe dernier relevé du compteur de la borne, en kWh : un capteur simple, jamais compté par l'onglet énergie.
Démarrer une chargeBouton.
Arrêter la chargeBouton.

L'API publique ne donne aucune puissance instantanée : il n'y a pas de fonctionnalité de puissance. Le relevé du compteur n'est pas un index d'énergie : la borne est derrière votre compteur principal, la compter la compterait deux fois. L'emplacement de la borne n'est jamais lu dans Gladys.

Commandes​

  • Arrêter la charge est toujours disponible : sans option, jamais bloqué par une pause demandée par Monta ni par la limite de requêtes. Il lit d'abord les charges de la borne quand cela laisse de la place (une lecture faite par un arrêt de la même borne dans les 30 dernières secondes est réutilisée, jamais une lecture périodique), sinon il arrête la charge en cours connue à la dernière lecture (gardée dans /data, donc possible juste après un redémarrage). Une charge gardée comme en cours n'est jamais oubliée parce qu'elle sort de la liste des 7 derniers jours tant que la borne est occupée.
  • Après un arrêt, l'intégration surveille la borne pendant 90 s, et au moins jusqu'à la lecture suivante : si la charge arrêtée reprend, l'arrêt est renvoyé, deux fois au plus ; un renvoi qui échoue n'est pas compté et la surveillance dure alors jusqu'à 10 minutes, avec une lecture au plus par minute. Quand un démarrage envoyé par Gladys peut encore aboutir (envoyé sans confirmation), toute charge en cours sur la borne (programmée, réservée ou en pause comprises) est arrêtée pendant la surveillance : une charge démarrée depuis l'application Monta dans cette fenêtre l'est aussi. Sinon, une charge démarrée plus tard par quelqu'un n'est pas touchée.
  • Un arrêt qui ne peut pas agir dit pourquoi : aucune charge connue et les charges n'ont pas pu être lues (avec la raison : pause demandée par Monta, limite de requêtes, erreur HTTP...), ou la borne est en charge mais aucune charge des 7 derniers jours n'est en cours (une charge démarrée il y a plus de 7 jours : arrêtez-la depuis l'application Monta). Rien de ce qui n'est pas parti n'est jamais annoncé « envoyé ».
  • Démarrer une charge refuse tant que « Autoriser le démarrage d'une charge » est désactivé. Il lit la borne et ses charges juste avant l'envoi, et n'envoie que si un véhicule est branché, que la borne est prête et qu'aucune charge n'est en cours (borne déjà en charge : rien n'est envoyé). L'option est revérifiée juste avant l'envoi ; un arrêt cliqué entre-temps l'annule. Gladys reçoit sa réponse sous 5 s : un démarrage sans réponse d'ici là est signalé « envoyée, sans confirmation » et l'état suit.
  • Les deux sont des boutons, jamais des interrupteurs : un « tout éteindre » ne peut jamais les atteindre.

Limites et erreurs​

  • Monta autorise 10 requêtes par minute pour toutes les applications de votre compte. Une lecture prend deux requêtes (jusqu'à cinq avec une seconde page, un renouvellement de jeton et un nouvel essai) et ne démarre que si ces cinq et trois de plus pour un arrêt sont libres ; les requêtes de la dernière minute sont gardées après un redémarrage. Un démarrage demande cinq requêtes libres.
  • Les charges sont lues sur les 7 derniers jours (fromDate de l'API) : une charge démarrée il y a plus de 7 jours et jamais vue par l'intégration n'est pas affichée.
  • Identifiant ou secret client refusé : l'intégration s'arrête pour de bon (aucun nouvel essai automatique, qui pourrait bloquer l'application). Enregistrez des identifiants corrigés, ou cliquez sur Tester la connexion une fois le problème réglé côté Monta.
  • Un 403 sur les bornes (portée charge-points absente) arrête de la même façon (sans empreinte gardée : réenregistrer les identifiants, ou le bouton de test, réessaie). Un 403 ou une panne sur les charges laisse seulement les fonctionnalités de la charge en l'état ; un 403 sur une commande refuse seulement cette commande.
  • Un 429 (trop de requêtes) ou une panne de Monta sur les bornes met les lectures en pause (gardée après un redémarrage, pour ce compte seulement) ; arrêter une charge reste possible.
  • L'intégration ne relit jamais Monta avant l'intervalle : ni au redémarrage, ni à une reconnexion, ni à l'enregistrement d'une configuration inchangée, ni au bouton de test. Seuls de nouveaux identifiants enregistrés sont essayés tout de suite.

Confidentialité​

Rien de secret n'est écrit dans /data : seulement l'heure de la dernière lecture, l'heure des requêtes de la dernière minute, les pauses, les identifiants des bornes et de leur charge en cours, et, après des identifiants refusés, une empreinte salée de ces identifiants refusés (effacée au premier succès). Les jetons restent en mémoire et n'atteignent jamais les journaux.

Sans lien avec Monta. Monta est une marque de son propriétaire.

Paramètres de configuration​

Voici les paramètres demandés par Monta dans son écran de configuration dans Gladys.

ParamètreTypeObligatoireDescription
Vos bornes MontasectionNonAffiche les bornes de votre compte Monta dans Gladys par l'API publique officielle de Monta : état, véhicule branché, état et énergie de la charge, batterie du véhicule (quand il la transmet), relevé du compteur. L'API ne donne pas de puissance instantanée. Dans le portail Monta (portal2.monta.app), ouvrez Applications, ajoutez une application avec les portées « charge-points » et « charge-transactions » (et « control-charging » pour les boutons), puis copiez son identifiant client et son secret client ci-dessous et enregistrez ; ajoutez les bornes depuis l'onglet Découverte. Arrêter une charge est toujours possible depuis Gladys ; en démarrer une seulement si vous l'autorisez ci-dessous. Monta autorise 10 requêtes par minute pour toutes vos applications : une lecture en prend deux. Jamais testé avec une vraie borne. Sans lien avec Monta.
Identifiant clientstringOuiL'identifiant client de votre application Monta (portail Monta, Applications).
Secret clientsecretOuiLe secret client de l'application, affiché une seule fois par Monta (utilisez Réinitialiser chez Monta s'il est perdu). Gardé par Gladys dans sa base, jamais réaffiché, envoyé seulement à Monta, en HTTPS, pour obtenir un jeton d'accès. Refusé, il n'est jamais réessayé automatiquement : enregistrez des identifiants corrigés ou cliquez sur « Tester la connexion ».
Autoriser le démarrage d'une chargebooleanNonDésactivé par défaut. Activé : le bouton « Démarrer une charge » de chaque borne peut démarrer une charge, seulement quand un véhicule est branché et qu'aucune charge n'est en cours (vérifié sur une lecture fraîche juste avant l'envoi). Désactivé : il refuse toute commande. « Arrêter la charge » reste toujours disponible, même pendant une pause demandée par Monta.
Intervalle de rafraîchissement (s)numberNonFréquence de lecture de Monta, en secondes (deux requêtes par lecture ; Monta en autorise 10 par minute pour toutes vos applications).
Langue des noms des fonctionnalitésselectNonSert aux noms des fonctionnalités des appareils ajoutés désormais, aux textes d'état et aux erreurs des commandes.

Comment installer Monta dans Gladys​

  1. Dans Gladys, ouvrez Intégrations : Monta apparaît dans le catalogue, aux côtés des intégrations natives, avec un badge communautaire.
  2. Cliquez sur Installer. Gladys télécharge l'image Docker (ghcr.io/lm1lc3n7/gladys-monta: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).
  3. Ouvrez l'écran Configuration de l'intégration, remplissez les paramètres, puis enregistrez.
  4. Vous pouvez aussi l'installer directement depuis l'URL de son dépôt : https://github.com/LM1LC3N7/gladys-monta.

Monta nécessite Gladys >=5.1.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​

Monta 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.

Inscrivez-vous à la newsletter Gladys Assistant

Quelques emails par mois sur les nouveautés et l'actualité du projet. Envoyés par Pierre-Gilles Leymarie, le fondateur du projet. Désinscription possible à tout moment 🙂