- A Solax Inverter which supports network real-time data feed
- A Raspberry Pi - Any model will do , connected to the network 8-)
- TPLink HS100/HS110 Smart Socket
What am I up to?, and why have I been neglecting my blog?
Well, the day job is getting in the way again, but I do have *three* projects on the go that I will post updates for shortly - here's where I'm at:
BBSB RF Only Repeater
This is a really easy to build Arduino + TX + RX circuit that just does a dumb repeater job within our house - this is great as it now means that our BBSB messages get repeated all over the house and none of our devices miss a beat (mostly) - I will probably also extend this to repeat HomeEasy messages as well, as we now have a mixture of devices.
This is all built, and working just fine - I discovered that a couple of 15cm lengths of wire make far better antennas then expensive 433mhz stubby antennas purchased because they looked cool.
PIC Based BBSB 'Water Detector'
A couple of years ago, I came in from work one afternoon, only to find it was 'Raining' in our downstairs loo! - Our shower pump in the bathroom above had sprung a minor leak, and flooded the upstairs bathroom. Ever since then we've had a nifty little Velleman 'Water Alarm' wired up to a sensor under the bath where all the plumbing bits are. This works great, and makes a rude noise if the area under there gets wet.
(blurrycam pic , sorry)
This isnt very 2009 though, so it was high time it was empowered a bit. - a peeping alarm in an empty house is no use to anyone!
This little project is based around the PIC 12F675 microcontroller - which is less than £2 at Maplins, I ported the BBSB transmit code that works on the Arduino into the little PIC, resulting in a little 'module' or 'bug' that can send a BBSB ON or OFF code when an input changes status (high-low, low-high etc). I also built a little battery monitor into it so that it sends a signal every few days just to say 'Hi' to the house and confirm its still working! - I managed after a bit of fiddling to build this up with NO PCB, as the 8 pin chip makes a reasonable cowboy construction bed to solder the other components to ...yee-ha.
I dont have the PDF write up for this one done yet, but will post it with code etc as soon as I get around to it. - we also have a small battery drain problem currently Houston - or it has crashed, because it stopped calling in about a week after being installed. ahem! - so perhaps not quite ready for the primetime!
Yale Alarm Integration
This is more a not-even-half-baked-idea but appears to be a go-er.
We've had a Wireless Alarm for some time in our house, which works really well - I do however miss two things - 1) being able to arm/disarm it via the internet, and 2) being able to catch events from all the system's detectors around our house too and act on them.
Internet Alarm Arm/Disarm
The Yale protocol is not published anywhere, and so far my attempts to reverse engineer it have failed I'm assuming it's a code-rolling type system (like a car key fob, so unlikely to be easy to decode) - (I think Yale would also be happy about this too), but what is possible is to interface to the Alarm system via two of it's most commonly available components - a) the Keyfob Remote, and b) the Bell-box - both of which can be learned into the alarm system (even a 2nd bell-box) - The Bell Box itself can actually function as a stand-alone alarm controller on the cheaper Yale system , so in itself it's packed with circuitry and certainly knows if the alarm is ON or OFF.
I bought an extra bell-box from Ebay and learned it to our system, I binned the housing we can re-house it in a smaller box with the 'duino later), amputated the deafening siren (not needed!) and shorted the tamper switch closed (no thanks) - I was left with a little board that I could connect to the Arduino.
My prototype Arduino project monitors the status of the Alarm currently - this is possible because the 3 LED's on the Yale Alarm box have a 'flash' sequence that is different for arming, and dis-arming - by responding to these two different combinations of events, you can tell if the alarm was just armed, or disarmed - I will probably just send a HE or BBSB message via the Arduino when this happens, which will allow the rest of the house to respond to Arm/Disarm events - primarily enabling security schedules , and, more importantly, turning down the heating! -- This isnt really all that smart, as clearly if the Arduino powers-up it wont know whether it's On, or Off - some more probing around the circuit board for the bell-box unit may reveal more. There is definatley a pin somewhere for 'Siren going off' as well, so this should be not too hard to track down either.
As you might have worked out by now, the easy way to arm/disarm the Alarm using the Arduino interface is to connect some output pins from the trusty 'duino across the keyfob buttons for arm/disarm - again very nasty - but also very secure - provided you shut the remote in a box somewhere the entire unit can remain wireless with the Arduino onboard also - especially if you are using 433mhz messages to HomeEasy/BBSB when events occur. - I wouldnt recommend allowing the insecure protocols like this to actually 'do' stuff like disarm the alarm however, for obvious reasons - I will probably do this 'some other way' using cabling inside the house.
So - unfinished masterpiece currently, but perhaps more progress over Xmas on that one - if you have any ideas on this one, or circuit diagrams(!!!!) let me know - of if you just want to hack-along on this project, I'll set up a wiki or something.
Thats it for now.
Footnotes: You may need to do some ipkg install magic on the NSLU2, you need grep, sed, cut and curl I forget which ones are in the slugos already.
The NSLU2 is a great platform for this type of stuff, the power consumption is less than 3w according to our killawatt, with processing power to spare, for ..... more stuff in the near future 8-)
UPDATE: An abusive co-worker who is attempting to follow my vague and inaccurate posting has reminded me that there are two missing steps in this post:
(e.g # ipkg install picocom; ipkg install libcurl; ipkg install coreutils)
Further abusive comments welcome from anyone, if this is still not correct 8-/ - my apologies.