you know what… I don’t see any privileged information in this e-mail…here it is
Thank you for your email and interest in creating your own Home Automation Software to interface with the ELK M1 System. If you understand “socket” programming and TCP/IP connections, it is a fairly simple process.
As you know, the M1 requires our M1XEP Ethernet Expander module to connect to a local network and the Internet. Look at the M1XEP as a simple "pass-through" device. Once you make a socket connection to it, your remote application can send and receive packets to/from the M1 using the M1's ASCII Protocol. These messages simply pass through the XEP to the M1 and vice-versa. The protocol is available for download from our web site http://www.elkproducts.com/m1_manuals_docs.html or see attached.
The M1 Software Developer’s Tool to calculate the Check Sums is also available http://www.elkproducts.com/Owner_support_tools.html
1) First, enable G35 - G40 in the M1, either through the keypad programming menus or using ElkRP. This causes the M1 to send ASCII messages for all status changes out its serial port to the XEP.
2) Connect the M1 to an XEP and connect the XEP to a LAN. Using ElkRP, set up the XEP's IP address, etc.
3) Open HyperTerminal and make a Winsock connection to the IP address of the XEP, on the non-secure port (2101).
4) You should see ASCII messages appear in the HyperTerminal window as things happen in the M1 (zones open, arm/disarm, etc.).
5) If you were to QUICKLY type an ASCII command, including CRC, and press enter, it would be sent through the XEP to the M1. Timing here is tricky, because you must type the whole command in-between receiving messages. A program could easily do it, though.
This demonstrates communication via a LAN. Communication via the Internet is similar. In that case, the XEP would be connected to a router which has a cable modem or DSL connection to the Internet. The router must be programmed to forward port 2101 from the Internet side to the XEP side. Then, any PC on the Internet can use HyperTerminal to connect to the router's IP address on port 2101.
HOWEVER: Since port 2101 is "non-secure," we do not recommend forwarding it on the Internet. You could do so temporarily just for testing and set-up, but it is not a permanent solution - it allows ANYONE to connect to your XEP and thus, your M1. Therefore, the XEP has a "secure" port - port 2601 by default. If you connect to this port, the XEP will negotiate a secure SSL/TLS connection with the remote connecting site. The remote site will need to accept the XEP's certificate. Then the XEP will prompt for a username and password (these are set up using ElkRP). If the remote site responds with the correct username and password, the connection is allowed and everything works from there on as described above, except that the data sent over the wire is now automatically encrypted. If you intend to write a program to do this, you will need to already know or learn about the SSL/TLS protocol and how to implement it in your chosen programming language. Helping you learn that is beyond the scope of what Elk Products can do.