First Tesla Model Y Road Trip

Back in 2019, we booked a 2020 trip on the famous Jacobite train, which starred as the Hogwarts Express in the Harry Potter film series. COVID-19 closed the railway, which meant we had to postpone the trip until this year.

The original plan was to drive up to Fort William, in Scotland. At the time of booking, I was driving a VW Tiguan and living in London. The journey didn’t pose any real challenges.

Fast forward to 2022 and I’m now driving a Tesla Model Y and living in Solihull. This was going to take a little bit of planning. There would be four of us travelling, two adults, two kids under ten and a boot full of enough clothes and supplies to last us at least nine days. Fully laden is the term I’d use!


We did 1275 miles at cost of about £100, which is 8p per mile. In comparison, our friends did 1475 miles in a diesel, which ran them about £300 or 20p per mile. Had I used cheaper, slower chargers, the total bill would have been less, maybe only 6p or 7p per mile.

To the Isle of Skye!

The Jacobite train departs from Fort William, which is north of Glasgow. We booked an AirBnB for two days. As we were heading that far, we figured we might as well go a little further and added another AirBnB in Portree, on the Isle of Skye.

From Solihull to Portree was 520 miles and the route goes via Fort William, so it was pretty direct. The Tesla Model Y has a quoted range of 330 miles, but that is probably more like 280 or 300 in real life. This meant I’d need to have a vague idea of where we would be stopping to charge up.

Predeparture (100%)

Prior to leaving home, I charged the car to 100% using my Zappi home charger. This took two overnight sessions. I then set the car to precondition the battery before leaving. This can be done using the Tesla app and I left the car plugged into the wall to avoid using any of the battery’s charge.

Preconditioning will warm or cool the battery so you set off with the best possible range available.

My charge history as captured by Teslamate

#1 Solihull to Gretna Green – 220m (100% – 21%)

Leaving around 5pm on a Friday, we headed straight up the M6 to Gretna Green and stopped at the motorway services. I booked a nights’ stay in the Days Inn in an effort to break up the journey, as much for the kids as anything.

I plugged the car into a Tesla Supercharger and it took about an hour to get the car back to 100%. Thankfully it was very quiet. The 62kWh cost me £29.76. I was honestly surprised it was so expensive, but given the cost of electricity it shouldn’t have come as a shock.

#2 Gretna Green to Balloch – 110m (98% -> 59%)

The kids started acting up after we passed Glasgow and as it was approaching lunch time, we decided to stop at Balloch, on the southern tip of Loch Lomond. We parked up and I spotted there was an EV charger. A *free* EV charger. Once plugged in, we had a wander on the shores of Loch Lomond to stretch our legs.

I got 18kWh from the charger in the hour and a half we were there, taking the car back up to 80%. Not too shabby for £0!

#3 Balloch to Fort William – 85m (80% -> 50%)

This stretch of the journey was absolutely amazing. The scenery was breath taking.

For any James Bond fans, this road was featured in the Skyfall movie. We took a small detour down what is called “The Skyfall Road” in the hopes of recreating the iconic scene. Alas, this proved to be a bust since I didn’t prepare well enough! More on this later.

We continued on through Glencoe and on up to Fort William, where, with the help of some friendly locals, we located out AirBnB.

#4 Fort William

As luck would have it, there was a 22kW charge across the road from the flat. At 18p a kWh, this was pretty cheap, so I took the opportunity to plug in the car and charge it to 80%. This took 25kWh and cost me £4.61.

We did our trip on the Jacobite Train, which was pretty great. As we were travelling to Skye the next day, I took one last opportunity to put a few more kW into the car at the same charger. Another 11kWh and £2.14 took the car up to 85%. More than enough to get us to Skye.

#5 Fort William to Portree – 110m (82% to 36%)

This leg made very obvious the difference in motorway vs A roads. The weather was also wet and miserable, so the heating in the car was on. That said, 42% to do 110 miles wasn’t too shabby!

#6 Portree

We did quite a lot of driving in and around Portree, with day trips to dinosaur footprints and castles. For the most part, the roads were A roads, but there was also a lot of driving on single track roads.

After the first day trip, the car was down below 20% so I decided to go to the charger in the town centre. Thankfully it was unoccupied. Unfortunately, I couldn’t start the charge session using the ChargePlace app. I’ll admit that I got a little worried at this point. If I didn’t have access to a rapid charger, it would mean leaving the car plugged into a wall socket back at the AirBnB for 2 days!!

I called the number and the agent was able to set the charge up for me without any issues. They explained that their app has trouble talking with older charging stations and that manual intention was required. There was a 45min limit (with 15min grace period) on the charging sessions(!) so I opted for the 50kW charger instead of the slower 22kW. An hour there and the car was charged to 66%.

The following day I used the charger again and filled the car to 100%. The day before leaving, I use the 3pin charger to replace the miles lost from the days’ road trip and we were ready for our trip back to Glasgow.

#7 Portree to Fort Augustus – 90m (95% to 65%)

No visit to Scotland would be complete without a visit to Loch Ness 🙂

We drove down along the shore to Fort Augustus, where we parked up at a free charge point. As we had plenty of range, I went for a 22kW charge. 2 hours added 22kWh for £0.

#8 Fort Augustus to Glasgow – 141m (91% to 50%)

This leg of the journey took up back through Glencoe and we had another stab at the Skyfall picture. The small, single track road was much, much quieter. Whilst I didn’t manage the perfect picture due to a Skoda being parked in the shot, we got close enough!

