Skip to content

Usage Guide

This guide helps you get the most out of your UltimateSensor Mini with Home Assistant, including monitoring, voice assistant, automations, and dashboard ideas.


Quick Start

After installation, these are the key entities you'll use most:

Environmental Monitoring

EntityUse Case
SCD41 CO2Monitor air quality, ventilation needs
SCD41 TemperatureClimate control, comfort monitoring
SCD41 HumidityHumidity alerts, HVAC control
BH1750 IlluminanceLight-based automations
VOC IndexAir quality monitoring

Presence Detection

EntityUse Case
OccupancyRoom occupied (anyone present)
Zone 1 OccupancySpecific area monitoring
Zone 1 Target CountCount people in zone

Voice & Audio

EntityUse Case
US Mini Media PlayerTTS announcements, alarms
Use wake wordVoice command activation
Front light / Back lightVisual feedback

Real-Time Monitoring

Viewing Sensor Data

  1. Open Home AssistantSettingsDevices & Services
  2. Find ESPHome integration
  3. Click on your UltimateSensor Mini device
  4. View all entities and their current values

Historical Data

To view trends over time:

  1. Navigate to History in Home Assistant
  2. Select the time period (hour, day, week, month)
  3. Choose the UltimateSensor Mini entities to display

Voice Assistant Setup

The UltimateSensor Mini has built-in voice assistant capabilities.

Basic Setup

  1. Configure Voice Assistant in Home Assistant

    • Go to Settings → Voice Assistants
    • Set up your preferred assistant (e.g., Home Assistant Cloud, local Whisper)
  2. Enable Wake Word

    • Find the Use wake word switch in Home Assistant
    • Turn it ON
  3. Configure Wake Word

    • In Home Assistant, configure your preferred wake word
    • The device will listen continuously when enabled

Voice LED Feedback

  • Red: Wake word detected, listening
  • Off: Processing voice command

Media Player Usage

The US Mini Media Player can be used for:

yaml
# Text-to-speech announcement
service: tts.speak
target:
  entity_id: media_player.us_mini_media_player
data:
  message: "Welcome home!"

# Play audio file
service: media_player.play_media
target:
  entity_id: media_player.us_mini_media_player
data:
  media_content_id: "https://example.com/sound.mp3"
  media_content_type: "music"

# Set volume
service: media_player.volume_set
target:
  entity_id: media_player.us_mini_media_player
data:
  volume_level: 0.5

👉 See the Voice Assistant Guide for detailed setup.


Placement Recommendations

Optimal Positioning

  • Height: 1-2 meters from the floor
  • Location: Central in the room, good line of sight
  • Voice: Position where voice commands can be heard clearly
  • mmWave: Front of device facing the area to monitor

Avoid These Placements

  • ❌ Direct sunlight (causes yellowing and inaccurate readings)
  • ❌ Near heat sources (radiators, electronics)
  • ❌ Near loud noise sources (affects voice recognition)
  • ❌ Behind furniture or obstructions
  • ❌ In enclosed spaces with poor airflow

Automation Examples

1. Ventilation Based on CO₂

yaml
automation:
  - alias: "Ventilate on High CO2"
    trigger:
      - platform: numeric_state
        entity_id: sensor.ultimatesensor_mini_scd41_co2
        above: 1000
        for:
          minutes: 5
    action:
      - service: switch.turn_on
        target:
          entity_id: switch.ventilation_fan
      - service: tts.speak
        target:
          entity_id: media_player.us_mini_media_player
        data:
          message: "CO2 levels are high. Ventilation started."

2. Welcome Home Announcement

yaml
automation:
  - alias: "Welcome Home"
    trigger:
      - platform: state
        entity_id: binary_sensor.ultimatesensor_mini_occupancy
        from: "off"
        to: "on"
    condition:
      - condition: state
        entity_id: input_boolean.away_mode
        state: "on"
    action:
      - service: input_boolean.turn_off
        target:
          entity_id: input_boolean.away_mode
      - service: tts.speak
        target:
          entity_id: media_player.us_mini_media_player
        data:
          message: "Welcome home!"

