tjko / nxgipd Goto Github PK
View Code? Open in Web Editor NEWnxgipd - a monitoring daemon for UTC Interlogix / GE Security / Caddx NetworX series alarm systems
License: GNU General Public License v2.0
nxgipd - a monitoring daemon for UTC Interlogix / GE Security / Caddx NetworX series alarm systems
License: GNU General Public License v2.0
Line 372 in nxcmd.c is this:
ipcmsg.data[offset++] = ( ((pin[i] - '0') << 4) | (pin[i+1] - '0') );
It needs to be this:
ipcmsg.data[offset++] = ( ((pin[i+1] - '0') << 4) | (pin[i] - '0') );
A four-digit PIN, entered as '1234' needs to be parsed into:
data[3] = 0x21;
data[4] = 0x43;
data[5] = 0x00;
Or, a six-digit PIN, '123456' needs to be parsed to:
data[3] = 0x21;
data[4] = 0x43;
data[5] = 0x65;
The NX-584 Comms Protocol document talks about which digit goes in which nibble. I have tried this fix and it works.
I read through all the other issues and comments, and got it to compile with Mini-XML ver 2.9. With the current version of Mini-XML (2.12), I was getting the following error:
gcc -Wall -g -O2 -DHAVE_CONFIG_H -DVERSION="1.1.1beta" -DBUILDDATE="2019-01-12" -c -o configuration.o configuration.c
configuration.c: In function ‘search_xml_tree’:
configuration.c:70:11: error: dereferencing pointer to incomplete type ‘mxml_node_t {aka struct _mxml_node_s}’
if (node->type != type) {
^~
configuration.c: In function ‘xml_whitespace_cb’:
configuration.c:85:39: warning: ‘~’ on a boolean expression [-Wbool-operation]
} else if ( !strcmp(name,"Zone") || ~!strcmp(name,"Partition") ) {
^
configuration.c:85:39: note: did you mean to use logical not?
} else if ( !strcmp(name,"Zone") || ~!strcmp(name,"Partition") ) {
^
!
: recipe for target 'configuration.o' failed
make: *** [configuration.o] Error 1
Any way to trigger the siren using command? will be a good feature add for automation.
Thanks
nxgipd works with Mini-XML v2.6, but not the current version 2.8. It compiles fine. But, it fails to search the tree properly, so always gives an error that it cannot find the serial device in configuration. The error seems to be around line 50 of configuration.c, though I could be wrong.
I have a suggestion for 2 more commands to the daemon via nxcmd: one to set the panel's clock, and one to save the status XML file. While these commands may not get used much, they could be nice to have at times.
Do either the 586E (Direct Connect) or the 587E (Keypad Emulator) serial connections work with nxgipd?
I'm running openSUSE 13.1 (x64) and have libmxml v2.6 installed. When I run ./configure, it fails, claiming mxml is missing or <2.6. Looking at config.log, I determined that ./configure is missing the -lpthread switch to the linker command when it tries to compile and link conftest.c around line 3711. Once I manually add -lpthread, everything works well.
Error lines from my config.log are:
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../lib64/libmxml.so: undefined reference to 'pthread_getspecific' /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../lib64/libmxml.so: undefined reference to 'pthread_key_create' /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../lib64/libmxml.so: undefined reference to 'pthread_once' /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../lib64/libmxml.so: undefined reference to 'pthread_setspecific'
You may want to add the requirement of libpthread to the list and add it so ./configure uses it.
I`m trying to connect to a NX8-E panel but without any succes so far. However when i connect to an NX-584 (Home Automation) the connection is fine but i get the following warning
Panel Model: Unknown (Panel ID=2). Please report your alarm panel model and id to nxgipd developers.
Which ID do i need to lookup? The panel is an NX-8 with an NX-584
I have a few suggestions about setting the panel clock.
First, would it be good to check if shm->comm_fail==1 before attempting to set the clock? As as aside, is there any other function that maybe should check if communications fails? The flag is set, but it's not used anywhere.
Second, if setting the clock fails, would we want to try again in a hour or so?
Third, I have changed the code I'm running to set the clock at a specified time once a week, such as 9pm on Sunday. The time is set in the .conf file. Right now, the time the clock is set depends on when the daemon was started, so can be somewhat random. I just thought I'd see if there's any interest in adding this option.
Hi,
Do you think this software would be compatible with the Reliance128/NX16 here in Australia?
This is a Caddx/Networx panel and is compatible with the NX584E.
Do you know what cable is needed to connect the Caddx serial interface to a USB port? Does it just need a standard null modem cable? Something like this: https://www.amazon.com/StarTech-com-Modem-Serial-Adapter-ICUSB232FTN/dp/B008634VJY/ref=sr_1_1?ie=UTF8&qid=1473133103&sr=8-1&keywords=null+modem+to+usb
Thanks,
Doc
I've a NX-8 alarm, not NX-8E. Does anyone write some guide to understand how to connect a rpi with this board?
Thanks in advance
Is it also possible to support the NX-590E tcp/ip module?
In process.c, you missed a semicolon on line 1095, and I think the lines using the macro SET_MSG_REPLY should be enclosed in braces.
The code is as follows:
if (loc == 910)
SET_MSG_REPLY(reply,msg,0,0,"Factory Reset request sent (device=%d)",data[0])
else
SET_MSG_REPLY(...)
return;
It should be (in my opinion) this:
if (loc == 910) {
SET_MSG_REPLY(reply,msg,0,0,"Factory Reset request sent (device=%d)",data[0]);
}
else {
SET_MSG_REPLY(...)
}
return;
}
Does it work on raspberry pi running raspbian?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.