#9 Glasgow to Abingdon- 40m (40% to 22%)

The drive back from Glasgow to Solihull was going to be over 300 miles, so I know that starting with less than 100% would mean two stops on the way home. The first stop was at Abingdon services. When we pulled up at the supercharger, it was 1/3 full (2 cars out of 6 bays).

The Tesla route planner said that a 25 minute stop was necessary, but as the other bays filled up, this increased to 45 minutes. Instead of 120kW, we got 50kW.

Whilst the kids played games on the Tesla’s screen, I reviewed the rest of the route. I knew the car recommended at the services just south of Preston, which was perfect, since we’d planned a short stop in Preston to visit some family. On closer inspection, I could see the route required us to double back to the services, which was odd. On checking, I discovered that the Preston chargers were only available on the northbound side!!!

We cleared the route and tried again. This time the Tesla recommended a stop at the Trafford Centre outside Manchester! This would add lots of time and miles to our journey, but we didn’t see to have any choice. We decided to just head for Preston and once there, check ZapMap to pick another route.

We ended up staying for an hour, added 54kWh and taking the charge up to 90%. This cost £26.

#10 Abingdon to Preston – 145m (90% to 41%)

It was during this part of the journey that we started to hit the holiday traffic. Lots of it. It was stop start and 30mph for a long part of the journey. Our kids fell asleep and with the cruise control and autopilot steering, it wasn’t as stressful as traffic usually is.

It also had a real silver lining! As we crawled along, the miles used less battery power and as we approached Preston, we recalculated our route. We no longer needed to head towards Manchester. Instead, we had enough range to make it Stoke-on-Trent!

#11 Preston to Trentham – 70m (41% to 17%)

With 41% and about 70m to cover, we were feeling more relaxed now. We had checked the two superchargers stations around Stoke-on-Trent and spotted that the one at Trentham was a 250kW one. This would mean a shorter charge, so we decided to shoot for that one, even thought it was further than Keele services.

It was totally worth it. The Trentham services has twelve chargers and only one car was there when we arrived. The car told us it needed 8 minutes before we could continue our journey, but in reality, 3 or 4 would have been enough.

As it happens, there was a nice restaurant opposite, so we popped in and bagged a table. I returned to the car having left it about 10 minutes. 29kWh added @ £13 bring the car up to over 50%.

#12 Trentham to Home – 59m (51% to 31%)

Uneventful final leg!


The journey was a total of 1275 miles with 313kWh used. I haven’t received the bill from the two charges on the Isle of Skye, but the other charges totalled about £80. Add about £6 to cover a full charge at home. I reckon it will be about £110 in total.


For all the hours and miles driven, the Tesla’s autosteering behaved flawlessly. I had the autopilot steering engaged for almost all motorway driving and it only put its foot wrong once, with a little wobble as we drove only the M8, south of Glasgow. When we did the first leg, it was 220 miles straight, without a stop. I got out of the car feeling great. That would never have happened in my Tiguan. The 100 miles between London and Birmingham would have had me yawning and needing to stop.

I don’t really understand it. I mean, I was paying attention, checking mirrors, overtaking etc. but having the car do most of the steering and accelerating must be less taxing on your brain? All I know is that I did almost four hours in one go and felt fresh and relaxed when I got out of the car.

I even tried the autosteering on some of the A roads as they were very well market. For the most part it had no problems, but on a few occasions, it reduced speed to deal with “poorer conditions”. This didn’t make sense to me on some occasions as the road looked well marked and the sun was shining. That said, I’d glad it’s cautious!

Comfort and boot space.

1200 miles in comfort. No moving around in my seat or getting a numb arse. Surprisingly comfortable on the bumpy single track roads. Wife had no complaints either. Kids did complain about being too hot in the back, but we realised that we’d blocked the vents with a bag 🙂

In terms of the boot space, we packed in seven bags of clothes, two large bags of food, a laptop bag, boxes of walking shoes, toys, coats, one bed guard and a yoyo zen buggy. And we didn’t use the front trunk at all!

Lessons Learned??

In hindsight, I should have fully charged the car in Glasgow. We were there for two nights on the way home, giving me ample opportunity to find somewhere to plug it in for a few hours. We would have only needed one stop on the way home. Some charging capability in the hotel carpark would have been very useful. If you’re parked up for 36 hours, even the 3 pin charger would be sufficient!

We also got lucky with our charging stops I think. At Abingdon, we might have been stuck there for two hours had we arrived when the chargers were all occupied. There is no system for queuing or being alerted to a charger freeing up, so we would have had to sit in the car waiting. Not ideal at the best of times, but even less so with two small children.

We did stop for a toilet break along the way and whilst there was one GridServe rapid charger there, it was full (two cars!). Somebody was leaving as we drove past, but the driver frantically gestured to indicate another car was waiting. If I’d been less than gracious I probably could have snuck in and hooked up for 15 minutes.

This is balanced with the 250kW charger experience. As it was a few miles off the motorway and after hours, it was basically deserted.

I can see why they say we need another 300,000 chargers over the next few years.

Wrapping up

Driving through Scotland was amazing. The ChargePlace charging network is pretty extensive up there and their free charging points are great. Their support with the Portree charger was great. I wish it worked with the app, but I’m sure there is a ticket on their development backlog to sort it out.

