Disney Minus

A screenshot of our Disney + account setting showing it cancelled.

Last week, we cancelled Disney+. Our annual subscription was due to renew, and at over £100 for the year, we could no longer justify it.

We’ve had a subscription ever since Disney+ launched in the UK, in the early days of lockdown in 2020. In fact, before then we had a subscription to DisneyLife, which was Disney’s UK-only streaming service for video and music, and used to cost £5 per month. Over time, Disney+ has got better, especially now that content from 20th Century Fox is on there.

But we just don’t watch enough of it. When we signed up to Disney+, there was only one price tier at £7.99 per month or £79 per year. Whilst that was more expensive than DisneyLife, there was more content available so it was worth it. Now there are three price tiers, and the most expensive is £10.99 per month, or £109 per year. That’s more than double what we were paying just five years ago. Whilst there is once again a £5 per month tier, it’s with adverts, and we don’t want those.

Like many kids, our eight-year-old seems to just want to watch YouTube Kids now. It’s something we’ve tried to resist for years, but apparently watching home-made videos and Minecraft walk-throughs is far more interesting than the professionally-produced content that we were paying for. We’ll keep paying for Netflix, as you can download content onto an iPad to watch offline. We tend to clip our eight-year-old’s iPad into a stand fixed to the back of the front passenger seat for long car journeys.

We’ve had Amazon Prime in the past, shared using Amazon Household with another family member, but we don’t have this now. Again, it’s getting more expensive, and we’d rather avoid the adverts. And whilst we’ve had free trials of Apple TV+ and Now TV, we’ve never paid for these beyond the trial period. We also don’t pay for a TV package, and just have Freeview and Freesat for live television.

I guess we’ll just re-subscribe to these from time-to-time when there’s something we actually want to watch.

I do find it odd comparing streaming video with streaming music. There’s a handful of music streaming services – Spotify, YouTube Music, Amazon Music, Deezer and so forth – and for the most part, they all have the same music. Yet with streaming video services, most shows are on one or two at best, and many or exclusive to one service.

AdGuard Home

A screenshot of the AdGuard Home web interface running as a Home Assistant addon

I’ve recently started using AdGuard Home as a way of blocking advertising and tracking on my iPhone and iPad, when on wifi at home. It works as a replacement DNS server, and re-routes requests to domains known for advertising and traffic to a DNS Sinkhole.

Unlike a browser-based ad blocking extension, such as uBlock Origin or Firefox Focus, by intercepting DNS requests AdGuard Home can stop tracking in all apps. That includes built-in browsers in apps, such as the Facebook app, as well as any app analytics tools. As I have an almost 6 year old 6th generation iPad that is getting rather slow, not having to load additional advertising and tracking scripts has boosted its performance and battery life.

Installing AdGuard

To run AdGuard Home, you’ll need a spare computer that can run all the time. A Raspberry Pi is ideal for this, as it’s small, low energy and can be run without a keyboard and mouse. You can also use Docker, Snap, or do as I do and run it as a Home Assistant addon. Indeed, once it’s set up, Home Assistant will detect it and offer to install an integration.

You can then adjust your router’s DNS settings, so that every device in your home uses your new AdGuard DNS server. This will block adverts and tracking across all of your devices if you want it to. I’ve chosen not to do this; whilst many tracking sites are a privacy nightmare, I also use sites like Quidco to get cashback. I use Google Chrome with no privacy features turned on when making purchases that could be eligible for cashback; this earned me over £80 when we switched our broadband supplier to Vodafone recently.

For me, just having it running on my mobile devices when at home on wifi is enough.

Whilst AdGuard offers other tools that are paid-for, AdGuard Home is free and open source.

Pi-hole

Pi-hole is similar to AdGuard, in that it is also a DNS-based ad blocker. As the name suggests, it was intended for use on Raspberry Pi computers, but can be installed on other devices. I had investigated installing this, but came across AdGuard as an easier alternative. Pi-hole is also open source, but development seems less active.

