The Allow2 Home Assistant integration connects your smart home to the Allow2 parental control platform. This enables you to create powerful automations that respond to your children's screen time quotas, activity permissions, and time-based restrictions.
Allow2 is a cross-platform parental control service that helps families manage screen time across all devices. Parents set daily quotas and time restrictions, while children learn to manage their own time responsibly.
By bringing Allow2 into Home Assistant, you can:
- Automate device control - Turn off gaming consoles, smart TVs, or computers when quotas are reached
- Create visual indicators - Light up a smart bulb to show remaining time status
- Send notifications - Alert children (and parents) when screen time is running low
- Track usage patterns - Log activity status changes for analysis
- Enforce boundaries - Automatically lock devices during homework time or bedtime
- Home Assistant version 2024.1 or newer
- An active Allow2 parent account
- At least one child configured in your Allow2 account
- Network access to
api.allow2.com
HACS (Home Assistant Community Store) is the easiest way to install custom integrations.
- Ensure HACS is installed in your Home Assistant instance
- Open HACS from the sidebar
- Click on "Integrations"
- Click the three-dot menu in the top right corner
- Select "Custom repositories"
- Enter the repository URL:
https://github.com/Allow2/allow2homeassistant - Select "Integration" as the category
- Click "Add"
- Search for "Allow2" in HACS
- Click "Download"
- Restart Home Assistant
- Download the latest release from the GitHub releases page
- Extract the downloaded archive
- Copy the
custom_components/allow2folder to your Home Assistant configuration directory:/config/custom_components/allow2/ - Restart Home Assistant
After restarting, verify the integration is loaded:
- Go to Settings > Devices & Services
- Click "+ Add Integration"
- Search for "Allow2"
If "Allow2" appears in the search results, the installation was successful.
- Navigate to Settings > Devices & Services
- Click "+ Add Integration"
- Search for and select "Allow2"
- Enter your Allow2 credentials:
| Field | Required | Description |
|---|---|---|
| Yes | Your Allow2 parent account email | |
| Password | Yes | Your Allow2 account password |
| Device Token | No | Advanced: Override the default device token |
| Device Name | No | How this Home Assistant appears in Allow2 (default: "Home Assistant") |
- Click Submit
- The integration will pair with your Allow2 account and discover your children
When you submit your credentials:
- The integration securely connects to Allow2's API
- Your Home Assistant instance is registered as a paired device
- A unique pairing token is generated and stored locally
- Your credentials are immediately discarded (never stored)
- The list of children from your account is retrieved
- Sensors are created for each child and activity type
After initial setup, you can configure additional options:
- Go to Settings > Devices & Services
- Find the Allow2 integration
- Click "Configure"
Available options:
- View pairing status
- See connected children
- Update device name
The integration creates two types of entities for each child and activity combination.
Binary sensors indicate whether an activity is currently allowed or not allowed.
Entity ID Pattern: binary_sensor.<child_name>_<activity>_allowed
Examples:
binary_sensor.alex_gaming_allowedbinary_sensor.emma_internet_allowedbinary_sensor.alex_television_allowed
States:
on- Activity is allowed (has quota remaining and not in restricted time)off- Activity is not allowed (quota exhausted, banned, or time-restricted)
Attributes:
| Attribute | Type | Description |
|---|---|---|
child_id |
integer | Allow2 child ID |
child_name |
string | Child's name |
activity_id |
integer | Allow2 activity ID |
activity_name |
string | Activity name |
banned |
boolean | Whether activity is permanently banned |
time_block_allowed |
boolean | Whether current time block allows activity |
remaining_seconds |
integer | Remaining quota in seconds |
Sensors show the remaining time for each activity in seconds.
Entity ID Pattern: sensor.<child_name>_<activity>_remaining
Examples:
sensor.alex_gaming_remainingsensor.emma_screen_time_remainingsensor.alex_social_media_remaining
Unit: Seconds
Device Class: Duration
Attributes:
| Attribute | Type | Description |
|---|---|---|
child_id |
integer | Allow2 child ID |
child_name |
string | Child's name |
activity_id |
integer | Allow2 activity ID |
activity_name |
string | Activity name |
allowed |
boolean | Whether activity is currently allowed |
banned |
boolean | Whether activity is permanently banned |
time_block_allowed |
boolean | Whether current time block allows activity |
For each child, the following activities are monitored:
| Activity ID | Name | Entity Suffix |
|---|---|---|
| 1 | Internet | internet |
| 2 | Gaming | gaming |
| 3 | Social Media | social_media |
| 4 | Television | television |
| 5 | Screen Time | screen_time |
| 6 | Messaging | messaging |
automation:
- alias: "Turn off TV when Alex's TV time ends"
trigger:
- platform: state
entity_id: binary_sensor.alex_television_allowed
to: "off"
action:
- service: media_player.turn_off
target:
entity_id: media_player.living_room_tv
- service: notify.mobile_app_alex_phone
data:
message: "TV time is over! The TV has been turned off."automation:
- alias: "Lock gaming PC when quota reached"
trigger:
- platform: state
entity_id: binary_sensor.emma_gaming_allowed
to: "off"
action:
- service: switch.turn_off
target:
entity_id: switch.emma_gaming_pcautomation:
- alias: "Warn Alex about low gaming time"
trigger:
- platform: numeric_state
entity_id: sensor.alex_gaming_remaining
below: 900 # 15 minutes = 900 seconds
condition:
- condition: numeric_state
entity_id: sensor.alex_gaming_remaining
above: 0
action:
- service: tts.speak
target:
entity_id: media_player.alex_room_speaker
data:
message: "Alex, you have {{ (states('sensor.alex_gaming_remaining') | int / 60) | round(0) }} minutes of gaming time left."automation:
- alias: "Update Emma's status light based on screen time"
trigger:
- platform: state
entity_id: sensor.emma_screen_time_remaining
action:
- choose:
- conditions:
- condition: numeric_state
entity_id: sensor.emma_screen_time_remaining
above: 1800 # More than 30 minutes
sequence:
- service: light.turn_on
target:
entity_id: light.emma_desk_lamp
data:
color_name: green
- conditions:
- condition: numeric_state
entity_id: sensor.emma_screen_time_remaining
above: 600 # 10-30 minutes
sequence:
- service: light.turn_on
target:
entity_id: light.emma_desk_lamp
data:
color_name: yellow
- conditions:
- condition: numeric_state
entity_id: sensor.emma_screen_time_remaining
above: 0 # Less than 10 minutes
sequence:
- service: light.turn_on
target:
entity_id: light.emma_desk_lamp
data:
color_name: red
default:
- service: light.turn_off
target:
entity_id: light.emma_desk_lamptype: entities
title: Alex's Screen Time
entities:
- entity: binary_sensor.alex_gaming_allowed
name: Gaming Allowed
- entity: sensor.alex_gaming_remaining
name: Gaming Time Left
format: duration
- entity: binary_sensor.alex_internet_allowed
name: Internet Allowed
- entity: sensor.alex_internet_remaining
name: Internet Time Left
format: durationtype: conditional
conditions:
- entity: binary_sensor.alex_gaming_allowed
state: "off"
card:
type: markdown
content: >
## Gaming Blocked
Alex's gaming time has ended for today.Cause: Invalid email or password
Solution:
- Verify your Allow2 credentials by logging into allow2.com
- Reset your password if necessary
- Re-add the integration with correct credentials
Cause: Network connectivity issues
Solution:
- Check your internet connection
- Verify Home Assistant can reach
api.allow2.com - Check if Allow2's service is operational
- Look for firewall rules blocking outbound HTTPS
Cause: API communication issue or invalid pairing
Solution:
- Check Home Assistant logs for detailed error messages
- Remove and re-add the integration
- Ensure your Allow2 subscription is active
Cause: No children configured in Allow2 account
Solution:
- Log into your Allow2 account
- Add children through the Allow2 app or website
- Remove and re-add the Home Assistant integration
To see detailed logs for the Allow2 integration:
- Add to your
configuration.yaml:logger: default: warning logs: custom_components.allow2: debug
- Restart Home Assistant
- View logs in Settings > System > Logs
If you need to re-pair (e.g., after changing your Allow2 password):
- Go to Settings > Devices & Services
- Find the Allow2 integration
- Click the three-dot menu
- Select Delete
- Add the integration again with your new credentials
No. Your password is only used during the initial pairing process. The integration stores only the pairing tokens, never your credentials.
The integration polls the Allow2 API periodically to check for quota changes. The default polling interval is designed to balance responsiveness with API rate limits.
Each integration instance connects to one Allow2 account. If you have multiple accounts, you would need to add the integration multiple times (not recommended).
Yes, the integration works with all Allow2 account types. Feature availability depends on your Allow2 subscription level.
The integration monitors the six standard Allow2 activities. Custom activities defined in your Allow2 account may not appear.
Currently, the integration is read-only. It can check quotas and activity status but cannot modify Allow2 settings or start/stop timers.
Sensors will show "unavailable" until connectivity is restored. Automations triggered by state changes will not fire during outages.
This is a community-developed integration that uses Allow2's public API. It is designed to work seamlessly with the Allow2 platform.
- Base URL:
https://api.allow2.com - Authentication: Device pairing tokens (not API keys)
- Protocol: HTTPS with TLS encryption
- Data Format: JSON
- The integration uses Home Assistant's
DataUpdateCoordinatorfor efficient polling - Each child has a separate coordinator to isolate failures
- Polling respects Allow2's rate limits
- Uses Allow2's consumer device pairing model
- Credentials are used once during pairing and immediately discarded
- Only pairing tokens (
userId,pairId,pairToken) are stored - All communication uses encrypted HTTPS
For more technical details, see the API Integration Guide.