As an EV driver, this has boosted my confidence even further that long trips just take a little longer and require a little planning. A small sacrifice I guess.

My Mixergy IoT device – The start!

I’m loving my Mixergy tank, but one of the main issues is that the temp display is connected to the tank by a short wire. My tank sits out in the garage, so without consulting the app, it’s hard to know how much hot water you have.

The Mixergy control unit, showing charge, connection state and heating info.

Using my Home Assistant Mixergy integration and Siri Shortcuts, I’ve created something that my wife and I use. We can ask Siri to “check the hot water”. and it will reply with the current charge and water temperature. This is really useful as it works on our Homepods.

As fun as it is having to ask the computer for the tank measurements, I wanted to actually put a gadget into the bathroom, which would simply display the current charge etc.


When choosing the platform, there were a few considerations. Firstly, I didn’t want to spend any more money. I have small screens and MUC devices strewn around the office, so I wanted to make use of the stuff I already had. Secondly, it needed to use little or no power since it was going into the bathroom.

Years back, I purchased a WaveShare e-Paper display, but never found a use for it, until now. E-paper is great as it consumes no power when it’s idle. This felt look a logical choice!

For the MCU, I picked D1-Mini, which has an ESP8266 controller on it. These are great little boards for experimenting with.

Normally, I would be firing up a ZephyrRTOS project and writing some C, but this time I wanted to spend less time messing around and more time actually getting something finished. I’d heard about ESPHome and took a look. ESPHome is really cool platform that works with various MCUs and allows you to just cherry pick various components to build what you want. Put it all into a YAML file and install it. You can even update it over the air. It’s pretty cool.

It also supports ePaper! You’ll find the support detailed here, in addition to the wiring information.

To create a node for my Mixergy, I put together this little YAML file:

  name: bathroom
  platform: ESP8266
  board: d1_mini

  ssid: "<wifi_ssid>"
  password: "<wifi_password>"

  # Enable fallback hotspot (captive portal) in case wifi connection fails
    ssid: "Bathroom Fallback Hotspot"
    password: "<update_password>"


# Enable logging

# Enable Home Assistant API
  password: "PWD"

  password: "PWD"

# Sensor
  - platform: homeassistant
    id: current_charge
    entity_id: sensor.current_charge
    internal: true
  - platform: homeassistant
    id: coldest_water_temperature
    entity_id: sensor.coldest_water_temperature
    internal: true
  - platform: homeassistant
    id: hot_water_temperature
    entity_id: sensor.hot_water_temperature
    internal: true

# Display
  - file: 'fonts/arial_narrow_7.ttf'
    id: font1
    size: 32
  - file: 'fonts/arial_narrow_7.ttf'
    id: font2
    size: 78
  - file: 'fonts/arial_narrow_7.ttf'
    id: font3
    size: 24
  clk_pin: D5
  mosi_pin: D7

  - platform: waveshare_epaper
    cs_pin: D1
    dc_pin: D3
    busy_pin: D2
    reset_pin: D4
    model: 1.54in
    full_update_every: 30
    rotation: 90
    lambda: |-
      it.printf(100, 10, id(font1), TextAlign::CENTER_HORIZONTAL, "Mixergy");
      it.filled_rectangle(10, 50, 5, 130);
      it.filled_rectangle(50, 50, 5, 130);
      it.filled_rectangle(16, 180 - (130 * (id(current_charge).state / 100)), 33, 129 * (id(current_charge).state / 100));
      it.filled_rectangle(10, 180, 45, 5);
      it.printf(60, 51, id(font3), TextAlign::TOP_LEFT, "%.1fC", id(hot_water_temperature).state);
      it.printf(130, 88, id(font2), TextAlign::CENTER_HORIZONTAL, "%.0f%%", id(current_charge).state);
      it.printf(60, 162, id(font3), TextAlign::TOP_LEFT, "%.1fC", id(coldest_water_temperature).state);

This connects to the Home Assistant API and queries three of the sensors that belong to my Mixergy integration. It then renders this on the ePaper screen, showing a simple representation of the Mixergy tank, the hot and cold water temperatures and the percentage charge. It’s everything you need to know about the tank, at a glance.

Next Steps

Next step is to connect this sucker to a battery and experiment with the ESP8266 deep sleep. I think a five minute interval for refresh is probably enough (dropping to hourly at night), but connecting to WiFi and redrawing the screen consume a lot of power, so I’ll have to play around with it. Maybe I can use a small solar panel too as the unit will probably sit on a sunny windowsill.

I’d also like to make a little case for it, but I’ll need to do some research and see if there isn’t something I can just buy. This Waveshare unit is pretty common, so somebody must have made a case!

Then I’d like to add some sort of boost button, so we can charge the tank too. That’s further down the line as it will require changes to my Home Assistant integration…

Other Ideas

Given that a cloud API exists for Mixergy already, it would probably be possible to build a standalone unit that wouldn’t require Home Assistant at all. I’ve thought about this for my iOS shortcut – if I changed it to query the API directly, the Shortcut would be usable by anyone!

Smart Bulbs: my lightbulb moment?

I’ve always disliked smart lightbulbs.

Turn them off at the wall and you immediately question why you paid 1000% more.

I’ve held this position for years and years, until one day I came across a tweet by Troy Hunt where he used the words detached and Shelly1. This immediately captured my interest!

