A Home Assistant custom integration that manages an "onboard roster" keyed by HA Users and automatically keeps entities and notification groups in sync as users are added/removed.
- Automatic User Discovery: Automatically discovers and syncs Home Assistant users
- Automatic Device Notifier Sync: Discovers
notify.mobile_app_*services from the devices linked to each user's Home Assistant person - Per-User Control Entities: Creates onboard/notify switches, role selector, and notifiers sensor for each user
- Aggregate Sensors: Provides sensors listing active notifiers for all users or by role
- Notification Groups: Creates
notify.*services for users, roles, and all active users - Persistent Storage: All data persists via integration storage (no YAML helpers needed)
- Role Management: Define custom roles with easy configuration
- Repository type: HACS Integration (Custom Repository)
- Installation mode: repository-based (
zip_release: false) - Add directly in HACS via the one-click badge above or by URL:
https://github.com/eburi/hass_onboard_manager
- Copy the
custom_components/onboard_managerdirectory to your Home Assistantcustom_componentsdirectory - Restart Home Assistant
- Go to Settings → Devices & Services → Add Integration
- Search for "Onboard Manager"
- Open HACS in Home Assistant
- Click on "Integrations"
- Click the three dots in the top right and select "Custom repositories"
- Add
https://github.com/eburi/hass_onboard_manageras an Integration - Search for "Onboard Manager"
- Click Install
- Restart Home Assistant
- Add the integration via the UI
- Enter roles as comma-separated values (e.g., "Crew, Passenger, Guest")
- The integration will automatically:
- Discover all Home Assistant users
- Create entities for each user
- Create notification groups
To edit roles after setup:
- Go to Settings → Devices & Services
- Find "Onboard Manager" and click "Configure"
- Edit the roles (comma-separated)
- Users assigned to removed roles will be reassigned to the first role
For each Home Assistant user, the following entities are created:
switch.onboard_manager_onboard_<username_slug>- Controls if user is onboardswitch.onboard_manager_notify_<username_slug>- Controls if user receives notificationsselect.onboard_manager_role_<username_slug>- Select user's rolesensor.onboard_manager_notifiers_<username_slug>- Lists user's configured notifiers
Existing installs are migrated once to these readable ids. That rename is intentional and breaking for YAML references, dashboards, and automations that point at the old short-id entity ids.
sensor.onboard_manager_active_notifiers_all- All active notifiers (onboard + notify enabled)sensor.onboard_manager_active_notifiers_role_<role>- Active notifiers per role
notify.onboard_manager_user_<username_slug>- Send to specific user's notifiersnotify.onboard_manager_all- Send to all active usersnotify.onboard_manager_role_<role>- Send to all active users in a role
Active users = users with both onboard and notify switches enabled.
Update user settings.
Fields:
user_id(optional): Home Assistant user IDusername(optional): Username (alternative to user_id)onboard(optional): Boolean - set onboard statusnotify(optional): Boolean - enable/disable notificationsrole(optional): String - role slug or label
Example:
service: onboard_manager.set_user
data:
username: anna
onboard: true
notify: true
role: crewManage a user's manual notification services.
Device-linked mobile_app notifiers are synced automatically from the user's Home Assistant person and are merged with these manual notifiers.
Fields:
user_id(optional): Home Assistant user IDusername(optional): Username (alternative to user_id)notifiers(required): List or comma-separated string of notifier servicesmode(optional):replace(default),add, orremove
Example (Replace):
service: onboard_manager.set_user_notifiers
data:
username: anna
notifiers:
- notify.mobile_app_anna
- notify.telegram_anna
mode: replaceExample (Add):
service: onboard_manager.set_user_notifiers
data:
username: anna
notifiers: "notify.email_anna"
mode: addExample (Remove):
service: onboard_manager.set_user_notifiers
data:
username: anna
notifiers: "notify.telegram_anna"
mode: removeForce re-sync of Home Assistant users.
Example:
service: onboard_manager.reload_usersExport current state via service response (for debugging).
Example:
service: onboard_manager.export_state
response_variable: stateList all available notification services registered in Home Assistant.
Returns response data, making it easy to discover which notify.* services
can be passed to set_user_notifiers.
Fields:
domain_filter(optional): Filter results by keyword (e.g.mobile_app)
Example (all notifiers):
service: onboard_manager.list_notifiers
response_variable: resultExample (only mobile app notifiers):
service: onboard_manager.list_notifiers
data:
domain_filter: mobile_app
response_variable: resultResponse:
{
"notifiers": [
{"service": "notify.mobile_app_anna"},
{"service": "notify.mobile_app_bob"}
],
"count": 2
}Send a notification to all active crew members:
automation:
- alias: "Alert Crew"
trigger:
- platform: state
entity_id: binary_sensor.intrusion_detected
to: "on"
action:
- service: notify.onboard_manager_role_crew
data:
message: "Intrusion detected!"
title: "Security Alert"Send to a specific user:
automation:
- alias: "Notify Anna"
trigger:
- platform: time
at: "08:00:00"
action:
- service: notify.onboard_manager_user_anna
data:
message: "Good morning!"Send to all active users:
automation:
- alias: "Broadcast Message"
trigger:
- platform: state
entity_id: binary_sensor.fire_alarm
to: "on"
action:
- service: notify.onboard_manager_all
data:
message: "Fire alarm activated!"
title: "EMERGENCY"Use the aggregate sensors for Alert2 notifier lists:
alert2:
intrusion_alert:
name: "Intrusion Alert"
condition: binary_sensor.intrusion_detected
notifiers:
- notifier: "{{ state_attr('sensor.onboard_manager_active_notifiers_all', 'notifiers') }}"
reminders:
- minutes: [5, 10, 15]Or for a specific role:
alert2:
maintenance_alert:
name: "Maintenance Required"
condition: binary_sensor.maintenance_needed
notifiers:
- notifier: "{{ state_attr('sensor.onboard_manager_active_notifiers_role_crew', 'notifiers') }}"Use the service to configure which notification services a user should receive:
script:
setup_anna_notifiers:
sequence:
- service: onboard_manager.set_user_notifiers
data:
username: anna
notifiers:
- notify.mobile_app_anna_phone
- notify.telegram_anna
- notify.email_annaCreate a dashboard to manage who is onboard:
type: entities
title: Onboard Roster
entities:
- entity: switch.onboard_manager_onboard_anna
- entity: switch.onboard_manager_onboard_bob
- entity: switch.onboard_manager_onboard_charlieData is stored in .storage/onboard_manager:
{
"roles": [
{"label": "Crew", "slug": "crew"},
{"label": "Passenger", "slug": "passenger"}
],
"users": {
"<user_id>": {
"user_id": "<user_id>",
"name": "Anna",
"onboard": true,
"notify": true,
"role": "crew",
"manual_notifiers": ["notify.telegram_anna"],
"auto_notifiers": ["notify.mobile_app_anna_phone"],
"notifiers": ["notify.telegram_anna", "notify.mobile_app_anna_phone"]
}
}
}When a new Home Assistant user is detected:
onboard:falsenotify:truerole: First configured rolemanual_notifiers:[](empty list)auto_notifiers: Auto-discovered from the user's linked devicesnotifiers: Combined manual + auto notifier list
The integration syncs with Home Assistant users:
- Every 5 minutes (automatic via coordinator)
- On integration startup
- When
reload_usersservice is called
When users are removed from Home Assistant, their entities are automatically removed.
For users linked to a Home Assistant person, the integration also follows that person's device_trackers, resolves the underlying devices, and automatically adds any matching mobile_app notify services to the user.
A user's notifiers are included in "active" lists when:
onboardswitch is ONnotifyswitch is ON
- User groups (
notify.onboard_manager_user_*): Respect thenotifyflag but ignoreonboard - Role groups (
notify.onboard_manager_role_*): Only include active users (both flags enabled) - All group (
notify.onboard_manager_all): Only include active users (both flags enabled)
When roles are modified:
- Users with invalid roles are reassigned to the first role
- New role notification groups and sensors are created automatically
- Removed role entities become unavailable
- Check that Home Assistant users exist and are active
- Run
onboard_manager.reload_usersservice - Check logs for errors
- Verify the user's
notifyswitch is ON - For aggregate groups, verify
onboardswitch is also ON - Check that notifiers are configured:
sensor.onboard_manager_notifiers_* - Verify the underlying notify services exist and work
- Use the integration's options flow (Configure button)
- After saving, the coordinator will automatically update
- Check that users were reassigned correctly
custom_components/onboard_manager/
├── __init__.py # Integration entry point
├── manifest.json # Integration metadata
├── const.py # Constants
├── config_flow.py # Config/options flow
├── coordinator.py # Data update coordinator
├── storage.py # Storage management
├── user_registry.py # User sync and utilities
├── services.py # Service handlers
├── sensor.py # Sensor platform
├── switch.py # Switch platform
├── select.py # Select platform
├── notify.py # Notify platform
├── services.yaml # Service definitions
├── strings.json # UI strings
└── translations/
└── en.json # English translations
MIT License - See LICENSE file for details
Created by eburi for the hass-onboard-manager project.