Skip to content

Navigation Menu

Sign in
Sign up
KNOOP edited this page Jul 28, 2026 · 8 revisions

Intent Launcher

The Android Intent Executor allows you to remotely execute Android Intents from Home Assistant, opening apps or system settings on the Ava device.


Overview

The Intent Launcher exposes a service in Home Assistant that can execute Android Intents remotely. This lets you open apps, launch system settings, or trigger any intent-based action from HA automations.

What It Does:

  • Execute Android Intents from Home Assistant automations
  • Open apps with custom URI schemes
  • Launch system settings pages
  • Trigger deep links in apps
  • Send broadcast intents to apps or system receivers
  • Control device behavior through intent actions

Why Use Intent Launcher:

  • Automate app launching based on time, sensors, or voice commands
  • Create custom dashboards that launch specific apps
  • Integrate third-party apps into your smart home workflows
  • Remote control of Ava device without physical interaction

Setup

Enable Intent Launcher

  1. Go to Settings -> Experimental
  2. Turn on Intent Launcher
  3. Enable Show in Home Assistant to expose the service

How to Call

action: esphome.device_name_launch_intent
data:
 intent_uri: "spotify://"

Supported Formats

Open App

intent_uri: "spotify://com.spotify.music"

System Settings

intent_uri: "intent:#Intent;action=android.settings.SETTINGS;end"

Broadcast Intents

You can also send Android broadcasts instead of launching activities. Broadcasts are useful for triggering system events, app receivers, or device-level actions without bringing anything to the foreground.

Use the broadcast: prefix:

action: esphome.device_name_launch_intent
data:
 intent_uri: "broadcast:com.example.ava.ACTION_TOGGLE_MIC"

Or use structured Home Assistant-style fields:

action: esphome.device_name_launch_intent
data:
 intent_action: "android.intent.action.BOOT_COMPLETED"
 intent_package_name: "com.example.targetapp"
 intent_extras: '{"key1":"value1"}'
 intent_mode: "broadcast"

Why broadcasts matter:

  • Launch an activity and the user sees an app open. Send a broadcast and the device just reacts — silently, in the background.
  • Many apps expose hidden actions only through broadcasts: Tasker, KWGT, MacroDroid, custom alarm clocks, media players, and device control apps.
  • You can chain broadcasts from Home Assistant automations to make an Ava panel behave like a wall-mounted control surface that never leaves your dashboard.

Other Examples

Intent Description
spotify:// Open Spotify
youtube:// Open YouTube
intent:#Intent;action=android.settings.WIFI_SETTINGS;end Open WiFi settings
intent:#Intent;action=android.settings.BLUETOOTH_SETTINGS;end Open Bluetooth settings
intent:#Intent;action=android.settings.DISPLAY_SETTINGS;end Open display settings
broadcast:com.example.ava.ACTION_TOGGLE_MIC Toggle Ava microphone

Broadcast Intent Playbook

The real power of the Intent Launcher is sending broadcasts. Here are practical patterns you can copy into Home Assistant automations.

1. Control Ava Itself

Ava exposes several headless broadcast actions. You can call them from Home Assistant without opening the app.

Toggle microphone:

action: esphome.ava_launch_intent
data:
 intent_uri: "broadcast:com.example.ava.ACTION_TOGGLE_MIC"

Restart the voice satellite:

action: esphome.ava_launch_intent
data:
 intent_uri: "broadcast:com.example.ava.ACTION_RESTART_VOICE_SATELLITE"

Grant Bluetooth permissions via ADB/root helper:

action: esphome.ava_launch_intent
data:
 intent_uri: "broadcast:com.example.ava.ACTION_GRANT_BLUETOOTH"

Check for updates:

action: esphome.ava_launch_intent
data:
 intent_uri: "broadcast:com.example.ava.ACTION_CHECK_UPDATE"

Apply settings from a JSON file on the device:

action: esphome.ava_launch_intent
data:
 intent_uri: "broadcast:com.example.ava.ACTION_APPLY_SETTINGS"
 intent_extras: '{"settings_file": "/sdcard/ava_headless.json"}'

For the full list of Ava control broadcasts, see ADB Commands.

2. Talk to Tasker, MacroDroid, or KWGT

Automation apps on Android listen for custom broadcasts. From Home Assistant you can fire a named broadcast and let the Android side handle the rest.

Trigger a Tasker task by name:

action: esphome.ava_launch_intent
data:
 intent_action: "net.dinglisch.android.tasker.ACTION_TASK"
 intent_package_name: "net.dinglisch.android.taskerm"
 intent_extras: '{"task_name": "Bedtime"}'

Tell KWGT to refresh a widget:

