Nice implementation!
This is nice, did you publish the PCB somewhere? or are you selling any?
I’ve uploaded the PCB files here: Files | DSC Neo Alarm Integration for Home Assistant | Hackaday.io
Reading this gave me some inspiration and I figured out how to communicate with the TL280 locally with the AES cipher. I’m far from a fully functional solution, but having solved the AES problem is a big step in the right direction. If anyone else wants to help, I would appreciate it.
https://github.com/BrianHumlicek/DSC-TLink
Brian Humlicek
Great start BrianHumlicek. I don’t have a neo to test with but would love to integrate it with my project to enhance it’s Dsc support. GitHub - Dilbert66/esphome-dsckeybus: Esphome custom configuration for interfacing to a DSC POWERSERIES alarm system
Is this only possible programmatically? Or will I have to reprint the board? )
This is excellent to hear! I was about to replace my DSC Neo with a Qolsys so that I could connect to it with Home Assistant, but I’ll hold off if there’s a chance that I can connect it with this once you’re further along.
I would like to give the DSC Neo one last try before I replace it completely. I have got one piece of HSM2208 output module lying around. I am searching for a piece of hardware to connect it to Home Assistant with minimum hassle. I would prefer some solution that would allow me to avoid designing and assembling a custom PCB, as my knowledge of electronics is unfortunately very rusty.
I investigated Kincony KC868-A16 module. It works really great with HA (ESP Home firmware), and it has 16 digital inputs with optocouplers. It has even Ethernet connector. Unfortunately the HSM2208 has open-collector outputs, and from my understanding KC868-A16 is not a perfect match for it, as it does not support separate external voltage for its optocouplers.
(maybe I can try cutting the paths on the KC868 board and soldering a connector for external voltage but it’s out of my comfort zone to later put it into my switchboard)
Anyone can suggest decent hardware to try HSM2208 with?
Hi, Tyco provides this Interactive SDK that might be useful, I’m developing a small integration with it and I’m able to communicate with the TL280 and perform actions on the Alarm Panel, if I can contribute with any network capturing let me now
Hi Angel,
I looked at the SDK link today - cool find. I have some questions:
- All files seem to be provided for Microsoft Visual Studio. There’s Linux version but it’s also provided with .vcproj file. Are you using Windows VS to build the project?
- The Application.h file contains a placeholder to insert license code (APP_ITV2_FEATURE_LICENSES). Are you able to obtain any results without the license code?
I haven’t really touched C++ since 2008 but my understanding is that the encryption logic and message formats are hidden within static libInteractiveSDK.a file, so I guess this file must be placed as-is within the integration code and called directly from HA Python code, unless someone is able to disassemble the .a file. Also the license placeholder might mean that such integration won’t be legal, even if it’s technically feasible.
FYI there’s now some activity on the DSC-TLink GitHub repo. They’re now able to authenticate against a TL-280, which was previously the biggest blocker to any progress on this.
I also shared the link to the Tyco SDK there, perhaps that will assist now that the auth problem has been solved.
I know it’s been a while but I was looking into get my Neo system into HA. I also got the TL280 and when the Neo app was discontinued, I started to use ConnectAlarm (dsc.com) app, which works fine.
Just an idea, wouldn’t it be possible to use this service in HA? I cannot find any integrations to it and do not have the skills to reverse engineer it. Any suggestions/somments?
Hi,
I went with the approach of using HSM2208 module and modifying Kincony KC868-A16 module. I decided to post it here, as it might be useful for someone - it requires very basic electronics/soldering skills.
Kincony KC868-A16 has 16 inputs with optoisolation. Unfortunately Kincony has not provided the ability to use separate input voltage for optocouplers - they are powered with onboard 12V. This makes it unusable for HSM2208, as it provides its own +12V voltage. Fortunately it’s easy to fix with just 3 simple changes:
- Cut 12V path on the top, next to E1 element (see photo above) - use sharp knife - I used tiny Swiss-army knife. Verify that connection is broken with a multimeter.
- Solder goldpin in the 12V hole - use standard 2.54mm goldpin.
- Remove L4 element completely - unfortunatelty this removes power from U21 element and breaks ADC.
Connecting HSM2208 to KC868:
After this is done please connect HSM2208 as follows:
- AUX+ - connect it to newly added goldpin on the KC868 board
- O1-O8 - connect them to P10 or P11 headers (D1-D16)
- RED, BLK, YEL, GRN, TMP - to alarm panel as per HCM2208 manual
If you order KC868-A16 with dedicated enclosure from Aliexpress you can semi-comfortably fit 1 or 2 HSM2208 modules inside it (see photo above).
Power usage:
Let’s assume +12V DSC bus voltage. Forward Voltage of LED inside optocoupler should be around 1.2V. Resistor in KC868 is 2.2k, so the current should be around 10.8/2200=5mA. That’s about 40mA for 8 activated HSM2208 outputs. You have to check if your alarm panel has enough current to spare.
Programming KC868:
You can program KC868 using USB cable and any standard ESPHome programming method. I’m using the following YAML (remember to fill in encryption key and OTA password):
esphome:
name: kc868-a16
friendly_name: kc868-a16
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: ""
ota:
- platform: esphome
password: ""
# Example configuration entry for ESP32
i2c:
sda: 4
scl: 5
scan: true
id: bus_a
# Example configuration entry
ethernet:
type: LAN8720
mdc_pin: GPIO23
mdio_pin: GPIO18
clk_mode: GPIO17_OUT
phy_addr: 0
pcf8574:
- id: 'pcf8574_hub_out_1' # for output channel 1-8
address: 0x24
- id: 'pcf8574_hub_out_2' # for output channel 9-16
address: 0x25
- id: 'pcf8574_hub_in_1' # for input channel 1-8
address: 0x21
- id: 'pcf8574_hub_in_2' # for input channel 9-16
address: 0x22
switch:
- platform: gpio
name: "light1"
pin:
pcf8574: pcf8574_hub_out_1
number: 0
mode: OUTPUT
inverted: true
- platform: gpio
name: "light2"
pin:
pcf8574: pcf8574_hub_out_1
number: 1
mode: OUTPUT
inverted: true
- platform: gpio
name: "light3"
pin:
pcf8574: pcf8574_hub_out_1
number: 2
mode: OUTPUT
inverted: true
- platform: gpio
name: "light4"
pin:
pcf8574: pcf8574_hub_out_1
number: 3
mode: OUTPUT
inverted: true
- platform: gpio
name: "light5"
pin:
pcf8574: pcf8574_hub_out_1
number: 4
mode: OUTPUT
inverted: true
- platform: gpio
name: "light6"
pin:
pcf8574: pcf8574_hub_out_1
number: 5
mode: OUTPUT
inverted: true
- platform: gpio
name: "light7"
pin:
pcf8574: pcf8574_hub_out_1
number: 6
mode: OUTPUT
inverted: true
- platform: gpio
name: "light8"
pin:
pcf8574: pcf8574_hub_out_1
number: 7
mode: OUTPUT
inverted: true
- platform: gpio
name: "light9"
pin:
pcf8574: pcf8574_hub_out_2
number: 0
mode: OUTPUT
inverted: true
- platform: gpio
name: "light10"
pin:
pcf8574: pcf8574_hub_out_2
number: 1
mode: OUTPUT
inverted: true
- platform: gpio
name: "light11"
pin:
pcf8574: pcf8574_hub_out_2
number: 2
mode: OUTPUT
inverted: true
- platform: gpio
name: "light12"
pin:
pcf8574: pcf8574_hub_out_2
number: 3
mode: OUTPUT
inverted: true
- platform: gpio
name: "light13"
pin:
pcf8574: pcf8574_hub_out_2
number: 4
mode: OUTPUT
inverted: true
- platform: gpio
name: "light14"
pin:
pcf8574: pcf8574_hub_out_2
number: 5
mode: OUTPUT
inverted: true
- platform: gpio
name: "light15"
pin:
pcf8574: pcf8574_hub_out_2
number: 6
mode: OUTPUT
inverted: true
- platform: gpio
name: "light16"
pin:
pcf8574: pcf8574_hub_out_2
number: 7
mode: OUTPUT
inverted: true
binary_sensor:
- platform: gpio
name: "input1"
pin:
pcf8574: pcf8574_hub_in_1
number: 0
mode: INPUT
inverted: true
- platform: gpio
name: "input2"
pin:
pcf8574: pcf8574_hub_in_1
number: 1
mode: INPUT
inverted: true
- platform: gpio
name: "input3"
pin:
pcf8574: pcf8574_hub_in_1
number: 2
mode: INPUT
inverted: true
- platform: gpio
name: "input4"
pin:
pcf8574: pcf8574_hub_in_1
number: 3
mode: INPUT
inverted: true
- platform: gpio
name: "input5"
pin:
pcf8574: pcf8574_hub_in_1
number: 4
mode: INPUT
inverted: true
- platform: gpio
name: "input6"
pin:
pcf8574: pcf8574_hub_in_1
number: 5
mode: INPUT
inverted: true
- platform: gpio
name: "input7"
pin:
pcf8574: pcf8574_hub_in_1
number: 6
mode: INPUT
inverted: true
- platform: gpio
name: "input8"
pin:
pcf8574: pcf8574_hub_in_1
number: 7
mode: INPUT
inverted: true
- platform: gpio
name: "input9"
pin:
pcf8574: pcf8574_hub_in_2
number: 0
mode: INPUT
inverted: true
- platform: gpio
name: "input10"
pin:
pcf8574: pcf8574_hub_in_2
number: 1
mode: INPUT
inverted: true
- platform: gpio
name: "input11"
pin:
pcf8574: pcf8574_hub_in_2
number: 2
mode: INPUT
inverted: true
- platform: gpio
name: "input12"
pin:
pcf8574: pcf8574_hub_in_2
number: 3
mode: INPUT
inverted: true
- platform: gpio
name: "input13"
pin:
pcf8574: pcf8574_hub_in_2
number: 4
mode: INPUT
inverted: true
- platform: gpio
name: "input14"
pin:
pcf8574: pcf8574_hub_in_2
number: 5
mode: INPUT
inverted: true
- platform: gpio
name: "input15"
pin:
pcf8574: pcf8574_hub_in_2
number: 6
mode: INPUT
inverted: true
- platform: gpio
name: "input16"
pin:
pcf8574: pcf8574_hub_in_2
number: 7
mode: INPUT
inverted: true
ESP Home is a pleasure to use. Even if you have 0 embedded knowledge you should be able to succeed.
Adding HSM2208 to Alarm Panel:
Please follow official docs. Use docs compatible with your panel firmware version. I used 1.1 docs and they haven’t described additional “latching” option on PGMs and I wasted a lot of time on that.
Pros:
- Off the shelf components (KC868, HSM2208)
- Little soldering
- Independent of TL280/encryption bullshit
- Supports Ethernet
Cons:
- cost - depending on your location it can be 100-200$ for 2 HSM2208s and a KC868-A16
- still feels bad, because Ethernet TL280 should handle this
Good luck and let’s hope DSC goes bankrupt!
Hello everyone,
I’m looking to integrate my DSC Neo alarm system with Home Assistant. I understand that the encrypted data bus of the DSC Neo poses challenges for direct integration. I’ve come across projects where an ESP32 is used to emulate a virtual keypad by intercepting the keypad’s LCD data bus and simulating button presses to interact with the system.
However, these methods seem complex and require advanced knowledge in electronics and programming. I’m wondering if anyone has found a more straightforward solution or if there are any recent developments in this area. Ideally, I’d like to achieve this integration using an ESP32. Any advice or shared experiences would be greatly appreciated.
Thank you in advance!
Hey all, I am looking for a new alarm system that works with HA and was looking at the Neo until my installer sent me this about the Envsalink cards:
So if I understand this correctly using this card in universal mode means HA will only be able to control and see the arm and disarm functions and not the individual zones?
Thanks!
Stay away from the DSC NEO. It uses a proprietary protocol.
DSC has stopped selling the prior models (power series)
I was faced with the same problem for my new alarm system in the last 6 months. So after much work I selected a Honeywell system…
I’m using this custom integration:
It works really well. You can control the alarm, and see status of each zone.
The support from Envisalink is pretty good. It is a great little device for Home Assistant and the Honeywell alarm systems.
Alternatively, if you don’t want to buy an Envisalink board, you can use my alternate project to control a Honeywell Vista panel using an esp32 similar to the DSC project.
One more thing - for anyone thinking about using DSC Neo motion sensors for automations - they are terrible, don’t even bother. PIR sensors have a few seconds of delay before they report detection to alarm panel. It’s not huge, but enough to spoil user experience e.g. for controlling lights.
So question to this, anyone ever looked in to DSC PC-LINK? It has serial connections then to USB to PC, the program gives live info and control, not sure if that can be used but when we program it’s helpful. Works for the Neo’s too, might be able to use that?
Did you make any progress with this? You said you were able to perform actions on the panel. What actions are you able to perform?

