Coder Social home page Coder Social logo

dilbert66 / esphome-vistaecp Goto Github PK

View Code? Open in Web Editor NEW
121.0 121.0 20.0 1.75 MB

This is an implementation of an ESPHOME custom component and ESP Library to interface directly to a Safewatch/Honeywell/Ademco Vista 15/20 alarm system using the ECP interface and very inexpensive ESP8266/ESP32 modules .

License: GNU Lesser General Public License v2.1

C++ 86.23% JavaScript 11.57% C 2.20%

esphome-vistaecp's People

Contributors

appleguru avatar dilbert66 avatar giukio avatar lorenzodeveloper avatar nitej avatar rcmurphy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

esphome-vistaecp's Issues

Reading the bus but no F7s

Hi Alain

I connected my ESP to the alarm today and it seems to be decoding messages from the bus but I am not seeing any F7 messages (see attached). Mostly F8 and 9E. If I open a door the primary keypad shows a fault on that door, I don't see any F7 messages, just output below:

[20:21:02][I][CMD:347]: 9E 02 20 81 62 00 00 00 00 00 00 00
[20:21:02][I][CMD:347]: 9E 02 25 60 7E 00 00 00 00 00 00 00
[20:21:04][I][CMD:347]: F8 98 F8 66 1E 86 86 86 00 00 00 00
[20:21:04][I][CMD:347]: 9E 98 60 E6 66 00 00 00 00 00 00 00
[20:21:04][I][CMD:347]: F8 98 66 7E 00 78 00 FE 1E 00 00 00
[20:21:04][I][CMD:347]: 98 F8 66 00 00 FE 00 00 00 00 00 00
[20:21:05][I][CMD:347]: F8 F8 F8 F8 00 FE 1E F8 F8 00 00 00
[20:21:05][I][CMD:347]: F8 F8 00 FE 1E F8 F8 F8 F8 00 00 00
[20:21:12][I][CMD:347]: F8 F8 F8 F8 00 9E 02 20 F1 00 00 00
[20:21:12][I][CMD:347]: F2 00 00 00 00 00 00 00 00 00 00 00
[20:21:12][I][INFO:549]: Prompt:
[20:21:12][I][INFO:550]: Prompt:
[20:21:12][I][INFO:551]: Beeps: 0
[20:21:12][I][EXT:347]: 98 07 00 00 00 00 00 00 00 00 00 00
[20:21:12][I][INFO:549]: Prompt:
[20:21:12][I][INFO:550]: Prompt:
[20:21:12][I][INFO:551]: Beeps: 0

[20:21:13][I][CMD:347]: F8 F8 78 98 60 E6 00 F8 00 00 00 00
[20:21:13][I][CMD:347]: 98 66 7E 00 78 60 00 00 00 00 00 00
[20:21:13][I][CMD:347]: 9E 86 E6 E0 86 00 00 00 00 00 00 00
[20:21:14][I][CMD:347]: 9E 78 1E 7E F8 00 00 00 00 00 00 00
[20:21:14][I][CMD:347]: F8 00 FE 1E 66 00 F8 7E FE 00 00 00
[20:21:14][I][CMD:347]: F8 F8 80 7E 1E 00 00 FE 9E 00 00 00
[20:21:14][I][CMD:347]: F8 78 06 7E 00 FE 9E 7E E0 00 00 00
[20:21:16][I][CMD:347]: 9E 02 25 F1 ED 00 00 00 00 00 00 00
[20:21:16][I][EXT:347]: 9E 00 25 00 51 86 18 98 90 E9 00 00
[20:21:17][I][CMD:347]: F8 98 F8 66 1E 86 86 86 00 00 00 00
[20:21:17][I][CMD:347]: 9E 98 60 E6 66 00 00 00 00 00 00 00
[20:21:17][I][CMD:347]: F8 98 66 7E 00 78 00 FE 1E 00 00 00
[20:21:17][I][CMD:347]: 98 F8 66 00 00 FE 00 00 00 00 00 00
[20:21:18][I][CMD:347]: F8 F8 F8 F8 00 FE 1E F8 F8 00 00 00
[20:21:18][I][CMD:347]: F8 F8 00 FE 1E F8 F8 F8 F8 00 00 00
[20:21:26][I][CMD:347]: F8 F8 F8 F8 00 00 00 E0 E0 00 00 00
[20:21:27][I][CMD:347]: F8 98 F8 66 1E 86 86 86 00 00 00 00
[20:21:27][I][CMD:347]: 9E 98 60 E6 66 00 00 00 00 00 00 00
[20:21:27][I][CMD:347]: F8 98 66 7E 00 78 00 FE 1E 00 00 00
[20:21:28][I][CMD:347]: 98 F8 66 00 00 FE 00 00 00 00 00 00
[20:21:28][I][CMD:347]: F8 F8 F8 F8 00 FE 1E F8 F8 00 00 00
[20:21:28][I][CMD:347]: F8 F8 00 FE 1E F8 F8 F8 F8 00 00 00
[20:21:35][I][CMD:347]: F8 F8 F8 F8 00 9E 02 20 81 00 00 00
[20:21:35][I][EXT:347]: 98 07 00 00 01 00 00 00 00 00 00 00

All the sensors in my system are wireless and there is a 5881EN Wireless receiver attached to the keypad bus (that is using keypad ID 17). I set the ESP to be Keypad ID 19. I checked and MONITORTX was already uncommented. I'm assuming the wireless sensors are reporting differently.

