SCOOPY · HOME ASSISTANT

See what Scoopy can do. Then copy it.

See the controls and sensors Scoopy exposes in Home Assistant, then copy a ready-made automation and change the entity names.

Not in Home Assistant yet? Finish setup first →

WHAT SCOOPY ADDS

Here’s what appears in Home Assistant.

Scoopy exposes simple controls and events you can use in dashboards and automations. The Presence version adds its mmWave sensors too.

CONTROLS

Control all three LEDs

Each PWM LED appears as its own light entity, so you can switch it on or off and choose the brightness directly from Home Assistant.

Scoopy controls in Home Assistant showing Left LED, Middle LED and Right LED
BUTTON EVENTS

One button, several presses

Button events report single, double and hold presses, ready to use as separate triggers in Home Assistant automations.

Scoopy button events in Home Assistant
LED OPTIONS

Choose brightness and effects

Open an LED entity to set its brightness or choose one of Scoopy’s built-in pulse, flash and alert effects.

Scoopy LED brightness control in Home Assistant
Scoopy LED effects menu in Home Assistant
SCOOPY + PRESENCE

Presence sensors appear automatically

On Scoopy + Presence you’ll see moving target, presence and still target sensors from the mmWave module. On a standard Scoopy without the radar, these sensor entities may show Unknown — that’s expected and they can simply be ignored.

Scoopy Presence sensors in Home Assistant showing moving, presence and still targets

BEFORE YOU COPY

Tell the examples which entities are yours.

Every blue field is editable. Enter a value once and every matching field — and every YAML example — updates automatically.

First, find any Scoopy Entity ID

In Home Assistant go to Settings → Devices & services, open your Scoopy, then pick an entity such as Button 1. Select the cog and copy the full Entity ID. Paste that whole ID into any blue Your Scoopy field below.

Home Assistant Scoopy Button 1 entity with the settings cog highlighted
Open a Scoopy entity such as Button 1, then select the highlighted cog.
Home Assistant entity settings with the Entity ID copy button highlighted
Copy the full Entity ID using the highlighted copy button.
Your area may be part of the ID. If a Scoopy called scoopy_test is assigned to the Study, Home Assistant may create an ID such as event.study_scoopy_test_button_1. That is normal. Paste the whole ID and this page strips the domain and Scoopy entity name to use study_scoopy_test in the examples.
Prefer Home Assistant's own pickers? You can also leave the blue fields blank, copy an example as-is, create a new automation in Home Assistant, paste it into Edit in YAML, then return to the visual editor and choose your lights, sensors, fans or blinds from Home Assistant's normal entity selectors.

WHAT SCOOPY EXPOSES

The bits you can automate.

BUTTONSevent.<device>_button_1event.<device>_button_2

Events: single, double, hold. Use Home Assistant's event.received trigger.

LEDSlight.<device>_left_ledlight.<device>_middle_ledlight.<device>_right_led

Individual dimmable LEDs with pulse, flash and alert effects.

LED PATTERNSlight.<device>_led_pattern

Controls coordinated effects across all three LEDs, including Circular Pulse. Turning an individual LED on stops the coordinated pattern first.

PRESENCE MODELbinary_sensor.<device>_presence

Turns on while Scoopy detects somebody in the room. Available on Scoopy with mmWave presence.

01 · START HERE

Try Scoopy's LEDs

Button 1 starts the Circular Pulse. Button 2 stops it.

YAML · Scoopy Circular Pulse
alias: Scoopy - Circular Pulse Demo
description: Button 1 starts the circular pulse, Button 2 stops it

triggers:
  # Scoopy Button 1 - single press
  - trigger: event.received
    target:
      entity_id: event.scoopy_xxxxxx_button_1
    options:
      event_type:
        - single
    id: pulse_on

  # Scoopy Button 2 - single press
  - trigger: event.received
    target:
      entity_id: event.scoopy_xxxxxx_button_2
    options:
      event_type:
        - single
    id: pulse_off

conditions: []

actions:
  - choose:
      # Button 1 -> start the coordinated Circular Pulse effect
      - conditions:
          - condition: trigger
            id: pulse_on
        sequence:
          - action: light.turn_on
            target:
              entity_id: light.scoopy_xxxxxx_led_pattern
            data:
              effect: Circular Pulse

      # Button 2 -> stop the pattern and turn the LEDs off
      - conditions:
          - condition: trigger
            id: pulse_off
        sequence:
          - action: light.turn_off
            target:
              entity_id: light.scoopy_xxxxxx_led_pattern

mode: restart

02 · BUTTON

Press a button to turn on a light

Press Button 1 to turn a light on. Press it again to turn the same light off.

YAML · Toggle a light
alias: Scoopy - Button 1 Toggle Light
description: Button 1 toggles a Home Assistant light on and off

