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

I switched the aui address to 1, recompiled and repeated the Arm Stay. Seems to behave the same way. I uploaded the logs to the same github issue.

I have the *189 setup to be 1 for all 4 values (AUI1, AUI2, AUI3, AUI4), which I believe is partition 1 which is the only partition I have configured in my panel.

It still is not responding to address 1 which is odd. I should see an F2 02 xxxx cmd response (if using address 1, etc). Just for fun, can you also try address 2? It’s as if the panel does not recognize the address as being an aui address, which it should as you have enabled all addresses to partition 1.

I switched it to address 2 now and uploaded the logs.

Ok, still no change. That is an odd one. I know this code was tested on a couple different systems so it works but on yours, the panel is simply ignoring the cmd as being an AUI request. Ok, I see your system is a vista-20p and i know from a couple other users including mine, that this works. I wonder if there is another setting that I’m missing here…

I tried setting *189 to 1 1 0 0 (only enabling AUI addresses 1 and 2; according the manual, this is the factory default) and it didn’t seem to make a difference. Looking over the Vista-20P programming guide it’s not obvious to me if any of the other settings would change the behavior of the AUI panel interaction. I even pulled the power to the panel (and backup battery) to see if rebooting the panel would help, but it did not.

I’d be happy to run some debugging code if that would help.

I have a documentation addendum for my panel, which under the *189 section has this note:

AUI Compatibility Note: To ensure proper AUI device operation, use AUI devices with the following rev levels: 6270 series use version 1.0.9 or higher; 8132/8142 (Symphony) series use version 1.1.175 or higher

Could be a protocol communication version issue, or perhaps it’s nothing.

That’s very possible. My system is old so your system might be a bit newer and it doesnt recognize the cmds. Nevertheless though, I would have expected an error message back from the panel . Interesting. The only way to know for sure would be to monitor logs of a panel with an actual touch keypad. I’ll see if someone has logs of one that I can look at.

I need to ask a favor of anyone that has a Touch Keypad such as the Honneywell 6280 or the Tuxedo Touch. It would be best if you are also using the “dev” version of the Vista library as it provides more info on the F2 cmds. I need some esphome logs of when the touch keypad is used to view open zones. If you do, can you please post them on this discussion on my github site! Thanks!

The latest ESP32 update doesn’t work with the software now.

It would be helpful if you provided more information then just saying it doesnt work. I have it working fine here on the latest esphome version.

This is what happened to me using your older code: ESPHome now requires you to separate your custom code into an external component. I skated by for 2 years until they did this.

I installed your newer code and after going round and round with AI, we got my VistaAlarm.yaml to work. Then I was able to upgrade to the latest ESP32.

Thanks again for this fantastic system!

1 Like

