If your family uses an Xplora children’s GPS watch, this integration brings it into Home Assistant. Location, chat, battery, steps and more show up as normal entities and cards, so you can see where your kid is, stay in touch from your dashboard, and build whatever automations you like around it.
Built to keep your account safe
This started as a fork of the excellent Ludy87/xplora_watch, which did the hard work of getting Xplora watches into Home Assistant in the first place. Over time Xplora tightened its rate limits, and the old chatty polling pattern began getting accounts throttled and even banned.
This version fixes that at the root:
-
It logs in once and reuses that session for about 35 days, instead of logging in on every poll (that was the real ban trigger).
-
Polling is off by default. Out of the box it only talks to Xplora’s servers when you ask it to, and if you do turn polling on you pick a safe preset (every 30 min, hourly, or 2 hours).
-
It makes far fewer calls per refresh, caches what does not change (locations, chat media), and never downloads the same attachment twice.
Safe by default, nothing to tune.
By the numbers
One watch, one data refresh, counted from the actual code paths:
| Old integration | This integration | |
|---|---|---|
| Logins per refresh | 1, on every poll | 0 (token reused ~35 days) |
| Requests per refresh | about 28 | about 3 by default, up to 8 with everything on |
| Default polling | every 180 seconds (480 a day) | off (0 a day until you ask) |
| Busiest possible day | about 13,400 requests plus 480 logins | about 384 requests, 0 logins |
So this fork’s busiest possible day is roughly 35 times lighter than the old integration’s quiet default day, and it drops the per poll login that actually caused the bans.
What you get
- Live location and a device tracker you can put on any map
- Location history: a day by day map track, with a longer archive than the phone app keeps
- Chat: read messages and reply straight from your dashboard (text, voice, images, video)
- Battery, charging, steps, XCoins and online status
- Alarms and silent times you can view, create, edit and toggle
- Safe zone status (in or out of the zones set in the Xplora app)
- Reboot, shutdown and on demand refresh services for automations
The integration bundles its own Lovelace cards and registers them for you, so there is nothing to add as a resource.
Try it first, no watch needed
There is a built in demo mode that runs fully offline. Add the integration and sign in with [email protected] (any password works) to explore every card and service with a fake watch before you connect a real one.
Install
Available in HACS. Search for HA Xplora® Watch, install, restart, then add it from Settings and sign in with your Xplora account.
Repo, docs and issues: GitHub - distante/ha-xplora-watch: Home Assistant Integration for Xplora Watches · GitHub
Feedback and bug reports are very welcome. Enjoy!
--- Disclaimer and History ---
— Disclaimer and History —
I am a software developer with a couple of decades under my belt and I am using this project to refine some agent-based development loops.
Several parts of the code are LLM-based, guided by ADRs and design documents that I produce but are not on the repository.
I created the integration because I used the old integration to try to keep my kid’s watch healthy without overcharging it. When the old integration broke I thought: “well, I could kill 2 birds with one stone”, recover the functionality and fine-tune my software architecture skills for the new AI based work.
I am using the integration constantly and have not had any issues, and it also opened up the possibility to do more complex automations.
My favorite new automation works combined with GitHub - Chiralistic/home-assistant-schulferien: Home Assistant Integration zur Überprüfung von Schulferien · GitHub. When that integration reports that today is a day when there is no school, I disable all the silent (school) modes. So it never happens that my kid is on the playground on a holiday with silent mode still active.
Automation Code
alias: Turn Off Watch Silent Mode
triggers:
- trigger: state
entity_id: binary_sensor.schulferien_feiertage
to: "on"
- trigger: state
entity_id: binary_sensor.schulferien_feiertage
to: "off"
conditions: []
actions:
- choose:
- conditions:
- condition: state
entity_id: binary_sensor.schulferien_feiertage
state: "on"
- condition: state
entity_id: input_boolean.xplora_silent_mode_last_enable_trigger
state: "on"
sequence:
- action: xplora_watch.turn_all_silents_off
metadata: {}
data:
device_id:
- REPLACE_WITH_YOUR_WATCH_DEVICE_ID
- action: input_boolean.turn_off
target:
entity_id: input_boolean.xplora_silent_mode_last_enable_trigger
- action: notify.family_group
data:
title: Silent Mode Changed!
message: Watch silent mode disabled (holiday)
- conditions:
- condition: state
entity_id: binary_sensor.schulferien_feiertage
state: "off"
- condition: state
entity_id: input_boolean.xplora_silent_mode_last_enable_trigger
state: "off"
sequence:
- action: xplora_watch.turn_all_silents_on
metadata: {}
data:
device_id:
- REPLACE_WITH_YOUR_WATCH_DEVICE_ID
- action: input_boolean.turn_on
target:
entity_id: input_boolean.xplora_silent_mode_last_enable_trigger
- action: notify.family_group
data:
title: Silent Mode Changed!
message: Watch silent mode enabled (school day)
mode: single