Advanced features

For the most part, once you’ve installed AdGuard Home and set it as your DNS server, you don’t need to do much else. However, you can enable DNS Encryption if you want – especially if you want to access your AdGuard server from outside the home. You can also use AdGuard Home to block adult content, or access to certain web sites, and configure this for individual devices. So, I could enable parental controls on our eight-year-old’s tablet using AdGuard without restricting my devices.

Readly and PressReader

A screenshot of the Readly app on an iPad.

When it comes to reading magazines on a computer or tablet, you may well have heard of Readly, seeing as it’s widely advertised. But there’s a competitor, PressReader, that’s also worth considering. I’ve used both, and so here’s a comparison of the two.

Fundamentally, both services let you read as many digital magazines (and some newspapers) as you like, for a flat monthly fee. Both claim to offer thousands of titles.

Readly

As mentioned, Readly is probably the best known, as it’s advertised in lots of podcasts and through other third parties. Indeed, if you fancy trying it, you may find that a two or even three month free trial is available with a bit of searching (as opposed to the standard one month free trial). Normally, it costs £9.99 per month and claims to offer over 7000 titles to read.

You can be notified of new issues, and have these automatically download when you’re on wifi for offline reading. Pages in magazines can be bookmarked, and there’s a ‘mobile view’ which reformats pages for easier reading on smaller screens. I use this a lot; though I read magazines on an iPad, it simplifies the formatting and reduces the amount of pinch zooming needed.

A screenshot of the PressReader app on an iPad. It's an alternative to Readly.

PressReader

I hadn’t heard of PressReader until a couple of months ago. It claims to offer over 8000 titles to read; many of these seem to be the same as Readly but it also includes some additional magazines like The Economist. There’s also some non-UK newspapers like the Wall Street Journal and New York Times.

Like with Readly, magazines can be downloaded for offline reading, and it’ll reformat pages too. Indeed, on the whole it does this better than Readly, although sometimes it cut articles short. It also handles light and dark mode better on iOS.

Pricing is where things get a little more complicated. There is a free tier available, with around 500 magazines available to read. The ‘premium’ subscription, with unlimited access to all of its titles, is much more expensive than Readly – £27.49 per month, with only a 7 day free trial. So, in a nutshell, PressReader is almost three times more expensive than Readly.

But it’s not quite that simple. Many local libraries offer free access to PressReader through its HotSpot system. Indeed, this is how I found out about it. In West Yorkshire, Bradford, Calderdale, Kirklees and Wakefield libraries all offer complementary access, as long as you have a library card with one of them. Sorry Leeds residents, but your council doesn’t offer this, although it is available for Leeds Beckett University students and The Leeds Library members. Some hotel chains like Marriott offer this too.

The catch is that you may need to re-authenticate with your library on a regular basis. Where I am in Calderdale, this is every 30 days but could be as little as 24 hours in some places.

So do I use Readly or PressReader?

If it wasn’t already obvious, I used Readly for quite some time. However, when I found out that PressReader was available for free, I switched last month and cancelled my Readly subscription.

I had been contemplating cancelling Readly in any case. When I first subscribed, I was regularly reading both Rail and Modern Railways, and previously had subscriptions for each. Readly was slightly more expensive per month, but offered a better reading experience. However, Modern Railways hasn’t been available from Readly since the beginning of last year, or indeed any other unlimited magazine platform.

Something to consider is that, when you cancel Readly, you’ll get a special offer to try to keep you as a customer. In my case, this was a 40% discount for three months, if I remember correctly. So if you do subscribe to Readly, maybe try cancelling it once a year to see if they offer you a discount.

Pocketmags Plus+

I thought it would also be worth mentioning Pocketmags Plus+ here as a third alternative. Pocketmags Plus+ doesn’t offer nearly as many magazines – around 600, rather than thousands – but it does have a few that aren’t available on the other platforms. There’s no free trial but the first month is 99p, and then £9.99 thereafter.

