How To: OpenHab2 + DSC Alarm + Envisalink EVL-3 Module

Going to put together a quick tutorial while this is all fresh in my head.

I ran into a number of challenges and want to share it with this community.

Objective: Start using OpenHab to control and monitor the DSC alarm panel and stop using the Eyezon cloud service.

Topics Covered:

  • Add Envisalink Thing
  • Arm and Disarm DSC alarm using openhab app for Android or BasicUI

Note: As stated, I was previous using the Eyezon cloud service eyezon .com to monitor and receive alert emails, check the status and arm/disarm as needed while away from home. I now want to control this with openHab.


  • DSC Alarm panel
  • Envisalink 3 Internet module (EVL-3)
  • Openhab2
  • DSCAlarm Binding installed

Additional Comments:

  • If you don’t activate the Envisalerts like on the screenshot below no information is sent to the cloud, everything can work on your local network only. read more

I was having trouble connecting via PaperUI and read that the module will only accept 1 connection. So what I did was remove/disconnect the module from my eyezon account. I also rebooted the EVL board by lifting the RED keypad wire from the module to powercycle with the hopes of freeing up the socket that appeared to still be connected to the remote server.

Local Login to Envisalink

Ensure you can login locally - this will help ensure you have the right password and settings that will be used in PaperUI to configure the thing.

Connect to Envisalink within local network at http:// :80 (i prefer to set a static IP or apply MAC address binding in the router)

login using user:user is the default login/password combination.

If you are like me, you will have forgotten the password you set months ago and will need to do a factory reset on the EVL-3

Envisalink Reset Default Settings & Password