Now, I’ve had a few Shelly 1 relays installed in my house and they brilliant. So brilliant in fact I’d sort of forgotten about them. But when I heard about Troy was using them in combination with smart bulbs, my mind started racing.

Somewhere in the past 18 months, Shelly added a new Button Mode into their settings called Detached Switch.

Traditionally, you would install a Shelly 1 and use the button type of Edge Switch, which would allow the wall switch to turn the light on and off by flipping it. You can turn it and off via an app and the wall switch. Brilliant. Of course, the problem with smart bulbs still remains – turn the Shelly off at the wall and the smart bulb loses power.

This is where Detached Switch mode comes in! The relay is basically On and when you flick the wall switch, it raises an event and you then react accordingly.

With this combination, we can have a smart bulb and use a light switch!

Setting it up, however, does require jumping through a few hoops.

Setting it all up

Once the relay has been physically installed and setup, you can switch the Button Type to Detached Switch using the settings webpage on the relay. This disconnects the relay from the switched live.

For me, I use HomeAssistant, so I use the Shelly Integration to add the relay. When you open the device, you’ll see there are seven entities. The switch.shelly1_xxxx entity points to the actual relay, so toggling this switch will actually toggle the relay on and off.

The entity we’re interested in is the binary_sensor.shelly1_xxxx_input. This entity is connected to the switched live on the Shelly 1, so flicking the light switch will change this entity from on to off. By default, this entity is disabled in HomeAssistant, so you’ll need to enable it.

The Shelly Integration shows more than just the relay control

I purchased a LIFX IR bulb, one with a full color range and HomeKit support. LIFX setup was easy. The LIFX app found the bulb and connected it to my WIFI and HomeKit.

LIFX Nightvision A60 1200 lumens [B22 Bayonet Cap], Full Colour with  Infrared, Wi-Fi Smart LED Light Bulb, No bridge required, Compatible with  Alexa, Hey Google, HomeKit and Siri : Lighting

As I use the LIFX integration on Home Assistant, the bulb was added automatically.

I now had my smart bulb and my detached Shelly relay.

To connect these two things together, I used NodeRed. I use NodeRed for all of my automations. The automation is just two nodes. The first listens for state changes from the _input entity and it then toggles the LIFX bulb on or off.


I’ve switched out all the a lot of the bulbs in my house to these LIFX bulbs as I picked up some refurbished dawn/dusk bulbs on Amazon.

It’s been around a month since I started converting all the bulbs and pendants, but in that time I’ve only had one issue and that was caused by one of the LIFX bulbs losing connection with HomeKit – which didn’t affect Home Assistant.

This setup is a great combination. The kids are can use Siri to turn on some of the lights and when we’re going to bed, the physical switch works as it always has.

There are some things I need to tweak, like brightness. For example, if we dim the light as we settle into the evening, we’re left fumbling for an app or asking Siri if we want the brightness back up when we turn the light on the following evening. I need to add some automations to just reset the brightness overnight or something.

My Mixergy Smart Hot Water Tank

I recently installed a Mixergy smart hot water tank into my new house, as part of a total renovation. I’ve been very impressed and wanted to share my thoughts on the product after using it for a few weeks.

The problem with hot water tanks

For me, the problem with hot water tanks two fold.

  • You’ve no idea how much how water you actually.
  • You don’t know how hot the water in the tank actually is.

My previous arrangement had a 210L unvented cylinder connected to a system boiler and controlled using a Nest Thermostat. In a setup which is repeated around the world, my boiler turned on at 5AM and heated the water for 30 minutes.

During the summer months, the water that came out of the tap would burn your hand. Sometimes we’d have water for two showers and a kids bath and other times, my shower would run cold towards the end. Never a great start to the day.

I tried to get a handle on this myself, by installing two temperature problems on the inlet and outlet of the tank and using the temp of the hot outlet to try and guess how much hot water we had. It worked pretty well, as it took some of the guess work out at bath time. That said, I still had to boil the kettle to top up the water as it ran cold from the tap.

I wanted to install more probes, so I could measure the temp at a few places, but the best I could manage was the positions of the various outlets. In the end, I had four probes attached to my tank, which helped, but it was never just accurate enough.

Why not just keep heating the water?

This is a solution that most people suggest – just heat the water for another thirty minutes in the afternoon, or boost it before you give the kids a bath.

For me, this just wasn’t what I wanted to do. Burning gas is something we need to stop doing for the environment and besides, why waste money heating water that’s already hot enough?

Enter the Mixergy!

I stumbled across the Mixergy tank quite by accident, whilst watching an episode of the YouTube show Fully Charged. The brilliant Robert LLewlyn had one of the tanks installed in his home as part of a trial and during the show he interviewed the creator of the product.

What makes the Mixergy tank different from other unvented cylinders is that it can tell you roughly how much hot water you have, as a percentage of the tank’s overall volume. It will also give you the inlet and outlet temperatures (like my crude attempt!).

In addition, it also heats the water by volume, meaning you only heat the amount of water you want, rather than trying to heat all the water in the tank at one go. This gives you much greater control. If you only need 100L of water during a normal day, the Mixergy tank will heat that amount. Better for the environment and my pocket.

The design also enables the tank to heat water more quickly, so in the event you do run out, you won’t have to wait too long.


Mixergy offer a few variations on the base tank, allowing you to access different heat sources.

Solar PV – The tank has an electric element installed as standard and you can have a dual element installed, which allows you to power the element using Solar power

