Lights that know what you need before you reach for a switch

Circadian rhythm lighting that adapts to time of day, room occupancy, and your manual overrides.

What actually happens

Circadian Wake-Up

Lights gradually warm matching sunrise.

6:30 AM alarm

Sun elevation reaches wake threshold

somni_lights calculates

Circadian curve sets 2700K→4000K transition over 30 min

Gradual warm-up

Bedroom lights gently rise from 10% warm amber to 60% daylight

Under the hood(for the curious)

Uses sun_elevation curve from somni_lights natural_light.py with configurable transition duration

Nighttime Navigation

Safe lighting at minimal brightness.

2 AM motion detected

Hallway mmWave sensor triggers

Night profile activates

somni_lights selects 'night light' profile: 5% brightness, 2200K amber

Safe, gentle path

Hallway and bathroom lights at 5% warm amber — no sleep disruption

Under the hood(for the curious)

Activity profile 'night_light' selected based on time-of-day + occupancy state from somni_occupancy

Movie Mode

Lights dim when entertainment begins.

TV turns on

Media player entity state changes to 'playing'

Activity profile shifts

somni_lights detects media activity, applies 'relax' profile

Cinema atmosphere

Living room dims to 15%, shifts to 2200K warm. Adjacent rooms dim via spatial graph.

Under the hood(for the curious)

somni_spatial propagates dimming to adjacent rooms with 0.3 influence weight

Manual Override Respect

System respects your manual adjustments.

You flip a switch

Physical switch or app adjustment detected

Behavior mode shifts

somni_global BehaviorModeTracker marks room as 'manual' control

Automation pauses

Automatic adjustments pause for that room. Resumes after configurable timeout.

Under the hood(for the curious)

BehaviorModeTracker in somni_global tracks manual/timed/auto states per room entity

How they work together

somni_lights decides what each room needs. somni_spatial propagates those decisions to adjacent rooms through a Dijkstra-weighted room graph — so when you walk from the bedroom to the kitchen, lights warm ahead of you. somni_ml learns your patterns over time to pre-condition rooms before you arrive. And somni_homekit makes it all accessible from your phone or voice assistant.

Compatible hardware

Switches & Dimmers

  • Lutron Caseta
  • Lutron RA3
  • Shelly Dimmer
  • Inovelli

Bulbs

  • Philips Hue
  • LIFX
  • Nanoleaf Essentials

Sensors

  • Aqara FP2 mmWave
  • Philips Hue Motion
  • Shelly Motion

Ready to Get Started?

Tell us about your home and we'll call you within 1-2 business days. No pressure, no obligation.