External integration - Mammotion

Ah finally, it’s better!
The « mow » button correctly starts a mow/pause/resume
The « refresh » button works well: the information appears immediately

But there is still a problem: the robot starts a mow on 1 single zone and with default parameters that are not good. I don’t know where it gets them from?

I need you to decide :slight_smile:

Here’s what I found in the code.

Where the parameters come from

  • They don’t come from the Mammotion app: they are hardcoded in src/mammotion/commands.js:210 (buildRouteContent). These are the default values from Home Assistant:
    • 1 border tour
    • 25 cm between passes
    • speed 0.3 m/s
    • obstacle detection enabled
    • no automatic direction change
  • Cutting height (src/mammotion/client.js:504): the last height sent by the robot. If it hasn’t sent any, it’s 60 mm (DEFAULT_BLADE_HEIGHT_MM, line 52).
  • The Mammotion app keeps its settings in the phone. Gladys can’t read them.

Why only one zone

  • Gladys asks the robot for the list of zones (buildZoneListRequestContent, the « zone name list »), then starts mowing on all received zones.
  • Most likely hypothesis: this list only contains zones that have a name. Zones without a name are ignored. I haven’t checked this yet.
  • Another possibility: the robot sends the list in multiple messages and Gladys only keeps the first one.
  • To decide, look in the Gladys logs for the line:
    planning a route over N zone(s) (…)
    It indicates how many zones were found, and which ones.

What I propose to fix

  1. Retrieve the real list of all zones (the list of « map hashes », not just those that have a name).
  2. Make the settings modifiable in the service config: height, spacing, speed, border tours, zones to mow.

Do you want me to make these changes? If so, send me the log line above and your usual settings in the app.

Log