Solar Thermal – The tank can come with a secondary coil inside, which enables you to use Solar Thermal

Heat Pump – All the tanks are heat pump ready and they require an exchange to be installed. This can be added in the future.

Hydrogen Boilers – As it’s an unvented cylinder, the primary heating coil will work whether connected to a gas boiler or a hydrogen boiler, so again, the tank is future proofed.

I vacillated between the solar PV and solar thermal options. In the end, I opted to just have the Solar PV version. I figured that Solar PV offered more flexibility and is something I’d be more likely to invest in, combined with a home battery. Mixergy also offer integration with Timer-Of-Use electricity tariffs and that offers a little more flexibility too.

When it came down to cost, the 210L Solar PV Ready Tank I ordered was a little over £1200. An equivalent 210L unvented cylinder can cost anywhere from £300 to £800, depending on all sorts of factors. The Mixergy tank itself is close to the top end in terms of size, insulation etc. so I reckon it was around £400 more.

Ordering and Delivery

I ran into a few bumps here. When I got in touch with them originally, they confirmed they could make delivery on my desired date, to coincide with the plumbing work. However, as we got closer to the dates, they reached out to tell me they wouldn’t make it in time. I was pretty annoyed to say the least.

They reached out again a day or two later to say I could have the slimline version of the tank, delivered on the original date at no extra charge. I rushed over to the house with an inch tape to confirm it would fit, with the required clearance. Thankfully it did and the order was confirmed.

The tank arrived. I must admit to being a little giddy with exceitment!


The Mixergy tank is essentially just an unvented cylinder with some additional technology built into it. This means the installation of the tank is the same as any other unvented tank. Our heating engineer installed it without any issue. We were short a few capping nuts and because they were a very unusual size, we had to contact Mixergy to get them. They did provide them, but fortunately, the engineer found a few he had and finished the job..

Being a smart home enthusiast, the heating engineer didn’t connect the thank to any heating controls. This is something I wanted to tackle myself.

I chose Tado for my central heating. This was for two reasons – it offers HomeKit integration and they have an API that HomeAssistant can use. They also have nifty smart thermostatic valves, so individual rooms can be controlled as zones.

As plumber installed my central heating in an Y-Plan configuration, I knew that control of the valves would be split, with the Mixergy tank controlling the hot water valve and the Tado would control the heating. The setup was straight forward and after a lot of reading and some triple checking, it worked. Thankfully.

The Tado control unit all connected to the two valves

The App

With the tank wired into the boiler and fully commissioned, it was time to connect the app with the tank.

This was very simple, thankfully. The tank comes with a Power Line adapter, so it was a case of plugging in the powerline adapter and connect that to my router. I then scanned a QR code on the adapter and the app connected to the tank.

I went through the settings and configured things like target temperature (how how you want the water) and the schedules. You can set the tank to simple heat a certain amount of water or you can have it maintain a minimum amount of how water. You can also boost the tank to a certain amount of water on an ad-hoc basis! Very nifty.

As it’s unvented, you can also setup the cleansing of the tank. If you don’t already know, unvented cylinders need to be heated to a certain temperature every few weeks to kill any and all bacteria in the tank. With my old tank, I just left the boiler temp very high to ensure that the water was always hot enough. To maintain a lower temperature and do a manual cleansing every few weeks would have required going into the loft, boosting the boiler temperature and running the water for an hour. It was simply easier to take the lazy approach. Mixergy solves this by automatically managing this process. You choose the days and times that you want it to occur and it will use it’s best judgement to run automatically. They recommend you do it on days when you might want a lot of hot water anyway, so I opted for the days we bath the kids.

Another nice feature of the app is that it can give you energy consumption information!

First Showers

After our first night at the house, I fired up the app the following morning and boosted the water to 30%. I really had no idea how much water we’d actually need. 30%, as my wife will tell you, was not enough as her shower ran cold.

I think it was a combination of the flow rate being at maximum on the shower, the thermostatic valve not being calibrated and the fact that 60L isn’t enough water for two showers!

By reducing the showers flow rate just a little, we now get by on a charge around of 60%. We do too thi

The API + Home Assistant

Another factor in favor of Mixergy is the fact that they offer an API for interacting with the tank. Once I had the tank installed and connected, I spend an hour exploring the API and seeing what sort of information it returned. I was able to add a basic integration into Home Assistant that returned some basic information about the tank’s status.

I’m hoping to get this added into the Home Assistant platform, but I’ve a lot of work ahead of me!

You can check this integration at

Final Thoughts

Overall, I’m very, very happy with the Mixergy tank. At this moment in time, I don’t have any figures to really see if I’m saving money.

My previous energy supplier, EON, only had bills available for three month blocks. For example, From 26th of April to the 26th of June, I used 112m3 of gas. I’m guessing we wouldn’t have had the heating on as we were into May, so basic division estimates around we used around 38m3 a month. Looking at my Octopus data, June for example, my gas usage was a little under 30. Of course, we had a gas hob in my previous property, which doesn’t factor in this time.

Of course, as we head into the winter, it will be ever harder to estimate, but my gas concern is over the entire house, and I hope the combination of the Mixergy tank and the Tado will reduce my overall gas consumption. Good for my pocked and good for my kid’s futures.

Moving a wall to create a bigger bathroom!

When we purchased our house, one thing that we didn’t really like was the small bathroom.

The layout is pretty standard for the type of house, with an airing cupboard and W.C. over the garage.

