Ademco/Honeywell/Vista ESPHome custom component with an esp32/esp8266

jsbrich, I suspect it will work fine as I believe it uses the same peripherals.

Just came here looking to see if this existed as I was struggling to do it myself, and wanted to use motion sensor type to allow some higher level automations to work within my HA a little better. Appreciate all of your efforts on this

Added initial multi partition support to the “dev” branch. This update provides independent status and control of individual partitions on a honeywell vista panel.

Not new to HA but new to esp32/esp8266, so sorry for the newb question, but if I follow one of the schematics, flash the esp32/esp8266 from HA (with my wifi credentials), install the ESPHome integration, attach the circuitry to my Vista 20p, it should connect to my wifi network and HA should find it and add all my alarm sensors?

I realize this is more of a esp32/esp8266 question, so thanks for understanding.

Though in the breadboard stage, have things up an running. What a great project! Couple of hiccups though:

  1. I have a 4219 Expansion Module. I added the zones to the yaml and flashed to the ESP8266, but status isn’t reported to HA. I entered my code + 1 twice, per instructions to ‘clear CHECK messages’ after power-cycling the alarm.
    EDIT: [SOLVED] Had missed that I had to add case **: id(z**).publish_state(open); break; for each zone.

  2. When I call the vistaalarm_alarm_keypress service, keystrokes aren’t reported to my Vista 20p. I set address 20 in yaml & activated it on my Vista. EDIT: in the ESPHome log it reports “Writing keys: 1234”. SOLVED: Since I was using USB power, I didn’t connect the 12v red to the opticoupler, but now realize I needed to.

  3. Is the sensor.vistaalarm_trouble state supposed to change if the alarm is triggered? binary_sensor.vistaalarm_alarm reports an alarm.

Glad you got it sorted out.

After 6 months of running this on breadboard, I decided to make this device formal. My initial attempts on protoboards weren’t successful - it only ran for a night and ESP was burned. I re-soldered a new ESP and other parts but it also burned out shortly.

Hence, I moved on to print a PCB and have it mailed to me. The board arrived yesterday. I soldered ESP and screw terminals onto it, and it’s working !

For anyone that might be interested, the PCB layout is shared below. Once opened in the editor, there is a menu item sending it directly to the manufacturer.

https://oshwlab.com/boobeechen/vistaesphome_copy

Thanks @Dilbert66 for providing these. The small device is very helpful and github page is informational.

2 Likes

Thank you for this amazing project. I setup the system with ESP8266 using transistors instead of an optocoupler for transmit.

The circuit as shown in the schematic connect Monitor Green Line (two resistors R4 and R5) to GPIO15 (D8)(CS). But the suggested pin for Monitor Green Line is GPIO14 (D5)(SCK). Which is the correct solution?.

I really appreciate your help.
Thanks.

Use d5. Sorry for the confusion. I will amend the schematic. Either would work as long as the pin is set in the yaml

1 Like

Thanks Alain, I set the monitorPin in the yaml and I set the keypadAddr to an unused keypad address slot (I enable it in my vista panel programming). The lovelace alarm panel card gives me correct information about the system (the circuit seems to be fine) but I get an error message (“Open Ckt.”) on the keypad console and the system doesn’t work. Any idea what could be the problem?

Thanks again.

This is the console error message …

You have a problem with your circuit. Specifically the tx line (green) circuit which you inidcated that you used the transistor version on.

Hi. I’m a newcomer to ESP and wiring circuits like this so please forgive my ignorance here. I also know your post is a year and half old so may not reflect what is in the github schematics now, but I had a question re: power on this image:

It looks like this is the non-isolated version of the circuit requiring one optocoupler. From what I can tell (again, newcomer) it looks like you have both power coming from the red wire and being regulated into the 5v connector and power from the USB. Is that right? Would that be needed or could I do without the regulator at column E rows 24-27 and its associated connections as long as I have USB power?

Thanks in advance.

The sqare dotted area is optional. If you use one, you don’t use the other. if you only want usb power, do not wire up the parts in the dotted area.

Amazing! Ok first of all this is such a cool project and I really applaud you for all the work you’ve done on it.

BTW my panel is a vista 20p (ADT rebranded). Keypads are safewatch 3000 pros

