I'm not sure this will work for you (the number of zones you monitor may be limited to the 30 text inputs available and you will need to write some rules), but I was dinking around in the Elk ASCII RS 232 protocol and found the following. YMMV and good luck:
"4.3 Send ASCII String To IP Address (AP)
The AP command allows you to send a custom ASCII string message via TCP/IP to a specific IP address on a specific port. To accomplish this, you need to create a TEXT string in the Automation/Text section of ELKRP which is stored in the M1. This text string will consist of the message to send plus some destination information.
One of the eight Central Station IP Receiver addresses programmed in the M1XEP must be used (Central Station tab on the M1XEP Setup dialog in ElkRP). If used for this command, that IP address may not be used for reporting alarms and other events to a Central Station.
To enter the Central Station's IP address on the M1XEP Setup dialog in ElkRP, a "Telephone Number" must be enabled with a "Reporting Format" of "6 = Ethernet M1XEP". Since this Telephone Number cannot be used for reporting alarms and other events MAKE certain to uncheck all Area blocks as well as the Events to be reported blocks on this screen.
Then create a TEXT string and store it in the M1’s Automation/Text section:
00APxDDDD… {up to 200 ASCII chars here} CRLF
00 - two zeros. Any two digits will work, but they are ignored.
AP - Command to send text string.
x - ASCII "1" - "8". This tells the M1XEP which Central Station IP address to use. Corresponds to Telephone 1-8.
DDDD… - ASCII text data
CRLF - Carriage Return/Line Feed
EXAMPLE: 00AP4Sprinkler 1 ON^M^J Build a text string and store in the M1’s Automation/Text section using ELKRP. “^M^J” is a carriage return/line feed.
The example will send “Sprinkler 1 ON” to the IP address programmed as telephone number 4.
Write a RULE to send this text string out serial port 0. When the M1XEP receives it, it will look
up the specified Central Station IP address/port and send only the ASCII message in a TCP packet to
that address/port. Note that the text string has two parts, a command and a message. 00AP4 is the
command and the rest is the message. The M1XEP splits the message from the command and forwards the
message part only. Therefore, if you are receiving the message at another M1, the string to match
is the message part only. In the example above, that would be Sprinkler 1 ON^M^J. So to receive
this message at another M1, simply create a text string with Sprinkler 1 ON^M^J and write a RULE to
perform some action when that text string is received through serial port 0."