Renault Car  

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

Renault Car — Indigo Plugin

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.

Features

  • Battery monitoring — charge level (%), estimated range, available energy (kWh), battery temperature
  • Charging control — start/stop charging, switch between "Always Charging" and "Schedule Mode", set a charge limit (80/90/100%)
  • Charge scheduling — configure up to 4 weekly charge schedules, either the same start time/duration for every day or per-day times
  • Pre-conditioning (HVAC) — remotely start or stop cabin pre-heating/cooling with a target temperature
  • Vehicle status — plug status, charging status, charging power, remaining charge time, odometer, GPS location
  • Remote actions — sound horn, flash lights, request an on-demand battery refresh
  • Indigo triggers — fire off automations on charging status changes, battery level thresholds, plug events, HVAC state changes, and charging power changes
  • Automatic session recovery — detects expired Renault sessions and silently re-authenticates mid-poll cycle
  • Resilient login — failed logins retry with exponential backoff (60s up to 30 minutes) and distinguish permanent failures (bad password, disabled account) from temporary ones (Renault server errors, network blips)

Requirements

  • Indigo 2022.1 or later (Server API 3.4+)
  • A My Renault account with at least one linked vehicle
  • Internet access from the Indigo Mac to Renault's servers

Installation

  1. Download the latest RenaultCar.indigoPlugin release.
  2. Double-click to install it into Indigo.
  3. On first launch, the plugin installs its Python dependencies automatically (renault-api, aiohttp) — see Dependencies below if this fails.

Getting Started

1. Add a Renault Account device

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 ID
  • connectionStatus — human-readable connection state
  • lastLogin — timestamp of last successful login

If 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

2. Add a Renault Vehicle device

Create a device of type Renault Vehicle, then:

  1. Select the Renault Account device you created above
  2. Select the Vehicle (VIN) from the dropdown (populated automatically once the account connects)
  3. Set your preferred Update Interval (default: 10 minutes)
  4. Choose Distance Unit (km/miles) and Temperature Unit (°C/°F)
  5. Optionally enable Verbose Logging for troubleshooting

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.

3. (Optional) Add control devices

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.

Device States (Renault Vehicle)

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 like charging, not_charging, waiting, charge_complete — best for automations), and chargingStatus (a friendly display string).

Actions

Available as Indigo Actions against a Renault Vehicle device:

  • Start Charging / Stop Charging
  • Start Pre-conditioning (with target temperature — most vehicles only accept 19/20/21°C)
  • Stop Pre-conditioning (HVAC)
  • Set Charge Mode (Always Charging / Schedule Mode)
  • Set Charge Schedule — configure one of 4 schedule slots, either one time/duration for every day or individually per weekday
  • Set Battery Charge Limit (80% / 90% / 100%)
  • Sound Horn
  • Flash Lights
  • Refresh Vehicle Data — force an immediate poll instead of waiting for the update interval
  • Request Battery Refresh — ask the vehicle to push a fresh battery reading (useful when the car has been asleep)

Triggers

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

How it works

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:

  1. Waits for its linked Renault Account device to finish authenticating
  2. Calls the Renault Kamereon API for battery status, charge mode, cockpit (odometer), location, and HVAC status
  3. Writes results back to Indigo device states
  4. Sleeps for the configured update interval, then repeats

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.

Known Limitations

  • Location is unavailable for some vehicles/regions where Renault enforces "privacy mode" — this is a restriction on Renault's end, not a plugin bug.
  • Charge mode endpoint isn't supported on all vehicle models — the plugin logs this at debug level and simply skips that field.
  • Some vehicles only accept specific pre-conditioning target temperatures (commonly 19, 20, or 21°C) — check your model's supported values if a pre-conditioning request is rejected.
  • Two-factor authentication on the My Renault account is not currently handled by this plugin.

Troubleshooting

  • Vehicle device never initializes — check that its linked Renault Account device shows a connectionStatus of "Connected". The vehicle device will log "Waiting for account device to connect..." until then.
  • "Invalid email or password" — the plugin has classified this as a permanent failure and stopped retrying. Double check credentials and locale, then restart the Account device.
  • Intermittent connection errors in the log — transient Renault/Gigya server errors are retried automatically; you'll only see a warning if they persist.
  • Enable Verbose Logging on the vehicle device's config for more detailed Event Log output while diagnosing an issue.

Dependencies

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.

License

MIT License — see LICENSE for details.

Credits

Built by Durosity, powered by hacf-fr/renault-api.

Disclaimer

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.

Release details
Released on: Nov. 9, 2026
Requires: Indigo v2023.2.0+
Downloaded: 1 times 
Changes in 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.


🆕 New: Tyre pressure monitoring

  • Four new device states: tyrePressureFL, tyrePressureFR, tyrePressureRL, tyrePressureRR (Number), each with a matching ...String state formatted with its unit (e.g. 35.2 PSI)
  • Four new raw status states: 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 practice
  • New Tyre Pressure Unit device setting — PSI / Bar / kPa (defaults to PSI)
  • New Tyre Pressure Decimal Places device setting — 0 / 1 / 2 decimal places, applied to both the numeric state and its formatted string
  • Fetched via the existing vehicle.get_tyre_pressure() call already available in the bundled renault-api library — no new dependency required

Note 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 2430 is 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.

🐛 Fixed: new device states not appearing on existing devices

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.

🔐 Account login is now resilient instead of one-shot

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")

⏳ Vehicle devices no longer give up waiting for their account

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.

🔄 Automatic session recovery mid-poll

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.

🤫 Quieter, smarter connection-error logging

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.

🚗 New remote vehicle actions

  • Sound Horn
  • Flash Lights
  • Stop Pre-conditioning (HVAC) — a dedicated stop, separate from Start
  • Set Battery Charge Limit — 80% / 90% / 100%

🐛 Other fixes

  • Charge schedule start times are now sent in the format the Renault API actually expects (T23:00Z) — previously sent as a raw 23:00, which the API likely rejected or misinterpreted
  • Pre-conditioning targetTemperature changed from int to float — some vehicles/locales expect a non-integer value
  • sensorValue now displays as a clean integer in the Indigo UI while still storing the precise underlying float
  • displayStateImageSel now tracks the integer battery percentage rather than a one-decimal float string

🗑️ Removed

Undocumented 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.

🧱 Safer action handling

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.

📦 Dependencies

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


Unchanged in this range

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).

Release details
Released on: Dec. 13, 2025
Requires: Indigo v2023.2.0+
Downloaded: 83 times 
Changes in this release

Now correctly documenting all charge states for EVs (or at least all the ones I could find that it supports)