Jump to content
Security Installer Community
Dklemm

Galaxy Flex SIA Protocol

Recommended Posts

 

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?

 

 

 

 

 

 

 

 

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.  

Share this post


Link to post
Share on other sites

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.

 

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
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

 

Share this post


Link to post
Share on other sites

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

 

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

@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?

Share this post


Link to post
Share on other sites
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.

 

 

Share this post


Link to post
Share on other sites

Have a look at this I created https://github.com/dklemm/FlexSIA2MQTT.  It might even do what you want, if not it should still help you work out how to ACK the alarm messages.  

 

I had plans to create a HomeAssistant auto discovery component and commands api (set/arm etc),  I have a poc of this just not looked at it for a while.

 

Much of this was reverse engineered from https://github.com/mkontsek/openGalaxy.

 

 

 

Share this post


Link to post
Share on other sites
18 minutes ago, james.wilson said:

Is this something your running on HA? 

 

Not directly on "HA"  but integrated via an MQTT broker and using the various MQTT components in HA to pick up events e.g. door sensors from mag contact and movement sensors from PIRs

Share this post


Link to post
Share on other sites
On 13/11/2019 at 13:00, Dklemm said:

 

Not directly on "HA"  but integrated via an MQTT broker and using the various MQTT components in HA to pick up events e.g. door sensors from mag contact and movement sensors from PIRs

 Hi, I own a FX100 panel and I would like to pick up status of mag contact movements sensors like you mentionned.

 

Can you tell me briefly how to integrated the FlewSIA2MQTT via an MQTT broker ? Which MQTT broker do you use ?

 

Thank you very much for your help

Share this post


Link to post
Share on other sites

User @Dklemm hasn't logged on for 2 months but there is always hope...


So, I've decided to take my work back underground.... to stop it falling into the wrong hands

 

Share this post


Link to post
Share on other sites
3 hours ago, datadiffusion said:

User @Dklemm hasn't logged on for 2 months but there is always hope...

Theres as much hope as @Dklemm coming back as @james.wilson loving the enforcer 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.