This project decodes the 345 Mhz signals used by Honeywell 5800 series wireless security system components. See the decode345 project writeup for more background and technical operation of the project.
decide345 consistens of two parts:
Required Hardware:
Required Software (to run binaries):
Required Software (to build C code):
To compile the C code, try gcc decode345.c -o decode345 -lmosquitto
You will have to run two separate components:
python receive345.py
.If using the python decoder, the options (MQTT broker address, device IDs, etc) are set directly within the decode345.py file, which can be executed by python decode345.py
If using the C decoder, the options are set on the command line, as follows:
Usage: ./decode345 [options]
-d, --devicefile FILE file for device IDs and names
-f, --fifoname FILE file for FIFO pipe
-h, --help show this message
-H, --host mosquitto host
-p, --port mosquitto port
-v, --verbose show verbose messages
Other notes:
If you run in verbose mode, you'll get output that looks like this:
Packet Received: 0xfffe849ea7800aad
DeviceID: 0x849ea7
Status: 0x80
CRC: 0xaad
Device: Basement Door Open
Mosquitto Sending: /security/Basement Door OPEN to 192.168.1.100:1883
You can use this output to find the DeviceID of unknown devices so that you can create your own devicefile. You may also see some lines that look like this in the verbose output:
String length 79: _-_-_-_-_-_--_-_-_--_-_-_-_--__--_-_-_-__--_-_-__-_--_-_--_-_-_-_-_-_-_-_-_-_--_-_-__-_--_-__-_--_--_-__--_-_--_-_-_-_-_-
String length 7d: _-_-_-_--_-_-_-_-_-_-_-_-_-_--__--_-_-_-__--_-_-__-_--_-__--_-_-_-_-_-_-_-_-__-_--_-_-__-_--_-__-_--_--_-__--_-_--_-_-__-_-_-
These indicate incomplete received packets; complete packets are 0x80 in length. The _'s and -'s indicate lows and highs in the received signal, for debugging purposes.
To translate between Device IDs and a human-readable name for each sensor, edit the devicelist dict in the decode345.py file (if using Python) or pass a devicefile (if using the C binary). The devicefile format is one line per device, with each line starting with the device ID in hexadecimal, followed by whitespace and then the device name. For example:
0x812345 Basement Door
0x8AB432 Basement Window 1
0x86543A Basement Window 2