ESP8266 into existing alarm DSC System

Hello Home Assistant Comunity.

I just want to re-open this topic because there are a few things that may help people like me who dont want to pay 100 dollars in a device that cost less than 10 dollars, specially for people from Latin America, that needs to pay the shipping cost and sometimes customs.

About my sistem it is a DSC PC1832 pannel with a DSC UA521 (RF Module where all sensors are detected)

In summary: lets discard some systems and the reason.
Envisalink: Too expensive, 129 bucks + shipping, also disvantages like it only works wired. (Ethernet)
AlarmDecoder: Too expesive. 120 bucks + shipping, also it is wired (Using serial RS232)
Coiaca: Too expensive. 100 bucks + shipping, It works over a cheap ESP8266. This would be a good proyect but the source code, firmwares are not available so is useless.

Konnected : This should be the best option, is cheap, free source, BUT… (yep there ia but here) This sistems works over a it-self wired sensors. On this case my system doesnt have any wired sensor, they are all wireless, the only way to read it is via the i2C bus, clock and data.

The idea is very simple, use a cheap ESP8266 module that supports 12v input, like a Wemos D1, or a NodeMCU with the base. (Already got one, just need a firmware)

And only do some wiring with the clock and data bus. Just like this example.

Now the big deal is what firmware use to make this work. For example Konnected maybe should not work because my system only have wireless sensor, about 25zones + 3 IR sensors also wireless.

Some libraries like https://github.com/taligentx/dscKeybusInterface seems to be very good because it supports many DSC systems fortunally also mine, BUT… its just a library with examples, not a full app, and what im looking for is a software for ESP8266 that:

1: support my system, show zones, arm and disam the alarm.
2: pre-compiled firmware, just easy, download, flash, plug and play.
3: support a basic web interfase, a virtual keypad, and basic setting like WIFI and MQTT (obviusly the idea is to use with home assistant )
4: Optional but would be great, an app for IOS/Android that support push notification in case that alarm start yelling inform you like the time and which sensor was triggered.

As i said before, Coiaca was the software that most adjust to this system and have great features but unfortunally firmware is not available and is not a free source code. So, hope you guys can help me to choose a good firmware, i dont know if you recomend or want to share some repositories and talk about your experience using it.

Thank you!

2 Likes

You can try out my Esphome implementation here. This is what I use with HomeAssistant. Works great.

I assume since you are posting on the Home Assistant forum, that this is what you use. ESPhome and HomeAsisstant will do everything you need.

7 Likes

Thank you @Dilbert66 i’ve never used ESPhome before because in case my home assistant server went down i can’t access to the device via direct http. (point to Tasmota, thats why i use it for all my switches)
Anyway im interested in try it, if it works nice for you. I know that ESPhome got a documentation, but im new to compile your firmware (also a reason that i’ve never used before). Do you know or have a guide step by step to how to compile?

Thank you, and i want to give this a chance. Also this will help to more people that would like to do the same.

1 Like

Here’s some reading on esphome. Esphome takes care of compiling everything once you install it.

1 Like

I’m running this. It has been rock solid and kudos to @Dilbert66 for updating his code to work with my DSC panel and accommodate my feature requests.

1 Like

Just a little question on how to use it.

1.- download, install and run ESPhome on my Home Assistant Supervisor.
2.- Start a new “node” called wherever i want (alarm_dsc)
3.- Copy and paste DscAlarm.yaml from your repository by editing the alarm_dcs.yaml file in the “nodes” list, also changing to my parameters, wifi, passwords, mqtt, etc…
4.- Compile the firmware and flash my ESP8266 device.
5.- Do the wiring and see the magic?

Just asking because it has a library and i dont know if it is nescesary add it. Its my first time using ESPhome

Yes, you need to also copy the dsckeybusinterface directory. It gets included by the yaml

Goddamnit every time you post this my tinkering senses get triggered. My wife will divorce me if I tell her I need to dive into the the alarm panel one more time to “make some adjustments.” As it is my kids barely recognize me because I spend so much time “looking at my computer.”

1 Like

Yeah i supposed that i should do it. Just to be sure, the dsckeybusinterface directory i have to place it in my esphome directory, right?

/usr/share/hassio/homeassistant/esphome/dscKeybusInterface

On my case im running Home Assistant on a Ubuntu 18.04 machine, so HA directory is:
/usr/share/hassio/homeassistant/

@PipeDeveloper yes, this should work - that’s what I did!
@Dilbert66 has done an amazing job on this project - I can’t thank him enough!
I set this up last night and the example YAML works perfectly (just delete away zones you don’t need).

