Segway Navimow

I updated the integration to try and auto-learn your dock position. The setup.md file in the examples folder now has a section called 'Dock Marker' that describes the logic it will use to try and get a better dock location.

I haven't tested it as its been raining hard here the last few days. This weekend looks good so I should be able to run the mower and collect some more data to refine the 'zone' logic and whatever else I can get done during that time.

EDIT: Made another update that allows you to add a satellite overlay. Still needs more work to better translate the coordinates the navimow is reporting into a position on the image, but its not bad. Instructions are in the repo under examples - let me know how it works out!

Really cool, will test, when robot can start in the afternoon

I saw you already realized it, thx a lot.
Would be great not to clean automatically when the history (trail) is not cleaned automatically when changing state from docked -> moving. I send the robot to dock e.g. when there are too few satellites. Or what’s about re-charging? Everytime trail is cleaned :frowning:
Maybe configurable? Either state or time dependend?

Did the 1.1.0+position.3 update and mowing zone is working great ! But « zone » is always unknown.
The mowing progress need to be divided by 100 because it represents the progress and 5208 is not meaningful but 52,08% is. You think that is possible ? If not I will create a dedicated template entity.

Thanks again for your work ! :flexed_biceps:

This change to sensor.py does exactly what you were proposing. I tested it and it works nicely.

NavimowSensorEntityDescription(
    key="mow_progress",
    name="Mow progress",
    icon="mdi:progress-check",
    native_unit_of_measurement=PERCENTAGE,  # ← Add this
    state_class=SensorStateClass.MEASUREMENT,
    value_fn=lambda c: (
        (loc.get("mow_progress") or 0) / 100  # ← Divide by 100 to convert to percentage
        if (loc := c.get_device_location()) else None
    ),
),

@CrownSeven what do you think?

Looks good to me. I'll update the repo.

Which zone is not showing up for you? There are 2:

  • Mower Target Zone
  • Mowing Zone

The first is only reliably populated right now if you do single zone mowing.
The second seems to be set once its traveled to the target zone and is about to begin mowing.

What I'm struggling with right now is reliably identifying what the 'target' zone is when more than one zone is picked in a single mowing command.

It looks like the MQTT messages do include this info, but they do not keep the sequence as defined by the user, in the messages. Its passing an array of zones, in sorted order, and its not the custom order as defined by the user.

Hi there !

It’s the mowing target zone that is working. The other one doesn’t.

I only do « mow all » every day via scheduler

That would explain it. Its the issue I'm trying to solve. Identify a single target zone when specifying more than one (like during a mow all).

Keep going ! I think your work may have a certain success :star_struck:

My Home Assistant instance still keeps missing updates, especially when the mower needs to recharge while mowing or a mowing operation is startet by the app.

Has anyone fixed that? I’d like to depend on the status to disable watering while the mower is working.

Its not looking very good right now. I can't seem to find anything that is telling the mower what order to mow the zones in. Depending on your use case may not matter so much. I tried intercepting the messages coming from the app - unfortunately that didn't work so well.

For now I've updated the integration to show the array of zones for the Target Zone.

If you're looking to automate a gate, the automation will just keep the gate open if one of the zones requires the mower to traverse the gate.

We might have to wait on Segway to provide this info in their integration - if they ever decide to update it.

So far the status has been pretty reliable on mine. I haven't watched it very closely though, mostly at the start of the mow, and end of mow. Are there any errors in the logs maybe causing the updates to stop?

Hello, I think it’ s quite enough for me right now. I need to dig into your example for this automation

OK. I did update the map card slightly to allow for smoother mower movement.

Would it not be better / possible to have an entity prr zone? Something like:

sensor.navimow_zone1 with states mowing/not mowing
sensor.navimow_zone2 with states mowing/not mowing
Etc.

That way it is more easy to using in automations...

@CrownSeven Do your fork allow sending the mower to one or more specific zones?

Hi, does the navimow integration require a WiFi connection at all times? I've got it installed and connected to an i206e but only receive updates when the mower is connected to wifi. Which is not often, the wifi stability is very flaky, and it keeps falling back to 4G.

No information comes from the cloud, how data is transfered there, doesn’t matter. I switched Wifi off.