A custom Home Assistant integration for the Cecotec GrassHopper 500 robot mower. Control your mower directly from Home Assistant with real-time status monitoring.
- ๐ Battery level monitoring (0-100%)
- ๐ถ WiFi signal strength tracking (0-3)
- ๐ข Online status detection
โ ๏ธ Error detection with error codes and messages- ๐ Real-time updates via MQTT push (with 60s polling fallback)
- ๐ Multi-language support (English, Spanish)
- ๐ Start mowing - Begin automatic mowing
- โธ๏ธ Pause - Stop the mower in place
- ๐ Return to dock - Send mower back to charging station
- ๐ฒ Edge/border mowing - Mow along the perimeter
- Cecotec Conga GrassHopper 500 (RMC502E20V-ECWNTS)
- Other Cecotec GrassHopper models using the sk-robot.com backend
- Open HACS in Home Assistant
- Go to Integrations โ โฎ (menu) โ Custom repositories
- Add repository:
https://github.com/ac-uy/ha-cecotec-grasshopper - Select category: Integration
- Click Create
- Find Cecotec GrassHopper and click Install
- Restart Home Assistant
-
Clone this repository:
git clone https://github.com/ac-uy/ha-cecotec-grasshopper.git
-
Copy to your Home Assistant config:
cp -r ha-cecotec-grasshopper/custom_components/cecotec_grasshopper ~/.homeassistant/custom_components/ -
Restart Home Assistant
- Go to Settings โ Devices & Services โ Create Integration
- Search for "Cecotec" or "GrassHopper"
- Enter your Cecotec app credentials:
- Email: Your Cecotec app login email
- Password: Your Cecotec app password
- Click Create
The integration will discover your mower and create the following entities:
| Entity | Type | Description |
|---|---|---|
lawn_mower.mymower |
Lawn Mower | Main control entity (start/pause/dock) |
select.mymower_mowing_mode |
Select | Mowing mode selector (normal/edge) |
sensor.mymower_battery |
Sensor | Battery percentage (0-100%) |
sensor.mymower_wi_fi_level |
Sensor | WiFi signal strength (0-3) |
sensor.mymower_error_code |
Sensor | Error code (if any) |
sensor.mymower_error_message |
Sensor | Error description |
binary_sensor.mymower_online |
Binary Sensor | Online status |
binary_sensor.mymower_error |
Binary Sensor | Error flag |
Start mowing at 9 AM on weekdays:
automation:
- alias: "Start mowing at 9 AM"
trigger:
platform: time
at: "09:00:00"
condition:
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
action:
- service: lawn_mower.start_mowing
target:
entity_id: lawn_mower.mymowerSend notification when battery is low:
automation:
- alias: "Low battery alert"
trigger:
platform: numeric_state
entity_id: sensor.mymower_battery
below: 20
action:
- service: notify.notify
data:
message: "GrassHopper battery is low: {{ states('sensor.mymower_battery') }}%"For a dedicated Lovelace card with status, controls, and schedule management, install the Cecotec GrassHopper Card โ a custom card built specifically for this integration.
- Check Home Assistant logs: Settings โ System โ Logs โ Search for "cecotec"
- Verify credentials are correct in the config flow
- Ensure the mower is powered on and connected to WiFi
- Restart Home Assistant
- Login error: Double-check your email and password
- Device not found: Verify the mower appears in the official Cecotec app
- Connection timeout: Check your internet connection and firewall
- Restart Home Assistant to reload the integration
- Check if the mower is actually online in the Cecotec app
- Review the error logs for API response issues
- Backend: sk-robot.com OEM platform (shared with Sunseeker, Adano mowers)
- Authentication: OAuth2 password grant with automatic token refresh
- Commands: REST API (
/app_mower/device/setWorkStatus) - Status Updates: MQTT push via
mqtts.sk-robot.com:1883(with REST polling fallback) - Update Interval: Real-time via MQTT; 60s polling fallback
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
The MIT License allows you to:
- โ Use this software for any purpose
- โ Copy, modify, and distribute it
- โ Include it in proprietary applications
The only requirement is to include the license and copyright notice.
This is an unofficial integration. Cecotec is not affiliated with this project. Use at your own risk.
- Built for Home Assistant
- Command protocol discovered thanks to Sdahl1234/Sunseeker-lawn-mower โ the integration that figured out the correct API endpoints and MQTT credentials for the sk-robot.com platform
- MQTT protocol documentation by OlliKantola/Sunseeker_LawnMower_Control
- Thanks to the Home Assistant community
Questions or Issues? Open an issue on GitHub
If you find this useful, consider buying me a coffee โ or some tokens ๐ค: