Google Family Link for Home Assistant - Parental controls & device monitoring for your kids

Note: AI tools were used as assistance during development and documentation.

Hello everyone! :waving_hand:

I’m excited to introduce my Google Family Link integration for Home Assistant - monitor and control your children’s screen time, devices, schedules and location, directly from HA.

Example dashboard built entirely from the integration - the YAML + setup notes are in the examples/ folder.

:folded_hands: Acknowledgments

First and foremost, I want to thank:

  • @tducret for his original Python package that documented the first Google Family Link API endpoints
  • @Vortitron for his initial work on HAFamilyLink which served as the foundation for this project
  • The Home Assistant community for the inspiration and numerous integration examples
  • All the contributors and issue reporters who have helped harden the integration release after release :raising_hands:

Without these building blocks, this project would never have seen the light of day.


:bullseye: What is it?

This integration lets you monitor and control your children’s Google Family Link devices directly from Home Assistant. Screen time, remote locking, bedtime & school schedules, time bonuses, app blocking, GPS location… everything is now accessible and automatable!

Multi-child and multi-device are first-class - manage all your kids and all their supervised devices from one place.

:sparkles: Key Features

:locked_with_key: Device Control

  • Remote lock/unlock via switches
  • Bidirectional synchronization: changes made in the Family Link app are reflected in Home Assistant
  • Multi-device support: manage all your children’s supervised devices
  • Ring a device to help locate it

:alarm_clock: Time Management

  • Bedtime control - enable/disable and edit the start/end times (weekly schedule or “today only”)
  • School time control - enable/disable restrictions
  • Daily limits - enable/disable and set the daily screen-time quota per device
  • Time bonuses - grant +15 / +30 / +60 min, or cancel an active bonus

:bar_chart: Screen Time Tracking

  • Real-time daily screen time
  • Screen time remaining per device (accounts for bonuses and used time)
  • Top 10 most used apps with detailed statistics
  • Breakdown by application (hours, minutes, seconds)
  • Automatic updates every 5 minutes (customizable)

:mobile_phone_with_arrow: App Management

  • Number of installed apps
  • Blocked apps with complete list
  • Apps with time limits
  • Per-app daily limits - including “unlimited time” and “block” states
  • Complete details: package names, titles, configured limits

:round_pushpin: GPS Location (optional, opt-in)

  • Track your child’s location via a device_tracker entity
  • Saved-place detection (Home, School…), full address, source device, battery level
  • On-demand location refresh
  • Disabled by default - privacy first :warning: (each poll may notify the child’s device)

:baby: Child Information

  • Complete profile: name, email, date of birth, age range
  • Device information: model, name, capabilities, last activity
  • Family members with their roles

:building_construction: Architecture: Add-on + Integration

The project consists of two complementary components:

1. Authentication Add-on (required)

Provides secure browser-based authentication:

  • Browser automation with Playwright and headless Chromium
  • Web-based access via noVNC (no separate VNC client needed)
  • 2FA support (SMS, authenticator, push notifications)
  • Encrypted cookie storage
  • Automatic session refresh

2. Home Assistant Integration

Ensures monitoring and control:

  • User-friendly configuration interface (config flow)
  • API client to communicate with Google Family Link
  • Data coordinator with caching + graceful degradation on transient API errors
  • Entities (sensors, binary sensors, switches, buttons, device tracker)

Why two components? Home Assistant’s Docker environment restricts browser automation. The add-on runs in a separate container with Chromium and Playwright, while the integration handles data retrieval and device control. (A standalone Docker image is also available if you don’t run HA OS/Supervised.)

:light_bulb: Automation Examples

Bedtime Lock

automation:
  - alias: "Lock phone at bedtime"
    trigger:
      - platform: time
        at: "21:00:00"
    condition:
      - condition: time
        weekday: [mon, tue, wed, thu, fri]
    action:
      - service: switch.turn_off
        target:
          entity_id: switch.child_phone

Excessive Screen Time Alert

automation:
  - alias: "Alert if excessive screen time"
    trigger:
      - platform: numeric_state
        entity_id: sensor.child_daily_screen_time
        above: 180  # 3 hours in minutes
    action:
      - service: notify.mobile_app
        data:
          message: "⚠️ More than 3 hours of screen time today!"

Grant a Time Bonus from an Automation

automation:
  - alias: "Homework done → +30 min"
    trigger:
      - platform: state
        entity_id: input_boolean.homework_done
        to: "on"
    action:
      - service: familylink.add_time_bonus
        data:
          entity_id: switch.child_phone
          minutes: 30

:desktop_computer: Example Dashboard

A ready-to-use, Family-Link-only Lovelace dashboard (screen time, per-device limits, bedtime/school time, bonuses, top apps) is included in the repo - with the screenshot above, the YAML, and the list of required HACS cards:

:backhand_index_pointing_right: HAFamilyLink/examples at main · noiwid/HAFamilyLink · GitHub

Just copy the YAML and rename the placeholder entity IDs to match yours.

:package: Installation

