NEWS
[TEST] Mammotion – Adapter für Mammotion Luba / Yuka
-
Zonen / Hash-Namen:
Die Hashes selbst sollten sich nicht ständig ändern. Was sich aber ändern kann, ist die Zuordnung bzw. der Fallback-Name, wenn Mammotion/PyMammotion keine sauberen Zonennamen liefert. Gerade beim Luba 1 ist das leider unschön, weil die App intern zwar „Bereich 1, 2, 3 …“ zeigt, das aber nicht 1:1 sauber in den Daten hängt.Sorry für die späte Rückmeldung. Leider ist die letzten Tage etwas dazwischen gekommen und ich konnte nicht weiter testen. Als ich mich heute dem Projekt erneut widmen wollte, musste ich feststellen, dass über 100 neue Zonen-Einträge bei den Objekten aufgelistet werden. Der Luba Mini 2 wurden jedoch die letzten Tage nur über die Mammotion eigene App gestartet.
Verstehe ich es richtig, dann kann hier nichts "optimiert" werden?
Hast du denn die aktuelle Version drauf freigegeben
2 weeks ago?Die Zonen hatte ich eigentlich so, dass die nicht automatisch abgerufen werden.
Die werden ausschließlich über
mammotion-pymammotion.0.devices.Luba-XX.zones.syncMapabgerufen, somit sollten die "100" Zonen von selbst nicht möglich sein.Ich habe hier einen Adapter mit Luba 1 und Luba 2 laufen, hatte eben mal zum testen die Zonen neu gezogen, auch da habe ich nur meine 10 Areas die ich auch vorher hatte.
-
Hast du denn die aktuelle Version drauf freigegeben
2 weeks ago?Die Zonen hatte ich eigentlich so, dass die nicht automatisch abgerufen werden.
Die werden ausschließlich über
mammotion-pymammotion.0.devices.Luba-XX.zones.syncMapabgerufen, somit sollten die "100" Zonen von selbst nicht möglich sein.Ich habe hier einen Adapter mit Luba 1 und Luba 2 laufen, hatte eben mal zum testen die Zonen neu gezogen, auch da habe ich nur meine 10 Areas die ich auch vorher hatte.
Hast du denn die aktuelle Version drauf freigegeben 2 weeks ago ?
Eigentlich schon -> v0.1.5.
Was mich auch noch irritiert:
Belade ich das nachfolgende Objekt mit dem nachfolgenden Inhalt, dann werden beim Betätigen vom Objekt "StartSelected" trotzdem mehrere Bereiche gemäht, obwohl im Payload eigentlich nur ein Bereich eingetragen war:Ich gebe also im Objekt:
mammotion-pymammotion.0.devices.Luba-LABKL4PM.zones.startPayloadfolgendes ein:
{ "areas": [ "1408453725693220568" ], "startImmediately": true, "bladeHeight": 35, "pathSpacing": 11, "pathOrder": 0, "cuttingPathMode": 0, "obstacleDetectionMode": 0, "cuttingPathAngle": 0, "cuttingPathAngleMode": 0, "crossingAngle": 0, "boundaryLaps": 2, "noGoZoneLaps": 0, "perimeterLaps": 2, "startProgress": 0, "collectGrassFrequency": 0 }und aktiviere die ganze Sache mit:
mammotion-pymammotion.0.devices.Luba-LABKL4PM.zones.startSelectedDann startet der Mäher, aber je nach dem, welche anderen Zonen über:
mammotion-pymammotion.0.devices.Luba-LABKL4PM.zones.zone_79817091525556033965.config.startnoch ausgewählt sind, auch die anderen Zonen ab.
Oder wie kann ich nach dem Füllen von "startPayload" nur den gewünschten Bereich mähen lassen? Ist hier nicht "StartSelected" das korrekte Objekt, zum Ausführen vom "startPayload"?
-
Danke für die Rückmeldung, das ist so nicht gewollt.
Die >100 zusätzlichen Zonen-Objekte sollten eigentlich nicht entstehen.
syncMapwird nicht automatisch dauernd ausgeführt. Der aktuelle Stand im Adapter ist aber so, dass nicht nur die echten Map-Areas, sondern zusätzlich auch Hashes aus dem aktuellen Work-/Status-Kontext mit in die Zonenliste übernommen werden. Wenn Mammotion/PyMammotion dort temporär andere Hashes meldet, landen die aktuell leider alszone_*-Objekte in ioBroker und werden bisher auch nicht automatisch wieder aufgeräumt.Ich werde das so anpassen, dass nur noch echte Map-/Area-Hashes dauerhaft als Zonenobjekte angelegt werden bzw. dass fremde/stale Hashes nicht mehr alles zumüllen.
Zum zweiten Punkt mit
startPayload:
Ja,startSelectedist grundsätzlich das richtige Objekt zum Starten. Aktuell ist es aber so, dass beistartSelecteddie bereits ausgewählten Zonen ausselectedAreas/zone_xxx.config.selectedVorrang haben. Das heißt: Wenn dort noch andere Bereiche ausgewählt sind, werden diese aktuell mit berücksichtigt – auch wenn imstartPayloadnur eine Area steht.Heißt konkret:
startPayloadalleine überschreibt die bestehende Auswahl beistartSelectedaktuell nicht hart- Wenn du exakt eine Area aus dem Payload starten willst, müssen die anderen selektierten Zonen raus
- Alternativ den direkten Start der einzelnen Zone über
zone_<hash>.config.startnutzen
Das ist also eher aktuelles Verhalten / Bug als beabsichtigte Endlogik. Ich passe das noch an, damit
startPayload.areasbeistartSelectedsauber und eindeutig verwendet wird. -
Ich denke, dann freue ich mich auf die nächste Version von dir... :-)
Danke nochmals für deine Bemühungen! -

