Skip to main content

RDW smart home integration, free and open source

RDW integration for Gladys Assistant

Follow your Dutch vehicles: APK expiry, WAM insurance and recalls from the RDW register.

Follow your Dutch vehicles in Gladys: APK (the periodic roadworthiness test), WAM insurance and open recalls, read from the public register of the RDW, the Dutch vehicle authority.

What you need​

  • Gladys 5.1 or later.
  • The licence plates of your vehicles (Dutch plates).
  • Nothing else: the RDW register is public open data, no account and no key.

Configuration​

Open Integrations → RDW → Configuration.

FieldWhat to type
PlatesYour plates, separated by commas: AB-123-C, 12-XYZ-3. Dashes, spaces and lower case do not matter.
APK reminder (days)How many days before the APK expiry date the vehicle shows as due (30 by default).
Register refresh (hours)Hours between two reads of the register (6 by default). It changes once a day at most.
App token (optional)A free token from opendata.rdw.nl that lifts the request limit. Not needed for a few vehicles.

Save, then click Test the connection: the message says how many vehicles the register found, which plates it does not know, and what was not a plate.

Look up a plate checks any plate without following it — before adding it, or for a car you are about to buy.

Devices​

Open Discover: each plate is offered as a device, named after the register (Volkswagen Golf (AB-123-C)). Add the ones you want. Each one has:

FeatureValue
APK days leftDays until the APK expiry date. 0 on the last day, negative once expired.
APK expiry dateThe last day the APK is valid, YYYY-MM-DD.
Insured (WAM)1 when the register knows a WAM third-party insurance, 0 otherwise.
Open recall1 when a manufacturer recall is still to be carried out, 0 otherwise.

A value the register does not give (a moped without APK, for instance) stays empty: it is never made up.

The badge of each device says where the data stands: cloud when the register answered, unreachable when it did not (the last values read are kept), and an orange dot when the register does not know the plate (check it with Look up a plate).

Scenes and dashboard (Gladys 5.1)​

Triggers​

TriggerWhen it firesVariables
APK due or expiredThe APK enters the reminder period ("due soon"), then again when it expires. Once per APK date and stage.plate, vehicle, expiry_date, days_left
Recall openedThe register shows a recall that was not there.plate, vehicle
Insurance endedThe register no longer shows a WAM insurance for a vehicle that had one.plate, vehicle

Each trigger can be limited to one vehicle; the APK trigger also to one stage (due soon, expired). In the next actions, read the details with {{triggerEvent.data.plate}}, {{triggerEvent.data.days_left}}…

The triggers fire once per change, not at every refresh, and an update or a restart does not fire them again. A vehicle already due when you add it fires the APK reminder at once; the recall and insurance triggers wait for a change.

Actions​

ActionWhat it doesOutputs
Refresh the vehiclesReads the register now.success, vehicles, alerts
Read a vehicleGives the facts of one vehicle to the scene.found, plate, vehicle, apk_stage, apk_expiry, apk_days_left, insured, open_recall, alerts

apk_stage is ok, due_soon, expired or unknown. alerts counts what needs attention (APK due or expired, not insured, open recall).

Widget​

Add the RDW vehicles widget to a dashboard: one card per vehicle, with its APK date and a badge with what needs attention first (APK expired, not insured, open recall, APK due soon). Settings:

  • One vehicle only: shows that vehicle, with its APK days left as a live tile;
  • Only what needs attention: hides the vehicles that are fine.

The Refresh button reads the register now.

Example​

"Remind me of the APK": trigger APK due or expired (stage: due soon) → action Send a message: APK of \{\{triggerEvent.data.vehicle\}\} (\{\{triggerEvent.data.plate\}\}) in \{\{triggerEvent.data.days_left\}\} days.

Troubleshooting​

  • "This plate is not in the RDW register": check the plate with Look up a plate. Only Dutch plates are in the register; an exported or scrapped vehicle may disappear from it.
  • "The RDW register does not answer": the portal is down or throttles your address. The values read before are kept; the next read retries. Add an app token if it happens often.
  • The register is updated once a day: a new insurance or a passed APK can take a day to show.

Privacy​

The plates are only sent to opendata.rdw.nl. The integration keeps the last state seen of each vehicle in its own storage, to fire the triggers once.

Configuration settings​

These are the settings RDW asks for in its configuration screen in Gladys.

SettingTypeRequiredDescription
Getting startedsectionNoType the plates of the vehicles to follow. The data comes from the public register of the RDW, the Dutch vehicle authority: no account, no key.
PlatesstringYesDutch licence plates, separated by commas. Dashes and spaces are optional.
APK reminder (days)numberNoHow many days before the APK expiry date the vehicle shows as due and the reminder trigger fires.
Register refresh (hours)numberNoHours between two reads of the RDW register, which changes once a day at most.
App token (optional)secretNoFree token from opendata.rdw.nl that lifts the request throttling. Not needed for a few vehicles.

How to install RDW in Gladys​

  1. In Gladys, open Integrations: RDW appears in the catalog, next to the native integrations, with a community badge.
  2. Click Install. Gladys pulls the Docker image (ghcr.io/prohand/gladys-rdw:0.1.1), starts it in a sandbox isolated from the core, and generates the integration's interface (devices, discovery and configuration).
  3. Open the Configuration screen of the integration, fill in the settings, and save.
  4. You can also install it directly from its repository URL: https://github.com/prohand/gladys-rdw.

RDW requires Gladys >=5.1.0. The catalog inside Gladys refreshes every hour, so a new version becomes available at most one hour after its release.

Not running Gladys yet? It is free and open source: follow the installation guide to get started.

About external integrations​

RDW is an external integration: a community integration packaged as a Docker container and published on GitHub, that Gladys installs in one click and runs in a sandbox isolated from its core. It is published and maintained by prohand, not by the Gladys core team.

Subscribe to the Gladys Assistant newsletter

A few emails per month about new releases and project news. Sent by Pierre-Gilles Leymarie, founder of the project. Unsubscribe anytime 🙂