Nginx Proxy Manager

A screenshot of nginx proxy manager

I’ve recently started using Nginx Proxy Manager to act as a reverse proxy for the various web services that I have running on my Raspberry Pi. It’s a frontend to the nginx web server and makes setting up reverse proxies and SSL access really easy.

You may remember that I’ve used SWAG for this before, to enable HTTPS access to my Home Assistant installation. SWAG is find if you’re using Home Assistant Core or Container, but having switched to Home Assistant Supervised recently, I needed a new solution. Like SWAG, Nginx Proxy Manager can be run in Docker, but it’s also available as a Home Assistant addon.

The main benefit of Nginx Proxy Manager over SWAG is that it has a web-based UI, shown in the screenshot above. This makes setting up new proxy hosts really easy, as it has a nice and simple interface. Whilst SWAG includes pre-built configuration files for many services, there’s no interface available other than editing text files.

Nginx Proxy Manager will also manage SSL certificates. You can either import ones that you purchase yourself, or it will manage the process of acquiring and renewing Let’s Encrypt certificates.

As well as managing Home Assistant, I have Nginx Proxy Manager looking after Calibre-web and Nextcloud.

A brief explanation of reverse proxies

Apparently, you’re supposed to ensure that blog posts are at least 300 words nowadays, otherwise Google ignores it. So, here’s an explanation of why you should set up a reverse proxy server if you’re hosting services like Home Assistant at home:

  1. No port numbers. When you set up something like Home Assistant, you’ll end up with an address like http://192.168.0.1:8123. A reverse proxy will allow web browsers to connect on the standard web ports (80 for HTTP, 443 for HTTPS), which looks nicer and is more predictable. It also means you don’t have to forward lots of arbitrary ports on your router.
  2. SSL certificates. If you’re running a device on your home network, then ideally you only want to allow secure connections to reduce the risk of your personal data being intercepted. Self-signed SSL certificates are not ideal, as most web browsers issue dire warnings for web sites that use them. As not all web applications support SSL certificates natively, a reverse proxy can handle this for you.
  3. Web application firewall. By making all requests go via a proxy, the proxy server can filter out malicious traffic. Nginx Proxy Manager includes a ‘block common exploits’ mode, and you can also filter IP addresses. For example, you may wish to only allow access to certain IP addresses.

Installing in Home Assistant

If you’re running Home Assistant Supervised or Operating System, then you’ll need to install the Nginx Proxy Manager addon. It’s available from the Community Addons repository, which should already be available to you – you won’t need to add it separately. It’s not to be confused with the official ‘NGINX Home Assistant SSL proxy’ addon; this doesn’t include an interface and only enables a proxy for Home Assistant, and not for any other services. Indeed, if you’re already using this official addon, you’ll need to stop it from running first, as otherwise you’ll have a port conflict.

Once set up, you can access the web interface at http://[your IP]:81 . I suppose I could probably set up a reverse proxy host to get rid of the port number, but I don’t see a good reason to enable remote access to it.

One final thing to add is that the user guide for Nginx Proxy Manager isn’t great. It covers setup, but there’s very little help for configuring proxy hosts. The web interface is pretty straightforward so arguably detailed instructions aren’t necessary, but a little more help would be good.

GoblinTools

A screenshot of GoblinTools that has taken the task of 'writing a shopping list' and broken it down into easier subtasks

If you sometimes find doing things overwhelming, or need help converting some disparate thoughts into something coherent, then GoblinTools may help you. It was recommended to me by someone on Mastodon some time ago; sadly I’ve lost track of who tooted or boosted it onto my timeline because it was a while ago and I’ve been procrastinating about writing about it. Which is highly ironic for a productivity tool that is designed for neurospicy people.

GoblinTools is an AI-powered tool. The web version is free, with no ads, or you can pay a single solitary US dollar for the apps on iOS and Android. The tools it offers are:

Magic To-do