I’m having one major issue (that I know of):

  1. similar (maybe) to @Code97 I am able to see lots of output in the logs and the virtual panel is clearly receiving data, but I am unable to transmit keys.
  • I have the keypad set to 18 (I have two physical keypads) (i believe addresses 16 and 17)
  • I have attempted to follow the wiring diagram as per non-isolated with optocoupler and USB power (pics attached, please forgive the inelegant wiring as i’m very much still in “can this work?” mode.
  • I had initially put 180 ohms of resistance at position R1 but based on your conversation with @Code97 i tried reducing that to 150 without any significant change that I can tell.
    Log example (these keystrokes should have enabled STAY mode):
...
[00:11:47][I][CMD:445]: F8 59 1C 5A 03 00 00 02 00 00 00 00 77 
[00:11:47][I][EXT:445]: F9 00 00 00 51 85 8F F7 04 A0 00 00 00 
[00:11:47][I][CMD:445]: F8 59 1C 5A 03 00 00 02 00 00 00 00 77 
[00:11:48][I][CMD:445]: F8 59 1C 5A 03 00 00 02 00 00 00 00 77 
[00:11:48][I][CMD:445]: F8 59 1C 5A 03 00 00 02 00 00 00 00 77 
[00:11:48][I][CMD:445]: F8 59 1C 5A 03 00 00 02 00 00 00 00 77 
[00:11:48][D][Debug:412]: Writing keys: 12343
[00:11:48][I][CMD:445]: F8 59 1C 5A 03 00 00 02 00 00 00 00 77 
[00:11:48][I][CMD:445]: F8 59 1C 5A 03 00 00 02 00 00 00 00 77 
[00:11:48][I][CMD:445]: F8 59 1C 5A 03 00 00 02 00 00 00 00 77 
[00:11:48][I][CMD:445]: F8 59 1C 5A 03 00 00 02 00 00 00 00 77 
[00:11:48][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[00:11:49][I][CMD:445]: 77 92 00 00 00 00 00 00 00 00 00 00 00 
[00:11:49][I][EXT:445]: F6 12 00 92 02 08 00 09 05 03 4F 00 00 
[00:11:49][I][CMD:445]: F8 59 1C 5A 03 00 00 02 00 00 00 00 77 
[00:11:49][I][CMD:445]: F8 59 1C 5A 03 00 00 02 00 00 00 00 77 
[00:11:49][I][CMD:445]: F8 59 1C 5A 03 00 00 02 00 00 00 00 77 
[00:11:49][I][CMD:445]: F8 59 1C 5A 03 00 00 02 00 00 00 00 77 
[00:11:49][I][CMD:445]: F8 59 1C 5A 03 00 00 02 00 00 00 00 77 
[00:11:49][I][CMD:445]: F7 00 00 FF 10 08 00 1C 08 02 00 00 2A 
[00:11:49][I][INFO:724]: Prompt: ****DISARMED**** 
[00:11:49][I][INFO:725]: Prompt:   Ready to Arm  
[00:11:49][I][INFO:726]: Beeps: 0

[00:11:49][I][CMD:445]: F8 59 1C 5A 03 00 00 02 00 00 00 00 77 
[00:11:50][I][CMD:445]: F8 59 1C 5A 03 00 00 02 00 00 00 00 77 
[00:11:50][I][CMD:445]: F8 59 1C 5A 03 00 00 02 00 00 00 00 77 
...

alarm panel lovelace card seems to work great. displays more than my fixed english keypads, which is nice :wink:. I haven’t seen any difference between transmission behavior between the virtual keypad and calling the “ESPHome: vistaalarm_alarm_keypress” service.

thanks so much in advance anyone who can help!


Have you assigned keypad 18 to a partition in programs *190?

Thanks yes just double checked that this morning. Keypad 18 (field 191) is assigned partition 1 and no suppression. No change after that (I don’t think I changed anything) as far as I can tell.

Could it be something with the wiring of my board or the connections to the panel?

Interestingly I also am seeing a lot of this type of message:

[07:37:05][D][text_sensor:067]: 'vistaalarm RF Msg': Sending state '0679512,84'

I have a lot of RF sensors (pretty much all of my sensors). I have been having trouble with the zones that I program into the ESP yaml file not changing with the state of my sensors. Keypad shows fault when I open the kitchen door and correct zone (43) but doesn’t show on the text sensor (stays “C”). Interestingly it seemed to be briefly working last night but then stopped again.

Ok nevermind about the zone text sensors not reporting. I don’t know what was happening there but it seems to have resolved and they are reporting correctly. I’m slowly adding them all to my yaml.

However, still no input from the virtual keypad detected nor ability to use service calls to arm/disarm.

Any chance this could be related to the whole system being improperly/incompletely grounded? (Right now my grounds on the ESP breadboard are just connected to the panel’s black wire)

Well, there is something odd with your log. Those F8’s you are showing are not normal. Too many of them but F7 and F6 traffic looks ok. F6 is the keypad send and it looks like it’s trying to send something but what it shows doesnt match your keys 12343. Are you using the “dev” branch? If not can you try it.
as to the RF msgs, that’s just the rf module serial number and state. Ie on/off, battery level, etc.

The black wire is the correct ground location so that should not be an issue. Something odd with your send line I suspect. Reversed?