action: esphome.ava_launch_intent
data:
 intent_action: "org.kustom.action.REFRESH_WIDGET"
 intent_package_name: "org.kustom.widget"

3. System-Level Triggers

Use broadcasts to interact with system receivers. These are global, so results depend on the ROM and Android version.

Simulate a media play/pause key:

action: esphome.ava_launch_intent
data:
 intent_action: "android.intent.action.MEDIA_BUTTON"
 intent_extras: '{"command": "togglepause"}'

Ask the system to rescan media storage:

action: esphome.ava_launch_intent
data:
 intent_action: "android.intent.action.MEDIA_MOUNTED"
 intent_extras: '{"path": "/sdcard"}'

4. Custom App Receivers

Many apps expose actions as broadcasts. Common patterns:

Start a music app playlist without opening its UI:

action: esphome.ava_launch_intent
data:
 intent_action: "com.myapp.intent.PLAY_PLAYLIST"
 intent_package_name: "com.myapp.music"
 intent_extras: '{"playlist_id": "chill"}'

Trigger an alarm/timer app:

action: esphome.ava_launch_intent
data:
 intent_action: "com.alarm.app.DISMISS_ALARM"
 intent_package_name: "com.alarm.app"

5. Complex Broadcast with Extras

Most real-world broadcasts need extra data. Use the structured fields to pass key/value pairs.

action: esphome.ava_launch_intent
data:
 intent_action: "my.custom.ACTION"
 intent_package_name: "com.example.myapp"
 intent_extras: |
 {
 "scene": "movie",
 "brightness": "20",
 "volume": "8"
 }
 intent_mode: "broadcast"
  • intent_action = the broadcast action string
  • intent_package_name = which app should receive it
  • intent_extras = a JSON object of string key/value pairs
  • intent_mode: broadcast = tell Ava this is a broadcast, not an activity launch

6. Chaining Broadcasts in an Automation

Because broadcasts do not open an app window, you can fire several in sequence without the user seeing anything jump around.

"Movie night" automation:

automation:
 - alias: "Movie Night on Ava Panel"
 trigger:
 - platform: state
 entity_id: input_select.house_mode
 to: "movie"
 action:
 - service: esphome.ava_launch_intent
 data:
 intent_uri: "intent:#Intent;action=android.settings.DISPLAY_SETTINGS;end"
 - service: esphome.ava_launch_intent
 data:
 intent_action: "com.spotify.music.playlist"
 intent_package_name: "com.spotify.music"
 intent_extras: '{"playlist": "chill"}'
 intent_mode: "broadcast"
 - service: esphome.ava_launch_intent
 data:
 intent_uri: "broadcast:com.example.ava.ACTION_RESTART_VOICE_SATELLITE"

7. Security Notes

  • Broadcasts are background events. The target app must already be installed and must have a receiver that listens for the action you send.
  • Some system broadcasts require permissions or are ignored on newer Android versions. If a broadcast does nothing, check the Android logcat for a SecurityException or NoReceiver warning.
  • Avoid sending sensitive data in extras unless the receiver is in the same app or protected by a permission.

Use Cases & Scenarios

1. Morning Routine Automation

Scenario: Start your day with personalized apps and settings

automation:
 - alias: "Morning Device Setup"
 trigger:
 - platform: time
 at: "07:00:00"
 action:
 - service: esphome.ava_launch_intent
 data:
 intent_uri: "spotify://"
 - delay: "00:00:05"
 - service: esphome.ava_launch_intent
 data:
 intent_uri: "intent:#Intent;action=android.settings.DISPLAY_SETTINGS;end"

2. Voice-Controlled App Launcher

Scenario: Use voice commands to launch specific apps

automation:
 - alias: "Launch Netflix by Voice"
 trigger:
 - platform: conversation
 command: "launch netflix"
 action:
 - service: esphome.ava_launch_intent
 data:
 intent_uri: "netflix://"
 - service: tts.speak
 data:
 message: "Launching Netflix"

3. Guest Mode Configuration

Scenario: Automatically configure device for guests

automation:
 - alias: "Activate Guest Mode"
 trigger:
 - platform: input_boolean
 entity_id: input_boolean.guest_mode
 to: "on"
 action:
 - service: esphome.ava_launch_intent
 data:
 intent_uri: "intent:#Intent;action=android.settings.WIFI_SETTINGS;end"
 - service: esphome.ava_launch_intent
 data:
 intent_uri: "kiosk://com.example.kiosk"

4. Emergency Quick Actions

Scenario: Launch emergency apps or contacts

