ESP8266 into existing alarm DSC System

Upgraded to latest HA, and now it works :face_with_raised_eyebrow:

Thanks anyway.

Dear fellas,

I’m trying to integrate esphome to my dsc alarm system, but cannot get trough this compiling error:

any suggestions?

Do you have an api: line in the yaml config?

i have commented out api lines from yaml, because any api key i put in was producing compile errors (Invalid key format, please check it’s using base64.).

Edit: Never mind, i adeed back api lines, copied new api key, and it compiled. no clue, what was the problem before(hidden character?).

Hello,
First of all, big kudos for developing the integration with DSC.
I bought and connected a Wemos D1 R32 board using the pins marked in the screenshot and receive an transmission LOG as below:

Is the transmission correct?

Yes the data traffic is good.

1 Like

Thank you for your reply.
I supposed that I have an transmission problem, but after your reply I was check all once again. Now I know that all traffic from zones 1-8 (from DSC PC1832 main board) is reported corretly.
Unfortunately I have no reports from zones 9-21 :frowning:
I have two zone extenders PC5108. Jumper setting on them are correct. First PC5108 ist set for lines 9-16 and the second for lines 17-24.
I have placed the appropriate entry in YAML, but I do not receive any traffic from these two PC5108 boards. Should I configure something more in dscalarm.yaml?

Do NOT set those expander addresses if you have real expanders installed. That option is designed to create emulated virtual expanders. Leave it at 0 for both. They will conflict.
Make sure your maxZones is also set according to your system.

1 Like

WoW :slight_smile:
Currently readings on all installed 21 lines (out of 24 possible to install) are working.
Thank you!

One more question:
-should I afraid those comments in yellow?

No. You can safely ignore those. Normal.

If anyone is interested I’ve added a new component called “web_keypad” based on the web_server component. It provides a virtual keypad for each partition of your alarm system via a web page. The page also provides all sensor statuses, ota uploads as usual. You can configure all buttons and keys using a config file. I’ve provided an example yaml file in my components directory. Just configure the yaml as usual for your system. There is an added section called web_keypad: for this new feature. The yaml is available here: GitHub - Dilbert66/esphome-components at keypad
You don’t need to configure anything by default. Just add the section as is also insuring that “web_keypad” is also listed in the external_components section above. All code and config files will be retrieved automatically from my repository and compiled in. You can modify the files to your liking after if needed.
What this accomplishes, is that you can now run this esphome component as a standalone system to provide a virtual keypad and monitor your panel without home assistant. You can disable the api and mqtt section if you want. You can also enable mqtt and use it with a non home assistant infrastructure and still have a virtual keypad. As usual, this program is still in development so bugs most likely still lurk around. I intend to add some end to end encryption (browser to esp) at some point.

Note: I should add that this is only recommended for ESP32 platforms. The ESP8266 is too limited in available ram.

2 Likes

@Dilbert66, I switched both of my ESPHome dscalarm devices (ESP32-S2 mini and WT32-ETH01) to the esphome-components@main branch last week. When I found the keypad branch, I tested but failed during compilation. It complains ‘disconnectKeybus’ is not a member of ‘esphome::alarm_panel’.

I noticed the content of file ‘dscAlarm.h’ was split into two files (dscAlarm.h and dscalarm.cpp) in the ‘keypad’ branch but remains unchanged in ‘main’ and ‘dev’ branch.

wkchick, I’ve corrected the compilation issue with the yaml. Yes, you are correct about the splitting of dscalarm.h into .h and .cpp files. That was necessary for it to work with the web-keypad component as it needs to use the class. I have not migrated those changes yet to dev or main as they still need to be tested.

Bingo, it works. The webpage is so nice! Great work and also thanks so much for your prompt response.

BTW, is the table below the keypad controlled by my yaml file? There are rows that is unique to my yaml, e.g. Uptime, WiFi Signal, IP Address, ESPHome version, Connected SSID etc.

Those are all the sensors detected. That part is the standard web-server component which displays what sensors your yaml has. I didnt change that.
The device info field comes from this section:
`

  • platform: debug
    device:
    name: “Device Info”
    `

After few days of attempting to connect to my DSC system (HS2016) i finally got to the point when i read every post in this topic, to find out that DSC Neo line is not supported :frowning: Thanks anyways, great project!! I have some extra NodeMCU_SMD1206 blank PCBs (i could also solder all the parts on in) if there is someone from Slovenia who would need them :slight_smile:

This is great!
I just ran your web_keypad and everything works (I can’t make the HA keyboard in lovelace to this day - maybe a short tutorial?)
However, I had to add the manual_ip section to the yaml, otherwise ESP would not “compile”.

wifi:
  ssid: xyz
  password: 1234

  manual_ip: 
    static_ip: 192.168.77.21
    gateway: 192.168.77.77
    subnet: 255.255.255.0

HINT: web_keypad is available in the browser window at the IP address of the programmed ESP32, so a fixed address makes things easier.

My web_keypad looks like on screen-shot below. How to turn debug window on?

maticm, Yes unfortunately the Neo uses a different encrypted protocol.

GrudmaNN, yes, this is still a work in progress. i see I need to style the keypad to flow to the middle like the status view. Surprised your system would not compile with the default wifi setup? I use dhcp so no issues. Anyhow, I can add a manual ip example also. To see the debug window, set option “log: true” in the web_keypad: section.

Note, you might see the odd reboot in the backend if using the web_keypad with the log window enabled. Those are due to the underlying ESPAsyncWebserver library that esphome uses. It’s a known issue with heap corruption at times. The restarts are short lasting but if you see a sensor being unavailable at times in home assistant, that will be the case. I’m looking at alternative web server libraries.

At some point, I will be looking into adding a Telegram component as well for alarm notification directly to Telegram without home assistant. Also intend on setting up a bot for receiving cmds. i have this working on Arduino but would like to see it on esphome.

Edit: centering has been corrected on keypad display component.

1 Like