Modul 58_Navimow.pm zur Integration von Navimow Mährobotern von Segway

Begonnen von FrankL, 20 September 2026, 17:18:19

Vorheriges Thema - Nächstes Thema

FrankL

Hallo liebe Freunde des gepflegten Rasens,

ich möchte an dieser Stelle das von mir geschriebene Modul 58_Navimow.pm vorstellen. Es dient der Einbindung von Navimow-Geräten (Mährobotern), die per Cloud über die Navimow-App erreichbar sind.

Seit ein paar Monaten hat Navimow hierzu ein offizielles SDK (siehe https://github.com/segwaynavimow/navimow-sdk) sowie eine Integeratation für Home Assistant (https://github.com/segwaynavimow/NavimowHA) in Phyton veröffentlicht. Da es noch kein Navimow-Modul für FHEM in Perl gibt, habe ich mal meine Erfahrungen aus dem DaikinCloud-Modul genutzt und ein passenden Navimow-Modul geschrieben.

Das Navimow-Modul habe ich unter https://github.com/frank-lie/Navimow veröffentlicht und halte es dort auf dem neusten Stand.

Was kann das Modul?
1. Das Modul ist in der Lage, den Autorisierungsprozess zu starten, um die erforderlichen Token zu bekommen bzw. automatisch zu erneuern.
2. Es können per HTTP-Request Daten des Gerätes wie Status (isRunning, isPaused, isDocking, isLifted, etc) und Batteriestand abgefragt werden.
3. Es kann per MQTT Livedaten zum Standort (x,y relativ zur Dockingstation), zum Mähfortschritt, zur gemähten Fläche, etc empfangen.
4. Es können "einfache" Steuerbefehle (start,stop,pause,resume,dock) gesendet werden. Weitere Möglichkeiten zum Steuern gibt die API aktuell nicht her bzw. sind nicht dokumentiert.

Was kann man damit sinnvolles machen?
Wie bei vielen Geräten im Smarthome steht natürlich die Überwachung der Geräte im Vordergrund und der Wunsch auf Optimierung bzw. Anpassung auf die individuellen Situationen. Zum Beispiel: Wenn der Mähroboter aktiv ist, soll sichergestellt sein, dass nicht die Rasenbewässerung angeht. Oder der Mäher soll die Restfläche zu Ende mähen, wenn der Ladezustand der Batterie hierfür wieder ausreichend ist und nicht erst wieder auf 100% aufladen. Oder es soll ein Alarm in FHEM ausgelöst werden, wenn der Mäher einen bestimmten Bereich erreicht oder verlässt. Die Ideen der Automatisierung sind da vielfältig.

Welche Geräte sind damit kompatibel?
Das Modul wurde erfolgreich mit einem Navimow i205 AWD getestet ;-). Da das Konzept jedoch allgemeingültig gehalten ist, können Daten von allen Navimow-Modellen, die in der Navimow-App registriert sind, ausgelesen werden. Da die Steuerkommandos in der API auf die oben genannten fünf Befehle beschränkt sind, sollte es auch hier keine Probleme mit der Kompatibilität geben. Ich freue mich aber über entsprechendes Feedback von euch mit Angabe des konkreten Modells, so dass ich eine Positiv-Liste anlegen kann. Das Modul unterstützt auch mehere Modelle im gleichen Account. Allerdings bin ich da auf Feedback angewiesen, da ich nur ein einzelnes Gerät im Einsatz habe.

Wie funktioniert das ganze?

1. Damit das Modul in FHEM verwendet werden kann, ist der folgende update-Befehl in FHEM auszuführen:
update all https://raw.githubusercontent.com/frank-lie/Navimow/main/controls_Navimow.txtUm automatisch immer die aktuelle Version des Moduls im Rahmen des FHEM-Befehls update zu erhalten, kann man den Link auch generell als Update-Quelle hinzufügen:
update add https://raw.githubusercontent.com/frank-lie/Navimow/main/controls_Navimow.txt
2. Nach einem Update von FHEM sollte in der Regel ein Neustart von FHEM gemacht werden, damit alle Änderungen ordnungsgemäß geladen werden:
shutdown restart
3. Für die Kommunikation mit der Navimow-Cloud ist in FHEM zunächst ein Master-Device anzulegen:
define <NAME> Navimow
4. Sobald das Master-Device erstellt worden ist, kann der AUTHORIZATION_LINK (zu finden als INTERNAL im Master-Device) aufgerufen werden, um den Autorisierungsprozess zu starten. Ihr werdet auf die Seite von Navimow geleitet (diese Seite wurde zwar vorrangig für Home Assistant gestaltet, aber das soll uns nicht weiter stören), müsst euch dort einloggen und das Captcha lösen und werdet im Anschluss auf die REDIRECT_URI weitergeleitet. Bei Aufruf der "Standard-REDIRECT_URI" wird euer Browser sagen, dass die Verbindung fehlgeschlagen ist. Das ist nicht schlimm, denn ihr benötigt nur den Link der Internetseite aus dem Browser mit dem Autorisierungscode. Kopiert also den vollständigen Link "http://localhost/callback?code=xxxxx" in die Zwischenablage.

5. Gebt in FHEM den Autorisierungscode als set-command ein:
set <NAME> AuthCode <kompletter Link der Rückgabe-URL>
6. Mit dem Setzen des Autorisierungscodes bekommt FHEM die erforderlichen Token für den Zugriff auf die Navimow-Cloud übermittelt. Die Einrichtung des Master-Devices ist damit abgeschlossen. Die Mower-Devices werden standardmäßig beim Abruf der Daten aus der Cloud automatisch als Device in FHEM angelegt. Im Anschluss wird automatisch eine MQTT-Verbindung zum Navimow-Server hergestellt, damit die Real-Time-Daten per MQTT empfangen werden können.

Hinweis: Die Real-Time-Daten per MQTT werden im "Sekundentakt" gepublisht, wenn das Gerät aktiv ist bzw. sich bewegt. Wenn der Mähroboter in der Dockingstation steht, kommen relativ selten Real-Time-Daten per MQTT rein.

Wer Schritt 4 bis 6 automatisieren bzw. perfektieren will, kann auch eine individuelle REDIRECT_URI konfigurieren. Nähere Hinweis dazu gibt es auf Github. Da diese Schritte nur einmalig durchgeführt werden müssen und die Konfiguration einer individuellen REDIRECT_URI sehr fehleranfällig sein kann, empfehle ich jedem Einsteiger einfach die Schritte 1 bis 6 durchzuführen und den Autorisierungscode manuell aus der Browserzeile in die Zwischenablage zu kopieren und manuell an FHEM zu übergeben, auch wenn das etwas umständlich anmutet.

Warum habe ich das Modul nicht eher veröffentlicht?
Die ursprünglichen Versionen des Moduls waren zwar funktionsfähig, aber sehr rudimentär und hatten zunächst nur HTTP-Requests unterstützt. Der Nutzen des Ganzen hielt sich damit stark in Grenzen. In das Thema MQTT musste ich mich zunächst einarbeiten. Nun ist es soweit, dass auch der MQTT-Support enthalten ist und ich meine innnere Beta-Phase erfolgreich abgeschlossen habe.

Auch wenn sich die Mähsaison langsam dem Ende nähert, hat vielleicht der ein oder andere Interesse an diesen Modul.

MfG Frank