Via HACS (recommended)

  1. Add this repository as a custom source in HACS
  2. Install the Family Link Auth add-on from the Supervisor Store
  3. Start the add-on and authenticate via the web interface (port 8099)
  4. Install the Google Family Link integration via HACS
  5. Configure the integration in Settings → Devices & Services

Detailed installation guide available in the README.

:light_bulb: Actions not applying to Family Link? Make sure the account you authenticated in the add-on is the parent/manager account for that child, and check the HA logs (filter on familylink) right after triggering an action - a 401 / Session expired means you need to re-authenticate in the add-on.

:police_car_light: Important Warning

This integration uses unofficial Google Family Link API endpoints obtained through reverse engineering.

:warning: Use at your own risk. This may violate Google’s Terms of Service and could result in account suspension. This project is not affiliated with, endorsed by, or connected to Google LLC.

:link: Useful Links

:tada: Current Version

v1.2.11 - GPS location fix (numeric LocationRefreshMode), removed bundled requirements that broke HA 2026.7, plus the new example dashboard. See the CHANGELOG for the full history (bedtime/school schedules, per-app limits, multi-child support, on-demand location, and much more since v0.5.0).

:handshake: Contributions

Contributions are welcome! Feel free to:

  • Report bugs
  • Suggest new features
  • Submit pull requests
  • Share your automations

I hope this integration will be useful to you! Don’t hesitate to share your feedback, suggestions, or questions.

Happy parental control to all! :family_man_woman_girl_boy:

10 Likes

Very cool looking.

Especially since it’s a multi-part install with the two separate directories, would you consider making “install me” button/links?

HACS - General - HACS
Add-ON - Create a link – My Home Assistant

1 Like

Thanks for your feedback and advice. I never knew how these buttons has to be setup. Done :white_check_mark:

1 Like

Google login card don’t open, what Im do worng?

1 Like

Hi, did you connect to the VNC server built by the add on after clicking on the Start Authentication button?

details here:

Step 3: Connect via VNC

  • Open your VNC client (TightVNC, RealVNC, VNC Viewer, etc.)
  • Address: [YOUR_HA_IP]:5900 (or just [YOUR_HA_IP] and port 5900)
  • Password: familylink
  • Click Connect

Step 4: Complete Google Login in VNC

  • Enter your Google account email > Click Next
  • Enter your password > Click Next
  • Complete 2FA if prompted (SMS code, authenticator app, push notification, etc.)
  • Grant permissions if asked
  • Keep the VNC window open until you see the Family Link dashboard :compass:

Cant understand the VNC part… Do i need another addon for the VNC?

With VNC, I do it but only for one phone… I got two…

VNC is a small software to install on your computer, it allow to connect to the virtual machine created by the addon, and see its screen. it only has to be done once for installation (and probably later when Google authorization will expire). The addon can be turn off after this step’s completed.

Note that he auth have to be done only once, even if you have many childrens/phones to manage.

Hi,

I’ve just pushed a new 0.9.0 release of the integration, with a lot more coverage of Family Link features. It now includes:

  • Handling of bonus time
  • Retrieval of the daily time limit per device, and calculation of remaining time
  • Enable/disable the daily time limit
  • Enable/disable bedtime / downtime limits
  • Enable/disable school-time schedules

The Lock button is now “smart”: it takes into account the actual status of the device, combining several sensors to determine whether the device is currently active or not.

I’ve also added a notification system to warn you when the Google cookies provided by the add-on have expired.

This is a great idea and I got it installed successfully. I cannot get a simple button in the dashboard to work that blocks the youtube app. Also, no information seems to flow in from the device. All numbers are 0. I should add I am completely new to HA

Hi, the installation is in 3 parts :
a) install/launch the addon, open it and click on the authentification button
b) install/launch Vnc viewer (like TightVNC), and connect to Google Account
c) install the integration, that’ll communicate with Google servers, to get all datas.

Did you follow these 3 steps as detailled here?

Hi,
I’ve just released version v0.9.4, which brings a lot of improvements and bug fixes :slightly_smiling_face:

We’re getting really close to v1.0 :rocket:

2 Likes

I really like this effort. I have it up and running but when i added bonus time, its not counting down. I set it to 5mins refresh but nothing.

Is the addon needed for this update? Its quite resource heavy.

Edit. Figured out that it needs a refresh in the app to get new information. Is it possible to have the bonus time run on its own timer? So that it counts down regardless of the sensor value. Use the time aspect for Calculations

Hey @kexan82, thanks for the feedback and great suggestion!

You’re absolutely right - the bonus time sensor currently only updates when the API refreshes, which isn’t ideal for a countdown display.

Your idea of having a client-side timer that calculates the remaining time independently is spot on. I’ll implement this in the next release - the sensor will track when the bonus was received and calculate the countdown in real-time, regardless of the polling interval.

Regarding the addon - it’s only needed for the initial authentication (and re-auth if your token ever expires). Personally, mine has never expired since the initial setup, so I keep the addon turned off. You can safely do the same to save resources!

Stay tuned! :slightly_smiling_face:

