Giving a 20-Year-Old BTicino Alarm System a Second Life with Home Assistant & MQTT

Hey everyone!

I wanted to share a recent project that highlights what I love most about Home Assistant: sustainability and bridging the gap between legacy hardware and modern smart homes.

If you live in Europe (especially Italy or Switzerland), you might be familiar with BTicino / Legrand MyHome systems. Back in the early 2000s, their SCS bus alarm systems—like the classic BTicino 3486 control panel—were top-of-the-line. However, after two decades, these systems feel isolated from modern ecosystems.

Instead of ripping out perfectly functional, rock-solid wired sensors (which would mean expensive re-cabling, waste, and buying dozens of Zigbee/Z-Wave battery devices), I decided to integrate the legacy system directly into Home Assistant using an IP/MQTT gateway (Sdomotica).

Here is a breakdown of how it works and how we solved the tricky issue of motion sensor states!

:classical_building: The Setup & Legacy Hardware

The original installation consists of:

  • Control Panel: BTicino 3486
  • Motion Sensors: BTicino 4610 flush-mount PIR sensors
  • Door/Window Contacts: BTicino 4612 contact interfaces

The goal was simple: expose every individual PIR and contact sensor to Home Assistant as native binary sensors so they can trigger modern automations (turning on smart lights, recording camera clips, or sending push notifications) without interfering with the security panel’s primary function.

:gear: The Technical Challenge: Handling Bus Events & State Debouncing

Wired alarm sensors on a proprietary bus often behave differently than modern smart PIRs:

  1. When a PIR (like the 4610) detects movement, it fires an immediate AUX bus event.
  2. However, the bus doesn’t always send a clean, timed “OFF” signal the moment motion stops, or it may send rapid consecutive triggers while someone is moving in the room.

If passed directly to Home Assistant, this results in flickering entities or sensors that stay stuck in an active state.

To solve this cleanly, we implemented a custom Leading Edge & Re-triggerable Trailing Edge Debounce logic right at the configuration level in Node.js / MQTT parsing.

:laptop: Configuration Example

Each AUX input from the BTicino bus can now be configured dynamically via a single JSON line at startup.

Here is how an IR sensor in the garage is defined:

JSON

{"type":"Aux", "name": "IR Garage", "address": "6", "debounce": 20000, "room": "Garage"}

How the Debounce Logic Works Under the Hood:

  • Instant Leading Edge (ON): The moment motion is detected (1), the gateway immediately sends ON to Home Assistant via MQTT. Your smart lights turn on with zero perceived latency.
  • Re-trigger Timer: A 20-second ($20000\text{ ms}$) timer starts. If new motion events (1) arrive while the timer is running, the countdown resets back to 20 seconds without spamming MQTT.
  • Auto-Reset (OFF): Incoming 0 signals during the active window are ignored. Once the area is clear and 20 seconds elapse without any new triggers, the gateway automatically publishes OFF to Home Assistant.
  • Flexibility: For contact sensors (like the 4612 window contacts), debounce is simply omitted or set to 0, ensuring instant OPEN/CLOSE state changes.

:bar_chart: Architecture & Flow

  1. Detection: BTicino 4610 PIR or 4612 Window Contact triggers on the SCS Bus.
  2. Processing: BTicino 3486 Panel processes the frame $\rightarrow$ Sdomotica Gateway intercepts the frame, parses the address, and evaluates the debounce state.
  3. MQTT Publishing: Sdomotica publishes clean states to topics like homeassistant/binary_sensor/aux/6/state.
  4. HA Automations: Home Assistant receives instant states to turn on lights, start camera recordings, or notify mobile devices.

:light_bulb: Why This Matters

  • Zero E-Waste: No need to throw away perfectly good hardware built to industrial standards.
  • Reliability: Hardwired sensors never suffer from dead batteries or Zigbee mesh dropouts.
  • Cost Effective: Integrating existing infrastructure costs a fraction of replacing 15–20 sensors across a multi-floor building.

It’s amazing to see a 20-year-old security system act as the backbone for a 2026 Home Assistant setup!

Have any of you integrated similar legacy wired systems (like SCS, KNX, or old RS485 alarm panels) into HA? I’d love to hear how you handled event parsing or debouncing!

979B8449-AEE3-4F2F-9B6B-7C0E07D0CF6B(2)