A wristband that tells you energy changes in your home. It connects via a Raspberry Pi computer to a base station like a 'current cost' or similar. When a change in energy usage occurs, the wristband vibrates and a small LED bargraph shows your current usage from 1 to 4.
Realtime energy use can be queried by pressing the button.
I made a little test house so people could try turning on and off various appliances and feel the wristband in action.
One of the problems I had at the start was very unreliable bluetooth communications. When I ran `hcitool lescan` I found hundreds of devices due to all the mobile phones nearby! Increasing the timeout used by `gattool` to 20 seconds improved reliability a lot.
The main issue with the system is that bluetooth low energy just doesn't seem to have the range. I've tried extending range by hacking the aerial, but it doesn't make much difference.
After putting the dongle on a usb extension cable at my parents the range got a lot better. I'm assuming that getting it further away from the wifi dongle (both at 2.4GHz) reduced interference and improved range.
Strangely, doing the same thing in my (much smaller) flat - it didn't make much difference.
So how to increase range. Well my laptop is on a fair amount, so while it's on why not use its bluetooth to pass the message on if the wristband is out of range from the pi?
If the daemon is started with --udp_repeat then it will broadcast any wristband messages (default 192.168.0.255).
The udp repeater program can be started at boot, and will pass on messages received over UDP to the wristband if it's in range.