I tried arming from the primary keypad (quick Arm #3) which results and no F7 messages

[20:29:52][I][CMD:347]: 9E 02 20 81 62 00 00 00 00 00 00 00
[20:30:59][I][EXT:347]: 9E 00 20 00 24 00 DC 00 00 00 00 00
[20:31:06][I][CMD:347]: F8 98 66 7E 00 78 00 FE 1E 00 00 00
[20:31:06][I][CMD:347]: 98 F8 66 00 00 FE 00 00 00 00 00 00
[20:31:06][I][CMD:347]: F8 F8 F8 F8 00 FE 1E F8 F8 00 00 00
[20:31:06][I][CMD:347]: F8 F8 00 FE 1E F8 F8 F8 F8 00 00 00

V20P_log.txt

[dev] Compile Problems on Case Sensitive FS

vistaAlarm.h is referenced as vistaalarm.h; I was going to submit a PR to just change the include, but I think a better solution would be to switch to lower case filenames for *.cpp / *.h.

Updated ESPhome to 2021.9.0 and zones lost supervision

Last night, I updated ESPhome to 2021.9.0 from 2021.8.2. After a minute or so, my vista 21IP keypads went into bunch of errors. I had to unplug my vistaalarm system to go back to normal. Anyone else got into some trouble while updating to ESPhome 2021.9?

Lot of messages with error code 354 [Comm Fail (log only)] or 383 [Supervision Auxiliary Wire Zone]. All related to zone 9 to 14 (extander)

003 E354 Z107 P0

009 E382 Z009 P1

I restarted the VistaAlarm system today and no more errors on the keypads. However, I still have this log entry in the vistaalarm log:

[13:57:06][D][text_sensor:015]: 'vistaalarm Lrr Msg': Sending state '382: Loss of supervision RPM zone 10'

Do we have an issue here with the latest ESPhome release?

Mqtt-example is outdated

Hi
It seems that mqtt-example is outdated.
Because of duplicate code in vistaECP class and mqtt loop code new commits are only applied to vistaECP class and not updated mqtt-example so mqtt-example is still behind.
So may i ask you to apply new changes to mqtt-example too
Thanks

my system doesn't seem to respond to keypresses

As far as reading info from my Ademco 5881 system goes I'm having no problems. But there seems to be no response from the keypress service calls. I've verified with an oscilloscope that the signals are being sent out. Am I missing something in the configuration?

Initial Connection Failed

After I upload the code I get the following message, the last line repeats as it tries to connect
INFO Reading configuration /config/esphome/vistaalarm.yaml...
INFO Starting log output from 192.168.1.184 using esphome API
INFO Connecting to 192.168.1.184:6053 (192.168.1.184)
WARNING Initial connection failed. The ESP might not be connected to WiFi yet (Error connecting to 192.168.1.184: [Errno 113]
No route to host). Re-Trying in 1 seconds
WARNING Initial connection failed. The ESP might not be connected to WiFi yet (Error connecting to 192.168.1.184: [Errno 113]
...

I'm using an ESP32, but I was having this same issue on an ESP8266 yesterday. On both devices I can upload a different ESPHome config and have confirmed those configs work and can get on the Wifi, I can see debug activity in the log etc, So the boards seem ok.

When I upload the VistaAlarm config the board is not able to get on WiFi afterward
When I ran this with the ESP8266, it was able to run for a short time, created the devices/entities that represented the alarm zones but then lost connection. I'm thinking the board is crashing. I switched to the ESP32 in case that 8266 was bad,

For the ESP32, I'm currently just running the board off of the USB power, no connection to the alarm system. Yesterday I had the 8266 connected to the alarm. Will the code run if there is no connection to D1 an D2 or might that be causing the crash? I want to wait to reconnect to the alarm until I am sure its running the code; but wondering if maybe I had a bad connection on one of the RBYG wires yesterday with the 8266.

My Vista uses mostly wireless sensors, so I have zones going up to 29 in my YAML file. Any known issues with a large number of sensors? The only other confi I made in the yaml was to set the relays and expanders to 0 to disable.

Signal strength is -55bD
I've set a static IP (in the yaml and on my router for the device MAC)
Set power_save_mode: none

Any ideas what to look at next?
Thanks!!
Joe

VistaAlarm-ESP_yaml.txt

'ARMED' was not declared in this scope

Using the latest files, I am getting the following error:

In file included from src/main.cpp:76:0: src/vistaAlarm.h: In member function 'virtual void esphome::vistaECPHome::update()': src/vistaAlarm.h:799:28: error: 'ARMED' was not declared in this scope if (strstr(p1, ARMED) && vista.statusFlags.systemFlag) { ^

Going back to older files, the error disapears.

ESP32 fails to compile

Hi,

I'm trying to compile for an ESP32 and it fails. Here are my changes:

 esphome:
   name: $systemName
-  platform: ESP8266
-  board: nodemcuv2
+  platform: ESP32
+  board: esp32dev

 status_led:
   pin:
-    number: D4
+    number: 16
     inverted: yes

I'd also appreciate knowing if there are any other changes I need to make to get this to work with an ESP32. I've connected GREEN to 21 and YELLOW to 22, respectively. And I'm not using the green monitor (not sure if I will yet or not).

Thanks for your help!

Here is the compilation output:

INFO Reading configuration VistaAlarm.yaml...
INFO Generating C++ source...
INFO Core config or version changed, cleaning build files...
INFO Compiling app...
INFO Running:  platformio run -d vistaalarm
Processing vistaalarm (board: esp32dev; framework: arduino; platform: [email protected])
-----------------------------------------------------------------------------------------------------------------------------------------------------------
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
PACKAGES:
 - framework-arduinoespressif32 3.10004.200129 (1.0.4)
 - tool-esptoolpy 1.20600.0 (2.6.0)
 - toolchain-xtensa32 2.50200.80 (5.2.0)
Looking for AsyncTCP-esphome library in registry
LibraryManager: Installing id=6798 @ 1.1.1
AsyncTCP-esphome @ 1.1.1 has been successfully installed!
Dependency Graph
|-- <AsyncTCP-esphome> 1.1.1
|-- <ESPmDNS> 1.0
|   |-- <WiFi> 1.0
|-- <Update> 1.0
|-- <WiFi> 1.0
Compiling .pioenvs/vistaalarm/src/ECPSoftwareSerial.cpp.o
Compiling .pioenvs/vistaalarm/src/debug/vistaPrint.cpp.o
Compiling .pioenvs/vistaalarm/src/esphome/components/api/api_connection.cpp.o
Compiling .pioenvs/vistaalarm/src/esphome/components/api/api_pb2.cpp.o
Compiling .pioenvs/vistaalarm/src/esphome/components/api/api_pb2_service.cpp.o
Compiling .pioenvs/vistaalarm/src/esphome/components/api/api_server.cpp.o
Compiling .pioenvs/vistaalarm/src/esphome/components/api/list_entities.cpp.o
Compiling .pioenvs/vistaalarm/src/esphome/components/api/proto.cpp.o
Compiling .pioenvs/vistaalarm/src/esphome/components/api/subscribe_state.cpp.o
Compiling .pioenvs/vistaalarm/src/esphome/components/api/user_services.cpp.o
Compiling .pioenvs/vistaalarm/src/esphome/components/api/util.cpp.o
Compiling .pioenvs/vistaalarm/src/esphome/components/binary_sensor/automation.cpp.o
Compiling .pioenvs/vistaalarm/src/esphome/components/binary_sensor/binary_sensor.cpp.o
Compiling .pioenvs/vistaalarm/src/esphome/components/binary_sensor/filter.cpp.o
Compiling .pioenvs/vistaalarm/src/esphome/components/logger/logger.cpp.o
Compiling .pioenvs/vistaalarm/src/esphome/components/ota/ota_component.cpp.o
Compiling .pioenvs/vistaalarm/src/esphome/components/restart/restart_switch.cpp.o
Compiling .pioenvs/vistaalarm/src/esphome/components/status_led/status_led.cpp.o
Compiling .pioenvs/vistaalarm/src/esphome/components/switch/automation.cpp.o
Compiling .pioenvs/vistaalarm/src/esphome/components/switch/switch.cpp.o
Compiling .pioenvs/vistaalarm/src/esphome/components/template/binary_sensor/template_binary_sensor.cpp.o
Compiling .pioenvs/vistaalarm/src/esphome/components/template/switch/template_switch.cpp.o
Compiling .pioenvs/vistaalarm/src/esphome/components/template/text_sensor/template_text_sensor.cpp.o
Compiling .pioenvs/vistaalarm/src/esphome/components/text_sensor/text_sensor.cpp.o
Compiling .pioenvs/vistaalarm/src/esphome/components/wifi/wifi_component.cpp.o
Compiling .pioenvs/vistaalarm/src/esphome/components/wifi/wifi_component_esp32.cpp.o
Compiling .pioenvs/vistaalarm/src/esphome/components/wifi/wifi_component_esp8266.cpp.o
Compiling .pioenvs/vistaalarm/src/esphome/core/application.cpp.o
Compiling .pioenvs/vistaalarm/src/esphome/core/component.cpp.o
Compiling .pioenvs/vistaalarm/src/esphome/core/controller.cpp.o
Compiling .pioenvs/vistaalarm/src/esphome/core/esphal.cpp.o
Compiling .pioenvs/vistaalarm/src/esphome/core/helpers.cpp.o
Compiling .pioenvs/vistaalarm/src/esphome/core/log.cpp.o
Compiling .pioenvs/vistaalarm/src/esphome/core/preferences.cpp.o
Compiling .pioenvs/vistaalarm/src/esphome/core/scheduler.cpp.o
Compiling .pioenvs/vistaalarm/src/esphome/core/util.cpp.o
Compiling .pioenvs/vistaalarm/src/main.cpp.o
In file included from src/main.cpp:53:0:
src/vistaAlarm.h:18:0: warning: "D1" redefined
 #define D1 18
 ^
src/vistaAlarm.h:13:0: note: this is the location of the previous definition
 #define D1 (5)
 ^
src/vistaAlarm.h:19:0: warning: "D2" redefined
 #define D2 19
 ^
src/vistaAlarm.h:14:0: note: this is the location of the previous definition
 #define D2 (4)
 ^
src/vistaAlarm.h:20:0: warning: "D5" redefined
 #define D5 21
 ^
src/vistaAlarm.h:8:0: note: this is the location of the previous definition
 #define D5 (14)
 ^
src/main.cpp:160:3: warning: multi-line comment [-Wcomment]
   //   lambda: !lambda "auto VistaECP = new vistaECPHome(16);\nVistaECP->accessCode=\"\"\
   ^
Compiling .pioenvs/vistaalarm/src/vista.cpp.o
Generating partitions .pioenvs/vistaalarm/partitions.bin
Compiling .pioenvs/vistaalarm/libe16/AsyncTCP-esphome/AsyncTCP.cpp.o
src/main.cpp:23:34: error: 'esphome::template_::TemplateBinarySensor* alarm' redeclared as different kind of symbol
 template_::TemplateBinarySensor *alarm;
                                  ^
In file included from /root/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/newlib/wchar.h:4:0,
                 from /root/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/cwchar:44,
                 from /root/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/bits/postypes.h:40,
                 from /root/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/bits/char_traits.h:40,
                 from /root/.platformio/packages/toolchain-xtensa32/xtensa-esp32-elf/include/c++/5.2.0/string:40,
                 from src/esphome/core/component.h:3,
                 from src/esphome/components/api/api_connection.h:3,
                 from src/esphome.h:2,
                 from src/main.cpp:3:
/root/.platformio/packages/framework-arduinoespressif32/tools/sdk/include/newlib/sys/unistd.h:21:11: note: previous declaration 'unsigned int alarm(unsigned int)'
 unsigned  _EXFUN(alarm, (unsigned __secs ));
           ^
src/main.cpp: In function 'void setup()':
src/main.cpp:248:9: error: assignment of function 'unsigned int alarm(unsigned int)'
   alarm = new template_::TemplateBinarySensor();
         ^
src/main.cpp:248:9: error: cannot convert 'esphome::template_::TemplateBinarySensor*' to 'unsigned int(unsigned int)' in assignment
src/main.cpp:426:35: error: no matching function for call to 'esphome::Application::register_binary_sensor(unsigned int (&)(unsigned int))'
   App.register_binary_sensor(alarm);
                                   ^
In file included from src/esphome/components/api/api_connection.h:4:0,
                 from src/esphome.h:2,
                 from src/main.cpp:3:
src/esphome/core/application.h:47:8: note: candidate: void esphome::Application::register_binary_sensor(esphome::binary_sensor::BinarySensor*)
   void register_binary_sensor(binary_sensor::BinarySensor *binary_sensor) {
        ^
src/esphome/core/application.h:47:8: note:   no known conversion for argument 1 from 'unsigned int(unsigned int)' to 'esphome::binary_sensor::BinarySensor*'
src/main.cpp:427:10: error: request for member 'set_name' in 'alarm', which is of non-class type 'unsigned int(unsigned int)'
   alarm->set_name("vistaalarm Alarm");
          ^
src/main.cpp: In lambda function:
src/main.cpp:507:31: error: request for member 'publish_state' in 'alarm', which is of non-class type 'unsigned int(unsigned int)'
           case salarm: alarm->publish_state(open);break;
                               ^
Compiling .pioenvs/vistaalarm/lib789/WiFi/ETH.cpp.o
In file included from src/esphome/components/api/api_connection.h:4:0,
                 from src/esphome.h:2,
                 from src/main.cpp:3:
src/esphome/core/application.h: In instantiation of 'C* esphome::Application::register_component(C*) [with C = unsigned int(unsigned int)]':
src/main.cpp:249:31:   required from here
src/esphome/core/application.h:82:5: error: static assertion failed: Only Component subclasses can be registered
     static_assert(std::is_base_of<Component, C>::value, "Only Component subclasses can be registered");
     ^
Compiling .pioenvs/vistaalarm/lib789/WiFi/WiFi.cpp.o
*** [.pioenvs/vistaalarm/src/main.cpp.o] Error 1
=============================================================== [FAILED] Took 25.36 seconds ===============================================================

Error and Reset / hang when wireless sensor reports open

I upgraded my panel to a Vista21IP. I have 8500 series wireless sensors (glassbreaks, contacts, motions, etc.) I'm monitoring the VistaECP output in the ESPHome log. When a wireless zone sends its open status, I get a small pause, and then a connection error. For things like doors the state will eventually show correctly e.g. "Fault Zone 11 Basement Door". For other sensors (like glassbreaks), HA never gets the open signal. It does this for every wireless zone. I'm guessing it's trying to decode something and can't pay attention to the logout put connection.

For a glassbreak - the HA History shows that the device is closed (C) until I trigger it, and then it shows unavailable for about 1 second. If there are too many of these failures in a row, the ESP32 seems to hang - in the dashboard all of the alarm devices change to unavailable; but eventually, things seem to resolve without intervention. I confirmed in the history for the glassbreak sensor I was testing with (see attached screenshot)

Not a huge deal for a glass-breaks, since that will trigger an alarm status, but I'm wondering when I add in devices like motions, or if people are going in and out of doors with wireless contacts if this might cause the board to crash frequently. An example of the log output with an error is below, and a longer log capture is included as an attached file.

Is there any other logging or detail I can gather to see if we can figure out what's happening when the wireless devices send their status?

vistaECP_21IP_fault.txt
GlassBreak_HA_history
ContactSensor_HA_history

[12:38:30][I][CMD:351]: F7 00 00 FF 10 08 00 5C 08 02 00 00
[12:38:30][D][text_sensor:015]: 'esp_vista Line1': Sending state 'DISARMED'
[12:38:30][D][text_sensor:015]: 'esp_vista Line2': Sending state ' Ready to Arm '
[12:38:30][I][INFO:580]: Prompt: DISARMED
[12:38:30][I][INFO:581]: Prompt: Ready to Arm
[12:38:30][I][INFO:582]: Beeps: 0

[12:38:34][I][CMD:351]: F7 00 00 FF 10 08 00 5C 08 02 00 00
[12:38:34][D][text_sensor:015]: 'esp_vista Line1': Sending state 'SYSTEM LO BAT '
[12:38:34][D][text_sensor:015]: 'esp_vista Line2': Sending state ' '
[12:38:34][I][INFO:580]: Prompt: SYSTEM LO BAT
[12:38:34][I][INFO:581]: Prompt:
[12:38:34][I][INFO:582]: Beeps: 0

[12:38:36][I][CMD:351]: F9 93 00 00 00 00 00 00 00 00 00 00
[12:38:36][I][CMD:351]: F9 83 00 00 00 00 00 00 00 00 00 00
[12:38:36][I][CMD:351]: 9E 02 20 F1 F2 00 00 00 00 00 00 00
[12:38:37][I][CMD:351]: 9E 02 20 80 63 00 00 00 00 00 00 00
[12:38:37][I][CMD:351]: 9E 02 20 F1 F2 00 00 00 00 00 00 00
[12:38:37][I][EXT:351]: 9E 04 06 18 98 B0 00 00 00 00 00 00

[12:38:37][D][info:552]: RFX: 0399512,b0
ERROR Error while reading incoming messages: Error while receiving data: [Errno 104] Connection reset by peer
WARNING Disconnected from API: Error while receiving data: [Errno 104] Connection reset by peer
INFO Connecting to 192.168.1.82:6053 (192.168.1.82)
WARNING Couldn't connect to API (Timeout while waiting for message response!). Trying to reconnect in 1 seconds

INFO Connecting to 192.168.1.82:6053 (192.168.1.82)
INFO Successfully connected to 192.168.1.82
[12:38:52][I][CMD:351]: F7 00 00 FF 10 08 00 5C 08 02 00 00
[12:38:52][D][text_sensor:015]: 'esp_vista Line1': Sending state 'SYSTEM LO BAT '
[12:38:52][D][text_sensor:015]: 'esp_vista Line2': Sending state ' '
[12:38:52][I][INFO:580]: Prompt: SYSTEM LO BAT
[12:38:52][I][INFO:581]: Prompt:
[12:38:52][I][INFO:582]: Beeps: 0

Compiler warning at ECPSoftwareSerial.cpp:208

Probably not what you intended.


INFO Reading configuration 1320VistaAlarm.yaml...
INFO Generating C++ source...
INFO Compiling app...
Processing vistaalarm (board: nodemcuv2; framework: arduino; platform: platformi
o/espressif8266 @ 2.6.3)
--------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/nodemcuv2.h
tml
PLATFORM: Espressif 8266 (2.6.3) > NodeMCU 1.0 (ESP-12E Module)
HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash
PACKAGES:
 - framework-arduinoespressif8266 3.20704.0 (2.7.4)
 - tool-esptool 1.413.0 (4.13)
 - toolchain-xtensa 2.40802.200502 (4.8.2)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ off, Compatibility ~ soft
Found 29 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <ESP8266WiFi> 1.0
|-- <ESP8266mDNS> 1.2
Building in release mode
Compiling .pioenvs\vistaalarm\src\ECPSoftwareSerial.cpp.o
Compiling .pioenvs\vistaalarm\src\debug\vistaPrint.cpp.o
Compiling .pioenvs\vistaalarm\src\esphome\components\api\api_connection.cpp.o
Compiling .pioenvs\vistaalarm\src\esphome\components\api\api_frame_helper.cpp.o
src\ECPSoftwareSerial.cpp: In member function 'size_t SoftwareSerial::write(uint
8_t, bool, int32_t)':
src\ECPSoftwareSerial.cpp:208:20: warning: statement has no effect [-Wunused-val
ue]
         m_bitCycles==m_4800_bitCycles;
                    ^
Compiling .pioenvs\vistaalarm\src\esphome\components\api\api_pb2.cpp.o
.
.
.

Log Message 0: Unknown Zone 0

I'm fighting this issue currently Log Message 0: Unknown Zone 0 Don't know if it see's a zone open somewhere or it thinks a Zone Zero exists. I wonder if it's complaining about the Keyfob I have set as Zones 17, 18 and 19 but not declared in the Yaml.

Also quick question what is the lrrSupervisor?

ESP01?

Hey, first of all.. awesome work.. I'm hooking things up to my Ademco Vista 48LA and things looks promising.. Used the wiring scheme to build my system and instead of an ESP I used my RPi to read from the bus... so, now that I know read is working I was planning to test if the writes does as well.... thing is the only thing I have at hand atm is an ESP01.. I already flashed the MQTT example, and it's connecting to my MQTT broker.. but is not sending anything :(

I know ESP01 is hard to work with because all the available pins have issues if pulled down on boot, but you think is it possible to make it work?

EDIT: This is what my config looks like... If I connect the TX pin at boot it doesn't boot. but if I don't it doesn't send anything into MQTT either :(

// Configures the ECP bus interface with the specified pins 
#define RX_PIN 3   //esp8266: D1, D2, D8 (GPIO 5, 4)
#define TX_PIN 1

Vista 25IT - Strange behavior on the bus

Ciao Alain,
Thank you very much for your effort! This project is amazing!

I currently have an Ademco Vista 25IT, that so far seems to be the italian version of the Vista 20SEa, with the following list of devices:

  • 1 relay 4148 (not sure where and how it is used)
  • RF receiver 5881 H
  • PIR sensor 998 EX (I think)
  • PIR sensor 5890
  • 2 keyfobs 5804
  • lot of wireless contact + break sensors

I followed the doc you wrote and assembled the ground isolated version of the circuit using a pair of 100kohm + 5.1kohm in parallel to make the 4.7kohm resistors (actually 4.85252 kohm) and a pair of 220ohm + 1kohm in parallel to make the 180 ohm resistor.
Used ESP8266 wemos D1 R2. (pin mapping is the same of your example). (I used the 4N35 optocouplers)

Zones/addresses:

  • 3 (pir w/ cable)
  • 4 (pir w/ cable)
  • 8 (panel tampering)
  • 10-26 (contact + break sensors)
  • 27 (wireless pir)
  • 28-35 (key fobs I think)

I'm not sure about the keypad address, looking at the manual, it seems that it should be at address 31, but I'm really not sure about it.
The address I set on the yaml file is 36.
lrr is set to true. (don't have one)

I made the following changes to the code to make it work with my panel:

// Italian language adaptation in vistaAlarm.h
// hoping it is appreciated, here are the translations...

    const char *const FAULT = "APERT";
    const char *const BYPAS = "ESCL.";
    const char *const ALARM = "ALARM";
    const char *const FIRE = "INCEND";
    const char *const CHECK = "VERIF";
    const char *const CLOSED = "CLOSED"; //not used
    const char *const OPEN = "OPEN"; //not used
    const char *const ARMED = "INSERIM.";

    const char *const HITSTAR = "SPENTO Premi* e ";
    const char *const HITSTAR_ALT = "Premere *"; // sometimes it is displayed like this

...

    if (strstr(vista.statusFlags.prompt, HITSTAR) || strstr(vista.statusFlags.prompt, HITSTAR_ALT))
          vista.write('*');

// Status processing in vista.cpp
I need to discard messages that contain only zeroes otherwise I'm not able to retrieve anything from the panel

void Vista::processStatus(char cbuf[], int *idx)
{
    // Before the for loop, discard only 00 packets
    bool onlyZeroes = true;
    for (int x = 0; x <= 10; x++)
    {
        if (cbuf[x] != 0)
        {
            onlyZeroes = false;
            break;
        }
    }
    if (onlyZeroes)
        return;
...

I plugged it to the bus and it works, I can read the bus and send commands to the panel.

The problem is that sometimes I get a lot of false positives, specially when I bypass a zone. This results in wrong reporting of the panel status (Alarm flag, Armed status, Bypassed zones reset, ...)

image
image

After a brief investigation I found out that this is because these messages that are sometimes sent to the panel (not sent together)

[..:..:..][I][CMD:432]: 31 C3 0A 00 00 00 00 00 00 00 00 00 00 
or
[..:..:..][I][CMD:432]: B1 0D 6B 00 00 00 00 00 00 00 00 00 00 
or (most of the times)
[..:..:..][I][CMD:432]: 0E 00 00 00 00 00 00 00 00 00 00 00 00 

Only zeroes example

// Filtered out the "sending state C for sensor XYZ"

[16:07:02][I][CMD:436]: FB 02 20 82 61 00 00 00 00 00 00 00 00 
[16:07:02][I][EXT:436]: 00 24 03 D9 00 00 00 00 00 00 00 00 74 
[16:07:03][I][CMD:436]: 27 00 1C 18 00 00 00 00 00 00 00 00 00 
[16:07:03][I][CMD:436]: 00 00 00 00 00 00 00 00 00 00 00 00 00 
[16:07:05][I][CMD:436]: FE 65 72 20 20 00 00 00 00 00 00 00 00 
[16:07:05][I][INFO:696]: Prompt: SPENTO ZONE ESC                              //bypass is on on zone 10 that is not working
[16:07:05][I][INFO:697]: Prompt:  Si puo' inser  
[16:07:05][I][INFO:698]: Beeps: 0

[16:07:05][D][DEBUG:886]: ac=1,batt status = 0,systemflag=1,lightbat status=0,trouble=0
[16:07:10][D][DEBUG:566]: 30 second time check
[16:07:14][I][CMD:436]: 27 00 1C 18 00 00 00 00 00 00 00 00 00 
[16:07:14][I][CMD:436]: 00 00 00 00 00 00 00 00 00 00 00 00 00 
[16:07:16][I][CMD:436]: FE 65 72 20 20 00 00 00 00 00 00 00 00 
[16:07:16][I][INFO:696]: Prompt: SPENTO ZONE ESC                             //bypass is on on zone 10 that is not working
[16:07:16][I][INFO:697]: Prompt:  Si puo' inser  
[16:07:16][I][INFO:698]: Beeps: 0

Some other interesting logs

// Filtered out the "sending state C for sensor XYZ"

[16:10:55][I][CMD:436]: 27 00 1C 18 00 00 00 00 00 00 00 00 00 
[16:10:56][I][CMD:436]: 00 00 00 00 00 00 00 00 00 00 00 00 00 
[16:10:57][I][CMD:436]: FE 65 72 20 20 00 00 00 00 00 00 00 00 
[16:10:57][I][INFO:696]: Prompt: SPENTO ZONE ESC 
[16:10:57][I][INFO:697]: Prompt:  Si puo' inser  
[16:10:57][I][INFO:698]: Beeps: 0

[16:10:57][D][DEBUG:886]: ac=1,batt status = 0,systemflag=1,lightbat status=0,trouble=0
[16:11:06][I][CMD:436]: 27 00 1C 18 00 00 00 00 00 00 00 00 00 
[16:11:07][I][CMD:436]: 00 00 00 00 00 00 00 00 00 00 00 00 00 
[16:11:08][I][CMD:436]: FE 65 72 20 20 00 00 00 00 00 00 00 00 
[16:11:08][I][INFO:696]: Prompt: SPENTO ZONE ESC 
[16:11:08][I][INFO:697]: Prompt:  Si puo' inser  
[16:11:08][I][INFO:698]: Beeps: 0

[16:11:08][D][DEBUG:886]: ac=1,batt status = 0,systemflag=1,lightbat status=0,trouble=0
[16:11:09][D][DEBUG:566]: 30 second time check
[16:11:17][I][CMD:436]: FB 02 25 81 5D 00 00 00 00 00 00 00 00 
[16:11:18][I][CMD:436]: 27 00 1C 18 00 00 00 00 00 00 00 00 00 
[16:11:18][I][CMD:436]: B1 0D 6B 00 00 00 00 00 00 00 00 00 00 
[16:11:18][I][CMD:436]: FB 02 20 82 61 00 00 00 00 00 00 00 00 
[16:11:18][I][EXT:436]: 00 24 03 D9 00 00 00 00 00 00 00 00 74 
[16:11:20][I][CMD:436]: FE 65 72 20 20 00 00 00 00 00 00 00 00 
[16:11:20][I][INFO:696]: Prompt: SPENTO ZONE ESC 
[16:11:20][I][INFO:697]: Prompt:  Si puo' inser  
[16:11:20][I][INFO:698]: Beeps: 5

[16:11:20][D][text_sensor:067]: 'vistaalarm Beeps': Sending state '5'
[16:11:20][D][DEBUG:886]: ac=0,batt status = 0,systemflag=0,lightbat status=0,trouble=0
[16:11:20][D][text_sensor:067]: 'vistaalarm System Status': Sending state 'triggered'
[16:11:20][D][binary_sensor:036]: 'vistaalarm Fire': Sending state ON
[16:11:20][D][binary_sensor:036]: 'vistaalarm Trouble': Sending state ON
[16:11:20][D][binary_sensor:036]: 'vistaalarm AC': Sending state OFF
[16:11:20][D][binary_sensor:036]: 'vistaalarm Bypass': Sending state OFF
[16:11:20][D][binary_sensor:036]: 'vistaalarm Ready': Sending state OFF

[16:11:23][D][text_sensor:067]: 'vistaalarm System Status': Sending state 'triggered'
[16:11:25][D][text_sensor:067]: 'vistaalarm Beeps': Sending state '5'
[16:11:28][I][CMD:436]: FB 02 25 81 5D 00 00 00 00 00 00 00 00 
[16:11:28][I][EXT:436]: 00 21 40 9F 00 00 00 00 00 00 00 00 74 
[16:11:29][I][CMD:436]: 27 00 1C 18 00 00 00 00 00 00 00 00 00 
[16:11:29][I][CMD:436]: 00 00 00 00 00 00 00 00 00 00 00 00 00 
[16:11:31][I][CMD:436]: FE 65 72 20 20 00 00 00 00 00 00 00 00 
[16:11:31][I][INFO:696]: Prompt: SPENTO ZONE ESC 
[16:11:31][I][INFO:697]: Prompt:  Si puo' inser  
[16:11:31][I][INFO:698]: Beeps: 0

What can I do? Thank you in advance!

[250BPT] Bypassed Sensor Fault

As a user of a Vista system, I would like to be able to know when a motion sensor faults.

My understanding was that this was possible from snooping the serial number of the sensor off the ECP bus, but I could be wrong.

Device spams open/close when zone is faulted

Thanks for providing this code. It works great for my needs. One issue I noticed was that if I have a door or window open home assistant flickers the status. The logs in ESPHome show the device is sending these statuses at a quick rate. Is this a known issue or something that could be wrong in my setup?

image

Failure to compile ESPHome code from dev branch.

Unable to compile program from dev branch. Looks like there is a problem in vistaAlarm.h. If I remove the offending part of the code to look like this I can compile and install the program on my ESP:

    //device check status 
    if (promptContains(p1,CHECK,tz)) {
        
     // if (zones[vista.statusFlags.zone].state != ztrouble)
       //zoneStatusUpdate(vista.statusFlags.zone, "T");
      //zones[vista.statusFlags.zone].time = millis();
      //zones[vista.statusFlags.zone].state = ztrouble;

    } 

Here is the last few lines from the compile log:

logs_VistaAlarm_binary_zone_sensors_run.txt

I am running this on Home Assistant OS using Home Assistant 2023.3.6 with ESP Home 2023.3.2. Let me know if you need more information.

Thanks

No output to Vista 20P

Hey, thanks for making this project available. I can see you put a lot of time into it.

I've assembled the circuitry around a NodeMcu V1.0 and I'm getting status correctly in Home Assistant. I've been unable to get the Vista 20P panel to respond to anything sent from Home Assistant, though. Using the esphome.vistaalarm_alarm_keypress service in the Developer Tools I issue a "#33" string which shows up in the logs on the node. Here's a snippet:

[19:25:11][I][CMD:333]: F7 02 00 FF 10 08 00 1C 08 02 00 00
[19:25:11][I][INFO:524]: Prompt: DISARMED
[19:25:11][I][INFO:525]: Prompt: Ready to Arm
[19:25:11][I][INFO:526]: Beeps: 0
[19:25:11]
[19:25:13][D][Debug:300]: Writing keys: #33
[19:25:19][I][CMD:333]: F6 01 00 00 00 00 00 00 00 00 00 00
[19:25:19][I][EXT:333]: F6 01 00 61 0C 00 6A 62 02 45 43 F5
[19:25:19][I][CMD:333]: F2 0E 02 00 00 00 00 52 FE FE EC 01
[19:25:19][I][INFO:524]: Prompt: DISARMED
[19:25:19][I][INFO:525]: Prompt: Ready to Arm
[19:25:19][I][INFO:526]: Beeps: 0
[19:25:19]
[19:25:20][I][CMD:333]: F7 02 00 FF 10 08 00 1C 08 02 00 00
[19:25:20][I][INFO:524]: Prompt: DISARMED
[19:25:20][I][INFO:525]: Prompt: Ready to Arm
[19:25:20][I][INFO:526]: Beeps: 0
[19:25:20]

KeypadAddr is set to 16. I've modified the code to write to the GPIO16 output, the NodeMcu LED, but inverted, whenever the TX_PIN is written. Here's a little movie of the LED activity. I gave up my 'scope a few years ago so I can't actually look at the green line to to the panel. Does this seem normal to you? Any ideas for further debugging?

Ron

PXL_20210226_190058696.mp4

Zone type 90 alarm does not trigger Alarm status

I'm still digging into this but I thought you might be able to look at the hex and know what's happening. Let me know if you need more debug info.

I've got my Kidde smoke/CO detectors, hard-wired, connected via relay to a 5816 RF transmitter's loop 1 N.C. input. In the Vista 20P, I've got its zone 39 configured as type 90, configurable zone, set to alarm but not sound the horn or keypad tones. There's enough noise going on when the detectors are set off. The configuration for 90 is ten bytes: 0101010000. The panel indicates "ALARM 39 SMOKE DETECTOR" but the binary sensors alarm and system_status become unavailable. Here's the ESPHome device log snippet. At 18:06:27 I open the RF transmitter's loop 1.

[18:06:13][D][text_sensor:067]: 'vistaalarm 1st bedroom 2': Sending state 'C'
[18:06:15][D][text_sensor:067]: 'vistaalarm 2nd bedroom 3': Sending state 'C'
[18:06:16][D][text_sensor:067]: 'vistaalarm Line1': Sending state '****DISARMED*
***'
[18:06:19][I][CMD:441]: F7 00 00 FF 10 08 00 1C 08 02 00 00 2A
[18:06:19][I][INFO:687]: Prompt: ****DISARMED****
[18:06:19][I][INFO:688]: Prompt:   Ready to Arm
[18:06:19][I][INFO:689]: Beeps: 0

[18:06:19][D][text_sensor:067]: 'vistaalarm Patio motion sensor': Sending state
'C'
[18:06:23][D][text_sensor:067]: 'vistaalarm Den window': Sending state 'C'
[18:06:23][D][text_sensor:067]: 'vistaalarm 2nd bedroom 2': Sending state 'C'
[18:06:24][D][text_sensor:067]: 'vistaalarm 3rd bathroom window': Sending state
'C'
[18:06:26][D][text_sensor:067]: 'vistaalarm Garage inside door': Sending state '
C'
[18:06:27][I][CMD:441]: FB 02 20 F1 F2 00 00 00 00 00 00 00 00
[18:06:27][I][EXT:441]: FB 04 07 01 D7 A0 00 00 00 00 00 00 00
[18:06:27][D][info:659]: RFX: 0459223,A0
[18:06:27][D][text_sensor:067]: 'vistaalarm RF Msg': Sending state '0459223,A0'
[18:06:27][I][CMD:441]: F8 59 1C 5A 03 00 00 02 00 00 00 00 77
[18:06:27][I][CMD:441]: F2 12 06 00 00 00 00 65 6C 02 45 6C F5
[18:06:27][I][CMD:441]: F2 16 06 00 00 00 00 66 63 02 45 43 F5
[18:06:27][I][CMD:441]: F8 59 10 5A 00 03 0A 0A 00 00 00 00 77
[18:06:28][D][text_sensor:067]: 'vistaalarm 1st bedroom 1': Sending state 'C'
[18:06:28][I][CMD:441]: F7 00 00 FF 10 39 00 00 0A 02 00 00 41
[18:06:28][D][text_sensor:067]: 'vistaalarm Line1': Sending state 'ALARM 39 SMOK
E  '
[18:06:28][D][text_sensor:067]: 'vistaalarm Line2': Sending state 'DETECTOR
   '
[18:06:28][I][INFO:687]: Prompt: ALARM 39 SMOKE
[18:06:28][I][INFO:688]: Prompt: DETECTOR
[18:06:28][I][INFO:689]: Beeps: 0

[18:06:28][D][text_sensor:067]: 'vistaalarm Smoke/CO detectors': Sending state '
A'
[18:06:28][D][text_sensor:067]: 'vistaalarm System Status': Sending state 'unava
ilable'
[18:06:28][D][binary_sensor:036]: 'vistaalarm Ready': Sending state OFF
[18:06:28][D][text_sensor:067]: 'vistaalarm Garage overhead door': Sending state
 'C'
[18:06:28][D][text_sensor:067]: 'vistaalarm Smoke/CO detectors': Sending state '
A'
[18:06:31][I][CMD:441]: F7 00 00 FF 10 39 00 00 0A 02 00 00 41
[18:06:31][I][INFO:687]: Prompt: ALARM 39 SMOKE
[18:06:31][I][INFO:688]: Prompt: DETECTOR
[18:06:31][I][INFO:689]: Beeps: 0

[18:06:32][D][text_sensor:067]: 'vistaalarm Line2': Sending state 'DETECTOR
   '
[18:06:34][D][text_sensor:067]: 'vistaalarm 2nd bedroom 4': Sending state 'C'
[18:06:34][D][text_sensor:067]: 'vistaalarm Right sliding door': Sending state '
C'
[18:06:35][D][text_sensor:067]: 'vistaalarm 3rd bedroom 2': Sending state 'C'
[18:06:35][I][CMD:441]: F7 00 00 FF 10 39 00 00 0A 02 00 00 41
[18:06:35][I][INFO:687]: Prompt: ALARM 39 SMOKE
[18:06:35][I][INFO:688]: Prompt: DETECTOR
[18:06:35][I][INFO:689]: Beeps: 0

[18:06:36][I][CMD:441]: FB 02 25 81 5D 00 00 00 00 00 00 00 00
[18:06:36][I][EXT:441]: 00 21 00 DF 00 00 00 00 00 00 00 00 74
[18:06:37][I][CMD:441]: FB 02 20 82 61 00 00 00 00 00 00 00 00
[18:06:37][I][EXT:441]: 00 24 05 D7 00 00 00 00 00 00 00 00 74
[18:06:39][I][CMD:441]: F7 00 00 FF 10 39 00 00 0A 02 00 00 41
[18:06:39][I][INFO:687]: Prompt: ALARM 39 SMOKE
[18:06:39][I][INFO:688]: Prompt: DETECTOR
[18:06:39][I][INFO:689]: Beeps: 0

[18:06:43][I][CMD:441]: F7 00 00 FF 10 39 00 00 0A 02 00 00 41
[18:06:43][I][INFO:687]: Prompt: ALARM 39 SMOKE
[18:06:43][I][INFO:688]: Prompt: DETECTOR
[18:06:43][I][INFO:689]: Beeps: 0

[18:06:44][I][CMD:441]: FA 01 02 20 F7 EC 00 00 00 00 00 00 00
[18:06:47][I][CMD:441]: F7 00 00 FF 10 39 00 00 0A 02 00 00 41
[18:06:47][I][INFO:687]: Prompt: ALARM 39 SMOKE
[18:06:47][I][INFO:688]: Prompt: DETECTOR
[18:06:47][I][INFO:689]: Beeps: 0

Vista 120 zone F7 messages not recognized

Hello, first of all, congratulations for this project it's really amazing and I've almost got it to work!
I have a Vista120 with zones using addresses up to 80 (not all of them are populated.). I've been able to use the virtual keypad on home assistant, arm and disarm the alarm, but It's not fully clear to me how to configure the zone expanders on the yaml file.

To be honest I'm not even sure I have zone expanders in my system (I'll check later with my dad who installed the alarm).

I am using an ESP32 and hardware-wise I think I'm fine, here is part of my yaml
image

I also added up to zone80 in the lambda VistaECP->onZoneStatusChange and text_sensor: sections, home assistant sees the entities but from zone 49 onwards just as unknown value.

I am reading F7 messages regarding a Zone open and close, but home assistant doesn't seem to react to them.
Here you can see an example of zone 11 (door) opening and closing several times. I can provide you logs where I open and close every zone if it helps.
[10:27:48][I][CMD:445]: F7 03 00 05 00 11 00 00 08 02 00 00 41
[10:27:55][I][CMD:445]: F7 03 00 05 00 11 00 0C 08 02 00 00 47
[10:27:59][I][CMD:445]: F7 03 00 05 00 11 00 1C 08 02 00 00 5A
[10:28:05][I][CMD:445]: F7 03 00 05 00 11 00 1C 08 02 00 00 5A
[10:28:07][I][CMD:445]: F7 03 00 05 00 11 00 00 08 02 00 00 41
[10:28:14][I][CMD:445]: F7 03 00 05 00 11 00 0C 08 02 00 00 47
[10:28:17][I][CMD:445]: F7 03 00 05 00 11 00 1C 08 02 00 00 5A
[10:28:23][I][CMD:445]: F7 03 00 05 00 11 00 1C 08 02 00 00 5A
[10:28:30][I][CMD:445]: F7 03 00 05 00 11 00 1C 08 02 00 00 5A
[10:28:37][I][CMD:445]: F7 03 00 05 00 11 00 1C 08 02 00 00 5A
[10:28:41][I][CMD:445]: F7 03 00 05 00 11 00 1C 08 02 00 00 5A
[10:28:48][I][CMD:445]: F7 03 00 05 00 11 00 1C 08 02 00 00 5A
[10:32:53][I][CMD:445]: F7 03 00 05 00 11 00 00 08 02 00 00 41
[10:32:56][I][CMD:445]: F7 03 00 05 00 11 00 1C 08 02 00 00 5A
[10:33:03][I][CMD:445]: F7 03 00 05 00 11 00 1C 08 02 00 00 5A
[10:37:49][I][CMD:445]: F7 03 00 05 00 11 00 00 08 02 00 00 41
[10:37:53][I][CMD:445]: F7 03 00 05 00 11 00 1C 08 02 00 00 5A

Here is an example of zone 75 (PIR motion sensor)
[10:58:51][I][CMD:445]: F7 04 00 06 00 75 00 1C 08 02 00 00 20
[10:58:52][I][CMD:445]: F7 04 00 06 00 75 00 00 08 02 00 00 41
[10:58:54][I][CMD:445]: F7 04 00 06 00 75 00 0C 08 02 00 00 4E

Let me know if these seems ok to you or if I have to send you the full logs.

Thanks again!

Phantom Alarm Triggers

A couple days ago I pulled the latest from master and noticed that I'm now occasionally getting phantom alarm triggers. I believe the previous version I was using was around c475d71 since I'm sure I had the change that adjusted the HITSTAR value. Not sure which change might have caused this but I hadn't seen this issue until I updated to the most recent.

The underlying cause appears to be a corrupt message. I looked back at my previous issue (for adding vista SE) and noticed an edit where you think garbage values could be a result of wiring. I'm currently using this schematic (with a 200 ohm resistor instead of 210 and PC817 optocouplers), which is a bit different than the ground isolated one you put up. Although I'd hesitate to do any wiring changes since it's soldered now.

I managed to grab the log output the most recent time it happened.

[23:39:28][D][text_sensor:067]: 'vistaalarm Zone 13': Sending state 'C'
[23:39:29][D][text_sensor:067]: 'vistaalarm Zone 01': Sending state 'C'
[23:39:30][D][text_sensor:067]: 'vistaalarm Line1': Sending state 'ARMED ***STAY***'
[23:39:32][I][CMD:430]: 02 00 8C 08 00 00 00 00 00 00 00 00 00 
[23:39:34][I][CMD:430]: FE 20 20 20 20 00 00 00 00 00 00 00 00 
[23:39:34][I][INFO:658]: Prompt: ARMED ***STAY***
[23:39:34][I][INFO:659]: Prompt:                 
[23:39:34][I][INFO:660]: Beeps: 0

[23:39:36][D][text_sensor:067]: 'vistaalarm Beeps': Sending state '0'
[23:39:36][D][text_sensor:067]: 'vistaalarm Den window': Sending state 'C'
[23:39:38][D][text_sensor:067]: 'vistaalarm Living room window': Sending state 'C'
[23:39:38][D][text_sensor:067]: 'vistaalarm Side door': Sending state 'C'
[23:39:42][D][text_sensor:067]: 'vistaalarm Zone 09': Sending state 'C'
[23:39:43][D][text_sensor:067]: 'vistaalarm Line1': Sending state '๏ฟฝxMEx๏ฟฝ~**STAY***'
[23:39:43][I][INFO:658]: Prompt: ๏ฟฝxMEx๏ฟฝ~**STAY***
[23:39:43][I][INFO:659]: Prompt:                 
[23:39:43][I][INFO:660]: Beeps: 0

[23:39:43][D][text_sensor:067]: 'vistaalarm System Status': Sending state 'triggered'
[23:39:43][D][binary_sensor:036]: 'vistaalarm Alarm': Sending state ON
[23:39:43][D][binary_sensor:036]: 'vistaalarm Chime': Sending state ON
[23:39:43][D][binary_sensor:036]: 'vistaalarm Away': Sending state ON
[23:39:43][D][binary_sensor:036]: 'vistaalarm Stay': Sending state OFF
[23:39:43][D][binary_sensor:036]: 'vistaalarm Bypass': Sending state ON
[23:39:44][I][EXT:430]: F0 31 00 00 00 00 00 00 00 00 00 00 71 
[23:39:44][I][EXT:430]: F0 00 00 00 DF 00 00 00 00 00 00 00 00 
[23:39:48][D][debug:547]: 30 second time check
[23:39:54][I][CMD:430]: 02 00 8C 08 00 00 00 00 00 00 00 00 00 
[23:39:56][I][CMD:430]: FE 20 20 20 20 00 00 00 00 00 00 00 00 
[23:39:56][D][text_sensor:067]: 'vistaalarm Line1': Sending state 'ARMED ***STAY***'
[23:39:56][I][INFO:658]: Prompt: ARMED ***STAY***
[23:39:56][I][INFO:659]: Prompt:                 
[23:39:56][I][INFO:660]: Beeps: 0

[23:39:56][D][text_sensor:067]: 'vistaalarm System Status': Sending state 'armed_home'
[23:39:56][D][binary_sensor:036]: 'vistaalarm Alarm': Sending state OFF
[23:39:56][D][binary_sensor:036]: 'vistaalarm Chime': Sending state OFF
[23:39:56][D][binary_sensor:036]: 'vistaalarm Away': Sending state OFF
[23:39:56][D][binary_sensor:036]: 'vistaalarm Stay': Sending state ON
[23:39:56][D][binary_sensor:036]: 'vistaalarm Bypass': Sending state OFF
[23:40:05][I][CMD:430]: 02 00 8C 08 00 00 00 00 00 00 00 00 00 
[23:40:07][I][CMD:430]: FE 20 20 20 20 00 00 00 00 00 00 00 00 
[23:40:07][I][INFO:658]: Prompt: ARMED ***STAY***
[23:40:07][I][INFO:659]: Prompt:                 
[23:40:07][I][INFO:660]: Beeps: 0

Get status zone 1 to zone 16

Hi!
Many thanks for your excellent work !!
I have a problem. System status, TROUBLE, and READY works fine, but I cant read status for zones. I dont have zone expander, only 16 zones of my vista48LA.
All zones status always is: CLOSED.

Any help ??
Many thanks !!
mqtt

Home Assistant MQTT card

Are there instructions for adding the alarm card into Home Assistant? I'm using the MQTT version.

As far as the interface goes, I use MQTT Explorer I can see the updates, as well as manually publish to /vista/Set/Cmd without problem.

Thanks in advance

Status LED documentation

In the ESPHome yaml file, there is a section commented out for the Status LED. Is there anything written down for what that led does?

vistaECP MQTT Example: 'kpaddr' was not declared in this scope

Hello all. I'm trying to compile the vistaECP example from the MQTT folder. I copied the vistaECP.ino into a folder with everything from src/ECPSoftwareSerial/. Leaving everything as-is, it throws the following error. Am I missing a file? Thanks in advance

W:\vistaECP\vistaECP.ino: In function 'void loop()':
vistaECP:526:30: error: 'kpaddr' was not declared in this scope
       int kpaddrbit=0x01 << (kpaddr - 16);
                              ^
exit status 1
'kpaddr' was not declared in this scope

Issue with releases after November 7th, 2021

I can't get my system to work when I upload all the new files for source code released recently. My last update was with the November 7th release and I had no issue. I upload the whole "vistaEcpInterface" folder as I did not change any of the files so the updates are pretty simple. I went back to my old folder from November 7th and the system is back up and running.

The new code is compiling normally and the vistaalarm log is showing in Home Assistant. The system status is unavailable and nothing is shown in the virtual keypad.

Not sure where to start to find out the issue.

Add a wiki?

Any way you can add a wiki to this project so we can build up a knowledge base? (Eg, compatible hardware, example builds, BOMโ€ฆ)

Vista 128bpt support

First let me say, "YOU ROCK!".
Built an isolated version of the interface and after some tinkering with resistors to get a clean read without gibberish and I was on my way to monitoring my shop alarm thru my Home Assistant.
I'm using the dev version for multiple partition support and can see and interact with both partitions.
Only problems I seem to be having is that the zones don't correspond to the what's in the panel and I think it might have something to do with the 128bpt supporting 128 zones with the panic zones being 997, 998, 999. I did edit the vistaalarm.h to 128 zones max. I'm pretty sure it has to do with my panel using 3 digit address vs the 2 digit addressing expected. Also I'm using the polling loop for all my sensors (except 2 glass breaks) if that makes a difference.
The other issue I'm having is with the lrr emulation, other than changing it to true in the alarm.yaml, is there any other configuration? I set it to true, but never seem to see any lrr messages. Don't know if it makes a difference, but on the 128bpt panel, I'm expected to set an ecp address for the lrr module, but I don't see anywhere to put an address in for the lrr emulation in the alarm.yaml
Thank you for all the time you spent on this wonderful piece of software and for your help.

Building, but not booting.

Hey guys, I had to rebuild my HomeAssistant instance and finally I decided to give ESPHome a Try... this is like the 10th time I rebuild the YAML, folder, wipe, clean and try again with the same results...

I have the NodeMCU connected via USB into the home asssitant pc, and I flashed via USB.. while it's building, flashing and starting.. the latter fails 10 times pretty quick and then the chip goes into safe mode. I think the lib is crashing.. maybe it's becase new versions of arduino or ESPHome? I'm a pretty experienced developer, but C++ and low level things are not my thing... so, I can't quite make heads or tails of this.

I tried to do the least modifictaions possible and still couldn't get it to work... Here's the log of the flash/boot process.. any hints are appreciated.

INFO Running:  platformio run -d /config/esphome/vistaalarm
Processing vistaalarm (board: nodemcuv2; framework: arduino; platform: platformio/[email protected])
--------------------------------------------------------------------------------
HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash
PACKAGES: 
 - framework-arduinoespressif8266 3.20704.0 (2.7.4) 
 - tool-esptool 1.413.0 (4.13) 
 - tool-esptoolpy 1.20800.0 (2.8.0) 
 - toolchain-xtensa 2.40802.200502 (4.8.2)
Library Manager: Installing Update
Library Manager: Already installed, built-in library
Dependency Graph
|-- <ESPAsyncTCP-esphome> 1.2.3
|   |-- <ESP8266WiFi> 1.0
|-- <ESP8266WiFi> 1.0
|-- <ESP8266mDNS> 1.2
|   |-- <ESP8266WiFi> 1.0
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/ECPSoftwareSerial.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/debug/vistaPrint.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/components/api/api_connection.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/components/api/api_pb2.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/components/api/api_pb2_service.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/components/api/api_server.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/components/api/list_entities.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/components/api/proto.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/components/api/subscribe_state.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/components/api/user_services.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/components/api/util.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/components/binary_sensor/automation.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/components/binary_sensor/binary_sensor.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/components/binary_sensor/filter.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/components/logger/logger.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/components/ota/ota_component.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/components/restart/restart_switch.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/components/switch/automation.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/components/switch/switch.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/components/template/binary_sensor/template_binary_sensor.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/components/template/switch/template_switch.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/components/template/text_sensor/template_text_sensor.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/components/text_sensor/text_sensor.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/components/wifi/wifi_component.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/components/wifi/wifi_component_esp32.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/components/wifi/wifi_component_esp8266.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/core/application.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/core/application_esp32.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/core/application_esp8266.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/core/color.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/core/component.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/core/controller.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/core/esphal.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/core/helpers.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/core/log.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/core/preferences.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/core/scheduler.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/esphome/core/util.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/main.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/vista.cpp.o
Generating LD script /data/vistaalarm/.pioenvs/vistaalarm/ld/local.eagle.app.v6.common.ld
Compiling /data/vistaalarm/.pioenvs/vistaalarm/lib4d9/ESP8266WiFi/BearSSLHelpers.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/lib4d9/ESP8266WiFi/CertStoreBearSSL.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/lib4d9/ESP8266WiFi/ESP8266WiFi.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/lib4d9/ESP8266WiFi/ESP8266WiFiAP.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/lib4d9/ESP8266WiFi/ESP8266WiFiGeneric.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/lib4d9/ESP8266WiFi/ESP8266WiFiGratuitous.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/lib4d9/ESP8266WiFi/ESP8266WiFiMulti.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/lib4d9/ESP8266WiFi/ESP8266WiFiSTA-WPS.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/lib4d9/ESP8266WiFi/ESP8266WiFiSTA.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/lib4d9/ESP8266WiFi/ESP8266WiFiScan.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/lib4d9/ESP8266WiFi/WiFiClient.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/lib4d9/ESP8266WiFi/WiFiClientSecureAxTLS.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/lib4d9/ESP8266WiFi/WiFiClientSecureBearSSL.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/lib4d9/ESP8266WiFi/WiFiServer.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/lib4d9/ESP8266WiFi/WiFiServerSecureAxTLS.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/lib4d9/ESP8266WiFi/WiFiServerSecureBearSSL.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/lib4d9/ESP8266WiFi/WiFiUdp.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/lib189/ESPAsyncTCP-esphome/AsyncPrinter.cpp.o
Archiving /data/vistaalarm/.pioenvs/vistaalarm/lib4d9/libESP8266WiFi.a
Compiling /data/vistaalarm/.pioenvs/vistaalarm/lib189/ESPAsyncTCP-esphome/ESPAsyncTCP.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/lib189/ESPAsyncTCP-esphome/ESPAsyncTCPbuffer.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/lib189/ESPAsyncTCP-esphome/SyncClient.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/lib189/ESPAsyncTCP-esphome/tcp_axtls.c.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/lib0d3/ESP8266mDNS/ESP8266mDNS.cpp.o
Archiving /data/vistaalarm/.pioenvs/vistaalarm/lib189/libESPAsyncTCP-esphome.a
Compiling /data/vistaalarm/.pioenvs/vistaalarm/lib0d3/ESP8266mDNS/ESP8266mDNS_Legacy.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/lib0d3/ESP8266mDNS/LEAmDNS.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/lib0d3/ESP8266mDNS/LEAmDNS_Control.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/lib0d3/ESP8266mDNS/LEAmDNS_Helpers.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/lib0d3/ESP8266mDNS/LEAmDNS_Structs.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/lib0d3/ESP8266mDNS/LEAmDNS_Transfer.cpp.o
Archiving /data/vistaalarm/.pioenvs/vistaalarm/libFrameworkArduinoVariant.a
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/Crypto.cpp.o
Archiving /data/vistaalarm/.pioenvs/vistaalarm/lib0d3/libESP8266mDNS.a
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/Esp-frag.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/Esp-version.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/Esp.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/FS.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/FSnoop.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/FunctionalInterrupt.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/HardwareSerial.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/IPAddress.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/MD5Builder.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/Print.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/Schedule.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/StackThunk.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/Stream.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/StreamString.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/Tone.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/TypeConversion.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/Updater.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/WMath.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/WString.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/abi.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/base64.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/cbuf.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/cont.S.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/cont_util.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/core_esp8266_app_entry_noextra4k.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/core_esp8266_eboot_command.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/core_esp8266_features.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/core_esp8266_flash_quirks.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/core_esp8266_flash_utils.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/core_esp8266_i2s.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/core_esp8266_main.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/core_esp8266_noniso.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/core_esp8266_phy.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/core_esp8266_postmortem.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/core_esp8266_si2c.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/core_esp8266_sigma_delta.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/core_esp8266_spi_utils.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/core_esp8266_timer.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/core_esp8266_waveform.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/core_esp8266_wiring.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/core_esp8266_wiring_analog.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/core_esp8266_wiring_digital.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/core_esp8266_wiring_pulse.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/core_esp8266_wiring_pwm.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/core_esp8266_wiring_shift.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/crc32.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/debug.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/flash_hal.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/gdb_hooks.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/heap.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/libb64/cdecode.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/libb64/cencode.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/libc_replacements.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/sntp-lwip2.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/spiffs/spiffs_cache.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/spiffs/spiffs_check.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/spiffs/spiffs_gc.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/spiffs/spiffs_hydrogen.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/spiffs/spiffs_nucleus.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/spiffs_api.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/sqrt32.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/time.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/uart.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/umm_malloc/umm_info.c.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/umm_malloc/umm_integrity.c.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/umm_malloc/umm_local.c.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/umm_malloc/umm_malloc.cpp.o
Compiling /data/vistaalarm/.pioenvs/vistaalarm/FrameworkArduino/umm_malloc/umm_poison.c.o
Archiving /data/vistaalarm/.pioenvs/vistaalarm/libFrameworkArduino.a
Linking /data/vistaalarm/.pioenvs/vistaalarm/firmware.elf
Building /data/vistaalarm/.pioenvs/vistaalarm/firmware.bin
Retrieving maximum program size /data/vistaalarm/.pioenvs/vistaalarm/firmware.elf
Checking size /data/vistaalarm/.pioenvs/vistaalarm/firmware.elf
RAM:   [====      ]  43.9% (used 35924 bytes from 81920 bytes)
Flash: [====      ]  38.3% (used 399912 bytes from 1044464 bytes)
Creating BIN file "/data/vistaalarm/.pioenvs/vistaalarm/firmware.bin" using "/root/.platformio/packages/framework-arduinoespressif8266/bootloaders/eboot/eboot.elf" and "/data/vistaalarm/.pioenvs/vistaalarm/firmware.elf"
========================= [SUCCESS] Took 21.41 seconds =========================
INFO Successfully compiled program.
INFO Running:  esptool.py --before default_reset --after hard_reset --baud 460800 --chip esp8266 --port /dev/ttyUSB0 write_flash 0x0 /data/vistaalarm/.pioenvs/vistaalarm/firmware.bin
esptool.py v3.1
Serial port /dev/ttyUSB0
Connecting....
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: a4:cf:12:ef:8a:5a
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Flash will be erased from 0x00000000 to 0x00062fff...
Compressed 404064 bytes to 277927...
Wrote 404064 bytes (277927 compressed) at 0x00000000 in 6.4 seconds (effective 506.8 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...
INFO Successfully uploaded program.
INFO Starting log output from /dev/ttyUSB0 with baud rate 115200
[21:02:22][I][logger:170]: Log initialized
[21:02:22][C][ota:378]: There have been 0 suspected unsuccessful boot attempts.
[21:02:22][I][app:029]: Running through setup()...
[21:02:22][D][text_sensor:015]: 'vistaalarm System Status': Sending state 'online'
[21:02:22][D][binary_sensor:036]: 'vistaalarm AC': Sending state ON
[21:02:22][D][text_sensor:015]: 'vistaalarm Front door': Sending state 'C'
[21:02:22][D][text_sensor:015]: 'vistaalarm Garage door': Sending state 'C'
[21:02:22][D][text_sensor:015]: 'vistaalarm Back door': Sending state 'C'
[21:02:22][D][text_sensor:015]: 'vistaalarm Living room window': Sending state 'C'
[21:02:22][D][text_sensor:015]: 'vistaalarm Dining room window': Sending state 'C'
[21:02:22][D][text_sensor:015]: 'vistaalarm Family room window LF': Sending state 'C'
[21:02:22][D][text_sensor:015]: 'vistaalarm Family room window RF': Sending state 'C'
[21:02:22][D][text_sensor:015]: 'vistaalarm Basement windows': Sending state 'C'
[21:02:22][D][text_sensor:015]: 'vistaalarm Basement windows9': Sending state 'C'
[21:02:22][D][text_sensor:015]: 'vistaalarm Basement windows10': Sending state 'C'
[21:02:22][D][text_sensor:015]: 'vistaalarm zone 17': Sending state 'C'
[21:02:22][C][wifi:037]: Setting up WiFi...
[21:02:22][D][wifi:380]: Starting scan...
[21:02:22]
[21:02:22]--------------- CUT HERE FOR EXCEPTION DECODER ---------------
[21:02:22]
[21:02:22]Exception (28):
WARNING Exception type: Access to invalid address: LOAD (wild pointer?)
[21:02:22]epc1=0x40211a71 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000
INFO Need to fetch platformio IDE-data, please stand by
INFO Running:  platformio run -d /config/esphome/vistaalarm -t idedata
WARNING Decoded 0x40211a71: Vista::getExtBytes()
[21:02:22]
[21:02:22]>>>stack>>>
WARNING Found stack trace! Trying to decode it
[21:02:22]
[21:02:22]ctx: cont
[21:02:22]sp: 3ffffb40 end: 3fffffc0 offset: 0190
[21:02:22]3ffffcd0:  00000000 4bc6a7f0 000000b4 00000000  
[21:02:22]3ffffce0:  3fff38dc 3fff0188 3fff0188 40211c09  
WARNING Decoded 0x40211c09: Vista::handle()
[21:02:22]3ffffcf0:  3ffe88a7 3fff1830 40100b42 84189374  
WARNING Decoded 0x40100b42: millis
[21:02:22]3ffffd00:  00000000 00000000 00000000 00000000  
[21:02:22]3ffffd10:  3fff38dc 3fff0188 3fff35dc 4020d532  
WARNING Decoded 0x4020d532: vistaECPHome::update()
[21:02:22]3ffffd20:  00000000 3fff402c 3ffffd60 3fff4f50  
[21:02:22]3ffffd30:  00000020 3fff4f0c 00000020 401014db  
WARNING Decoded 0x401014db: free
[21:02:22]3ffffd40:  00000000 4bc6a7f0 000000b4 3fff00e4  
[21:02:22]3ffffd50:  00000004 3fff402c 3fff00f0 40226a19  
WARNING Decoded 0x40226a19: operator delete(void*) at /workdir/repo/gcc/libstdc++-v3/libsupc++/del_op.cc:48
[21:02:22]3ffffd60:  00000000 3fff4f0c 3fff00f0 4020c258  
WARNING Decoded 0x4020c258: void std::vector<std::unique_ptr<esphome::Scheduler::SchedulerItem, std::default_delete<esphome::Scheduler::SchedulerItem> >, std::allocator<std::unique_ptr<esphome::Scheduler::SchedulerItem, std::default_delete<esphome::Scheduler::SchedulerItem> > > >::_M_emplace_back_aux<std::unique_ptr<esphome::Scheduler::SchedulerItem, std::default_delete<esphome::Scheduler::SchedulerItem> > >(std::unique_ptr<esphome::Scheduler::SchedulerItem, std::default_delete<esphome::Scheduler::SchedulerItem> >&&)
[21:02:22]3ffffd70:  00000002 00000003 3fff00e4 00000000  
[21:02:22]3ffffd80:  3fff4df4 3fff402c 3fff00e4 4021d8ec  
WARNING Decoded 0x4021d8ec: std::_Function_handler<void (), esphome::PollingComponent::call_setup()::{lambda()#1}>::_M_invoke(std::_Any_data const&) at component.cpp
[21:02:22]3ffffd90:  3fff3b0c 3fff402c 3fff00e4 40100570  
WARNING Decoded 0x40100570: esphome::Scheduler::call()
[21:02:22]3ffffda0:  3fff3088 3fff4e9c 3fff3034 3fff4e9c  
[21:02:22]3ffffdb0:  00000000 0000002a 00000020 00000000  
[21:02:22]3ffffdc0:  000000b4 3fff4074 0000ea60 40209fd9  
WARNING Decoded 0x40209fd9: std::pair<esphome::Component**, int> std::get_temporary_buffer<esphome::Component*>(int)
[21:02:22]3ffffdd0:  3fff4e9c 0000002b 3fff00e4 00000100  
[21:02:22]3ffffde0:  3fff173c 0000002a 3fff00e4 4020af7a  
WARNING Decoded 0x4020af7a: esphome::Application::setup()
[21:02:22]3ffffdf0:  3fff4e9c 0000002b 00000020 40101512  
WARNING Decoded 0x40101512: malloc
[21:02:22]3ffffe00:  00000100 3fff2fdc 3fff3088 4020a320  
WARNING Decoded 0x4020a320: esphome::Application::register_component_(esphome::Component*)
[21:02:22]3ffffe10:  3fff3a8c 00000000 00000030 3fff029c  
[21:02:22]3ffffe20:  3fff00e4 3fff3a8c 00000001 4020ffd4  
WARNING Decoded 0x4020ffd4: setup
[21:02:22]3ffffe30:  3fff1910 00000000 00000000 3fff1930  
[21:02:22]3ffffe40:  00000000 00000000 00000000 4021ef98  
WARNING Decoded 0x4021ef98: precache
[21:02:22]3ffffe50:  00000000 4021ef98 00000000 4021ef98  
WARNING Decoded 0x4021ef98: precache
WARNING Decoded 0x4021ef98: precache
[21:02:22]3ffffe60:  00000000 4021ef98 00000000 4021ef98  
WARNING Decoded 0x4021ef98: precache
WARNING Decoded 0x4021ef98: precache
[21:02:22]3ffffe70:  00000000 00000000 3fff1880 00000000  
[21:02:22]3ffffe80:  00000000 3fff18a0 00000000 00000000  
[21:02:22]3ffffe90:  00000000 4021ef98 00000000 4021ef98  
WARNING Decoded 0x4021ef98: precache
WARNING Decoded 0x4021ef98: precache
[21:02:22]3ffffea0:  00000000 4021ef98 00000000 4021ef98  
WARNING Decoded 0x4021ef98: precache
WARNING Decoded 0x4021ef98: precache
[21:02:22]3ffffeb0:  00000000 4021ef98 00000000 00000000  
WARNING Decoded 0x4021ef98: precache
[21:02:23]3ffffec0:  3fff27f4 3fff27f8 3fff27f8 4020e594  
WARNING Decoded 0x4020e594: std::_Function_handler<std::vector<esphome::Component*, std::allocator<esphome::Component*> > (), setup::{lambda()#3}>::_M_invoke(std::_Any_data const&) at main.cpp
[21:02:23]3ffffed0:  3fff2c1c 3fff2c20 3fff2c20 3fffff78  
[21:02:23]3ffffee0:  00000001 feefeffe feefeffe 3fff34d4  
[21:02:23]3ffffef0:  3fff345c 3fff32ac 3fff3204 3fff3154  
[21:02:23]3fffff00:  3fff23d4 3fff2f24 3fff2e9c 3fff2de4  
[21:02:23]3fffff10:  3fff2d2c 3fff2c5c 3fff2b94 3fff2acc  
[21:02:23]3fffff20:  3fff29dc 3fff2924 3fff284c 3fff277c  
[21:02:23]3fffff30:  3fff26d4 3fff262c 3fff2590 3fff24e8  
[21:02:23]3fffff40:  3fff2448 3fff2330 3fff2270 3fff21b8  
[21:02:23]3fffff50:  3fff20f8 3fff2030 3fff1f70 3fff1ec8  
[21:02:23]3fffff60:  3fff1e70 3fff1d80 3fff1cc0 3fff1c18  
[21:02:23]3fffff70:  3fff1b48 3fff1aa0 3fff3574 feefeffe  
[21:02:23]3fffff80:  3fff34d4 00000090 000000a0 feefeffe  
[21:02:23]3fffff90:  feefeffe feefeffe feefeffe 3fff05d4  
[21:02:23]3fffffa0:  3fffdad0 00000000 3fff0594 4021b174  
WARNING Decoded 0x4021b174: loop_wrapper() at core_esp8266_main.cpp
[21:02:23]3fffffb0:  feefeffe feefeffe 3ffe84f4 401009b9  
WARNING Decoded 0x401009b9: cont_wrapper
[21:02:23]<<<stack<<<
[21:02:23]
[21:02:23]--------------- CUT HERE FOR EXCEPTION DECODER ---------------

Decoding Vista 20se

Following up from our conversation on the home assistant board here.

I received my logic analyzer today. You said you could post a setup file for pulse view?

And to double check before I wire it in, I want to connect to the lines going into D1, D2, D5, and ground on the esp? Would I need to also do the 3.3v one too? And ground being shared between the panel and esp side shouldn't be a problem, right?

what to do with grounds?

I'm pretty new to circuit design, for the gnd lines that are separate from the gnd on the esp8266, do i have to ground those to something outside the circuit, ie. the metal box my vista20p resides in, or do they have to be grounded separately?

sorry for the noob question!

Issues with sensors and keypad presses

Hello Alain! Thanks for creating this project to help us smartify our older alarm systems.

I'm having some odd issues with my setup that I haven't been able to figure out. I've read through many of the other issues people have had and still haven't been able to figure it out. I've tried to attach as much information and logs about my system as possible. Don't mind the Telco Fault, I had the system disconnected at this time to hopefully prevent a false alarm. I'm sure my issues are just a mistake (or mistakes) I've made trying to set this up.

System

  • Monitored by ADT through POTS
  • System: Vista 20p
  • Version: 9.18 D1 (I think)
  • Model: SAVS20P5
    20220914_001546

Devices

  • 6150RF (Address 16. With 4 wireless contact sensors and 1 motion sensor, Zones 9-12 and 13)
  • 6160 (Address 17)
  • MH ET LIVE ESP32DevKIT running this project (Address 18)
    20220914_020527

Config

#for documentation see project at https://github.com/Dilbert66/esphome-VistaECP
substitutions:
  systemName: "vistaalarm"
  accessCode: !secret access_code #Only comes into effect if needed for arming and quickarm is not set
  keypadAddr: "18" #set this to an unused keypad address slot. Make sure to enable it in  your vista panel programming
 
  ##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
  
  ##esp8266
  # rxPin: "5" #GPIO pin to use for data receive (yellow line) 
  # txPin: "4" #GPIO pin to use for data transmit (green line)
  # monitorPin: "14" #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: "07" # 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: "30000"  # time  to live  in ms for zone/fire status before expiring;
  quickArm: "false"
  lrrSupervisor: "true" # set to true if we don't have an LRR monitoring supervisor we can emulate one to get the statuses
  
globals:
       #persistent storage variables
    - id: zoneStates  #persistant storage for zone states in case of reboot
      type: int
      restore_value: yes
    - id: zoneAlarms  #persistant storage for zone states in case of reboot
      type: int
      restore_value: yes
    - id: zoneBypass  #persistant storage for zone states in case of reboot
      type: int
      restore_value: yes
    - id: zoneChecks  #persistant storage for zone states in case of reboot
      type: int
      restore_value: yes      
    - id: lrrCode  #persistant storage for last lrr message in case of reboot
      type: int
      restore_value: yes      
  
      

esphome:
  name: $systemName
  platform: ESP32
  #board: nodemcu-32s
  board: mhetesp32devkit
  # platform: ESP8266
  # board: nodemcuv2

  # subdirectory where library *.h and *.cpp are placed 
  includes:
    - vistaEcpInterface/

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  
  # Optional manual IP
  manual_ip:
    static_ip: 192.168.1.187
    gateway: 192.168.1.1
    subnet: 255.255.255.0

  ap:
    ssid: "$systemName"
    password: !secret wifi_password_backup

logger:
  baud_rate: 115200
  level: DEBUG
  
api:
   password: !secret api_password  
   #encryption:
     #key: !secret encryption_key   
   
ota:
   password: !secret ota_password
   safe_mode: True
   
status_led:
  pin:
    number: GPIO2
    inverted: yes

custom_component:
- lambda: |-
    auto VistaECP = new vistaECPHome($keypadAddr,$rxPin,$txPin,$monitorPin);
    VistaECP->accessCode="$accessCode";
    VistaECP->quickArm=$quickArm;
    VistaECP->expanderAddr1=$expanderAddr1; //zone expander
    VistaECP->expanderAddr2=$expanderAddr2;
    VistaECP->relayAddr1=$relayAddr1; //relay module 
    VistaECP->relayAddr2=$relayAddr2;
    VistaECP->relayAddr3=$relayAddr3; 
    VistaECP->relayAddr4=$relayAddr4;     
    VistaECP->lrrSupervisor=$lrrSupervisor;
    VistaECP->TTL=$TTL;
    VistaECP->debug=1;
    VistaECP->onSystemStatusChange([&](std::string statusCode) {
       id(system_status).publish_state(statusCode);
    });
    VistaECP->onLrrMsgChange([&](std::string msg) {
        id(m1).publish_state(msg); 
    }); 
    VistaECP->onRfMsgChange([&](std::string msg) {
        id(rf1).publish_state(msg); 
    });    
    VistaECP->onLine1DisplayChange([&](std::string msg) {
        id(l1).publish_state(msg); 
    });  
    VistaECP->onLine2DisplayChange([&](std::string msg) {
        id(l2).publish_state(msg); 
    }); 
    VistaECP->onBeepsChange([&](std::string beeps) {
        id(beep1).publish_state(beeps); 
    });      
    VistaECP->onStatusChange([&](sysState led,bool open) {
      switch(led) {
        case sfire: id(fire).publish_state(open);break;
        case salarm: id(alarm1).publish_state(open);break;
        case strouble: id(trouble).publish_state(open);break;
        case sarmedstay: id(stay).publish_state(open);break;
        case sarmedaway: id(away).publish_state(open);break;
        case sinstant: id(instant).publish_state(open);break; 
        case sready: id(ready).publish_state(open);break; 
        case sac: id(ac).publish_state(open);break;          
        case sbypass: id(bypass).publish_state(open);break;  
        case schime: id(chime).publish_state(open);break;
        case sbat: id(bat).publish_state(open);break;
        case scheck: id(check).publish_state(open);break;
        case sarmednight: id(night).publish_state(open);break;   
        case sarmed: id(armed).publish_state(open);break;       
        default: break;
        }
    });
    VistaECP->onZoneStatusChange([&](uint8_t zone, std::string open) {
      switch (zone) {
        case 9: id(z9).publish_state(open); break;
        case 10: id(z10).publish_state(open); break;
        case 11: id(z11).publish_state(open); break;
        case 12: id(z12).publish_state(open); break;
        case 13: id(z13).publish_state(open); break;
      }
    }); //you can add more zones above . Also add the text sensor entry below
    
    VistaECP->onRelayStatusChange([&](uint8_t addr,uint8_t zone,bool open) {
    switch(addr) {
    case 12: switch (zone) {
                case 1: id(r1).publish_state(open); break;
                case 2: id(r2).publish_state(open); break;
              }
              break;
      case 13: break;
      }
    });  //add as many case and switch statements as needed to control your binary sensor outputs      
    return {VistaECP};

binary_sensor:
 #- platform: gpio  #example use of pin d8 as a zone trigger port for the emulated zone expander
  #  pin: D8
  #  id: pind8
  #  device_class: window
   # on_press:       #zone,on/off
   #   - lambda: |-
   #       vista.setExpFault(17,1); 
  #  on_release:
  #    - lambda: |-
   #       vista.setExpFault(17,0);  
    
    #system status indicator definitions
  - platform: template
    id: trouble
    name: "$systemName Trouble"
    #device_class: problem
    
  - platform: template
    id: bypass
    name: "$systemName Bypass"
    
  - platform: template
    id: away
    name: "$systemName Away"
    
  - platform: template
    id: armed
    name: "$systemName Armed"    
    
  - platform: template
    id: stay
    name: "$systemName Stay"
    
  - platform: template
    id: instant
    name: "$systemName Instant"
    
  - platform: template
    id: night
    name: "$systemName Night"
    
  - platform: template
    id: ac
    name: "$systemName AC"
    device_class: plug  
    
  - platform: template
    id: chime
    name: "$systemName Chime"
    
  - platform: template
    id: check
    name: "$systemName Check"
    device_class: problem  

  - platform: template
    id: alarm1
    name: "$systemName Alarm"
    
  - platform: template
    id: bat
    name: "$systemName Battery"
    device_class: problem
    
  - platform: template
    id: fire
    device_class: smoke
    name: "$systemName Fire"

  - platform: template
    id: ready
    name: "$systemName Ready"
    #device_class: problem
    
    #relay module channels add as many as you need.  To hide, comment out the name: attribute
  - platform: template
    id: r1
    # name: "$systemName Relay1"

  - platform: template
    id: r2
    # name: "$systemName Relay2"   
   
    #zone definitions.  Add more (also add to the switch statment above). To hide, comment out the name: attribute
text_sensor:
    #zone definitions
  - platform: template
    id: z9
    name: "$systemName Front Door"

  - platform: template
    id: z10
    name: "$systemName Patio Door"

  - platform: template
    id: z11
    name: "$systemName Garage Door"

  - platform: template
    id: z12
    name: "$systemName Basement Door"

  - platform: template
    id: z13
    name: "$systemName Main Motion"

    #system status 
  - platform: template
    id: system_status
    name: "$systemName System Status"
    icon: "mdi:shield"

  - platform: template
    id: m1
    name: "$systemName Lrr Msg"
    icon: "mdi:alert-box"
    
  - platform: template
    id: rf1
    name: "$systemName RF Msg"
    icon: "mdi:alert-box"    

  - platform: template
    id: l1
    name: "$systemName Line1"
 

  - platform: template
    id: l2
    name: "$systemName Line2"
    
  - platform: template
    id: beep1
    name: "$systemName Beeps"    

switch:
  - platform: template
    name: "$systemName Connection"
    id: connection_status_switch
    lambda: |-
      return vista.keybusConnected;
    icon: "mdi:shield-link-variant"
    turn_on_action:
      - switch.toggle: restart_switch
    turn_off_action:
      - lambda: |-
          disconnectVista();
  - platform: restart
    id: restart_switch

Sensor Issue

  • When a door is opened, there are a lot of hex messages that come through, but it doesn't set the text sensor status to O. This was working at some point, but I managed to break it while trying to get keypad presses to work.

Things I've Tried

  • Enabling/Disabling expanderAddr1 and setting to 07
  • Enabling/Disabling lrrSupervisor. Not sure if this needs to be enabled or not if being monitored by ADT through POTS. Would be nice to know though.
  • Commenting out unused relay in the lambda

Log

This is the log from when I open the basement door, zone 12.

[02:34:17][I][EXT:445]: FB 04 01 CA 5C A0 00 00 00 00 00 00 00 
[02:34:17][D][info:690]: RFX: 0117340,A0
[02:34:17][D][text_sensor:067]: 'vistaalarm RF Msg': Sending state '0117340,A0'
[02:34:17][I][CMD:445]: F2 12 06 00 00 00 00 61 6C 02 45 6C F5 
[02:34:17][I][CMD:445]: F2 16 06 00 00 00 00 62 63 02 45 43 F5 
[02:34:17][I][CMD:445]: F7 00 00 07 10 08 00 0C 08 02 00 00 2A 
[02:34:17][D][text_sensor:067]: 'vistaalarm Line1': Sending state '****DISARMED****'
[02:34:17][D][text_sensor:067]: 'vistaalarm Line2': Sending state 'Hit * for faults'
[02:34:17][I][INFO:724]: Prompt: ****DISARMED**** 
[02:34:17][I][INFO:725]: Prompt: Hit * for faults
[02:34:17][I][INFO:726]: Beeps: 0

[02:34:17][D][text_sensor:067]: 'vistaalarm System Status': Sending state 'unavailable'
[02:34:17][D][binary_sensor:036]: 'vistaalarm Ready': Sending state OFF
[02:34:17][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:17][I][EXT:445]: F6 12 00 92 00 C1 C4 00 00 00 00 00 00 
[02:34:18][I][EXT:445]: F6 12 00 12 01 ED C4 00 00 00 00 00 00 
[02:34:18][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:18][I][EXT:445]: F6 12 00 22 09 12 E2 00 00 00 00 00 00 
[02:34:18][I][EXT:445]: F6 12 00 52 01 AD E2 00 00 00 00 00 00 
[02:34:19][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:19][I][EXT:445]: F6 12 00 12 02 41 F4 00 00 00 00 00 00 
[02:34:19][I][EXT:445]: F6 12 00 92 01 6D F4 00 00 00 00 00 00 
[02:34:19][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:19][I][EXT:445]: F6 12 00 92 02 0A EC 00 00 00 00 00 00 
[02:34:20][I][EXT:445]: F6 12 00 D2 01 2D EC 00 00 00 00 00 00 
[02:34:20][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:20][I][EXT:445]: F6 12 00 92 00 C1 C4 00 00 00 00 00 00 
[02:34:20][I][EXT:445]: F6 12 00 12 01 ED C4 00 00 00 00 00 00 
[02:34:21][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:21][I][EXT:445]: F6 12 00 12 09 0A E2 00 00 00 00 00 00 
[02:34:21][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:21][I][EXT:445]: F6 12 00 52 01 AD 00 00 00 00 00 00 00 
[02:34:25][I][CMD:445]: F7 00 00 07 10 08 00 0C 08 02 00 00 2A 
[02:34:25][I][INFO:724]: Prompt: ****DISARMED**** 
[02:34:25][I][INFO:725]: Prompt: Hit * for faults
[02:34:25][I][INFO:726]: Beeps: 0

[02:34:25][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:25][I][EXT:445]: F6 12 00 22 12 82 EC 00 00 00 00 00 00 
[02:34:25][I][EXT:445]: F6 12 00 92 01 6D EC 00 00 00 00 00 00 
[02:34:25][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:26][I][EXT:445]: F6 12 00 22 04 12 C4 00 00 00 00 00 00 
[02:34:26][I][EXT:445]: F6 12 00 D2 01 2D C4 00 00 00 00 00 00 
[02:34:26][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:26][I][CMD:445]: 77 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:26][I][EXT:445]: F6 12 00 12 00 C1 DC 00 00 00 00 00 00 
[02:34:26][I][CMD:445]: FB 02 20 F1 F2 00 00 00 00 00 00 00 00 
[02:34:27][I][EXT:445]: FB 04 01 CA 5C 80 00 00 00 00 00 00 00 
[02:34:27][D][info:690]: RFX: 0117340,80
[02:34:27][D][text_sensor:067]: 'vistaalarm RF Msg': Sending state '0117340,80'
[02:34:27][I][CMD:445]: F2 12 06 00 00 00 00 63 6C 02 45 6C F5 
[02:34:27][I][CMD:445]: F7 00 00 07 10 94 00 10 08 02 00 00 54 
[02:34:27][D][text_sensor:067]: 'vistaalarm Line1': Sending state 'Telco Fault     '
[02:34:27][D][text_sensor:067]: 'vistaalarm Line2': Sending state '                '
[02:34:27][I][INFO:724]: Prompt: Telco Fault      {84,101,108,99,111,0}
[02:34:27][I][INFO:725]: Prompt:                 
[02:34:27][I][INFO:726]: Beeps: 0

[02:34:27][D][text_sensor:067]: 'vistaalarm System Status': Sending state 'disarmed'
[02:34:27][D][binary_sensor:036]: 'vistaalarm Ready': Sending state ON
[02:34:27][I][CMD:445]: F2 16 06 00 00 00 00 64 63 02 45 43 F5 
[02:34:27][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:27][I][EXT:445]: F6 12 00 22 00 02 F4 00 00 00 00 00 00 
[02:34:27][I][EXT:445]: F6 12 00 12 01 ED F4 00 00 00 00 00 00 
[02:34:27][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:28][I][EXT:445]: F6 12 00 22 09 82 62 00 00 00 00 00 00 
[02:34:28][I][EXT:445]: F6 12 00 52 01 AD 62 00 00 00 00 00 00 
[02:34:28][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:28][I][EXT:445]: F6 12 00 40 04 24 22 00 00 00 00 00 00 
[02:34:28][I][EXT:445]: F6 12 00 92 01 6D 22 00 00 00 00 00 00 
[02:34:29][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:29][I][EXT:445]: F6 12 00 02 02 82 DC 00 00 00 00 00 00 
[02:34:29][I][EXT:445]: F6 12 00 D2 01 2D DC 00 00 00 00 00 00 
[02:34:29][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:30][I][EXT:445]: F6 12 00 22 00 02 F4 00 00 00 00 00 00 
[02:34:30][I][EXT:445]: F6 12 00 12 01 ED F4 00 00 00 00 00 00 
[02:34:30][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:30][I][EXT:445]: F6 12 00 92 09 0A 62 00 00 00 00 00 00 
[02:34:31][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:34:31][I][EXT:445]: F6 12 00 52 01 AD 00 00 00 00 00 00 00 
[02:34:32][D][text_sensor:067]: 'vistaalarm Beeps': Sending state '0'
[02:34:34][I][CMD:445]: F7 00 00 07 10 94 00 10 08 02 00 00 54 
[02:34:34][I][INFO:724]: Prompt: Telco Fault      {84,101,108,99,111,0}
[02:34:34][I][INFO:725]: Prompt:                 
[02:34:34][I][INFO:726]: Beeps: 0

[02:34:36][I][CMD:445]: FB 02 25 81 5D 00 00 00 00 00 00 00 00 
[02:34:36][I][EXT:445]: 00 21 00 DF 00 00 00 00 00 00 00 00 74 
[02:34:37][I][CMD:445]: FB 02 20 60 83 00 00 00 00 00 00 00 00 
[02:34:37][I][EXT:445]: 00 24 00 DC 00 00 00 00 00 00 00 00 74 
[02:34:38][I][CMD:445]: F7 00 00 07 10 08 00 1C 08 02 00 00 2A

HA Keypad Issue

  • When using the keypad in HA, nothing happens with the Vista system. I can see the commands being sent in the logs though. Not even sure where to start with debugging this one. I am using the custom keypad javascript supplied from this project.

Log

When just hitting a key on the keypad

[02:42:23][D][Debug:412]: Writing keys: 0
[02:42:23][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:42:23][I][EXT:445]: F6 12 00 22 02 00 B1 00 00 00 00 00 00 
[02:42:24][I][EXT:445]: F6 12 00 92 01 6D B1 00 00 00 00 00 00 
[02:42:24][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:42:24][I][EXT:445]: F6 12 00 12 02 B0 FF 00 00 00 00 00 00 
[02:42:24][I][EXT:445]: F6 12 00 D2 01 2D FF 00 00 00 00 00 00 
[02:42:25][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:42:25][I][EXT:445]: F6 12 00 22 20 00 D8 00 00 00 00 00 00 
[02:42:25][I][EXT:445]: F6 12 00 12 01 ED D8 00 00 00 00 00 00 
[02:42:25][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:42:25][I][EXT:445]: F6 12 00 92 04 B1 00 00 00 00 00 00 00 
[02:42:26][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:42:26][I][CMD:445]: 77 12 00 00 00 00 00 00 00 00 00 00 00 
[02:42:26][I][EXT:445]: F6 12 00 12 08 00 E8 00 00 00 00 00 00 
[02:42:26][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:42:26][I][EXT:445]: F6 12 00 52 01 AD 00 00 00 00 00 00 00 
[02:42:30][I][CMD:445]: F7 00 00 07 10 94 00 10 08 02 00 00 54 
[02:42:30][I][INFO:724]: Prompt: Telco Fault      {84,101,108,99,111,0}
[02:42:30][I][INFO:725]: Prompt:                 
[02:42:30][I][INFO:726]: Beeps: 0

[02:42:32][D][text_sensor:067]: 'vistaalarm Beeps': Sending state '0'
[02:42:34][I][CMD:445]: F7 00 00 07 10 08 00 1C 08 02 00 00 2A 
[02:42:34][D][text_sensor:067]: 'vistaalarm Line1': Sending state '****DISARMED****'
[02:42:34][D][text_sensor:067]: 'vistaalarm Line2': Sending state '  Ready to Arm  '
[02:42:34][I][INFO:724]: Prompt: ****DISARMED**** 
[02:42:34][I][INFO:725]: Prompt:   Ready to Arm  
[02:42:34][I][INFO:726]: Beeps: 0

[02:42:35][I][EXT:445]: F6 12 00 00 21 00 DF 00 00 00 00 00 00 
[02:42:36][I][CMD:445]: FB 02 20 82 61 00 00 00 00 00 00 00 00 
[02:42:37][I][EXT:445]: 00 24 82 5A 00 00 00 00 00 00 00 00 74 
[02:42:38][I][CMD:445]: F7 00 00 07 10 94 00 10 08 02 00 00 54 

When using HA Developer Tools to send a code

[02:45:41][D][Debug:412]: Writing keys: 12341
[02:45:42][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:45:42][I][EXT:445]: F6 12 00 22 0A 01 02 03 04 01 DD 00 00 
[02:45:42][I][EXT:445]: F6 12 00 92 01 6D 02 03 04 01 DD 00 00 
[02:45:42][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:45:42][I][EXT:445]: F6 12 00 92 0A 01 E0 C0 70 9D 00 00 00 
[02:45:43][I][EXT:445]: F6 12 00 D2 01 2D E0 C0 70 9D 00 00 00 
[02:45:43][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:45:43][I][EXT:445]: F6 12 00 92 01 01 02 03 04 01 5D 00 00 
[02:45:43][I][EXT:445]: F6 12 00 12 01 ED 02 03 04 01 5D 00 00 
[02:45:44][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:45:44][I][EXT:445]: F6 12 00 92 0A 04 03 04 01 1D 00 00 00 
[02:45:44][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:45:44][I][EXT:445]: F6 12 00 12 04 40 E0 C0 70 DD 00 00 00 
[02:45:44][I][EXT:445]: F6 12 00 52 01 AD E0 C0 70 DD 00 00 00 
[02:45:45][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:45:45][I][EXT:445]: F6 12 00 12 02 C0 E0 C0 70 9D 00 00 00 
[02:45:45][I][EXT:445]: F6 12 00 92 01 6D E0 C0 70 9D 00 00 00 
[02:45:45][D][text_sensor:067]: 'vistaalarm Garage Door': Sending state 'C'
[02:45:45][I][CMD:445]: F6 12 00 00 00 00 00 00 00 00 00 00 00 
[02:45:45][I][EXT:445]: F6 12 00 D2 01 2D 00 00 00 00 00 00 00 
[02:45:47][I][EXT:445]: F6 12 00 00 21 00 DF 00 00 00 00 00 00 
[02:45:48][I][CMD:445]: F7 00 00 07 10 94 00 10 08 02 00 00 54

fails to compile

This is the message I get when I try to upload from esphome.

INFO Reading configuration /config/esphome/VistaAlarm.yaml...
INFO Generating C++ source...
INFO Compiling app...
INFO Running: platformio run -d /config/esphome/vistaalarm
Processing vistaalarm (board: nodemcuv2; framework: arduino; platform: [email protected])

HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash
PACKAGES:

  • framework-arduinoespressif8266 3.20704.0 (2.7.4)
  • tool-esptool 1.413.0 (4.13)
  • tool-esptoolpy 1.20800.0 (2.8.0)
  • toolchain-xtensa 2.40802.200502 (4.8.2)
    Dependency Graph
    |-- 1.2.3
    | |-- 1.0
    |-- 1.0
    |-- 1.2
    | |-- 1.0
    Compiling /data/vistaalarm/.pioenvs/vistaalarm/src/vista.cpp.o
    Compiling /data/vistaalarm/.pioenvs/vistaalarm/lib4d9/ESP8266WiFi/ESP8266WiFiSTA.cpp.o
    Compiling /data/vistaalarm/.pioenvs/vistaalarm/lib4d9/ESP8266WiFi/ESP8266WiFiScan.cpp.o
    Compiling /data/vistaalarm/.pioenvs/vistaalarm/lib4d9/ESP8266WiFi/WiFiClient.cpp.o
    src/vista.cpp: In member function 'bool Vista::handle()':
    src/vista.cpp:894:9: error: 'len' was not declared in this scope
    len=4;
    ^
    *** [/data/vistaalarm/.pioenvs/vistaalarm/src/vista.cpp.o] Error 1
    ========================== [FAILED] Took 6.39 seconds ==========================

Full isolation schematic

First, this project is awesome! Thank you. Second, it looks like you are using the optoisolator as a level shifter, but maybe not only, given there are multiple writers to green on the bus. Shouldn't green only be driven when the microcontroller wants to write, because otherwise if another keypad tries to write to green it will cause a short? In any case, I tested your circuit as is, and it worked, but I was thinking of making a PCB along these lines:

image

Likely, just to be safe, I'll make it so you can select with a jumper if you want isolated grounds and populate either the resistor dividers or the optoisolators...something like this:

image

Thoughts?

Looping while in Armed Stay mode since the last update (6/14)

Pretty big issue this morning. I armed my system last night via HA (armed stay) and went to sleep. Did not realized that the system was looping with the timer going from 60sec to 0 then back to 60sec forever. LCD on all the time, and then impossible to disarmed the alarm this morning. I went to the panel, disconnected the ESP32, and then the system armed and I was able to disarmed with my keypad. I later reconnected the ESP32, all good until I "armed stay" again, same issue, looping on the exit timer. I then used HA Vistaalarm disconnect button to be able to disarm. It seems that the system become unavailable multiple times during the night.

armed

[07:27:14][D][text_sensor:015]: 'vistaalarm Line1': Sending state 'ARMED ***STAY***'
[07:27:14][D][text_sensor:015]: 'vistaalarm Line2': Sending state 'May Exit Now  60'
[07:27:14][I][INFO:585]: Prompt: ARMED ***STAY***
[07:27:14][I][INFO:586]: Prompt: May Exit Now  60
[07:27:14][I][INFO:587]: Beeps: 3

[07:27:14][D][text_sensor:015]: 'vistaalarm Beeps': Sending state '3'
[07:27:14][D][text_sensor:015]: 'vistaalarm System Status': Sending state 'unavailable'
[07:27:14][D][binary_sensor:036]: 'vistaalarm Ready': Sending state OFF
[07:27:14][I][CMD:351]: F7 00 00 04 00 60 00 80 08 02 00 00 
[07:27:14][I][INFO:585]: Prompt: ARMED ***STAY***
[07:27:14][I][INFO:586]: Prompt: May Exit Now  60
[07:27:14][I][INFO:587]: Beeps: 0

[07:27:14][D][text_sensor:015]: 'vistaalarm Beeps': Sending state '0'
[07:27:14][I][CMD:351]: F8 59 12 5A 03 80 00 05 F0 00 00 00 
[07:27:14][I][CMD:351]: F2 17 06 00 00 00 00 61 63 02 45 43 
[07:27:15][I][CMD:351]: F6 13 00 00 00 00 00 00 00 00 00 00 
[07:27:15][I][CMD:351]: F2 12 06 00 00 00 00 62 6C 02 45 6C 
[07:27:15][I][CMD:351]: F2 17 06 00 00 00 00 63 63 02 45 43 
[07:27:15][I][CMD:351]: F7 00 00 0F 10 59 00 80 08 02 00 00 
[07:27:15][D][text_sensor:015]: 'vistaalarm Line2': Sending state 'May Exit Now  59'
[07:27:15][I][INFO:585]: Prompt: ARMED ***STAY***
[07:27:15][I][INFO:586]: Prompt: May Exit Now  59
[07:27:15][I][INFO:587]: Beeps: 0

[07:27:15][I][CMD:351]: F9 C3 02 53 EF 00 00 00 00 00 00 00 
[07:27:15][I][CMD:351]: F6 13 00 00 00 00 00 00 00 00 00 00 
[07:27:15][I][CMD:351]: F2 12 06 00 00 00 00 64 6C 02 45 6C 
[07:27:16][I][CMD:351]: F7 00 00 0F 10 58 00 80 08 02 00 00 
[07:27:16][D][text_sensor:015]: 'vistaalarm Line2': Sending state 'May Exit Now  58'
[07:27:16][I][INFO:585]: Prompt: ARMED ***STAY***
[07:27:16][I][INFO:586]: Prompt: May Exit Now  58
[07:27:16][I][INFO:587]: Beeps: 0

[07:27:16][I][CMD:351]: F2 17 06 00 00 00 00 65 63 02 45 43 
[07:27:16][I][CMD:351]: F6 13 00 00 00 00 00 00 00 00 00 00 
[07:27:16][I][CMD:351]: F2 12 06 00 00 00 00 66 6C 02 45 6C 
[07:27:16][I][CMD:351]: F2 17 06 00 00 00 00 67 63 02 45 43 
[07:27:16][I][CMD:351]: F7 00 00 0F 10 58 00 80 08 02 00 00 
[07:27:16][I][INFO:585]: Prompt: ARMED ***STAY***
[07:27:16][I][INFO:586]: Prompt: May Exit Now  58
[07:27:16][I][INFO:587]: Beeps: 0

[07:27:17][I][CMD:351]: F6 13 00 00 00 00 00 00 00 00 00 00 
[07:27:17][I][CMD:351]: F2 12 06 00 00 00 00 60 6C 02 45 6C 
[07:27:17][I][CMD:351]: F7 00 00 0F 10 57 00 80 08 02 00 00 
[07:27:17][D][text_sensor:015]: 'vistaalarm Line2': Sending state 'May Exit Now  57'
[07:27:17][I][INFO:585]: Prompt: ARMED ***STAY***
[07:27:17][I][INFO:586]: Prompt: May Exit Now  57
[07:27:17][I][INFO:587]: Beeps: 0

[07:27:17][I][CMD:351]: F2 17 06 00 00 00 00 61 63 02 45 43 
[07:27:17][I][CMD:351]: F6 13 00 00 00 00 00 00 00 00 00 00 
[07:27:17][I][CMD:351]: F2 12 06 00 00 00 00 62 6C 02 45 6C 
[07:27:18][I][CMD:351]: F2 17 06 00 00 00 00 63 63 02 45 43 
[07:27:18][I][CMD:351]: F7 00 00 0F 10 56 00 80 08 02 00 00 
[07:27:18][D][text_sensor:015]: 'vistaalarm Line2': Sending state 'May Exit Now  56'
[07:27:18][I][INFO:585]: Prompt: ARMED ***STAY***
[07:27:18][I][INFO:586]: Prompt: May Exit Now  56
[07:27:18][I][INFO:587]: Beeps: 0

[07:27:18][I][CMD:351]: F6 13 00 00 00 00 00 00 00 00 00 00 
[07:27:18][I][CMD:351]: F2 12 06 00 00 00 00 64 6C 02 45 6C 
[07:27:18][I][CMD:351]: F7 00 00 0F 10 56 00 80 08 02 00 00 
[07:27:18][I][INFO:585]: Prompt: ARMED ***STAY***
[07:27:18][I][INFO:586]: Prompt: May Exit Now  56
[07:27:18][I][INFO:587]: Beeps: 0

[07:27:18][I][CMD:351]: F2 17 06 00 00 00 00 65 63 02 45 43 
[07:27:18][I][CMD:351]: F9 03 0B 58 82 18 57 18 34 41 01 00 
[07:27:19][D][text_sensor:015]: 'vistaalarm Lrr Msg': Sending state '441: Armed STAY user 5 '
[07:27:19][I][CMD:351]: F6 13 00 00 00 00 00 00 00 00 00 00 
[07:27:19][I][CMD:351]: F2 12 06 00 00 00 00 66 6C 02 45 6C 
[07:27:19][I][CMD:351]: F2 17 06 00 00 00 00 67 63 02 45 43 
[07:27:19][I][CMD:351]: F7 00 00 0F 10 55 00 80 08 02 00 00 
[07:27:19][D][text_sensor:015]: 'vistaalarm Line2': Sending state 'May Exit Now  55'
[07:27:19][I][INFO:585]: Prompt: ARMED ***STAY***
[07:27:19][I][INFO:586]: Prompt: May Exit Now  55
[07:27:19][I][INFO:587]: Beeps: 0

[07:27:19][I][CMD:351]: 98 2E 02 20 F7 EC 00 00 00 00 00 00 
[07:27:19][I][EXT:351]: 98 07 F7 00 03 EC 00 00 00 00 00 00 
[07:27:19][I][CMD:351]: F9 03 02 53 AF 00 00 00 00 00 00 00 
[07:27:20][I][CMD:351]: F6 13 00 00 00 00 00 00 00 00 00 00 
[07:27:20][I][CMD:351]: F2 12 06 00 00 00 00 60 6C 02 45 6C 
[07:27:20][I][CMD:351]: F7 00 00 0F 10 54 00 80 08 02 00 00 
[07:27:20][D][text_sensor:015]: 'vistaalarm Line2': Sending state 'May Exit Now  54'
[07:27:20][I][INFO:585]: Prompt: ARMED ***STAY***
[07:27:20][I][INFO:586]: Prompt: May Exit Now  54
[07:27:20][I][INFO:587]: Beeps: 0

... [REMOVED TO SAVE SPACE ON POST]

[07:28:10][I][CMD:351]: F2 17 06 00 00 00 00 63 63 02 45 43 
[07:28:10][I][CMD:351]: F6 13 00 00 00 00 00 00 00 00 00 00 
[07:28:11][I][CMD:351]: F2 12 06 00 00 00 00 64 6C 02 45 6C 
[07:28:11][I][CMD:351]: F2 17 06 00 00 00 00 65 63 02 45 43 
[07:28:11][I][CMD:351]: F7 00 00 0F 10 03 00 80 08 02 00 00 
[07:28:11][D][text_sensor:015]: 'vistaalarm Line2': Sending state 'May Exit Now  03'
[07:28:11][I][INFO:585]: Prompt: ARMED ***STAY***
[07:28:11][I][INFO:586]: Prompt: May Exit Now  03
[07:28:11][I][INFO:587]: Beeps: 0

[07:28:11][I][CMD:351]: F6 13 00 00 00 00 00 00 00 00 00 00 
[07:28:11][I][CMD:351]: F2 12 06 00 00 00 00 66 6C 02 45 6C 
[07:28:11][I][CMD:351]: F7 00 00 0F 10 02 00 80 08 02 00 00 
[07:28:11][D][text_sensor:015]: 'vistaalarm Line2': Sending state 'May Exit Now  02'
[07:28:12][I][INFO:585]: Prompt: ARMED ***STAY***
[07:28:12][I][INFO:586]: Prompt: May Exit Now  02
[07:28:12][I][INFO:587]: Beeps: 0

[07:28:12][I][CMD:351]: F2 17 06 00 00 00 00 67 63 02 45 43 
[07:28:12][I][CMD:351]: F6 13 00 00 00 00 00 00 00 00 00 00 
[07:28:12][I][CMD:351]: F2 12 06 00 00 00 00 60 6C 02 45 6C 
[07:28:12][I][CMD:351]: F2 17 06 00 00 00 00 61 63 02 45 43 
[07:28:12][I][CMD:351]: F7 00 00 0F 10 02 00 80 08 02 00 00 
[07:28:12][I][INFO:585]: Prompt: ARMED ***STAY***
[07:28:12][I][INFO:586]: Prompt: May Exit Now  02
[07:28:12][I][INFO:587]: Beeps: 0

[07:28:12][I][CMD:351]: F6 13 00 00 00 00 00 00 00 00 00 00 
[07:28:13][I][CMD:351]: F2 12 06 00 00 00 00 62 6C 02 45 6C 
[07:28:13][I][CMD:351]: F7 00 00 0F 10 01 00 80 08 02 00 00 
[07:28:13][D][text_sensor:015]: 'vistaalarm Line2': Sending state 'May Exit Now  01'
[07:28:13][I][INFO:585]: Prompt: ARMED ***STAY***
[07:28:13][I][INFO:586]: Prompt: May Exit Now  01
[07:28:13][I][INFO:587]: Beeps: 0

[07:28:13][I][CMD:351]: F2 17 06 00 00 00 00 63 63 02 45 43 
[07:28:13][I][CMD:351]: F6 13 00 00 00 00 00 00 00 00 00 00 
[07:28:13][I][CMD:351]: F2 12 06 00 00 00 00 64 6C 02 45 6C 
[07:28:13][I][CMD:351]: F2 12 06 00 00 00 00 65 6C 02 45 6C 
[07:28:13][I][CMD:351]: F2 16 06 00 00 00 00 66 63 02 45 43 
[07:28:14][I][CMD:351]: F7 00 00 0F 10 08 00 8C 08 02 00 00 
[07:28:14][D][text_sensor:015]: 'vistaalarm Line2': Sending state '                '
[07:28:14][I][INFO:585]: Prompt: ARMED ***STAY***
[07:28:14][I][INFO:586]: Prompt:                 
[07:28:14][I][INFO:587]: Beeps: 0

[07:28:14][D][text_sensor:015]: 'vistaalarm System Status': Sending state 'armed_stay'
[07:28:14][D][binary_sensor:036]: 'vistaalarm Stay': Sending state ON
[07:28:14][D][binary_sensor:036]: 'vistaalarm Armed': Sending state ON
[07:28:14][I][CMD:351]: F6 13 00 00 00 00 00 00 00 00 00 00 
[07:28:14][I][CMD:351]: F2 12 06 00 00 00 00 67 6C 02 45 6C 
[07:28:14][I][CMD:351]: F7 00 00 0F 10 60 00 80 08 02 00 00 
[07:28:14][D][text_sensor:015]: 'vistaalarm Line2': Sending state 'May Exit Now  60'
[07:28:14][I][INFO:585]: Prompt: ARMED ***STAY***
[07:28:14][I][INFO:586]: Prompt: May Exit Now  60
[07:28:14][I][INFO:587]: Beeps: 0

[07:28:14][I][CMD:351]: F2 17 06 00 00 00 00 60 63 02 45 43 
[07:28:14][I][CMD:351]: F6 13 00 00 00 00 00 00 00 00 00 00 
[07:28:15][I][CMD:351]: F2 12 06 00 00 00 00 61 6C 02 45 6C 
[07:28:15][I][CMD:351]: F2 17 06 00 00 00 00 62 63 02 45 43 
[07:28:15][I][CMD:351]: F7 00 00 0F 10 59 00 80 08 02 00 00 
[07:28:15][D][text_sensor:015]: 'vistaalarm Line2': Sending state 'May Exit Now  59'
[07:28:15][I][INFO:585]: Prompt: ARMED ***STAY***
[07:28:15][I][INFO:586]: Prompt: May Exit Now  59
[07:28:15][I][INFO:587]: Beeps: 0

... [REMOVED TO SAVE SPACE ON POST]

[07:29:10][I][CMD:351]: F6 13 00 00 00 00 00 00 00 00 00 00 
[07:29:10][I][CMD:351]: F2 12 06 00 00 00 00 63 6C 02 45 6C 
[07:29:10][I][CMD:351]: F7 00 00 0F 10 04 00 80 08 02 00 00 
[07:29:10][I][INFO:585]: Prompt: ARMED ***STAY***
[07:29:10][I][INFO:586]: Prompt: May Exit Now  04
[07:29:10][I][INFO:587]: Beeps: 0

[07:29:10][I][CMD:351]: F2 17 06 00 00 00 00 64 63 02 45 43 
[07:29:11][I][CMD:351]: F6 13 00 00 00 00 00 00 00 00 00 00 
[07:29:11][I][CMD:351]: F2 12 06 00 00 00 00 65 6C 02 45 6C 
[07:29:11][I][CMD:351]: F2 17 06 00 00 00 00 66 63 02 45 43 
[07:29:11][I][CMD:351]: F7 00 00 0F 10 03 00 80 08 02 00 00 
[07:29:11][D][text_sensor:015]: 'vistaalarm Line2': Sending state 'May Exit Now  03'
[07:29:11][I][INFO:585]: Prompt: ARMED ***STAY***
[07:29:11][I][INFO:586]: Prompt: May Exit Now  03
[07:29:11][I][INFO:587]: Beeps: 0

[07:29:11][I][CMD:351]: F6 13 00 00 00 00 00 00 00 00 00 00 
[07:29:11][I][CMD:351]: F2 12 06 00 00 00 00 67 6C 02 45 6C 
[07:29:12][I][CMD:351]: F7 00 00 0F 10 02 00 80 08 02 00 00 
[07:29:12][D][text_sensor:015]: 'vistaalarm Line2': Sending state 'May Exit Now  02'
[07:29:12][I][INFO:585]: Prompt: ARMED ***STAY***
[07:29:12][I][INFO:586]: Prompt: May Exit Now  02
[07:29:12][I][INFO:587]: Beeps: 0

[07:29:12][I][CMD:351]: F2 17 06 00 00 00 00 60 63 02 45 43 
[07:29:12][I][CMD:351]: F6 13 00 00 00 00 00 00 00 00 00 00 
[07:29:12][I][CMD:351]: F2 12 06 00 00 00 00 61 6C 02 45 6C 
[07:29:12][I][CMD:351]: F2 17 06 00 00 00 00 62 63 02 45 43 
[07:29:12][I][CMD:351]: F7 00 00 0F 10 02 00 80 08 02 00 00 
[07:29:12][I][INFO:585]: Prompt: ARMED ***STAY***
[07:29:12][I][INFO:586]: Prompt: May Exit Now  02
[07:29:12][I][INFO:587]: Beeps: 0

[07:29:13][I][CMD:351]: F6 13 00 00 00 00 00 00 00 00 00 00 
[07:29:13][I][CMD:351]: F2 12 06 00 00 00 00 63 6C 02 45 6C 
[07:29:13][I][CMD:351]: F7 00 00 0F 10 01 00 80 08 02 00 00 
[07:29:13][D][text_sensor:015]: 'vistaalarm Line2': Sending state 'May Exit Now  01'
[07:29:13][I][INFO:585]: Prompt: ARMED ***STAY***
[07:29:13][I][INFO:586]: Prompt: May Exit Now  01
[07:29:13][I][INFO:587]: Beeps: 0

[07:29:13][I][CMD:351]: F2 17 06 00 00 00 00 64 63 02 45 43 
[07:29:13][I][CMD:351]: F2 12 06 00 00 00 00 65 6C 02 45 6C 
[07:29:13][I][CMD:351]: F2 16 06 00 00 00 00 66 63 02 45 43 
[07:29:14][I][CMD:351]: F7 00 00 0F 10 08 00 8C 08 02 00 00 
[07:29:14][D][text_sensor:015]: 'vistaalarm Line2': Sending state '                '
[07:29:14][I][INFO:585]: Prompt: ARMED ***STAY***
[07:29:14][I][INFO:586]: Prompt:                 
[07:29:14][I][INFO:587]: Beeps: 0

[07:29:14][I][CMD:351]: F6 13 00 00 00 00 00 00 00 00 00 00 
[07:29:14][I][CMD:351]: F7 00 00 0F 10 60 00 80 08 02 00 00 
[07:29:14][D][text_sensor:015]: 'vistaalarm Line2': Sending state 'May Exit Now  60'
[07:29:14][I][INFO:585]: Prompt: ARMED ***STAY***
[07:29:14][I][INFO:586]: Prompt: May Exit Now  60
[07:29:14][I][INFO:587]: Beeps: 0

[07:29:14][I][CMD:351]: F2 12 06 00 00 00 00 67 6C 02 45 6C 
[07:29:14][I][CMD:351]: F2 17 06 00 00 00 00 60 63 02 45 43 
[07:29:14][I][CMD:351]: F6 13 00 00 00 00 00 00 00 00 00 00 
[07:29:14][I][CMD:351]: F2 12 06 00 00 00 00 61 6C 02 45 6C 
[07:29:15][I][CMD:351]: F7 00 00 0F 10 59 00 80 08 02 00 00 
[07:29:15][D][text_sensor:015]: 'vistaalarm Line2': Sending state 'May Exit Now  59'
[07:29:15][I][INFO:585]: Prompt: ARMED ***STAY***
[07:29:15][I][INFO:586]: Prompt: May Exit Now  59
[07:29:15][I][INFO:587]: Beeps: 0

... [REMOVED TO SAVE SPACE ON POST]

[07:30:11][I][CMD:351]: F2 17 06 00 00 00 00 66 63 02 45 43 
[07:30:11][I][CMD:351]: F6 13 00 00 00 00 00 00 00 00 00 00 
[07:30:11][I][CMD:351]: F2 12 06 00 00 00 00 67 6C 02 45 6C 
[07:30:12][I][CMD:351]: F2 17 06 00 00 00 00 60 63 02 45 43 
[07:30:12][I][CMD:351]: F7 00 00 0F 10 02 00 80 08 02 00 00 
[07:30:12][D][text_sensor:015]: 'vistaalarm Line2': Sending state 'May Exit Now  02'
[07:30:12][I][INFO:585]: Prompt: ARMED ***STAY***
[07:30:12][I][INFO:586]: Prompt: May Exit Now  02
[07:30:12][I][INFO:587]: Beeps: 0

[07:30:12][I][CMD:351]: F6 13 00 00 00 00 00 00 00 00 00 00 
[07:30:12][I][CMD:351]: F2 12 06 00 00 00 00 61 6C 02 45 6C 
[07:30:12][I][CMD:351]: F7 00 00 0F 10 02 00 80 08 02 00 00 
[07:30:12][I][INFO:585]: Prompt: ARMED ***STAY***
[07:30:12][I][INFO:586]: Prompt: May Exit Now  02
[07:30:12][I][INFO:587]: Beeps: 0

[07:30:12][I][CMD:351]: F2 17 06 00 00 00 00 62 63 02 45 43 
[07:30:13][I][CMD:351]: F6 13 00 00 00 00 00 00 00 00 00 00 
[07:30:13][I][CMD:351]: F2 12 06 00 00 00 00 63 6C 02 45 6C 
[07:30:13][I][CMD:351]: F2 17 06 00 00 00 00 64 63 02 45 43 
[07:30:13][I][CMD:351]: F7 00 00 0F 10 01 00 80 08 02 00 00 
[07:30:13][D][text_sensor:015]: 'vistaalarm Line2': Sending state 'May Exit Now  01'
[07:30:13][I][INFO:585]: Prompt: ARMED ***STAY***
[07:30:13][I][INFO:586]: Prompt: May Exit Now  01
[07:30:13][I][INFO:587]: Beeps: 0

[07:30:13][I][CMD:351]: F2 12 06 00 00 00 00 65 6C 02 45 6C 
[07:30:13][I][CMD:351]: F2 16 06 00 00 00 00 66 63 02 45 43 
[07:30:14][I][CMD:351]: F7 00 00 0F 10 08 00 8C 08 02 00 00 
[07:30:14][D][text_sensor:015]: 'vistaalarm Line2': Sending state '                '
[07:30:14][I][INFO:585]: Prompt: ARMED ***STAY***
[07:30:14][I][INFO:586]: Prompt:                 
[07:30:14][I][INFO:587]: Beeps: 0

[07:30:14][I][CMD:351]: F6 13 00 00 00 00 00 00 00 00 00 00 
[07:30:14][I][CMD:351]: F2 12 06 00 00 00 00 67 6C 02 45 6C 
[07:30:14][I][CMD:351]: F7 00 00 0F 10 60 00 80 08 02 00 00 
[07:30:14][D][text_sensor:015]: 'vistaalarm Line2': Sending state 'May Exit Now  60'
[07:30:14][I][INFO:585]: Prompt: ARMED ***STAY***
[07:30:14][I][INFO:586]: Prompt: May Exit Now  60
[07:30:14][I][INFO:587]: Beeps: 0

[07:30:14][I][CMD:351]: F2 17 06 00 00 00 00 60 63 02 45 43 
[07:30:14][I][CMD:351]: F6 13 00 00 00 00 00 00 00 00 00 00 
[07:30:14][I][CMD:351]: F2 12 06 00 00 00 00 61 6C 02 45 6C 
[07:30:15][I][CMD:351]: F2 17 06 00 00 00 00 62 63 02 45 43 
[07:30:15][I][CMD:351]: F7 00 00 0F 10 59 00 80 08 02 00 00 
[07:30:15][D][text_sensor:015]: 'vistaalarm Line2': Sending state 'May Exit Now  59'
[07:30:15][I][INFO:585]: Prompt: ARMED ***STAY***
[07:30:15][I][INFO:586]: Prompt: May Exit Now  59
[07:30:15][I][INFO:587]: Beeps: 0

where do I find the the esphome directory?

"To use this software you simply place the vistaAlarm.yaml file in your main esphome directory, then copy the *.h and *.cpp files from the vistaEcpInterface directory to a similarly named subdirectory (case sensitive) in your esphome main directory and then compile the yaml as usual. The directory name is in the "includes:" option of the yaml."

Where can I find this directory? I am accessing esphome through home assistant from within my browser. Is there another way?

Missing RF messages on smoke alarm trigger

I am not seeing RFX messages when smoke alarms are triggered with the test button and the panel is monitoring the loop
If the panel is not monitoring loop 1 then the RFX message is sent OK.
E.G
Panel monitoring zone 32 address 0055590 Loop 1;

[08:44:06][I][CMD:352]: F7 00 00 03 10 08 00 1C 08 02 00 00 
[08:44:06][I][INFO:581]: Prompt: ****DISARMED****
[08:44:06][I][INFO:582]: Prompt:   Ready to Arm  
[08:44:06][I][INFO:583]: Beeps: 0
[08:44:06]
[08:44:06][D][info:740]: ac=1,batt status = 0,systemflag=1,lightbat status=0,trouble=0
[08:44:12][I][CMD:352]: 9E 02 20 F1 F2 00 00 00 00 00 00 00 
[08:44:12][I][CMD:352]: F9 83 02 53 2F 00 00 00 00 00 00 00 
[08:44:12][D][info:740]: ac=1,batt status = 0,systemflag=1,lightbat status=0,trouble=0
[08:44:12][I][CMD:352]: F7 00 00 03 10 32 00 31 0A 02 00 00 
[08:44:12][D][text_sensor:015]: 'vistaalarm Line1': Sending state 'FIRE 32  BACK   '
[08:44:12][D][text_sensor:015]: 'vistaalarm Line2': Sending state 'BASEMENT SMOKE  '
[08:44:12][I][INFO:581]: Prompt: FIRE 32  BACK   
[08:44:12][I][INFO:582]: Prompt: BASEMENT SMOKE  
[08:44:12][I][INFO:583]: Beeps: 0
[08:44:12]
[08:44:12][D][info:740]: ac=1,batt status = 0,systemflag=0,lightbat status=0,trouble=0
[08:44:12][D][text_sensor:015]: 'vistaalarm System Status': Sending state 'triggered'
[08:44:12][D][binary_sensor:036]: 'vistaalarm Fire': Sending state ON
[08:44:12][I][EXT:352]: F9 00 02 00 54 80 D9 26 B0 7D C3 04 
[08:44:12][D][info:740]: ac=1,batt status = 0,systemflag=0,lightbat status=0,trouble=0
[08:44:12][I][CMD:352]: F2 12 06 00 00 00 00 64 6C 02 45 6C 
[08:44:12][D][info:740]: ac=1,batt status = 0,systemflag=0,lightbat status=0,trouble=0
[08:44:13][I][CMD:352]: F8 59 1C 5A 03 21 00 01 00 00 00 00 

Panel monitoring zone 33 address 0855728 Loop 1;


[16:10:51]
[16:10:51][D][info:740]: ac=1,batt status = 0,systemflag=1,lightbat status=0,trouble=0
[16:10:51][I][CMD:352]: 9E 02 20 F1 F2 00 00 00 00 00 00 00 
[16:10:51][I][CMD:352]: F9 43 02 53 6F 00 00 00 00 00 00 00 
[16:10:51][D][info:740]: ac=1,batt status = 0,systemflag=1,lightbat status=0,trouble=0
[16:10:52][I][CMD:352]: F7 00 00 03 10 33 00 31 0A 02 00 00 
[16:10:52][D][text_sensor:015]: 'vistaalarm Line1': Sending state 'FIRE 33         '
[16:10:52][D][text_sensor:015]: 'vistaalarm Line2': Sending state 'BASEMENT SMOKE  '
[16:10:52][I][INFO:581]: Prompt: FIRE 33         
[16:10:52][I][INFO:582]: Prompt: BASEMENT SMOKE  
[16:10:52][I][INFO:583]: Beeps: 0
[16:10:52]

Panel monitoring zone 32 address 0055590 loop 4 (tamper);

[08:36:19]
[08:36:19][D][info:740]: ac=1,batt status = 0,systemflag=1,lightbat status=0,trouble=0
[08:36:20][I][CMD:352]: 9E 02 20 F1 F2 00 00 00 00 00 00 00 
[08:36:20][I][EXT:352]: 9E 04 00 D9 26 B0 00 00 00 00 00 00 
[08:36:20][D][info:553]: RFX: 0055590,B0
[08:36:20][D][text_sensor:015]: 'vistaalarm RF Msg': Sending state '0055590,B0'
[08:36:21][I][CMD:352]: F9 43 02 53 6F 00 00 00 00 00 00 00 
[08:36:21][D][info:740]: ac=1,batt status = 0,systemflag=1,lightbat status=0,trouble=0
[08:36:21][I][EXT:352]: F9 00 02 83 04 00 00 00 79 7D 00 00 
[08:36:21][D][info:740]: ac=1,batt status = 0,systemflag=1,lightbat status=0,trouble=0
[08:36:26][I][CMD:352]: 9E 02 25 F1 ED 00 00 00 00 00 00 00 
[08:36:26][I][EXT:352]: 9E 04 00 D9 26 B0 00 00 00 00 00 00 
[08:36:26][D][info:553]: RFX: 0055590,B0
[08:36:26][D][text_sensor:015]: 'vistaalarm RF Msg': Sending state '0055590,B0'
[08:36:27][I][CMD:352]: 9E 02 20 F1 F2 00 00 00 00 00 00 00 
[08:36:27][I][EXT:352]: 9E 04 00 D9 26 00 00 00 00 00 00 00 
[08:36:27][D][info:553]: RFX: 0055590,00
[08:36:27][D][text_sensor:015]: 'vistaalarm RF Msg': Sending state '0055590,00'
[08:36:28][I][CMD:352]: F7 00 00 03 10 08 00 1C 08 02 00 00 
[08:36:28][I][INFO:581]: Prompt: ****DISARMED****
[08:36:28][I][INFO:582]: Prompt:   Ready to Arm  
[08:36:28][I][INFO:583]: Beeps: 0
[08:36:28]

I am wondering why there is no EXT decode for RF when the alarm is triggered.

Panel Vista 15P v10.24, Keypad 6162RF, RF repeater 5800RP, Smoke 5808W3

RF door sensors reporting open at regular intervals

Problem

I updated to the latest dev branch since I had some issues with the ESP32 disconnecting randomly after unexpected power loss and now I have a new problem. Basically, each door sensor will report to home assistant that it has been opened when it has not every 72 minutes or so since the last time it falsely reported it. Maybe something to do with rfSerialLookup? I do like this new feature though.

Platform

Vista-20P, 6150RF, 6x 5816WMWH, ESP32, Home Assistant 2023.2.3

Config

#for documentation see project at https://github.com/Dilbert66/esphome-VistaECP
substitutions:
  systemName: "vistaalarm"
  accessCode: !secret access_code #Only comes into effect if needed for arming and quickarm is not set

  maxZones: "48" #maximum amount of zones that your panel supports
  maxPartitions: "3" #maximum amount of partitions that your panel supports

  rfSerialLookup: "0397567:09:80,0931570:10:80,0037117:11:80,0117340:12:80,0136928:13:80,0798385:14:80,0199136:15:80,0474834:16:80" # list of RF serial numbers with associated zone and bitmask. 
  #Format: "serial1#:zone1:mask1,serial2#:zone2:mask2"
  #Mask: hex value used to mask out open/close bit from RF returned value
  
  defaultPartition: "1"  

  #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: "19" #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
  
  ##esp8266
  # rxPin: "5" #GPIO pin to use for data receive (yellow line) 
  # txPin: "4" #GPIO pin to use for data transmit (green line)
  # monitorPin: "14" #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: "8" # 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: "15000"  # time  to live  in ms for zone/fire status before expiring;
  quickArm: "false"
  lrrSupervisor: "true" # set to true if we don't have an LRR monitoring supervisor we can emulate one to get the statuses

esphome:
  name: $systemName
  platform: ESP32
  #board: nodemcu-32s
  board: mhetesp32devkit
  # platform: ESP8266
  # board: nodemcuv2

  # subdirectory where library *.h and *.cpp are placed 
  includes:
    - vistaEcpInterface/

wifi:
  networks:
  - ssid: !secret wifi_ssid
    password: !secret wifi_password

  ap:
    ssid: "$systemName"
    password: !secret wifi_password_backup

logger:
  baud_rate: 115200
  level: DEBUG
  
api:
  encryption:
    key: !secret encryption_key
  
ota:
  password: !secret ota_password
  safe_mode: True
  on_begin:
    - lambda: |-
        disconnectVista();
  
status_led:
  pin:
    number: GPIO2
    inverted: yes

time:
  - platform: homeassistant
    id: local_time

custom_component:
- lambda: |-
    auto VistaECP = new vistaECPHome($keypadAddr1,$rxPin,$txPin,$monitorPin,$maxZones,$maxPartitions);
    VistaECP->defaultPartition=$defaultPartition;
    VistaECP->partitionKeypads[1]=$keypadAddr1;
    VistaECP->partitionKeypads[2]=$keypadAddr2;
    VistaECP->partitionKeypads[3]=$keypadAddr3;
    VistaECP->rfSerialLookup="$rfSerialLookup"; 
    VistaECP->accessCode="$accessCode";
    VistaECP->quickArm=$quickArm;
    VistaECP->expanderAddr1=$expanderAddr1; //zone expander
    VistaECP->expanderAddr2=$expanderAddr2;
    VistaECP->relayAddr1=$relayAddr1; //relay module 
    VistaECP->relayAddr2=$relayAddr2;
    VistaECP->relayAddr3=$relayAddr3; 
    VistaECP->relayAddr4=$relayAddr4;     
    VistaECP->lrrSupervisor=$lrrSupervisor;
    VistaECP->TTL=$TTL;
    VistaECP->debug=1;

    VistaECP->onSystemStatusChange([&](std::string statusCode,uint8_t partition) {
      switch(partition) {
        case 1: id(system_status).publish_state(statusCode);break;
        case 2: break;
        case 3: break;
        default: break;
      }
    });
  
    VistaECP->onLine1DisplayChange([&](std::string msg,uint8_t partition) {
      switch(partition) {    
        case 1: id(l1).publish_state(msg); break;
        case 2: break;
        case 3: break;
        default: break;
      }
    });  
    VistaECP->onLine2DisplayChange([&](std::string msg,uint8_t partition) {
      switch(partition) {    
        case 1: id(l2).publish_state(msg); break;
        case 2: break;
        case 3: break;
        default: break;
      }
    }); 
    VistaECP->onBeepsChange([&](std::string beeps,uint8_t partition) {
      switch(partition) {        
        case 1: id(beep1).publish_state(beeps); break;
        case 2: break;
        case 3: break;
        default: break;
      }
    });
        VistaECP->onZoneExtendedStatusChange([&](std::string msg) {
        id(zoneExtended).publish_state(msg); 
    }); 
    
    VistaECP->onLrrMsgChange([&](std::string msg) {
        id(m1).publish_state(msg); 
    });    
    
    VistaECP->onRfMsgChange([&](std::string msg) {
        id(rf1).publish_state(msg); 
    });

    VistaECP->onStatusChange([&](sysState led,bool open,uint8_t partition) {
      switch(partition) {          
        case 1: 
          switch(led) {
            case sfire: id(fire).publish_state(open);break;
            case salarm: id(alarm1).publish_state(open);break;
            case strouble: id(trouble).publish_state(open);break;
            case sarmedstay: id(stay).publish_state(open);break;
            case sarmedaway: id(away).publish_state(open);break;
            case sinstant: id(instant).publish_state(open);break; 
            case sready: id(ready).publish_state(open);break; 
            case sac: id(ac).publish_state(open);break;          
            case sbypass: id(bypass).publish_state(open);break;  
            case schime: id(chime).publish_state(open);break;
            case sbat: id(bat).publish_state(open);break;
            case sarmednight: id(night).publish_state(open);break;  
            case sarmed: id(armed).publish_state(open);break;                  
            default: break;
          };
          break;
        case 2: break;
        case 3: break;
        default: break;
      }
    });

    VistaECP->onZoneStatusChange([&](uint8_t zone, std::string open) {
      switch (zone) {
        case 9: id(z9).publish_state(open); break;
        case 10: id(z10).publish_state(open); break;
        case 11: id(z11).publish_state(open); break;
        case 12: id(z12).publish_state(open); break;
        case 13: id(z13).publish_state(open); break;
        case 14: id(z14).publish_state(open); break;
        case 15: id(z15).publish_state(open); break;
        case 16: id(z16).publish_state(open); break;
        
        // Emulated Zone
        case 17: id(z17).publish_state(open); break;
        // case 25: id(z25).publish_state(open); break;
        
        default: break; 
      }
    }); //you can add more zones above . Also add the text sensor entry below
    
    VistaECP->onRelayStatusChange([&](uint8_t addr,uint8_t zone,bool open) {
    switch(addr) {
      case 12: 
        switch (zone) {
          case 1: id(r1).publish_state(open); break;
          case 2: id(r2).publish_state(open); break;
        }
        break;
      case 13: break;
      default: break;
      }
    });  //add as many case and switch statements as needed to control your binary sensor outputs      
    return {VistaECP};

binary_sensor:
#- platform: gpio  #example use of pin d8 as a zone trigger port for the emulated zone expander
#  pin: D8
#  id: pind8
#  device_class: window
  # on_press:       #zone,on/off
  #   - lambda: |-
  #       vista.setExpFault(17,1); 
#  on_release:
#    - lambda: |-
  #       vista.setExpFault(17,0);  
    
    #system status indicator definitions
  - platform: template
    id: trouble
    name: "$systemName Trouble"
    #device_class: problem
    
  - platform: template
    id: bypass
    name: "$systemName Bypass"
    
  - platform: template
    id: away
    name: "$systemName Away"
    
  - platform: template
    id: armed
    name: "$systemName Armed"    
    
  - platform: template
    id: stay
    name: "$systemName Stay"
    
  - platform: template
    id: instant
    name: "$systemName Instant"
    
  - platform: template
    id: night
    name: "$systemName Night"
    
  - platform: template
    id: ac
    name: "$systemName AC"
    device_class: plug  
    
  - platform: template
    id: chime
    name: "$systemName Chime"
    
  - platform: template
    id: alarm1
    name: "$systemName Alarm"
    
  - platform: template
    id: bat
    name: "$systemName Battery"
    device_class: problem
    
  - platform: template
    id: fire
    device_class: smoke
    name: "$systemName Fire"

  - platform: template
    id: ready
    name: "$systemName Ready"
    #device_class: problem
    
    #relay module channels add as many as you need.  To hide, comment out the name: attribute
  - platform: template
    id: r1
    # name: "$systemName Relay1"

  - platform: template
    id: r2
    # name: "$systemName Relay2"   
  
    #zone definitions.  Add more (also add to the switch statment above). To hide, comment out the name: attribute
text_sensor:
    #zone definitions
  - platform: template
    id: z9
    name: "$systemName Front Door"

  - platform: template
    id: z10
    name: "$systemName Patio Door"

  - platform: template
    id: z11
    name: "$systemName Garage Door"

  - platform: template
    id: z12
    name: "$systemName Basement Door"

  - platform: template
    id: z13
    name: "$systemName Main Motion"
    
  - platform: template
    id: z14
    name: "$systemName Smoke Detector"  
  - platform: template
    id: z15
    name: "$systemName Garage Man Door"

  - platform: template
    id: z16
    name: "$systemName Garage Basement Door"
    
  - platform: template
    id: z17
    name: "$systemName Test"

    #system status 
  - platform: template
    id: system_status
    name: "$systemName System Status"
    icon: "mdi:shield"

  - platform: template
    id: m1
    name: "$systemName Lrr Msg"
    icon: "mdi:alert-box"
  
  - platform: template
    id: rf1
    name: "$systemName RF Msg"
    icon: "mdi:alert-box"    

  - platform: template
    id: l1
    name: "$systemName Line1"

  - platform: template
    id: l2
    name: "$systemName Line2"
    
  - platform: template
    id: beep1
    name: "$systemName Beeps"  

  - platform: template
    id: zoneExtended
    name: "$systemName Zone Status"    

switch:
  - platform: template
    name: "$systemName Connection"
    id: connection_status_switch
    lambda: |-
      return vista.keybusConnected;
    icon: "mdi:shield-link-variant"
    turn_on_action:
      - switch.toggle: restart_switch
    turn_off_action:
      - lambda: |-
          disconnectVista();
  - platform: restart
    id: restart_switch

Logs

I managed to catch these 3 logs from ESPHome.
image

Question not an issue

Thank you for the code.
Could you please explain how to get sensor ids? I see in debug, I am reading all my sensors and correct names, however, they are all in hex.
How do I add them to templates without knowing which z1, z2 etc?
For example, if I have "Living room motion sensor 35" installed, how do I know which id is this? Is it Z35?

Regards,

Not so much a issue but a question on the accessCode

I built a breakout board and made the code reflect to my Panel's Zones and Sensors. I also set the ECP Address for it to 18 since I already have a 6160RF programmed as Address 16 and a 5160 programmed as 17.

Anyway, I opted out using the Secrets.yaml and typed in as plain text the accessCode and I ended up getting locked out for 15 minutes from the Panel. I noticed when I compiled the binary it said something about "1234". Now in the Yaml file it have it as accessCode: "1234" The question is do I put the code in single quotes, double quotes or no quotes in the Yaml file?

Keypad 6139 Macro keys

Hello, I am using the multi-partition dev branch and I'm quite happy with it!
My system has two 6139 keypads on two partitions, and we are using its 4 macro keys to arm/disarm both partitions at once.

Is it possible to call the macro commands from home assistant?

thanks

missing vista.h?

Hi, I tried compiling the ademcoECP.ino sketch but I get a no such file or directory error for "vista.h". I searched the zip file downloaded from your github but I don't see it.

accessCode question

In the VistaAlarm.yaml file on line 4 it has a Secrets file for accessCode. Is the Access Code the Installer Code or the Admin User of the Panel for user slot 802? Or can it be any valid user code on the Panel?

error: call of overloaded 'millis()' is ambiguous

Was trying to update to the latest esphome (2021.10.0) and vistaECP source and am getting this error trying to compile... User error? Something else?

INFO Reading configuration /config/esphome/VistaAlarm.yaml...
INFO Generating C++ source...
INFO Compiling app...
Processing vistaalarm (board: nodemcuv2; framework: arduino; platform: platformio/espressif8266 @ 2.6.2)
--------------------------------------------------------------------------------
HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash
PACKAGES: 
 - framework-arduinoespressif8266 3.20704.0 (2.7.4) 
 - tool-esptool 1.413.0 (4.13) 
 - tool-esptoolpy 1.20800.0 (2.8.0) 
 - toolchain-xtensa 2.40802.200502 (4.8.2)
Library Manager: Installing Update
In file included from src/main.cpp:69:0:
src/vistaAlarm.h: In member function 'virtual void vistaECPHome::setup()':
src/vistaAlarm.h:330:36: error: call of overloaded 'millis()' is ambiguous
             zones[x].time = millis();
                                    ^
src/vistaAlarm.h:330:36: note: candidates are:
In file included from src/esphome/components/esp8266/gpio.h:6:0,
                 from src/esphome.h:19,
                 from src/main.cpp:3:
/data/cache/platformio/packages/framework-arduinoespressif8266/cores/esp8266/Arduino.h:187:15: note: long unsigned int millis()
 unsigned long millis(void);
               ^
In file included from src/esphome/components/binary_sensor/automation.h:7:0,
                 from src/esphome.h:15,
                 from src/main.cpp:3:
src/esphome/core/hal.h:37:10: note: uint32_t esphome::millis()
 uint32_t millis();
          ^

Invalid state armed_stay for alarm_control_panel

Hi. I was getting the error:

Logger: homeassistant.components.template.alarm_control_panel
Source: components/template/alarm_control_panel.py:210
Integration: Template (documentation, issues)
First occurred: 9:13:22 AM (1 occurrences)
Last logged: 9:13:22 AM

Received invalid alarm panel state: armed_stay. Expected: armed_away, armed_home, armed_night, arming, disarmed, pending, triggered, unavailable

As a workaround, I replaced armed_stay with armed_home in the value_template:

value_template: "{{ states('sensor.vistaalarm_system_status') | replace('armed_stay', 'armed_home')}}"
Using HA core-2021.8.8

Battery, Alarm, Fire showing as unknown

Did something change in the messaging for the status of the Battery, Alarm, or Fire states? I have the "unknown" status now and I can't find a way to get back to the regular message. Everything else seems fine. Thanks.

Random disconnects, from multiple times per minute to a few times per day

Random disconnects, from multiple times per minute to a few times per day.
This started happening once I updated to the dev branch, currently have multiple partitions set up on a vista 20p, I accidently posted this to fast and can amend as needed.

INFO Reading configuration /config/esphome/esphome-web-2af211.yaml...
INFO Detected timezone 'America/New_York'
INFO Starting log output from vistapanel-2af211.local using esphome API
INFO Successfully connected to vistapanel-2af211.local
[00:09:24][I][app:102]: ESPHome version 2022.9.4 compiled on Oct  8 2022, 23:39:47
[00:09:24][C][status_led:019]: Status LED:
[00:09:24][C][wifi:372]:   Subnet: 255.255.255.0
[00:09:24][C][wifi:374]:   DNS1: 172.16.20.1
[00:09:24][C][logger:275]: Logger:
[00:09:24][C][logger:278]:   Hardware UART: UART0
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'vistapanel-2af211 Trouble'
[00:09:24][C][template.binary_sensor:018]:   Device Class: 'problem'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'vistapanel-2af211 Bypass'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'vistapanel-2af211 Away'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'vistapanel-2af211 Armed'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'vistapanel-2af211 Stay'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'vistapanel-2af211 Instant'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'vistapanel-2af211 Night'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'vistapanel-2af211 AC'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'vistapanel-2af211 Chime'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'vistapanel-2af211 Alarm'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'vistapanel-2af211 Battery'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'vistapanel-2af211 Fire'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'vistapanel-2af211 Ready'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'vistapanel-2af211 Trouble 2'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'vistapanel-2af211 Bypass 2'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'vistapanel-2af211 Away 2'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'vistapanel-2af211 Armed 2'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'vistapanel-2af211 Stay 2'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'vistapanel-2af211 Instant 2'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'vistapanel-2af211 Night 2'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'vistapanel-2af211 AC 2'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'vistapanel-2af211 Chime 2'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'vistapanel-2af211 Alarm 2'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'vistapanel-2af211 Battery 2'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'vistapanel-2af211 Fire 2'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'vistapanel-2af211 Ready 2'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'vistapanel-2af211 Relay1'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'vistapanel-2af211 Relay2'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'vistapanel-2af211 Relay3'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'vistapanel-2af211 Relay4'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'r5'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'r6'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'r7'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'r8'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'r9'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'r10'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'r11'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'r12'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'r13'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'r14'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'r15'
[00:09:24][C][template.binary_sensor:018]: Template Binary Sensor 'r16'
[00:09:24][C][template.text_sensor:021]: Template Sensor 'vistapanel-2af211 Zone 1'
[00:09:24][C][template.text_sensor:021]: Template Sensor 'vistapanel-2af211 Side Door'
[00:09:24][C][template.text_sensor:021]: Template Sensor 'vistapanel-2af211 Zone 3'
[00:09:24][C][template.text_sensor:021]: Template Sensor 'vistapanel-2af211 Zone 4'
[00:09:24][C][template.text_sensor:021]: Template Sensor 'vistapanel-2af211 Zone 5'
[00:09:24][C][template.text_sensor:021]: Template Sensor 'vistapanel-2af211 Zone 6'
[00:09:24][C][template.text_sensor:021]: Template Sensor 'vistapanel-2af211 Zone 7'
[00:09:24][C][template.text_sensor:021]: Template Sensor 'vistapanel-2af211 Zone 8'
[00:09:24][C][template.text_sensor:021]: Template Sensor 'vistapanel-2af211 Front Door'
[00:09:24][C][template.text_sensor:021]: Template Sensor 'vistapanel-2af211 Back Door'
[00:09:24][C][template.text_sensor:021]: Template Sensor 'vistapanel-2af211 Zone 11'
[00:09:24][C][template.text_sensor:021]: Template Sensor 'vistapanel-2af211 Zone 12'
[00:09:25][C][template.text_sensor:021]: Template Sensor 'vistapanel-2af211 Zone 13'
[00:09:25][C][template.text_sensor:021]: Template Sensor 'vistapanel-2af211 Zone 14'
[00:09:25][C][template.text_sensor:021]:   Icon: 'mdi:alert-box'
[00:09:25][C][template.text_sensor:021]: Template Sensor 'vistapanel-2af211 Line1'
[00:09:25][C][template.text_sensor:021]: Template Sensor 'vistapanel-2af211 Line2'
[00:09:25][C][template.text_sensor:021]: Template Sensor 'vistapanel-2af211 Line1 2'
[00:09:25][C][template.text_sensor:021]: Template Sensor 'vistapanel-2af211 Line2 2'
[00:09:25][C][template.text_sensor:021]: Template Sensor 'vistapanel-2af211 Beeps'
[00:09:25][C][template.text_sensor:021]: Template Sensor 'vistapanel-2af211 Beeps 2'
[00:09:25][C][template.text_sensor:021]: Template Sensor 'zoneExtended'
[00:09:25][C][template.switch:058]: Template Switch 'vistapanel-2af211 Connection'
[00:09:25][C][template.switch:059]:   Restore State: NO
[00:09:25][C][restart:022]: Restart Switch 'restart_switch'
[00:09:25][C][restart:022]:   Icon: 'mdi:restart'
[00:09:25][C][mdns:100]: mDNS:
[00:09:25][C][mdns:101]:   Hostname: vistapanel-2af211
[00:09:25][C][api:138]: API Server:
[00:09:25][C][api:143]:   Using noise encryption: NO
[00:09:25][C][wifi_signal.sensor:009]: WiFi Signal 'vistapanel-2af211 WiFi'
[00:09:25][C][wifi_signal.sensor:009]:   State Class: 'measurement'
[00:09:25][C][wifi_signal.sensor:009]:   Accuracy Decimals: 0
[00:09:25][C][sntp:050]: SNTP Time:
[00:09:25][C][sntp:053]:   Server 3: '2.pool.ntp.org'
[00:09:25][I][CMD:505]: 2022-10-09 00:09  F7 00 00 07 10 08 00 1C 28 02 00 00 20 
[00:09:25][I][INFO:813]: Display to partition: 01
[00:09:25][I][INFO:834]: Prompt:   Ready to Arm  
[00:09:25][I][CMD:505]: 2022-10-09 00:09  F7 00 00 08 00 08 00 1C 08 02 00 00 2A 
[00:09:25][I][INFO:813]: Display to partition: 02
[00:09:25][I][INFO:834]: Prompt:   Ready to Arm  
[00:09:26][I][CMD:505]: 2022-10-09 00:09  F7 00 00 10 00 08 00 1C 08 02 00 00 2A 
[00:09:26][I][INFO:813]: Display to partition: 03
[00:09:26][I][INFO:834]: Prompt:   Ready to Arm  
[00:09:26][D][text_sensor:067]: 'vistapanel-2af211 Beeps': Sending state '0'
[00:09:28][D][text_sensor:067]: 'vistapanel-2af211 Zone 13': Sending state 'C'
[00:09:30][D][text_sensor:067]: 'vistapanel-2af211 Zone 8': Sending state 'C'
INFO vistapanel-2af211.local: Error while reading incoming messages: Error while reading data: 0 bytes read on a total of 1 expected bytes
INFO vistapanel-2af211.local: Ping Failed: Error while reading data: 0 bytes read on a total of 1 expected bytes
INFO Disconnected from ESPHome API for vistapanel-2af211.local
WARNING Disconnected from API
INFO Successfully connected to vistapanel-2af211.local
[00:09:45][I][CMD:505]: 2022-10-09 00:09  F7 00 00 08 00 08 00 1C 08 02 00 00 2A 
[00:09:45][I][INFO:813]: Display to partition: 02
[00:09:45][I][CMD:505]: 2022-10-09 00:09  F7 00 00 10 00 08 00 1C 08 02 00 00 2A 
[00:09:45][I][INFO:813]: Display to partition: 03
[00:09:45][I][INFO:834]: Prompt:   Ready to Arm  
[00:09:46][D][text_sensor:067]: 'vistapanel-2af211 Line2 2': Sending state '  Ready to Arm  '
[00:09:58][D][api:102]: Accepted 172.16.20.107
[00:10:01][D][api:102]: Accepted 172.16.20.107
[00:10:03][D][api.connection:917]: Home Assistant 2022.10.1 (172.16.20.107): Connected successfully
INFO vistapanel-2af211.local: Ping timed out!
INFO Disconnected from ESPHome API for vistapanel-2af211.local
WARNING Disconnected from API
INFO Successfully connected to vistapanel-2af211.local
[00:10:29][D][api:102]: Accepted 172.16.20.107
[00:10:29][D][api.connection:917]: Home Assistant 2022.10.1 (172.16.20.107): Connected successfully
INFO vistapanel-2af211.local: Error while reading incoming messages: Error while reading data: [Errno 104] Connection reset by peer
INFO vistapanel-2af211.local: Ping Failed: Error while reading data: [Errno 104] Connection reset by peer
INFO Disconnected from ESPHome API for vistapanel-2af211.local
WARNING Disconnected from API
INFO Successfully connected to vistapanel-2af211.local
[00:10:43][I][CMD:505]: 2022-10-09 00:10  FB 02 20 81 62 00 00 00 00 00 00 00 00 
[00:10:43][I][EXT:505]: 2022-10-09 00:10  00 24 00 DC FF FF FF 00 00 00 00 00 74 
[00:10:44][D][api:102]: Accepted 172.16.20.107
[00:10:44][D][api.connection:917]: Home Assistant 2022.10.1 (172.16.20.107): Connected successfully
INFO vistapanel-2af211.local: Error while reading incoming messages: Error while reading data: [Errno 104] Connection reset by peer
INFO vistapanel-2af211.local: Ping Failed: Error while reading data: [Errno 104] Connection reset by peer
INFO Disconnected from ESPHome API for vistapanel-2af211.local
WARNING Disconnected from API
INFO Successfully connected to vistapanel-2af211.local
[00:10:59][D][api:102]: Accepted 172.16.20.107
[00:10:59][D][api.connection:917]: Home Assistant 2022.10.1 (172.16.20.107): Connected successfully
INFO vistapanel-2af211.local: Error while reading incoming messages: Error while reading data: [Errno 104] Connection reset by peer
INFO vistapanel-2af211.local: Ping Failed: Error while reading data: [Errno 104] Connection reset by peer
INFO Disconnected from ESPHome API for vistapanel-2af211.local
WARNING Disconnected from API
INFO Successfully connected to vistapanel-2af211.local
[00:11:14][D][api:102]: Accepted 172.16.20.107
INFO vistapanel-2af211.local: Error while reading incoming messages: Error while reading data: [Errno 104] Connection reset by peer
INFO vistapanel-2af211.local: Ping Failed: Error while reading data: [Errno 104] Connection reset by peer
INFO Disconnected from ESPHome API for vistapanel-2af211.local
WARNING Disconnected from API
INFO Successfully connected to vistapanel-2af211.local
[00:11:27][D][api:102]: Accepted 172.16.20.107
[00:11:27][D][api.connection:917]: Home Assistant 2022.10.1 (172.16.20.107): Connected successfully

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.