Hilf mir doch bitte kurz weiter. Hat sich der Link (https://github.com/DNAngelX/ioBroker.mammotion-pymammotion) geändert? Ich sehe nach wie vor nur v0.1.5
-

Hilf mir doch bitte kurz weiter. Hat sich der Link (https://github.com/DNAngelX/ioBroker.mammotion-pymammotion) geändert? Ich sehe nach wie vor nur v0.1.5
-
Meine Erfahrungen mit dem neuen Adapter:
Ich habe ioBroker in Docker auf Unraid laufen. Mithilfe der KI (ich selbst wäre niemals darauf gekommen) habe ich es geschafft, Python 3.13 in einen persistenten Pfad (unter appdata) im Container zu kompilieren.
Im Mammotion-Adapter habe ich diesen Pfad eingetragen. Das funktioniert, auch nach einem Container-Update.
Mein Yuka Mini 2025 wird erkannt, Zeitpläne und Zonen werden geladen. Allerdings starte ich den Yuka nicht über diese Zonen.
Zum Verwalten meiner zwei Rasenflächen hatte ich schon von Anfang an (also bereits vor ioBroker) zwei Zeitpläne mit allen Einstellungen für die jeweilige Fläche in der App angelegt. Den Autostart hatte ich jedoch deaktiviert, weil ich lieber manuell starte. Die Zeitpläne konnten in der App jederzeit auch manuell gestartet werden.
Erfreulicherweise werden die beiden Zeitpläne jetzt auch in ioBroker erkannt, jeweils mit einem "start" Datenpunkt. Das funktioniert bei mir bisher problemlos.
-
Meine Erfahrungen mit dem neuen Adapter:
Ich habe ioBroker in Docker auf Unraid laufen. Mithilfe der KI (ich selbst wäre niemals darauf gekommen) habe ich es geschafft, Python 3.13 in einen persistenten Pfad (unter appdata) im Container zu kompilieren.
Im Mammotion-Adapter habe ich diesen Pfad eingetragen. Das funktioniert, auch nach einem Container-Update.
Mein Yuka Mini 2025 wird erkannt, Zeitpläne und Zonen werden geladen. Allerdings starte ich den Yuka nicht über diese Zonen.
Zum Verwalten meiner zwei Rasenflächen hatte ich schon von Anfang an (also bereits vor ioBroker) zwei Zeitpläne mit allen Einstellungen für die jeweilige Fläche in der App angelegt. Den Autostart hatte ich jedoch deaktiviert, weil ich lieber manuell starte. Die Zeitpläne konnten in der App jederzeit auch manuell gestartet werden.
Erfreulicherweise werden die beiden Zeitpläne jetzt auch in ioBroker erkannt, jeweils mit einem "start" Datenpunkt. Das funktioniert bei mir bisher problemlos.
Wo ist der Vorteil? Kann der ioBroker mehr als die App? Warum gehst du diesen Weg? Bring bitte Licht ins Dunkle.1
-
Wo ist der Vorteil? Kann der ioBroker mehr als die App? Warum gehst du diesen Weg? Bring bitte Licht ins Dunkle.1
@Meister-Mopper Die Frage verstehe ich nicht.
So könnte man jede Intergration in Iobroker hinterfragen. Schließlich kann man alles klassich bedienen.Was ich mir vorstelle:
- Mähzyklus abhängig von Hitze, Trockenheit
- Gar nicht rausfahren wenns regnet
- etc
- etc
....
-
Mit der aktualisierten Version zeigt sich ein sonderbares Verhalten:
Dieser Vorgang wiederholt sich einige male...
-
Im Prinzip sieht es relativ gut aus. Nur eine Zone hat es doppelt erstellt, die hartnäckig bleibt. Teilweise werden auch andere doppelt aufgelistet, aber sobald ich den Browser aktualisiere, sind diese wieder weg. Muss dazu jedoch sagen, dass ich grad wieder knapp Zeit hatte und der längere Test noch ausblieb. Leider sieht es die nächsten Tage auch nicht "rosig" aus, aber ich werde sobald als möglich weiter testen!
So wie es scheint, funktioniert nun auch das "StartSelected", welches nun nur noch diejenigen Zonen mäht, welche auch im Payload erwähnt sind. Ich denke: gute Arbeit!

-
Im Prinzip sieht es relativ gut aus. Nur eine Zone hat es doppelt erstellt, die hartnäckig bleibt. Teilweise werden auch andere doppelt aufgelistet, aber sobald ich den Browser aktualisiere, sind diese wieder weg. Muss dazu jedoch sagen, dass ich grad wieder knapp Zeit hatte und der längere Test noch ausblieb. Leider sieht es die nächsten Tage auch nicht "rosig" aus, aber ich werde sobald als möglich weiter testen!
So wie es scheint, funktioniert nun auch das "StartSelected", welches nun nur noch diejenigen Zonen mäht, welche auch im Payload erwähnt sind. Ich denke: gute Arbeit!

-
Hallo stolly82.
Die Auslands-Ferien für dieses Jahr sind durch und ich konnte nun endlich noch etwas weitertesten.
Gestern war unter den Objekten eigentlich nur der Süd-Bereich doppelt aufgelistet. Heute sind zusätzlich der "Nord-" sowie "West-Bereich" hinzugekommen. Die restlichen drei Bereiche sind aktuell nur einmal aufgeführt. Dieses Mal bleiben die doppelten Bereich auch nach dem Aktualisieren des Browser-Fenster erhalten. Auch wenn ich die Objekt-Seite vom IOBroker in einem anderen Mac öffne, werden diese alle angezeigt.
Etwas ist mir noch aufgefallen: Gestern habe ich zu Testzwecke den Nord-Bereich (über das Payload-Objekt) mähen lassen. Als ich dies heute wiederholen wollte, fiel mir auf, dass die ID, die ich gestern im Payload-Objekt eingetragen hatte, gar nicht mehr unter den Objekten auffindbar war. Es sieht quasi so aus, als würde die ID doch ändern. Ich muss dazu sagen, dass ich wegen dem lauten "Ge-Piepe" vor dem Start des Drehtellers den Robi neu gestartet habe. Vielleicht ist es auch purer Zufall...? Um auf Nummer sicher zu gehen, müsste ich dies die nächsten Tage weitertesten...Bin ich demnach der Einzige mit diesem Verhalten? Liegt es evtl. am neuen Luba Mini 2 AWD 1500 mit Lidar?
Noch eine weitere Frage: Betreffend der Reihenfolge (pathOrder -> 0 = Erst Rand, dann Fläche / 1 = Erst Fläche). Hast du hierfür evtl. schon eine Lösung oder ist dessen Korrektur zu komplex?
-
Hallo stolly82.
Die Auslands-Ferien für dieses Jahr sind durch und ich konnte nun endlich noch etwas weitertesten.
Gestern war unter den Objekten eigentlich nur der Süd-Bereich doppelt aufgelistet. Heute sind zusätzlich der "Nord-" sowie "West-Bereich" hinzugekommen. Die restlichen drei Bereiche sind aktuell nur einmal aufgeführt. Dieses Mal bleiben die doppelten Bereich auch nach dem Aktualisieren des Browser-Fenster erhalten. Auch wenn ich die Objekt-Seite vom IOBroker in einem anderen Mac öffne, werden diese alle angezeigt.
Etwas ist mir noch aufgefallen: Gestern habe ich zu Testzwecke den Nord-Bereich (über das Payload-Objekt) mähen lassen. Als ich dies heute wiederholen wollte, fiel mir auf, dass die ID, die ich gestern im Payload-Objekt eingetragen hatte, gar nicht mehr unter den Objekten auffindbar war. Es sieht quasi so aus, als würde die ID doch ändern. Ich muss dazu sagen, dass ich wegen dem lauten "Ge-Piepe" vor dem Start des Drehtellers den Robi neu gestartet habe. Vielleicht ist es auch purer Zufall...? Um auf Nummer sicher zu gehen, müsste ich dies die nächsten Tage weitertesten...Bin ich demnach der Einzige mit diesem Verhalten? Liegt es evtl. am neuen Luba Mini 2 AWD 1500 mit Lidar?
Noch eine weitere Frage: Betreffend der Reihenfolge (pathOrder -> 0 = Erst Rand, dann Fläche / 1 = Erst Fläche). Hast du hierfür evtl. schon eine Lösung oder ist dessen Korrektur zu komplex?
ADB-83 sagte:
Es sieht quasi so aus, als würde die ID doch ändern. Ich muss dazu sagen, dass ich wegen dem lauten "Ge-Piepe" vor dem Start des Drehtellers den Robi neu gestartet habe. Vielleicht ist es auch purer Zufall...? Um auf Nummer sicher zu gehen, müsste ich dies die nächsten Tage weitertesten...
Nachtrag:
Als Versuch entfernte ich gerade eben den Objektbaum der Zonen und habe den Adapter neu gestartet und ein ReSync der Maps durchführen lassen. Die Hash-Bezeichnungen der Zonen hatten sich dadurch wieder geändert. -
Ich habe folgendes Problem:
nach dem Start des Adapters kommt eine Fehlermeldung als error.Python bootstrap failed: Field "data" of type Optional[ShareNoticeData] in ShareNoticeListResponse has invalid value {'total': 4, 'data': [{'gmtModified': 1774883263000, 'targetId': 'sI4QwtmabGwwgx9NbAnV000000', 'receiverIdentityId': '50f4op5a571b7fad2945b5ead0017df9bb1c1203', 'description': 'You have accepted the sharing with null', 'targetType': 'DEVICE', 'gmtCreate': 1774882588000, 'batchId': 'ACCOUNT_DEV_SHARE_422036e4-371b-4d48-af20-a15721105514', 'nodeType': 'DEVICE', 'deviceName': 'Yuka-VPW82YH2', 'productName': 'YukaPlus', 'recordId': '40e0cc5a01df4d02a7b7bbc39928c289', 'initiatorIdentityId': '50a2op8ee7fb7af0b71e739a41c0ae5ce8db6442', 'isReceiver': 1, 'initiatorAlias': 'null', 'receiverAlias': 'null', 'status': 0}, {'gmtModified': 1774882542000, 'targetId': 'sI4QwtmabGwwgx9NbAnV000000', 'receiverIdentityId': '50f4op5a571b7fad2945b5ead0017df9bb1c1203', 'description': 'null has canceled the sharing with you', 'targetType': 'DEVICE', 'gmtCreate': 1774882188000, 'batchId': 'ACCOUNT_DEV_SHARE_7054e29f-b835-4bea-be59-7ea5d783a676', 'nodeType': 'DEVICE', 'deviceName': 'Yuka-VPW82YH2', 'productName': 'YukaPlus', 'recordId': '3671d0d0cb2140dca0a268a4a9883db1', 'initiatorIdentityId': '50a2op8ee7fb7af0b71e739a41c0ae5ce8db6442', 'isReceiver': 1, 'initiatorAlias': 'null', 'receiverAlias': 'null', 'status': 2}, {'gmtModified': 1774866125000, 'targetId': 'ELy20z0JXOnxLG38DeYd000000', 'categoryImage': 'https://ai-genie-center.oss-cn-hangzhou.aliyuncs.com/app-data/iot-center/static_category/Tracker/定位终端备份.png', 'receiverIdentityId': '50f4op5a571b7fad2945b5ead0017df9bb1c1203', 'description': 'You have accepted the sharing with null', 'targetType': 'DEVICE', 'gmtCreate': 1774866020000, 'batchId': 'ACCOUNT_DEV_SHARE_998c2bc5-d4c3-4cf5-ba43-3cd5eb43e861', 'nodeType': 'DEVICE', 'deviceName': 'RBSA2789H4T', 'productName': 'RBS03', 'recordId': 'ee6f22dfc3de473ea3cf61e30f31bb62', 'productImage': 'https://ai-genie-center.oss-cn-hangzhou.aliyuncs.com/app-data/iot-center/static_category/Tracker/定位终端备份.png', 'initiatorIdentityId': '50a2op8ee7fb7af0b71e739a41c0ae5ce8db6442', 'isReceiver': 1, 'initiatorAlias': 'null', 'receiverAlias': 'null', 'status': 0}, {'gmtModified': 1774866100000, 'targetId': 'sI4QwtmabGwwgx9NbAnV000000', 'receiverIdentityId': '50f4op5a571b7fad2945b5ead0017df9bb1c1203', 'targetType': 'DEVICE', 'gmtCreate': 1774866020000, 'batchId': 'ACCOUNT_DEV_SHARE_998c2bc5-d4c3-4cf5-ba43-3cd5eb43e861', 'nodeType': 'DEVICE', 'deviceName': 'Yuka-VPW82YH2', 'productName': 'YukaPlus', 'recordId': '348a9fed45134e76b6bf696f7803b506', 'initiatorIdentityId': '50a2op8ee7fb7af0b71e739a41c0ae5ce8db6442', 'isReceiver': 1, 'initiatorAlias': 'null', 'receiverAlias': 'null', 'status': 6}], 'pageNo': 1, 'pageSize': 100}danach folgendes als warnung:
[sidecar-error] Field "data" of type Optional[ShareNoticeData] in ShareNoticeListResponse has invalid value {'total': 4, 'data': [{'gmtModified': 1774883263000, 'targetId': 'sI4QwtmabGwwgx9NbAnV000000', 'receiverIdentityId': '50f4op5a571b7fad2945b5ead0017df9bb1c1203', 'description': 'You have accepted the sharing with null', 'targetType': 'DEVICE', 'gmtCreate': 1774882588000, 'batchId': 'ACCOUNT_DEV_SHARE_422036e4-371b-4d48-af20-a15721105514', 'nodeType': 'DEVICE', 'deviceName': 'Yuka-VPW82YH2', 'productName': 'YukaPlus', 'recordId': '40e0cc5a01df4d02a7b7bbc39928c289', 'initiatorIdentityId': '50a2op8ee7fb7af0b71e739a41c0ae5ce8db6442', 'isReceiver': 1, 'initiatorAlias': 'null', 'receiverAlias': 'null', 'status': 0}, {'gmtModified': 1774882542000, 'targetId': 'sI4QwtmabGwwgx9NbAnV000000', 'receiverIdentityId': '50f4op5a571b7fad2945b5ead0017df9bb1c1203', 'description': 'null has canceled the sharing with you', 'targetType': 'DEVICE', 'gmtCreate': 1774882188000, 'batchId': 'ACCOUNT_DEV_SHARE_7054e29f-b835-4bea-be59-7ea5d783a676', 'nodeType': 'DEVICE', 'deviceName': 'Yuka-VPW82YH2', 'productName': 'YukaPlus', 'recordId': '3671d0d0cb2140dca0a268a4a9883db1', 'initiatorIdentityId': '50a2op8ee7fb7af0b71e739a41c0ae5ce8db6442', 'isReceiver': 1, 'initiatorAlias': 'null', 'receiverAlias': 'null', 'status': 2}, {'gmtModified': 1774866125000, 'targetId': 'ELy20z0JXOnxLG38DeYd000000', 'categoryImage': 'https://ai-genie-center.oss-cn-hangzhou.aliyuncs.com/app-data/iot-center/static_category/Tracker/定位终端备份.png', 'receiverIdentityId': '50f4op5a571b7fad2945b5ead0017df9bb1c1203', 'description': 'You have accepted the sharing with null', 'targetType': 'DEVICE', 'gmtCreate': 1774866020000, 'batchId': 'ACCOUNT_DEV_SHARE_998c2bc5-d4c3-4cf5-ba43-3cd5eb43e861', 'nodeType': 'DEVICE', 'deviceName': 'RBSA2789H4T', 'productName': 'RBS03', 'recordId': 'ee6f22dfc3de473ea3cf61e30f31bb62', 'productImage': 'https://ai-genie-center.oss-cn-hangzhou.aliyuncs.com/app-data/iot-center/static_category/Tracker/定位终端备份.png', 'initiatorIdentityId': '50a2op8ee7fb7af0b71e739a41c0ae5ce8db6442', 'isReceiver': 1, 'initiatorAlias': 'null', 'receiverAlias': 'null', 'status': 0}, {'gmtModified': 1774866100000, 'targetId': 'sI4QwtmabGwwgx9NbAnV000000', 'receiverIdentityId': '50f4op5a571b7fad2945b5ead0017df9bb1c1203', 'targetType': 'DEVICE', 'gmtCreate': 1774866020000, 'batchId': 'ACCOUNT_DEV_SHARE_998c2bc5-d4c3-4cf5-ba43-3cd5eb43e861', 'nodeType': 'DEVICE', 'deviceName': 'Yuka-VPW82YH2', 'productName': 'YukaPlus', 'recordId': '348a9fed45134e76b6bf696f7803b506', 'initiatorIdentityId': '50a2op8ee7fb7af0b71e739a41c0ae5ce8db6442', 'isReceiver': 1, 'initiatorAlias': 'null', 'receiverAlias': 'null', 'status': 6}], 'pageNo': 1, 'pageSize': 100}leider habe ich garkeinen Plan davon.
Ich hoffe, irgendwer kann mir helfen.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden
