-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Add device for GE Choice Alert wireless alarm sensors #1768
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Thanks! If there is no checksum or complicated mapping this should also work as flex decoder, e.g. try
|
That is how I started for the most part after sniffing the data out, but it doesn't validate the preamble in packet processing. There are situations that I have seen in testing that throw valid packet length decoded transmissions that don't have the correct preamble. I also suspect that the un-decoded bits do have a checksum as all the sensors are different, and the open / closed messages are always the same... I just haven't gathered enough data to speculate further as I've only fired up a handful of the sensors at this point. |
Can you post a zip with a sample ( |
there are 6 different unique packets plus (their repeats), as well as their decoded data using just the raw flex device Using the flex filter proposed does pull the unknown data to the message field. |
Oh, that's not PWM. Looks like Manchester PCM with a nice de-sync preamble of 0xFC0C ( The raw demod is thus The true codes thus are:
The checksum is an XOR. But somehow the top bits are amiss. See this BitBench. |
OK, slight error: turns out the gap after the preamble is important. The preamble is exactly 0xfc0c (16 bit), the next |
That makes sense. I've updated the code to reflect this and parse out the values and all seems to be working. One thing I noticed is that bitbuffer_manchester_decode doesn't reset the destination variable, it just adds to it - which means if you call it without explicitly clearing your destination variable every time you end up with multiple outputs packed into each row because it just keeps adding to it... which feels like a bug (though being C may be expected behaviour?). If it's expected, should a note be added so that people new to the source know that is expected? lol |
Also the var crc should be |
Add device for GE Choice Alert wireless alarm sensors