This is the first tool that appears on the home page. Type in a task, and the AI will try to break it down into smaller sub-tasks. In the screenshot, I’ve written ‘write a shopping list’, and it’s been split into 11 more simple tasks. These include ‘gather a pen and a piece of paper’, ‘checking your fridge’ and ‘asking housemates for anything they need’. The idea is that you put in a task that you know you must do, but are finding overwhelming. There’s also a slider for ‘spiciness level’ – if you are having big issues with executive function, then you can push this up further to break down tasks even more.

Formaliser and Judge

The Formaliser tool takes some text that you write, and tries to re-format it in a more formal way. For example, it can take the text ‘tell the boss to go fellate himself if he thinks I’m coming in tomorrow’, and replace it with ‘Please inform the boss that I will not be able to come in tomorrow.’. You can also make text less formal, more passionate, more sarcastic and so forth. As someone who tends to write very concise emails, the ‘more sociable’ option may be helpful for me to sound less cold.

The Judge tool is a tone analyser. Type in some text, for example from an email, and it’ll give you an interpretation of the tone. Here’s an example

Based on the given text, “No, I regret that this would not be possible,” it appears to come across as straightforward and polite. The tone seems slightly regretful or apologetic due to the use of the word “regret.” It suggests that the speaker is declining a request or denying a possibility in a respectful and considerate manner. Overall, the emotional tone is one of reservation and disappointment about the situation.

Estimator and Compiler

Estimator is a tool which offers an estimate of how long a given task will take. Although the example I offered was ‘Write a 300 word blog post whilst feeling very tired and with very little inspiration’ which it suggested 1-2 hours, which for me is overly pessimistic. This blog post took about half an hour with breaks to write.

Compiler is designed to accept an unordered brain dump and convert this into a list of tasks, which can then go into GoblinTools’ Magic To-do tool.

Chef

The Chef tool is designed to take a list of ingredients and cooking utensils that you have, and come up with a recipe that you can cook. It gave me this based on some random ingredients that I provided:

Dish: Cheesy Peanut Butter Pasta Salad
Serving Size: 2

Ingredients:

  • 200g pasta (7oz)
  • 1 cup rice, cooked (195g)
  • 4 tablespoons peanut butter
  • 1 cup cheddar cheese, grated (115g)
  • 1/4 cup sundried tomatoes, sliced (30g)
  • Salad greens (lettuce, spinach, or your choice)
  • Salt and pepper to taste

Instructions:

  1. Cook the pasta according to the package instructions until al dente. Once cooked, drain and set aside to cool.
  2. In a large mixing bowl, combine the cooked rice, peanut butter, cheddar cheese, and sundried tomatoes.
  3. Add the cooled pasta to the mixing bowl, and toss everything together until well combined.
  4. Season with salt and pepper to taste.
  5. Serve over a bed of fresh salad greens.
  6. Enjoy your Cheesy Peanut Butter Pasta Salad meal for two!

I’m not sure how edible this would be, although it looks like GolbinTools avoids the issue that a previous AI recipe generator had where it suggested making chlorine gas; adding ‘bleach’ to the ingredients resulted in a note at the end saying ‘Ensure that the bleach ingredient is excluded from any food preparation due to its toxicity.’

To me, this seems like a responsible and genuinely useful use of artificial intelligence. AI should be a benefit to society, and helping people do things better can only be a good thing. A lot of AI is misused, but I can see myself using GoblinTools at times when my executive function is at its lowest.

A basic Home Assistant automation

A screenshot of Home Assistant showing an automation to turn off a smart plug after 18 hours

One of the biggest benefits of running Home Assistant in your home is its powerful automation tools for controlling your smart devices. In this example, I have a smart plug socket which I want to run for 18 hours, and then automatically switch off. This is the smart plug that we use for our heated drying rack, and it ensures that the rack doesn’t continue heating for longer than necessary, to save energy. As I run Home Assistant on a Raspberry Pi 4, it only uses 15 watts of power, compared to the few hundred watts that the drying rack requires.