The existing layout of the bathroom

We knew we wanted to retain the bath, for the kids mostly, and we knew we wanted a separate shower. The airing cupboard was redundant as the hot water tank was moving down to the garage.

With that, we formulated a plan. Knock the walls between the toilet and the bathroom and move the wall between the bathroom and bedroom 4, removing the airing cupboard in the process. Bedroom four was going to become an office, so losing some space wasn’t a big deal. We did check it would still fit a single bed, in the event we needed to return it to a bedroom.

The plan (I’ve got no Paint skillz)

This seemed straight forward on paper, but we have some considerations:

  • Position of all the waste pipes for bath, shower, sink and toilet
  • Different floor levels between bedroom 4 and the bathroom

The waste and floor levels

We spoke to the several plumbers about the waste and were assured that once the toilet was on the outer wall, the rest of the waste was no issue as there was enough of a fall across the floor for the other waste.

The floor levels turned out to be simple too. The floor joists of the bedroom were sitting on a wall and provided no support to the bathroom. We knew we could safely cut back the floor joists, which was great news!

Getting Started

Getting started is always both exciting and terrifying. First thing, was removing the bath.

Our beautiful avocado green bathroom!
The bath, in all it’s glory!
Bath is gone, but we discovered a lot of rotted floorboards

My father in law helped with capping the water feeds going to the bath, so we could keep the water turned on.

With the bath taken out, we tackled the shower and the plumber removed the radiator and existing pipework. We left the sink in place as it was handy to have in the short term.

Taking down the walls

With the bath gone, it was time to take down the bedroom wall. I checked with both the builder and a structural engineer to ensure the wall wasn’t load bearing before we tackled it.

I enjoyed this part as I basically took a hammer to the wall 🙂

A whole in the wall 🙂

I then just cut and pulled off the plasterboard on the bedroom side, exposing the studwork, before moving to the bathroom side and finishing the job. It was more involved on the bathroom side as the tiles made it more difficult.

With one side removed, I did a time lapse of the other side being removed
All the plasterboard is gone!

With the plasterboard all removed, we had a much better understanding of the structure of the floor. We then picked the position for the new wall, which was under the “crank”, visible at the top of the picture. This made the bedroom smaller, but actually resulted in the window being centered in the room. It did leave a small “kick” in the bathroom, but we needed that as the electricians and plumbers had taken all their wires and pipes up from the garage below.

The plumber and electrician were great in how they ensure all pipes and wires remained inside this little space and made sure that we could move the wall without issue.

Removing the WC

With the bedroom wall taken back to the stud work, we then moved onto the toilet walls. We followed a similar process, removing all the tiles and plasterboard first. The loo was easy to remove, thankfully.

I put the timber in the wrong place 🙂

We then removed all the remaining studwork. I didn’t set my time lapse up for this unfortunately, but it proved a little tricky due to the way it was holding up part of ceiling. We took our time and slowly, but surely, we removed the rest of the timbers.

The wall is gone!

Then came time to cut back the joists. I must have measure this ten times!

With the joists cut back and all the walls gone, the bathroom did feel very big!

The new wall

Putting up the new stud wall was straight forward, with only one tricky part in the corner to deal with. We created a simple frame and then put the studs and noggins in, trying to space them out as best we could.

The finished product.

You can see in the image above the large timber along the top, which is holding up the roof. We were able to attach to that and the joists below. We then fixed one side into the wall.

The problem!

As no DIY can go without a problem, we hit ours. I’d chosen 38mm thick timber for the studwork, but during the first fix, the plumber pointed out that the concealed taps need a depth of 50mm. This mean they would protrude more than 10mm off the tiles!

The builder offered a simple solution, which was to use two sheets of plasterboard to make up the difference. I’ll post some pics of the bathroom once it’s tiled and fingers crossed this will work!

Plastering the bathroom

With the wall in place, we removed all the timber and took out the sink and remaining odds and ends.

Ready for the processionals!

The plasterer then boarded and skimmed the walls. We were tiling half height around the room, so we didn’t need it all skimmed. He also pulled down the old ceiling and put in some extra noggins to sure up the ceiling.

I also created a little channel in part of the stud work, which ran from the ceiling to the floor, essentially connecting the garage to the loft. I thought this might be handy in the future if I ever need to run more cables into the loft.

All boarded and plastered!

Sound Proofing

The builder mentioned it would be worth putting some insulation into the new wall to give some sound proofing. I hadn’t considered that but it was a good idea. The lack of a brick wall would have meant you’d hear everything between the two rooms.

The plumber had finished his first fix and the electrician had done all the wiring they required, so I was free to go ahead.

I picked up a roll of acoustic insulation from Wickes and installed into the walls. It was Knauf earthwool.

I take pictures so I know where everything is!

The acoustic insulation came in a roll, so I just measured and each strip with a pair of scissors. I pushed it in behind the cables and pipes.

The acoustic insulation in place.

Final plastering

Insulation done and wires pulled into the right places etc, the plaster came back and finished the wall.

Not very exciting!

All Done

When we stand in the (unfinished) bathroom now, we’re happy with our decision. It means we can have a free standing bath that we want and we can have a walk in shower.

Aside from the mistake with the studwork not being thick enough, the project went off without any major hitches.

Again, a big thank you to my brother-in-law and father-in-law for helping with the work and giving me the confidence to give it a go.

