Revisiting HomeKit and non-HomeKit devices

Back in June 2017, I started to make good use of my existing macOS equipment, and leveraging the Homebridge platform to integrate my existing non-Homekit devices into Apple’s HomeKit. At the time, this included:

Six months on, the range of HomeKit supporting accessories remains limited. Despite Apple announcing that HomeKit accessories could move from hardware to software authentication during its’ WWDC 2017 event, very few manufacturers have updated their current suite of devices with HomeKit support.

Despite Belkin announcing they’ll be releasing a HomeKit Bridge for their Wemo platform in May 2017, it still hasn’t materialised and has missed their stated launch window. Netgear’s Arlo platform remains absent, despite their users requesting it, and a vague reference in German from a company employee on an official forum suggesting it will be on at least one Arlo product in 2018 (just not the one everyone wants).

So, here’s all the things I’ve learned along the way up until now, that makes my home setup work as well as I can possibly make it.

Where am I at now?

My HomeKit and Homebridge environment is still going strong, with new devices added as well, including:

And whilst Apple’s HomeKit environment lacks some of the switches and commands to do more complex things (i.e. change to a TV channel, increase the volume, or switch to a specific input), I’ve been able to work around this using scenes with complex actions created using Elgato’s Eve app for iOS, which i’ve documented below.

At the moment however, the Logitech Harmony system has been moved out of the Homebridge environment due to issues downloading the package after a reinstall of the server. I have managed to compensate for this by turning the TV on and off using a specific scene, and leaving the Logitech remote set to the TV activity at all times.

Current environment

Initially, I installed Homebridge onto a 13″ 2016 Macbook Pro. However, I’ve recently elected to move the installation onto a Mac Mini running with macOS Server.

Current Homekit equipment environment consists of:

  • Home hub
    • Apple TV 4th Generation
  •  Lighting
    • 4x LIFX Colour 1000 Lights
    • 4x Philips Hue White Lights
  • Power
    • 2x Belkin Wemo Insight Switches (great for power consumption monitoring)
    • 1x Belkin Wemo Switch
  • Security
    • Cameras supporting MJPEG or FFMPEG
      • 2x D-Link IR Day/Night cameras
      • 2x D-Link Day Cameras
    • 3x Philips Hue Motion Sensors
  • Environmental
    • Sensibo Sky Air Conditioning Controller
  • Audio visual
    • Sony 55″ X8500E 4K HDR Android TV with TRILUMINOS Display (KD-55X8500E)
    • Sonos
      • PLAYBAR,
      • 2x PLAY:1, and
      • SUB
    • Logitech Harmony Hub
  • Low Voltage sensors/controllers

How did I do it?


If you’re reading this article, let’s presume you’re the type of person who already has a good home internet connection and wifi network, so I’ll skip over that part.

To do this successfully, you will need the following:

  • A home computer or server that’s ‘always on’
    (i.e. Windows, macOS, Linux, RaspberryPI, or even some NAS boxes)
  • An iOS device with Elgato Eve installed (reason for this will become apparent later)
  • An Apple ID configured with both:
  • Home hub
    The features you want will determine your minimum hardware requirements for the device you use as a home hub:

    • If you want to control accessories remotely: Apple TV (3rd generation), or an Apple TV (4th generation) with tvOS 9.0 or later.
    • Automations and user permissions: You need an Apple TV (4th generation) with tvOS 10, or an iPad with iOS 10 or later.
  • Camera settings and URL’s
    When it comes to the Non-HomeKit cameras you’re planning to connect, you need to know the camera resolution; and the URL’s for both audio, video, and image streams. More information on that is below, including a reminder to test your URL’s.
  • Patience
    This will involve some trial, error, and some downloads. Don’t do this while tired, take your time, break it down into small pieces, and you’ll be amazed how well things work. This is especially true of when installing the Belkin Wemo Maker, as you’ll need to understand the device you’re connecting it to, what connections it offers, and have the manuals for it.

Camera settings

Next up, you need to get some information about your cameras.

First, find out the maximum image resolution for your camera. You should be able to get this from the settings page of its manual.

Second, you will need to get the URL for the video, audio, and image output of your camera. For D-Link cameras, and the others on this list, are well documented. Just find the name of your camera manufacturer, scroll down to the model number, and go from there.

Remember that if the URL shown in the database includes the camera’s username and password in the querystring, you put it there. For all others, you put the username and password in the URL, which is shown in my example config.json file below.