Automations in Home Assistant have become much easier in recent releases. In times gone by, you’d have to write YAML scripts to automate your devices, but now there’s a relatively straightforward interface. Generally, automations work on the principal of ‘if this, then that’ – a bit like IFTTT, but it runs in your own home.

Tuya me, to you

For my automation, I use the trigger of the smart socket being turned on. In my case, this is a Tuya wifi-enabled smart plug, which I’ve called ‘Cuthbert’. We have four Tuya plugs, all with silly names like Cuthbert, just because. Tuya are a white label manufacturer, and so the brand names on the plugs vary despite them being exactly the same. I wouldn’t necessarily recommend them, as presumably every time you turn them on and off, your request goes via Chinese-controlled servers. I would probably buy Matter-enabled plugs instead now but they work fine. Plus, the recent 2024.02 release of Home Assistant massively improves Tuya support and no longer requires you to create a developer account, which is nice.

Automation actions

Anyway, having selected the ‘When’ event, we now need to specify the ‘Then do’ actions to take. First of all, we need a time delay, otherwise as soon as the socket is turned on, Home Assistant will turn it off again. The ordering of actions is important, as I found out the hard way; I originally had the delay after the command which meant that the socket just turned off straight-away. So, we specify a delay and then the action to turn the socket off.

The third action is optional, but it just sends a notification to my phone to tell me that the automation has completed. I’m using the Home Assistant Companion app but you could use an app like Pushover, or trigger an email.

This is a really simple automation, but you can create more complex ones. I’m hoping that, at some point in the future, we’ll have some smart blinds in our kitchen, and I’ll be able to use Home Assistant’s sun integration to open and close them at sunrise and sunset.

How to join a preferred Thread network in Home Assistant

A screenshot of Home Assistant's Thread Integration showing two Open Thread Border Routers on the same network

If you use Home Assistant, and have an existing device that includes a Thread Border Router, then it should automatically add the Thread integration so that it can communicate with Matter devices. Some of Google’s Nest Hub and Nest Wifi devices include Thread, as do some of Apple’s newer Homepod devices and some of Amazon’s Echo devices. Because they broadcast their existence on your home Wifi network using mDNS, Home Assistant can detect their presence.

What Home Assistant can’t automatically do, however, is join these existing Thread networks. As this article from The Verge states, there isn’t a mechanism for sharing Thread network credentials between devices. That means that you can end up with a home that has several devices, all with the own Thread networks that don’t talk to each other, and your Home Assistant device not able to talk to any of them.

Hiding on your phone

The good news is that Home Assistant can access Thread network credentials from your phone, and this should allow you to join one of your existing Thread networks. In the above screenshot, I have my third party Thread dongle attached to the existing Nest thread network used by my Google Nest Wifi system.

The reason why I’m writing this blog post is that it’s not obvious how to enable Home Assistant to join a Thread network that it doesn’t have credentials for. Think of the Thread network credentials as being a bit like your Wifi password (or ‘pre-shared key’ to give it its official name). However, whilst you’ll usually either use whatever password is printed on your router, or a short password you set yourself, your Thread devices will come up with their own long alphanumeric key. And then, they’ll keep it a secret.

Thankfully, your phone should have this key – in Google Play Services on an Android device, and iCloud Keychain on an iOS device. And, thankfully, the Home Assistant Companion app for these platforms can access these credentials and provide them to Home Assistant, allowing you to connect to your existing Thread networks.

Matching the manufacturer to the network

But there’s a catch:

  • If you have a Google Wifi or Nest Hub device, then you’ll need an Android device to access the credentials.
  • If you have an Apple HomePod, then you’ll need an iOS device to access the credentials.

This is why I found it difficult to join the Thread network that my Google Wifi devices had created. I’m an iPhone user, and so it wasn’t able to access the credentials. They’re not available to the Google Home app on iOS, for example.