automation:
 - alias: "Emergency Call"
 trigger:
 - platform: event
 event_type: emergency_triggered
 action:
 - service: esphome.ava_launch_intent
 data:
 intent_uri: "tel:911"
 - service: esphome.ava_launch_intent
 data:
 intent_uri: "com.google.android.apps.maps"

5. Media Control Integration

Scenario: Control media apps based on presence or time

automation:
 - alias: "Evening Music"
 trigger:
 - platform: sun
 event: sunset
 action:
 - service: esphome.ava_launch_intent
 data:
 intent_uri: "spotify://playlist/37i9dQZF1DXcBWIGoYBM5M"

6. Headless Broadcast Workflows

Scenario: Make the Ava panel react to house mode without opening apps

automation:
 - alias: "Bedtime on Kitchen Panel"
 trigger:
 - platform: state
 entity_id: input_select.house_mode
 to: "sleep"
 action:
 - service: esphome.kitchen_launch_intent
 data:
 intent_uri: "broadcast:com.example.ava.ACTION_TOGGLE_MIC"
 - service: esphome.kitchen_launch_intent
 data:
 intent_action: "android.intent.action.VOICE_COMMAND"
 intent_package_name: "com.google.android.googlequicksearchbox"
 intent_mode: "broadcast"

7. Motion-Triggered Snapshot

Scenario: A camera sees motion; the Ava panel takes a screenshot and saves it locally

automation:
 - alias: "Motion Snapshot from Front Door"
 trigger:
 - platform: state
 entity_id: binary_sensor.front_door_motion
 to: "on"
 action:
 - service: esphome.hallway_launch_intent
 data:
 intent_action: "com.example.ava.ACTION_SCREENSHOT"
 intent_extras: '{"path": "/sdcard/Ava/snapshots/front_door.jpg"}'
 intent_mode: "broadcast"

App Integration Examples

Entertainment Apps

App Intent URI Use Case
Spotify spotify:// Launch music player
Netflix netflix:// Open streaming service
YouTube youtube:// Launch video platform
Plex plex:// Open media server
VLC vlc:// Launch media player

Communication Apps

App Intent URI Use Case
WhatsApp whatsapp:// Open messaging
Telegram tg:// Launch chat app
Discord discord:// Open communication
Zoom zoomus:// Start video call

Utility Apps

App Intent URI Use Case
Google Maps com.google.android.apps.maps:// Open navigation
Chrome googlechrome:// Launch browser
Calculator calculator:// Open calculator
Camera camera:// Launch camera

Advanced Usage

Custom Intent Actions

# Launch specific activity
action: esphome.ava_launch_intent
data:
 intent_uri: "intent:#Intent;component=com.spotify.music/.MainActivity;end"
# Pass extra data
action: esphome.ava_launch_intent
data:
 intent_uri: "intent:#Intent;action=android.intent.action.VIEW;data=https://example.com;end"

Conditional App Launching

automation:
 - alias: "Smart App Launcher"
 trigger:
 - platform: state
 entity_id: sensor.time_of_day
 action:
 - choose:
 - conditions:
 - condition: state
 entity_id: sensor.time_of_day
 state: "morning"
 sequence:
 - service: esphome.ava_launch_intent
 data:
 intent_uri: "spotify://playlist/morning"
 - conditions:
 - condition: state
 entity_id: sensor.time_of_day
 state: "evening"
 sequence:
 - service: esphome.ava_launch_intent
 data:
 intent_uri: "netflix://"

Path Discovery