triggers:
  # Scoopy Button 1 - single press
  - trigger: event.received
    target:
      entity_id: event.scoopy_xxxxxx_button_1
    options:
      event_type:
        - single

conditions: []

actions:
  # Works with Hue or any other light exposed to Home Assistant
  - action: light.toggle
    target:
      entity_id: light.your_light

mode: restart

03 · PRESENCE

Turn the room light on when you're there

Presence turns the light on immediately. Leave the room for 5 seconds and it turns off.

Increase the 5-second delay in the YAML if you want a slower switch-off.

YAML · Presence lighting
alias: Scoopy - Presence Controlled Light
description: Presence turns the light on, 5 seconds with no presence turns it off

triggers:
  # Someone is detected -> turn the light on
  - trigger: state
    entity_id: binary_sensor.scoopy_xxxxxx_presence
    from: "off"
    to: "on"
    id: presence_on

  # Nobody detected for 5 seconds -> turn the light off
  - trigger: state
    entity_id: binary_sensor.scoopy_xxxxxx_presence
    from: "on"
    to: "off"
    for:
      seconds: 5
    id: presence_off

conditions: []

actions:
  - choose:
      - conditions:
          - condition: trigger
            id: presence_on
        sequence:
          - action: light.turn_on
            target:
              entity_id: light.your_light

      - conditions:
          - condition: trigger
            id: presence_off
        sequence:
          - action: light.turn_off
            target:
              entity_id: light.your_light

mode: restart

04 · ADVANCED

Make the lights softer at night

If the light is off, Button 1 turns it on at 100% during the day or 25% from 9pm to 7am. If the light is already on, Button 1 turns it off.

Change the times and brightness percentages in the YAML to suit your room.

YAML · Time-aware button
alias: Scoopy - Time Aware Light Button
description: Button 1 toggles a light, using a dimmer brightness at night

triggers:
  # Scoopy Button 1 - single press
  - trigger: event.received
    target:
      entity_id: event.scoopy_xxxxxx_button_1
    options:
      event_type:
        - single

conditions: []

actions:
  - choose:
      # If the light is already on, turn it off
      - conditions:
          - condition: state
            entity_id: light.your_light
            state: "on"
        sequence:
          - action: light.turn_off
            target:
              entity_id: light.your_light

      # If it is 9pm-7am, turn it on dimly
      - conditions:
          - condition: or
            conditions:
              - condition: time
                after: "21:00:00"
              - condition: time
                before: "07:00:00"
        sequence:
          - action: light.turn_on
            target:
              entity_id: light.your_light
            data:
              brightness_pct: 25

    # Otherwise it is daytime -> turn it on at full brightness
    default:
      - action: light.turn_on
        target:
          entity_id: light.your_light
        data:
          brightness_pct: 100

mode: restart

05 · STATUS

Remind me if the alarm isn’t set

At 10pm, if your alarm is still disarmed, Scoopy starts a gentle Heartbeat pattern. Arm the alarm and the reminder stops.

Adjust the reminder start/end times in the YAML if you want different hours.

YAML · Alarm reminder
alias: Scoopy - Alarm Reminder
description: Heartbeat at night while the alarm is disarmed

triggers:
  # Check automatically at 10pm
  - trigger: time
    at: "22:00:00"
    id: reminder_start

  # Re-check whenever the alarm state changes
  - trigger: state
    entity_id: alarm_control_panel.your_alarm
    id: alarm_changed

  # Stop any reminder at 5am
  - trigger: time
    at: "05:00:00"
    id: reminder_end

conditions: []

actions:
  - choose:
      # During reminder hours, show Heartbeat while the alarm is disarmed
      - conditions:
          - condition: state
            entity_id: alarm_control_panel.your_alarm
            state: "disarmed"
          - condition: or
            conditions:
              - condition: time
                after: "22:00:00"
              - condition: time
                before: "05:00:00"
        sequence:
          - action: light.turn_on
            target:
              entity_id: light.scoopy_xxxxxx_led_pattern
            data:
              effect: Heartbeat

    # Alarm armed, or reminder hours finished -> stop the pattern
    default:
      - action: light.turn_off
        target:
          entity_id: light.scoopy_xxxxxx_led_pattern

mode: restart

06 · STATUS LED

Show me if something is still open

When a door, garage or other binary sensor is open, Scoopy’s middle red LED turns on. Close it and the LED turns off.

For most contact sensors, on means open.

YAML · Open door status
alias: Scoopy - Door Open Status
description: Red LED stays on while a door or other sensor is open

triggers:
  - trigger: state
    entity_id: binary_sensor.your_door
    id: door_changed

conditions: []