I’ll do another post covering the tiling and fixtures in the bathroom. I’m going to be putting down some underfloor heating too and I’ll do a post covering that.

Installing Konnected Alarm

Back in February of this 2020 (This post has taken me a year to write!), I preordered an alarm panel from

The idea with the Konnected alarm panel is that you can take your existing wired alarm and connect it to your smart home setup. It’s a very clever bit of kit, which I came across accidentally.

It took a little longer to arrive as I there were some delays in the manufacturing process, but a little box was delivered containing a power supply, some cables and two boards; the alarm panel and the interface board.

Interface board (left) and alarm panel (right)

Current Alarm

To see what I was dealing with, I opened my alarm panel after entering the engineer’s code.

My panel. Nothing labelled.

I was hoping to see something labelled, which was let me know what wires connected to what sensors. I knew how many door and motion sensors I had and that lined up to the number of zones being used. Unfortunately, I had no idea what was connected to what.

After reading the manual, I discovered that tamper detection was disabled.

Using my multimeter I had my wife go around the house, triggering the motion sensors. Oddly, some of them didn’t seem to have any effect. They were getting power as the lights turned on, but no voltage change was registered at the panel. To help me understand what was going on, I opened one of them up.

The fucking sensor circuit wasn’t even connected. HOLY FUCK. I mean HOLY HOLY FUCK. I connected that one and the panel showed the voltage change as expected.

Sensor circuit shorted with resistor, which would normally be okay if using tamper detection

Opened another sensor to find the circuit shorted with a resistor. Normally this is fine when using resistance based tamper detection, but my panel wasn’t configured for this.

I double checked the Zones configured and found that two of them weren’t even used. A few clicks here and there and that was rectified. A walkthrough confirmed all the zones were wired up and responding.

Not only were some of them not wired up, others weren’t even included in the panel.

I had to go outside at this stage because my language wasn’t suitable for the ears of children.

After putting everything right, I proceeded to actually connecting the Konnected Alarm Panel.

Installing the Konnected Interface Panel

After calming down and having labeled the various zones, I started installing the Konnected Interface Panel.

Pulling in the interface cable
Inserting the reference voltage wires into the panel
Adding the zones

Thankfully, this step was pretty straight forward and didn’t take very long. It was a case of adjusting the little resistors until the red light went off. When the circuit was triggered, the light would turn on.

The Alarm Panel itself. I left this outside the panel so it had a good WiFi connection

Setting up Home Assistant

I use Home Assistant for most of my Smart Home stuff and Konnected was fully supported with its own Integration.

Once I had connected the Panel to the WiFi using the iPhone App, the Home Assistant setup pretty much took care of itself.

You indicate which zones are used and what they are
The sensors configured on my dashboard


The Konnected hardware is really solid and was really easy to setup. As I understand it, they are a very small company, but what they’ve done here is really clever. Setup was faultless and it’s never gone wrong.

One of the most interesting uses of this product is that it can enable remote arming/disarming of your alarm (if the panel supports it). I never got around to doing this, but the idea is simple. You install a small relay, connected to the Konnected panel. By turning on and off the relay, you can use the Key Switch feature of a standard alarm panel to arm/disarm it. Home Assistant supports this via it’s Alarm extension, but I think it would only really work if this could be used in tandem with the existing keyboard panel. It’s possible to have your panel emit high voltage via one of the Zones, but as all the zones on my panel are full, I couldn’t try this out.

If you have a wired alarm and you’re looking to make it smart, I’d highly recommend this product.

LED Clock, Part III: Alexa?

Whilst I await delivery of more WS2812 LEDs, I wanted to start investigating how I can leverage the Alexa Gadget Toolkit integration, so that when I set a timer using Alexa, my LED clock can show the countdown.

Amazon make an Echo Wall Clock which does just that.

I found an open source project called nixie-timer, which had an Alexa Integration and was written for the ESP32

After a few hours of digging around, I had a very basic idea of what the code was doing. I started by trying to replicate the flow using the OOB ESP-IDF.

After many, many, many hours, I realised that I really didn’t know what I was doing, so I went back to the nixie-timer code and added the btstack ESP32 port into my code. This meant I could at least follow the samples provided.

I began trying to run some code myself, but the Bluetooth radio wouldn’t even start. I then took one of the BTStack examples and used that as a starting point. At least they worked.

After more hours, I got the code running, with the occasional kernel panic as I figured stuff out..

Eventually, I got it responding to the Alexa queries and receiving the messages for wakeword, timeinfo and timer.

Exactly what I wanted to achieve. I’m not 100% sure I know what’s going on, but I’ll get more understanding over time.

For starters, I want to use timeinfo to set the internal clock and then I want to use the timer command to display the countdown of an alexa timer.

Now that I’ve moved back to ESP-IDF, I’m going to have to bin my existing Arduino code which powers the LED strip and look at how to make that work.

Happy with progress.

My other WS2812 strip arrived the other day, so I’ve got to look at cutting and connecting the two strips to form one long 180 LED strip. Then I get get a feel of the overall diameter and cut some MDF to house the damn thing.

LED Clock, Part II: Tick, Tock

In Part I, I covered the basics of controlling the LEDs. This covered the hands of the clock.

The second part of my investigation covers time and how to make the clock tick. The ESP 8266 I am using for this prototyping work doesn’t include a Real Time Clock, so I was required to add an external one.

Connecting the RTC module to my Wemos D1

