Unofficial Home Assistant custom integration for Segway Navimow robotic lawn mowers. This integration connects your mower using the official Segway OpenAPI, allowing you to monitor real-time status and control operations directly from Home Assistant.
Warning
This integration is currently in Active Development (Alpha). Features may change, and bugs are expected. Use at your own risk.
-
Lawn Mower Entity: Full native Home Assistant
lawn_mowerentity- Start/stop mowing
- Pause operation
- Return to dock
- Real-time state monitoring (mowing, docked, paused, idle, error, returning)
-
Sensors:
- Battery level (percentage)
- Real-time state updates via MQTT
-
Binary Sensors:
- Connectivity status (online/offline)
-
Device Tracker:
- GPS location tracking with real-time position updates ()
-
Data Updates:
- Polling updates every 30 seconds via REST API
- Real-time MQTT WebSocket connection for instant state changes
- Automatic token refresh when access tokens expire
- OAuth2 Authentication: Secure account connection via official Navimow OAuth flow
- Data Coordinator: Centralized data management with automatic refresh handling
- MQTT Real-time Updates: WebSocket-based MQTT for instant device state changes
- Token Management: Automatic refresh token handling with persistent storage
- A Segway Navimow robotic lawn mower with an active account
- Home Assistant 2024.1 or later
- Active internet connection
Note: Until the repository is added to the default HACS store, you must add it as a custom repository.
- Open HACS in your Home Assistant instance
- Go to Integrations → click the three dots in the top right → Custom repositories
- Repository:
https://github.com/niddu85/home-assistant-navimow - Category: Integration
- Click Add
- Search for "Navimow" in HACS and install it
- Restart Home Assistant
- Clone or download this repository
- Copy the
custom_components/navimowfolder to yourcustom_componentsdirectory - Restart Home Assistant
Configuration is done completely via the Home Assistant UI (Config Flow).
- Go to Settings → Devices & Services → Integrations
- Click + Create Automation and search for Navimow
- You'll be prompted to authenticate with your Navimow account
- A browser window will open for OAuth authentication
- After authentication, the integration will be configured automatically
- Entity ID:
lawn_mower.{device_name} - States:
docked,mowing,paused,returning,idle,error - Commands:
start_mowing(),pause(),dock()
- Entity ID:
sensor.{device_name}_battery - Value: Battery percentage (0-100%)
- Unit: %
- Entity ID:
binary_sensor.{device_name}_connectivity - On: Device is online
- Off: Device is offline
- Entity ID:
device_tracker.{device_name}_position - Attributes:
latitude,longitude,gps_accuracy
- OAuth Authentication: Securely authenticates with Segway servers using OAuth2
- REST Polling: Fetches device status every 30 seconds
- MQTT Streaming: Maintains a WebSocket connection for real-time updates
- Token Management: Automatically refreshes expired tokens
- Entity Creation: Creates Home Assistant entities for each connected device
- Restart Home Assistant after installation
- Clear browser cache if stuck on setup page
- Check that your internet connection is stable
- Verify the Navimow app still works on your phone
- Check Home Assistant logs for errors:
Settings→System→Logs
- Ensure your Navimow account is still active
- Try removing the integration and re-adding it
Contributions are welcome! If you find a bug or have a feature request, please open an issue or submit a pull request.
This is an unofficial project and is not affiliated with, endorsed by, or sponsored by Segway or Navimow. It uses the official OpenAPI provided by Segway, but the implementation is maintained by the community.
This project is licensed under the MIT License - see the LICENSE file for details.