I’m now working on how to enable the control of my alarm system via an “Alarm Panel”. I’m working through the GitHub example “Sample Home Assistant Template Alarm Control Panel configuration with simple services (defaults to partition 1)” and I will post back when I figure out how to get this going (maybe I can contribute some more steps to the guide when I succeed with it).

1 Like

Some projects plan to work on once I have control figured out:

  • Auto arm alarm when no phones are at home. Auto disarm when phones are on the property.
  • Flash lights when outside doors are left open at night
  • Turn off hallways lights when no motion is detected for x minutes
  • Silent alarms via mobile notifications

You can place it anywhere you want under the esphome directory. If you use a different path you would then need to change the yaml include accordingly
includes:
- dscKeybusInterface/

1 Like

I’m planning to add zone extender emulation to the program once I receive my emulator board and decode the protocol. This way, your esp8266 would also be able to add more hardware zones to your system.

I have done that with my corresponding Honeywell/Ademco Vista esphome custom component. I’m still finalizing some details but will publish that soon. It also uses an esp8266 to interface with the Honeywell system for full control.

What I’ve learned so far:

  • I made a mistake with my replacement variables… Without realizing, I was hard coding my node name vs using the variable systemName. To avoid this, create the new node with the system name you want to use. systemName must equal the node name.
  • I learned how to go into Developer Tools / Services (never had to use services before). I can arm the alarm by calling the services using this interface.
    *Making progress with the “Alarm Panel” GUI. Still learning more from the example “Sample Home Assistant Template Alarm Control Panel”

Thanks guys for all your help.

Finally i did some wiring and i implement it. I leave some pictures.
I dont know if pull up resistor values is necessary to use 10k, 15k or 33k, but its hard to get electronics components on my location, but it seems to works fine, zones are detected fine.

Finally i used four resistance of 15k ohm, one resistance of 1k ohm and one 2N2222A transistor, And looks like this.

Well its just temporal, i would like to change it in the future, something like a PCB, organized, solid and well made.

It was hard to recognize all the zones of my home, there are two zones “missing”

I think i should call ADT and ask if they got any documentation. Also i can see that my system got some issues of some sensors, low battery and RF retain (like if i open a windows, it says “open”, then i close the windows but it still says “open”, i checked on the KeyPad and it says “open”, so thats means that RF module retained the signal, and something happen on the sensor, low battery, wherever)

I see that this library is pretty solid and issues are related to my system hardware, so i will take some advantages during my contract with ADT to fix all issues before leave the service.

Thank you very much @Dilbert66, your work is awesome, and @generic for your comments.

Glad it works for you! As to the resistors. It is absolutely necessary to have voltage divider setup with a simalar ratio as this drops the 12 volt down to a safer value below 3.3 volts so you won’t fry your chip but the actual values are not critical, you can use whatever you have as long as you keep it at a few thousand ohms . You don’t want to go too low or you will pull too much current from the panel bus

1 Like

I’ve also got most of the zone expander working in my dev branch. Testing with different versions of DSC panels right now. With this change you will also be able to set up the esp8266 as a pc5108 and add multiple virtual zones to your panel. What that means is that you will be able to use any home assistant sensor/switch to act as a zone on your panel.

I have also added relay module emulation so that you can do the reverse and have your panel control things on your home assistant instance.

More toys to play with :slight_smile:

2 Likes

Will be trying this on my DSC alarm over the weekend. How virtual zones will be possible?

Zone emulation not ready yet for user testing. I have some fixes to apply. I will post when available.

Ok, yeah as i said it’s just temporal, i’ll change it in the future to the correct values.

Also I have found missing zones. I didn´t know but there is a hidden reed switch on the back of the siren outside. And one hidden magnetic on a old wardrobe i think for a safe-deposit box but we never ever got one hahaha.

Just one more question about the pannel and maybe would help to make a complete app for home assistant.

1.- In the beggining i described my system as wireless RF. It works pretty nice, no matter they are wired or wireless sensors, all zones are detected fine. There is something aditional that would help to have more safety systems, about the battery status of all wireless sensors (if it applies, obviusly)
This will help to know if there are RF sensors that are having issues, and let you know when you should change batteries.

If you press # on the keypad it shows all sensors with “low battery” i don’t know if there is more specific information, like voltage or “%”, but it’s ok, any kind of this information will help anyways. Specially for people that got IR sensors that are wireless, that’s more common to see.

2.- This is just a home assistant side, for lovelance, i would like to have a good card to access services like arm, disarm, stay_home. Like buttons and info entities.

Thank you!