Scope: This doc covers front-of-garage soffit lighting only (above the three garage doors). The rear and side walls use a different architecture — full-cutoff wall packs driven by curtain PIRs — because their proximity to neighboring property requires zero light/detection over the property line. See Rear & Side Security Lighting.

As-Built Status

ComponentStatusDateNotes
3× recessed LED wafer lights, one above each garage door✅ Installed2026-04-17By SLS Electric
Light switch at entry door✅ Installed2026-04-17Single-pole toggle, controls all 3 soffit lights
Shelly 1PM Mini Gen 4 behind entry-door switch✅ Installed2026-04-22”Toggle” mode; HA-controllable via API
Front motion sensor (PIR)⏳ PlannedSee “Front Motion Sensor” section below

Goals (As-Built)

  • 3 recessed LED soffit lights above the garage doors, smart-controlled via existing Shelly + Home Assistant.
  • Motion-activated at night with timed shutoff, as well as HA-driven control (camera AI events, dashboard control, scenes).
  • Manual toggle at entry door always works locally as override, even if HA/Wi-Fi is down.

Front Motion Sensor

Decided 2026-05-02. A hardwired PIR adds an instant local trigger source for the soffit lights to:

  • Improve front camera image quality by lighting the area in day mode as someone enters the camera frame, rather than relying on each camera’s IR/night mode for the approach phase.
  • Add deterrence by reacting visibly to driveway/entry approach.
  • Provide a redundant trigger path to camera AI, so lights still respond if the AI server (CodeProject.AI / Deepstack) is down. See cross-reference to homelab project below.

Selected hardware

RAB STL360 SuperStealth outdoor motion sensor — 60 ft range, 360° downward + 180° forward detection, photocell built-in, surge-protected, 1000W incandescent rating (overkill for our LED load, which is what we want — high-quality switching for low duty-cycle use).

  • Color: Bronze (matches existing soffit fixtures)
  • Mount: Center of front soffit between garage doors 1 and 2 — covers full driveway approach in a single field
  • Price: $122–133 (Amazon/Destination Lighting)
  • Datasheet: RAB STL360 product page

✅ DECIDED Architecture

The PIR does NOT wire in parallel with the toggle switch on the existing Shelly’s SW input.

That approach was considered and rejected because:

  • The existing Shelly is in toggle mode to allow HA to override the relay state independently of the toggle switch’s resting position.
  • In toggle mode, the relay responds to edges on SW input. The toggle switch’s resting position (after HA flips the relay) is effectively random.
  • A PIR wired in parallel produces ambiguous behavior: depending on the toggle’s accidental resting position, a PIR firing either does nothing (toggle already at hot) or fires a pair of edges (rising on motion start, falling on hold-time expiry) that toggle the relay twice — undoing whatever HA had set.

Instead, the PIR routes back to the LV control cabinet on its own input, where HA orchestrates all trigger sources for the soffit relay.

Wiring topology

                                            ┌── PIR (RAB STL360, soffit center)
                                            │
                                            │   22/4 shielded cable
                                            │   (~30 ft, via smurf tube)
                                            ▼
LV CABINET (existing, see Rear & Side doc):
  ┌──────────────────────────────────────────────────────────┐
  │                                                          │
  │  HDR-15-12 ──────────────────────────────────────┐       │
  │  Shelly Pro 4PM (4 inputs, all used by BXS-AMs)  │       │
  │  Shelly Plus i4 (NEW — for front PIR + future)   │       │
  │     ├── Input 1: Front PIR (NO contact via STL360 load)  │
  │     ├── Input 2: reserved                                │
  │     ├── Input 3: reserved                                │
  │     └── Input 4: reserved                                │
  │                                                          │
  └──────────────────────────────────────────────────────────┘
                             │
                             │  Wi-Fi / MQTT to HA
                             ▼
                       ┌───────────────────┐
                       │   Home Assistant  │
                       │                   │
                       │  Inputs (entities):
                       │   • binary_sensor.front_pir
                       │   • binary_sensor.toggle_state (existing Shelly 1PM SW)
                       │   • Reolink doorbell person/vehicle events
                       │   • Amcrest IP8M AI events (via Blue Iris)
                       │   • CodeProject.AI events (via Blue Iris)
                       │                   │
                       │  Output:          │
                       │   • switch.front_soffit
                       │     (controls Shelly 1PM Mini relay via API)
                       │                   │
                       └───────────────────┘
                             │
                             │  HA API call to Shelly 1PM Mini Gen 4
                             ▼
                       Shelly 1PM Mini Gen 4 (existing, behind entry-door toggle)
                             │
                             ▼
                       3× soffit lights (existing)

The toggle switch on the entry-door wall continues to work locally via the existing Shelly’s toggle mode — that is unchanged. HA simply gains a new trigger source (the PIR) for the same relay.

Why two devices instead of one multi-input Shelly

