Dklemm Posted May 27, 2017 Share Posted May 27, 2017 I've installed a Galaxy Flex20 (in my home) with Ethernet module both are setup and working ok as an alarm. I've configured an AUX receiver to Ethernet, I'm not using ARC becuase from what I understand the panel needs a restart if it faults, but the AUX receiver can recover from the fault without a restart. Now I'm trying to develop a TCP-IP ARC receiver for the SIA protocol. I've got simple server running and can read the 1st message ("D#1000�", 1000 is the account number) but I can't ACK the data so the next message isn't received. I've used a number of resources open source projects to help me learn the messaging protocol but can't find and info in ACK'ing the messages. https://www.securityindustry.org/SiteAssets/Standards/Intrusion Subcommittee/DC-09 Preparing for ANSI Public Review.pdf Old draft, limited usefulness and very difficult to understand, wouldn't be a standards document if it was. https://github.com/mkontsek/openGalaxy - Large C++ project with limited support for flex v3, I've not tried building. The code is difficult for me to follow becuase I'm not a c++ programmer. http://www.mike-stirling.com/2016/06/bridging-texecoms-alarm-signalling-protocol-to-mqtt/ This was the most interesting and usefulness so far, its also publishes to mqtt, which is where I want to get to. Even though it has an SIA message parser it doesn't seam to be compatible with my Flex 20 v3 format what ever level/version that is? https://github.com/roushan5mishra/CID_SIA_SignalReceiver/ I just found this project whilst writing this post to i'm going to try this now, looks like is has a similar ack response as the others "\x06\x0D\x0A" <ACK><CR><LF>? Where I'm trying to get to is in IOT of sensors that I can monitor them remotely. I will probably open source the bridge from SIA to some queuing protocol and write some closed apps (ios and Android) and server (probably NodeJS) to send and receive push notifications. @GalaxyGuy I've read a number of your messages and replies on this forum and others, it all been very useful but I've struggled to piece it all together. Maybe you can help? Quote Link to comment Share on other sites More sharing options...
GalaxyGuy Posted May 28, 2017 Share Posted May 28, 2017 If any receiver type is missing or fails to respond to the panel transmission, then a fault will be flagged. The panel doesn't need a restart, but it does need a subsequent successful transmission with the receiver to allow the fault to be cleared. Quote Link to comment Share on other sites More sharing options...
Dklemm Posted May 28, 2017 Author Share Posted May 28, 2017 It's still transmitting but only ever sends “D#1000�“ presumably because becase I'm not correctly sending the expected response to acknowledge the message. Quote Link to comment Share on other sites More sharing options...
Dklemm Posted June 9, 2017 Author Share Posted June 9, 2017 I finally got this working with lots of help from the openGalaxy project to help me understand the protocol. The basic data patten is <MESSAGE_LENGTH><FUNC_CODE><MESSAGE><PARITY_CHECK>, The alarm expects the same data patten (with correct FUNC_CODE) to acknowledge the messages. The MESSAGE part then has it own pattern. My code is closed at the moment but I may open source parts of it once matured. Quote Link to comment Share on other sites More sharing options...
ARL007 Posted December 18, 2017 Share Posted December 18, 2017 Hi DKlemm, I am working on a similar thing but I am also struggling to figure the ACK message, can you give me a bit more information on how you calculate the correct acknowledgement message, I have figured the last bit being a parity check using column parity but I am unsure which function code or message to use, it appears the opengalaxy sends in blocks but under udp it just seems to transmit the whole string with different function codes throughout the message. Many Thanks Andy Quote Link to comment Share on other sites More sharing options...
Dklemm Posted December 18, 2017 Author Share Posted December 18, 2017 16 hours ago, ARL007 said: Hi DKlemm, I am working on a similar thing but I am also struggling to figure the ACK message, can you give me a bit more information on how you calculate the correct acknowledgement message, I have figured the last bit being a parity check using column parity but I am unsure which function code or message to use, it appears the opengalaxy sends in blocks but under udp it just seems to transmit the whole string with different function codes throughout the message. Many Thanks Andy What programming language are you using? Response is the same format as request <MESSAGE_LENGTH><FUNC_CODE><MESSAGE><PARITY_CHECK> MESSAGE_LENGTH is offset from what I and remember. FUNC_CODE is ACK (taken from OpenGalaxy) I'll check my code for the offset and the ACK char code, but I think is the standard ascii (decimal 6). Regards, Daniel Quote Link to comment Share on other sites More sharing options...
ARL007 Posted December 18, 2017 Share Posted December 18, 2017 The program i am using to receive the signals is python. This is what I am receiving from my program. Message[192.168.0.199:10002] - &F#002222Nti01:10/id098/pi010/OPA UNSET MGR. - 0x26 0x1 0x0 0xf 0x46 0x23 0x30 0x30 0x32 0x32 0x32 0x32 0x9a 0x16 0x4e 0x74 0x69 0x30 0x31 0x3a 0x31 0x30 0x2f 0x69 0x64 0x30 0x39 0x38 0x2f 0x70 0x69 0x30 0x31 0x30 0x2f 0x4f 0x50 0xa4 0xf 0x41 0x20 0x55 0x4e 0x53 0x45 0x54 0x20 0x20 0x20 0x20 0x20 0x4d 0x47 0x52 0x2e 0x9e 0x7f 0x97 I have checked what opengalaxy is responding with and it appears to be x00 x38 xC7 , but when I add this as a reply by my program it does not acknowledge the signal, I have tried other combinations including 0x1 0x41 0x6 0xb9, 0x1 0x6 0x41 0xb9, 0x0 0x41 0xbe but with no look, but I am clutching at straws. The initial signal I receive is 0x5 0x1 0x0 0xd8 0xc1 which is acknowledged with 0x50 0x1 0x0 0x6d 0xff , not sure why I am receiving this but it does appear to work. Thanks Andy Quote Link to comment Share on other sites More sharing options...
V15SHM Posted November 12, 2019 Share Posted November 12, 2019 Hi Daniel, How far did you get in being able to understand the SIA protocol messages from a Galaxy Flex using the ethernet board via TCP/IP? I am starting on this path and would appreciate any pointer if you can help me with. Quote Link to comment Share on other sites More sharing options...
V15SHM Posted November 12, 2019 Share Posted November 12, 2019 @ARL007, I am writing a program in Python as well. The program listens on a port and I can see the GalaxyFlex alarm panel put some data. I get the data b'\x05\x01\x81Yh'. Would you mind helping me how to get the data you have described above? Quote Link to comment Share on other sites More sharing options...
ARLilly Posted November 12, 2019 Share Posted November 12, 2019 36 minutes ago, V15SHM said: from What I can remember the initial string I received was 0x5 0x1 0x0 0xd8 0xc1 which is acknowledged with 0x50 0x1 0x0 0x6d 0xff only after acknowledging the initial string will the panel send the data string. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.