Intro: Chuango Alarm Hack
I have an Chuango G5 alarm in my house. Here in Denmark it is normally sold as a "Sikkert hjem" alarm (https://www.sikkerthjem.dk/villapakken-alarmsystem...). It is reasonably priced and basically works quite well, e.g. it provides a remote control app for smartphones. But there are still a few things I am missing from the standard package, which I think would also apply to a lot of other security systems out there:
- The main unit of a security system should be mounted away from the entrance. Otherwise a burglar could smash it before it manages to send its alert message
- It should be possible to integrate an alarm system with other home automation applications. Especially the status of the system should be available on the LAN.
Regarding #1: with the alarm panel not being visible, you need another way to make the alarm status visible at the entrance.
Regarding #2: if you can somehow read the status of your alarm system, it is fairly easy to make it available on your LAN using an Arduino and an Ethernet shield.
Step 1: Identify the Three Status LED on the Front Panel
In the bottom of the front panel, 3 LEDs are used to signal the current state of the Alarm. With the alarm panel mounted away from the entrance, these status indicators must be read somehow and displayed near the entrance.
Notice: whenever you mess about with this alarm, you should keep your key-chain remote control at hand. You are bound to trigger the tamper alarm or zone alarms multiple times...
Initially I did not want to break the alarm open, and therefore I used photo resistors to read the three status LEDs, but over time that did not work so well, so eventually I decided to open the box and solder wires.
The front panel is glued to the back part with double sided adhesive tape. Forcing the front and back apart is done much like you would open a smart phone or a tablet. Since I do not have any specialised tools for this, I ended up using a handful of guitar picks I had laying around.
The state of the three status LEDs are available on pin 4, 5 and 6 of U2. Solder wires to those pins and provide a small connector, like e.g. one for 3 pin headers.
Step 2: Identify the Input Signals and the Alarm Signal
Since the alarm box has now been opened, why not get access to as much as possible? I decided to bring a much a possible out on a DB9 connector.
In the middle of the back part PCB there are 5 holes. I routed cables through these holes and connected them to the screw terminals on the back side. The wires routed to the DB9 connector are:
GND : black wire - attached to screw terminals on the back
Speaker/alarm detection : brown wire - attached to screw terminals on the back. Whenever an alarm is triggered this signal will be assert to around 10V (!!!)
5V : red wire - soldered to the PCB (this ended up not being used for anything)
Alarm armed : orange - attached to the pin header soldered on the front panel
Shell armed : yellow - attached to the pin header soldered on the front panel
Alarm disabled : green - attached to the pin header soldered on the front panel
Zone1 : blue - attached to screw terminals on the back
Zone2 : purple - attached to screw terminals on the back
- Open door : grey - attached to screw terminals on the back
Step 3: Schematics
The colours of the wires in the "breadboard view" are matching the description from the previous step.
Step 4: Test on Breadboard
An 'ENC28J60 Ethernet Shield' is used to provide Ethernet connection (not shown in the previous schematics).
As library for the Ethernet shield both of these are usable:
I am currently using the later (UIPEtherner), as there seems to be more recent activities on that library.
The main software can be found here:
Step 5: Making a Repeater for the Status Indicators
My back entrance door has a glass window through which I can see this 'repeater box'. The box is simply equipped with three LEDs that are routed through a cable to the electronics circuitry that will be described later.
- Red LED: the entire system is armed
- Yellow LED: only the shell/door protection is active (not the PIR sensors inside the rooms)
- Green LED: the system is disabled
Step 6: Mount on PCB
Once everything is working, move the components from the bread board onto a prototype PCB.
Notice the BC547 transistor. Most signals inside the alarm are TTL, but the signal driving the speaker is around 10V. Signals at that level are likely to fry your Arduino. Luckily mine only did reset, until I realised that the signal level was so high. After mounting the transistor things are fine.
Step 7: Fit Into Enclosure
When the soldering work is done, the construction is placed into an enclosure.
The main problem here being the number of wires going to the device:
- DB9 cable providing the connections to the alarm
- Mini USB cable providing power and allowing software modifications
- Ethernet cable
- Cable going to the external speaker
I ended using a small food container as enclosure. There is a little heat dissipated, so keep this in mind when selecting enclosure. The food container has worked well for 1½ year now.
An external speaker is optional, but I had one laying around anyway. Just be warned again: you are bound to trigger alarms when you mess around with this alarm, and the external speaker is very loud, so keep the remote control at hand.
Step 8: Finally...
Mount everything in a suitable location.
My stuff ended up in a kitchen cupboard along side a wireless switch. Not very pretty, but also not very visible...
- Glue the alarm front panel back into place. It is still after 1½ year held in place by rubber bands...
- Make a nicer enclosure for the Arduino and a nicer installation in the cupboard.
- Integrate the alarm with my 'ZoneMinder' video surveillance system (send additional motion notifications when the alarm system is active)
- Ensure that alarms are also send out on the Internet (not just SMS)