Skip to content

Error Codes & States

WhyLev edited this page Jun 12, 2026 · 1 revision

Error & Mower State Codes System πŸ› βš οΈ

This page provides a comprehensive reference for mower firmware states, hardware fault codes, API error suffixes, and composite HTTP patterns. The integration uses an O(1) lookup engine to convert raw numeric/string codes into readable diagnostics and Home Assistant entity attributes.


1. Mower State Codes (state integer field)

These are returned by GET /api/v1/alms/{alm}/state and mapped to UI-friendly names and Home Assistant activities.

πŸ“₯ In Dock (200–299)

Code Name Display
257 IN_DOCK_CHARGING Charging
258 IN_DOCK_DOCKED Docked
259 IN_DOCK_SOFTWARE_UPDATE Software update
260 IN_DOCK_CHARGING2 Charging
261 IN_DOCK_DOCKED2 Docked
262 IN_DOCK_LOADING_MAP Docked – loading map
263 IN_DOCK_SAVING_MAP Docked – saving map
266 IN_DOCK_LEAVING_DOCK Leaving dock

🌿 In Lawn (512–599)

Code Name Display
512 IN_LAWN_LEAVING_DOCK Leaving dock
513 IN_LAWN_MOWING Mowing
514 IN_LAWN_RELOCALISING Relocalising
515 IN_LAWN_LOADING_MAP Loading map
516 IN_LAWN_MAPPING Learning lawn
517 IN_LAWN_PAUSED Paused
518 IN_LAWN_BORDER_CUT Border cut
519 IN_LAWN_IDLE Idle in lawn
520 IN_LAWN_MAPPING_PAUSED Learning lawn (paused)
521 IN_LAWN_BORDER_CUTTING Border cutting
522 IN_LAWN_UNUSED Border cutting
523 IN_LAWN_SPOT_MOWING Spot mowing
524 IN_LAWN_RANDOM_MOWING Random mowing
525 IN_LAWN_SPOT_MOWING_COMPLETE Spot mowing complete
526 IN_LAWN_RANDOM_MOWING_COMPLETE Random mowing complete

πŸ”Œ Returning to Dock (768–799)

Code Name Display
768 RET_DOCK Returning to dock
769 RET_DOCK_HMI Returning to dock
770 RET_DOCK_BS Returning to dock
771 RET_DOCK_BATTERY_LOW Returning to dock – battery low
772 RET_DOCK_CALENDAR Returning to dock – calendar
773 RET_DOCK_BATTERY_TEMP Returning to dock – battery temp
774 RET_DOCK_APP Returning to dock
775 RET_DOCK_GARDEN_COMPLETE Returning to dock – lawn complete
776 RET_DOCK_RELOCALISING Returning to dock – relocalising

πŸ›  Service / Maintenance (1025+)

Code Name Display
1025 SERVICE_DIAGNOSTIC_MODE Diagnostic mode
1026 SERVICE_EOL_MODE EOL mode
1027 SERVICE_REQUESTING_STATUS Getting status
1281 SW_UPDATE_MODE Firmware update
1537 LOW_POWER_MODE Low power mode
1792 LEAVING_DOCK Leaving dock

πŸ’» Synthetic / Virtual States (integration-side)

Code Name Display
0 GETTING_STATUS Getting status
1 OFFLINE Offline
2 UNPAIRED No mower paired
3 NOT_MAPPED Mower not mapped
4 NO_PIN PIN not set
5 DISABLED Mower disabled
64513 WAKING_UP_INDEGO Getting status
69420 SYNTHETIC_COMMAND_SENT Command sent

2. Device / Hardware Error Codes

These appear in the error field of AlmStatusResponseBody and in alerts (error_code string).

Code Description Severity
0 No error INFO
40–70 Internal system errors ERROR
100–220 Wheel / motor / sensor errors ERROR
149–194 Perimeter wire errors WARNING
216 Drive error ERROR
700–799 Navigation / stuck errors WARNING
800–805 Communication errors (e.g., 802 = WiFi lost) ERROR
900–999 Firmware / software errors ERROR
1000–1156 Battery / system errors ERROR

Refer to the integration source error_codes.py for the full list (50+ codes).


3. API Error Code Suffixes

