Smart home tests run on random events.

Homes aren’t random.

Introducing
HϵlionHA
Natural scenarios, run as tests in Home Assistant.
Home Assistant · Hϵlion
SETTINGS
Order
3-gram4-gram
Flavor
updown
Run Helion
INPUT · HISTORY
<ϕ, mode, home>
<light_bulb, switch, on>
<ϕ, time, evening>
OUTPUT · SCENARIO
<door_lock, lock, locked>
<motion_sensor, motion, detected>
<security_camera, image, take>
input_boolean.light_bulb
offon
input_boolean.door_lock
unlockedlocked
input_select.motion_sensor
not_detecteddetected
input_select.camera
idletake
EVENT BUS
call_service → door_lock.lock = locked
call_service → motion_sensor.motion = detected
call_service → security_camera.image = take
01 · CONFIGURE

Pick a model.

3-gram or 4-gram. Up for the most likely events, down for the least likely.

02 · CONTEXT

Set the history.

Input events tell Hϵlion what just happened in the home.

03 · EXECUTE

Run it as a test.

Each predicted token becomes a Home Assistant event on the Event Bus, driving real or virtual devices.

Realistic scenarios. Executable tests.

Learned from people

30,518 events from 273 routines written by 40 users.

Real or virtual

Scenarios drive physical devices or ones configured in the UI.

Open source

Hϵlion and its Home Assistant integration are on GitHub.

Helion: Enabling Natural Testing of Smart Homes

Prianka Mandal · Sunil Manandhar · Kaushal Kafle · Kevin Moran · Denys Poshyvanyk · Adwait Nadkarni
ESEC/FSE 2023 · ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering, Tool Demonstrations