Skip to content

Prerequisites

Before setting up persistent timers, ensure your environment meets these requirements.

Home Assistant

Version

  • Home Assistant 2024.1.0 or newer
  • Recommended: Latest stable release

Required Components

  • Assist pipeline configured and working
  • ESPHome integration installed
  • Areas configured for each voice assistant location

Area Setup

Each voice assistant device must be assigned to an area. The area ID becomes the basis for all entity names.

  1. Go to Settings → Devices & Services → ESPHome
  2. Select your voice assistant device
  3. Click Device info
  4. Assign to an area (e.g., "Kitchen", "Bedroom", "Playroom")

Important: Area IDs are lowercase with underscores. "My Bedroom" becomes my_bedroom.

Naming Conventions

For this system to work, entity names must follow this pattern:

Component Pattern Example
Timer timer.<area_id> timer.kitchen
Remaining Sensor sensor.<area_id>_timer_remaining_seconds sensor.kitchen_timer_remaining_seconds
State Helper input_text.<area_id>_timer_previous_state input_text.kitchen_timer_previous_state
Ringing Switch switch.<area_id>_voice_assistant_timer_ringing switch.kitchen_voice_assistant_timer_ringing

Satellite Devices

ESPHome Version

  • ESPHome 2025.5.0 or newer
  • ESP-IDF framework required for ESP32-S3 devices

Device Requirements

Network

WiFi

  • Stable 2.4GHz WiFi connection
  • Device must reach Home Assistant API
  • Recommended: Static IP or DHCP reservation

API Connection

  • ESPHome API must be enabled (default)
  • API encryption recommended for security

File Structure

Your Home Assistant config directory should support these files:

config/
├── configuration.yaml      # Main config (add includes)
├── timer_entities.yaml     # Timer definitions
├── templates.yaml          # Sensor templates
├── input_text_helpers.yaml # State helpers
├── intent_scripts.yaml     # Voice command routing
├── automations.yaml        # Timer event automations
└── custom_sentences/
    └── en/
        ├── local_timer_overrides.yaml
        └── cross_device_timers.yaml

Verification Checklist

Before proceeding to installation:

  • Home Assistant is running and accessible
  • ESPHome integration is installed
  • Voice assistant device is connected to HA
  • Device is assigned to an area
  • Assist pipeline is configured
  • You can say "What time is it?" and get a response
  • You have file access to HA config directory

Common Issues

"Device not assigned to an area"

The preferred_area_id variable won't be set if the device isn't in an area.

Fix: Assign the device to an area in Home Assistant.

"Entity not found"

Entity names must match exactly. Check for:

  • Correct area ID spelling
  • Underscores instead of spaces
  • Lowercase letters

"Timers not supported on this device"

The satellite device config needs voice_assistant timer event stubs.

Fix: Add the timer event handlers (see Installation guide).

Next Steps

Once prerequisites are met, proceed to Installation.