Thankfully, my wife has been a stubborn Android user for as long as I have been a stubborn iOS user. So, I just needed to ‘borrow’ her Android tablet, install the Google Home and Home Assistant Companion apps, and log in to both. Then, on the Home Assistant app, navigate to the Thread settings where an ‘Import Credentials‘ button appears. Once I tapped this, Home Assistant was able to join the Thread network created by my Google Wifi devices. Had I owned a HomePod, the process would have been similar.

One Thread network to mesh them all

Thread is a mesh network protocol, and having all devices on the same network is beneficial. Each additional device helps maintain the reach of the network. So it’s a shame that new devices just seem to set up their own networks, and don’t bother to try to join a Thread network that may already exist. Some of this is down to the Connectivity Standards Alliance, who haven’t specified a way of exchanging Thread network credentials. But it’s also worth noting that Matter and Thread are still very new standards. By comparison, Zigbee was designed in the 1990s and standardised over 20 years ago.

A few weeks ago, the Home Assistant developers hosted a livestream about ‘The State of Matter’, and there’s a useful summary here (which is good as the live stream was the best part of three hours). There’s still work to be done with supporting Thread networks in Home Assistant.

Sonoff Zigbee and Thread/Matter dongle

A photo of the Sonoff ZBDongle E which offers Zigbee and Thread support

If you’re a Home Assistant user, and want to connect your Zigbee and Matter devices, then one option to consider is this Sonoff ZBDongle E. I bought one a couple of weeks ago, and it seems to work fine with my Home Assistant setup.

One thing you will notice if you view its Amazon product page (sponsored link) is that there’s no mention anywhere of Thread or Matter. Out of the box, this Sonoff dongle will only work with Zigbee devices. However, if you follow this handy guide from Smart Home Scene, you can flash the dongle with custom firmware, which adds support for Thread as well. As I mentioned in my recent is there a Zigbee network in your house blog post, both Zigbee and Thread are protocols in the 802.15 family.

The firmware flasher is actually browser-based, and so there’s no need to download additional software. However, it’ll only work in Edge or Chrome, as seemingly Firefox doesn’t have away of allowing web pages to access serial ports.

Note that the guide linked above is for Home Assistant Supervised and OS. If you’re running Home Assistant as a Docker Container, then you’ll need to install this Docker Image as well. I haven’t tried it myself, as I run Home Assistant Supervised, but this seems to be the way to get it to work.

Once it’s all set up, you’ll be able to add both Zigbee and Matter devices to your Home Assistant installation.

The Sonoff dongle cost £22 when I bought it earlier this month, although at the time of writing the price has been hoicked up to £30. That makes it only £1 cheaper than the Home Assistant Skyconnect, which is the official dongle. Therefore, my recommendation of the Sonoff dongle being a cheaper option no longer applies and it’s up to you which one to buy.

Finding alternatives to Goodreads

Screenshot of my profile on thestorygraph.com which is a potential alternative to Goodreads

I’m a little late to the Goodreads review scandal. Late last year, an author whose debut book was due to be published, wrote several fake reviews of books by other authors that were due out at the same time, and posted positive fake reviews of her own book. Unfortunately for her, she was found out, and dropped from her book deal.

But, as the above-linked New York Times article states, Goodreads isn’t in a good place right now. It’s been around since 2007, although I joined in 2016 and first blogged about it in 2017. This was after Amazon’s purchase of Goodreads in 2013.

In the almost eight years that I’ve used Goodreads, it has barely changed. There have been annual Readers Choice Awards, and the annual reading challenges, but other than a change to book information pages in 2021, it feels like Amazon has basically abandoned it. The iOS app gets ‘bug fixes and performance improvements’ on a regular basis, but I suspect that these are updates to downstream code libraries and not a result of actual work by Goodreads developers.

Its recommendations of new books to try have always been terrible, and it’s reliant on volunteer librarians. Which wouldn’t be an issue if Goodreads was a non-profit, but it’s owned by one of the world’s most valuable conglomerates. Giving away labour for free to such enterprises doesn’t sit well with me, even if it’s something I’ve done a lot in the past.

