DSC IT-100 integration — surfaces *who* armed the panel, trouble codes, and per-zone wireless battery, alongside AlarmDecoder

Hi all —

I've just published a custom integration for the DSC IT-100 serial interface (and the equivalent PC5401) used with DSC PowerSeries panels. It's built to complement AlarmDecoder, not replace it.

AlarmDecoder already nails the hard part — zones, partitions, arm/disarm state, and the alarm_control_panel entity that drives your automations. What it doesn't expose is who armed the panel, what the panel is troubleshooting, or which events it just emitted. The IT-100 module reports all of that natively, and this integration surfaces it as first-class HA entities.

What you get:

  • 15 trouble / diagnostic binary sensors — AC, battery, bell circuit, phone line, failure-to-communicate, tamper, keybus fault (896/897), and more. Each maps to a specific DSC trouble code the panel raises and clears, so they reflect the panel's own self-diagnostics.

  • User-attribution sensors — Last User (mapped from a code→name table you supply, e.g. "Angela"), Last Action (armed/disarmed/duress/…), Last Arm Mode (away/stay/…), and a latching Duress Alarm binary sensor.

  • Per-zone wireless battery sensors (optional) — when linked to AlarmDecoder, one battery sensor per wireless zone, driven by DSC 821/822. You can tag each zone's model (e.g. WS4945) so Battery Notes picks the right battery type.

  • Diagnostic sensors — Last Event, Last Event Code, Last Error, and a Recent Events ring buffer (last 50 events in an attribute — great for debugging arming failures without the history DB).

  • Servicesset_clock (daily clock sync so event timestamps stay correct through DST), send_command (raw DSC API command, checksum handled for you), and clear_duress.

Connection options: local USB serial, rfc2217:// network proxy (ser2net on a Pi), or esphome:// serial proxy on an ESPHome device. It's local_push — no polling.

Requirements: Home Assistant 2026.5+, a DSC IT-100 or PC5401 board, and (optional but recommended) AlarmDecoder set up first so you can link to it. Works with PC1864 / PC1832 / PC5020 and friends — it speaks the IT-100 protocol, not a specific panel.

Install (HACS custom repository):

  1. HACS → Integrations → ⋮ → Custom repositories

  2. Add https://github.com/CityDweller/dsc_it100 as an Integration

  3. Install DSC IT-100, restart HA, then add it via Settings → Devices & Services.

Manual install instructions, full entity tables, suggested automations, and an FAQ are in the README:

GitHub - CityDweller/dsc_it100: Home Assistant integration for the DSC IT-100 / PC5401 serial interface. Complements the AlarmDecoder integration with user attribution, duress alarm, trouble sensors, and per-zone wireless battery sensors. · GitHub

MIT licensed. Protocol logic was ported from the Misterhouse DSC5401.pm module (credit in the README). Feedback, issues, and PRs welcome — this is early, and I'd love to hear how it behaves on panels other than mine.