[2026-10-02T15:35:24.944Z] [INFO] Starting the Mammotion integration...
[2026-10-02T15:35:25.154Z] [INFO] [gladys-sdk] connected to Gladys (http://172.30.0.1:80)
[2026-10-02T15:35:25.533Z] [INFO] [mammotion] Logged in to the Mammotion cloud
[2026-10-02T15:35:26.763Z] [WARN] [mammotion] Aliyun bindings unavailable: fetch failed
[2026-10-02T15:35:26.764Z] [INFO] 1 mower(s) found on the Mammotion account
[2026-10-02T15:35:30.804Z] [INFO] [mammotion] Luba-VPMBS8RA is not on Aliyun, switching to the Mammotion broker
[2026-10-02T15:35:31.340Z] [INFO] [mammotion-mqtt] Connected to the Mammotion broker mqtt-eu.mammotion.com
[2026-10-02T15:35:31.374Z] [INFO] [mammotion-mqtt] Following Luba-VPMBS8RA on the Mammotion broker
[2026-10-02T15:35:31.517Z] [INFO] [mammotion-mqtt] First data received from Luba-VPMBS8RA (device_protobuf_msg_event)
[2026-10-02T15:37:37.269Z] [INFO] 1 mower(s) found on the Mammotion account
[2026-10-02T15:39:27.365Z] [INFO] onSetValue <- ext:ext-prohand-gladys-mammotion:mower:nNlJJBp0Cxx538To70i6000000:mowing = 1
[2026-10-02T15:39:28.121Z] [INFO] [mammotion] Luba-VPMBS8RA: planning a route over 1 zone(s) (Derrière), blade at 50 mm
[2026-10-02T15:39:28.464Z] [INFO] [mammotion] Luba-VPMBS8RA: route planned (result 0)
[2026-10-02T15:39:28.464Z] [INFO] [mammotion] Sending "start" to Luba-VPMBS8RA
[2026-10-02T15:40:07.907Z] [INFO] onSetValue <- ext:ext-prohand-gladys-mammotion:mower:nNlJJBp0Cxx538To70i6000000:refresh = 1
[2026-10-02T15:42:13.573Z] [INFO] onSetValue <- ext:ext-prohand-gladys-mammotion:mower:nNlJJBp0Cxx538To70i6000000:refresh = 1
[2026-10-02T15:42:31.332Z] [INFO] onSetValue <- ext:ext-prohand-gladys-mammotion:mower:nNlJJBp0Cxx538To70i6000000:mowing = 0
[2026-10-02T15:42:31.333Z] [INFO] [mammotion] Sending "pause" to Luba-VPMBS8RA
[2026-10-02T15:43:01.106Z] [INFO] onSetValue <- ext:ext-prohand-gladys-mammotion:mower:nNlJJBp0Cxx538To70i6000000:mowing = 1
[2026-10-02T15:43:01.107Z] [INFO] [mammotion] Sending "resume" to Luba-VPMBS8RA
[2026-10-02T15:43:37.579Z] [INFO] onSetValue <- ext:ext-prohand-gladys-mammotion:mower:nNlJJBp0Cxx538To70i6000000:dock = 1
[2026-10-02T15:43:37.580Z] [INFO] [mammotion] Sending "dock" to Luba-VPMBS8RA
[2026-10-02T15:44:32.548Z] [INFO] onSetValue <- ext:ext-prohand-gladys-mammotion:mower:nNlJJBp0Cxx538To70i6000000:refresh = 1
[2026-10-02T15:46:20.191Z] [INFO] onSetValue <- ext:ext-prohand-gladys-mammotion:mower:nNlJJBp0Cxx538To70i6000000:refresh = 1
  • et voici la ligne en question : ```
    [2026-10-02T15:39:28.121Z] [INFO] [mammotion] Luba-VPMBS8RA: planning a route over 1 zone(s) (Derrière), blade at 50 mm
    [2026-10-02T15:39:28.464Z] [INFO] [mammotion] Luba-VPMBS8RA: route planned (result 0)
  • I have 6 zones on my map

  • for MY default values, set

Cutting height: 60 mm
Speed: 0.6 m/s
32 cm between passes
Cutting angle: 111°
Mowing trajectory mode: zigzag trajectory
Perimeter mowing lap: 0
Obstacle detection mode: disabled
Mowing lap for restricted areas: 0
Order of routes: Zigzag first
Start progression: 0%


I pushed corrections based on your feedback in 1.0.9

The cause

  • To know the zones, Gladys asked the robot for its list of zones. However, this list only contains zones that have a name in the Mammotion app. In my case, only « Derrière » had one, out of 6 zones.
  • The mowing settings were hardcoded in the code. These are the default values of Home Assistant: 1 perimeter pass, 25 cm, 0.3 m/s, obstacle detection enabled.
  • The Mammotion app keeps its settings in the phone: Gladys cannot read them.

What has changed

  • Gladys now reads all elements of the map and keeps the zones, with or without a name (same method as the PyMammotion library used by Home Assistant).
  • The type of each map element is only requested once, to avoid overloading the Mammotion cloud.
  • If the robot does not respond, Gladys reverts to the old behavior (only named zones).
  • New section « New mowing » in the integration configuration:
    • Zones to mow (names separated by commas, empty = all zones)
    • Cutting height, speed, spacing of trajectories, angle
    • Trajectory mode (zigzag / checkerboard), order of routes
    • Perimeter passes, passes of forbidden zones
    • Obstacle detection mode
  • The logs now display the zones and all settings sent to the robot.

Default values
60 mm, 0.6 m/s, 32 cm, 111°, zigzag, zigzag first, 0 perimeter passes, 0 passes of forbidden zones, obstacle detection disabled.

Points to confirm on a real robot

  • The angle is sent in « relative » mode. To be verified against « Customize » in the app.
  • « Disabled » for obstacle detection corresponds to the value 0 (direct contact). To be confirmed.
  • A zone without a name is called « zone 1 », « zone 2 »… in the logs. To select it in « Zones to mow », it is better to give it a name in the app.

for once, it’s not a test of the latest version, but a message I received from gladys:
Screenshot 2026-10-03 095545

2 issues: where does this message come from? and on top of that, it’s false
Screenshot 2026-10-03 095406

Here is the JSON of the message:

Here’s what I think: an external integration can trigger the system warning from gladys


So gladys should retrieve the correct value! (or not handle this issue with external integrations?)

@prohand @pierre-gilles

Thanks

Correction in 1.0.10

What’s New

  • « Charging » leaves the battery category:
    • before: battery / charging
    • now: input / binary, the standard yes/no measurement of Gladys
    • same 0/1 value, and it still works in scenes
  • New identifier charging-state (instead of charging): the old measurement is no longer fed.
  • In addition: a battery at 0% coming from the cloud is ignored. Protobuf reports already did this. A 0% of this type would trigger the same false alert.
  • Doc: README, docs/fr.md and docs/en.md updated, with an entry in troubleshooting.
  • Tests: a test checks that only the battery in % remains in the battery category.

For Chris75, after the update

  • Open the Discovery tab and click Update on the mower.
  • Gladys then removes the old « Charging » measurement. I checked in Gladys’s code (device.create.js). The alert stops.
  • Until this click is made, the old measurement remains recorded with its last value. The Saturday alert can therefore still go out.

test in V1.0.10

I have a problem saving the configuration:
the movement speed selection only accepts 2 values: 0.2 and 1.2
therefore the default value (0.6) is not accepted

So the « mow » button always starts mowing by default with the mammotion app settings

Another issue: the « return to base » button does make the robot return to its base, but leaves the state in « paused » and thus the mammotion app also remains paused and you have to stop on the mammotion app


Last question: it would be to be able to control the robot as the external integration « dreame » does, that is, to be able to make all the settings in devices (and not at the configuration level) and then start a mow with these settings

LOG

[2026-10-03T10:01:34.767Z] [INFO] Starting the Mammotion integration...
[2026-10-03T10:01:34.988Z] [INFO] [gladys-sdk] connected to Gladys (http://172.30.0.1:80)
[2026-10-03T10:01:35.396Z] [INFO] [mammotion] Logged in to the Mammotion cloud
[2026-10-03T10:01:40.048Z] [INFO] 1 mower(s) found on the Mammotion account
[2026-10-03T10:01:40.780Z] [INFO] [mammotion-mqtt] Connected to the Mammotion broker mqtt-eu.mammotion.com
[2026-10-03T10:01:40.838Z] [INFO] [mammotion-mqtt] Following Luba-VPMBS8RA on the Mammotion broker
[2026-10-03T10:01:41.090Z] [INFO] [mammotion-mqtt] First data received from Luba-VPMBS8RA (device_protobuf_msg_event)
[2026-10-03T10:16:53.328Z] [INFO] 1 mower(s) found on the Mammotion account
[2026-10-03T10:18:27.698Z] [INFO] onSetValue <- ext:ext-prohand-gladys-mammotion:mower:nNlJJBp0Cxx538To70i6000000:mowing = 1
[2026-10-03T10:18:33.597Z] [INFO] [mammotion] Luba-VPMBS8RA: planning a route over 6 zone(s) (Derrière, zone 2, Bas, Devant, zone 5, zone 6), blade at 60 mm, 0.6 m/s, 32 cm, 111°, zigzag, 0 border lap(s), obstacle detection off
[2026-10-03T10:18:33.934Z] [INFO] [mammotion] Luba-VPMBS8RA: route planned (result 0)
[2026-10-03T10:18:33.934Z] [INFO] [mammotion] Sending "start" to Luba-VPMBS8RA
[2026-10-03T10:19:26.012Z] [INFO] onSetValue <- ext:ext-prohand-gladys-mammotion:mower:nNlJJBp0Cxx538To70i6000000:mowing = 0
[2026-10-03T10:19:26.013Z] [INFO] [mammotion] Sending "pause" to Luba-VPMBS8RA
[2026-10-03T10:20:02.459Z] [INFO] onSetValue <- ext:ext-prohand-gladys-mammotion:mower:nNlJJBp0Cxx538To70i6000000:dock = 1
[2026-10-03T10:20:02.460Z] [INFO] [mammotion] Sending "dock" to Luba-VPMBS8RA
[2026-10-03T10:20:38.199Z] [INFO] onSetValue <- ext:ext-prohand-gladys-mammotion:mower:nNlJJBp0Cxx538To70i6000000:refresh = 1
[2026-10-03T10:21:55.278Z] [INFO] onSetValue <- ext:ext-prohand-gladys-mammotion:mower:nNlJJBp0Cxx538To70i6000000:refresh = 1

Thanks Chris75 for the tests and the log :+1:

Corrections and new features in 1.0.11

1. The configuration was not saved (speed)

  • The speed field only accepted 0.2 and 1.2: the Gladys form advances in steps of 1 from the minimum.
  • As a result, nothing was saved (zones, height…). The mowing started with the default values.
  • The speed is now a list from 0.2 to 1.2 m/s.

2. « Return to base » left the mowing on pause

  • When mowing is paused, Gladys first sends Stop, then Return to base, as in the app.
  • No need to do Stop in the Mammotion app.
  • During ongoing mowing (not paused), nothing changes: simple return, mowing can resume afterwards.

3. New: settings on the device (like Dreame)

  • The mower now has « Setting – … » lists: zones, cutting height, speed, spacing, angle, trajectory mode, perimeter laps, obstacle detection, forbidden zone laps, order.
  • You choose the values (dashboard or scene), then turn on Mowing: the mowing starts with these settings.
  • At startup, the lists take the values from the configuration.
  • A choice on the device applies only to that mower.
  • A new value saved in the configuration applies to all mowers.
  • The zone list offers « All zones » then each zone on the map. The map is read at the start of the integration and at each mowing.
  • Scene example: on Saturday, « Zones to mow » = « Front » then Mowing; on Wednesday, « All zones ».

After the update

  • Open the Discovery tab and click Update on the mower. Otherwise, the lists won’t appear.
  • Re-save the configuration once, as speed is now a list.

For you to test, Chris75

  • Pause then Return to base: does the mower return properly and is the app no longer in pause?
  • If the zone list only shows « All zones », the mower hasn’t sent its map yet: restart the integration with the mower turned on.

You’ve worked so well and fixed a lot of issues in a very short time. My robot was discovered right away, I’m now trying to understand all the elements that come up, and then create scenes tailored to my needs. I won’t be much help, I’m unfortunately more of a follower. I’m actually discovering Gladys…

Thanks again for your work.

I can’t wait to test this new version with all these new devices.
I’ll do it tomorrow in broad daylight!

Test and dashboard in V1.0.11

Changes to make: adapted to the Luba 2 robot

  • cutting height adjustment: from 25 mm to 70 mm in 5 mm increments

  • activity speed adjustment: from 0.2 m/s to 0.8 m/s in 0.1 m/s increments

  • trajectory spacing adjustment: from 20 cm to 32 cm in 1 cm increments

  • trajectory cutting angle adjustment: there are 2 settings
    – choice between « optimal », « customize », « random »
    – then if you choose « customize » there is an angle setting: from 0° to 180° in 1° increments (important to have nice parallel/perpendicular lines to the house)

  • mowing trajectory mode setting: missing the « adaptive zigzag » option

  • mowing rounds setting for no-mow zones: from 0 to 3 in increments of 1

  • missing the « startup progression » setting: from 0 to 99% in 1% increments (this setting allows mowing to start at x% of the zone)

  • create devices to display the percentage of the mowed area, remaining time, elapsed time, and the area to be mowed

  • missing the ability to select multiple zones to mow (same issue as for the external Dreame integration)

  • and if possible create a « map » widget that displays the zones and the robot’s positioning (see also what is done in the external Dreame integration)

Thanks Chris75 for the tests and screenshots :+1:

Everything you asked for is in 1.1.0, including the map.

  1. Lists follow the mower model

    Gladys reads the model from the mower’s name (Luba-VP… for you).
    On your Luba 2 X:
    cutting height: 25 to 70 mm in 5 mm increments
    speed: 0.2 to 0.8 m/s in 0.1 increments
    spacing: 20 to 32 cm in 1 cm increments
    No-mow zones: 0 to 3.

  2. Cutting angle

    New Angle Type list: Optimal, Custom, Random.
    Then Custom Angle: 0 to 180° in 1° increments.

  3. New settings

    Adaptive zigzag added in the trajectory mode.
    Start progression: 0 to 99 % in 1 % increments.

  4. Multiple mowing zones

    A « Mowing Zone – … » switch per map zone (it replaces the old « Mowing Zones » list).
    You turn on the desired zones, then Mow.
    If no zone is turned on, the mower mows all zones.

  5. New values during mowing

    Mowing progress (%)
    Mowing time elapsed (min), in addition to the remaining time
    Area to mow (m²)

  6. The map

    The mower now has a Map: an image with the zones and their name, the no-mow zones in gray and the mower as a red dot.
    Bright green: the zones of the next mow. Pale green: the others.
    The image follows the mower during mowing.
    To display it: on the dashboard, add a Camera widget and choose the mower.

After the update

Discovery tab → Update on the mower. Without this, the new features won't appear.
The zone switches and the map arrive once the map is read: the mower must be turned on at the start of the integration.
On the first startup, Gladys reads the outline of the zones once. It's a bit longer than usual.

To test on your side, Chris75

Angle type and adaptive zigzag: I'm not 100% sure about the values sent to the mower. Can you start a mow from the Mammotion app with:
    angle « Custom » (e.g. 45°)
    then angle « Random »
    then « Adaptive zigzag » mode

After each test, look for « route settings seen » in the integration logs and paste the lines. I'll correct if needed.
The map: is it in the right direction compared to the app, or rotated or inverted? Is the red dot in the right place? A screenshot would help.
The settings: does a mow started from Gladys go with the chosen zones, the right height and the right speed?

V 1.1.0
My dashboard

Modifications

[2026-10-04T16:23:24.635Z] [INFO] Starting the Mammotion integration...
[2026-10-04T16:23:24.840Z] [INFO] [gladys-sdk] connected to Gladys (*******)
[2026-10-04T16:23:25.217Z] [INFO] [mammotion] Logged in to the Mammotion cloud
[2026-10-04T16:23:26.287Z] [WARN] [mammotion] Aliyun bindings unavailable: fetch failed
[2026-10-04T16:23:26.288Z] [INFO] 1 mower(s) found on the Mammotion account
[2026-10-04T16:23:31.092Z] [INFO] [mammotion] Luba-VPMBS8RA is not on Aliyun, switching to the Mammotion broker
[2026-10-04T16:23:31.788Z] [INFO] [mammotion-mqtt] Connected to the Mammotion broker mqtt-eu.mammotion.com
[2026-10-04T16:23:31.843Z] [INFO] [mammotion-mqtt] Following Luba-VPMBS8RA on the Mammotion broker
[2026-10-04T16:23:32.011Z] [INFO] [mammotion-mqtt] First data received from Luba-VPMBS8RA (device_protobuf_msg_event)
[2026-10-04T16:24:44.627Z] [INFO] Luba-VPMBS8RA: zones Derrière, zone 2, Bas, Devant, zone 5, zone 6
[2026-10-04T16:27:51.602Z] [INFO] 1 mower(s) found on the Mammotion account
[2026-10-04T16:50:41.617Z] [INFO] onSetValue <- ext:ext-prohand-gladys-mammotion:mower:nNlJJBp0Cxx538To70i6000000:zone-devant = 1
[2026-10-04T16:50:41.618Z] [INFO] Luba-VPMBS8RA: zones derriere,devant for the next job
[2026-10-04T16:50:56.978Z] [INFO] onSetValue <- ext:ext-prohand-gladys-mammotion:mower:nNlJJBp0Cxx538To70i6000000:zone-bas = 1
[2026-10-04T16:50:56.978Z] [INFO] Luba-VPMBS8RA: zones derriere,devant,bas for the next job
[2026-10-04T16:52:44.371Z] [INFO] onSetValue <- ext:ext-prohand-gladys-mammotion:mower:nNlJJBp0Cxx538To70i6000000:refresh = 1
[2026-10-04T16:57:34.331Z] [INFO] onSetValue <- ext:ext-prohand-gladys-mammotion:mower:nNlJJBp0Cxx538To70i6000000:zone-bas = 0
[2026-10-04T16:57:34.332Z] [INFO] Luba-VPMBS8RA: zones derriere,devant for the next job
[2026-10-04T16:57:35.023Z] [INFO] onSetValue <- ext:ext-prohand-gladys-mammotion:mower:nNlJJBp0Cxx538To70i6000000:zone-derriere = 0
[2026-10-04T16:57:35.023Z] [INFO] Luba-VPMBS8RA: zones devant for the next job
[2026-10-04T16:58:15.647Z] [INFO] onSetValue <- ext:ext-prohand-gladys-mammotion:mower:nNlJJBp0Cxx538To70i6000000:zone-derriere = 1
[2026-10-04T16:58:15.648Z] [INFO] Luba-VPMBS8RA: zones devant,derriere for the next job
[2026-10-04T17:03:02.267Z] [INFO] onSetValue <- ext:ext-prohand-gladys-mammotion:mower:nNlJJBp0Cxx538To70i6000000:zone-devant = 0
[2026-10-04T17:03:02.268Z] [INFO] Luba-VPMBS8RA: zones derriere for the next job
[2026-10-04T17:03:24.417Z] [INFO] onSetValue <- ext:ext-prohand-gladys-mammotion:mower:nNlJJBp0Cxx538To70i6000000:setting-blade-height = 60
[2026-10-04T17:03:24.418Z] [INFO] Luba-VPMBS8RA: blade_height = 60 for the next job
[2026-10-04T17:03:34.830Z] [INFO] onSetValue <- ext:ext-prohand-gladys-mammotion:mower:nNlJJBp0Cxx538To70i6000000:setting-mowing-speed = 0.6
[2026-10-04T17:03:34.830Z] [INFO] Luba-VPMBS8RA: mowing_speed = 0.6 for the next job
[2026-10-04T17:03:40.082Z] [INFO] onSetValue <- ext:ext-prohand-gladys-mammotion:mower:nNlJJBp0Cxx538To70i6000000:setting-angle-mode = custom
[2026-10-04T17:03:40.082Z] [INFO] Luba-VPMBS8RA: angle_mode = custom for the next job
[2026-10-04T17:03:55.381Z] [INFO] onSetValue <- ext:ext-prohand-gladys-mammotion:mower:nNlJJBp0Cxx538To70i6000000:setting-mowing-pattern = zigzag
[2026-10-04T17:03:55.381Z] [INFO] Luba-VPMBS8RA: mowing_pattern = zigzag for the next job
[2026-10-04T17:03:56.737Z] [INFO] onSetValue <- ext:ext-prohand-gladys-mammotion:mower:nNlJJBp0Cxx538To70i6000000:setting-border-laps = 0
[2026-10-04T17:03:56.738Z] [INFO] Luba-VPMBS8RA: border_laps = 0 for the next job
[2026-10-04T17:04:01.578Z] [INFO] onSetValue <- ext:ext-prohand-gladys-mammotion:mower:nNlJJBp0Cxx538To70i6000000:setting-obstacle-detection = off
[2026-10-04T17:04:01.578Z] [INFO] Luba-VPMBS8RA: obstacle_detection = off for the next job
[2026-10-04T17:07:41.915Z] [INFO] onSetValue <- ext:ext-prohand-gladys-mammotion:mower:nNlJJBp0Cxx538To70i6000000:setting-start-progress = 20
[2026-10-04T17:07:41.915Z] [INFO] Luba-VPMBS8RA: start_progress = 20 for the next job
[2026-10-04T17:07:55.485Z] [INFO] onSetValue <- ext:ext-prohand-gladys-mammotion:mower:nNlJJBp0Cxx538To70i6000000:setting-blade-height = 70
[2026-10-04T17:07:55.486Z] [INFO] Luba-VPMBS8RA: blade_height = 70 for the next job
[2026-10-04T17:08:19.789Z] [INFO] onSetValue <- ext:ext-prohand-gladys-mammotion:mower:nNlJJBp0Cxx538To70i6000000:mowing = 1
[2026-10-04T17:08:21.624Z] [INFO] [mammotion] Luba-VPMBS8RA: planning a route over 1 zone(s) (Derrière), blade at 70 mm, 0.6 m/s, 32 cm, angle custom 111°, zigzag, 0 border lap(s), start at 20 %, obstacle detection off
[2026-10-04T17:08:21.922Z] [INFO] [mammotion-mqtt] Luba-VPMBS8RA: route settings seen {"subCmd":0,"edgeMode":0,"knifeHeight":70,"channelWidth":32,"ultraWave":0,"channelMode":0,"toward":111,"speed":0.6,"zones":1,"reserved":[11,10,10,30,11,18,20,40],"towardMode":1,"towardIncludedAngle":0}
[2026-10-04T17:08:21.922Z] [INFO] [mammotion] Luba-VPMBS8RA: route planned (result 0)
[2026-10-04T17:08:21.922Z] [INFO] [mammotion] Sending "start" to Luba-VPMBS8RA
[2026-10-04T17:10:18.054Z] [INFO] onSetValue <- ext:ext-prohand-gladys-mammotion:mower:nNlJJBp0Cxx538To70i6000000:refresh = 1
[2026-10-04T17:13:53.737Z] [INFO] onSetValue <- ext:ext-prohand-gladys-mammotion:mower:nNlJJBp0Cxx538To70i6000000:dock = 1
[2026-10-04T17:13:53.748Z] [INFO] [mammotion] Sending "stop" to Luba-VPMBS8RA
[2026-10-04T17:13:56.489Z] [INFO] [mammotion] Sending "dock" to Luba-VPMBS8RA

Thanks Chris75 for the tests and screenshots

Fixes in version 1.1.1

  1. Error when registering the device

    The device page sends the entire device to Gladys, and Gladys refuses anything over 100 KB.
    The « Custom Angle » list (181 choices) and « Startup Progression » list (100 choices), along with the map image, exceeded this limit.
    These two settings are now sliders (in 1° increments): 0 to 180° and 0 to 99 %.
    If the error persists, could you check Gladys’s logs (not the integration logs) at the moment you click Save? I’m looking for a line with « too large » or « PayloadTooLarge ».

  2. Custom Angle: 111° interpreted as 69°

    The mower counts the angle in the opposite direction (69 = 180 − 111).
    Gladys now sends the angle as the app does: 111° in Gladys = 111° in the app.

  3. « Zone 2 » instead of « Zone 1 »

    The app numbers unnamed zones starting from 0, Gladys started from 1.
    This is fixed: Zone 1, Zone 4, Zone 5, as in the app.
    The switch « Mowing Zone – zone 2 » becomes « Mowing Zone – Zone 1 ». Don’t forget to turn it back on in your scenes.

  4. Path spacing

    Luba 2 X: 20 to 35 cm in 1 cm increments.

Mammotion Cloud Quota

The map doesn't send any additional messages. It uses the position that the mower already sends during mowing.
The integration requests the status at most once every 5 minutes (about 144 times in 12 hours). The « Refresh » button adds one each time you press it.

After the update

Discovery tab → Update on the mower. Without this, the sliders and new zone names won't appear.
Then, re-select the angle and progression on the sliders.

For you to test, Chris75

Angle 111° from Gladys: does the app display « Customize 111 »?
Does device saving work?
And when it's daylight: the rest of the tests (angle type « Random », adaptive zigzag, map direction).

I am completely amazed by the speed of reaction and the precision in the responses: who should I congratulate @prohand or Claude :wink: :joy:

Both of them :wink:

I just tested version 1.1.1

  • All settings now work, perfect!

Small issue with the map display that randomly disappears and then reappears


and sometimes: no image
Screenshot 2026-10-05 160209

Regarding the « mowing » and « return to base » devices:

  • if I stop « mowing » then I do « return to base », the robot stops mowing, returns to its base, but you have to press « stop » in the mammotion app to complete the task

  • all that’s missing is the selector for multiple mowing zones, and this selector must respect the order in which the zones are selected (like in the mammotion app)
    Currently I select the 6 zones via switches, and the order is not respected