With the module connected, I turned to the code. I’m using Arduino for this as it’s easy to prototype and there are lots of libraries!

#include <Wire.h>      //I2C library
#include <RtcDS3231.h> //RTC library

Setup is achieved in a couple of steps. To get me started, I just set the time.

RtcDS3231<TwoWire> rtcObject(Wire);

void setup()


  RtcDateTime currentTime = RtcDateTime(20, 04, 22, 0, 0, 0);


This starts the clock. In reality, as the module I’m using is battery backed, this step should only be performed once, but I found that having a fixed “time” would make debugging the lights a little easier.

I plan to revisit this code to ensure that I grab the current time from the internet when required.

Using the time is achieved by reading it.

void loop()

 //get the time from the RTC
  RtcDateTime currentTime = rtcObject.GetDateTime();

  char str[20]; //declare a string as an array of chars

  //print the time for debugging.
  sprintf(str, "%d/%d/%d %d:%d:%d", 
          currentTime.Year(),       //get year method
          currentTime.Month(),      //get month method
          currentTime.Day(),        //get day method
          currentTime.Hour(),       //get hour method
          currentTime.Minute(),     //get minute method
          currentTime.Second()      //get second method

Each part of the time is available in a named method, so to get an idea of where my LEDs should be, I grabbed the hour, minute and second.

// Fetch the current time
hour = currentTime.Hour();
minute = currentTime.Minute() * 2;
second = currentTime.Second() * 2;

I multiply them as I’m using a strip with 120 LEDs on it.

Building on my LED control code, I make the clock tick by turning off LEDs in the right place.

fill_solid(leds, NUM_LEDS, CRGB::DarkGreen);

// Fetch the current time
hour = currentTime.Hour();
minute = currentTime.Minute() * 2;
second = currentTime.Second() * 2;

// Hour
leds[hour - 1] = CRGB::Black;
leds[hour] = CRGB::Black;
leds[hour + 1] = CRGB::Black; 
leds[hour + 2] = CRGB::Black;
// Minute
leds[minute] = CRGB::Black;
leds[minute + 1] = CRGB::Black;

// Seconds
leds[second] = CRGB::Black;
leds[second + 1] = CRGB::Black;;

I use multiple lights to make it more visible. With it now ticking, I hastily assembled the LED strip into a circle using cardboard and sellotape. I ran a length of alarm cable from the strip to the breadboard. To see it in action, I sellotaped it to the wall!

After letting it run for quite a while, I was surprised the hour “hand” hadn’t moved. It took my wife to point out that there aren’t 60 hours on a clock face 🤣

I’m pleased with these initial results.

As for my next steps, I’m not 100% sure. I’ve got to refine the “hands” code. I also need to think about how to mount it on the wall. I suspect it won’t be self contained and I’ll probably have a control box somewhere.

I’ve ordered another strip from the excellent Pimoroni and this will, I hope, let me add another 36 LEDs to the strip, taking it up to 180, which I think will give me a nice resolution.

I’ve got to think about power too. My estimate is that I’ll need around 3.5A to power the whole affair.

Expect another blog post soon!

Den – Installing a smart socket

As part of the Den Automation range, they ship a 2 gang smart socket. It has the ability to be switched on remotely, to determine what’s plugged in and to even monitor the energy usage of the item plugged in.

I pre-ordered a few of these units as I saw them being used to turn my TVs off at the wall, rather than use their own standby. I currently achieve this using a few Sonoff Plugs flashed with Tasmota firmware. These are great, but are ugly as hell.

To get the ball rolling, I wanted to test out Den’s Smart Tag feature, the one that knows what is plugged in. I thought this best on a socket that is regularly used. For me, that’s one in my bedroom where my wife plugs in her hair dryer and hair straighteners. I thought this would be a good testing ground!


A classic, but dumb, double gang socket!
Simply wiring with two lives, two neutrals and two earths
The inputs on the Den Socket
The socket installed and looking good!

With the socket installed, I tested the manual operation to ensure everything was okay.

The app doesn’t really deal with empty screens all that well!

The pairing process starts the same as the switch. Hold the Den button for a few seconds until the light starts blinking and start the process in the app. It paired very quickly.

Once it was connected, it showed that two sockets individually. Tapping the little socket flicked the physical switch on and off. The sockets don’t have the same 45 second recharge time that the light switches have since these sockets have constant power. A limitation of the lack of neutral in UK light switches. Den still deserves credit for solving that in their light switches.

Once I’d finished this part, the app prompted me to add some smart tags.

The Den Socket comes with five Smart Tags. You can see this in my unboxing post.

I found my wife’s hair dryer and straighteners and popped a tag onto each plug.

I think plugged in one of them.

The part at the bottom is interesting – if the appliance is left on for a specified number of minutes, Den can turn it off automatically. They use hair straighteners as their example for this, so I turned it on, setting ten minutes.

I repeated the process for a hair dryer.

These two items then show up in the Appliance section of the app. It knows *where* it’s plugged in and when something is unplugged.

I haven’t tested the notify if left on feature yet, so I’ll post something when I get a chance to test that.

I was also disappointed to find out that the energy usage feature isn’t currently available. I would have expected them to include something pretty basic (current watt consumption or similar). I’ll update this post when they release that.

I have two more of these units to install. The next one goes onto the TV in the sitting room. I’m going to pair my Den Remote with those sockets, making it easier to control the TV.

I’ll do another post on that in the future.