To reset password on the EVL3, follow these steps read more

  1. Power down the EVL by carefully removing the RED Keypad wire from EVL module (lights will go out)
  2. Short SI and SO together with a jumper wire (Pin 2 and Pin 5 on the H3 connector counting from the left-hand side of the board when holding the board with the text upright.
  3. Power on the EVL for 10 seconds (lights will do some flicker while resetting to default settings)
  4. Power down the EVL and remove jumper
  5. Reconnect power by connecting red keypad wire

Your module’s local password and static IP have been returned to factory defaults and DHCP is now on.

Setting up Thing - Envisalink

PaperUI --> Configuration --> Things

  • Click the + to add new thing.
  • Choose the DSCAlarm Binding
  • Click " Add Manually"
  • Select “EyezOn Envisalink”
  • Enter IP address, port and password (default port 4025, default password is user )
  • click the check box to save. ( Thing Added message should flash appear in bottom right corner, click ‘Show Thing’)

The Result

You should now see the EyezOn Envisalink with a status of “ONLINE”.
Now, OpenHab will start to auto detect new items and your inbox will soon populate with dozens of new items.(Panel, Partitions 1-4, Keypad, Zones 1-64

Setting up Thing - Keypad & Panel

PaperUI - Inbox, Click on “Keypad” and ADD THING.
PaperUI - Inbox, Click on “Panel” and ADD THING.

Doing it the Manual way.

To ensure a clean setup and no conflicts, first make sure you remove anything related to the DSCAlarm that you setup using PaperUI (envisalink, panel, keypad, partition, zone etc.). I used PaperUI remove, HabMin–>Configuration–>things Delete and yes, I even edited some of the .json files manually when i had trouble removing everything. I also restarted openhab.


Open Eclipse & create new .things file


Bridge dscalarm:envisalink:f59cebdc [ ipAddress="",password="secretpasswordhere"]
	Thing panel panel "DSC Alarm Panel" [ userCode="123456", suppressAcknowledgementMsgs=true ]
	Thing partition partition1 [ partitionNumber=1 ]
	Thing zone zone1 [ partitionNumber=1, zoneNumber=1 ] // Front Door
	Thing zone zone4 [ partitionNumber=1, zoneNumber=4 ] // Back Door	
	Thing zone zone5 [ partitionNumber=1, zoneNumber=5 ] // Front Motion
	Thing zone zone6 [ partitionNumber=1, zoneNumber=6 ] // Kitchen Motion
//	Thing zone zone8 [ partitionNumber=1, zoneNumber=8 ]
	Thing zone zone9 [ partitionNumber=1, zoneNumber=9 ] // Living Rm Window
	Thing zone zone10 [ partitionNumber=1, zoneNumber=10 ] // Dining Rm Window (Bay)
	Thing zone zone11 [ partitionNumber=1, zoneNumber=11 ] // Kitchen Window
	Thing zone zone12 [ partitionNumber=1, zoneNumber=12 ] // Family Room Window
	Thing zone zone13 [ partitionNumber=1, zoneNumber=13 ] // Den Window
	Thing zone zone14 [ partitionNumber=1, zoneNumber=14 ] // Laundry Window 	
	Thing keypad keypad


Group DSCAlarm
Group DSCAlarmPanel (DSCAlarm)
Group DSCAlarmPartitions (DSCAlarm)
Group DSCAlarmZones (DSCAlarm)
Group DSCAlarmKeypads (DSCAlarm)

/* Groups By Device Type */
Group:Contact:OR(OPEN, CLOSED) DSCAlarmDoorWindow <door>
Group:Contact:OR(OPEN, CLOSED) DSCAlarmMotion <motion>
/* Group:Contact:OR(OPEN, CLOSED) DSCAlarmSmoke <smokeDetector> */

/* DSC Alarm Items */

Switch BRIDGE_CONNECTION {channel="dscalarm:envisalink:f59cebdc:bridge_reset"}
String SEND_DSC_ALARM_COMMAND "Send a DSC Alarm Command" {channel="dscalarm:envisalink:f59cebdc:send_command"}

/* DSC Alarm Partition Items */
String PARTITION1_STATUS "Partition 1 Status: [%s]" (DSCAlarmPartitions) {channel="dscalarm:partition:f59cebdc:partition1:partition_status"}
Number PARTITION1_ARM_MODE "Partition 1 Arm Mode:" <alarm> (DSCAlarmPartitions) {channel="dscalarm:partition:f59cebdc:partition1:partition_arm_mode"}
Switch PARTITION1_ARMED (DSCAlarmPartitions) {channel="dscalarm:partition:f59cebdc:partition1:partition_armed"}
Switch PARTITION1_ENTRY_DELAY (DSCAlarmPartitions) {channel="dscalarm:partition:f59cebdc:partition1:partition_entry_delay"}
Switch PARTITION1_EXIT_DELAY (DSCAlarmPartitions) {channel="dscalarm:partition:f59cebdc:partition1:partition_exit_delay"}
Switch PARTITION1_IN_ALARM (DSCAlarmPartitions) {channel="dscalarm:partition:f59cebdc:partition1:partition_in_alarm"}
String PARTITION1_OPENING_CLOSING_MODE "Opening/Closing Mode: [%s]" (DSCAlarmPartitions) {channel="dscalarm:partition:f59cebdc:partition1:partition_opening_closing_mode"}

/* DSC Alarm Keypad Items */
Number KEYPAD_READY_LED "Ready LED Status" <selfshield> (DSCAlarmKeypads) {channel="dscalarm:keypad:f59cebdc:keypad:keypad_ready_led"}
Number KEYPAD_ARMED_LED "Armed LED Status" <alarm_armed_led> (DSCAlarmKeypads) {channel="dscalarm:keypad:f59cebdc:keypad:keypad_armed_led"}
Number KEYPAD_MEMORY_LED "Memory LED Status" <memoryLED> (DSCAlarmKeypads) {channel="dscalarm:keypad:f59cebdc:keypad:keypad_memory_led"}
Number KEYPAD_BYPASS_LED "Bypass LED Status" <bypassLED> (DSCAlarmKeypads) {channel="dscalarm:keypad:f59cebdc:keypad:keypad_bypass_led"}
Number KEYPAD_TROUBLE_LED "Trouble LED Status" <troubleLED> (DSCAlarmKeypads) {channel="dscalarm:keypad:f59cebdc:keypad:keypad_trouble_led"}
Number KEYPAD_PROGRAM_LED "Program LED Status" <programLED> (DSCAlarmKeypads) {channel="dscalarm:keypad:f59cebdc:keypad:keypad_program_led"}
Number KEYPAD_FIRE_LED "Fire LED Status" <fireLED> (DSCAlarmKeypads) {channel="dscalarm:keypad:f59cebdc:keypad:keypad_fire_led"}
Number KEYPAD_BACKLIGHT_LED "Backlight LED Status" <backlightLED> (DSCAlarmKeypads) {channel="dscalarm:keypad:f59cebdc:keypad:keypad_backlight_led"}
Number KEYPAD_AC_LED "AC LED Status" <acLED> (DSCAlarmKeypads) {channel="dscalarm:keypad:f59cebdc:keypad:keypad_ac_led"}

/* DSC Alarm Zones Items */
Contact ZONE1_STATUS "Front Door (Zone 1)" <door> (DSCAlarmZones, FrontFoyer, DSCAlarmDoorWindow) {channel="dscalarm:zone:f59cebdc:zone1:zone_status"}
String ZONE1_MESSAGE "Zone Message: [%s]" (DSCAlarmZones) {channel="dscalarm:zone:f59cebdc:zone1:zone_message"}
Switch ZONE1_BYPASS_MODE "Fs Mode" (DSCAlarmZones) {channel="dscalarm:zone:f59cebdc:zone1:zone_bypass_mode"}
Switch ZONE1_IN_ALARM "Zone 1 Alarm Condition" (DSCAlarmZones) {channel="dscalarm:zone:f59cebdc:zone1:zone_in_alarm"}
Switch ZONE1_TRIPPED <switch> (DSCAlarmZones) {channel="dscalarm:zone:f59cebdc:zone1:zone_tripped"}


	Frame label="SECURITY SYSTEM" {
        Group item=PARTITION1_STATUS label="Alarm Status" {
        	Default item=PANEL_MESSAGE   
        	Default item=ZONE1_STATUS
        	Default item=ZONE4_STATUS
        	Default item=ZONE5_STATUS
        	Default item=ZONE6_STATUS
        	Default item=ZONE9_TRIPPED
//        	Switch item=ZONE9_TRIPPED mappings=[OFF="closed", ON="open"]
//        	Switch item=ZONE10_TRIPPED mappings=[OFF="closed", ON="open"]
        	Default item=ZONE10_TRIPPED
        	Default item=ZONE11_TRIPPED
        	Default item=ZONE12_TRIPPED
        	Default item=ZONE13_TRIPPED
        	Default item=ZONE14_TRIPPED
        Switch item=PARTITION1_ARM_MODE label="" mappings=[0="Disarm", 1="Away", 2="Stay", 3="No Entry Delay", 4="With User Code"]

Dear Gadget Guy,

Thanks for this insightful post. I have almost everything going except the Alarm bypass status. I used the same commands as you have but when I bypass alarms on the keypad it doesn’t change state in Openhab.

Are yours working? Any tips for getting this going?


1 Like

This is awesome. I see that you have this used as a sitemap. Can this be implemented into habpanel using say the keypad?


thanks for the systematic posting.

I use this kind of design for quite some time already, using it for motion detection mainly and for detecting open garage (for sure, it works as alarm system as well).

but my question remains - don’t you feel uneasy with the security of the configuration? basically in THING file there is a password for envisalink, and if you send commands in rules you have security code. and all this in plain text.

if I am not mistaken, openhab uses 755 permissions for these configuration files, so they are kind of world-readable.


1 Like

Hi Modes,

I have not tried the bypass feature yet but will give it a try sometime and report back to you.

Maybe you can tell me this… When I set the alarm to “no entry delay” aka *9 Mode, it does not make any sound (from keybad speaker) as it does when I arm STAY or AWAY mode, or, when i use the physical keypad.

It wold be nice to get the audible feedback when arming in No Entry (*9) delay.

Does your do the same?

Hi Devin,

I really like the look of the screenshot you posted with the keypad. I have not used habpanel, just the smartphone Openhab app for Android/iphone.

That looks really neat though. a wall panel would be super cool in the bedroom… (alarm control, external cameras etc…) Thanks for the idea!

Hi rzlius, initially I frowned when discovering that the code is stored in plaintext in the Thing file. However, I chose the convenience over uber security.

It is within my risk appetite… just remember not to leave your openhab unprotected (no default password etc)

It also helps if you run everything locally and control all your network equipment and don’t let shady people on your network.

Happy hacking!

Heh…I have used my own post at least 3 times to reconfigure my DSC panel! Thanking past self for this!

Thank you for such a detailed setup guide. Unfortunately, my UI will not show actual status of each zone. I have checked in PaperUI -> Configuration->Things to ensure that the DSC Alarm zones are on-line and they do show on-line and that they are linked properly on the channels, it is just that the UI (Both Classic and Basic) show “Front Door (Zone1)” (for example) but does not say ‘Open’ or ‘Closed’. Another piece of info is that I can arm/disarm my alarm once all the zones are closed. So my only issue with with the contacts for each zone not showing status.

Also the actual keypad/panel does not show up. Would appreciate any guidance anyone can offer here. Thanks!

Post your Item file (or a subset of showing a zone that doesn’t work). And take a look in the event log and openhab log (found in /var/log/openhab2) after you open and close the zone to see if anything is being reported there.

Thanks for the reply. In looking more carefully at this, it is the icons that change … I was expecting words that said open/closed … pretty cool little graphic.

One thing though, I cannot seem to get an actual control panel with digits to enter. I’ll keep looking … Cheers

Wow - I really like it when I see a product and think hmmm, that would be great to use with OpenHAB but this old man turns cart wheels when he finds the integration and documentation done! It’ll be a few months but I want to try it with the Honeywell Vista20-P. Hoepfully that works. Also does anyone know if everything that is anounced to the voice keyboard is what is exposed by the VersaLink?