Skip to main content

Parcs d'attractions smart home integration, free and open source

Parcs d'attractions integration for Gladys Assistant

Live wait times and opening hours of theme parks: Disneyland Paris, Parc Astérix, Europa-Park…

The live wait times and opening hours of theme parks, attraction by attraction: Disneyland Paris, Parc Astérix, Futuroscope, Europa-Park, Efteling, PortAventura… and every park covered by ThemeParks.wiki (about 200 worldwide). No account, no key.

Powered by ThemeParks.wiki. Unofficial integration, not affiliated with ThemeParks.wiki nor with any park or operator: park and attraction names are their owners' trademarks, used for identification only. Developed without visiting the parks: the data was checked live on 2026-10-30. Feedback welcome.

What you get​

  • One device per park you add: park open, today's hours (at the park's local time), average wait and number of rides down.
  • One device per attraction you add: posted wait (minutes), in service or not, status (in service, down, closed, under refurbishment).
  • A widget "Wait times": your attractions sorted by wait, in green, orange or red, with the hours of their park.
  • Four scene triggers: the wait drops below a threshold, an attraction goes down, an attraction is back in service, the park opens.
  • One scene action: the waits of your attractions in a sentence ready to send.

Requirements​

  • Gladys Assistant 5.3.0 or later.
  • Internet access from Gladys: the data comes from the ThemeParks.wiki API.
  • No account, no API key.

Installation​

  1. In Gladys, open Integrations → Install from GitHub.
  2. Enter https://github.com/guim31/gladys-parcs-attractions and confirm.
  3. Open the integration's configuration once it has started.

Configuration​

Settings​

  • Parks: the European parks covered by ThemeParks.wiki, French ones first. Choose one or more.
  • Other parks: any other park of ThemeParks.wiki (America, Asia…), typed by name or by its ThemeParks.wiki id, separated by commas: Magic Kingdom Park, Tokyo DisneySea. A resort name (Walt Disney World® Resort) brings all its parks. Accents and capitals do not matter.
  • Refresh: every 5, 10 or 15 minutes (5 by default, the shortest the service allows).
  • Language of names and messages: French by default. Feature names are fixed when a device is added; the status texts, the widget and the scene action follow this setting.

Adding parks and attractions​

Save the configuration: after a few seconds, the Discover tab lists each chosen park, then all its attractions ("Disneyland Park · Big Thunder Mountain"). Add the ones you want to Gladys: the park for its hours, the attractions you care about for their waits. A park with a device added keeps being read even if you untick it.

Checking​

The Status action of the configuration lists the parks read, the number of attractions found, the time of the last reading, the last error and the parks typed by name that were not found.

Devices​

Park ("Parc Asterix"):

FeatureTypeValue
Park openinput, binary1 inside today's published opening hours
Today's hourstext09:00–18:00, "closed today", at the park's local time
Average waitduration, minutesmean posted wait of the rides in service that post one
Rides downcounterattractions announced down by the park

Attraction ("Parc Asterix · Thunder 2 Zeus"):

FeatureTypeValue
Wait timeduration, minutesposted standby wait; 0 when the ride is not in service
In serviceinput, binary1 in service, 0 down, closed or under refurbishment
Statustextin service, down, closed, under refurbishment

Attractions without a queue (play areas, walk-throughs) publish no wait. Evening events with a separate ticket and early hours for hotel guests are not counted as the park's opening.

Dashboard widget​

Wait times: one row per attraction (10 at most), with the name you gave it in Gladys:

  • the wait, in green up to 15 minutes, orange up to 45, red beyond;
  • "down", "closed"… in grey when the ride is not in service, "data out of date" when the service has not answered for 45 minutes.

Settings: the attractions shown (all by default), the order (shortest or longest wait first), the park hours caption above ("Parc Asterix: open until 18:00") and the ThemeParks.wiki credit button below, both can be hidden.

Scene triggers​

TriggerWhenFields
Wait below a thresholdthe wait of a ride in service drops to the threshold or belowattractions, threshold
Attraction downa ride in service goes downattractions
Attraction back in servicea ride that was down is in service againattractions
Park opensa park reaches its opening timeparks

Thresholds: 5, 10, 15, 20, 30, 45 or 60 minutes. A wait is compared only between two readings in service: the first wait of the morning does not fire. An empty attraction or park field means any followed one. Variables: attraction, park, wait (minutes); for the park, its name and hours.

Scene action​

Get the wait times: the chosen attractions (all by default) in one sentence, for a message or a speaker: "Thunder 2 Zeus: 70 minutes wait. Osiris Convolvulis: down." Outputs: the sentence, the shortest wait in minutes (-1 when no ride is in service) and the number of rides in service, for a "Continue only if" step.

Scene examples​

  • Short queue: trigger "Wait below a threshold" (Big Thunder Mountain, 15 min) → send a message to your phone.
  • Breakdown: trigger "Attraction down" → message "{{attraction_name}} is down".
  • Morning briefing on park day: at 08:30, action "Get the wait times" → speak the sentence.

Data and refresh​

  • Source: the public API of ThemeParks.wiki, without a key. Its terms ask for an explicit User-Agent, live data read at most once every five minutes (the service refreshes at that pace) and the credit "Powered by ThemeParks.wiki" where the data is shown: the configuration screen, this guide and the widget carry it.
  • One request per park and per refresh, plus the schedule once a day (or every six hours). The limit of the service (300 requests per minute) is far away; a refusal (HTTP 429) pauses the readings for the delay it asks.
  • The waits are those the parks post: they may differ from the real wait.

Troubleshooting​

  • Nothing in Discover: check that a park is chosen and saved, then run Status.
  • "Parks not found": check the spelling against the ThemeParks.wiki directory, or use the park id.
  • "data out of date": the service has not answered for 45 minutes; the Status action shows the last error.
  • No wait on a ride: the park posts none for it (play area, walk-through), or it is closed.
  • Logs: LOG_LEVEL=debug shows every reading.

Limitations​

  • Developed without the hardware (no visit to the parks): feedback welcome.
  • Only the standby queue is read: single rider, virtual queues and paid fast passes are not.
  • Shows and restaurants are not offered as devices.
  • The hours are the ones the park publishes; an unannounced change shows at the next schedule reading.
  • Park and attraction names come from the service, mostly in English.

Credits​

  • Data: ThemeParks.wiki and its contributors, free to use with attribution.
  • Integration: guim31, Apache-2.0 license.

Configuration settings​

These are the settings Parcs d'attractions asks for in its configuration screen in Gladys.

SettingTypeRequiredDescription
How it workssectionNoChoose your parks and save: each park and its attractions appear in the Discover tab. Add the ones you want to Gladys. No account, no key. Powered by ThemeParks.wiki.
Parksmulti_selectNoEuropean parks covered by ThemeParks.wiki. Others: the field below.
Other parksstringNoAny other park of ThemeParks.wiki (America, Asia…): its name or id, separated by commas.
RefreshselectNo
Language of names and messagesselectNoFeature names are fixed when a device is added.

How to install Parcs d'attractions in Gladys​

  1. In Gladys, open Integrations: Parcs d'attractions appears in the catalog, next to the native integrations, with a community badge.
  2. Click Install. Gladys pulls the Docker image (ghcr.io/guim31/gladys-parcs-attractions:1.0.0), 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/guim31/gladys-parcs-attractions.

Parcs d'attractions requires Gladys >=5.3.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​

Parcs d'attractions 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 guim31, 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 🙂