Intégration domotique Mammotion, gratuite et open source

Pilotez votre tondeuse Mammotion (Luba, Yuka) : tonte, pause, retour à la base, batterie, état.
Pilotez votre robot tondeuse Mammotion (Luba, Luba 2, Luba mini, Yuka…) depuis Gladys : lancer une tonte, la mettre en pause et la reprendre, renvoyer la tondeuse à sa base, et suivre sa batterie, son état et l'avancement de la tonte.
Ce que vous obtenez
Chaque tondeuse de votre compte Mammotion apparaît avec :
- Tonte (interrupteur) : allumé = lancer une tonte (ou reprendre celle en pause), éteint = pause ;
- Retour à la base (interrupteur) : allumé = retour à la base pour recharger, éteint = annuler. Comme « Recharge » dans l'application : une tonte en cours reste en pause, Tonte la reprend ensuite ;
- Arrêter la tâche (bouton) : termine la tonte, la tondeuse reste sur place (comme « Stop » dans l'application). Retour à la base la ramène ensuite ;
- Rafraîchir (bouton) : demande tout de suite son état à la tondeuse ;
- État : En tonte (45 %), En charge, En pause, Retour à la base, Hors ligne… ;
- Batterie (%) et En charge ;
- Hauteur de coupe (mm) ;
- pendant une tonte : Avancement de la tonte (%), Temps de tonte écoulé et restant (min), Surface à tondre (m²) ;
- Temps de tonte total (h), Distance totale (km) ;
- Carte : un appareil à part, « <tondeuse> – Carte » (image, widget Caméra du tableau de bord) : les zones (vert vif = zones de la prochaine tonte, vert pâle = les autres) avec leur nom, les zones interdites (gris) et la tondeuse (point rouge) ;
- les zones de la prochaine tonte : un interrupteur « Zone à tondre – … » par zone de la carte. Plusieurs zones peuvent être allumées ; aucune allumée = toutes les zones. Les zones sont tondues dans l'ordre où on les allume, comme dans l'appli ;
- les autres réglages de la prochaine tonte, « Réglage – … » : en listes pour la hauteur de coupe, la vitesse, l'espacement, le type d'angle (optimal, personnaliser, aléatoire), le mode de trajectoire (zigzag, damier, zigzag adaptatif), les tours de périmètre, la détection d'obstacle, les tours des zones interdites (0 à 3) et l'ordre ; en curseurs pour l'angle personnalisé (0 à 180°, comme dans l'appli) et la progression du démarrage (0 à 99 %). Les listes suivent les plages du modèle : par exemple sur une Luba 2 X, hauteur de 25 à 70 mm par pas de 5, vitesse de 0,2 à 0,8 m/s, espacement de 20 à 35 cm.
- les zones sans nom dans l'appli s'appellent comme dans l'appli (« Zone 1 », « Zone 4 »…).
Réglages sur l'appareil (comme l'intégration Dreame) : choisissez les zones et les valeurs dans les listes de la tondeuse (tableau de bord ou scène), puis allumez Tonte : la tonte part avec ces réglages.
- Au départ, les listes reprennent la section « Nouvelle tonte » de la configuration.
- Un choix dans une liste vaut pour cette tondeuse seulement.
- Enregistrer une nouvelle valeur dans la configuration l'applique à toutes les tondeuses.
- Les interrupteurs de zones apparaissent quand la carte est lue (au démarrage de l'intégration, tondeuse allumée), après Mettre à jour dans l'onglet Découverte.
Lancer une tonte depuis Gladys (tondeuse « Prête », sur sa base ou non), comme le fait Home Assistant :
- si une tonte s'est arrêtée en cours (batterie, pluie…), elle reprend là où elle en était ;
- sinon, Gladys prépare un trajet sur toutes les zones de la carte (même celles sans nom), ou sur celles allumées dans « Zone à tondre – … », avec les réglages de la section « Nouvelle tonte » de la configuration (hauteur, vitesse, espacement, angle, mode de trajectoire, tours de périmètre, détection d'obstacle…), puis lance la tonte.
L'application Mammotion garde ses réglages dans le téléphone : Gladys ne peut pas les lire, renseignez-les dans sa configuration. Cette fonction marche avec les tondeuses du broker Mammotion (Luba 2, Luba mini, Yuka… récentes), pas avec la Luba 1.
Configuration
- Ouvrez l'onglet Configuration de l'intégration.
- Saisissez l'email et le mot de passe de votre compte de l'application Mammotion.
- Réglez l'intervalle de rafraîchissement (300 s par défaut, entre 30 et 3600 s) : c'est la fréquence à laquelle Gladys lit l'état de la tondeuse. Chaque lecture demande son état à la tondeuse, ce qui peut gêner un instant l'application Mammotion : gardez 300 s ou plus.
- Enregistrez puis cliquez sur Tester la connexion : le nombre de tondeuses trouvées s'affiche.
- Ajoutez vos tondeuses depuis l'onglet Découverte. Après une mise à jour de l'intégration, cliquez sur Mettre à jour dans cet onglet pour obtenir les nouvelles fonctionnalités (par exemple les listes de réglages).
La mesure « En charge » n'est volontairement pas dans la catégorie batterie. Gladys prévient « niveau de batterie inférieur à X % » pour toute mesure de la catégorie batterie sous le seuil, quel que soit son type : une mesure de charge vaut 0 ou 1, elle était donc lue comme « 0 % ». Elle est publiée comme une entrée binaire : même valeur oui/non, même usage dans une scène, sans fausse alerte.
Conseil : créez un second compte Mammotion, partagez-lui la tondeuse depuis l'application, et utilisez ce compte ici. Sinon l'application sur votre téléphone peut être déconnectée quand Gladys se connecte.
Sécurité : les tondeuses récentes passent par le broker MQTT de Mammotion, dont le certificat TLS n'est pas vérifié (comme le font l'application Mammotion et les autres clients open source : rien n'indique que le broker présente un certificat qu'une vérification standard accepte). Quelqu'un capable d'intercepter le trafic de votre réseau pourrait se faire passer pour le broker et lire le jeton d'accès, de courte durée, du compte. Un compte dédié avec la seule tondeuse partagée (conseil ci-dessus) limite ce qu'il obtiendrait.
Widget, déclencheurs et actions de scène (Gladys 5.1)
Widget « Tondeuse Mammotion »
Dans Tableau de bord → Modifier → Ajouter un widget, choisissez Tondeuse Mammotion, puis la tondeuse. Le widget montre l'état, la batterie, l'avancement et le temps restant de la tâche, et propose les boutons utiles selon l'état : Tondre (ou Reprendre), Pause, Rentrer. Il affiche le dernier état reçu : ouvrir le tableau de bord n'envoie rien à la tondeuse.
Déclencheurs
| Déclencheur | Quand |
|---|---|
| Une tondeuse commence à tondre | Nouvelle tâche, ou reprise d'une tâche en pause |
| Une tâche de tonte se termine | Tâche terminée ou arrêtée (une recharge en cours de tâche n'en est pas la fin) |
| Une tondeuse est de retour sur sa base | Elle commence à charger |
| Une tondeuse a un problème | Hors ligne, erreur de position, hors zone, verrouillée, mise à jour échouée |
Chacun se déclenche une fois, au changement, jamais au redémarrage de l'intégration. Variables : nom de la tondeuse, état, batterie, et selon le déclencheur l'avancement, « tâche en pause pour recharger » ou le problème.
Actions
- Lancer la tonte : nouvelle tâche avec les zones et réglages choisis dans Gladys, ou reprise d'une tâche en pause.
- Mettre la tonte en pause.
- Renvoyer une tondeuse à sa base (la tâche est gardée en pause).
- Lire une tondeuse : état, en ligne, en tonte, batterie, avancement, temps restant, problème. Cochez « Interroger la tondeuse d'abord » pour une valeur fraîche.
Les trois premières renvoient un résultat (started, resumed,
already_mowing, already_starting, paused, not_mowing, returning,
already_docked). Une nouvelle tâche met 30 à 60 s à démarrer (zones,
trajet, puis départ) : un autre « Lancer la tonte » pendant ce temps, depuis
une scène, le widget ou l'interrupteur Tonte, ne lance rien et répond
already_starting.
Exemples de scènes
- Lancer une tonte chaque samedi à 10 h s'il ne pleut pas.
- Le samedi, allumer « Zone à tondre – Devant » et « Zone à tondre – Côté », éteindre les autres, puis allumer « Tonte » ; le mercredi, tout éteindre (toutes les zones) puis allumer « Tonte ».
- Reprendre la tonte en pause quand la pluie s'arrête.
- Renvoyer la tondeuse à la base quand le capteur de pluie détecte de la pluie.
- Recevoir un message quand la tondeuse a un problème (déclencheur « Une tondeuse a un problème »).
- Recevoir un message quand la tâche de tonte se termine.
Dépannage
-
Pas de listes « Réglage – … » sur la tondeuse : onglet Découverte, bouton Mettre à jour sur la tondeuse.
-
Pas d'interrupteur « Zone à tondre – … », ou la carte affiche « Carte pas encore lue » : la tondeuse n'a pas encore envoyé sa carte (éteinte, hors réseau). Elle est relue au prochain démarrage de l'intégration et à chaque tonte lancée par Gladys. Puis Mettre à jour dans l'onglet Découverte.
-
Afficher la carte : onglet Découverte, ajoutez l'appareil « <tondeuse> – Carte », puis sur le tableau de bord ajoutez un widget Caméra et choisissez cet appareil. L'image suit la tondeuse pendant la tonte (au plus toutes les 15 s).
-
Vérifier un réglage de l'application : lancez une tonte depuis l'application Mammotion, puis cherchez « route settings seen » dans les logs de l'intégration. La ligne montre ce que l'application a envoyé (
towardMode= type d'angle,channelMode= mode de trajectoire…). -
« Cloud Mammotion injoignable » : vérifiez l'email et le mot de passe, puis cliquez sur Tester la connexion.
-
Aucune tondeuse trouvée : vérifiez que la tondeuse apparaît bien dans l'application Mammotion avec ce compte (propriétaire ou partage).
-
Les valeurs ne bougent pas : appuyez sur Rafraîchir (sur le tableau de bord) ou sur Rafraîchir les tondeuses (onglet Configuration), qui lit toutes les tondeuses et nomme celles qu'il n'a pas pu lire. Les tondeuses récentes (broker Mammotion) envoient leur état d'elles-mêmes ; Gladys ne leur demande un rapport qu'au plus toutes les 5 minutes (et juste après une commande), pour ne pas dépasser le quota du cloud Mammotion ni couper l'application sur votre téléphone.
-
La tonte ne démarre pas : regardez les logs. « The mower did not send its zones » : la tondeuse n'a pas répondu, réessayez. « Cannot start mowing now » : la tondeuse n'est pas prête (en retour à la base, verrouillée…).
-
« Le niveau de la batterie de … est inférieur à 20 % (actuel : 0 %) » alors que la batterie est pleine : c'était l'ancienne mesure « En charge », rangée dans la catégorie batterie, qui vaut 0 quand la tondeuse n'est pas en charge. La nouvelle mesure « En charge » est une entrée binaire. L'ancienne reste enregistrée sur les tondeuses ajoutées avant : ouvrez l'onglet Découverte et cliquez sur Mettre à jour sur la tondeuse — Gladys supprime les mesures qui ne sont plus publiées, et l'alerte s'arrête.
-
Pour plus de détails, consultez les logs de l'intégration avec
LOG_LEVEL=debug.
Paramètres de configuration
Voici les paramètres demandés par Mammotion dans son écran de configuration dans Gladys.
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| Compte Mammotion | section | Non | Utilisez l'email et le mot de passe de votre compte de l'application Mammotion. Astuce : créez un second compte, partagez-lui la tondeuse depuis l'application et utilisez-le ici, pour que Gladys ne vous déconnecte pas de votre téléphone. |
string | Oui | ||
| Mot de passe | secret | Oui | |
| Intervalle de rafraîchissement (s) | number | Non | Fréquence de lecture de chaque tondeuse, en secondes. Chaque lecture demande son état à la tondeuse, ce qui peut gêner un instant l'appli Mammotion : 300 s ou plus conseillé. |
| Langue de l'état | select | Non | |
| Nouvelle tonte | section | Non | Réglages d'une nouvelle tonte lancée par Gladys (interrupteur Tonte sur ON, tondeuse à la base ou prête). Chaque tondeuse les affiche aussi en interrupteurs « Zone à tondre – … » et en listes « Réglage – … », pour les changer pour elle seule, depuis le tableau de bord ou une scène. Enregistrer ici une nouvelle valeur l'applique à toutes les tondeuses. L'application Mammotion garde ses réglages dans le téléphone : Gladys ne peut pas les lire. |
| Zones à tondre | string | Non | Noms des zones comme dans l'application, séparés par des virgules. Vide : toutes les zones de la carte. Chaque tondeuse affiche aussi un interrupteur « Zone à tondre – … » par zone de sa carte. |
| Hauteur de coupe (mm) | number | Non | Ramenée dans la plage de chaque modèle de tondeuse (par ex. 25 à 70 mm sur une Luba 2). |
| Vitesse (m/s) | select | Non | |
| Espacement des trajectoires (cm) | number | Non | Ramené dans la plage de chaque modèle de tondeuse (par ex. 20 à 32 cm sur une Luba 2). |
| Angle de coupe de la trajectoire | select | Non | Optimal : la tondeuse choisit. Personnaliser : l'angle ci-dessous. Aléatoire : un nouvel angle à chaque tonte. |
| Angle personnalisé (°) | number | Non | Utilisé quand l'angle de coupe est « Personnaliser ». |
| Mode trajectoire de tonte | select | Non | |
| Tours de tonte du périmètre | number | Non | |
| Mode détection d'obstacle | select | Non | |
| Tours de tonte des zones interdites | number | Non | |
| Ordre des itinéraires | select | Non | |
| Progression du démarrage (%) | number | Non | Commencer la tonte à ce pourcentage de la zone : 0 part du début. |
Comment installer Mammotion dans Gladys
- Dans Gladys, ouvrez Intégrations : Mammotion 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/prohand/gladys-mammotion:1.5.0), 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/prohand/gladys-mammotion.
Mammotion 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
Mammotion 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 prohand, 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