ESP8266 into existing alarm DSC System

Ah yes, it’s a bug . You can either get the updated yaml or just remove the alarm_panel:: suffix from line 464 in the yaml. I’ve updated the repository with the fix.

Go it. But both panels are still not showing any data.
I tried to see if I have any javascript loading errors but nothing shows up.
Any clues?
Js file and resources are ok.

Make sure that the fields you use in the card lovelace configuration match what you have setup in your esphome yaml. If using the dev branch,use the lovelace config from dev since the example field names differ. You can double check what is set in HA by doing a search for the services in the developer section of HA.

Ok got it. The entities get created like this binary_sensor.dsc_alarm_ac_status whereas the panel yaml contains this binary_sensor.dscalarm_ac_status.
There is an underscore _ in the entity ID.
Thanks.

Hi Alain,

I’m uncertain whether this is a coincidence or if something actually occurred, as everything was functioning well for a few weeks. However, I’ve noticed that the partition status briefly shows ‘not_ready’ again for a few days when disarming, which shouldn’t normally happen between ‘armed_home’ and ‘disarmed’.

image

At the same time a see this as partition status message:

image

Edit: I need to add, that it’s not happening every time. This wasn’t the case today, when the status went straight from armed_home to disarmed and didn’t have the invalid BF code in as a partition message.

Do you know why is this occurring?

There is no way for me to know unless I see logs. Please post esphome logs during disarming so we can see what is going on. It could be it gets input during a disarm sequence, etc. Hard to know. I can’t duplicate it.

@Dilbert66 not sure if its ok to post about taligentx classic panel implementation here. I’ve been working through some compile errors through the ESPhome app with his code. Not sure which files from src/ in his repository I need and which to omit (seems like i’m getting lots of redefinition of variable erros, among others.)

Any guidance on which .cpp and .h files I need in the esphome/dscKeybusInterface directory and any modifications I need to make to get it working on my classic pc3000 panel?

Thanks

The taligent code is not for use with the ESPHOME implementation since it’s designed to be programmed with the Arduino IDE. Do not mix code from my repository with his. It will not work. Only use the code from his site. I can’t assist with that setup as I don’t use it and this is not the place for it as it’s not an ESHome project. You should ask on his site.

Hi Alain. How do you make use of the accesscode in the current version (dev). I see a variable in the yaml file. I did put my code but I still get a message asking for the passcode when I click Night for example. I would like to be able to use that without entering a code. Is that something supported?
I am not using the small numeric panel. I am using the javascript one.

You need to send the “N” cmd if using the service or keypad, not *9". This will it will get the correct cmd from the panel to send the stored access code. I have to check as to why the *9 cmd itself is not working . It’s been a while since I worked on that.

Sorry for the late reply. I use the NIGHT button for example or the STAY button. Both require passcode and do not use the password variable.
One more thing: what would be the entity which can be used to send a notification if the alarm goes off?

Can you check your card config to make sure that it is sending the “N” cmd for the night button and “S” for the stay button. With those it should automatically send the passcode from the yaml variable. The field with id code: “al_1” is the one that turns on if the alarm goes off. (alarm for partition 1).

FYI, i’ve done an update on the code that now uses the object_id to identify the field type. ie zone , alarm, sensor. etc. Internally, this simplifies things as well as reduces ram use. On HA, it simplifies the field ids. What this means is that it will break your lovelace config for your keypad card. You need to change the values of the sensors used. The format is <sensor type>.<device name>_<id_code>. For example the line1 text sensor would be. sensor.dscalarm_ln1_1. eg:

disp_line1: sensor.dscalarm_ln1_1
disp_line2: sensor.dscalarm_ln2_1

sensor_A: binary_sensor.dscalarm_rdy_1
sensor_B: binary_sensor.dscalarm_arm_1
sensor_C: binary_sensor.dscalarm_tr
sensor_D: binary_sensor.dscalarm_ac

Thanks for the answers and the update. Will test all this and report back.
Another question for you :slight_smile:
Can I use a reed sensor (garage door opened input sensor using a separate esp32 device in the garage) to trigger the dsc alarm in an automation? Or I will have to physically wire a reed sensor to the alarm box?

Yes, you can trigger a simulated zone from HA or anywhere. That’s what the virtual zone expanders are for. You create virtual zones that are triggered via a call to this service on the esp:

set_zone_fault", Parameters: "zone" , "fault" eg zone: 17, fault: 1 (or true)

You can have your esp sensor detect the door, send the response to HA where you can have an automation call the service on the esp. At this point you can’t call the service directly from another esp… (maybe you can but I never looked into it…).

Sounds cool. Will give this a shot too and get back soon. Thanks again !

Hi Alain,

It seems that the trouble message (tr_msg) sensor doesn’t update via the interface until I manually check the trouble messages on a physical keypad by pressing *2. Once I do that, it immediately reflects in the HA sensor as well. The same happens in reverse: when the trouble message clears on the physical interface, the sensor doesn’t update in HA until manually checked.

Is this the same at your side?

I’ve working on optimizing the trouble light handling. This requires periodically sending the *2xx cmds to force a fetch but I have to be careful on not sending it at the wrong time. I’ll post an update later with some revisions.

Super, many thanks Alain!

While you’re at it, would is be feasible to also tweak it in a way that it doesn’t display ‘unknown’ when no trouble message is detected?

Ok, i’ve applied some changes. What will happen now is that a periodic loop will occur at a settable time to send a *2 cmd to the panel to have it send any error status. This needs to happen as the panel does not send those statuses on it’s own unless requested via the menu options. To control this loop, i’ve added 2 more variables to the yaml config. The first will set how often the loop will run. The default is 60 seconds with a minimum time of 30seconds. setting 0 will disable it. The 2nd variable is a boolean value to control the initial startup fetch of the errors. The default is true.
I’ve also set the intial value as an empty string to avoid the “unknown” status.

  #the program will check every <trouble_fetch_update_time> seconds for updated trouble messages. Time in seconds.  Min is 30;
  #set to 0 to disable periodic. default: 60
  trouble_fetch_update_time: 60

  #enable sending *21 cmd to panel in order to fetch trouble codes on startup and periodically. default: true
  trouble_fetch: true

Edit: ok, fixed status to be “No messages” on startup. Setting it to an empty field doesnt seem to update HA properly.