Hi, I just managed to connect my ESP32-C3-Devkitm-1 to my Vista120 control panel. Esphome detects the device and publishes the entities, but these do not update when the physical state of the sensors changes. The log systematically includes lines like: [E][CMD:843] with some F7 00 – 00 77. I checked the connections and everything seems fine. Disconnecting the yellow cable (RX) the log stops. Here is the log and the YAML source, in which I customized the pins and added the fix for the ESP32-C3 (api services remote_transmitter compile error esp32c3 #2 · Issue #3564 · esphome/issues · GitHub).

INFO ESPHome 2025.2.0
INFO Reading configuration /config/esphome/vistaalarm2.yaml...
INFO Detected timezone 'Europe/Rome'
INFO Generating C++ source...
INFO Compiling app...
Processing vistaalarm2 (board: esp32-c3-devkitm-1; framework: arduino; platform: platformio/[email protected])
--------------------------------------------------------------------------------
HARDWARE: ESP32C3 160MHz, 320KB RAM, 4MB Flash
 - toolchain-riscv32-esp @ 8.4.0+2021r2-patch5
Dependency Graph
|-- AsyncTCP-esphome @ 2.1.4
|-- WiFi @ 2.0.0
|-- FS @ 2.0.0
|-- Update @ 2.0.0
|-- ESPAsyncWebServer-esphome @ 3.2.2
|-- DNSServer @ 2.0.0
|-- ESPmDNS @ 2.0.0
|-- noise-c @ 0.1.6
Compiling .pioenvs/vistaalarm2/src/main.cpp.o
Linking .pioenvs/vistaalarm2/firmware.elf
RAM:   [=         ]  11.5% (used 37532 bytes from 327680 bytes)
Flash: [=====     ]  54.6% (used 1001254 bytes from 1835008 bytes)
Building .pioenvs/vistaalarm2/firmware.bin
Creating esp32c3 image...
Successfully created esp32c3 image.
esp32_create_combined_bin([".pioenvs/vistaalarm2/firmware.bin"], [".pioenvs/vistaalarm2/firmware.elf"])
Wrote 0x1080d0 bytes to file /data/build/vistaalarm2/.pioenvs/vistaalarm2/firmware.factory.bin, ready to flash to offset 0x0
esp32_copy_ota_bin([".pioenvs/vistaalarm2/firmware.bin"], [".pioenvs/vistaalarm2/firmware.elf"])
========================= [SUCCESS] Took 6.84 seconds =========================
INFO Successfully compiled program.
INFO Connecting to 192.168.0.31 port 3232...
INFO Connected to 192.168.0.31
INFO Uploading /data/build/vistaalarm2/.pioenvs/vistaalarm2/firmware.bin (1016016 bytes)
Uploading: [============================================================] 100% Done...

INFO Upload took 10.25 seconds, waiting for result...
INFO OTA successful
INFO Successfully uploaded program.
INFO Starting log output from 192.168.0.31 using esphome API
INFO Successfully connected to vistaalarm2 @ 192.168.0.31 in 2.091s
INFO Successful handshake with vistaalarm2 @ 192.168.0.31 in 0.094s
[14:07:53][I][app:100]: ESPHome version 2025.2.0 compiled on Feb 25 2025, 14:07:34
[14:07:53][C][wifi:600]: WiFi:
[14:07:53][C][wifi:428]:   Local MAC: E8:06:90:66:31:C0
[14:07:53][C][wifi:433]:   SSID: 'Pankonet'[redacted]
[14:07:53][C][wifi:436]:   IP Address: 192.168.0.31
[14:07:53][C][wifi:440]:   BSSID: E8:43:68:5D:42:7C[redacted]
[14:07:53][C][wifi:441]:   Hostname: 'vistaalarm2'
[14:07:53][C][wifi:443]:   Signal strength: -57 dB ▂▄▆█
[14:07:53][C][wifi:447]:   Channel: 7
[14:07:53][C][wifi:448]:   Subnet: 255.255.255.0
[14:07:53][C][wifi:449]:   Gateway: 192.168.0.1
[14:07:53][C][wifi:450]:   DNS1: 0.0.0.0
[14:07:53][C][wifi:451]:   DNS2: 0.0.0.0
[14:07:53][C][logger:177]: Logger:
[14:07:53][C][logger:178]:   Max Level: DEBUG
[14:07:53][C][logger:179]:   Initial Level: DEBUG
[14:07:53][C][logger:181]:   Log Baud Rate: 115200
[14:07:53][C][logger:182]:   Hardware UART: USB_CDC
[14:07:53][C][template.binary_sensor:028]: Template Binary Sensor 'Guasto Giorno / Allarme Notte (z1)'
[14:07:53][C][template.binary_sensor:028]:   Device Class: 'tamper'
[14:07:53][C][template.binary_sensor:028]: Template Binary Sensor 'Persiana Ovest (z2)'
[14:07:53][C][template.binary_sensor:028]:   Device Class: 'window'
[14:07:53][C][template.binary_sensor:028]: Template Binary Sensor 'Finestra Ovest (z3)'
[14:07:53][C][template.binary_sensor:028]:   Device Class: 'window'
[14:07:53][C][template.binary_sensor:028]: Template Binary Sensor 'Persiana P-Finestra (z4)'
[14:07:53][C][template.binary_sensor:028]:   Device Class: 'window'
[14:07:53][C][template.binary_sensor:028]: Template Binary Sensor 'Finestra P-Finestra (z5)'
[14:07:53][C][template.binary_sensor:028]:   Device Class: 'window'
[14:07:53][C][template.binary_sensor:028]: Template Binary Sensor 'Persiana Bagno (z6)'
[14:07:53][C][template.binary_sensor:028]:   Device Class: 'window'
[14:07:53][C][template.binary_sensor:028]: Template Binary Sensor 'Finestra Bagno (z7)'
[14:07:53][C][template.binary_sensor:028]:   Device Class: 'window'
[14:07:53][C][template.binary_sensor:028]: Template Binary Sensor 'Persiana Cucina (z8)'
[14:07:53][C][template.binary_sensor:028]:   Device Class: 'window'
[14:07:53][C][template.binary_sensor:028]: Template Binary Sensor 'Finestra Cucina (z9)'
[14:07:53][C][template.binary_sensor:028]:   Device Class: 'window'
[14:07:53][C][template.binary_sensor:028]: Template Binary Sensor 'Porta Ingresso (z10)'
[14:07:53][C][template.binary_sensor:028]:   Device Class: 'door'
[14:07:53][C][template.binary_sensor:028]: Template Binary Sensor 'Serranda Garage (z11)'
[14:07:53][C][template.binary_sensor:028]:   Device Class: 'garage_door'
[14:07:53][C][template.binary_sensor:028]: Template Binary Sensor 'Porta Garage (z12)'
[14:07:53][C][template.binary_sensor:028]:   Device Class: 'garage_door'
[14:07:53][C][template.binary_sensor:028]: Template Binary Sensor 'check relay 12 (z112)'
[14:07:53][C][template.binary_sensor:028]:   Device Class: 'problem'
[14:07:53][C][template.binary_sensor:028]: Template Binary Sensor 'check expander 08 (z108)'
[14:07:53][C][template.binary_sensor:028]:   Device Class: 'problem'
[14:07:53][C][template.binary_sensor:028]: Template Binary Sensor 'check comm device (z103)'
[14:07:53][C][template.binary_sensor:028]:   Device Class: 'problem'
[14:07:53][C][template.binary_sensor:028]: Template Binary Sensor 'Ready (rdy_1)'
[14:07:53][C][template.binary_sensor:028]: Template Binary Sensor 'Ready (rdy_2)'
[14:07:53][C][template.binary_sensor:028]: Template Binary Sensor 'Trouble (trbl_1)'
[14:07:53][C][template.binary_sensor:028]:   Device Class: 'problem'
[14:07:53][C][template.binary_sensor:028]: Template Binary Sensor 'Trouble (trbl_2)'
[14:07:53][C][template.binary_sensor:028]:   Device Class: 'problem'
[14:07:53][C][template.binary_sensor:028]: Template Binary Sensor 'Bypass (byp_1)'
[14:07:53][C][template.binary_sensor:028]: Template Binary Sensor 'Bypass (byp_2)'
[14:07:53][C][template.binary_sensor:028]: Template Binary Sensor 'Away (arma_1)'
[14:07:53][C][template.binary_sensor:028]: Template Binary Sensor 'Away (arma_2)'
[14:07:53][C][template.binary_sensor:028]: Template Binary Sensor 'Armed (arm_1)'
[14:07:53][C][template.binary_sensor:028]: Template Binary Sensor 'Armed (arm_2)'
[14:07:54][C][template.binary_sensor:028]: Template Binary Sensor 'Stay (arms_1)'
[14:07:54][C][template.binary_sensor:028]: Template Binary Sensor 'Stay (arms_2)'
[14:07:54][C][template.binary_sensor:028]: Template Binary Sensor 'Instant (armi_1)'
[14:07:54][C][template.binary_sensor:028]: Template Binary Sensor 'Instant (armi_2)'
[14:07:54][C][template.binary_sensor:028]: Template Binary Sensor 'Night (armn_1)'
[14:07:54][C][template.binary_sensor:028]: Template Binary Sensor 'Instant (armi_2)'
[14:07:54][C][template.binary_sensor:028]: Template Binary Sensor 'AC (ac)'
[14:07:54][C][template.binary_sensor:028]:   Device Class: 'plug'
[14:07:54][C][template.binary_sensor:028]: Template Binary Sensor 'Chime (chm_1)'
[14:07:54][C][template.binary_sensor:028]: Template Binary Sensor 'Chime (chm_2)'
[14:07:54][C][template.binary_sensor:028]: Template Binary Sensor 'Alarm (alm_1)'
[14:07:54][C][template.binary_sensor:028]: Template Binary Sensor 'Alarm (alm_2)'
[14:07:54][C][template.binary_sensor:028]: Template Binary Sensor 'Battery (bat)'
[14:07:54][C][template.binary_sensor:028]:   Device Class: 'problem'
[14:07:54][C][template.binary_sensor:028]: Template Binary Sensor 'Fire (fire_1)'
[14:07:54][C][template.binary_sensor:028]:   Device Class: 'smoke'
[14:07:54][C][template.binary_sensor:028]: Template Binary Sensor 'Fire (fire_2)'
[14:07:54][C][template.binary_sensor:028]:   Device Class: 'smoke'
[14:07:54][C][template.binary_sensor:028]: Template Binary Sensor 'Relay1 (r121)'
[14:07:54][C][template.binary_sensor:028]: Template Binary Sensor 'Relay2 (r122)'
[14:07:54][C][template.text_sensor:020]: Template Sensor 'Front door zone (z1)'
[14:07:54][C][template.text_sensor:020]: Template Sensor 'System Status (ss_1)'
[14:07:54][C][template.text_sensor:020]:   Icon: 'mdi:shield'
[14:07:54][C][template.text_sensor:020]: Template Sensor 'System Status (ss_2)'
[14:07:54][C][template.text_sensor:020]:   Icon: 'mdi:shield'
[14:07:54][C][template.text_sensor:020]: Template Sensor 'Lrr Msg (lrr)'
[14:07:54][C][template.text_sensor:020]:   Icon: 'mdi:alert-box'
[14:07:54][C][template.text_sensor:020]: Template Sensor 'RF Msg (rf)'
[14:07:54][C][template.text_sensor:020]:   Icon: 'mdi:alert-box'
[14:07:54][C][template.text_sensor:020]: Template Sensor 'Line1 (ln1_1)'
[14:07:54][C][template.text_sensor:020]: Template Sensor 'Line2 (ln2_1)'
[14:07:54][C][template.text_sensor:020]: Template Sensor 'Line1 (ln1_2)'
[14:07:54][C][template.text_sensor:020]: Template Sensor 'Line2 (ln2_2)'
[14:07:54][C][template.text_sensor:020]: Template Sensor 'Line1 (ln1_3)'
[14:07:54][C][template.text_sensor:020]: Template Sensor 'Line2 (ln2_3)'
[14:07:54][C][template.text_sensor:020]: Template Sensor 'Zone Status (zs)'
[14:07:54][C][template.text_sensor:020]: Template Sensor 'Beeps (bp_1)'
[14:07:54][C][template.text_sensor:020]: Template Sensor 'Beeps (bp_2)'
[14:07:54][C][template.switch:068]: Template Switch 'vistaalarm2 Connection'
[14:07:54][C][template.switch:070]:   Icon: 'mdi:shield-link-variant'
[14:07:54][C][template.switch:091]:   Restore Mode: always OFF
[14:07:54][C][template.switch:057]:   Optimistic: NO
[14:07:54][C][restart:068]: Restart Switch 'restart_switch'
[14:07:54][C][restart:070]:   Icon: 'mdi:restart'
[14:07:54][C][restart:091]:   Restore Mode: always OFF
[14:07:54][C][safe_mode.switch:068]: Safe Mode Switch 'Safe Mode'
[14:07:54][C][safe_mode.switch:070]:   Icon: 'mdi:restart-alert'
[14:07:54][C][safe_mode.switch:091]:   Restore Mode: always OFF
[14:07:54][C][captive_portal:089]: Captive Portal:
[14:07:54][C][sntp:042]: SNTP Time:
[14:07:54][C][sntp:045]:   Server 0: '0.pool.ntp.org'
[14:07:54][C][sntp:045]:   Server 1: '1.pool.ntp.org'
[14:07:54][C][sntp:045]:   Server 2: '2.pool.ntp.org'
[14:07:54][C][mdns:116]: mDNS:
[14:07:54][C][mdns:117]:   Hostname: vistaalarm2
[14:07:54][C][esphome.ota:073]: Over-The-Air updates:
[14:07:54][C][esphome.ota:074]:   Address: 192.168.0.31:3232
[14:07:54][C][esphome.ota:075]:   Version: 2
[14:07:54][C][esphome.ota:078]:   Password configured
[14:07:54][C][safe_mode:018]: Safe Mode:
[14:07:54][C][safe_mode:020]:   Boot considered successful after 60 seconds
[14:07:54][C][safe_mode:021]:   Invoke after 10 boot attempts
[14:07:54][C][safe_mode:023]:   Remain in safe mode for 300 seconds
[14:07:54][C][api:140]: API Server:
[14:07:54][C][api:141]:   Address: 192.168.0.31:6053
[14:07:54][C][api:143]:   Using noise encryption: YES
[14:07:54][C][debug:021]: Debug component:
[14:07:54][C][debug:026]:   Free space on heap 'Heap Free'
[14:07:54][C][debug:026]:     State Class: ''
[14:07:54][C][debug:026]:     Unit of Measurement: 'B'
[14:07:54][C][debug:026]:     Accuracy Decimals: 0
[14:07:54][C][debug:026]:     Icon: 'mdi:counter'
[14:07:54][C][debug:027]:   Largest free heap block 'Heap Max Block'
[14:07:54][C][debug:027]:     State Class: ''
[14:07:54][C][debug:027]:     Unit of Measurement: 'B'
[14:07:54][C][debug:027]:     Accuracy Decimals: 0
[14:07:54][C][debug:027]:     Icon: 'mdi:counter'
[14:07:54][D][debug:035]: ESPHome version 2025.2.0
[14:07:54][D][debug:039]: Free Heap Size: 192520 bytes
[14:07:54][D][debug:237]: Flash Chip: Size=4096kB Speed=80MHz Mode=QIO
[14:07:54][D][debug:285]: Chip: Model=ESP32-C3, Features=WIFI_BGN,BLE, Cores=1, Revision=4
[14:07:54][D][debug:296]: Framework: Arduino
[14:07:54][D][debug:306]: ESP-IDF Version: v4.4.2
[14:07:54][D][debug:311]: EFuse MAC: E8:06:90:66:31:C0
[14:07:54][D][debug:204]: Reset Reason: Software reset via esp_restart
[14:07:54][D][debug:359]: Wakeup Reason: Unknown
[14:07:54][C][debug:033]: Partition table:
[14:07:54][C][debug:034]:   Name         Type Subtype  Address    Size      
[14:07:54][C][debug:039]:   nvs          1    2        0x00009000 0x00005000
[14:07:54][C][debug:039]:   otadata      1    0        0x0000E000 0x00002000
[14:07:54][C][debug:039]:   app0         0    16       0x00010000 0x001C0000
[14:07:54][C][debug:039]:   app1         0    17       0x001D0000 0x001C0000
[14:07:54][C][debug:039]:   eeprom       1    153      0x00390000 0x00001000
[14:07:54][C][debug:039]:   spiffs       1    130      0x00391000 0x0000F000
[14:07:55][D][api:103]: Accepted 192.168.0.8
[14:07:55][E][CMD:843]: 1970-01-01 01:04  F7 00 00 00 00 FC 80 00 08 02 00 BA 77 
[14:07:55][W][component:237]: Component vista_alarm_panel took a long time for an operation (100 ms).
[14:07:55][W][component:238]: Components should block for at most 30 ms.
[14:07:55][D][api.connection:1446]: Home Assistant 2025.2.5 (192.168.0.8): Connected successfully
[14:07:56][E][CMD:843]: 1970-01-01 01:04  30 00 00 00 00 00 00 00 00 00 00 00 90 
[14:07:56][E][CMD:843]: 1970-01-01 01:04  CA 46 00 00 00 00 00 00 00 00 00 00 90 
[14:07:56][E][CMD:843]: 1970-01-01 01:04  67 54 4F 2A 2A 20 53 49 20 50 55 4F 27 
[14:07:56][E][CMD:843]: 1970-01-01 01:04  20 49 4E 53 45 52 49 52 45 F3 00 00 90 
[14:07:57][E][CMD:843]: 1970-01-01 01:04  C4 00 00 00 00 00 00 00 00 00 00 00 90 
[14:08:02][E][CMD:843]: 1970-01-01 01:04  FE 30 00 00 00 00 00 00 00 00 00 00 90 
[14:08:02][E][CMD:843]: 1970-01-01 01:04  03 17 00 00 00 00 00 00 00 00 00 00 90 
[14:08:07][E][CMD:843]: 1970-01-01 01:04  39 00 00 00 00 00 00 00 00 00 00 00 90 
[14:08:08][E][CMD:843]: 1970-01-01 01:04  EF 00 00 00 00 00 00 00 00 00 00 00 90 
[14:08:09][E][CMD:843]: 1970-01-01 01:04  06 00 00 00 00 00 00 00 00 00 00 00 90 
[14:08:13][E][CMD:843]: 1970-01-01 01:04  FC 00 00 00 00 00 00 00 00 00 00 00 90 
[14:08:14][E][CMD:843]: 1970-01-01 01:04  49 F7 00 00 00 00 00 00 00 00 00 00 90 
[14:08:19][E][CMD:843]: 1970-01-01 01:04  06 49 53 41 54 54 49 56 41 54 4F 2A 2A 
[14:08:19][E][CMD:843]: 1970-01-01 01:04  20 53 49 20 50 55 4F 27 20 49 4E 53 45 
[14:08:19][E][CMD:843]: 1970-01-01 01:04  52 49 52 45 F3 00 00 00 00 00 00 00 90 
[14:08:20][E][CMD:843]: 1970-01-01 01:04  60 4F 4D 55 4E 49 43 41 5A 49 4F 4E 45 
[14:08:20][E][CMD:843]: 1970-01-01 01:04  20 20 20 20 20 20 46 41 4C 4C 49 54 41 
[14:08:20][E][CMD:843]: 1970-01-01 01:04  20 20 20 20 20 0C 00 00 00 00 00 00 90 
[14:08:32][E][CMD:843]: 1970-01-01 01:05  0F 00 00 00 00 00 00 00 00 00 00 00 90 
[14:08:32][E][CMD:843]: 1970-01-01 01:05  D0 00 00 00 00 00 00 00 00 00 00 00 90 
[14:08:36][E][CMD:843]: 1970-01-01 01:05  B2 11 00 00 00 00 00 00 00 00 00 00 90 
[14:08:38][E][CMD:843]: 1970-01-01 01:05  E4 70 00 00 00 00 00 00 00 00 00 00 90 
[14:08:42][E][CMD:843]: 1970-01-01 01:05  52 00 00 00 00 00 00 00 00 00 00 00 90 
[14:08:44][E][CMD:843]: 1970-01-01 01:05  D5 E8 00 00 00 00 00 00 00 00 00 00 90 
[14:08:48][E][CMD:843]: 1970-01-01 01:05  D7 00 00 00 00 00 00 00 00 00 00 00 90 
[14:08:49][E][CMD:843]: 1970-01-01 01:05  88 00 00 00 00 00 00 00 00 00 00 00 90 
[14:08:50][E][CMD:843]: 1970-01-01 01:05  45 88 00 00 00 00 00 00 00 00 00 00 90 
[14:08:50][I][safe_mode:041]: Boot seems successful; resetting boot loop counter
[14:08:50][D][esp32.preferences:114]: Saving 1 preferences to flash...
[14:08:50][D][esp32.preferences:143]: Saving 1 preferences to flash: 0 cached, 1 written, 0 failed
[14:08:54][E][CMD:843]: 1970-01-01 01:05  D0 00 00 00 00 00 00 00 00 00 00 00 90 
[14:08:54][E][CMD:843]: 1970-01-01 01:05  1F 3F 00 00 00 00 00 00 00 00 00 00 90 
[14:08:54][E][CMD:843]: 1970-01-01 01:05  80 20 20 A6 00 00 00 00 00 00 00 00 90 
[14:08:55][E][CMD:843]: 1970-01-01 01:05  01 00 00 00 00 00 00 00 00 00 00 00 90 
[14:09:00][E][CMD:843]: 1970-01-01 01:05  0B C2 00 00 00 00 00 00 00 00 00 00 90 
[14:09:00][E][CMD:843]: 1970-01-01 01:05  08 00 00 00 00 00 00 00 00 00 00 00 90 
[14:09:00][E][CMD:843]: 1970-01-01 01:05  75 4F 20 20 20 4E 52 20 20 20 20 20 20 
[14:09:00][E][CMD:843]: 1970-01-01 01:05  43 00 00 00 00 00 00 00 00 00 00 00 90 
[14:09:00][E][CMD:843]: 1970-01-01 01:05  08 06 06 20 20 20 20 1A 00 00 00 00 90 
[14:09:06][E][CMD:843]: 1970-01-01 01:05  60 0D 02 1F 00 C1 50 45 52 54 20 30 30 
[14:09:06][E][CMD:843]: 1970-01-01 01:05  32 20 5A 4E 20 30 30 32 50 45 52 53 49 
[14:09:06][E][CMD:843]: 1970-01-01 01:05  41 4E 41 20 4F 56 45 53 54 20 20 EB 90 
[14:09:06][E][CMD:843]: 1970-01-01 01:05  0E 2A 20 53 49 20 50 55 4F 27 20 49 4E 
[14:09:06][E][CMD:843]: 1970-01-01 01:05  53 45 52 49 52 45 F3 00 00 00 00 00 90 
[14:09:12][E][CMD:843]: 1970-01-01 01:05  FE 60 30 03 0C 08 02 00 00 A0 43 4F 4D 
[14:09:12][E][CMD:843]: 1970-01-01 01:05  55 4E 49 43 41 5A 49 4F 4E 45 20 20 20 
[14:09:12][E][CMD:843]: 1970-01-01 01:05  20 20 20 46 41 4C 4C 49 54 41 20 20 20 
[14:09:12][E][CMD:843]: 1970-01-01 01:05  20 00 00 00 00 00 00 00 00 00 00 00 90 
[14:09:12][E][CMD:843]: 1970-01-01 01:05  01 00 00 00 00 00 00 00 00 00 00 00 90 
[14:09:12][E][CMD:843]: 1970-01-01 01:05  F0 00 00 00 00 00 00 00 00 00 00 00 00 
[14:09:17][E][CMD:843]: 1970-01-01 01:05  E8 00 00 00 00 00 00 00 00 00 00 00 90 
[14:09:18][E][CMD:843]: 1970-01-01 01:05  74 F7 00 00 00 00 00 00 00 00 00 00 90 
[14:09:18][E][CMD:843]: 1970-01-01 01:05  2A 00 00 00 00 00 00 00 00 00 00 00 90 
[14:09:34][E][CMD:843]: 1970-01-01 01:06  7F 00 00 00 00 00 00 00 00 00 00 00 90 
[14:09:53][E][CMD:843]: 1970-01-01 01:06  08 80 03 1C 08 02 00 00 2A 2A 44 49 53 
[14:09:53][E][CMD:843]: 1970-01-01 01:06  41 54 54 49 56 41 54 4F 2A 2A 20 53 49 
[14:09:53][E][CMD:843]: 1970-01-01 01:06  20 50 55 4F 27 20 49 4E 53 45 52 49 52 
[14:09:53][E][CMD:843]: 1970-01-01 01:06  45 F3 00 00 00 00 00 00 00 00 00 00 90 
[14:09:58][E][CMD:843]: 1970-01-01 01:06  99 00 00 00 00 00 00 00 00 00 00 00 90 
[14:09:59][E][CMD:843]: 1970-01-01 01:06  C3 00 00 00 00 00 00 00 00 00 00 00 90 
[14:10:03][E][CMD:843]: 1970-01-01 01:06  7C 00 00 00 00 00 00 00 00 00 00 00 90 
[14:10:04][E][CMD:843]: 1970-01-01 01:06  C4 00 00 00 00 00 00 00 00 00 00 00 90 
[14:10:05][E][CMD:843]: 1970-01-01 01:06  7F 9E 00 00 00 00 00 00 00 00 00 00 90 
[14:10:09][E][CMD:843]: 1970-01-01 01:06  C0 00 00 00 00 00 00 00 00 00 00 00 90 
[14:10:10][E][CMD:843]: 1970-01-01 01:06  02 00 00 00 00 00 00 00 00 00 00 00 90 
[14:10:11][E][CMD:843]: 1970-01-01 01:06  41 00 00 00 00 00 00 00 00 00 00 00 90 
[14:10:15][E][CMD:843]: 1970-01-01 01:06  BF 00 00 00 00 00 00 00 00 00 00 00 90 
[14:10:16][E][CMD:843]: 1970-01-01 01:06  F4 F8 00 00 00 00 00 00 00 00 00 00 90 
[14:10:21][E][CMD:843]: 1970-01-01 01:06  30 04 00 00 00 00 00 00 00 00 00 00 90 
[14:10:22][E][CMD:843]: 1970-01-01 01:06  F8 E4 E8 00 00 00 00 00 00 00 00 00 90 
[14:10:22][E][CMD:843]: 1970-01-01 01:06  B2 96 00 00 00 00 00 00 00 00 00 00 90 
[14:10:22][E][CMD:843]: 1970-01-01 01:06  17 49 4F 4E 45 20 20 20 20 20 20 46 41 
[14:10:22][E][CMD:843]: 1970-01-01 01:06  4C 4C 49 54 41 20 20 20 20 20 1A 00 90 
[14:10:23][D][sensor:094]: 'Heap Free': Sending state 192464.00000 B with 0 decimals of accuracy
[14:10:23][D][sensor:094]: 'Loop Time': Sending state 2755.00000 ms with 0 decimals of accuracy
[14:10:23][D][sensor:094]: 'Heap Max Block': Sending state 124916.00000 B with 0 decimals of accuracy
[14:10:26][E][CMD:843]: 1970-01-01 01:07  4E 00 00 00 00 00 00 00 00 00 00 00 90 
[14:10:28][E][CMD:843]: 1970-01-01 01:07  F7 F7 08 00 00 00 00 00 00 00 00 00 77 
[14:10:28][E][CMD:843]: 1970-01-01 01:07  F4 00 00 00 00 00 00 00 00 00 00 00 90 
[14:10:32][E][CMD:843]: 1970-01-01 01:07  54 F2 38 00 00 00 00 00 00 00 00 00 90 
[14:10:34][E][CMD:843]: 1970-01-01 01:07  F0 00 00 00 00 00 00 00 00 00 00 00 00 
[14:10:38][E][CMD:843]: 1970-01-01 01:07  3F 00 00 00 00 00 00 00 00 00 00 00 90 

And the YAML source:

  ##esp32
  rxpin: "5" #GPIO pin to use for data receive (yellow line) 
  txpin: "4" #GPIO pin to use for data transmit (green line)
  monitorpin: "7" #GPIO pin to use for monitoring module traffic such as RF or Expanders . Set to -1 to disable
  
         # other config
  
esp32:
#  variant: ESP32C3
  board: esp32-c3-devkitm-1
  framework:
    type: arduino
    version: recommended

external_components:
  - source: github://Dilbert66/esphome-components@main #uncomment to use github repository
    components: [vista_alarm_panel,binary_sensor,text_sensor]
    refresh: 10min
    
esphome:
  name: $name
  friendly_name: $friendlyName
  platformio_options:
    board_build.extra_flags:
      - "-include \"src/fix.h\""
      - "-Wl,-Map,output.map"
  includes:
    - fix.h

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  manual_ip:
    static_ip: 192.168.0.31
    gateway: 192.168.0.1
    subnet: 255.255.255.0

  ap:
    ssid: "$name"
    password: !secret espvista_wifi_password

captive_portal:

logger:
  baud_rate: 115200
  level: debug

api:
  encryption:
    key: "XXXXXXX...XXXXXXX"
 
safe_mode: 

ota:
  platform: esphome
  password: !secret ota_password
   #on_begin: #disabled due to bug in esphome
       #switch.turn_off: connection_status_switch 

time:
 - platform: sntp

I realized I commented out the

autopopulate: true

line at first because the Esphome Device Builder compiler was giving me the error:

[autopopulate] is an invalid option for [vista_alarm_panel]. Please check the indentation

but it’s not an indentation issue. I haven’t found any clues online about this option, which is currently blocking.
I would like to fix this because this library would be one of the best kudos-deserving implementation on my home assistant.

Remove it. It is not needed.

1 Like

There is something wrong your connection , wiring or circuit as the log shows garbage data. You might also want to use the “dev” version. It does not require the “fix” file.

That’s so strange, since the signals are quite clean.
Here is an oscilloscope shot from the RX pin (@GPIO5):


There is only a slight 200mV DC offset.

The TX and Monitor Pin shots (@GPIO4 and 7) look good as well.
If you need I can post them in the next posts.

Sorry, but I’m not sure I understand what to do about the “dev” version you mentioned.
If I try to exclude the fix the compiler response is:

Linking .pioenvs/vistaalarm2/firmware.elf
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/riscv32-esp-elf/8.4.0/../../../../riscv32-esp-elf/bin/ld: .pioenvs/vistaalarm2/src/main.cpp.o: in function `void esphome::api::UserServiceBase<int>::execute_<0>(std::vector<esphome::api::ExecuteServiceArgument, std::allocator<esphome::api::ExecuteServiceArgument> >, esphome::seq<0>)':
/data/build/vistaalarm2/src/esphome/components/api/user_services.h:57: undefined reference to `int esphome::api::get_execute_arg_value<int>(esphome::api::ExecuteServiceArgument const&)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/riscv32-esp-elf/8.4.0/../../../../riscv32-esp-elf/bin/ld: .pioenvs/vistaalarm2/src/main.cpp.o: in function `void esphome::api::UserServiceBase<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>::execute_<0, 1>(std::vector<esphome::api::ExecuteServiceArgument, std::allocator<esphome::api::ExecuteServiceArgument> >, esphome::seq<0, 1>)':
/data/build/vistaalarm2/src/esphome/components/api/user_services.h:57: undefined reference to `int esphome::api::get_execute_arg_value<int>(esphome::api::ExecuteServiceArgument const&)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/riscv32-esp-elf/8.4.0/../../../../riscv32-esp-elf/bin/ld: .pioenvs/vistaalarm2/src/main.cpp.o: in function `void esphome::api::UserServiceBase<int, bool>::execute_<0, 1>(std::vector<esphome::api::ExecuteServiceArgument, std::allocator<esphome::api::ExecuteServiceArgument> >, esphome::seq<0, 1>)':
/data/build/vistaalarm2/src/esphome/components/api/user_services.h:57: undefined reference to `int esphome::api::get_execute_arg_value<int>(esphome::api::ExecuteServiceArgument const&)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/riscv32-esp-elf/8.4.0/../../../../riscv32-esp-elf/bin/ld: .pioenvs/vistaalarm2/src/main.cpp.o: in function `esphome::api::ListEntitiesServicesArgument::ListEntitiesServicesArgument()':
/data/build/vistaalarm2/src/esphome/components/api/api_pb2.h:886: undefined reference to `esphome::api::enums::ServiceArgType esphome::api::to_service_arg_type<int>()'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/riscv32-esp-elf/8.4.0/../../../../riscv32-esp-elf/bin/ld: .pioenvs/vistaalarm2/src/main.cpp.o: in function `esphome::api::UserServiceBase<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>::encode_list_service_response()':
/data/build/vistaalarm2/src/esphome/components/api/user_services.h:34: undefined reference to `esphome::api::enums::ServiceArgType esphome::api::to_service_arg_type<int>()'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/riscv32-esp-elf/8.4.0/../../../../riscv32-esp-elf/bin/ld: .pioenvs/vistaalarm2/src/main.cpp.o: in function `esphome::api::ListEntitiesServicesArgument::ListEntitiesServicesArgument()':
/data/build/vistaalarm2/src/esphome/components/api/api_pb2.h:886: undefined reference to `esphome::api::enums::ServiceArgType esphome::api::to_service_arg_type<int>()'
collect2: error: ld returned 1 exit status
*** [.pioenvs/vistaalarm2/firmware.elf] Error 1
========================= [FAILED] Took 31.80 seconds =========================

Thank you for the help!

I feel like such a newb, but I’m also having trouble with the need to separate out Custom Components. All my code is 3 years old and I’ve been playing with the new code a couple of hours and pulling my hair out. Can someone explain the easiest way to upgrade to the latest code?

This is what I ended up with:

#for documentation see project at https://github.com/Dilbert66/esphome-VistaECP
substitutions:
  name: "vistaalarm" #unique network name, system name
  friendlyName: "Vista Alarm"  #used as the friendly name of your application in HomeAssistant
  panelId: "VistaAlarm"         #used as the service variable name.

vista_alarm_panel:
  id: $panelId
  accesscode: "" #Only comes into effect if needed for arming and quickarm is not set
  maxzones: "48" #maximum amount of zones that your panel supports
  maxpartitions: "1" #maximum amount of partitions that your panel supports
  defaultpartition: "1" #set to your main partition
  vistadebuglevel: "1" #component debug level for messages back to normal

  # Enroll your RF serial devices here. Format: serial#:loop#:zone#  Each record is comma separated.
  # For most devices loop1 is used such as 5800pir, other devices such as 5816 will use loop2.
  # The A0 in your RF message indicates this device uses loop 1
  rfseriallookup: "0091444:1:34" # Mail sensor on zone 34

  #assign a new virtual keypad address to each active partition using programs *190 - *196
  #and enter it below.  For unused partitions, use 0 as the keypad address.
  keypadaddr1: "17" #partition 1 virtual keyapd
  keypadaddr2: "0" #partition 2 virtual keypad. set to 0 to disable
  keypadaddr3: "0" #partition 3 virtual keypad. set to 0 to disable
  
  ##esp32
  rxpin: "22" #GPIO pin to use for data receive (yellow line) 
  txpin: "21" #GPIO pin to use for data transmit (green line)
  monitorpin: "18" #GPIO pin to use for monitoring module traffic such as RF or Expanders . Set to -1 to disable
  
  # module addresses:
  # 07 4229 zone expander  zones 9-16
  # 08 4229 zone expander zones 17-24
  # 09 4229 zone expander zones 25-32
  # 10 4229 zone expander zones 33-40
  # 11 4229 zone expander zones 41 48
  # 12 4204 relay module  
  # 13 4204 relay module
  # 14 4204 relay module
  # 15 4204 relay module
  
  expanderaddr1: "0" # 1st zone expander emulator (4229) address to use . Set to 0 to disable. 
  expanderaddr2: "0" # 2nd expander emulator address to use . Set to 0 to disable. 
  
  relayaddr1: "0" # relay module emulation (4204) addresses. Set to 0 to disable
  relayaddr2: "0"
  relayaddr3: "0"
  relayaddr4: "0"
  
  ttl: "60000"  # time  to live  in ms for zone/fire status before expiring;
  quickarm: "false"
  lrrsupervisor: "false" # set to true if we don't have an LRR monitoring supervisor we can emulate one to get the statuses
  clean_build: "false"

esp32:
  board: nodemcu-32s
  framework:
    type: arduino
    version: recommended

external_components:
  - source: github://Dilbert66/esphome-components@main
    components: [vista_alarm_panel, binary_sensor, text_sensor]
    refresh: 10min

esphome:
  name: $name
  friendly_name: $friendlyName
  platformio_options:
    build_flags: 
      - "-Wl,-Map,output.map"

wifi:
  ssid: 
  password: 
  manual_ip:
    static_ip: 192.168.1.199
    gateway: 192.168.1.1
    subnet: 255.255.255.0
    dns1: 8.8.8.8
    dns2: 4.2.2.4

  # Enable fallback hotspot in case of connection failure
  ap:
    ssid: "$name"
    password: 
    
  # Add WiFi power saving and connection improvements
  power_save_mode: none
  output_power: 20dB
  fast_connect: true
  reboot_timeout: 15min

logger:
  baud_rate: 115200
  level: INFO
  logs:
    esp32: ERROR    # Only show errors, not warnings
    component: ERROR # Only show errors, not warnings

api:
  encryption:
    key: 
  reboot_timeout: 15min
  services:
    - service: restart
      then:
        - switch.turn_on: restart_switch

switch:
  - platform: restart
    name: "${name} Restart"
    id: restart_switch

ota:
  platform: esphome
  password: supersecretpassword

time:
  - platform: sntp

binary_sensor:
  - platform: template
    name: "$name Trouble"
    id_code: trbl
    device_class: problem
    publish_initial_state: true

  - platform: template
    name: "$name Bypass"
    id_code: byp_1
    publish_initial_state: true

  - platform: template
    name: "$name Away"
    id_code: arma_1
    publish_initial_state: true

  - platform: template
    name: "$name Stay"
    id_code: arms_1
    publish_initial_state: true

  - platform: template
    name: "$name Instant"
    id_code: armi_1
    publish_initial_state: true

  - platform: template
    name: "$name Night"
    id_code: armn_1
    publish_initial_state: true

  - platform: template
    name: "$name AC"
    id_code: ac
    device_class: plug
    publish_initial_state: true

  - platform: template
    name: "$name Chime"
    id_code: chm_1
    publish_initial_state: true

  - platform: template
    name: "$name Check"
    id_code: check
    device_class: problem
    publish_initial_state: true

  - platform: template
    name: "$name Alarm"
    id_code: alm_1
    publish_initial_state: true

  - platform: template
    name: "$name Battery"
    id_code: bat
    device_class: problem
    publish_initial_state: true

  - platform: template
    name: "$name Fire"
    id_code: fire_1
    device_class: smoke
    publish_initial_state: true

  - platform: template
    name: "$name Ready"
    id_code: rdy_1
    publish_initial_state: true

  - platform: template
    name: "$name Relay1"
    id_code: r1
    publish_initial_state: true

  - platform: template
    name: "$name Relay2"
    id_code: r2
    publish_initial_state: true

text_sensor:
  - platform: template
    name: "Smoke Alarm"
    id_code: z1

  - platform: template
    name: "Bedroom 2 Windows"
    id_code: z2

  - platform: template
    name: "Office Windows"
    id_code: z3

  - platform: template
    name: "MBR Windows"
    id_code: z4

  - platform: template
    name: "Bedroom 3 Windows"
    id_code: z5

  - platform: template
    name: "Bedroom 1 Windows"
    id_code: z6

  - platform: template
    name: "Front Door"
    id_code: z7

  - platform: template
    name: "Back Door Living Room"
    id_code: z8

  - platform: template
    name: "Back Door MBR"
    id_code: z17

  - platform: template
    name: "Dining Room Windows"
    id_code: z25

  - platform: template
    name: "Garage Windows"
    id_code: z26

  - platform: template
    name: "Storage Room"
    id_code: z27

  - platform: template
    name: "Regular Garage Doors"
    id_code: z28

  - platform: template
    name: "Double Garage Door"
    id_code: z29

  - platform: template
    name: "Single Garage Door"
    id_code: z31

  - platform: template
    name: "Sprinkler Flow"
    id_code: z33

  - platform: template
    name: "You Got Mail"
    id_code: z34

  - platform: template
    name: "CO Detector Theater"
    id_code: z35

  - platform: template
    name: "CO Detector BRS 2-3"
    id_code: z36

  - platform: template
    name: "CO Detector MBR"
    id_code: z37

  - platform: template
    name: "$name System Status"
    id_code: system_status
    icon: "mdi:shield"

  - platform: template
    name: "$name Lrr Msg"
    id_code: lrr_msg
    icon: "mdi:alert-box"

  - platform: template
    name: "$name RF Msg"
    id_code: rf_msg
    icon: "mdi:alert-box"

  - platform: template
    name: "$name Line1"
    id_code: ln1_1

  - platform: template
    name: "$name Line2"
    id_code: ln2_1

  - platform: template
    name: "$name Beeps"
    id_code: bp_1

Thanks for the code. I’ll post my results later today. And I assume I replace all the files in esphome\vistaEcpInterface with the latest GitHub vista20SE ones?

I switched to using local files for components. If you do the same you need to add this components directory Dilbert66/esphome-components: Various esphome external components for auto loading from yaml configuration files

New VistaAlarm.yaml:

#for documentation see project at https://github.com/Dilbert66/esphome-VistaECP
substitutions:
  name: "vistaalarm" #unique network name, system name
  friendlyName: "Vista Alarm"  #used as the friendly name of your application in HomeAssistant
  panelId: "VistaAlarm"         #used as the service variable name.

vista_alarm_panel:
  id: $panelId
  accesscode: "" #Only comes into effect if needed for arming and quickarm is not set
  maxzones: "48" #maximum amount of zones that your panel supports
  maxpartitions: "1" #maximum amount of partitions that your panel supports
  defaultpartition: "1" #set to your main partition
  vistadebuglevel: "1" #component debug level for messages back to normal

  # Enroll your RF serial devices here. Format: serial#:loop#:zone#  Each record is comma separated.
  # For most devices loop1 is used such as 5800pir, other devices such as 5816 will use loop2.
  # The A0 in your RF message indicates this device uses loop 1
  rfseriallookup: "0091444:1:34" # Mail sensor on zone 34

  #assign a new virtual keypad address to each active partition using programs *190 - *196
  #and enter it below.  For unused partitions, use 0 as the keypad address.
  keypadaddr1: "17" #partition 1 virtual keyapd
  keypadaddr2: "0" #partition 2 virtual keypad. set to 0 to disable
  keypadaddr3: "0" #partition 3 virtual keypad. set to 0 to disable
  
  ##esp32
  rxpin: "22" #GPIO pin to use for data receive (yellow line) 
  txpin: "21" #GPIO pin to use for data transmit (green line)
  monitorpin: "18" #GPIO pin to use for monitoring module traffic such as RF or Expanders . Set to -1 to disable
  
  # module addresses:
  # 07 4229 zone expander  zones 9-16
  # 08 4229 zone expander zones 17-24
  # 09 4229 zone expander zones 25-32
  # 10 4229 zone expander zones 33-40
  # 11 4229 zone expander zones 41 48
  # 12 4204 relay module  
  # 13 4204 relay module
  # 14 4204 relay module
  # 15 4204 relay module
  
  expanderaddr1: "0" # 1st zone expander emulator (4229) address to use . Set to 0 to disable. 
  expanderaddr2: "0" # 2nd expander emulator address to use . Set to 0 to disable. 
  
  relayaddr1: "0" # relay module emulation (4204) addresses. Set to 0 to disable
  relayaddr2: "0"
  relayaddr3: "0"
  relayaddr4: "0"
  
  ttl: "60000"  # time  to live  in ms for zone/fire status before expiring;
  quickarm: "false"
  lrrsupervisor: "false" # set to true if we don't have an LRR monitoring supervisor we can emulate one to get the statuses
  clean_build: "false"

esp32:
  board: nodemcu-32s
  framework:
    type: arduino
    version: recommended

external_components:
  - source: components
    components: [vista_alarm_panel, binary_sensor, text_sensor]
    refresh: 10min

esphome:
  name: $name
  friendly_name: $friendlyName
  platformio_options:
    build_flags: 
      - "-Wl,-Map,output.map"

wifi:
  ssid: 
  password: 
  manual_ip:
    static_ip: 192.168.1.199
    gateway: 192.168.1.1
    subnet: 255.255.255.0
    dns1: 8.8.8.8
    dns2: 4.2.2.4

  # Enable fallback hotspot in case of connection failure
  ap:
    ssid: 
    password: 
    
  # Add WiFi power saving and connection improvements
  power_save_mode: none
  output_power: 20dB
  fast_connect: true
  reboot_timeout: 15min

logger:
  baud_rate: 115200
  level: INFO
  logs:
    esp32: ERROR    # Only show errors, not warnings
    component: ERROR # Only show errors, not warnings

api:
  encryption:
    key: 
  reboot_timeout: 15min
  services:
    - service: restart
      then:
        - switch.turn_on: restart_switch

switch:
  - platform: restart
    name: "Restart"
    id: restart_switch

ota:
  platform: esphome
  password: 

time:
  - platform: sntp

binary_sensor:
  - platform: template
    name: "Trouble"
    device_class: problem
    id_code: trbl
    publish_initial_state: true

  - platform: template
    name: "Bypass"
    device_class: window
    id_code: byp_1
    publish_initial_state: true

  - platform: template
    name: "Fire"
    device_class: smoke
    id_code: fire_1
    publish_initial_state: true

  - platform: template
    name: "Away"
    id_code: arma_1
    publish_initial_state: true

  - platform: template
    id_code: arm_1
    name: "Armed"
    publish_initial_state: true

  - platform: template
    id_code: arms_1
    name: "Stay"
    publish_initial_state: true

  - platform: template
    name: "Ready"
    device_class: lock
    id_code: rdy_1
    publish_initial_state: true

  - platform: template
    name: "AC Power"
    device_class: plug
    id_code: ac
    publish_initial_state: true

  - platform: template
    name: "Battery"
    device_class: problem
    id_code: bat
    publish_initial_state: true

  - platform: template
    name: "Chime"
    id_code: chime_1
    publish_initial_state: true

text_sensor:
  - platform: template
    name: "Smoke Alarm"
    id_code: z1

  - platform: template
    name: "Bedroom 2 Windows"
    id_code: z2

  - platform: template
    name: "Office Windows"
    id_code: z3

  - platform: template
    name: "MBR Windows"
    id_code: z4

  - platform: template
    name: "Bedroom 3 Windows"
    id_code: z5

  - platform: template
    name: "Bedroom 1 Windows"
    id_code: z6

  - platform: template
    name: "Front Door"
    id_code: z7

  - platform: template
    name: "Back Door Living Room"
    id_code: z8

  - platform: template
    name: "Back Door MBR"
    id_code: z17

  - platform: template
    name: "Dining Room Windows"
    id_code: z25

  - platform: template
    name: "Garage Windows"
    id_code: z26

  - platform: template
    name: "Storage Room"
    id_code: z27

  - platform: template
    name: "Regular Garage Doors"
    id_code: z28

  - platform: template
    name: "Double Garage Door"
    id_code: z29

  - platform: template
    name: "Single Garage Door"
    id_code: z31

  - platform: template
    name: "Sprinkler Flow"
    id_code: z33

  - platform: template
    name: "You Got Mail"
    id_code: z34

  - platform: template
    name: "CO Detector Theater"
    id_code: z35

  - platform: template
    name: "CO Detector BRS 2-3"
    id_code: z36

  - platform: template
    name: "CO Detector MBR"
    id_code: z37

  - platform: template
    name: "$name System Status"
    id_code: system_status
    icon: "mdi:shield"

  - platform: template
    name: "$name Lrr Msg"
    id_code: lrr_msg
    icon: "mdi:alert-box"

  - platform: template
    name: "$name RF Msg"
    id_code: rf_msg
    icon: "mdi:alert-box"

  - platform: template
    name: "$name Line1"
    id_code: ln1_1

  - platform: template
    name: "$name Line2"
    id_code: ln2_1

  - platform: template
    name: "$name Beeps"
    id_code: bp_1