Category Archives: Life

Innotech iComm and SSH port forwarding

You don’t get uptime like that on anything modern

A bit of a blast from the past, this one.

Back in 2011, we replaced all the heating at the church. Sadly this was just before the era of off the shelf heating controllers which did multiple zones and could be controlled from a web page or an app. So instead, we have a more old-fashioned HVAC controller made by Innotech. It cost (from memory) a couple of grand to source and install, and it’s less capable (in my opinion) than a Raspberry Pi with a few relays wired to it.

It was designed to be controlled over serial, so the installer attached an Ethernet to serial module to it, we ran Ethernet to the basement, and bam – we can use their clunky but servicable suite of Windows apps to program the temperatures and seven day calendars controlling the heating and hot water.

Sensors report … lots of things

The installer claimed this could be done remotely by forwarding the port the software uses (20000) from our ADSL router to the controller, then connecting to our IP address remotely. This never worked at the time (we suspected the latency on our ADSL upset it), but now we have a Virgin Media link it was time to try again.

This stuff may be arcane, but exposing it unprotected to the Internet felt like asking for trouble. However! A quick port forward in PuTTY (connecting to the Raspberry Pi sitting in our comms cabinet), and it actually manages to talk to localhost and works.

Now that it’s finally possible to work with this stuff from the comfort of my own home, I am tempted to see if I can reverse engineer enough of its communications to write a web front end and ditch the elderly Windows apps.

My paperless life

Stepping down as church treasurer led to the eviction of several large box files full of paper from my spare bedroom / home office. Inspired by a recent article in PC Pro, I looked at the freed-up space and thought … what if all the stacks of paper in my flat could be made to disappear?

Scan it and shred it

Keeping paper originals of most things is increasingly unnecessary in the UK, and indeed most utility companies etc. no longer send paper bills or charge extra for doing so.

I didn’t want to spend hundreds on a fancy double-sided, sheet feeding desktop scanner (or have it occupying all the space I’d just reclaimed!), but fortunately I was able to borrow one from work for the weekend to scan in all the old paper worth keeping.

That done, the question is how best to digitise and destroy new paper as it comes in. Following the PC Pro article, I managed to find a Fujitsu ScanSnap iX100 on eBay – it was “reconditioned” but came in the original box with all the manuals and shrink wrap, so a bit of a bargain for £130. It’s tiny, battery powered, and communicates over WiFi. The killer feature on top of that is that it can scan directly into various cloud services (e.g. Dropbox) without needing to be paired with a PC or phone. So I can push incoming post etc. straight through it without having to boot up a laptop first or faff with an app.

The PC Pro article didn’t go into details on how all this works, and I was initially disappointed and thought I’d misunderstood. However, the thing to do is ignore the Windows software, ignore the “ScanSnap” Android app, and go directly to “ScanSnap Cloud”. This is the one which you can use to configure the scanner to hook up to your WiFi, scan directly to ScanSnap’s cloud service (free once you’ve bought the hardware), and sync from there to Dropbox/wherever, without needing an intermediate device. You know you’ve got it all set up right when powering on the scanner makes the scan button and WiFi light go purple, like this:

Incidentally, I thought for a few minutes that I’d bought a dud (even after charging it up for a few hours) because I couldn’t work out how to get it to power on. The answer is to open both the paper trays out (duh!).

I’m properly impressed with this now it’s up and running – the OCR is very good and simply embeds the text in the PDF while leaving the original image of the page visible – so you can hit Ctrl-F and find text. I was even more impressed that, rather than simply naming files after today’s date and time, it has a reasonably good go at extracting a date from the document itself and also a file name (e.g. it manages to pick out the name of the bank when fed a bank statement).

Security?

Of course, for all this to work, one has to be happy with one’s potentially quite sensitive documents being fed to a cloud service.

ScanSnap Cloud keeps your scan history for two weeks. This isn’t configurable (although you can purge it manually from the app). That’s good enough for me – anything especially sensitive can be zapped as soon as it’s scanned; most things can be cleaned up automatically. Obviously the history purging doesn’t affect the copies saved to Dropbox or similar.

