[OBSOLETE] Honeywell / Ademco Vista 20P Integration

I haven’t. I’ll take a look.

Thanks,
Aaron

Thanks for putting so much time into this project @redloro. Was hoping you or someone on the forum might be able to help. Thanks in advance for any advice you can offer!

It seems I have everything set up:

  • Smartthings Node server is activated and connected to EVL-4 (server runs without errors, and can see Raspberry Pi 3 IP in Envisalink interface)

Problem:

  • Devices / Things / Zones never appear in SmartThings app

Attempts to fix:

  • Tried rebooting/power cycle ST Hub
  • Tried switching between “discovery” and “manual” modes
  • Tried changing authcode to shorter phrase
  • Tried removing the SmartThings Hub IP/port info in config.json

Upon updating SmartApp settings, server readout notes (IP, passwords redacted):

[stnp] ::ffff:192.168.1.XXX GET /subscribe/192.168.1.XXX:39500
[stnp] ::ffff:192.168.1.XXX GET /plugins/envisalink/config/192.168.1.YYY:4025:envisalink password:PIN

Otherwise it just cycles between notices on the security keypad:

ready",“alpha”:“FAULT 12 DINING WINDOW LEFT”}
[2017-08-15T05:14:32.934Z] [evl3] {“type”:“partition”,“partition”:1,“state”:“notready”,“alpha”:“FAULT 13 DINING WINDOW RIGHT”}
[2017-08-15T05:14:36.451Z] [evl3] {“type”:“partition”,“partition”:1,“state”:“notready”,“alpha”:“FAULT 23 CONTACTROOF HATCH”}

config.json (redacted):

{
“port”: 8080,
“authCode”: “redacted”,
“envisalink”: {
“address”: “192.168.1.YYY”,
“port”: “4025”,
“password”: “redacted”,
“securityCode”: “PIN”,
“dumpZoneTimer”: “0”,

"panelConfig": {              
  "type": "manual",
  "partitions": [
    {"partition": 1, "name": "Security Panel"}
  ],
  "zones": [
    {
                "zone": 9,
                "type": "contact",
                "name": "Front Door"
            },
            {
                "zone": 10,
                "type": "contact",
                "name": "Front Double Door"
            },
            {
                "zone": 11,
                "type": "contact",
                "name": "Front Double Door Shock"
            },
            {
                "zone": 12,
                "type": "contact",
                "name": "Dining Window Left"
            },
            {
                "zone": 13,
                "type": "contact",
                "name": "Dining Window Right"
            },
            {
                "zone": 14,
                "type": "contact",
                "name": "Kitchen Door"
            },
            {
                "zone": 15,
                "type": "contact",
                "name": "Kitchen Door Shock"
            },
            {
                "zone": 16,
                "type": "motion",
                "name": "Bathroom Skylight"
            },
            {
                "zone": 17,
                "type": "contact",
                "name": "Window Rear 2nd Floor"
            },
            {
                "zone": 18,
                "type": "contact",
                "name": "Rear Door 2nd Floor"
            },
            {
                "zone": 19,
                "type": "contact",
                "name": "Rear Door 2nd Floor Shock"
            },
            {
                "zone": 20,
                "type": "contact",
                "name": "Left Window 3rd Floor"
            },
            {
                "zone": 21,
                "type": "contact",
                "name": "Right Window 3rd Floor"
            },
            {
                "zone": 22,
                "type": "motion",
                "name": "Skylight 3rd Floor"
            },
            {
                "zone": 23,
                "type": "contact",
                "name": "Roof Hatch"
            },
            {
                "zone": 24,
                "type": "contact",
                "name": "Front Door Basement"
            },
            {
                "zone": 25,
                "type": "contact",
                "name": "Rear Door Basement"
            },
            {
                "zone": 26,
                "type": "contact",
                "name": "Rear Door Basement Shock"
            },
            {
                "zone": 27,
                "type": "motion",
                "name": "Basement Rear Motion"
            },
            {
                "zone": 28,
                "type": "contact",
                "name": "Kitchen Window"
            }
  ]
}

}
}

Your panelConfig.type needs to be set to “discover”… like so: "type": "discover"
Restart the STNP, then enable the "Discover Zones" setting in the SmartApp and save.

