| Developer: | Durosity Like this plugin? Show your appreciation! |
| Category: | Miscellaneous |
| Github: | Github Repo |
| License: | MIT License |
| Assistance: | Get help! Check the online documentation |
| Plugin ID: | com.durosity.indigoplugin.renault |
| Latest release: | v1.4.14 released on Nov. 9, 2026 |
| Release downloaded: | 1 times |
| Requires: | Indigo v2023.2.0 or higher |
| (Check the Releases tab below for older releases that may have different requirements) | |
| Download latest release |
Control and monitor your Renault electric vehicle (ZOE and other Renault EVs) from Indigo Domotics, using the same API that powers the My Renault mobile app.
Built on top of the excellent renault-api Python library.
RenaultCar.indigoPlugin release.renault-api, aiohttp) — see Dependencies below if this fails.Create a new device of type Renault Account, and provide:
| Field | Description |
|---|---|
| Email Address | Your My Renault login email |
| Password | Your My Renault password |
| Country/Locale | Must match the country your Renault account is registered in (e.g. en_GB for the UK) |
After saving, the plugin connects in the background and populates:
accountId — your Renault account IDconnectionStatus — human-readable connection statelastLogin — timestamp of last successful loginIf login fails, check the Indigo Event Log: - Bad credentials / disabled account → the plugin logs the error and stops retrying (fix the password/locale and restart the device) - Renault server errors / network issues → the plugin retries automatically with increasing delays (1 min, 2 min, 4 min... up to 30 min) until it connects
Create a device of type Renault Vehicle, then:
The vehicle device will wait for its linked account to finish authenticating before it starts polling — you'll see a log entry if it's waiting.
These are simple relay-style devices for use on Indigo Control Pages or in quick actions:
| Device Type | Purpose |
|---|---|
| Renault Charge Start | Momentary relay to start charging |
| Renault Charge Stop | Momentary relay to stop charging |
| Renault Pre-conditioning | Momentary relay to start HVAC, with a configurable target temperature |
| Renault Charge Mode | Toggle: ON = Always Charging, OFF = Schedule Mode |
Each of these links to a Renault Vehicle device via a dropdown.
| State | Type | Description |
|---|---|---|
sensorValue |
Float | Battery level %, drives the main sensor value |
displayStateImageSel |
String | Legacy display state (kept for backwards compatibility) |
batteryLevel / batteryLevelInt / batteryLevelString |
Number/Integer/String | Battery level in various formats |
batteryAutonomy / batteryAutonomyString |
Number/String | Estimated range, in your chosen distance unit |
batteryAvailableEnergy |
Number | Available energy in kWh |
batteryTemperature |
Number | Battery temperature, in your chosen temperature unit |
chargingMode |
String | Raw charge mode reported by the vehicle |
chargingPower |
Number | Instantaneous charging power (kW) |
chargingRemainingTime |
Number | Estimated minutes remaining to finish charging |
chargingStatus |
String | Human-readable charging status (e.g. "Charging", "Not Charging", "Waiting") |
chargingStatusCP |
String | Normalised status string, safe to use in Control Page/trigger logic |
chargingStatusRAW |
String | Raw status value exactly as returned by the Renault API |
plugStatus |
String | Plugged / Unplugged / Waiting / Error |
hvacStatus |
String | on / off |
hvacSocThreshold |
Number | Minimum SoC required before HVAC will run, if reported |
externalTemperature |
Number | Outside temperature reported by the vehicle |
latitude / longitude |
Number | GPS location (omitted if the vehicle has privacy mode enabled) |
modelName / registrationNumber |
String | Vehicle identification, if provided by the API |
odometer |
Number | Total mileage, in your chosen distance unit |
zLastUpdate |
String | Timestamp of the last successful data refresh |
Charging status can be ambiguous at the raw API level (numeric codes and strings both appear across models/regions). The plugin normalises this into three parallel states —
chargingStatusRAW(untouched),chargingStatusCP(consistent lowercase tokens likecharging,not_charging,waiting,charge_complete— best for automations), andchargingStatus(a friendly display string).
Available as Indigo Actions against a Renault Vehicle device:
Available as Indigo Trigger Events, each scoped to a specific Renault Vehicle device:
| Event | Conditions |
|---|---|
| Charging Status Changed | Any change / a specific raw status / transitions to Charging, Not Charging, Waiting, or Error |
| Battery Level Changed | Any change / above a threshold / below a threshold / equals a value |
| Plug Status Changed | Any change / plugged in / unplugged |
| HVAC Status Changed | Any change / turned on / turned off |
| Charging Power Changed | Any change / above a threshold / below a threshold / drops to zero / becomes non-zero |
The plugin runs a dedicated asyncio event loop on a background thread (Indigo's plugin host is synchronous, but the underlying renault-api library is async). Each Renault Vehicle device gets its own polling thread that:
If the Renault session expires mid-poll, the plugin automatically re-authenticates and retries the failed call before giving up. Connection errors are logged quietly for the first few failures and only escalate to a visible error after repeated failures, to avoid flooding the Event Log during brief Renault outages.
connectionStatus of "Connected". The vehicle device will log "Waiting for account device to connect..." until then.This plugin bundles its own copies of renault-api, aiohttp, and their sub-dependencies under Contents/Packages, so no manual pip install should be required. If you see a CRITICAL: renault-api module not found! error in the log, check the Event Log for package install failures and confirm the Contents/Packages folder was installed alongside the plugin.
MIT License — see LICENSE for details.
Built by Durosity, powered by hacf-fr/renault-api.
This is an unofficial, community-built integration. It is not affiliated with, endorsed by, or supported by Groupe Renault. Use at your own risk — remote vehicle actions (charging, HVAC, horn, lights) directly affect your car.
| Released on: | Nov. 9, 2026 |
| Requires: | Indigo v2023.2.0+ |
| Downloaded: | 1 times |
| Download this release | |
# Renault Car Plugin — v1.4.14
Everything below has landed since the last published release (v1.4.5). It's a big one: a full pass on login/connection reliability, plus new tyre pressure monitoring.
tyrePressureFL, tyrePressureFR, tyrePressureRL, tyrePressureRR (Number), each with a matching ...String state formatted with its unit (e.g. 35.2 PSI)tyreStatusFL/FR/RL/RR — the status code the API returns per wheel. Renault doesn't document what the values mean, so these are exposed as-is rather than mapped to a label; 0 has been observed to correspond to "no warning" in practicevehicle.get_tyre_pressure() call already available in the bundled renault-api library — no new dependency requiredNote on units: the raw value this endpoint returns is in tenths of a kPa, not PSI as might be assumed from the field names — e.g. a raw reading of
2430is 243.0 kPa, not 2430 PSI. This is converted correctly as of this release; if you're upgrading from a dev build that shipped before this fix, you may have seen wildly inflated PSI readings — that's resolved here.
Indigo doesn't retrofit newly added Devices.xml states onto devices that were already created under an older plugin version — updateStateOnServer() for a brand-new state silently does nothing until something tells Indigo to re-check the device's state list.
Vehicle devices now call stateListOrDisplayStateIdChanged() on deviceStartComm, so any states added in a future release (tyre pressure included) will register automatically on existing devices the next time the plugin starts, without needing to delete and recreate the device.
Previously, any login failure — a Renault server hiccup, a network blip, a typo'd password — logged an error once and sat there; you had to notice and restart the device manually.
Now:
- Failed logins are classified as terminal (bad password, disabled account, stale API key) or transient (Renault/Gigya server errors, network issues, timeouts)
- Terminal failures fail fast with a clear message
- Transient failures retry automatically with exponential backoff: 60s → 2m → 4m → 8m → 16m, capped at 30m, until connected
- Gigya error codes are decoded into readable messages (e.g. 403042 → "Invalid loginID/password", 5xxxxx → "General Server Error, transient")
Previously a vehicle device waited a fixed 30 seconds for its linked account device to finish logging in, then permanently failed with "Account device not initialized after 30 seconds" if it wasn't ready.
It now waits indefinitely (logging a heartbeat every couple of minutes), and starts automatically the moment the account connects — no restart required. This matters more now that account login itself can take several retries.
Renault session tokens expire periodically. An expired token used to surface as a generic error on whichever data fetch it happened to hit.
The plugin now recognises both NotAuthenticatedException cases ("Gigya login token not available" and "Authentication expired"), silently re-authenticates with the cached credentials, and retries the failed call — a routine token expiry no longer shows up as an error or stalls a polling cycle.
Connection errors are hidden for the first 3 consecutive failures, log one consolidated warning on the 4th ("Communication with Renault servers lost. Will keep retrying..."), then stay quiet until recovery, at which point a single "Renault communications re-established" message appears. No more log spam during a brief Renault outage.
T23:00Z) — previously sent as a raw 23:00, which the API likely rejected or misinterpretedtargetTemperature changed from int to float — some vehicles/locales expect a non-integer valuesensorValue now displays as a clean integer in the Indigo UI while still storing the precise underlying floatdisplayStateImageSel now tracks the integer battery percentage rather than a one-decimal float stringUndocumented debug file logging — every charging-status change used to additionally get written to a plain-text file at Contents/Server Plugin/logs/charging_status_log.txt. Logging is now Event Log only.
All core vehicle actions (start/stop charging, pre-conditioning, charge mode, schedule) now go through a shared _vehicle_info_for_action() check first, so calling an action before a device/account has finished initialising gives a clear log message instead of a raw exception.
renault-api minimum bumped from 0.5.10 to 0.6.1. This pulls in (not yet wired into the plugin, but available upstream):
- JWT now treated as expired 60 seconds early, so it refreshes proactively instead of failing a request first
- A dedicated UnauthorizedException for expired/revoked tokens
- Email two-factor authentication support — if your My Renault account ever gets a 2FA prompt, the underlying library can now handle it; the plugin doesn't yet expose a way to enter the code, which would be a good candidate for a future release
Events.xml — no new trigger events in this release (tyre pressure data is available as device states; a low-pressure trigger would be a natural follow-up once the status-code meaning is confirmed against real low-pressure data).
| Released on: | Dec. 13, 2025 |
| Requires: | Indigo v2023.2.0+ |
| Downloaded: | 83 times |
| Download this release | |
Now correctly documenting all charge states for EVs (or at least all the ones I could find that it supports)