1 Like

Google login don’t open, and if try connecting to the VNC server on [MY_HA_IP]:5900, I just get an error, RealVNC Connect No matching security types. what did I do wrong?

EDIT: seems to be working the following day.

I have installed this integration. But it seems the device locking feature is not working for me.

Locking/Unlocking from HA, seems to instantly revert the status. But now I’m also not able to lock the device from the Family Link app itself.

I’ve tried enabling Device limit from HA and that seems to work.

Hey everyone! :wave:

Quick update: a lot has changed since my last message. We’re now at v1.1.1 with many fixes and new features. For those who were experiencing issues, the auth add-on updates have likely unblocked quite a few situations since then.

Main additions since v0.9.4:

  • Auth fixes - better handling of regional cookies (.google.com.au, .google.co.uk…) and fixed the re-authentication loop
  • Per-app daily time limits - set a daily quota per app (e.g. 60 min of TikTok). set_app_daily_limit service
  • Multi-child support - block_app / unblock_app now apply to all children by default
  • set_bedtime service - schedule bedtime start/end times per day directly from HA
  • On-demand GPS refresh - refresh_location forces a real-time location update from the child’s device
  • Battery level sensor - sensor.<child>_battery_level with dynamic icon
  • Unlimited time mode per app - an app can ignore device limits (minutes: -2)
  • set_daily_limit accepts 0 minutes - useful to cut screen time while keeping unrestricted apps accessible

Full changelog on the GitHub repo.

Feel free to reach out if you have questions or feedback!

2 Likes

Hey all!

Quite a lot has shipped since my last post here (v1.1.1). The integration now mirrors almost every feature of the Family Link app, directly from Home Assistant:

  • :locked: Lock / unlock devices with two-way synchronization (changes made in the Family Link app are reflected in Home Assistant).
  • :crescent_moon: Bedtime and :school: School Time controls that let you enable or disable today's restrictions using your actual configured schedules.
  • :stopwatch: Daily limits and time bonuses to manage screen time directly from Home Assistant.
  • :bell: Ring a device to help locate it, just like the app's "Play Sound" feature.
  • :bar_chart: Screen time monitoring (daily totals and top apps) and app management (installed, blocked, limited, always allowed, and unlimited apps).
  • :baby: Child and device information, including profile details, device model, battery level, last activity, and :round_pushpin: location.

At this point, most day-to-day Family Link actions can be automated from Home Assistant. :tada:

:new_button: Highlights Since v1.1.1

:bell: Ring a Device

A dedicated per-device button and the familylink.ring_device action can now trigger a device ringtone remotely.

(#118)

:crescent_moon::school: Bedtime & School Time That Actually Work

The Bedtime and School Time switches now apply a true day-level override, matching the Family Link app's "Today" toggle.

Devices lock or unlock immediately, even outside the normal weekly schedule, while respecting your actual configured hours.

(#111, #113, #114)

:bar_chart: Expanded Sensor Coverage

Additional sensors are now available, including:

  • Always Allowed Apps
  • Apps Without Limits
  • Full application names in screen-time attributes
  • Complete app lists without truncation

(#95, #97)

:globe_with_meridians: Hebrew Translation

Hebrew has been added alongside the existing English and French translations.


:shield: More Robust & Secure

Better Handling of Google's API Issues

Temporary Google API failures (503, 500, etc.) no longer cause every sensor to become unavailable.

The integration now keeps the last known valid data until communication is restored.

(#117, thanks @Naumsede)

Protected Cookie Endpoint

On add-on installations, the cookie endpoint is now protected by an API key automatically, preventing other devices on your network from accessing your Google session.

Better HA OS & Docker Standalone Support

The integration now automatically discovers the auth add-on through the Supervisor network instead of assuming localhost.

(#123, thanks @ibrahimnajjar84)

Docker standalone deployments also work again without requiring an API key by default.

(#125, thanks @cdn4lf)

Reliability Improvements

Several fixes improve reliability around:

  • App blocking
  • Allowlists and whitelists
  • Standalone configuration flow
  • noVNC authentication screens

(#82, #83, #101, #108, #109)


:light_bulb: Good to Know

The architecture remains unchanged and consists of two components:

  1. Google Family Link Auth Add-on
  2. Home Assistant Integration

The add-on only needs to run during the initial login or when re-authentication is required.

Once authentication is complete, the integration can continue operating on its own using the stored encrypted cookies.


:package: Current Versions

Available through HACS:

  • Home Assistant Integration: v1.2.8
  • Google Family Link Auth Add-on: v1.7.1

Bug reports, feature requests, and pull requests are always welcome. :folded_hands:

And a huge thank you to everyone who has tested, reported issues, and contributed improvements!

Really need to install your component. But no time yet ;-), want to indeed use voice control to lock/unlock devices :slight_smile:

My favorite feature is syncing phone locking with my child's real school schedule. Through the integration provided by French schools, Home Assistant gets live timetable updates and automatically locks the phone when classes are in session.

In class... no phone! :grinning_face_with_smiling_eyes:

1 Like