Update: a spot of network sniffing reveals that (apart from DNS lookups) the only communicating it does is over HTTPS to a service hosted in Microsoft Azure. All pretty sensible.

Finishing touches

So at this point I have a “ScanSnap” directory in the root of my DropBox which is full of PDFs with reasonably helpful file names. Leaving them all in one big flat folder and using the DropBox search function (which does search the text inside the PDFs) might be good enough, but a bit of sorting wouldn’t go amiss.

Paul Ockenden mentioned in the original article that what he really wanted was for documents to be automatically sorted into folders depending on what they were. ScanSnap isn’t quite that clever (but then again, a universally “right” answer to that problem would be pretty tricky). However, this is where a spot of scripting rounded it off for me.

My DropBox folder is already synchronised onto a Linux machine, so what I wanted was a script to fire as new files came in which would spot certain patterns in the file name and move the PDF into the right place accordingly. ionotify is the Linux feature of choice for this job; a bit of experimentation confirmed that Dropbox seems to buffer incoming files somewhere temporary and then move them into the right place, so listening for IN_MOVED_TO events in the ScanSnap directory allows one to apply some simple rules based on the file name. I’ll post more on that (and the code) another time.

Reflections on nine years as a church treasurer

And so, having been (joint) treasurer at St Columba’s since a few weeks after graduating in the summer of 2009, I’m finally stepping down at the end of the year.

Why?

Fair question. Having a time-consuming and technical role is the perfect go-to excuse to avoid doing anything else for the church, and I had polished up the IT involved to significantly cut the hours required.

Did things get better in nine years?

CAF Bank’s online banking web interface sure didn’t, but at least (contrary to what some people still think) it is possible to have a system where two people authorize all outgoing payments.

We already had a pleasing number of people donating by monthly standing order when I took over, but these days there are only two (soon to be one) people left who regularly send in cheques.

Suppliers, visiting preachers and hirers have all got much more adept at receiving and sending payments electronically. I haven’t actually gone through with my threat to destroy all our cheque books, but the number written each year has finally dropped to match the number of fingers on less than one hand.

We do still have one supplier who accepts BACS payments but “doesn’t have online banking” so continues to send us reminders by post to pay their invoices – until the end of the month when it becomes apparent that we have.

Cash in the plate on Sunday has dwindled in proportion to the rise of standing orders, but still adds up to a fair bit.

The level of paperwork required every 24 months to prove we’re not international money launderers continues to be a pain in the posterior for an organisation staffed by part time volunteers.

Charities need to shut up and take our money

One continued irritation is transferring the results of our “special collections”. The idea is simple – six times a year, we have a retiring collection for a worthy cause. We pick two charities who do work locally in Oxford, two UK-wide and two international. We claim all the Gift Aid we can on the money, and then send the balance to the charity in question. This is usually very tedious as charities large and small often don’t publish details for donations to be made via bank transfer. More often than not they do have a means to donate by card, so I can do that and claim the amount back personally – but this is messy as they insist on using details harvested this way to send you postal begging letters for years afterwards (MS Society, I’m looking at you). A particular favourite was Citizens Advice Oxford (earlier this year) who we ended up blindly posting a cheque to as they have no details on their website about how to donate.

Will I miss it?

Sort of, but I’m busy enough these days that having the hours of my life back will be very, very nice indeed. And nine years is long enough that one is in danger of becoming a single point of failure.

Cycle gear

In the past, I never owned a bike or any of the associated kit long enough for it to wear out or for something better to come on the market – my bikes always used to get stolen when I lived in central Oxford (and skimped on locking them up properly).

However, the world has moved on, and so have I – and given that I commute between 2,000 and 3,000 miles a year (!) on my trusty steed, I’ve been making some improvements with winter closing in…

Lights

