Unofficial Home Assistant integration and photo-backed map card for Anthbot Genie robotic lawn mowers.
This is a standalone integration derived from the credited MIT-licensed projects; it is not an add-on for them. Do not run multiple Anthbot integrations in parallel, because they can create duplicate entities and competing cloud sessions.
Caution
Do not run this integration in parallel with vincentjanv/anthbot_genie_ha,
the AdrianTIonut fork, or another Anthbot Home Assistant integration.
Parallel installations can create duplicate devices and entities, open
competing cloud sessions, and send conflicting commands to the same mower.
Remove the old Anthbot integration from Settings → Devices & services and
HACS, restart Home Assistant, and then install this integration. Existing
dashboards and automations may need their entity IDs updated.
The project combines cloud telemetry and mower control with a custom Lovelace card that can place the live Anthbot map, zones, mowing trail, charger, and robot on a top-down photograph of the garden.
This project is not affiliated with Anthbot. Read NOTICE.md for attribution and trademark information.
- Anthbot cloud login from the Home Assistant UI
- support for multiple mowers on one account
- native Home Assistant
lawn_mowerentity with start, stop/pause, and dock controls - battery, mower status, charging, RTK, network, firmware, maintenance, map, zone, error, and diagnostic entities
- full-lawn, manual-zone, and automatic-zone mowing controls
- pause, stop, and return-to-dock commands
- map sensor with robot position and downloadable map/path definitions
- optional aerial or drone photograph as the map background
- custom zones and no-go areas
- live and historical mowing trail
- app-style cloud history-path download and decoding
- mowing-session trail persistence across view changes and page reloads
- optional configurable mowing-coverage layer
- charger and robot icons
- full-screen view, zoom, pan, rotation, and calibration controls
- floating translucent control menu that keeps the garden map visible
- visible position and direction badges
- robot heading calculated like the official app from milliradian
pose.yaw - generated YAML can be copied from the card calibration panel
- automatic Home Assistant language detection and manual language selection
- 23 selectable languages, including simplified and traditional Chinese, Turkish, Thai, Vietnamese, Korean, and Khmer
Tested primarily with Genie-series mowers. Cloud fields and available commands can vary by mower model and firmware.
custom_components/anthbot_genie_plus/ Home Assistant integration
www/anthbot-map/ Lovelace map card
tools/anthbot_dump.py Optional diagnostic helper
examples/ Example YAML
-
Open HACS → Integrations.
-
Open the three-dot menu and select Custom repositories.
-
Add:
https://github.com/Mqbretrofit/ha-anthbot-map -
Select category Integration.
-
Install Anthbot Genie Plus Map.
-
Restart Home Assistant.
-
Open Settings → Devices & services → Add integration.
-
Search for Anthbot Genie Plus and enter the Anthbot account details.
HACS installs the integration and manages subsequent updates. The complete ZIP on the GitHub Releases page contains the integration, map card, example files, and documentation in one package.
Copy the repository folder:
www/anthbot-map/
to:
/config/www/anthbot-map/
The resulting main file must be:
/config/www/anthbot-map/anthbot-map-card.js
Add the Lovelace JavaScript resource:
/local/anthbot-map/anthbot-map-card.js?v=140
Resource type: JavaScript module.
The resource editor is normally available under Settings → Dashboards →
three-dot menu → Resources. Restart Home Assistant and hard-refresh the
browser after changing the files (Ctrl+Shift+R).
Copy:
custom_components/anthbot_genie_plus/
to:
/config/custom_components/anthbot_genie_plus/
Then restart Home Assistant and add the integration from Devices & services.
Find the map entity in Developer Tools → States. Its entity ID normally
ends with _map.
type: custom:anthbot-map-card
entity: sensor.YOUR_MOWER_map
name: Anthbot Map
image: /local/garden.jpg
height: 720
fit: cover
robot_heading_source: cloud
refresh_interval: 2
show_zones: true
show_no_go_zones: true
show_no_go_labels: true
show_mowed_path: true
show_decoded_boundary: trueReplace sensor.YOUR_MOWER_map with the actual entity ID. The background image
is optional; when used, place it in /config/www/, for example:
/config/www/garden.jpg
which is referenced from Lovelace as /local/garden.jpg.
- Open the card and expand the map.
- Open Beállítások / Settings.
- Adjust the map, robot, and decoded boundary until they match the photograph.
- Copy the generated YAML.
- Replace the card configuration with the generated YAML.
Calibration values are installation-specific because every garden photograph has a different crop, scale, and rotation.
Example generated sections:
calibration:
offsetX: 0
offsetY: 0
scaleX: 1
scaleY: 1
rotation: 0
robotCalibration:
offsetX: 0
offsetY: 0
scaleX: 1
rotation: 0
decodedBoundaryCalibration:
offsetX: 0
offsetY: 0
scaleX: 1
scaleY: 1
rotation: 0Rotation values in calibration blocks are radians.
Use:
robot_heading_source: cloudThe official application treats pose.yaw as milliradians. This card uses the
same conversion:
degrees = yaw * 180 / (pi * 1000)
Available heading modes:
cloud— official-app-compatiblepose.yaw; recommendedmovement— calculate direction from consecutive positionsauto— prefer movement and fall back to the cloud heading
If the robot image has a fixed alignment difference, use:
robot_heading_offset: 0
robot_image_rotation: 90Both values are degrees.
By default the card follows the Home Assistant user-interface language. Open the card's Settings panel to select a different language. The selection is stored in the browser and is also included in copied YAML.
language: autoSupported choices: English, Hungarian, German, French, Spanish, Italian, Portuguese, Dutch, Polish, Czech, Slovak, Romanian, Danish, Swedish, Norwegian, Finnish, simplified Chinese, and traditional Chinese. Unsupported languages fall back to English.
Use these options to display only the transparent map layer on a floorplan:
map_only: true
transparent_background: trueThe background image remains the calibration and aspect-ratio reference but is not painted onto the canvas.
Both options are also available under the Interface settings tab and are remembered in the current browser. Double-click or double-tap a map-only card to restore the full interface.
The glass effect is a separate option and keeps a translucent blurred card surface:
glass_background: trueglass_background and transparent_background cannot be active at the same time.
Home Assistant theme colors can be enabled separately:
theme_background: trueThe default is false, so the card keeps its own dark colors until enabled.
Commands can call a custom Home Assistant service or script:
button_actions:
start:
service: script.anthbot_safe_start
dock:
service: script.anthbot_safe_dockSupported command keys are start, stop, dock, outer-edge, dock-edge,
and connect. Buttons without an override keep their built-in action.
After updating the card files, increment the query string in the Lovelace resource URL to avoid browser caching, for example:
/local/anthbot-map/anthbot-map-card.js?v=140
Then restart Home Assistant and hard-refresh the browser.
- confirm the resource is a JavaScript module
- confirm
/config/www/anthbot-map/anthbot-map-card.jsexists - open
/local/anthbot-map/anthbot-map-card.js?v=140directly in the browser - hard-refresh with
Ctrl+Shift+R
- verify the configured map entity exists and is
ready - inspect its attributes for
pose,area_definition, and map data - wait for the next cloud poll
- check Home Assistant logs for
anthbot_genie_plus
An older card version is still cached. Version 79 converts milliradians correctly. Update the resource URL and hard-refresh the browser.
Open an issue at github.com/Mqbretrofit/ha-anthbot-map/issues.
Never publish passwords, bearer tokens, AWS credentials, mower serial numbers, PIN codes, GPS coordinates, garden photographs, or unredacted diagnostic dumps.
MIT — see LICENSE.