If that doesn’t work, let’s make sure that you don’t have any other SmartApps interfering with inbound comms on the ST hub. Refer to post #560.

Basically what you’re going to do is add some debug logging to the SmartApp and then manually send a notification from the RPi and watch the SmartApp report the notification. If the SmartApp doesn’t report the notification, then something between the RPi and the SmartApp is blocking comms… run the test and report back.

1 Like

I tried discover the first time, but it worked this time. Updated the config.json and flipped the switch in ST app. All of my devices are here, neat! Thank you!

I took a look at setting something up in WebCoRE (which I have never used before) but I don’t see anything in my SmartThings logs based on the alarm arming / disarming. Has anyone successfully used alarm arm / disarm as a trigger for other actions? If so…what do you enter in WebCoRE as the trigger event?

I am trying to arm/disarm envisalink 4 from Google Home. What’s the command to do that?

I’m trying to setup ad2usb with node proxy. I cannot figure out what should be in my config.json file. Can you please help me? Sorry…this is new to me. I followed @redloro but got lost at what to put in the config.json file for ad2usb.

Thanks so much!

Really appreciate the help.

Be sure to also check out the install video and read the FAQ in the first post of this thread!

Cannot thank you enough. I think I’m getting close. The keypad app can speak via ad2usb. This is the error I’m getting:

C:>cd node sm

C:\Node SM>npm run start

smartthings-nodeproxy@1.0.0 start C:\Node SM
node server.js

[2017-09-01T19:35:54.070Z] [stnp] SmartThings Node Proxy listening at http://:
8080
[2017-09-01T19:35:56.572Z] [ad2] AD2USB connect mode set to: serial
[2017-09-01T19:35:56.814Z] [stnp] Loaded plugin: ad2usb
module.js:491
throw err;
^

Error: Cannot find module ‘pcap’
at Function.Module._resolveFilename (module.js:489:15)
at Function.Module._load (module.js:439:25)
at Module.require (module.js:517:17)
at require (internal/module.js:11:18)
at Object. (C:\Node SM\plugins\dash.js:22:12)
at Module._compile (module.js:573:30)
at Object.Module._extensions…js (module.js:584:10)
at Module.load (module.js:507:32)
at tryModuleLoad (module.js:470:12)
at Function.Module._load (module.js:462:3)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! smartthings-nodeproxy@1.0.0 start: node server.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the smartthings-nodeproxy@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional l
ging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\reffr\AppData\Roaming\npm-cache_logs\2017-09-01T19_35_5
996Z-debug.log

C:\Node SM>

Thanks to @redloro!!! I had extra plugins. Removed them and I think its working.

So thankful.

Rob

I have STNP running in my QNAP QTS 4.3 using nohup command to run in the background. However the script will randomly stop. I am new to linux. Can anyone help me with running node server.js in the background without interruptions and restart the script if it stops.

Have you tried forever?

I have tried to use that command but not able to find it in the command prompt. Not sure how to install it.

Hi Redloro and all,

I tried to read MANY of the posts on here before asking these questions, so forgive me if this has been asked (if so, if you can point me in the right direction, that would be great.) Redloro, I followed your youtube video on set-up and got all the way to the “NPM install” (running Raspian on a Raspberry pi 2 B) and it said the command wasn’t found…Obviously I must have missed something in the set-up?

As far as the json.config file, what I basically did is copied your sample and just left the ST Node Proxy part and the Envisalink part…I’m guessing those are the only two needed if I’m using a EVL-3? I’m a little confused here on exactly what I am supposed to put in the config file? Do I copy all the zones from my Vista 20P? I noticed you had mentioned you can use the installer code with the config file and that should auto-populate zones. Which brings me to two more points - I’m not desirous of having the alarm code/installer code within the config file (like you, I usually just use the alarm app or Eyez-on to arm and disarm.) My main purpose of installing your beautiful work of art is to have actions from the Vista20P dictate certain responses (e.g., turn on certain lights in alarm mode, turn off a certain plug when in “away arm” mode, etc.)

I’m sure I have more questions, but that is where I am right now…thanks!

UPDATE:

I somehow didn’t install NPM, but I think I got that installed. When I typed 'npm install" I got this…which didn’t seem to do what I needed?

npm WARN package.json smartthings-nodeproxy@1.0.0 No README data
split@1.0.1 node_modules/split
└── through@2.3.8

