Sorry for going completely MIA on this. I’ve been terribly busy with personal things and won’t have much time in the future to spend on the project. I am more than willing to explain any of my code and help out where I can - albeit with some delay, but I’ll really try to get back asap. I’ll keep an eye out in the next few days if there’s any pressing questions on my code.

On a side note - I’m contemplating to open-source the Alarmin app as I also don’t have much time to spend on it. If I do go that route then most of the code needed is in there (works on all models I believe). Managing of the backend for push notifications will have to stay with me for security reasons (for now at least), but the app’s code will be open. Is there anyone with AngularJS / Ionic v1 experience that would be able to contribute / take over? I have quite a few pressing features that will add value, just no time to implement them. Please let me know if you’re interested. thanks

I’m baffled myself! The code looks at the mapping file and counts all the elements of the dictionary which has an integer as a key. So the 1, 2, 3, 4, etc. keys should all be counted up to 8, and then the code should step through each 8 keys. As to why it gets stuck at 2 I don’t know. If you set the debug level to 2, the following line should print the total detected integer keys, what are you seeing for this?

Now looking at this it is checking each line and moving on to the the next.

Now this is where i strarted playing around with the code and cleary have no idea what im doing. but for whats it’s worth I added “header[1] = ‘\x25’” underneath line 411 and got the follwoing result when the code checked for zone lables you will notice it is returning the 87 bit it should but

Awesome find. Pity there’s no release notes for the IP150 firmwares.
Also I notice the DotNet SDK has been updated. Wondering if I need to switch from the (working) python binding to one based on the offical SDK.

Yeah it seems the .NET SDK has been updated to v2.18. Just wish there was a better way to check for updates other than to just alter the download URL to see if a newer version is downloadable.

The .NET SDK works quite nice but it’s dependable on WinForms. I’m currently using it in a Windows Service and it was quite a challenge to get it to work as I had to simulate the WinForms environment since it’s designed to work in a STA Thread Apartment model. v2.18 creates an even stronger WinForms dependency which is kind of annoying. You cant easily use it in any other .NET environment (like e.g. ASP.NET, Windows Service, WPF, etc) without trying to simulate the environment or include one or more WinForms dependencies.

The documentation on the API is also not that great. E.g. I’m currently trying to use the WriteUser API call. Some of those fields use a predefined list of values but they are not in the documentation. Another thing I’ve picked up is when trying to read events from the .NET SDK the method to read only the newer events is documented but missing in the API. You can only request X amount of events, but no way to get an EventID and only get the new ones. This is something that BabyWare seems to do currently.

I’m keen to also revisit the Python code (having only worked with the .NET SDK), but I cannot figure out how Tertius got to those mappings, e.g. zoneLabel = {“Header”: “\xaa\x25\x00\x04\x08\x00\x00\x14\xee\xee\xee\xee\xee\xee\xee\xee”,
1: {“Send”: “\x50\x00\x00\x10”, “Receive”: {“Start”: 20, “Finish”: 36}},

What do those hex numbers mean? And how would I find this for the EVO192? Supposedly the mappings for the existing code came from http://www.imotionsecurite.com/pdf/paradox/MGSP-EP20.pdf but that does not contain these hex numbers. I have also scanned the EVO manuals up and down and could not find anything that would help. It almost seems as if the only way to do this for the EVO is to do some wiresharking which seems like quite a mission. Pity the .NET SDK isnt truly .NET. It’s a Delphi DLL with a .NET Wrapper. IF it was pure .NET we could have reverse engineered the code. Really would love to see the actual communication protocol in a document.

Does the following links help at all? Seems to document the serial protocol for the EVO as well as SP/MG range. Even as a programmer i’m struggling to make sense of these documents but the more eyes are on them the better:

I’ve really hit a bit of a brick wall with this Paradox SDK. Seems their WriteUser function has a bug where it doesnt write the actual UserName (the user’s label) to the panel. Simply ignores it. Paradox is also uninterested in dealing with the public. Pity they are so reluctant for people to interface with their hardware. In my opinion it would be beneficial to the sales of their products if people could easily interface with it. I cant even report the bug in their API because you have to be a distributor.

I’m not sure how much of that relates to the IP communication. I tried doing a wireshark from babyware to my panel, but the messages were different to what others were getting. I think they used winload.