Returned in ApiErrorResponseBody.error on HTTP 500 responses. Format: {endpoint_prefix}{http_status_code}{suffix}.

General Protocol (_1 – _9)

Suffix Name Description
_1 GENERAL_CHECKSUM_FRAME Checksum frame error
_2 GENERAL_NOT_SUPPORTED_ID ID not supported
_3 GENERAL_INVALID_COMMAND_LENGTH Invalid command length
_5 GENERAL_ALM_DISABLED ALM disabled
_6 GENERAL_SOFTWARE_UPDATE Software update in progress
_8 GENERAL_INVALID_ITEM_IDENTIFIER Invalid item identifier
_9 GENERAL_INVALID_DATA_VALUE Invalid data value

Mow Errors (PUT /state β†’ MOW)

Suffix Name Description
_12288 MOW_BATT_NOT_OK Battery not OK / low temperature
_12289 MOW_UNKNOWN_GARDEN Unknown garden – not mapped
_12290 MOW_PIN_ERROR PIN error – follow display instructions
_12291 MOW_GOING_HOME Mower returning to dock
_12292 MOW_PIN_NOT_SET PIN not set – unable to mow
_12293 MOW_MANUAL_INTERVENTION Manual intervention required
_12543 MOW_OTHER Other mow error

Return to Dock Errors

Suffix Name Description
_12544 DOCK_ALREADY_DOCKED Mower already docked
_12545 DOCK_GARDEN_ERROR Garden error – follow instructions
_12546 DOCK_MOWER_LEARNING Mower is learning the lawn
_12547 DOCK_UNKNOWN_GARDEN Unknown garden

Pause Errors

Suffix Name Description
_12800 PAUSE_MOWER_NOT_MOWING Cannot pause – mower not mowing
_12801 PAUSE_MOWER_LEARNING Cannot pause – mower learning lawn
_12802 PAUSE_LOW_BATTERY Cannot pause – battery low

Map Errors

Suffix Name Description
_10752 GET_MAP_NOT_AVAILABLE Map not available
_10497 MAP_BATTERY_NOT_OK Battery not OK
_10498 MAP_NOT_IN_DOCK Mower not in dock – unable to map
_10499 MAP_ALREADY_EXISTS Map already exists
_10500 MAP_PIN_ERROR PIN error – unable to map
_10502 MAP_PIN_NOT_SET PIN not set – unable to map

Security / PIN Errors

Suffix Name Description
_16896 PIN_NOT_IN_DOCK Mower not in dock – cannot change PIN
_17152 AUTOLOCK_INVALID_VALUE Invalid autolock value
_17153 AUTOLOCK_CANNOT_BE_CHANGED Already locked/unlocked

4. HTTP Composite Error Patterns (app‑side)

The integration maps patterns like {endpoint_index}_{http_code}[_{suffix}] into user messages.

Pattern Trigger User Message
00_401 POST /authenticate β†’ 401 Wrong credentials
04_409 POST /users β†’ 409 Email already in use
09_409 POST /alms/{alm}/pair β†’ 409 Mower already paired
16_500_* PUT /state β†’ 500 + suffix See mow/dock/pause errors above
17_500_* GET /map β†’ 500 Map error
150_401 Any β†’ 401 (pattern) Login required
XX_5XX (regex) Any 5xx with suffix _5 Mower disabled

5. Using Error Codes in Automations

The alert binary sensor (binary_sensor.indego_<SERIAL>_alert) exposes detailed attributes:

  • last_alert_error_code – most recent error code
  • last_alert_message – human‑readable description
  • last_alert_severity – INFO / WARNING / ERROR / CRITICAL
  • error_0, error_1, … – complete error strings with timestamp
  • error_0_code, error_0_description, error_0_timestamp, error_0_severity

Example automation – Notify when a critical error occurs:

alias: "Indego: Critical Error Alert"
trigger:
  platform: state
  entity_id: binary_sensor.indego_12345678_alert
  to: "on"
condition:
  condition: template
  value_template: "{{ state_attr('binary_sensor.indego_12345678_alert', 'last_alert_severity') == 'CRITICAL' }}"
action:
  service: notify.mobile_app_your_phone
  data:
    message: "⚠️ Indego mower: {{ state_attr('binary_sensor.indego_12345678_alert', 'last_alert_message') }}"