This is an unofficial, community project and is not affiliated with, endorsed by, sponsored by, or approved by Anthbot.
All product names, logos, and trademarks are property of their respective owners. See NOTICE.md.
This repository contains a custom integration for Anthbot robotic mowers:
custom_components/anthbot_genie
This integration supports the Anthbot Genie 600, M5, and M9 models. It auto-discovers all account-bound mowers via:
GET https://api.anthbot.com/api/v1/device/bind/list
For each mower, it auto-fetches its cloud region/IoT endpoint via:
GET https://api.anthbot.com/api/v1/device/v2/region?sn=<sn>
Then it polls the AWS IoT device shadow endpoint per discovered sn using automatic SigV4 signing:
GET https://<iot_endpoint>/things/<sn>/shadow?name=property
It also fetches the mower area definition file from Anthbot cloud to discover:
- manual zones
- auto-zones
From state.reported it exposes:
lawn_mower.<device>mappingrobot_sta.valueormode.valueto the standard Home Assistantmowing/paused/docked/returningactivities, withstart_mowing,pause, anddockactionssensor.<device>_battery_levelfromelec.value(M5/M9) orelec(Genie 600)sensor.<device>_mower_statusfromrobot_sta.valueormode.valuesensor.<device>_cutting_heightfromparam_set.cutter_height/mow_remote.cutter_heightsensor.<device>_voice_volumefromvolumesensor.<device>_mowing_timefrommowing_time_new.value(session elapsed time)sensor.<device>_mowing_areafrommowing_area_new.value(session mowed area)sensor.<device>_mowing_time_totalfrommowing_time.value(M5/M9 total time)sensor.<device>_mowing_area_totalfrommowing_area.value(M5/M9 total area)sensor.<device>_custom_mowing_directionfromparam_set.mow_headsensor.<device>_custom_mowing_direction_enabledfromparam_set.enable_adaptive_head(mapped to enabled/disabled)sensor.<device>_modefrommode.value(M5/M9)sensor.<device>_error_codefromerror.value(M5/M9)sensor.<device>_ip_addressfromnet_config.ip(M5/M9)sensor.<device>_wifi_ssidfromnet_config.ssid(M5/M9)sensor.<device>_rtk_statefromrtk.state(M5/M9)sensor.<device>_map_areafrommap.map_area(M5/M9)sensor.<device>_mapping_task_statefrommapping_task.state(M5/M9)sensor.<device>_zonesfor discovered manual zonessensor.<device>_auto_zonesfor discovered auto-zonesbinary_sensor.<device>_connectionfromonlinebinary_sensor.<device>_chargingfromrobot_sta.valueormode.valueswitch.<device>_custom_mowing_direction_enabledto toggleparam_set.enable_adaptive_headswitch.<device>_rain_perception_enabledto togglerain_switchswitch.<device>_base_station_mowing_enabledto toggle Anthbot's nest/base-station mowing modeswitch.<device>_base_station_visual_inspection_enabledto toggle visual inspection for that modenumber.<device>_base_station_mow_count_settingfor 1x/2x nest mowing passesnumber.<device>_base_station_mow_height_settingfor nest mowing heightselect.<device>_base_station_visual_inspection_levelfor nest visual inspection level (Low,Medium,High)
Entity attributes also include:
serial_numbermower_statusrobot_status_rawmode(M5/M9)error_code(M5/M9)cutting_heightmowing_timemowing_areamowing_time_total(M5/M9)mowing_area_total(M5/M9)voice_volumecustom_mowing_directioncustom_mowing_direction_enabledbase_station_mowing_enabledbase_station_mow_countbase_station_mow_heightbase_station_visual_inspection_enabledbase_station_visual_inspection_levelbase_station_mowing_activerain_continue_timevoice_statusip_address(M5/M9)wifi_ssid(M5/M9)rtk_state(M5/M9)map_area(M5/M9)mapping_task_state(M5/M9)`
The dedicated zone sensors also expose:
- manual zone ids, names, and active zone ids
- auto-zone ids and names
For easier control, the integration also creates per-zone buttons on the mower device:
Zone <name>for each manual zoneAuto zone <name>for each auto-zone
Each of those button entities exposes the zone-specific metadata as attributes and can be pressed directly from the device page.
- Open HACS -> Integrations -> top-right menu ->
Custom repositories. - Add repository URL:
https://github.com/vincentjanv/anthbot_genie_ha - Category:
Integration - Install
Anthbot HAfrom HACS and restart Home Assistant. - Add integration:
Settings -> Devices & Services -> Add Integration -> Anthbot HA.
- Copy
custom_components/anthbot_genieinto your Home Assistant config directory. - Restart Home Assistant.
- Add integration:
Settings -> Devices & Services -> Add Integration -> Anthbot HA. - In config, enter Anthbot
username/password, select your country (area code dropdown). - The rest (device discovery, region, IoT endpoint, shadow auth signing) is automatic.
Starting with Home Assistant 2026.3, custom integrations can ship their own brand images directly. This integration includes local brand assets at:
custom_components/anthbot_genie/brand/icon.pngcustom_components/anthbot_genie/brand/logo.png
Home Assistant serves these through its local brands API, so the Anthbot icon will be displayed in your Home Assistant integration list and device pages. No separate home-assistant/brands PR is required for HACS/custom installs.
Starting with Home Assistant 2026.3, custom integrations can ship their own brand images directly. This integration includes local brand assets at:
custom_components/anthbot_genie/brand/icon.pngcustom_components/anthbot_genie/brand/logo.png
Home Assistant serves these through its local brands API, so no separate home-assistant/brands PR is required for HACS/custom installs.
The integration provides these Home Assistant services:
anthbot_genie.start_full_mowanthbot_genie.stop_mowanthbot_genie.return_to_dockanthbot_genie.set_mow_height(mow_height: 30..70 in 5 mm steps)anthbot_genie.set_voice_volume(voice_volume: 0..100)anthbot_genie.set_custom_mowing_direction(mow_direction: 0..180,enable_custom_direction: true/false)anthbot_genie.start_zone_mow(zones: id, name, comma-separated string, or YAML list)anthbot_genie.start_auto_zone_mow(auto_zones: id, name, comma-separated string, or YAML list)
You can target by Anthbot entities (target.entity_id) and/or by serial_number.
Examples:
service: anthbot_genie.start_zone_mow
target:
entity_id: sensor.cleaver_zones
data:
zones: [100]service: anthbot_genie.start_auto_zone_mow
target:
entity_id: sensor.cleaver_auto_zones
data:
auto_zones: "1, Front area"The integration also creates control entities on each mower device page:
- Lawn mower:
lawn_mower.<device>with the standardstart_mowing,pause, anddockactions - Buttons:
Start full mow,Stop mow,Return to dock - Buttons: one
Zone <name>per manual zone - Buttons: one
Auto zone <name>per auto-zone - Number controls (sliders):
Mow height,Voice volume - Number control (slider):
Custom mowing direction(0..180) - Number control (slider):
Rain continue time(0..8 hours) - Number controls (sliders):
Base station mow count(1..2),Base station mow height(30..70 mm) - Select:
Base station visual inspection level(Low,Medium,High) - Switch:
Custom mowing direction enabled - Switch:
Rain perception - Switches:
Base station mowing,Base station visual inspection - Sensors:
Zones,Auto zoneswith zone ids/names summaries
You can trigger/test commands directly from those entities in the device page.
Recent community contributions include:
- Anthbot M5/M9 model support by
@riza-aslan. - Standard Home Assistant
lawn_mowerentity support by Denis Kot /DenisBYin PR #12. - Polish translations by Tomasz Terlecki /
tazmanskain PR #9.
Feel free to make a contribution at https://buymeacoffee.com/vincentjanv if this integration helped you in any way...
If you have any issues with this integration, feel free to open an issue in this repository. For discussions on improving this repository, please join the global Anthbot community on Facebook at https://www.facebook.com/groups/anthbotglobalcommunity of if you're living in the Nordics, at https://www.facebook.com/groups/anthbotnordicscommunity .