3. Lights On When Occupied

yaml
automation:
  - alias: "Lights on when occupied"
    trigger:
      - platform: state
        entity_id: binary_sensor.ultimatesensor_mini_occupancy
        to: "on"
    condition:
      - condition: numeric_state
        entity_id: sensor.ultimatesensor_mini_bh1750_illuminance
        below: 50
    action:
      - service: light.turn_on
        target:
          entity_id: light.living_room
        data:
          brightness_pct: 80

4. CO₂ LED Indicator

yaml
automation:
  - alias: "CO2 LED indicator"
    trigger:
      - platform: state
        entity_id: sensor.ultimatesensor_mini_scd41_co2
    action:
      - choose:
          - conditions:
              - condition: numeric_state
                entity_id: sensor.ultimatesensor_mini_scd41_co2
                below: 800
            sequence:
              - service: light.turn_on
                target:
                  entity_id: light.ultimatesensor_mini_front_light
                data:
                  rgb_color: [0, 255, 0]  # Green
          - conditions:
              - condition: numeric_state
                entity_id: sensor.ultimatesensor_mini_scd41_co2
                above: 800
                below: 1200
            sequence:
              - service: light.turn_on
                target:
                  entity_id: light.ultimatesensor_mini_front_light
                data:
                  rgb_color: [255, 165, 0]  # Orange
          - conditions:
              - condition: numeric_state
                entity_id: sensor.ultimatesensor_mini_scd41_co2
                above: 1200
            sequence:
              - service: light.turn_on
                target:
                  entity_id: light.ultimatesensor_mini_front_light
                data:
                  rgb_color: [255, 0, 0]  # Red

5. Alarm Sound

yaml
automation:
  - alias: "Security Alarm"
    trigger:
      - platform: state
        entity_id: binary_sensor.ultimatesensor_mini_occupancy
        to: "on"
    condition:
      - condition: state
        entity_id: alarm_control_panel.home
        state: "armed_away"
    action:
      - service: media_player.play_media
        target:
          entity_id: media_player.us_mini_media_player
        data:
          media_content_id: "https://smarthomeshop.io/products/ultimatesensor-mini/v1/audio/alarm.mp3"
          media_content_type: "music"

6. Temperature Alert

yaml
automation:
  - alias: "High Temperature Alert"
    trigger:
      - platform: numeric_state
        entity_id: sensor.ultimatesensor_mini_scd41_temperature
        above: 28
    action:
      - service: tts.speak
        target:
          entity_id: media_player.us_mini_media_player
        data:
          message: "Temperature is {{ states('sensor.ultimatesensor_mini_scd41_temperature') }} degrees"

7. Zone-Based Presence

yaml
automation:
  - alias: "Desk zone occupied"
    trigger:
      - platform: state
        entity_id: binary_sensor.ultimatesensor_mini_zone_1_occupancy
        to: "on"
    action:
      - service: light.turn_on
        target:
          entity_id: light.desk_lamp

Dashboard Ideas

Air Quality Card

yaml
type: entities
title: Air Quality
entities:
  - entity: sensor.ultimatesensor_mini_scd41_co2
    name: CO₂
  - entity: sensor.ultimatesensor_mini_voc_index
    name: VOC Index
  - entity: sensor.ultimatesensor_mini_nox_index
    name: NOx Index

Climate Card

yaml
type: glance
title: Room Climate
entities:
  - entity: sensor.ultimatesensor_mini_scd41_temperature
    name: Temperature
  - entity: sensor.ultimatesensor_mini_scd41_humidity
    name: Humidity
  - entity: sensor.ultimatesensor_mini_bh1750_illuminance
    name: Light

Presence Card

