Using Envisalink in Rule Machine

I have a rule set up in RM that opens my garage door, unlocks the garage door lock to the house, and turns on some lights using tasker on my phone to send a GET using Maker API to a virtual "arrival" button in hubitat when I scan an NFC tag in my car.

The pushing of this button is the trigger for these actions. I would like to also be able to disarm my Vista 20p alarm using the Envisalink 4 that I just installed. I installed the HE Envisalink integrations and can arm/disarm the alarm from the devices screen, but i do not see any action command in RM for disarming. Did I miss it?

The type of command you are looking for would typically be available via “Run Custom Action” in Rule Machine. Once you select this, chose “Actuator” which should then allow you to find your alarm system. You can then add the required action (Likely to be “Disarm()” with no parameter, but I don’t own one, so can’t tell for sure…)


If you turn on HSM integration in the HE Envisalink integration, Envisalink will respond to any HSM command. Arming or disarming HSM will cause the vista 20 to do the same. Or you can do what @Sebastien recommends... both will work equally well. I find the first a little more convenient.

Screen Shot 2022-09-17 at 3.37.36 PM

In a rule it is just this...

Screen Shot 2022-09-17 at 3.40.14 PM


I never use HSM so that option would not be good in my case.

I did find the actuator selection under run custom actions. I left the parameter blank and ran the rule, but it did not disarm. I tried 'string' and 'number' using my 4 digit alarm code, no luck either.

Maybe a different command is required? I would check what command is sent by the driver when it does disarm, and then ensure the same command is used in RM.

Hopefully, someone who has an Envisalink can pipe in here…

1 Like

Just showing you how my Envisalink system works. I'm not sure if you are using the same system for the docker, but hopefully this message will help you debug and get it working.

I use Honeywell Security App by Brian Wilson Honeywell Partition' device's command 'disarm' with no parameters from RM or the devices button and it sends a command to the RPi's docker app that in turn relays the disarm command to the envisalink that disarms the Vista. I also use this same Hubitat app to manage my various HSM states since I have that option activated for this Hubitat app.

Honeywell Security: Running Process Event [partition:1, alpha:****DISARMED**** Ready to Arm, state:ready, type:partition]
Honeywell Security: send command: /plugins/envisalink/disarm
Honeywell Security: Sending HSM Event to hsmSetArm: armHome (partition status: armedstay)
Honeywell Security: Partition Device: Honeywell Partition

Perhaps you can monitor the 'smartthings-nodeproxy' docker app's log messages to see if Hubitat is communication with the docker app using the following docker commands; one to restart the docker 'smartthings-nodeproxy' app and then immediately the next docker command to watch the logs. Then try the disarm command in the Hubitat's Honeywell partition device to see what is transmitted to the 'smartthings-nodeproxy' docker container.

'docker restart smartthings-nodeproxy'
'docker logs -f -n25 smartthings-nodeproxy'
Then on the Hubitat Apps page, edit your 'Honeywell Security' app and save it, so that it will communicate with the 'smartthings-nodeproxy' docker app. You should see messages in the Rpi's docker log file with the communication between Hubitat and Rpi's docker.

Here is my Rpi docker logs to arm and disarm the Vista. Note the log line with the 'TX > {Vista Alarm Password ****}1' which is the command that is sent to the EnvisaLink which is listening to the docker app at (see Envisalink's Network page image below).

[2022-09-18T09:34:34.393Z] [evl3] RX < %00,01,8C08,08,00,ARMED ***STAY***You may exit now$
[2022-09-18T09:34:34.394Z] [evl3] Execute keypad_update: 01,8C08,08,00,ARMED ***STAY***You may exit now
[2022-09-18T09:34:34.396Z] [evl3] {"partitionNumber":1,"flags":{"alarm":false,"alarm_in_memory":false,"armed_away":false,"ac_present":true,"bypass":false,"chime":false,"not_used1":false,"armed_zero_entry_delay":false,"alarm_fire_zone":false,"system_trouble":false,"not_used2":true,"not_used3":true,"ready":false,"fire":false,"low_battery":false,"armed_stay":true},"userOrZone":8,"beep":"off","alpha":"ARMED ***STAY***You may exit now","dscCode":"ARMED_STAY"}
[2022-09-18T09:34:34.397Z] [evl3] {"alpha":"ARMED ***STAY***You may exit now","timer":[],"partition":1,"zones":[null,null,null,null,null,null,null,"closed",null,"closed",null,null,null,null,null,null,null,null,null,"closed"]}
[2022-09-18T09:34:34.406Z] [stnp] ::ffff: GET /plugins/envisalink/disarm
[2022-09-18T09:34:34.407Z] [evl3] TX > {Vista Alarm Password ****}1
[2022-09-18T09:34:36.894Z] [evl3] RX < %02,0100000000000000$
[2022-09-18T09:34:36.894Z] [evl3] Execute partition_state_change: 0100000000000000
[2022-09-18T09:34:36.895Z] [evl3] RX < %00,01,1C08,08,01,****DISARMED****  Ready to Arm  $
[2022-09-18T09:34:36.914Z] [evl3] Execute keypad_update: 01,1C08,08,01,****DISARMED****  Ready to Arm  
[2022-09-18T09:34:36.915Z] [evl3] {"partitionNumber":1,"flags":{"alarm":false,"alarm_in_memory":false,"armed_away":false,"ac_present":true,"bypass":false,"chime":false,"not_used1":false,"armed_zero_entry_delay":false,"alarm_fire_zone":false,"system_trouble":false,"not_used2":true,"not_used3":true,"ready":true,"fire":false,"low_battery":false,"armed_stay":false},"userOrZone":8,"beep":"beep 1 time","alpha":"****DISARMED****  Ready to Arm","dscCode":"READY"}
[2022-09-18T09:34:36.916Z] [evl3] {"alpha":"ARMED ***STAY***You may exit now","timer":[],"partition":1,"zones":[null,null,null,null,null,null,null,"closed",null,"closed",null,null,null,null,null,null,null,null,null,"closed"]}

1 Like

No parameters are necessary. A simple disarm() is sufficient. Are you using the envisalink integration version that runs entirely on HE or are you using the smartthings-nodeproxy one that @KurtSanders references? I'm using the first.

It sounds more like your envisalink integration is not configured correctly. Do you know it's actually working? I'd validate that the EyezOn app works first. If it does, you know the Envisalink board is connected to your panel correctly and the issue is with the integration. If you look at the driver itself you should see something like this. The details will all be different but you should definitely see data coming from the panel:

Screen Shot 2022-09-18 at 7.13.09 AM

In addition if you have zones configured and mapped to HE devices you should see the HE virtual child device change status as the actual alarm devices do.

1 Like

Update: I went into the device page of envisialink and clicked arm and disarm buttons only to find they are not functional. When i first installed it they were. I hit the 'initialize' tab, and now it is arming and disarming in the device page as well as in the rule I created. I'll monitor it to see if it stays working. Thanks for the help.

1 Like

Download the Hubitat app