Finding App Intent URIs

  1. App Documentation: Check app's developer documentation
  2. Android Logcat: Monitor logs when opening apps manually
  3. Third-party Tools: Use tools like "Intent Interceptor"
  4. Community Resources: Search HA community forums
  5. Trial and Error: Test common patterns (appname://, com.package.name)

System Intent Actions

Common system settings intents:

  • android.settings.SETTINGS - Main settings
  • android.settings.WIFI_SETTINGS - WiFi settings
  • android.settings.BLUETOOTH_SETTINGS - Bluetooth settings
  • android.settings.DISPLAY_SETTINGS - Display settings
  • android.settings.SOUND_SETTINGS - Sound settings
  • android.settings.APPLICATION_DETAILS_SETTINGS - App info

Automation Strategies

1. Multi-App Workflows

Create sequences of app launches for complex routines:

automation:
 - alias: "Work Mode Setup"
 trigger:
 - platform: time
 at: "09:00:00"
 action:
 - service: esphome.ava_launch_intent
 data:
 intent_uri: "slack://"
 - delay: "00:00:03"
 - service: esphome.ava_launch_intent
 data:
 intent_uri: "calendar://"
 - delay: "00:00:03"
 - service: esphome.ava_launch_intent
 data:
 intent_uri: "gmail://"

2. Context-Aware Launching

Launch apps based on sensor data:

automation:
 - alias: "Weather-Appropriate Entertainment"
 trigger:
 - platform: state
 entity_id: sensor.weather_condition
 action:
 - choose:
 - conditions:
 - condition: state
 entity_id: sensor.weather_condition
 state: "rainy"
 sequence:
 - service: esphome.ava_launch_intent
 data:
 intent_uri: "netflix://"
 - conditions:
 - condition: state
 entity_id: sensor.weather_condition
 state: "sunny"
 sequence:
 - service: esphome.ava_launch_intent
 data:
 intent_uri: "spotify://playlist/outdoor"

3. Voice Integration

Combine with Ava voice commands:

automation:
 - alias: "Voice App Launcher"
 trigger:
 - platform: conversation
 command: "open {{ app_name }}"
 action:
 - service: esphome.ava_launch_intent
 data_template:
 intent_uri: "{{ app_name }}://"

Working with Other Automation Tools

Combining with Tasker for Advanced Workflows

Use Intent Launcher as the bridge between Home Assistant and Tasker's powerful Android automation capabilities. While Tasker handles complex device-level operations like sensor monitoring, file operations, and advanced system interactions, Intent Launcher provides the smart home context and remote access that Tasker lacks.

Example Integration: Create a Tasker profile that monitors battery level and triggers a Home Assistant automation via Intent Launcher to launch a specific app when battery drops below 20%, while HA simultaneously adjusts smart home lighting to indicate charging status.

Enhancing Automate with Smart Home Context

Automate excels at complex flow-based Android automation but operates in isolation from your smart home. Use Intent Launcher to inject real-world context into Automate flows - trigger Automate flows based on HA sensor states, or have Automate execute actions that launch specific apps through HA automations.

Example Integration: Set up an Automate flow that controls device brightness based on ambient light sensors, then use Intent Launcher to launch different entertainment apps based on the time of day detected by Home Assistant's sun sensor.

Extending Android Shortcuts with Automation

Android Shortcuts provide convenient manual access but lack automation intelligence. Use Intent Launcher to transform static shortcuts into dynamic, context-aware launchers that adapt to your current situation, location, and smart home state.

Example Integration: Create a "Movie Time" shortcut that normally launches Netflix, but through Intent Launcher and HA automation, it launches Disney+ when kids are detected home, or launches Prime Video when it's raining outside.


Home Assistant Integration

Status Entity

sensor.your_device_name_intent_launcher_status

Service Call Format

service: esphome.ava_launch_intent
data:
 intent_uri: "app://"

Automation Examples

Time-Based Launch

automation:
 - alias: "Open Spotify in the morning"
 trigger:
 - platform: time
 at: "07:00:00"
 action:
 - service: esphome.ava_launch_intent
 data:
 intent_uri: "spotify://"

Sensor-Based Launch

automation:
 - alias: "Launch entertainment when presence detected"
 trigger:
 - platform: state
 entity_id: binary_sensor.living_room_presence
 to: "on"
 action:
 - service: esphome.ava_launch_intent
 data:
 intent_uri: "netflix://"

Voice-Activated Launch

automation:
 - alias: "Voice app launcher"
 trigger:
 - platform: conversation
 command: "launch {{ app }}"
 action:
 - service: esphome.ava_launch_intent
 data_template:
 intent_uri: "{{ app }}://"

Troubleshooting

Common Issues

Intent Not Executing

  1. Check if Intent Launcher is enabled
  2. Verify Show in Home Assistant is enabled
  3. Confirm intent URI format is correct
  4. Check if target app is installed

App Not Opening

  1. Ensure app is installed on the device
  2. Verify correct intent URI for the app
  3. Some apps use different URI schemes
  4. Check if app supports intent launching

Service Not Found

  1. Restart Ava voice satellite
  2. Check HA log for errors
  3. Verify device is online
  4. Re-enable Intent Launcher

Debugging Tips

  1. Check Logs: Monitor HA logs for intent execution errors
  2. Test Manually: Try launching apps manually first
  3. Use Simple Intents: Start with basic app URIs
  4. Verify App Installation: Confirm apps are installed
  5. Check Permissions: Ensure Ava has necessary permissions

Best Practices

  1. Test Intents: Always test intent URIs before adding to automations
  2. Use Delays: Add delays between multiple app launches
  3. Error Handling: Include fallback actions in automations
  4. Document URIs: Keep a list of working intent URIs
  5. Monitor Status: Use the status entity to verify execution
  6. Version Compatibility: Check app updates don't break intent URIs

Back to Home

Clone this wiki locally

AltStyle によって変換されたページ (->オリジナル) /