Finally, test your URL’s in your browser. You’ll save yourself a lot of time testing them first, just by copying the completed URL into your browser, to confirm they work. This ensures you don’t spend time doing complex debugging by reading log files or messing around with terminal commands, to figure out why they’re not working.

Homebridge Installation

  1. Follow this guide for installing Homebridge on macOS:
    (which has been heavily updated and revised after what i’ve learned)
  2. Install Homebrew (only needed if intending to view cameras with the homebridge-camera-ffmpeg package)

    /usr/bin/ruby -e "$(curl -fsSL"
  3. Install FFmpeg using Homebrew (Again, only needed if going to be using homebridge-camera-ffmpeg)
    $ brew install ffmpeg
  4. Install the relevant packages for my devices:
    $ sudo npm install homebridge-camera-ffmpeg
    $ sudo npm install homebridge-lifx-lan
    $ sudo npm install homebridge-platform-wemo
    $ sudo npm install homebridge-sensibo-sky
    $ sudo npm install homebridge-harmonyhub
    $ sudo npm install homebridge-bravia
    $ sudo npm install homebridge-zp 
    $ sudo npm install homebridge-openweathermap
  5. Complete your config.json configuration file (see more below).
  6. Run Homebridge OR
    IF you’re going to use the homebridge-bravia plugin, either read the Configuration section below to understand how to deal with this package, or spend a lot of time reading the readme file for this to get it properly running (
  7. Follow the Apple Support article Use the Home app on your iPhone, iPad, and iPod touch (HT204893) to get the Home app setup, create your rooms, connect to Homebridge, and assign accessories to rooms, setup favourites etc.
  8. Follow the Apple Support article Automate and remotely access your HomeKit accessories (HT207057) so you can create automations,  remotely control things away from home, and grant access to other people.
  9. Go and setup your scenes in Elgato Eve, so you can change TV channels, adjust volume, etc.


The config.json file

When you go through the earlier installation steps, you’ll setup your config.json file.

If you’re new to JSON, I’d strongly suggest writing your config file in a text editor first, then testing it validates using JSONLint, before pasting it into your config file, saving, then starting up HomeKit.

I’ve obfuscated a few things in here obviously, the README file for Homebridge explains how to create your config.json file, and includes a sample file you can build on.

And remember – don’t use the default PIN in the sample config file. Leaving it as the default is going to make you look pretty silly when someone finds you’re running Homebridge, connects to your homes’ wifi network that you thought was properly locked down, and starts turning on and off all manner of switches (or turning on the TV audio at 3am in the morning with the last channel you had on – which will endear you to the neighbours).

 "bridge": {
 "name": "Homebridge",
 "username": "XX:XX:XX:XX:XX:XX",
 "port": XXXX,
 "pin": "XXX-XX-XXX"

 "accessories": [
 "accessory": "Weather",
 "apikey": "Your API Key",
 "locationById": "Your Location ID",
 "name": "OpenWeatherMap Temperature"
 "platforms": [
 "platform": "Server",
 "port": 8765,
 "name": "Homebridge Server",
 "log": "/Users/username/.homebridge/logfile.log",
 "restart": "launchctl unload ~/Library/LaunchAgents/com.homebridge.server.plist && launchctl load ~/Library/LaunchAgents/com.homebridge.server.plist"
 "platform": "LifxLan",
 "name": "LiFx"
 }, {
 "platform": "HarmonyHub",
 "name": "Harmony Hub"
 }, {
 "platform": "SensiboSky",
 "name": "Sensibo",
 "apiKey": "Your API Key"
 "platform": "BelkinWeMo",
 "name": "WeMo Platform",
 "noMotionTimer": 60,
 "ignoredDevices": []
 "platform": "BraviaPlatform",
 "tvs": [
 "name": "TV",
 "ip": "XXX.XXX.XXX.XXX",
 "cookiepath": "/Users/username/.homebridge/sonycookie",
 "tvsource": "tv:dvbt",
 "soundoutput": "speaker",
 "maxchannels": 200,
 "listapplications": 0,
 "apps": [
 "platform": "ZP",
 "service": "speaker",
 "brightness": true,
 "speakers": true
 }, {
 "platform": "Camera-ffmpeg",
 "cameras": [{
 "name": "Cam 1",
 "videoConfig": {
 "source": "-re -f mjpeg -i http://username:password@ -i http://username:password@",
 "stillImageSource": "-f mjpeg -i http://username:password@",
 "maxStreams": 2,
 "maxWidth": 640,
 "maxHeight": 480,
 "maxFPS": 30
 }, {
 "name": "Cam 2",
 "videoConfig": {
 "source": "-re -f mjpeg -i http://username:password@ -i http://username:password@",
 "stillImageSource": "-f mjpeg -i http://username:password@",
 "maxStreams": 2,
 "maxWidth": 640,
 "maxHeight": 480,
 "maxFPS": 30
 }, {
 "name": "Cam 3",
 "videoConfig": {
 "source": "-re -f mjpeg -i http://username:password@ -i http://username:password@",
 "stillImageSource": "-f mjpeg -i http://username:password@",
 "maxStreams": 2,
 "maxWidth": 640,
 "maxHeight": 480,
 "maxFPS": 30

The horrors of homebridge-bravia

This package alone could use its own article, as it was a little frustrating. This was, due in part, to less than solid documentation on the part of its developer.

The short version, there’s a few extra steps to get this package working nicely:

    1. If your TV gets an IP address via DHCP, it’s time to give your TV a static IP address. If your router supports the ability to assign an IP address based on the Mac address of the device, that’ll be the best path to go down.
    2. Configure Remote Start on your TV
      On the TV, open Settings > Network, and enable Remote Start.
    3. Once the package is installed, go to your Terminal application and follow these steps to prep the needed sonycookie file
      cd ~/.homebridge
      touch sonycookie
      chown yourusername sonycookie
      chmod 777 sonycookie
    4. Make sure your TV is still powered on, and you can see it (as it will display a pairing key/PIN you’ll need to enter)
    5. From your Terminal app, run Homebridge
      sudo homebridge
    6. Key in the pairing key/PIN displayed on the TV once home bridge asks for this in terminal
    7. Quit Homebridge, then restart.
    8. If you need to get the list of applications installed on your TV, open your Homebridge log file and look for the information displayed. Lines with the app details will normally begin with:

And once you’ve done that, you’ll then need to have fun with some scenes to change channels.

Changing channels and volume

Now, HomeKit doesn’t understand voice commands for changing channels, or changing the volume.

These plugins will use a brightness switch, as a workaround for exposing a switch that will enable the action.

So, I mentioned the Elgato Eve app earlier – and this will come in handy.

Changing channels with scenes

The easiest way to change the channels is to create a custom scene for the specific channel.

Here’s a screen shot of the scenes i’ve created for this, and below is the instructions.


Scenes for some of the channels on my TV

To create your scene, do the following:

  1. Open the Elgato Eve app
  2. Navigate to the Scenes tab
  3. In the top-right corner, press the Edit button
  4. Press the Add Scene button that is now displayed.
  5. Follow the workflow to select your room (Living Room in my case), then set the  switch for the relevant item (Living Room TV Channel in my case), and slide the slider until you get the channel number you want
  6. Press Add in the top-right corner of the window
  7. Press Next
  8. Give your scene a name (Change to Channel 31)
  9. Press Done
  10. Press Done again

From there, simply invoke the scene with Siri to change to the desired channel:

Change to Channel 31

It’s worth noting that I’ve found Siri often thinks “to” is “the” with my Australian accent, so I find I have to pause and add emphasis to the word “to” when calling this scene, to make it work consistently.

Setting custom Siri name for your TV speakers

First, make your life easier by setting some custom Siri names for your devices.

  1. Open the Elgato Eve app
  2. Navigate to the Rooms tab
  3. Select the room your Sonos speaker is in (Living Room in my case)
  4. Tap the Speaker instance for your Sonos speakers
  5. At the top of the speaker instance, tap on the disclosure triangle, then the configuration button
  6. Tap Siri Names
  7. Set a custom Siri name for your speakers

Changing the volume of your TV speakers

In my environment, the Sonos provides audio from my TV.

With the homebridge-zp plugin installed, and the custom Siri name set for the TV speakers as shown above – I can say the following to Siri to change the volume:

Change the TV speakers brightness to 50

And needless to say, the following would mute the volume:

Change the TV speakers brightness to 0

Create a scene for muting and unmuting the TV speakers

And for muting, and unmuting the TV audio – you can use the same method above for creating scenes – this time targeting the TV speakers brightness switch, which will handle this.

I’ve given these scenes simple names so they can be called quickly with Siri:

Mute the TV
Unmute the TV

Managing your Homebridge instance

If you want to remote into your server each time, to install, configure, and remove plugins – go right ahead.

However, if you’d like to make this is a little easier – there’s a couple of packages will make this a little easier using a web UI, depending on your individual needs.

These packages include:

Depending on the specific package, you can:

  • Quickly access the HomeKit PIN graphic
  • Search for, install or remove a plugin
  • Configure a plugin
  • View your log files
  • Restart the Homebridge instance

Diagnosing problems

The quickest way to find any issues is to keep an eye on Homebridge’s logfile, using this command before you start Homebridge:

tail -f ~/.homebridge/logfile.log

From there, you’ll see the output of the logfile, and spot whatever is going on.

Additional things I learned along the way

  • Read the readme files carefully
    Whilst most of the NPM packages developed have solid documentation, not all of them are the best – especially for new users. So sometimes you need to take extra time to read them.
    And if you need help, read the issue tracking pages for each plugin to see if there’s any useful information there. Worst case, you can ask for help in Reddit or via the project’s Slack channel.
  • Keeping your macOS unit always running
    From time to time, it would take forever and a day to control accessories using the iOS Home app. This is because the mac had ‘gone to sleep’, and no matter the change to the Energy Saver preferences in System Preferences – it wouldn’t play nice. This was pretty easy to address with a simply terminal command:

    sudo systemsetup -setcomputersleep Never

  • Cameras
    As long as your camera has a stream in a supported format, you should be able to integrate that camera. for the camera-ffmpeg package, there’s a growing list of known good configurations you can work from for various cameras. The good thing is that D-Link’s cameras have used the same URI’s for their features for as long as I can remember – so the posted known good configuration for the DCS-932 will work for pretty much any D-Link consumer camera in circulation.
  • Garage Door
    • Wires
      Any good speaker wire will do the job nicely. Just make sure to not leave too much of the wire exposed outside of the terminal block on the Wemo Maker. 6mm of exposed wire will be more than enough.
    • Getting the connection terminals right
      Luckily, the garage door at the place I live has various connection terminals on its controller board for wired control of both open/close, and sensors to indicate if the door was opened or closed. This meant no need to buy a magnetic reed switch and install it – saving extra time and work. A quick read of the manual, and looking at a good article from someone else who’d used the Wemo Maker for the same purpose, enabled me to figure out the wiring I needed to use, and got it done in one go (For the sensor, wiring COM on the door controller to – on the Wemo Maker, and NC to S).

Things I still can’t do

  • Cameras – Live view
    The cameras will get an updated FFmpeg still in the Home app every 10 seconds. Would still like to try and get it working to a stream, but that requires more reading and understanding on my part.
  • Cameras – Alerts
    There is at least one sensor package I’m yet to try, which uses the SMTP notification features of most cameras to provide alerts, or trigger actions when there are unexpected motions. I’m yet to sit down, understand which is the best package for my needs, and get going with it. Something to explore another time.
  • Power – Tracking usage stats
    With the Belkin Wemo Insight switches, they make available their usage data which can be viewed in the logs for Homebridge. I would like to be able to get at this data, to track power consumption dynamically in a graph, and not looking in the Wemo app or looking at the spreadsheets it sends.
  • Philips Hue Motion and Sensibo Sky – Tracking temperature, humidity and lux settings
    These devices output stats and information for various parameters, being temperature, humidity and lux. Again, like the Belkin Wemo, I’d like to be able to get this data out into some form of logging and live graphing for review purposes.
  • Harmony Elite
    I’d like to get the Harmony Elite package working again. I’d also like to see if the  package can only switch your configured activities on and off. It can’t change volume, pass other commands (stop, play, pause, input, show TV guides, etc). Not being a programming person, or having a deep understanding of the HomeKit platform, that’s something I’m not able to tackle. Maybe there’s a smarter cookie out there who just might be able to achieve it.
  • Xbox
    I’m yet to play with a plugin someone has developed to do basic on/off control for this unit (which is really all that’s needed, given the Kinect gives the user the ability to voice control the device).

Having fun with HomeKit and non-HomeKit devices

Update: A newer version of this article has been published, with updated information on the setup, configuration, and latest learnings on integrating non-HomeKit certified devices. For more, see:

If you want to understand more about my original journey with this, then feel free to read on.

Continue reading

A hashtag and photo alone does not a call to action make

I want to make clear from the outset, this is a viewpoint expressing on how people use social media for good intentions – but their intent doesn’t deliver effective results. This isn’t either for or against a specific, current missing person, but uses an online exchange in relation to them to highlight the problem.

Now, with that out of the way – let’s get to the point.

As my fingers touch keys, law enforcement authorities in the USA are working to find Isabel Celis, a six year old girl who has gone missing from Tuszon, Arizona since last week.

And is the fashion, people across all social media channels have commendably mobilised to assist in what ever way they can to help the effort to reunite this young girl with her family. From Facebook groups, twitter hashtags and the like – the users in these communities are at least helping to raise awareness about the case.

Image of a tweet that appeared in my twitter timeline today relating to the missing US girl Isabel Celis - Click to view full sized image.

Image of a tweet that appeared in my twitter timeline today relating to the missing US girl Isabel Celis.

This case came to my attention today when this screen-captured tweet was retweeted in my timeline, and is the basis for this post.

My issue with this tweet is this: It requires the user to do too many things for the information to be useful and actionable. Or put simply – a poorly crafted tweet, and a badly executed call to action.

When you hear or read about a missing person, and if your mind is anything like mine; you ask yourself a couple of important questions such as:

  • who is it?
  • where are they missing from?
  • how can I help find the person?

This of course goes back to the Five W’s of basic information gathering; which we were all taught in primary school. I’ll avoid talking about their origins in Latin for reasons of brevity.

Problem one: Reliance on prior knowledge

Only the first of these three questions comes close to being answered, provided and buried by way of a hashtag – a method on twitter for indexing a group of tweets or discussion – denoted by the string of words prefixed by the hash (#) symbol.

If you’re an inexperienced twitter user, you’re not likely to know what a hashtag is. This is most likely amongst the 17% of US internet users over the age of 30 who use twitter.

The use of a hashtag to convey important information is a poor choice. It is reliant on the assumption that the user knows what they are and how they are of value to the message being conveyed. The problem is best summed up by the following, and less offensive expression:

To assume is to make an ass out of u and me

Problem two: Key questions not answered

We move on to the second and third questions asked by the inquisitive mind when seeing a message about a missing person – where are they missing from, and how can I help.

The tweet doesn’t provide any answers to these important questions. It repeats the same mistake of assumption, and hopes that the user will click on a hashtag, to find a tweet, that contains relevant information, so they can get the answer to the questions they have.

The response from a user after being called out on a poorly crafted tweet that did nothing to inform interested parties on how they can help - click to enlarge.

The response from a user after being called out on a poorly crafted tweet that did nothing to inform interested parties on how they can help.

And the problem with this was highlighted by the somewhat flippant and idiotic justification received from the tweet’s original author (see right) when I questioned the original tweeter on his methodology and message, and its poor use of the medium that helps rather than harms the search for this girl.

How does looking at only the photo of a missing girl as an isolated act help with her recovery? Short answer – it doesn’t. Just ask people who write Missing Persons Investigative Best Practices Protocols, let alone the social media operatives for various agencies who already provide this information (and do it well), on how they think the tweet in question would be more hindrance than help.

However, this clicking creates an unnecessary barrier to providing the user with information. In order to answer their question, they will have to click on a hashtag, to scroll through a list of tweets until finally, amongst the signal to noise ratio that is social networks; find a message that gives them some of that information.

At least three to six clicks, and two minutes wasted trying to find it by my count. All of it unnecessary, and could have been easily fixed with a properly crafted message.

So what would the solution look like?

A screen capture of how the tweet should have been composed to ensure maximum effectiveness of the message - Click to view larger.

A screen capture of my tweet showing exactly how it should have been composed to ensure maximum effectiveness of the message.

So given Twitter’s 140 character limit, If I was the person sending that tweet – how would I have crafted it to actually be useful?

These are my two suggestions for crafting a better tweet in issues such as this:

  1. The message is the medium: Add as much relevant information as possible; so people who want to help can, without them getting frustrated, disinterested and ultimately taking no action.
  2. Use easily understood shorthand to maximise real estate: wk. for week, pic for picture, yr for year, fr. for from.

Here’s exactly what should have been tweeted (and I did by the way):

Isabel Celis, 6yr old fr. Tuscon AZ missing since last wk. Pic Info Please RT #findisabelcelis

And yes, I know I broke one of my own rules in this tweet – asking/begging for the reader to take action (by including the phrase Please RT). However, I make a small exception for this one because I can; and no parent (no matter how dark your heart is) should have to live with the uncertainty of a missing child.

Rinse and repeat on LinkedIn spam

Time for another missive on LinkedIn spam. I’ve touched on this topic before, discussing the notorious Pav Sanka and his inability to use a contact for its intended purpose.

Well fast forward to today, when the equally slimy John Keats – the Chief Sales Officer of 123 Greetings (visit at your own peril). Another person from the sub-continent who feels it appropriate to ignore clearly written information on what types of messages I’m happy to receive via LinkedIn.

For those who don’t remember, here’s a recap:

Contact Settings
Happy to share my knowledge and consider job offers, but please don’t contact me with spam.

Interested In: career opportunities, consulting offers, job inquiries, expertise requests, reference requests, getting back in touch

With that in mind, here’s the message I received today from John Keats:

Subject: CPO & CPM – Strategic Partnership
From: John Keats Chief Sales Officer at 123GREETINGS DOT COM
Date/Time: April 25, 2012

Hello Michael

I represent (World’s #1 e-Greeting company) with 30 million opt- in users across the globe.

We help advertisers to reach their targeted audience on CPO and CPM basis via our email campaigns.

The Average performances are 6% open rate and 5% CTR and we can target users demographically and geographically.

You can message me for more information and I will be happy to discuss with you further. You can add me in Skype (greetings_sales)

John Keats
Cell phone: +1 646- 257- 3763

Chief Sales Officer
123, Inc
1674 Broadway, Suite 403, New York, NY 10019

Ok, let’s look at what messages I stated that I’m happy to receive via LinkedIn and which of these it matches up to:

  • career opportunities: No
  • consulting offers: No
  • job inquiries: No
  • expertise requests: No
  • reference requests: No
  • getting back in touch: Are you seeing a pattern emerging yet?

So – should John have sent his message? No way.

If I had even a remote interest in electronic greeting cards as part of a marketing campaign I might be running, I would have gone out looking for the relevant information.

And looking at this companies’ website, it doesn’t inspire me with confidence. It’s a design reminiscent of mid 2000, with all the design queues which give it the look and feel of something dodgy and untrustworthy you’d associate with India – right down to the use of generic and dodgy stock photos and more advertising than you can shake a stick at.

The consideration and application of ethics in marketing is something oft ignored by less scrupulous users of social media and communication networks. Those who fail to consider ethics in marketing also fail to realise the damage their activities do to their business and reputation.

I’ll bet this is why Pav Sanka tried to get in touch with me last week by phone, considering that Pav’s own name and business name (Vinsky Consulting) doesn’t appear on Google results without my entries appearing right next to or even before him and his company. It’s the same level of permanent record that’s given to and Lucy Plumridge thanks to their lack of business ethics and my well-honed SEO skills.

So, here’s the reply sent to the latest LinkedIn spammer. Will it achieve anything – likely not. However, if it does make the person in question reconsider their obnoxious tactics and think twice before misusing LinkedIn, then it has achieved its purpose.


Let me be blunt and respond to your message with a question, did you bother to read the contact box on my profile which clearly states what kind of contacts I’m interested in receiving?

Let me answer that question for you – No, you did not.

You have sent me a message, a message with no purpose or relevance to why I’m here, and offers me nothing that’s aligned to the messages I’ve expressly stated up front that I’m willing to receive.

Spend a moment in my shoes – I get several messages here a day, on top of all the other informational networks I need to participate in to stay at the top of my profession. If you think that messages like yours are a valuable use of my limited and valuable time, you are sorely mistaken.

Connecting with you is of no value to me. You’re not a social network practitioner – you’re a bleeding sales person who’s so ineffective in their job that they don’t bother to read available information and form sound judgement. There’s simply no benefit to me in connecting with someone like you I don’t even know who is of zero relevance to me.

In short – you’re just another pain in the arse spammer who abuses networks like this for their own means and wastes other peoples time.

I’d thank you to refrain from such wasteful messages, and future pay better consideration to the messages you send so as not to waste other peoples time. Needless to say, I’ll be circulating your message and my response amongst my circle of influence both online and off to make sure that they never do business with you or your company.


As I said last year – people like John need to learn the purpose of social networks, and understand the manners and expectations that goes with using them.

A follow-up on spam: Email Blaster concurs, enforces TOS

Well it seems my publicising the spamming activities of bore fruit.

After correspondence back and forth, I have since been advised of the following by Email Blaster UK:

EBUK [has] investigated all claims made individually and had upheld the allegations that a breach had occurred; appropriate action was then promptly taken in accordance with our T&C’s which are available in the public domain.

In the discussions with EBUK, they disclosed that they had received a significant number of complaints regarding the spam activities of They also noted that a large number of these had come in as a direct result of my original post & and could be directly attributed to my speaking up regarding their activities.

One of their officers suggested during an email exchange that they [EBUK] might like me to handle their SEO in the future. A small plaudit to me, but one I’d decline due to the sad difficulty of dealing with out-of-country customers and how I prefer to work.

A further comment on the original post by redX has also suggested that they have moved onto another electronic Direct Mail house,, so that they continue to send their junk.

And now for the icing on this war on spam cake: the UK’s Information Commissioner has this week accepted my complaint against for investigation.

While has moved on to use another email provider, at least this step has had some success & put the company on notice. If they’ve not cleaned up their act by the time the UK’s Information Commissioner comes knocking, then I dare say that their bad acts and fruit of the poison spam tree will come back to bite them, hard!

If you are still being spammed by, here’s what you need to do:

  1. Use to identify and report the spam to their mail hosts or electronic direct mail companies.
  2. File a formal complaint with the Information Commissioner’s Office for them to investigate any spam
  3. Use the information from the Spamcop analysis to identify the company they’re using, see what their Terms of Service are in respect of spam, and complain directly to them.

Yes – taking action against spam in this method may take 30min or more of your time, however – the more people who take action against spam from UK/EU companies and corporates, the better chance we have of stamping the practice out in at least one part of the world.

By the way Lucy Plumridge – how are you enjoying the negative publicity arising from your use of the illegal fruit of the poison tree? I’m still getting truckloads of traffic from people searching for you, your company and its spamming. Talk about your chickens coming home to roost.

What’s worse: Spamming people, or using email lists gained from hacking activities?

Update:The efforts to bring to account for their spam have had result;, including Email Blaster UK taking action, and the UK Information Commissioner commencing an investigation. More information on the progress of this is available over here.

Well, you know just how much I detest spam – but tonight I’m a little more incensed.

Cast your minds back – and you’ll no doubt you remember the Playstation Network security breach in early 2011, which saw the personal details of users on that service compromised by hackers and leaked out to the world.

Well my details including my primary email address were in the information leaked. Thankfully I practice a high level of security by never using the same password twice, and not storing credit card information as well as using throw-away credit cards or debit cards to reduce the financial risks.

I have previously looked into using disposable email addresses, but these are too much of a hassle in my view. Further, my hosted email provider does not make available the use of DNS-based block lists (such as Spamcop) for filtering out & blocking inbound email from open proxies and known spam hosts despite asking them to do so.

Anyway, let’s get back to the point.

In short, an email came in at 2209hrs AWST from a Lucy Plumridge, Contract Support Manager (, LinkedIn Profile for Lucy Plumridge) of a UK site named Here’s the email in question:

Dear redacted,

I’m writing to you on behalf of

We would like to introduce you to , the UK’s fastest growing contract specific job site. The contract market has grown 14% year on year and many professionals are now turning to the contractor market in order to take advantage of this trend.

Last year we helped thousands of contractors find their next contract role and are already considered to be the largest contract job board in the UK, with over 12,000 live contracts both with the UK’s leading agencies and direct clients.

Please take a moment to upload your CV and you will be entered into a prize draw to win two tickets to the London 2012 Olympics this summer*.

We look forward to working with you.

Kind regards,

Lucy Plumridge
Contract Support Manager

*The competition draw will be held on Friday 25th May 2012. The winners will be notified by email and details published on the website., Mortimer House, 40 Chatsworth Parade, London, BR51DE, United Kingdom

Our mailing address is:
Mortimer House
40 Chatsworth Parade
Petts Wood
Kent BR5 1DE Communication was sent to you byLucy Plumridge
This system is for permission based email;
report abuse . I do not wish to receive any
further communications.

Now I know I’ve never done business with them, never supplied them with my email address, nor ever given them or a 3rd party they might deal with to contact me. The fact they were a UK operation was more interesting, as I’ve never expressed or sought out employment opportunities in the UK.

So, the only way they could have come into possession of my address is either via a purchased list, and especially one that was compiled from illegally or improperly sourced details.

Analysing the email, they used a eDM (electronic direct mail) house called Email Blaster UK. Now not withstanding the comprehensive regulations and directives on contained within Article 13 of the European Commission Directive on Privacy and Electronic Communications – Email Blaster make it expressly clear in their terms of service that;

We do not allow clients to use purchased lists under any circumstances – this applies to both B2B & B2B marketing, email databases must have been generated directly by the client’s website using the recognized Opt-in process.

So, with the EC regulations/directives and the companies stated terms of service – Contractjobs has broken the rules.

Thankfully, the Email Blaster team was hot on the case within 21 minutes of me contacting them. I’d received a response from one of their Account Managers; advising that any references to my email address or domain within the databases they hold for have been immediately removed, and that they are immediately opening an investigation into the TOS violation.

And I’d hate to be at the moment – because Email Blaster charge clients GBP 150 for each confirmed spam incident. If they have purchased or used a harvested mailing list, they could be in for some serious charges and penalties from their email last night.

Now you might be wondering why I’ve written this post – and I’m happy to tell you. I’m of the view that communication is the best weapon in preventing spam & generating awareness of the problem. And being an SEO Practitioner, I know full well that the way I’ve structured this blog entry will ensure that, in perpetuity, this incident will be permanently tagged and forever appear in the search results for It’ll serve as a clear warning for anyone considering to use their services that they are a confirmed spammer, breached their countries anti-spam rules, and have purchased email lists obtained by illegal means.

And if you don’t think this works, ask Pav Sanka and his company VinSky Consulting International what happened after he sent me LinkedIn spam. It had immediate impacts in search engine results.

And if you know me personally, ask me about StarTrack Express and what happened to them in January 2005 after their played depot soccer with a package being delivered to me. A former blog I used to ran documented the whole incident, to the point where three negative and fully documented blog entries appeared about their own site in search results for their company name. It was even to the point where their own IT people attempted to take down my blog (a bad move, as I posted the entire log file and details of what they attempted online, creating another SEO entry outranking their own site – ouch).

So yes, nice move Your stupidity by buying email lists obtained from hacking activities has just landed you in a nice little SEO hole. I’ll sleep easy tonight knowing that your reputation will be permanently tarnished because of your own stupidity and non-existent business ethics.

My view on Yahoo! appointment of PayPay President Scott Thompson as their new CEO

{EAV:84adeba5c5b1539f} I read The Guardian’s article with great disdain this evening, announcing that PayPal President Scott Thompson is being appointed as Yahoo’s new CEO.

A business that’s failed to innovate, allowed competitors to get ahead & steal their market share (Flickr as a prime example of this failure, demonstrated by the rise of Instagram, 500px and ors), and failed to look after & listen to their customers – has appointed a CEO who was president of a company who has failed to innovate, allowed competitors to steal market share, and consistently fails to listen to customers (today’s example of the $2,500 antique violin destroyed to prove a claim is the latest example, as well as my ongoing horrors with this nightmare of a company come to mind).

So this caused me to cast my mind back, and made me think of this quote from Season Five of The West Wing (#504, “Han”). Toby and Will are trying to write a speech on the appointment of Bob Russell as the new veep.

Having hit the wall of writers block hard, they delve into the absurd and unprofessional to best sum up their feelings about Bingo Bob Russell. You could replace all references to Bingo Bob in the following quotes with Scott Thompson – and you’d pretty much hit the nail on the head:

“‘Distinguished’ is as high as we go. You’d have to be high to go loftier. Here’s what it should be: ‘In a triumph of the middling, a nod to mediocrity, and with gorge rising, it gives me great nausea to announce Robert Russell — Bingo Bob, himself — as your new Vice President.'”
Will is typing this and gets into the spirit, adding, “This lapdog of the mining interests is as dull as he is unremarkable—”
“— as lackluster as he is soporific…. this reversion to the mean—”
“—this rebuke to the exemplary—”
“—gives hope to the millions unfavored by the exceptional…. Bob Russell: not the worst, not the best, just what we’re stuck with.”

Scott Thompson: Not the worst, not the best, just what we’re stuck with.