express@4.15.4 node_modules/express
├── setprototypeof@1.0.3
├── array-flatten@1.1.1
├── escape-html@1.0.3
├── utils-merge@1.0.0
├── cookie-signature@1.0.6
├── merge-descriptors@1.0.1
├── content-type@1.0.2
├── methods@1.1.2
├── encodeurl@1.0.1
├── fresh@0.5.0
├── content-disposition@0.5.2
├── cookie@0.3.1
├── etag@1.8.0
├── parseurl@1.3.1
├── vary@1.1.1
├── path-to-regexp@0.1.7
├── range-parser@1.2.0
├── serve-static@1.12.4
├── statuses@1.3.1
├── depd@1.1.1
├── qs@6.5.0
├── on-finished@2.3.0 (ee-first@1.1.1)
├── finalhandler@1.0.4 (unpipe@1.0.0)
├── proxy-addr@1.1.5 (forwarded@0.1.0, ipaddr.js@1.4.0)
├── debug@2.6.8 (ms@2.0.0)
├── send@0.15.4 (ms@2.0.0, destroy@1.0.4, mime@1.3.4, http-errors@1.6.2)
├── accepts@1.3.4 (negotiator@0.6.1, mime-types@2.1.17)
└── type-is@1.6.15 (media-typer@0.3.0, mime-types@2.1.17)

nconf@0.8.4 node_modules/nconf
├── ini@1.3.4
├── secure-keys@1.0.0
├── async@1.5.2
└── yargs@3.32.0 (decamelize@1.2.0, camelcase@2.1.1, y18n@3.2.1, window-size@0.1.4, string-width@1.0.2, os-locale@1.4.0, cliui@3.2.0)

Recommend you completely read the first post… and follow the setup steps in the FAQ:

I’ll respond to your other questions on pm.

1 Like

Hi Redloro, last time I checked in here I was having stability problems with the node process. (it would frequently die) I’ve since upgraded my Raspberry Pi to the latest version, which includes node v6.x. Anyway, the good news is that the node process no longer dies! However the bad news is that I’m seeing a different problem that I haven’t been able to figure out.

Once I launch the nodeproxy (server.js), everything works great for a period of time - might be several hours, a day or maybe a few days, but then inevitably the nodeproxy will stop pumping data to ST. This will manifest itself by my zones in the ST app no longer being current. (ex: I open a door - nothing is registered in the app) Looking at the logfile, it’s clear the connection between the EVL module and the nodeproxy gets dropped - I’ll see a “Envisalink connection closed” message, followed 4 seconds later by a “Connected to Envisalink at <my.ip.address>”. (looking at the code in envisalink.js, this is obviously the reconnect process kicking in and calling the init function) However, even though it seemingly reconnects, there doesn’t seem to be any additional log activity afterwards - just radio silence.

I’m not sure if the problem is that the EVL module isn’t sending any data back, or maybe something in envisalink.js is not handling it correctly after the reconnect. (I’m worried that it’s the former) Any ideas or things I can do to troubleshoot further? Thanks!

Hey can you make sure you install Node 7+ and also get the latest envisalink.js plugin from GitHub? There were some issues with reconnects that were fixed a while back.

Good luck and keep us posted.

Hello,

I think I’m in the final stretch getting this to work. If any of you can chime in on my two issues, that would be very helpful.

The first issue, which I saw previous people mention, is the error “Notify server address and port not set!” I have everything up and running, but I can’t see my devices on Smart Home Monitor (I can, however, see the devices opening and closing on the server side.) I know that once the Smart App runs, it is supposed to auto-populate these details, but this isn’t happening for some reason. I thought about adding a few lines to the config file, but I don’t want to mess with it, since Redloro helped me to get that running perfectly. I’m running a Raspberry Pi 2 b with Raspian Stretch.

The only other thing I’m trying to find out is how to get the server to re-run if the Raspberry Pi re-boots. I figured out the forever commands and can get that to run just fine, but I can’t figure out how to have forever re-run on re-boot. I used a couple different methods, none of which worked. I found crontab to be the easiest to use, but when I re-boot and check 'forever list" there’s no processes happening.

Thanks!

Re-run the SmartApp and set the “Discover Zones” to ENABLED… then SAVE. All zones should show up.

Check post #539