Leapmotor Vehicle Integration

Integrate Leapmotor electric vehicles into ioBroker. Supports status monitoring, remote control and real-time updates.

Current Release
0.6.5
Developer
Henrik Schönhofen
License
MIT

Unofficial Leapmotor electric vehicle integration for ioBroker. Tested on T03.

⚠️ Important: Use a Second Account

Do not use your main Leapmotor account!

The adapter maintains a permanent session with the Leapmotor cloud. If the same account is used simultaneously in the Leapmotor app, both sessions will conflict and log each other out.

Recommended setup:

  1. Create a second Leapmotor account (e.g. with a second email address)
  2. In the Leapmotor app, navigate to: Personal Center → My Vehicle → [Vehicle Name] → Shared Members → Add Shared Member
  3. Enter the second account's email and grant all rights
  4. Use the second account credentials in the adapter configuration

This way your main account stays logged in to the app at all times.


Features

  • React-based admin dashboard with Dashboard, Consumption, Trips, Datapoints, and Diagnostics tabs
  • Vehicle status polling every 1–60 minutes (configurable)
  • Battery SOC, range, temperature, tire pressure, GPS, doors, windows
  • Remote control: climate (heat/cool/vent), lock/unlock, windows, sunshade, trunk, find
  • Climate scheduling (recurring, by weekday) and charge limit / charge scheduling
  • Comfort features where supported by the vehicle: sentry mode, seat heat/ventilation, steering wheel heat, speed limit, mirror heat
  • Trip detection with daily kilometer tracking and individual trip history
  • Charging cost estimation based on configurable electricity price
  • Vehicle messages and unread count
  • Vehicle-model-specific feature capability system (unsupported features are hidden automatically)
  • Consumption statistics with weekly history
  • Dynamic vehicle dashboard (composite HTML widget for VIS)
  • Automatic token refresh
  • Picture cache (downloaded once, stored locally)

Tested Vehicles

  • Leapmotor T03 ✅ (fully tested)
  • Leapmotor B10 / C10 / C16 – should work, comfort feature availability not yet verified

Installation

Install via ioBroker Admin UI.

Configuration

SettingDescription
EmailLeapmotor account email (recommend using a dedicated second account)
PasswordLeapmotor account password
Vehicle PIN4-digit vehicle PIN – required for all remote commands
Polling intervalStatus update interval in minutes (default: 5)

Datapoints

leapmotor.0.<VIN>.status.*                → Vehicle status (read-only)
leapmotor.0.<VIN>.consumption.*           → Consumption & statistics (read-only)
leapmotor.0.<VIN>.trips.*                 → Daily kilometers and trip history (read-only)
leapmotor.0.<VIN>.charging.*              → Current charging session cost/kWh (read-only)
leapmotor.0.<VIN>.pictures.*              → Vehicle images, including an animated composite image (read-only)
leapmotor.0.<VIN>.cmd.*                   → Commands (writable)
leapmotor.0.<VIN>.info.*                  → Static vehicle info (read-only)
leapmotor.0.messages.*                    → Vehicle messages from the Leapmotor app (read-only)
leapmotor.0.config.*                      → Electricity price / battery capacity used for cost estimation

The full set of available datapoints, including all writable command states, is best explored directly in the ioBroker object tree, or via the Datapoints tab in the adapter's own admin UI — it lists every datapoint with its current value and a short description.

Admin Dashboard

The adapter ships its own React-based admin tab (click the adapter icon in the instance list) with five sub-tabs: Dashboard (live status and remote control), Consumption (weekly energy use and cost estimate), Trips (daily kilometers and individual detected trips), Datapoints (full datapoint browser), and Diagnostics.

Animated Vehicle Image for VIS

leapmotor.0.<VIN>.pictures.composite_html now contains a simple, embeddable animated vehicle image (transparent background, no buttons or dashboard chrome — that has moved into the admin tab). Add a basic - string (unescaped) widget in VIS, or embed it via <iframe>, and set the Object ID to:

leapmotor.0.<VIN>.pictures.composite_html

Available Commands (selection)

Simple on/off buttons under cmd.* (role button, set to true to trigger):

