This is an idea I’ve been meaning to try for a while. I wanted to install magnetic reed switches on our kitchen windows for the security alarm. The kitchen is the most likely place where an intruder would try to enter because the window is low and out of sight. The good thing about reed switches is that the alarm will activate as soon as the window is pried and before any one actually gets inside the house.
I didn’t want to use the bulky white plastic reed switch/magnet combination sets. I wanted the install to be completely invisible. Here’s how I went about it.
Kitchen windows before starting the project.
I first lifted a couple of tiles on the roof above the window so I could see what I was dealing with and to make sure there weren’t any mains cables near where I would be drilling. I drilled holes for each lead of the reed switches. These had to be drilled up at a slight angle facing away from the house so as to avoid the header above the window frame. I then pushed up some draw wires.
Using a chisel I cut a slot just slightly deeper then the thickness of the reed switches.
I soldered in and heat-shrinked the reed switches.
The reed switches are gently pushed up into the slot which is then filled with polyester builders/automotive filler.
Once the filler has hardened it is sanded and then a thin then layer of wood filler is added to make sure the surface is flat and smooth.
Finally the surface is sanded, primed and painted to restore the window frame to it’s original state.
The only thing left to do was to add a small neodymium magnet to the top of both window sashes. I first used double-sided tape to position the magnet and find out where it needed to be glued, then glued it in place with epoxy.
Done! Totally invisible reed switch install. Hopefully this is useful to someone. It’s really not much harder than doing an install with plastic units and looks much tidier. Most of the work is in running the cable to the right place which you have to do either way.
I’ve just had VDSL2 installed at home and have been setting up the new Telecom supplied Technicolor TG589vn V2 Modem. The previous modem I had, the Technicolor TG582n has some great functionality if you don’t mind diving into the CLI (and the accompanying 800+ page CLI guide!). The TG589 is no different – a basic user friendly web GUI, backed with a much more powerful CLI.
I haven’t been able to find the CLI guide PDF for this model yet but the command set is largely the same. One notable exception is the conditional DNS forwarding configuration which has given me some trouble. The TG582n had a set of commands for ‘DNS routing’ e.g.
dns server route list and dns server route add.
This has changed in the TG589 to DNS ‘forwarding rules’ and DNS ‘server sets’.
So…We have a list of DNS servers in a dnsset which are used in order of metric (lowest metric is used first). Then we have a set of rules as to which dnsset to use in what circumstance. The rules can match on client address, DNS domain, source interface etc. it’s quite flexible.
By default there is one dnsset and one forwarding rule. The default dnsset is set ’0′ and is typically populated with your regular ISP DNS server. The default forwarding rule has a rule index of 999 and basically says if no other rules match then use dnsset 0.
At home I want the modem to act as the DNS server for all public internet addresses but I want queries for names on my home domain to be forwarded to my Samba domain controller/DNS linux box. Doing this means I can reboot the linux box without loosing internet access.
Here’s how I set it up:
- Telnet to the modem – No SSH
- Add a DNS server set: (In this case my ‘dnsset’ will just have one server in it.)
dns server forward dnsset add set=10 dns=192.168.22.10 metric=20 intf=LocalNetwork
- Add the rule to forward any queries for home.rhysgoodwin.com to be forwarded to dnsset 10.
dns server forward rule add idx=20 set=10 domain=home.rhysgoodwin.com
- Finally - the bit that tripped me up for some time was the DNS server ‘response filter’ config option. I’m not sure technically what this options is for but I had to disable it before the forwarding world work.
dns server config filter=disabled
In step 3 where you create the rule these are parameters:
idx the index or id of the rule. I think it also implies the order of the rule. Lower index will be matched first.
set is the number of the dnsset to use if this rule matches.
domain this is the domain name to match on. If specified then the rule will only apply to queries for names on this domain. If you leave it blank then the rule will apply to all DNS queries (which match the other parmeters of the rule)
intf which takes an interface name e.g LocalNetwork, PPPoE, PPPoA etc. If specified it means that the rule will only apply if the DNS query comes in on the specified interface.
source which takes a CIDR network address e.g 192.168.22.0/24 for my entire local subnet or 192.168.22.50/32 for a single IP address. If this is specified it means that the rule will only apply if the DNS query is coming the specified address. This is useful in cases where you one pariticular device on the network which you want to use different DNS servers for.
To Delete a forwarding rule you must specify the index number exactly like this:
dns server forward rule delete idx 20
Here’s the CLI Guide for the TG582n:
Download: TG582n_CLI_Guide_v1.0_public - 2.59 MB
A couple of months ago I bought a secondhand Yamaha receiver (RX-V371). My plan was to finally do away with infrared blasters stuck to the outside of all my home theater gear. The plan was to do all the control with HDMI CEC. I was already controlling my TV using the Kwikwai HDMI CEC adapter which I reviewed a couple of posts ago.
Unfortunately I haven’t been able to find the necessary Yamaha HDMI CEC commands to control things like surround mode and DSP settings. Chances are these commands just don’t exist. I did email Yamaha but they didn’t even respond. The most I could get out of CEC on the Yamaha was power on/off and input select.
I couldn’t bring myself to stick an IR blaster to the beautiful face of this fine receiver. Equally unappealing was the idea of shelling out cash for a receiver with Ethernet or RS-232 control.
Here is my compromise – putting the IR blaster inside the receiver. It’s not rocket science but here you go:
After locating the IR sensor I removed the self-adhesive backing on the IR blaster and stuck it to the PCB with the aid of a bamboo skewer.
The only thing left to do was to cut the the 3.5mm mono plug off the blaster, pass the cable through a small hole at the back of the receiver and then re-attach the 3.mm mono plug using a soldering iron and some heat-shrink tubing.
The Infrared emitter (blaster) is connected to a Microsoft USB Infrared Receiver/Transmitter. I’m using my own home brew c# .NET application to do the automation but there are a number of options, Girder, HIP, EventGhost etc.
The result – a reasonable level of control, no ugly IR bug visible (I can’t even see it flashing) and zero cost.
Back in January I posted about my workshop renovation. Since then I’ve completed the network outlets, wired up the security alarm and built a workbench.
Initial workbench concept done in Sketchup.
Each leg is a 2×4 and ply torsion box. Well I had to do something with all the ply offcuts from lining the walls!
The ply is screwed and glued to the 2×4 box. These Irwin QuickGrip clamps are super handy.
Yes the bench is built like the proverbial brick house. Several people have made reference to an earthquake or bomb shelter.
I installed a tub with removable insert to save bench space. (Good call Niten!) Not sure when I’ll to get this plumbed in.
3mm steel galv plate for the metalworking area.
I wanted the plate to sit flush with the surface of the bench so I routed out 3mm across the surface where the plate goes. 25mm per pass. Sucker for punishment? Perhaps. Actually the top was ok – the front – don’t ask. This was done with a Makita RP1800 Router. ‘Like a hot knife through butter’.
I then glued the steel plate in with Contact Adhesive
This is an original ‘Made in England’ Record vice which I did a quick restoration job on. Very robust.
These record vices are now sold under the Irwin brand.
My favourite part…What would a workshop be without a server……tool drawer.
I’d like to add a few more but who knows when I’ll get around to it. I used a Bosch Multi tool to cut out the little recesses where the rails are mounted. Can highly recommend these.
And yes you can cut through a CD ROM drive with a Jig Saw
It’s already getting messy!
Over the last few months I’ve had the opportunity to play with a very cool toy and thought I’d take some time to share it here. The Kwikwai is a powerful little tool made by Swiss company Incyma. It enables complete access to the HDMI-CEC bus. If you haven’t heard of HDMI-CEC it’s probably because it’s normally re-labelled by manufacturers. Anynet+ (Samsung); Aquos Link (Sharp); BRAVIA Sync (Sony); VIERA Link (Panasonic) etc.
CEC stands for Consumer Electronics Control and it allows various home entertainment components to talk to each other. For example when you switch on your Blu-ray player your TV and amp will turn on and switch to the correct inputs. Or when you turn your TV off the other HDMI connected devices will also turn off.
While this might all sound great in theory, in practice it can be a hit and miss. Different manufactures implement their own flavour of CEC and devices from different manufacturers don’t always play nicely together.
My interest in CEC was not so much in the interaction between devices and more in direct control and automation of each individual device using my HTPC. In fact I don’t even have a blu-ray player or set-top-box. Everything is done through the HTPC. I have a bit of an obsession with having a single remote to control everything with as few buttons as possible. Anyone should be able to pick up the remote, press power and be presented with an intuitive interface (in my case MediaPortal).
While there are plenty video cards that offer HDMI they don’t yet offer communication on the CEC bus. That’s where Kwikwai comes in.
On the front there are 4 indicator LEDs and two HDMI ports which allow the Kwikwai to be placed ‘in-line’ between two devices e.g. Blu-ray player and TV. It doesn’t matter which device connects to which port since the Kwikwai is completely transparent to the devices connected to it. You don’t have to connect it in-line you could just connect to any spare HDMI port on your TV or Amp – everything that goes onto the CEC bus is broadcast across all ports.
On the rear of the Kwikwai there are three connectivity options. Ethernet, RS232 and USB. The USB interface is used for power and also for communication (via USB to RS232). You can power the Kwikwai either from your PC or from any other 5V USB power supply. I’ve really only used the network interface so far.
The Kwikwai is not only great for home theatre automation it’s also a powerful HDMI CEC diagnostic tool and that’s the primary use for the web interface which can be accessed by pointing your browser at http://kwikwai.local
While the web interface provides diagnostics, configuration, and a firmware update facility it’s not ideal for automation. For that we can either use the command line directly or use the API for developing custom software. Most HTPC users will opt for using the command line but if you’ve got some basic c# .NET skills using the API is quite easy.
There is also some sample Python code on the Kwikwai website which would make it pretty easy to implement an Eventghost plug-in, however I was able to get the Kwikwai working in Eventghost by using the existing ZoomPlayer plug-in which allows simple RAW TCP commands to be sent.
Simply enter the Kwikwai address and port number
To send commands to the Kwikwai create a new Zoomplayer ‘Raw Command’ action. For example:
cec:send A FF:36 This will broadcast the ‘Power Off” command to all devices on the CEC bus.
The Kwikwai is a very handy device which enables easy automation of home entertainment components without the need to stick ugly infra-red senders to your equipment. At the moment it can be hard to get hold of vendor specific commands to perform more complex control but hopefully that will change over time.
There are two Kwikwai models available. For a full diagnostics solution the K-100 is the more expensive model. For automation the more basic K-090 will be more than adequate. Both models include all the connectivity options.
The only two areas I can see room for improvement in the Kwikwai are:
1) The colour! The Kwikwai looks kind of cool and is very well built but it doesn’t blend in very well with most home theatre gear.
2) It would be nice to see a firmware update that enables the Kwikwai to emulate a ‘player’ device on the HDMI bus so that other devices could become aware of it.
Check out the Kwikwai at http://www.kwikwai.com
…And I’m back. Yep, it’s been a while since I shared anything much here. That’s partly because I’ve been spending so much of my free time converting my decrepit old garage into a tidy workshop, a project that I started just over a year ago.
It’s been one of those of projects that starts out as a small seed of an idea, something that will take just a few weeks but then grows one “If I’m going to this I might as well do that” statement at a time until it carries on for an entire year. In project terms it’s clear that I failed to define the requirements and scope up front!
In case you don’t make through to the end this very long set of photos I’d like to say a big thanks at the beginning of the post to:
- My wonderful wife who has not only put up with me spending so much time on this project over the last year has also done ALL the painting that you’ll see below
- My good friend Rick who helped me through all the electrical work and made sure that I didn’t burn the workshop, the house or myself to the ground
- My good friend Simon who helped with external weather proofing.
- The guys up at Hill Lumber in East Tamaki for their advice and patience for a total newbie who couldn’t even tie down a trailer on my first of many visits. If you’re looking for great timber and building materials at the best prices around check them out.
The old garage which is 3.6m x 7.2m was built at the same time as the house in 1956. It has a side entrance and main entrance, which opens out into the carport, which opens out onto the driveway. Having the carport for the car meant that I could convert the old garage into a workshop for anything from woodwork to metalwork, plastics, electronics etc.
My initial intention was just to replace the rotten framing and line the interior with ply. Water had been running under the door when it rained heavily and would flow to one side. Consequently, the bottom plate and the first ~150mm of the most of the studs down one side had pretty bad rot. Water had been coming in the top and around the sides of the window on the back wall resulting in yet more rot. The right-hand side (which has the side door on it) was pretty solid.
The first step was to clear out the bottom plate. I used a couple of the redwood planks for the old workbench to prop up the wall under the top plate. Most of the bottom plate cleared out easily because it was so rotten. I used the angle grinder to cut off the old steel anchor pins.
The next step was to put in the new bottom plate using dynabolts and with a strip of damp-proof course to prevent moisture in the concrete slab from being absorbed into the wood.
With the new bottom plate it was time to sister the rotten studs with new ones.
This all went well and I worked my way along the left hand wall until I reached the first window, at which point I stood back and admired my handy work and for my first ‘building’ project I was pretty happy. It all looked solid and reasonably straight and I thought since I’d come this far I really should replace the old rusty louvre window. I picked up a second hand aluminum window off TradeMe.
Next I moved on to the back wall and back window. This time I had to:
- Take care of the partially rotten top plate by re-enforcing with a sub-top plate
- Install new studs and remove the old window and rotten diagonal framing
- Install a new window frame and window – again I managed to find a second hand aluminum window that was about the right size.
I came across this excellent site which describes how to correctly frame a rough opening for a window.
At this stage I had dealt with all the rotten framing and had a generally sound building. I figured since I’d come this far I should really doing something about the very pitted rough stained floor. In the end I settled on getting a guy in to grind, patch and lay two coats of epxoy. Oh and while I’m at it I might as well install a secondhand roller door.
I was averagely happy with the floor. There are a lot of grind marks and there were a few other issues but I won’t go into that. It’s about 1000% percent better than it was. Finally it was time to start lining. Or was it? As I surveyed the project so far I figured it only made sense to line the ceiling as well as the walls, and if I was going to line the ceiling it would be a shame to miss the opportunity to install insulation.
Of course before I could start any of the lining I had to consider wiring – power points, lighting etc. With a whole new set of electricals I should really install a new main cable back to the house to replace the 50+ year-old one that was there. That task lead me to cut a trench across the path between the workshop and the house. And let’s face it, while you’ve got a trench open you’d be silly not to lay network cables back to the patch panel in the house along with a pipe for water supply. Right?
And finally on to the wall lining and switchboard.
All that’s really left is the workbench and I’ll put that up in another post (hopefully) soon!
Lamps – Don’t touch the glass part of the lamp
I only discovered today when I went down to Repco to get a replacement lamp for my dead headlight that my car takes HID lamps. Both Repco and SuperCheap Auto gave me a cost estimate of around $250 NZD per lamp! And if I wanted the colors to match I would really have to replace both lamps at the same time.
$500 for 2 lamps!? No thanks! So I looked on TradeMe and found lamps for $49/pair. I’m not sure if this is a “get what you pay for situation” or an “HDMI cable scam” situation. Either way I thought it was worth a punt so I picked up a pair. Here’s what I got:
The box indicates D2C but the seller assured me that they were a suitable replacement for my D2R lamps and of the highest quality!
Old and new (Left and Right)
I’ll report back in a few months as to how well they’re going/lasting.
Well this is basic stuff but if haven’t done it before and you were expecting it to be a 5min job requiring no tools then this will really help. Having said that, if you’re lucky this might still be a 5 minute job.
The HID lamp is behind the gray cover. Try to turn it anti-clockwise to release it. If you’re lucky it will turn and come off, and you can proceed to the lamp replacement section. If it won’t turn (as mine didn’t) then it’s because there’s a security torx screw at the bottom of the gray cover preventing it from turning and unlocking. The easiest way to deal with this is to remove the headlight unit which is fairly easy.
Disconnect the 2 accessible cables/plugs at the back of the unit. Remove 3 bolts as shown and wiggle the headlight unit out. When it’s out disconnect the other 2 cables.
Remove the screw and rotate the gray cover anti-clockwise
Press the metal tabs on either side to remove the metal cap.
Unlock and remove the high-voltage cable to expose the lamp.
Unhook the wire spring clip to release the lamp.
Carefully install the new lamp. Don’t touch the glass with your fingers.
That’s it. Now just resemble everything.
In an effort to better manage our finances I decided to ditch my self-written ASP.NET budgeting tool and adopt GnuCash, an excellent open source accounting application. As well as being a true double entry accounting system, one of the great things about GnuCash is its ability to import a set of transactions in various formats. The idea here is that you import an OFX or CSV from your bank and allocate transactions to various accounts.
After almost 4 years of manually entering every single transaction into my crappy home-grown tool I was on the verge of giving up altogether. I decided that whatever new system I went with would need to be as automated as possible. So partly for the challenge and partly because I’m efficient (lazy) – I decided to automate downloading of transaction files from my bank accounts at Kiwibank.
Now it would be really nice if KiwiBank provided a webservice API to pull these transactions down – of course that would be too good to be true. With an API ruled out that only leaves the front end.
The second option was browser automation. To me this seemed like a less elegant option but after finding Selenium I soon forgot about that. Selenium is a web testing and automation suit. It consists of a number of components including a pretty extensive set of development libraries and interfaces. The two tools I used were Selenium Server and Selenium IDE (Integrated Development Environment) for Firefox.
The Selenium IDE Firefox extension allows you to create, record, edit and test Selenium automation scripts.
Start off by creating a new test suit and then a new test case within that suite. Hit the record button and start recording your browser session. Every action you perform in the browser will be recorded as a step in the script. This will give you the basis for the automation. Once you’re done recording you might need to manually edit, add or remove some steps to make the script more robust, or fix bits that don’t play back correctly. You can play the script back with the buttons on the toolbar or you can execute one step at time by selecting the step and pressing ‘x’.
Another extremely useful tool to help analyze page elements is Firebug for Firefox, it’s an excellent compliment to the Selenium IDE.
Getting Creative with Kiwibank Security
In an attempt to make their site more secure Kiwibank employ a two step authentication process. The first being AccessNo./Password and the second, a question/answer system which asks you to click the missing letters from the answer. This adds a slight level of security because it means an attacker needs to have a logger that’s a little more extensive than just logging keys.
To be honest it felt good the be the user, circumventing the security for a change!
I used this function to get the last 28 days when specifying the “from date” on the export selector.
Auto-downloading Files & Firefox Profiles
The whole purpose of this exercise is to automate downloading of transaction files so we need to tell Firefox to automatically save files of a certain type instead of prompting. We’d also like to save them in a specific location.
The best way to handle this is create a custom Firefox profile for Selenium to use just for this automation. There’s a great post here which details the optimum profile settings for use with Selenium.
The last thing you’ll need to do to the profile is make sure that it handles your chosen export file type correctly. In my case I’m using .OFX so I needed to tell Firefox to always download .OFX files without prompting. This is done through the mimeTypes.rdf file in the profile. Details on this file here.
If you keep getting the add-ons popup every time you use the custom profile I found the following fix:
To disable add-ons window which appears every time when Selenium scripts are run on Custom Firefox Profile.
Close all instances of Firefox browser and delete the following files from the Custom Profile folder
This should reset Extension Manager and disable add-ons pop-up.
Now with a fully working script and customFirefox profile in hand we can set about scheduling this automation with the Selenium server and the Windows task scheduler. The Selenium server would normally be stated and left running like any other server application. In our case we’ll just start it, run our script and then exit.
Once you get the command working at the command prompt you can then use it in a scheduled task running under it’s own user account. If you do this, everything will run in the background and you won’t see any windows pop up and it will run even if no one is logged on to the PC.
Here is the command I use to run my Kiwibank automation:
Notes about the command:
- Specify the test suite not the test case
- Specify a results file. (I haven’t need to look in it though)
- Specify the user extensions file if you have one
- Specify the location of your Firefox profile
That’s it. Fully automated transaction file download! Make sure you observe good security practices with this sort of stuff – Principle of Least Privilege.
Now for something completely different….after shelling out for one of these awesome microchip cat doors to be installed I thought I’d DIY the opening in my security mesh door. – As the weather warms up hopefully I’ll get more DIY stuff up here.
This one cost me some time!
After installing and configuring OpenAM you’re unable to log on to the admin console with the amAdmin account and password you set during the install. It doesn’t give an error message, just drops you back to the login page.
When you go through the custom configuration wizard you get asked for the cookie domain. If your OpenAM server is openam.mydomain.co.nz then your cookie domain should be .mydomain.co.nz but by default the wizard just takes the trailing two domain components from the server name – i.e. .co.nz. Unless you specifically set the cookie domain correctly you’ll get the issue described above. As you can imagine this issue wouldn’t occur if your OpenAM server was called openam.mydomain.com.
This means that if you have a domain name with more than 2 domain components then you’ll always need to run the custom config wizard.