yaml
type: entities
title: Room Presence
entities:
  - entity: binary_sensor.ultimatesensor_mini_occupancy
    name: Room Occupied
  - entity: binary_sensor.ultimatesensor_mini_zone_1_occupancy
    name: Zone 1
  - entity: sensor.ultimatesensor_mini_zone_1_target_count
    name: People in Zone 1

Voice Assistant Card

yaml
type: entities
title: Voice Assistant
entities:
  - entity: switch.ultimatesensor_mini_use_wake_word
    name: Wake Word Active
  - entity: media_player.us_mini_media_player
    name: Media Player
  - entity: light.ultimatesensor_mini_front_light
    name: Front LED

CO₂ Gauge

yaml
type: gauge
entity: sensor.ultimatesensor_mini_scd41_co2
name: CO₂ Level
min: 400
max: 2000
severity:
  green: 400
  yellow: 800
  red: 1200

Zone Configuration

The UltimateSensor Mini supports 4 configurable detection zones for mmWave radar.

Understanding Zones

Each zone is a rectangular area defined by X and Y coordinates:

        Sensor (0,0)
           |
    -X <---+---> +X
           |
           v
          +Y (distance from sensor)

Example Zone Setup

Zone 1: Desk Area

  • Begin X: -1000 mm (1m left of center)
  • End X: 1000 mm (1m right of center)
  • Begin Y: 500 mm (0.5m from sensor)
  • End Y: 2000 mm (2m from sensor)

Configuring Zones

  1. In Home Assistant, find your UltimateSensor Mini device
  2. Look for Zone X Begin/End X/Y number entities
  3. Adjust values to match your room layout
  4. Test by walking through the area and checking Zone X Occupancy

LED Usage

Both LEDs can be used for visual feedback:

Status Indicator Example

yaml
automation:
  - alias: "Status LED"
    trigger:
      - platform: state
        entity_id: binary_sensor.ultimatesensor_mini_occupancy
    action:
      - choose:
          - conditions:
              - condition: state
                entity_id: binary_sensor.ultimatesensor_mini_occupancy
                state: "on"
            sequence:
              - service: light.turn_on
                target:
                  entity_id: light.ultimatesensor_mini_back_light
                data:
                  rgb_color: [0, 255, 0]
                  brightness: 50
          - conditions:
              - condition: state
                entity_id: binary_sensor.ultimatesensor_mini_occupancy
                state: "off"
            sequence:
              - service: light.turn_off
                target:
                  entity_id: light.ultimatesensor_mini_back_light

Calibration Reminder

For accurate readings:

  • CO₂: Allow 24+ hours for automatic baseline calibration (calibrates to 420 ppm)
  • Temperature: Built-in offset of -2.3°C, may need further adjustment
  • Humidity: Built-in offset of +3%, may need adjustment

👉 See the Calibration Guide for detailed instructions.


ESPHome Configuration

Adopting the Device

To customize your UltimateSensor Mini:

  1. Open ESPHome Dashboard in Home Assistant
  2. The device should appear as "Discovered"
  3. Click Adopt to add it to your ESPHome
  4. Edit the YAML configuration as needed
  5. Click Install to deploy changes via OTA

For easy updates, use the packages feature:

yaml
packages:
  smarthomeshop.ultimatesensor_mini: github://smarthomeshop/ultimatesensor-mini/ultimatesensor-mini-v1/ultimatesensor-mini-basic.yaml@main

Temperature Offset Example

If temperature still reads high:

yaml
sensor:
  - id: !extend my_scd41
    temperature:
      filters:
        - offset: -1.0  # Additional offset if needed

Common Use Cases

RoomKey EntitiesFeatures
Living RoomOccupancy, CO₂, LightLights, TTS announcements
BedroomCO₂, Temperature, VoiceSleep climate, wake alarms
OfficeZone occupancy, CO₂, VoiceDesk presence, meeting alerts
KitchenVOC, Temperature, VoiceCooking alerts, timers
HallwayOccupancy, VoiceWelcome announcements

Need Help?