CommandDescriptionPIN required
cmd.ac_heatStart heating
cmd.ac_coolStart cooling
cmd.ac_ventStart ventilation
cmd.ac_offStop climate
cmd.defrostWindshield defrost
cmd.windows_openOpen windows
cmd.windows_closeClose windows
cmd.findFind vehicle (horn/lights)
cmd.battery_preheatBattery preheat on
cmd.battery_preheat_offBattery preheat off
cmd.lockLock vehicle
cmd.unlockUnlock vehicle
cmd.trunk_openOpen trunk
cmd.trunk_closeClose trunk
cmd.refreshTrigger immediate status update

Value-based commands:

CommandDescription
cmd.ac_tempTarget temperature, 16–30 °C
cmd.ac_fan_speedFan speed, 1–7
cmd.ac_positionAir position: all / up / down / front / rear
cmd.windows_setWindow position, 0–100 %
cmd.sunshade_set / sunshade_open / sunshade_closeSunshade position (T03), 0–10
cmd.charge_limit_setCharge limit, 50–100 %
cmd.charge_schedule_enable / start / end / applyCharging schedule
cmd.climate_schedule_enable / mode / time / days / apply / cancelRecurring climate schedule
cmd.speed_limit_setSpeed limit, if supported by the vehicle

Comfort commands (only created/shown if the vehicle model supports the feature):

CommandDescription
cmd.sentry_mode_on / offSentry mode
cmd.seat_heat_driver / copilotSeat heating
cmd.seat_ventilation_driver / copilotSeat ventilation
cmd.steering_wheel_heat_on / offSteering wheel heating
cmd.mirror_heat_on / offMirror heating
cmd.hotspot_on / offWi-Fi hotspot (no effect on T03)

Which comfort commands actually appear depends on the detected vehicle model — see admin-tab/src/vehicleCapabilities.js in the repository for the current capability matrix per model.

Changelog

WORK IN PROGRESS

0.6.5 (2026-09-02)

  • New: on adapter start, the raw (pre-parsing) status response is logged once per vehicle at debug level, to help diagnose unsupported or under-tested vehicle models (e.g. B05)
  • New: status request errors now also include the requested URL and the server's response body (if any)

0.6.4 (2026-09-02)

  • Chore: migrated Admin Tab to adapter-react-v5 8.x and MUI v6 (React stays on 18, no breaking change for users)
  • Fix: corrected Grid layout usage after the MUI v6 update, which had caused overlapping text on the Diagnostics tab
  • Fix: unified card spacing/padding across all Admin Tab pages for a consistent look
  • Fix: pinned react-dom to 18.3.1 to avoid a dependency resolution conflict
  • Chore: minor CI workflow fix

0.6.3 (2026-09-01)

  • Fix: preserve the existing charge schedule (enabled state, recurrence, start/end time) when changing the charge limit, instead of resetting it every time
  • Fix: corrected door z-order and window-closed overlay logic on both vehicle sides
  • Fix: clarified that the "Language" setting only affects Leapmotor cloud API text, not the Admin Tab UI (renamed to "Cloud API Language")
  • Chore: bumped axios to 1.19.0
  • Adapter is now available in the ioBroker stable repository
  • (ioBroker-Bot) Adapter requires admin >= 7.8.23 now.

0.6.2 (2026-07-08)

  • Fix: B10 model now correctly uses the c10 cloud status endpoint (community-confirmed), resolving empty status/trips/charging datapoints
  • Fix: enabled full i18n for jsonConfig.json now that admin/i18n translation files cover all keys

0.6.1 (2026-07-03)

  • Fix: repository checker findings - node: prefix for built-in modules, removed raw setTimeout fallback, included admin-tab i18n source in npm package, trimmed news list to 7 entries

0.6.0 (2026-07-03)

  • Refactor: moved to standard plain-JS repository layout (main.js at repository root, supporting modules under lib/ instead of build/)
  • Fix: removed dead/duplicate code, added VIN sanitization for object IDs, subscribed and acknowledged config.* states
  • Fix: enforced upper bound on polling interval in code, switched picture cache from package-directory file to adapter's own file storage
  • Fix: translated remaining German backend strings to English, enabled compact mode support, adapter-managed timers used throughout

0.5.8 (2026-07-02)

  • Fix: repository checker compliance - added missing intermediate object structure (charging/consumption/pictures/trips channels), corrected invalid state roles, added real integration test

0.5.7 (2026-06-29)

  • Fix: avoid npm transparency log conflict from a previous failed publish attempt (no functional changes vs. 0.5.5)

Older changes can be found in CHANGELOG_OLD.md.

License

MIT License

Copyright (c) 2026 Henrik Schönhofen (backfisch88)