So you wanna use XTension to control your alarm here is a start. You will need to setup a DIY interface with these settings the proper baud rate.

Now for the code needed to for the alarm to display what its doing and using with Web Remote. Just replace all the Received Data script with the code below. UPDATE: Add Pseudos for all your Zones like this

-- Add Zones below as they are in your home Create a pseudo for each zone then this will trigger the zone
	
	
	if ParsedFault contains "FAULT <Zone#>" and (status of "") is false then
		turnon ""
	else
		if (status of "") is true then
			turnoff ""
		end if
	end if

 

-- DIY Script Template
-- this script will be passed any data
-- that is received from your DIY device


-- on init is called whenever the port is opened
--use send raw to send any initial configuration info here
--this method may also be called if the port is closed and
--re-opened due to errors or communications failure and not
--just at startup

on init()
	write log "ALARM in play!"
end init


-- on DataAvailable( TheData) is called whenever the port
-- has receieved a packet of data. Unless you apply parsing
-- via the parseing parameter verbs the data may be broken
-- into several calls by the system, or several packets may
-- appear in a single call. Your script must be prepared to deal
-- with this.

--theDataAsBytes is an AppleScript list of the individual bytes
--that are passed as a string in theDataAsString just to make it
--easier to work with bytes if that is necessary.

on DataAvailable(TheDataAsString, TheDataAsBytes)
	
	--write log (TheDataAsString) -- This writes the log with the data just like the alarm interface pushes it
	
	set AppleScript's text item delimiters to {"\""} --this is how you tell applescript to see the " mark as the text item delimiter (Thanks James)
	set ParsedFault to second text item of TheDataAsString --where we are looking for the info to parse
	set AppleScript's text item delimiters to {}
	
	
	write log (ParsedFault) --writes the log with the data just from between the quotation marks
	
	if ParsedFault contains "READY TO ARM" and (status of "Alarm Status") is true then --then all is ready to go the shows as ready to arm
		turnoff "Alarm Status"
	end if
	
	if ParsedFault contains "DISARMED-Press *  to show faults" then --this is used to make the alarm show where the faults are
		send data "*" interface "Alarm"
	end if
	
	
	if ParsedFault contains "FAULT" then --the magic stold from James weather placeholder script makes a looping of the faults live in the web remote
		
		--set description of "Alarm Fault" to "" & ParsedFault set DisplayData to "" --trying to get text formatted and add color set description of "Alarm Fault" to ParsedFault & DisplayData -- not changing the format else set description of "Alarm Fault" to "All Clear" end if end DataAvailable --shutdown event will run when interface is either closed down on purpose --or due to an error. You should also check the Connected property of the interface --obejct before writing on Shutdown() end Shutdown

I hope that helps.

The devices are pseudos that send data to the interface like Arm and alike.

UPDATE:

Create a pseudo with…

send data “<YOUR PIN><2 is away 3 is stay>” interface “<the Name Of your DIY”
so something like this, if your PIN is 5555
Pseudo Alarm Away
The on script would be as below no off script.
send data “55552” interface “Alarm”
Pseudo Alarm Stay
send data “55553” interface “Alarm”
Then for the Disarm pseudo you would do an on script like this…
send data “55551” interface “Alarm”
turnoff (thisUnit) in 1
if (status of “Alarm Stay”) is true then turnoff “Alarm Stay”
if (status of “Alarm Away”) is true then turnoff “Alarm Away”

The Vera solution is much more eloquent, but to get in the trenches and make your own can be more exhilarating I think.

Have fun!