ELK M1 Plugin for XLobby


New Member
I have created an ELK M1 Plugin for xlobby. With this plugin you can monitor the state of the ELK M1 or control it.

Information about xlobby can be found at:

A thread about the plugin with screen shots and links to the plugin and documentation can be found at:
ELK M1 Plugin for XLobby

My graphics abilities are a little lacking. The screen shots do not show all the graphics capabilities of xlobby.

Looks good! You don't have to have the Elk M1 connected to the xlobby PC if you either get the M1XEP module, or use something like hw_vsp to convert the serial connection into an IP connection (so you could hook up the Elk M1 to another system in your house). Keep us posted!
Can anyone get this Xlobby plugin to work by using the freeware hw_vsp (where the Elk is conneted to the Xlobby machine via ethernet rather than a serial cable)?

I am attempting to give this a try, but serial communications is "not my thing".
Can Xlobby log use this plugin to log status changes of the Elk security sensors and thermostat/keypad temperatures?
I use hw_vsp with my.elk, which is serial based as well, and don't have any problems. What kind of issues are you having?
To answer a couple of questions...


The plugin does log all traffic between the plugin and the M1. The file produced will be in the xlobby directory under plugins/xelk. The file name is elk.log. The data in the log is the raw ascii data though. You would need to reference the Elk Serial RS-232 Protocol document to translate the ascii data.

I played around with hw_vsp a long time ago when I was trying to use ElkRP remotely. I have not tried it with the plugin.

Hope this helps.
The problem I am having is that I am unable to get "hw_vsp" to connect to my M1XEP (I guess I am doing it wrong). This is what I am doing (unsucessfully).

In the hw_vsp application I put in the "IP Address" of the M1XEP ( and specify "Port" 2101 (I believe this right port for "plain text" out according to the M1XEP documentation).

I then pick a "Port Name" of an unused com port (say COM 5). For "Server Port" I really don't know what to use (nothing seems to work).

In all cases hw_vsp tells me that a Virtual port was created, but there is a "Winsock error 10061" (whatever that is). Any guidance?
Make sure you uncheck "NVT enable" in the Settings tab. Your port settings sound right. Also make sure you are connecting at 115k.
If your Pulgin is succesfully connected (and receives good data), what does a successfull connection look like? In other words, what would a person expect to see (upon a successfull connection)? Will it be un-mistakable?
I unchecked the "NVT enable". I went back to ELK RP to make sure 2101 was enabled, and re-booted the M1XEP. Still the same Winsock error (googled the error code, it means that the connection was actively refused). Sounds like my wife!!!

Anyway, where do you set port speed? In RP?
Ok, I found port speed in Elk RP. I then did a full and send and recieve w/ RP. That did the trick, no more Winsock error code.

Now that I can open a Virtual Serial Port with no errors, I attempt to configue the plugin. After the plugin says it is connected to the newly created COM port, I see messages in the hw_vsp text box that says:

remote control option couldn't be set, then it says that it can't establish a handshake.

What other settings am I messing up?
When the plugin indicates it is connected, all it really means is that it was able to open the comm port and is trying to communicate with the panel. It does not mean that it successfully had a two way communication with the panel. I should probably change that.

To see if you are really connected it is probably easiest to go to the log file created in <xlobby directory>/plugins/xelk/elk.log

At the top of the file there should be a print indicating the Port is Opened. Next you should see a series of prints with 2 numbers then 2 lower case letters then some more data. Something like:

The 2 lower case letters are commands to the ELK. The reply back from the elk will have upper case letters. Something like:

So look through the log for any lines which contain the 2 upper case letters. That will indicate that you are actually getting data from the ELK. You should probably see 16 lines of commands going to the ELK, and then its reply.

Have you successfully connected to the panel with Elk RP over the virtual serial port and were able to communicate with it. Something like selecting the "Status" button?

It appears that I have successfully connected!!!!

I have been able to set up 2 events (a button for each event) and asign Elk Plugin commands to them (Disarm and ArmAway). I have confirmed that button presses from Xlobby then arm/disarm my elk.


Have confirmed that text and commands fully work. Therefore, you can use this plugin with an M1XEP as long as you use the freeware "HW VSP" to set up a virtual serial port on your PC.

This works SLICK!!!
Thanks Andrew!!!
Plugin has been UPDATED!!!

From Xlobby Forum:
Posted: Fri Sep 22, 2006 1:14 pm Post subject:


Ok, I have made all the changes and done a little testing with it. The plugin appears to be working properly.

I updated the first post of this thread to point to the latest plugin zip file.

Here is what is in this version.

1. Fixed PLC status on startup and if a light is turned on/off through some other means then the plugin.

2. Added support for individual zone, output and PLC images.

3. Added support for getting and setting custom values.

The individual images are based off of the index you are trying to receive.
Place the individual images into the xlobby/plugins/xelk/images directory.

For example let’s say you have a special image for zone 5. When plugin>elkm1>zoneStatusImg>5 is requested the plugin first looks for the file zone5Normal.png, zone5Violated.png, zone5Trouble.png or zone5Bypass.png. If it does not exist then it returns zoneNormal.png, zoneViolated.png, zoneTrouble.png or zoneBypass.png.

For outputs you would have an image outputXOn.png and outputXOff.png. Replace the X with the output number. For PLC the image would be plcXYOn.png and plcXYOff.png. Replace XY with the code and unit code. For example plcA2On.png and plcA2Off.png.

A custom value can be retried with plugin>elkm1>customValue>â€xâ€. All time of day formats are returned in 24 hour format.

To set a custom value use:
customValue – Set the customValue to a new setting. Two variables, “customValueNumber†“newValueâ€. If the custom value which is being set is a time of day value then the time entered must be in 24 hour format, that is “16:00†for 4:00 PM. So to set custom value 10 to 10:30 PM you would have
customValue 10 22:30

If you have any problems let me know.