nxgipd - a monitoring daemon for UTC Interlogix / GE Security / Caddx NetworX series alarm systems
C Shell Groff Makefile Perl
Latest commit 64e04f3 Nov 17, 2016 @tjko added panel ID for NX-8 (V1)
Permalink
Failed to load latest commit information.
config try detecting if libmxml depends on libpthread Aug 13, 2015
contrib sample systemd service definition file (for Debian) Jun 25, 2016
.gitattributes misc tweaks Aug 11, 2015
.gitignore added nxcmd command (initial code and idea thanks to Brian Whaley) Jul 28, 2015
COPYRIGHT bump version number to 1.0.0 Aug 8, 2015
LICENSE Initial commit Sep 11, 2013
Makefile.in fix bug in nxcmd option -Z displaying zones that were never tripped Sep 26, 2015
README added new option -r to nxstat command Aug 10, 2016
config.h.in fixe compiling issues on OSX (should now compile on other BSD variant… Aug 9, 2015
configuration.c save system status periodically (interval set via savestatus configur… Sep 10, 2015
configure try detecting if libmxml depends on libpthread Aug 13, 2015
getopt.c Initial import to git from v0.9.0 sources Sep 11, 2013
getopt.h Initial import to git from v0.9.0 sources Sep 11, 2013
getopt1.c Initial import to git from v0.9.0 sources Sep 11, 2013
ipc.c nxcmd now waits for response for server and displays result Sep 2, 2015
misc.c prevent serial port becoming controlling tty (could cause daemon to f… Jun 25, 2016
nx-584.c added panel ID for NX-8 (V1) Nov 17, 2016
nx-584.h cleanup reserved indentifier usage in header files Aug 10, 2016
nxcmd.1 added setclock command to nxcmd Sep 9, 2015
nxcmd.c added setclock command to nxcmd Sep 9, 2015
nxgipd.1 save status when SIGUSR1 received Sep 9, 2015
nxgipd.c minor cleanup Aug 10, 2016
nxgipd.conf save system status periodically (interval set via savestatus configur… Sep 10, 2015
nxgipd.h cleanup reserved indentifier usage in header files Aug 10, 2016
nxstat.1 added new option -r to nxstat command Aug 10, 2016
nxstat.c added new option -r to nxstat command Aug 10, 2016
probe.c improved reliability of --scan option Sep 5, 2015
process.c improved panel clock synchronization accuracy Sep 10, 2015
strl-funcs.c added strlcpy and strlcat Aug 8, 2015
strl-funcs.h cleanup reserved indentifier usage in header files Aug 10, 2016
trigger.c added maxprocesses configuration option & consolidated signal handlers Aug 21, 2015

README

nxgipd v1.1.1beta
=================

nxgipd is a monitoring daemon for UTC Interlogix/GE Security/Caddx NetworX
series alarm systems that use the NetworX NX-584 protocol.

Daemon process requires very minimal memory and CPU resource making it suitable
to be run in on almost any hardware that runs Linux (or feel free to port 
this to your favorite OS :-)
nxgipd daemon process is meant to continuously monitor the alarm panel and
log any activity into local log file and/or to syslog.
Daemon process can run designated script as response to different events
(such as alarm, zone tripped, etc.), making it easy to perform custom
actions or monitor the alarm yourself.

Command line tools nxstat and nxcmd allow real-time polling of the alarm
status and interact with the alarm.

NOTE! Before you can use this program you typically need to first install 
NX-584E (home automation) module or enable built-in serial port (NX-8E panel).
If you don't know the program code (PIN) for your panel, you may need to get
your alarm provider to do this for you.

This program does not interfere with alarm monitoring services, so it can be 
used on systems monitored by a third-party (as additional means of monitoring
the alarm system). 
Alternatively, this program could be used to build "DIY" monitoring solution
withouth requiring a third party monitoring provider.



SUPPORTED ALARM PANEL MODELS

	NX-4 (V2)
	NX-6 (V2)
	NX-8 (V2)
	NX-8E 
	CS575 (Aritech)

	Other panels that use same "NetworX NX-584 RS-232 Gateway
	Interface Protocol" should work fine as well (NX-10, CS275,
        CS375, CS875, ...)


REQUIREMENTS
	Mini-XML library (libmxml) v2.6 or later version


TESTED PLATFORMS
	Linux (Debian)
	OpenBSD


INSTALLATION
	Installation should be very straightforward, just unpack the
	tar file, run configure,  make necessary changes to the Makefile,  
	and then compile the program. You may want do something like this:

		tar xzvf nxgipd-1.1.0.tar.gz
		cd nxgipd-1.1.0
		./configure
		make
		make strip
		make install

	Then copy included nxgipd.conf template to /etc/nxgipd.conf and update
        it to match your setup.


SERIAL INTERFACE CONFIGURATION

       For this program to work, the NX-584 interface module (or the built-in 
       serial port in NX-8E) must be configured first. For detailed 
       instructions on how to do that, see the corresponding installation manuals.

       Recommended configuration settings:

       - Protocol: ASCII

       - Speed: 9600 Baud 

       - Enabled Transision Messages:
       	 	 * Interface Configuration Message
		 * Zone Status Message
		 * Partition Status Message
		 * System Status Message
		 * Log Event Message
		 * Keypad Message Received (OPTIONAL)
		 * X-10 Message Received (OPTIONAL)

       - Enabled Commands:
       	 	 * Interface Configuration Request
		 * Zone Name Request
		 * Zone Status Request
		 * Zones Snapshot Request
		 * Partition Status Request
		 * Partitions Snapshot Request
		 * Send X-10 Message (OPTIONAL)
		 * Log Event Request
		 * Send Keypad Text Message (OPTIONAL)
		 * System Status Request 
		 * Program Data Request (OPTIONAL)
		 * Program Data Command (OPTIONAL)
		 * Set Clock / Calendar Command
		 * Primary Keypad Function with PIN (OPTIONAL)
		 * Secondary Keypad Function (OPTIONAL)
		 * Zone Bypass Toggle (OPTIONAL)
		 


HISTORY
	v1.1.1beta
		- new -r option to nxstat command
		- fix to binary protocol support
		- minor bug fixes	
        v1.1.0  - new configuration setting 'savestatus' to specify status file
                  saving interval
		- SIGUSR1 signal can now be used to tell daemon to save status
		- setclock command added to nxcmd
		- added option -t to nxstat to sort zones by last change time
		- added support for programming panel using nxcmd
		- nxcmd now displays command status/result
		- support for NX-4, NX-6, and CS575 added
		- autodetection of panel features/model
		- fix bug in IPC message sizing (nxcmd didn't work correctly
		  on non x86_64 architectures)
		- new config settings to set IPC memory segment and
                  message queue user/group 
		- new config setting 'maxprocesses' to prevent too many
		  trigger scripts running simultaneously
		- add --csv option to nxstat command
		- minor fixes
	v1.0.1  - add support for systems withouth zone names (no NX-148E)
		- fix to PIN number ordering in nxmcd (thanks to Dogora)
		- minor tweaks to allow compiling on OSX (and other BSDs)...
	v1.0.0  - support for running a script/command as response
		  to events (alarm, zone tripped, etc..)
		- support for sending X-10 commands via nxcmd
		- support for sending Zone Bypass command via nxcmd
		- support for display custom messages on NX-148 keypads
		  using nxcmd
		- added zone status saving/restore
		- new command nxcmd to send (keypad) commands to alarm panel
		  (based on initial implmementation by Brian Whaley)
		- new option -i for nxstat to display interface status
		- lot of minor fixes
	v0.9.0	- first public release



LATEST VERSION

	Latest version is always available from:
		http://www.iki.fi/tjko/projects.html

	Sources (GIT)
		https://github.com/tjko/nxgipd


Timo <tjko@iki.fi>
14-Sep-2015  $Id$