Plugin JeeNavimow¶
Le plugin JeeNavimow intègre les tondeuses robotiques Segway Navimow dans Jeedom : supervision de l'état, de la batterie et du firmware, contrôle (démarrer / arrêter / pause / reprendre / retour à la base) et suivi en temps réel via MQTT (avec repli REST).
⚠️ Plugin non officiel, sans lien avec Segway-Ninebot. Utilise la même API cloud que l'intégration Home Assistant communautaire (région Europe / Francfort).
Compatibilité¶
- Jeedom 4.4+
- Tondeuses Navimow disposant d'un compte Segway Navimow (application mobile « Navimow ») — testé sur i210 LiDAR Pro, compatible séries i / H / X liées au cloud Navimow.
- Dépendances Python installées automatiquement dans un environnement virtuel isolé (Python 3.11+ requis — installé ou compilé automatiquement s'il est absent).
Installation¶
- Installez le plugin depuis le Market Jeedom (catégorie Objets connectés).
- Activez le plugin.
- Dans la configuration du plugin, lancez l'installation des dépendances et attendez l'état « OK ».
- Connectez votre compte Navimow (voir ci-dessous).
⏱️ Durée de l'installation des dépendances — sur Debian 11 (Bullseye),
python3vaut 3.9 et aucun paquet Python 3.11 n'existe dans les dépôts. Depuis la 0.2.8, le plugin compile alors Python 3.11 lui-même : comptez 20 min à 1 h selon la machine (≈ 20 min sur un x86 récent, jusqu'à 1 h sur Raspberry Pi), contre moins d'une minute sur Debian 12 (Bookworm). Cette attente est ponctuelle : le Python compilé est conservé dans/usr/localet réutilisé lors des installations suivantes. Laissez la page ouverte jusqu'à l'état « OK », ne relancez pas l'installation entre-temps, et prévoyez environ 1,5 Go d'espace disque libre.
Connexion du compte Navimow¶
L'authentification utilise le flux OAuth2 officiel de Segway (page de connexion hébergée par Segway). Vos identifiants ne transitent jamais par Jeedom.
- Cliquez sur « Connecter mon compte Navimow ».
- Étape 1 — cliquez sur Générer l'URL de connexion.
- Étape 2 — ouvrez l'URL dans votre navigateur, connectez-vous avec votre compte Segway Navimow. Après connexion, le navigateur est redirigé vers une URL contenant
?code=.... - Copiez cette URL de redirection complète et collez-la dans le champ prévu, puis Valider.
- Vos tondeuses sont importées automatiquement en équipements.
🔑 Le code de connexion est à usage unique et expire en quelques secondes : générez l'URL puis collez l'URL de redirection sans attendre. En cas d'échec, régénérez une URL fraîche.
Rafraîchir / ajouter des tondeuses¶
Le bouton « Rafraîchir les tondeuses » (visible une fois le compte connecté) relance la découverte des tondeuses sans refaire la connexion — pratique après l'ajout d'une nouvelle tondeuse au compte.
Le démon¶
JeeNavimow utilise un démon Python qui :
- maintient la connexion au cloud Navimow (rafraîchissement automatique du jeton OAuth) ;
- écoute les mises à jour temps réel via MQTT ;
- interroge l'API REST toutes les 30 s en repli si MQTT est indisponible ;
- relaie les commandes (start/stop/pause/resume/dock) vers la tondeuse.
Le port du démon est configurable dans la page de configuration du plugin (à modifier uniquement en cas de conflit).
Équipement : commandes¶
Chaque tondeuse importée expose automatiquement les commandes suivantes.
Informations¶
| Commande | Type | Description |
|---|---|---|
| Statut | info/string | État lisible (En tonte, Sur la base, En pause, Retour base, Soulevée, Erreur, Hors ligne…) |
| Code statut | info/string | État brut renvoyé par l'API (isRunning, isDocked…) |
| Batterie | info/numeric | Niveau de batterie (%) |
| En charge | info/binary | Tondeuse en charge sur la base |
| En ligne | info/binary | Tondeuse joignable |
| En erreur | info/binary | Erreur active (ex. soulevée) |
| Message d'erreur | info/string | Détail de l'erreur si disponible |
| Progression | info/numeric | Progression de la tonte (%) — selon disponibilité |
| Surface tondue | info/numeric | Surface tondue (m²) — selon disponibilité |
| Position X / Y | info/numeric | Position relative en mètres — selon disponibilité |
| Firmware | info/string | Version du firmware |
| MAJ disponible | info/binary | Mise à jour firmware en cours/disponible |
| Dernière synchro | info/string | Horodatage de la dernière mise à jour |
Actions¶
| Commande | Description |
|---|---|
| Démarrer la tonte | Lance la tonte |
| Arrêter | Arrête la tondeuse |
| Pause | Met la tonte en pause |
| Reprendre | Reprend la tonte |
| Retour à la base | Renvoie la tondeuse à sa station |
| Rafraîchir | Force une lecture immédiate de l'état |
Widget dashboard¶
Un widget dédié affiche l'état animé de la tondeuse, la jauge de batterie, la progression de tonte et les boutons de contrôle, avec gestion des états hors-ligne et erreur.
FAQ / Dépannage¶
- Aucune tondeuse ne remonte après connexion → cliquez sur Rafraîchir les tondeuses. Vérifiez que la tondeuse est bien visible dans l'app Navimow.
- Les informations ne se mettent pas à jour → vérifiez que le démon est démarré (page Santé) et que les dépendances sont « OK ». Redémarrez le démon après une mise à jour du plugin.
- « Échange de token échoué : invalid_grant » → le code OAuth a expiré : régénérez une URL de connexion et recollez une URL de redirection fraîche.
- L'installation des dépendances semble bloquée → sur Debian 11 (Bullseye), le plugin compile Python 3.11 : l'opération dure 20 min à 1 h et le log affiche « Compilation de Python 3.11.9 depuis les sources ». C'est normal, laissez-la se terminer.
- Installation des dépendances échoue → Python 3.11+ est requis (imposé par
navimow-sdk). Vérifiez dans le log d'installation qu'il ne manque ni espace disque (~1,5 Go) ni accès réseau.
Changelog¶
0.2.9¶
- Diagnostic : nouvelle option Capture MQTT brute dans la configuration du plugin. Elle enregistre tel quel chaque message reçu du cloud Navimow, dans un fichier dédié, sans basculer le démon en debug. Le script
resources/mqtt_report.pyen dresse l'inventaire des champs — fréquence, type, exemples — en signalant ceux que le plugin n'exploite pas encore. Objectif : identifier les champs réels de progression, de surface et de position, dont les noms ne sont pas documentés. Les commandes envoyées (RESTsendCommands) et les réponses d'état sont capturées elles aussi ; jetons OAuth et identifiants MQTT y sont masqués. - Documentation : URLs de documentation et de changelog corrigées (hébergement Cloudflare), GitHub Pages ne pouvant pas publier un dépôt privé.
0.2.8¶
- Dépendances : si aucun Python ≥ 3.11 n'est présent, le plugin tente d'abord
apt-get install python3.11, puis compile Python 3.11 depuis les sources (make altinstalldans/usr/local, sans toucher aupython3du système) — Debian 11 (Bullseye) s'installe désormais sans intervention manuelle. - Intégrité de l'archive Python vérifiée (MD5 publié par python.org), parallélisme de compilation borné par la RAM disponible, et verrou empêchant deux installations simultanées.
- ⏱️ Sur Debian 11 (Bullseye), la première installation des dépendances dure 20 min à 1 h (compilation de Python 3.11) contre moins d'une minute sur Debian 12 ; le Python compilé est ensuite réutilisé.
0.2.7¶
- Widget : correction du lien sur le nom de la tondeuse (ajout du paramètre
m=) — il ouvre désormais bien la page de configuration de l'équipement.
0.2.6¶
- Dépendances : détection automatique d'un Python ≥ 3.11 installé en parallèle (ex.
python3.11sur Debian 11 oùpython3= 3.9), au lieu d'échouer ; message d'erreur enrichi (Debian 11 / Debian 12).
0.2.5¶
- Plugin : catégorie déplacée vers Nature.
0.2.4¶
- Widget : bouton Reprendre en vert-tilleul (
#9ACD32), distinct de Démarrer et de Base.
0.2.3¶
- Widget : suit désormais le thème de Jeedom (mode sombre / clair) au lieu du thème du navigateur/OS.
0.2.2¶
- Widget : logo du plugin dans l'en-tête (à la place de l'icône robot) et nom de la tondeuse cliquable ouvrant la configuration de l'équipement.
- Widget : bouton de don (café) avec info-bulle opaque au premier plan ; retrait du bouton « Sync » redondant.
- Widget : icône maison bleue pour le bouton Base et correction des icônes manquantes (compatibilité Font Awesome 5).
- Widget : « Base » accessible en pause, jauge de batterie centrée.
0.2.1¶
- Nouvelle icône de tondeuse dans le widget (image dédiée), animée pendant la tonte.
0.2.0¶
- MQTT temps réel via le broker dynamique
mqttHost/mqttUrlde l'API (au lieu du hostnamemqtt.navimow.comnon résolvable) — connexion WSS + abonnement aux topics realtime confirmés. - Widget dashboard auto-rafraîchi : l'affichage (statut, batterie, progression, badges, synchro) se met à jour tout seul toutes les 15 s, sans recharger la page (lecture des commandes info via
jeedom.cmd.execute). Les valeurs côté serveur étaient déjà fraîches (démon MQTT + REST 30 s) ; c'est l'affichage qui ne se rafraîchissait pas. - Rafraîchissement automatique du token OAuth (~1 h) : refresh proactif + sur code 4005 (
CODE_OAUTH_INFO_ILLEGAL), et mise à jour de l'auth MQTT sans couper la connexion. - Démarrage du démon robuste : bind du port avec retry, PID écrit après le bind réussi, nettoyage des instances orphelines (corrige « le démon ne démarre pas »).
- Port du démon par défaut 55149 (évite le conflit avec jeewhatsapp).
0.1.0 (bêta)¶
- Première version publique (bêta).
- Authentification OAuth2 Segway Navimow (flux par collage d'URL de redirection, sans navigateur intégré).
- Découverte automatique des tondeuses du compte (+ bouton Rafraîchir les tondeuses sans reconnexion).
- Informations : statut, code statut, batterie, en charge, en ligne, erreur + message, firmware, dernière synchro (et progression / surface / position selon l'API).
- Actions : démarrer, arrêter, pause, reprendre, retour à la base, rafraîchir.
- Démon Python : MQTT temps réel + repli REST 30 s, rafraîchissement automatique du jeton.
- Widget dashboard glassmorphism (état animé, batterie, progression, contrôles).
- Documentation multilingue (FR, EN, DE, ES, RU, ID, IT).