I was planning to answer a question in a comment on previous post and wanted to talk about the number of xPL clients that I have running. Rather than just quoting the number, I thought I’d make a post to put my response in context. Most of my xPL components support the hbeat schema. So I can identify them by sending a hbeat.request message. My perl xpl-sender command can do this:
In my previous post, I mentioned some of the issues I was experiencing with my current choice of home automation protocol, xPL. The primary issue was the need to perform filtering for every message on every client due to the use of broadcasts for messaging. One way to avoid this is to use a pub/sub messaging system instead. A number of people that I respect have been using the MQTT Protocol so I thought I’d take a better look at it.
I’ve been using the xPL Protocol since 2005, prior to that I was using Jabber (or XMPP as it is known now). As I’m thinking about changing protocol, I thought I’d write a bit about xPL and, in later posts, something about the candidates to replace it. The xPL Protocol has three types of messages: commands (xpl-cmnd), triggers (xpl-trig) and status (xpl-stat). They have the same simple format consisting of the message type, common “header” fields, the schema type and schema-specific “body” fields.
In the previous post, I described two of the three significant X10 problems we had when setting up our home automation system. This post will cover the third problem, latency. Although all our lights have conventional switches (well, momentary switches in conventional locations), we use a lot of X10 RF Remotes and X10 Motion Sensors to trigger lights and other devices. Initially, we used a TM13U RF Transceiver Module that receives the X10 RF signals and converts them in to X10 powerline signals.
I’ve written two posts about some of my favourite home automation features and both happened to use X10. So, I thought I should probably mention the significant problems we had with X10 and how we solved them. We had three significant problems. The first was noisy devices preventing the X10 powerline signals reaching some parts of our house. Initially, we attempted to resolve the noise problems by using X10 FM10 Plug in Filter Modules or X10 FD10 DIN-mounted Filter Modules.
Lighting is an important aspect of our automated home. Most of our lights are controlled via either X10 DIN-mounted Lamp Modules or X10 DIN-mounted Appliance Modules. (Some are RGB LED lamps but I’ll cover them in a later post.) Although I am a morning person, I still need a little help waking up in the morning. My lovely children help a bit but being able to have the lights gradually brighten to full brightness when it is time to get up helps a lot, particularly in the winter.
It has been a while since I wrote a blog entry so I thought I’d write a few posts to describe the current state of our house (with respect to home automation, not the washing up or the mess made by my two lovely children). I’ll start with a few posts covering the most useful features of our automated home. The most important device we’ve automated is the kettle. We “prime” the kettle after making a cup of tea by filling it, switching it on but turning it off at the mains (with an X10 Appliance module).
I’ve read all sorts of articles about how people have wired up the heating in their homes to make them controllable. They all seemed terribly complicated. We felt sure there should be an easier way. When we got our boiler replaced, we asked the heating engineers to put in an extra room thermostat under the stairs in the future node 0. (Of course, there was nothing under there at that time and they thought we were mad.
Finally, a fine day, so our decorator installed the Solatube. I was entirely taken in by the product literature the moment I read the slogan - “Stick it where the sun don’t shine!”. Fortunately the tube entirely lives up to my expectations. It’s still a little odd whenever I catch sight of the previously dingy room out of the corner of my eye. As you can see there’s still a bit of work to be done before the en suite is ready, so I have a little bit of time to get over it before that room is functional.
In preparation for Halloween on Monday (and so that we could serve pumpkin soup to our guests) I carved up a pumpkin. We decided to try installing an LED light in it and the result looked pretty good. (It looked even better when I remembered to wipe off the biro I’d used to mark out the features. ;-) We used an X10 RF signal to trigger a short chase effect and play an appropriate sound.
Since we couldn’t find suitable blind material being sold separately, we resorted to buying the cheapest Faber Blind with the material we wanted. Pulling the material off the blind and attaching it on our pole was a little daunting. (Not to mention the difficulty of finding a large clean space to work in.) We decided to use velcro rather than the usual double-side sticky tape, which I think made it even more difficult to make sure that the material was aligned properly.
Tracy opened her delivery of some Fibre Optic Lights today. We are not sure what we’ll use them for yet but they look interesting:
While the lighting on the stairs was being worked on, we had no lights on the landing. To make it safer going up to bed, we used an RF remote to trigger a appliance module to turn a lamp on in the bedroom. This also had the advantage of being able to turn the light off later without getting out of bed. The natural extension of this using the new X10 lighting is to have the same “On” button triggering a sequence of light settings - a “scene”.
Well, I wasn’t sure about having coloured lights when Tracy first talked about it, but now I definitely love the idea. The effects you can create are great. We’ve been experimenting lighting different objects - like the radiator covers in our living room - but the photos really don’t do them justice. We’ve set up some neat controls based on this Colour Wheel. Tracy’s ChromaDome, from A.C. Lighting, arrived this week.
We’ve had the Pulsar ChromaZone12 controllers for ages but we’ve only just got around to ordering the lamps. We ordered four MR16 Chroma Hearts from A.C. Lighting. They look great. I can’t wait to see them in the en-suite shower. They are brighter than I expected which is good because it means we should get away with just two for the shower leaving a couple spare for elsewhere. I decided to experiment creating a small video.
Concentrating on function rather than appearance, I’ve made a start on the web interface that will form part of the interface. Items with the relavant backend hardware work - i.e. the dining room curtains, one of the temperature sensors, and the all-important kettle. I’ve even started keeping the data from the temperature sensors to make some graphs. I’m very pleased with the look of the logo. It’s derived from a photo of a great card we received when we moved in, made by Cilla, my brother’s wife.
We’ve been slightly distracted by the sale of our house in Bournemouth and the subsequent arrival of quite a lot of stuff… However, we have been working on the interface a little and I’ll write another entry or two about this shortly. Progress is also being made on the decorating, installation of the dozens of X10 Din Rail Modules and routing of cables to the future node zero.
After quite a lot of effort, with my new Dremel, I’ve created a nice box for the VIOM. This means we have computer control of a set of curtains now - one relay does the open signal and one for the close signal. Once the cables are fitted to the board - which is quite fiddly - it should be a simple matter of cabling with RJ11 connectors.
I’ve been looking into controllable coloured lighting for a while. I’d like to be able to have coloured lighting and be able to control the colour programmatically. (No disco lighting effects! Just a gentle colour wash for mood lighting.) I discovered the DMX standard which is used for stage and disco lighting and also increasingly for architectural lighting. Trouble is, much of it is quite pricy. Pulsar do a nice range of LED lighting - the Chroma Range.
We like clocks in our house. Sadly though we are rubbish at changing them so half of them are usual on GMT even in the summer. However, we’ve come up with a solution. Most of the clocks have the same small mechanism on the back. A while back we brought some of these Radio Controlled Clocks from TLC Direct. The mechanisms looked very similar. So we took one apart and converted our cool “man” clock in to a radio controlled clock.
My first real attempt to build a temperature sensor that would be suitable to mount on the wall was not a success. The telephone coupler from a diy store was just to fiddly to fit the bits inside. However, I still liked the idea so I tried these Junction Boxes from ScrewFix. I paid 4 pounds for five on the off chance they might be okay. Well, they were better than okay.
We started having trouble with our Harmony dimmer a couple of days ago. It was working fine from the switch and but not responding to X10 commands. We tried resetting it, but no change. Then we noticed that the kettle wasn’t responding as reliably as usual, and the curtains also seemed to be a bit slow to respond. Not good when we’re planning to add more X10 devices. Today we decided to try unplugging the electrical items that we had recently added to the house and see if any of those made a difference.
My Tech Supplies order  arrived today, so this evening I made up my first temperature sensor. We got a simple sensor working along the lines of the one described the web site for the digitemp software that we are using to read the sensors from the computer.
The first thing we did with the Dawn and Dusk Autoglide Curtain Track was to open up the light sensor and the switch to see how they were wired up. The light sensor is just a light sensitive resistor and the switch was a simple momentary switch. (Too simple really. It’s quite naff really but I suppose we’ve been spoilt by the better looking blind motor switches.) Since our cheap Maplin crimp tool wasn’t really doing a great job, we decided to sacrifice the dawn and dusk sensor.
This is going to be the heart (or maybe that should be brain) of our automated home. At the moment it’s named “slave” after a computer from Blake’s Seven. If it works out well enough we might rename it “Orac” or “Zen”. I’m hoping there is enough space in there to fit in a PCI serial card and hide the VIOM in some of the spare space.
Yippee! The 24V power supply (from RS) arrived and it did the trick. It’s a bit of a mess but we managed to control the blinds using a PC: We tested a bit at a time, but ended up with simple Perl script talking to the VIOM via the serial port. The VIOM was set to allow control of two outputs via the serial port (rather than the default of control via the inputs).
Started testing the VIOM today. We tested it out with a door contact - which after a little effort worked fine - and used it to try the blind control/switch that Tracy mentioned in an earlier entry. We tested the Centralis with a voltmeter and it appeared to be doing exactly what we’d hoped. The motor voltage can be controlled through the up, down and stop switches on the front of the unit:
Wow! Very odd! Tracy went to use the Fujitsu that I had tried to get the touchscreen working on. Despite the fact that I only managed to get erratic movement of the mouse, it is now be working!
I’ve now placed a harmony module behind the light switch in the dining room. This was not my first choice of trial location since this room is currently mostly full of boxes - mostly boxes of cables if you ask Tracy but really a/v and computer bits too! However, this was the only switch with the large enough back box in the whole house.
I spent a little time coding a Perl module to hide the details of bots. Had a little trouble with the Net::Jabber modules because I couldn’t find the XML stream socket to add to the select loop of the new module. I might email the author of the Net::Jabber modules to ask about this. After converting the two existing modules, I decided to take a look writing a temperature monitor using the Dallas 1-Wire stuff, that I’d been trying to find time to look at for a few days.
I looked at spread, but I was getting too many errors from the Perl API. So for now I’m going to use Jabber clients for the messaging infrastructure. I wrote two simple clients using the Net::Jabber perl modules. The first was for X10, that reports events and will take commands, and then a second for caller id, that will report calls/rings and will accept commands to send to the modem. These thumbnails link to genuine screenshots - edited only to remove my mobile number.
We’ve spent a lot of time thinking about blinds but we also want automated curtains in some of the rooms as they’ll be warmer in winter. As with automated blinds, one company seems to have the automated curtain market sewn up in this country: Silent Gliss. The Silent Gliss autoglide curtains are available from a number of sites including Simply Automate. The most basic Dawn and Dusk model is most suited to automation - you can replace the dawn and dusk sensor with an X10 curtain controller.
We came across one post that mentioned using a Somfy Centralis DC IB for controlling a Somfy DC blind motor. It seems to drive a motor in both directions based on up down and common inputs - seems to be just what we need. The manual didn’t have enough information for us to be confident about this unit, but since it wasn’t a hugely expensive component I decided to buy it and give it a go.
I decided I couldn’t wait for the electricians to do the whole house in a few months time and I really had to know if the quite expensive LW12 2 Wire Dimming Micro Module were as good as I’d hoped. I decided to try it on the switch in the bedroom. Unfortunately the back box was too small - as I later discovered this is true almost all the back boxes in the house.
The motor arrived yesterday, it was just in a box with no further instructions. It has just two wires coming out of it. We know from the online manual that it runs at 12 or 24 vdc. After a bit of experimentation we get it to turn in one direction, but can’t get it to rotate the other way. We think you need to reverse the polarity of the supply to change the direction (which we are doing manually), but it will only go one way.
The 3400 BIOS doesn’t support PXE or USB boot… so I decided the quickest install method was to take the disk out and put it in a USB adapter connected to another machine. I wiped the disk, created a partition and configured grub to boot the debian installer. Linux install was straightforward. I’ll need to rebuild the XFree86 fpit driver to get the touchscreen working. My first attempt to do got a reaction from the mouse but was still rather broken.
4-Gang = Brush Chrome Faceplate 11.40 4 * 10A SP 2Way Push Switch 15.96 4-Gang grid mounting frame 1.52 2-Gang back box 0.75 29.63 (34.82 inc. VAT) 2-Gang = Brush Chrome Faceplate 5.95 2 * 10A SP 2Way Push Switch 7.98 2-Gang grid mounting frame 1.07 1-Gang back box 0.59 15.59 (18.32 inc. VAT)
Well, I was impressed first thing yesterday morning when Tim from TLC got back to me to confirm the price of the faceplates (probably only minutes after MK sales had opened!). I was even more impressed when he phoned after lunch today to say that the switches, backboxes, etc had arrived. Absolutely brilliant service - well done Tim and co - if they only sold all the other things we need for our new house I think my life would be much easier!
I’ve spent a few days looking at possibilities for automating window blinds. Here’s what I’d like to be able to do: Have all blinds in the house come down at dusk and go up after we’ve gone to work Have a blackout blind in our bedroom go up (behind curtains) in the summer to wake us up naturally (but not at 4:30 am as has been happening recently …), this needs the motor to be pretty quiet, don’t know if this is possible.
I don’t think we are alone in having trouble sourcing momentary switches that actually look good. Someone seems to have spread a rumour that people spending hundreds of pounds on X10 modules have no taste and like really ugly switches. Well, we’ve found two sources for nice switches. The first, we found when we got lost in London. Ideabright Ltd of 772-776 Fulham Road, SW6 5SJ, 020 7736 4014 sell Jung Switches.
Purchased four Fujitsu Stylistic 3400 tablet PCs from ebay. These should make good frontends. There is even a manual on the Fujitsu web site but I don’t suppose I’ll read it. Looking forward to trying to get Linux installed on them.