actions:
  - if:
      - condition: state
        entity_id: binary_sensor.your_door
        state: "on"
    then:
      - action: light.turn_on
        target:
          entity_id: light.scoopy_xxxxxx_middle_led
        data:
          brightness_pct: 100
    else:
      - action: light.turn_off
        target:
          entity_id: light.scoopy_xxxxxx_middle_led

mode: restart

07 · ADVANCED

Make each button do more

Button 1: press to toggle a fan, hold to open or close the blinds. Button 2: press for time-aware lighting, hold for full brightness.

The example uses 100%, 35% and 5% light levels; change those in the YAML if you want.

YAML · Whole room control
alias: Scoopy - Whole Room Controls
description: Fan, blinds and time-aware lighting controlled by Scoopy

triggers:
  # Button 1 - press -> fan
  - trigger: event.received
    target:
      entity_id: event.scoopy_xxxxxx_button_1
    options:
      event_type:
        - single
    id: fan_toggle

  # Button 1 - hold -> blinds
  - trigger: event.received
    target:
      entity_id: event.scoopy_xxxxxx_button_1
    options:
      event_type:
        - hold
    id: blinds_toggle

  # Button 2 - press -> time-aware light
  - trigger: event.received
    target:
      entity_id: event.scoopy_xxxxxx_button_2
    options:
      event_type:
        - single
    id: light_toggle

  # Button 2 - hold -> maximum brightness
  - trigger: event.received
    target:
      entity_id: event.scoopy_xxxxxx_button_2
    options:
      event_type:
        - hold
    id: light_full

conditions: []

actions:
  - choose:
      # Button 1 press -> toggle the fan
      - conditions:
          - condition: trigger
            id: fan_toggle
        sequence:
          - action: switch.toggle
            target:
              entity_id: switch.your_fan

      # Button 1 hold -> open closed blinds, otherwise close them
      - conditions:
          - condition: trigger
            id: blinds_toggle
        sequence:
          - if:
              - condition: template
                value_template: >
                  {{ state_attr('cover.your_blind', 'current_position') | int(0) == 0 }}
            then:
              - action: cover.open_cover
                target:
                  entity_id: cover.your_blind
            else:
              - action: cover.close_cover
                target:
                  entity_id: cover.your_blind

      # Button 2 press -> toggle the room light
      - conditions:
          - condition: trigger
            id: light_toggle
        sequence:
          - if:
              - condition: state
                entity_id: light.your_light
                state: "on"
            then:
              - action: light.turn_off
                target:
                  entity_id: light.your_light
                data:
                  transition: 1
            else:
              - choose:
                  # 5am-6:30pm -> bright
                  - conditions:
                      - condition: time
                        after: "05:00:00"
                        before: "18:30:00"
                    sequence:
                      - action: light.turn_on
                        target:
                          entity_id: light.your_light
                        data:
                          brightness_pct: 100
                          transition: 1

                  # 6:30pm-10pm -> softer
                  - conditions:
                      - condition: time
                        after: "18:30:00"
                        before: "22:00:00"
                    sequence:
                      - action: light.turn_on
                        target:
                          entity_id: light.your_light
                        data:
                          brightness_pct: 35
                          transition: 1

                  # 10pm-5am -> very dim
                  - conditions:
                      - condition: or
                        conditions:
                          - condition: time
                            after: "22:00:00"
                          - condition: time
                            before: "05:00:00"
                    sequence:
                      - action: light.turn_on
                        target:
                          entity_id: light.your_light
                        data:
                          brightness_pct: 5
                          transition: 1

      # Button 2 hold -> force full brightness
      - conditions:
          - condition: trigger
            id: light_full
        sequence:
          - action: light.turn_on
            target:
              entity_id: light.your_light
            data:
              brightness_pct: 100
              transition: 0.5

mode: restart

WANT TO CHANGE SOMETHING?

These examples are starting points.

Use single, double and hold presses for different jobs. Point the actions at lights, fans, blinds, scenes or anything else Home Assistant can control.

MOVING HOUSE? CHANGING WI-FI?

Factory reset Scoopy and start again.

You do not need to reflash anything. A factory reset clears Scoopy’s saved Wi-Fi details and returns it to setup mode using the two physical buttons.

01

Hold both buttons

Press and hold both physical buttons together for 10 seconds.

02

Watch for the warning

During the final part of the hold, the middle red LED flashes quickly to warn that a factory reset is about to happen.

03

Set it up again

Scoopy clears its Wi-Fi credentials, the red LED begins pulsing again, and the scoopy-XXXXXX setup network returns.

A SMALL TECHNICAL NOTE

Setup stays local.

Scoopy uses ESPHome’s local Wi-Fi setup flow. Your Wi-Fi details are sent directly to the Scoopy you are connected to — there is no Scoopy cloud account involved in onboarding.