[OBSOLETE] Honeywell / Ademco Vista 20P Integration

It being the same code each times means you can rule out anything random like data being dropped.

Have you updated EVL firmware recently? It’s always possible that there’s something new that’s not documented. The TPI docs were last updated in 2017.

Otherwise… I’m guessing you’re looking at logs from Hubitat. You might get more insight by looking at the raw RX< logs from STNP. Might need to edit the plugin as the RX< log line might be commented out.

my EVL4 is on 01.05.203A which appears to be just about the latest from earlier this year. https://forum.eyezon.com/viewtopic.php?t=5115

I’ve been reading the output log from STNP’s service.
on the plugin, do i just uncomment this line (233) with the logger function?

function read(data) {
if (data.length == 0) { return; }
//logger('RX < '+data);

edit: yes, thats how

here’s my RX log. its receiving these commands when i open a sensor

RX < %02,0300000000000000$
RX < %01,10000000000000000000000000000000$

and then this gets included when i close a sensor

RX < %02,0100000000000000$

also found this a little later in the log after everything had been still for awhile:

[2023-05-26T18:30:20.767Z] [evl4] RX < %00,01,1C08,08,00,****DISARMED****  Ready to Arm  $
[2023-05-26T18:30:30.736Z] [evl4] RX < %00,01,1C08,08,00,****DISARMED****  Ready to Arm  $
[2023-05-26T18:30:36.926Z] [evl4] RX < %20,F7EC$
[2023-05-26T18:30:36.927Z] [evl4] Error: ignoring invalid message code from Envisalink: %20, data: F7EC
[2023-05-26T18:30:40.606Z] [evl4] RX < %00,01,1C08,08,00,****DISARMED****  Ready to Arm  $
[2023-05-26T18:30:50.640Z] [evl4] RX < %00,01,1C08,08,00,****DISARMED****  Ready to Arm  $

thinking back, i remember i also made a slight change to the programming of my Vista where I silenced the non-alpha keypad. not sure if that would cause this type of data to be sent

RX log
[2023-05-26T18:10:46.251Z] [stnp] SmartThings Node Proxy listening at http://:::8080
[2023-05-26T18:10:46.356Z] [stnp] Loaded plugin: envisalink
[2023-05-26T18:10:46.364Z] [evl4] Connected to Envisalink at
[2023-05-26T18:10:46.371Z] [evl4] RX < Login:
[2023-05-26T18:10:46.376Z] [evl4] RX < OK
[2023-05-26T18:10:55.241Z] [evl4] RX < %00,01,1C08,08,00,****DISARMED****  Ready to Arm  $
[2023-05-26T18:10:55.245Z] [evl4] {"type":"partition","partition":1,"state":"ready","alpha":"****DISARMED****  Ready to Arm"}
[2023-05-26T18:11:04.985Z] [evl4] RX < %00,01,1C08,08,00,****DISARMED****  Ready to Arm  $
[2023-05-26T18:11:15.035Z] [evl4] RX < %00,01,1C08,08,00,****DISARMED****  Ready to Arm  $
[2023-05-26T18:11:24.743Z] [evl4] RX < %00,01,1C08,08,00,****DISARMED****  Ready to Arm  $
[2023-05-26T18:11:29.594Z] [evl4] RX < %02,0300000000000000$
[2023-05-26T18:11:29.597Z] [evl4] RX < %01,10000000000000000000000000000000$
[2023-05-26T18:11:29.598Z] [evl4] RX < %00,01,0008,05,00,FAULT 05        GARAGE DOOR     $
[2023-05-26T18:11:29.600Z] [evl4] {"type":"zone","partition":1,"zone":5,"state":"open"}
[2023-05-26T18:11:29.604Z] [evl4] {"type":"partition","partition":1,"state":"notready","alpha":"FAULT 05        GARAGE DOOR"}
[2023-05-26T18:11:32.888Z] [evl4] RX < %00,01,0008,05,00,FAULT 05        GARAGE DOOR     $
[2023-05-26T18:11:33.508Z] [evl4] RX < %02,0100000000000000$
[2023-05-26T18:11:33.511Z] [evl4] RX < %00,01,1C08,08,00,****DISARMED****  Ready to Arm  $
[2023-05-26T18:11:33.511Z] [evl4] {"type":"zone","partition":1,"zone":"5","state":"closed"}
[2023-05-26T18:11:33.516Z] [evl4] {"type":"partition","partition":1,"state":"ready","alpha":"****DISARMED****  Ready to Arm"}
[2023-05-26T18:11:37.173Z] [evl4] RX < %00,01,1C08,08,00,****DISARMED****  Ready to Arm  $
[2023-05-26T18:11:47.142Z] [evl4] RX < %00,01,1C08,08,00,****DISARMED****  Ready to Arm  $
[2023-05-26T18:11:57.076Z] [evl4] RX < %00,01,1C08,08,00,****DISARMED****  Ready to Arm  $

and here’s the relevant code from the plugin for easy access

read function code
   * read
  function read(data) {
    if (data.length == 0) { return; }
    logger('RX < '+data);

    var code = data;
    if (data[0] == '%' || data[0] == '^') {
      code = data.split(',')[0];
      data = data.slice(data.indexOf(',')+1,-1);

    // defined device response handler
    if (responseHandler && deviceResponse) {
      var match = data.indexOf(deviceResponse);
      if (match != -1) {
    } else {
      // generic handler
      if (RESPONSE_TYPES[code]) {
        responseHandler = RESPONSE_TYPES[code]['handler'];
      } else {
        logger("Error: ignoring invalid message code from Envisalink: "+code+", data: "+data);

I was wondering whether the error was a cut off message in some way, but that’s definitely a full message properly delimited by a % and a $. The rest of the messages all look fine. Even when you get the %20 message, it doesn’t interrupt the cadence of the normal panel updates that are popping up every 10 seconds. I wouldn’t be too concerned about it. You could reach out to EyezOn to see if they can tell you what it means. It seems like an intentional message, but since it’s always transmitting the same data it may not be anything worth decoding.

cool, if it’s seems fairly innocuous then I’ll move on as we all have better things to spend time on. appreciate the help