So, Goodreads both has a problem with fake reviews, and a lack of interest from its owner. So what are the alternatives?

The Storygraph

I tried out The StoryGraph about a year ago. You can import your reading history from Goodreads during the onboarding process, and its recommendations are much better, as its design. There are mobile apps, reading challenges, and giveaways where authors can offer limited free copies of their books, presumably to generate some reviews.

The StoryGraph does have social features like Goodreads, but there doesn’t seem to be an easy way of importing contacts from elsewhere. Quite a lot of my friends use Goodreads and I’m sure some of them use The StoryGraph too, but I don’t know how many because I can’t seem to find them. If there’s an ‘import contacts’ option in the iOS app, then I haven’t found it.

Bookwyrm

Another site that I’ve heard about, but haven’t yet signed up to, is Bookwyrm. It uses ActivityPub and is therefore part of the Fediverse, so you can follow people using Mastodon clients, for example. You can use the bookwyrm.social instance, but you can also install and host it yourself. Importing from Goodreads (and other services) is supported.

I’m aware of some friends who use Bookwyrm, so it may avoid the issue I’m having with The StoryGraph where I can’t find my existing contacts.

And there are many other Goodreads alternatives

I found this list of Goodreads alternatives, which mentions 31 (!) sites that you could consider. Bookwyrm and The StoryGraph are both listed, as is LibraryThing which actually pre-dates Goodreads.

I suppose it will come down to what my existing friends use, and getting large numbers of people to change platforms happens rarely. We’ve seen many challengers to Twitter rise and fall over the years (Andy Baio posted an excellent eulogy of Ello this week) and it’s only because X/Twitter has become utterly terrible in the past 15 months that a significant number of people have moved to the likes of Bluesky and Mastodon. And some are still left behind.

If we follow that model, then Goodreads would have to become significantly worse, before people start looking for alternatives en masse. Right now, it’s just stagnant; clearly not a priority for Amazon, but not so badly broken as to require much of an intervention. I certainly can’t see it joining Bookwyrm in the Fediverse.

How to: install Home Assistant Supervised on a Raspberry Pi

Screenshot of Home Assistant showing Supervisor installed
Important note: As of the June 2025 release of Home Assistant, the 'Supervised' installation method has been deprecated, and will be unsupported by the end of 2025. I'm keeping this guide online for those interested, but please consider installing Home Assistant Operating System or Container instead, which are the two methods that will be supported in future.

There are several ways to install Home Assistant. The easiest way (besides buying a dedicated device such as Home Assistant Yellow or Green with it pre-installed) is to use what is known as ‘Home Assistant Operating System’. This bundles Home Assistant with a system manager called Supervisor and an underlying Linux distro.

There are other methods, and I’ll probably write another blog post comparing them all later. Probably the most difficult is Home Assistant Supervised, which includes the Supervisor from Home Assistant OS (HAOS), but with a self-administered Linux operating system. I’ve got over 10 years of experience working with Debian Linux, as this blog runs on it, but it took some trial and error on my part to get working.

By setting up Linux yourself first, you gain more control over your system than is offered by HAOS. For example, whilst you can enable shell access on HAOS, it’s a limited user account with no root access. And, bizarrely, HAOS doesn’t support USB mass storage devices. So even though you can install Plex from within HAOS, if your media is on an external hard disk, you can’t grant Plex access to it.

At the weekend, I set up my Raspberry Pi 4 with Home Assistant Supervised. Here’s how I went about it.

Note: This guide was current in January 2024. The instructions below may not necessarily work on future releases of Debian and Home Assistant.

Step 1: Installing Debian 12 (Bookworm)

I strongly advise you to start with a fresh Linux installation; trying to bolt this onto an existing Linux image may break other things. Home Assistant is designed to run on Debian 12 – and not Raspberry Pi OS, although I’ve seen some forum posts from users who are using this. For this guide, I’m using Debian 12.