I’ve had a fairly nice set of CatEye lights since I got the bike in 2012. They take six AA batteries between them (four front and two back), and the speed with which they chew through them was starting to annoy me. Inevitably, they run out half way through my eight mile cycle home in the dark. I carry a full set of spares, and they’re all rechargable, but finding somewhere safe to stop and swap can be tricky and the cold weather really seems to affect how long they can hold a charge. Getting four batteries the right way up while wearing gloves, in the dark, is also not fun.

So I bought myself some new ones which charge over USB. I stuck with CatEye in the hope that they would fit on the existing brackets (they do!) and so far I’m impressed. This front light seems to punch out at least as good a cone of light on full power as its predecessor, despite being a third of the volume and half the weight. And I can charge it from the USB power brick I have in the shed, as well as from my computer at work. It also has a nice push button system for on/off which is not susceptible to the accidental activation of the sliding switch on the old one.

Best of all, it has a low battery warning light, but still manages to run at full brightness until the battery is completely exhausted.

Still waiting for delivery of the new back light from an Amazon seller in China…

Camera

My previous cycle camera gave up the ghost, and I went halves with a friend on a two-for-one offer on new ones from Chilli Technology. They took quite a while to ship, but the result is what I was hoping for: a slight evolution on the original, with weak spots like the on/off button fixed, swappable batteries and charging over micro USB.

Pannier

My pannier has never been the same since I put it through the washing machine after some food leaked inside it. Unfortunately the back plate ended up deforming into the shape of the edge of the washing machine drum, and so the pannier has been curved for about six years now. I replaced it with the nearest thing still made by the same manufacturer, which should do the job. One of the tricks I’ve (eventually) worked out is that if one cycles four days out of five and drives on the other one, then it makes sense to transport clean shirts and towels in by car on the fifth day to minimise the weight cycled with.

DBPower battery booster

Car battery booster, a red box

DBPower car battery booster

I’m very impressed with this thing. It was recommended to me by a colleague, I found a nearly-new one on Ebay and it’s been under my passenger seat for six months. This morning, my car battery (less than a year old!) was mysteriously too flat to start it, but the booster had it going within a minute and spared us a really annoying Sunday morning delay which would have disrupted ten people. Really simple to use, and it has USB for charging phones too. That said, it did drop 60 percentage points of power after starting my Golf GTi, so I wouldn’t over-use it for other purposes.

User experience

So I bought a new microwave for the church kitchen last weekend, as you do. I’m still not sure whether the old one was indeed “broken” or just “too complicated for ordinary mortals to operate”, but if I can’t make the thing blast some food on full power, then it’s got to go.

This is the right way to do microwave controls, especially in a shared kitchen:

Two knobs are all you need

The wrong way is anything involving lots of buttons and confusing choices about what sort of food it is.

Crossrail

It didn’t come as much of a surprise to me that Crossrail will be late. And though I personally am annoyed that the day when I can jump directly from Paddington to nearly all the places I ever visit in London (most of them are in Docklands) has been pushed back, I do have one thing to say.

Spare a thought for the poor sod who had to ‘fess up to the fact that it was all going to be late. I’ve been there on software projects, and it’s not fun.

Third time lucky

So the debacle finally came to an end – on the third attempt (one full month after the original order), OnePlus managed to ship me a 5t which did not disappear into a black hole somewhere in DHL’s network.

Was it worth the wait? So far, I’d have to say yes. It’s a big step up from the OnePlus Two – I didn’t buy it for this, but it weighs less and doesn’t feel ridiculous in a top or trouser pocket. The battery life and dash charging are exactly what I wanted.

Meanwhile, Google Pay is useful, especially since it manages to give immediate full details of transactions like the Oxford busses which take a surprising number of days to actually charge the card. I was amused that my corporate credit card doesn’t support Google Pay, despite one of my personal cards, issued by the very same bank, working just fine.

Facial recognition to unlock the phone is a gimmick, but it’s a surprisingly useful and accurate one, and doesn’t seem fazed by the difference between me in glasses and me in contact lenses (and unlike Apple, OnePlus didn’t go overboard and drop the fingerprint reader). And to my inexpert gaze, everything happens as fast and smoothly as on an iPhone 10 which costs over twice as much.