A reasonable alternative is a single Shelly with multiple SW inputs (e.g., Shelly Plus 2PM, 2 inputs + 2 relays) hosting both the toggle and the PIR locally. That option was considered and not chosen, for two reasons:

  1. The goal is already met by the current plan. The existing Shelly 1PM Mini Gen 4 publishes its SW input state to HA as an independent binary_sensor entity automatically — even in toggle mode where the input also drives the relay locally. So HA already sees the toggle state as its own entity. Adding the Shelly Plus i4 in the LV cabinet for the PIR gives HA three fully decoupled entities — binary_sensor.front_toggle, binary_sensor.front_pir, and switch.front_soffit — which is logically equivalent to what a single 2-input Shelly would expose. The two-device topology is only a physical/install detail, not a functional difference in HA.
  2. Physical layout favors the LV-cabinet route. The toggle is at the entry-door switch box; the PIR is at the front-soffit center. Smurf tubes converge at the LV cabinet. Routing the PIR signal back to the LV cabinet matches the existing low-voltage infrastructure pattern. Consolidating to one Plus 2PM at the entry door would require a different cable path (soffit → entry-door switch box rather than soffit → LV cabinet) and would also mean replacing an already-installed Mini Gen 4 with a physically larger device that may not fit cleanly in the existing single-gang box.

The Plus i4 in the LV cabinet also has a third benefit: 3 of its 4 inputs remain reserved for future sensors anywhere a smurf tube reaches. A Plus 2PM at the entry door would use both inputs immediately and offer no expansion headroom.

HA entity reference

Once installed, the front-soffit subsystem exposes:

EntitySource devicePurpose
binary_sensor.front_toggle (or similar — actual name set on commission)Existing Shelly 1PM Mini Gen 4 — SW inputReflects entry-door toggle state. Available today; doesn’t depend on the front-PIR install.
binary_sensor.front_pirNew Shelly Plus i4 in LV cabinet — input 1Reflects STL360 motion state.
switch.front_soffitExisting Shelly 1PM Mini Gen 4 — relayThe actual lights. Controllable by HA via API (camera AI, automations, dashboard) and by the toggle switch’s local edge logic.

HA orchestration (in homelab) combines all three with camera AI events to drive the relay.

STL360 wiring at the soffit

The STL360 is a 120V-switching device — it has L/N/Load-out terminals. To use it as a “trigger source” feeding a low-voltage signal back to the LV cabinet, we use it as if it were driving a load, but the “load” is just the signaling pair:

                ┌─ L (from front soffit circuit, available at soffit junction box)
                │
                ▼
       ┌─────────────────┐
       │ RAB STL360      │
       │  L (in) ◄───────┤
       │                 │
       │  N ◄────────────┼─ N
       │                 │
       │  Load (out) ────┼─▶ to one conductor of 22/4
       └─────────────────┘
                            │
                            └─▶ runs ~30 ft via smurf tube
                                 to the LV cabinet's
                                 Shelly Plus i4 input

       (When PIR triggers, Load output goes to L = 120V on the signal wire.
        Shelly Plus i4 input detects the voltage and reports state change to HA.
        When PIR releases, Load output opens, signal wire goes low, HA notified.)

The 22/4 cable provides plenty of conductors; the second conductor returns to the cabinet’s neutral, the third/fourth are reserved for future devices at the same soffit location.

HA automation (lives in homelab project)

The actual HA automation logic — combining PIR + Reolink + Amcrest AI + dashboard + sun condition into the soffit relay control — belongs in the homelab repo where camera/AI infrastructure is documented.

homelab cross-reference: Add a Front Soffit Motion Lighting automation to homelab/Garage/Garage Smart Automation Plan.md covering: (1) trigger sources (binary_sensor.front_pir, Reolink/Amcrest AI events, doorbell press), (2) sun-below-horizon condition, (3) timeout (~3 minutes after last trigger), (4) toggle precedence rules.

Bill of Materials — Front Motion Sensor Addition

ItemQtyUnitTotalSource
RAB STL360 SuperStealth (Bronze)1$122–133$130Amazon or Destination Lighting
Shelly Plus i4 (4 dry-contact inputs, DIN-rail or in-cabinet)1$25$25shelly.com or Amazon
22/4 shielded alarm cable (~30 ft, soffit → LV cabinet)$10Same spool as rear/side install
Weatherproof 4×4 outdoor junction box for STL360 mount1$8$8Home Depot
Misc — strain reliefs, sealant, screws, ferrules$10Home Depot
TOTAL — front motion sensor addition~$183

No new circuit needed. The existing front soffit circuit feeds the STL360’s L/N at the soffit junction box; the 22/4 signal cable carries the trigger back to the LV cabinet via smurf tubes.

Combined Soffit + Motion Action Items

Already complete

  • Install soffit fixtures (3 wafer lights) — ✅ 2026-04-17 by SLS Electric
  • Install entry-door light switch with neutral in box — ✅ 2026-04-17 by SLS Electric
  • Install Shelly 1PM Mini Gen 4 behind switch in toggle mode — ✅ 2026-04-22

Procurement (stage 5)

Pre-drywall rough-in (stage 3)

  • Pull 22/4 shielded alarm cable from front-soffit-center junction box to LV cabinet via smurf tube. — stage:: 3

Install & commission (stage 6)

  • Mount STL360 at center of front soffit between garage doors 1 and 2 (weatherproof 4×4 box). — stage:: 6
  • Wire STL360 L/N to soffit circuit; Load-out to one conductor of the 22/4. — stage:: 6
  • Land 22/4 in LV cabinet; signal conductor → Shelly Plus i4 input 1; common conductor → cabinet neutral bus. — stage:: 6
  • Add Shelly Plus i4 to Home Assistant; create binary_sensor.front_pir entity. — stage:: 6
  • Build HA automation in homelab project: combine PIR + Reolink + Amcrest AI + doorbell + dashboard into front-soffit relay control. — stage:: 6
  • Tune STL360 hold time and photocell settings; verify night-only behavior over first week. — stage:: 6

References