For the most part, you can simply follow the instructions on this guide to flash an SD card and complete the initial setup. The newer versions of the Raspberry Pi imager may ask if you want to configure Wifi and SSH access for your image; don’t bother, as this won’t work on Debian. The other thing to bare in mind with this guide is the Wifi settings, where you un-comment several lines in a configuration file if you’re not using an Ethernet connection. This is fine at this stage, but you’ll need to re-comment those lines later.

The other thing that I did in addition to this guide was type in dpkg-reconfigure tzdata and set my timezone to Europe/London rather than UTC.

You can stop following the guide at the point at which it tells you to install a graphical user interface, as this isn’t needed for Home Assistant. Of course, if you’re planning to use this device for other things and a graphical UI would help you, then follow the whole guide by all means.

Step 2: Install the necessary additional packages for Home Assistant

Here, we start following this official guide from HA. You’ll need to install various additional packages to enable the Home Assistant Supervisor to run.

Once installed, I found that I had to edit the /etc/NetworkManager/NetworkManager.conf file and change managed=false to true. This was also the point where I needed to re-comment the wifi settings. Without doing this, my Raspberry Pi wasn’t able to connect to the internet for the next step.

Step 3: Install Docker

As per the official instructions, run curl -fsSL get.docker.com | sh to install Docker. This took quite a while, so maybe go and grab some lunch.

If you’re getting an error about being unable to resolve get.docker.com, then go back to step 2.

At this point, I found it easier to continue the installation remotely over SSH, rather using the keyboard and a screen.

Step 4: Install the OS Agent

Next, you’ll need to install the latest version of the OS Agent. For a Raspberry Pi 3 or later, you’ll need the aarch64 version. I downloaded the ‘os-agent_1.6.0_linux_aarch64.deb‘ file and then uploaded this using WinSCP, but you could also download it using curl or wget. You’ll then need to run the command dpkg -i os-agent_1.6.0_linux_aarch64.deb as root.

The next command to run is gdbus introspect --system --dest io.hass.os --object-path /io/hass/os . This should give some multi-coloured code and not an error; if you get an error about the ‘gdbus’ command not being found, then you may have missed the libglib2.0-bin package in step 2.

Step 5: Install Home Assistant Supervised

Finally, we’re at the stage where we can actually install Home Assistant. Here’s the command to run:

wget -O homeassistant-supervised.deb https://github.com/home-assistant/supervised-installer/releases/latest/download/homeassistant-supervised.deb apt install ./homeassistant-supervised.deb

Once this is complete, wait a few minutes and go to http://[your IP]:8123/ and you should be greeted with the Home Assistant web UI. It may take a minute or to before you can start the onboarding process. If you’re migrating to Home Assistant Supervised, then you can also restore a backup at this stage, but be aware that such a backup can take a long time to restore.

And then you’re done. You may get some warning messages about the system being ‘unhealthy’ but these seem to disappear after a reboot, in my experience.

Things to consider

Although installing Home Assistant this way does allow it to co-exist with other software, bare the following in mind:

  • Even if you mount a USB hard disk/flash drive to your device, Home Assistant doesn’t seem to want to know about it, or let you attach it to any addons.
  • Although you need to install Docker for Supervisor to work, you’ll get errors in your Home Assistant settings if you install any other Docker images that are not managed as Home Assistant Addons. So, if you want to install any other software, do it manually, or in another container system like Snap. Or you could try Kubernetes I suppose, if you really hate yourself.

Installing Home Assistant Supervised is by far the most difficult method, but for me, it offers the best balance of overall control, and ease of use once set up. If you can find the time to set it up, then once it’s up and running, it’s easier to add new devices and configure on an ongoing basis. Whereas setting up HTTPS and HomeKit can be a challenge on Home Assistant Container, enabling these on Supervised is much more straightforward.

That being said, if you can dedicate a device to running Home Assistant on its own, then I would definitely recommend just running Home Assistant Operating System.