Next time, though, it’ll be a brick and mortar shop purchase.

DHL and the disappearing smartphone

Apparently the top line is wrong

My OnePlus 2 has served me well, but the battery is starting to show its age, and it lacks certain features like Android Pay which I’d really like. So after a bit of reading around, I decided to show some brand loyalty and order their latest and greatest, the 5T.

There are some websites which offer it for a few tens of pounds cheaper than ordering direct from OnePlus, but a bit of digging into WHOIS revealed these to be run out of the Cayman Islands (despite a .co.uk suffix). So I decided not to touch those with a ten foot pole and stick to the “most official” source. Consequently, I wasn’t in the mood to spring a few pounds extra for expedited delivery – this not being one of those “I just broke my last phone” occasions, I reckoned I could wait a few days for my new toy. A few days, as it turned out, meant 30.

Day 0 – Sunday 18/3 – ordered from OnePlus, got all the confirmation e-mails, estimated dispatch on the 20th

Day 1 – Monday 19/3 – a text from DHL saying they’ll deliver on Thursday 22/3 (day 4) and giving me a tracking link.

Day 4 – Thursday 22/3 – DHL tracking claims the parcel arrived at their Oxford depot that morning. I’m at work (the delivery address) all day, and it doesn’t turn up. As late as 11pm, the tracking continues to estimate “by the end of the day”.

Day 5 – Friday 23/3 – Call from an 01235 number from someone claiming to work for DHL saying my shipment is “lost” and that this is being investigated.

Day 6 – Saturday 24/3 – raise a complaint with my credit card provider asking for a chargeback as I never got the goods. Told Mastercard requires you to wait 30 days. That doesn’t square with my reading of the relevant law, which talks about being able to do it sooner if a delivery date sooner than 30 days was agreed, but I didn’t push the point. I raised a complaint with OnePlus instead.

Day 8 – Monday 26/3 – my working day is interrupted several times by phone calls from DHL. Call #1 denies all knowledge of the Friday call and claims they only spotted a problem when OnePlus raised it with them. They promise to pass to another team. Call #2 is the other team telling me they’re on it. I sort of appreciate the personal touch, but reporting you have nothing to report might as well be done by text (like the original shipping notification).

Towards the end of this week, I get fed up of waiting and phone OnePlus (their UK customer support number is an Aldershot area code, but the people answering it sound distinctly American to me). I insist politely but firmly that their subcontractor’s mistake is not my problem, and it’s time for them to dispatch a replacement. The person on the phone forwards my request, narrowly avoiding me yelling at them for adding “…if possible” to the end of it.

Thankfully it seems they were about to reach that point without prompting – on day 11 (Thursday 29/3), DHL called to say the shipment was definitely lost, and OnePlus e-mailed asking for the address to dispatch the replacement to. I gave it to them, and they sent it priority. If I’d known they were going to do that, I would have given them my home address. As it was, I gave them work and consequently my new phone is (allegedly) sitting in the Oxford DHL depo, as it has been for the entire Easter holiday weekend.

I asked DHL how many parcels get “lost”. I was assured it’s “only about 1%”. I suppose I should have asked how many smartphone-sized parcels have something bad happen to them. The reason the tracking lies is that they use bar codes, and it would be too time-consuming to scan every parcel at each point in the journey. So they rely on scanning the pallet/container with lots of parcels at each point, and “arrived at Oxford” was based on that.

All in all, a bit of a mess. OnePlus handled it fairly well, DHL not so much. I’ll update tomorrow to confirm if the second one does actually reach me at work…

As for preventing this sort of thing, I’d gladly pay a few tens of pence more for delivery to fund the use of RFID tags for tracking, which could be checked individually at every point along the line (and presumably also be used to stop parcels “going missing” by walking out of a depot).

Update, day 16 (Tuesday 3/4) – no sign of the replacement at 17:56; a call to DHL confirms it never made it “out for delivery” and they’re opening an investigation. Really not amused now.