fshr
The musings of a grumpy hairless ape
2024 Technical Review
Like any like minded technical enthusiast I end up playing with, and sometimes actually properly using, various pieces of technolgy and gadgetry through the year, and while I don’t do formal reviews of any of the stuff I use, I thought it might be fun to do a little look back at four of the bigger new things I’ve played with over the past 12 months and give an overview and few thoughts.
So in no particular order…
Home Assistant
Prior to 2024, pretty much all my smart home gadgetry was based around Apple HomeKit, mainly as we’re an Apple household (for better or for worse), but it was also a fairly easy way to get into smart home tech without having to expend too much effort. Now while HomeKit is a fairly decent product if you’re looking at a basic smart home setup, it’s fairly easy to outgrow it’s capabilities once you get past the basic “press a button, turn a light on/off” or “at this time, turn a switch on/off” style of automations.
In the Smart Home / Home Automation space the big daddy of them all is undoubtedly Home Assistant(HA). It’s recently passed it’s 11th birthday so I think it can now be classed as a mature product, it’s got stable backing and community support, and supports pretty much any smart home technology going (or in fact pretty much anything you can talk to over a network) either via built in “official” integrations, 3rd party community integrations, or via integrations you write yourself. It can even emulate a HomeKit controller to allow you to directly control some HomeKit only devices without using HomeKit!
There’s many options for how you run HA, whether as a VM, through Docker, as a physical install on an x86 or Arm PC, or on a Home Assistant branded “appliance”. For simplicity I went with the appliance route and bought a Home Assistant Green.
The Green is a small all-in-one SBC based machine with HAOS (Home Assistant OS) preinstalled, so it’s quite literally plug-and-play (power & LAN), and configure via a browser. While not an amazingly powerful option for HA (I’m starting to outgrow it), it’s more than capable of running a “starter” smart home with no issues and is a good entry point for getting started with HA (HA does support easy migration between installs when it’s time to move on).
With the Green purchased, I started moving over to Home Assistant in Jan 2024, and have been slowly moving my devices into it over the last 12 months (as well as adding many other devices!). As of writing, I’m now fully off HomeKit for all day-to-day usage and have added many other types of devices including my home energy usage, various lights and sockets, plus a handful of other device types (TVs, ESPHome devices, weather, etc). All of my previous automations have also been moved over, and in some cases enhanced beyond what was possible in Apple Home.
Final Thoughts
- All in all I’m very happy with HA, it’s more than provided for my needs over the last 11 months, and (on better hardware) easily see it scaling as I do more with it.
- It’s been a bit of a learning curve in certain areas, and while quite polished there’s a few areas where there’s still a bit of “WTH?!?” (the HA community regularly run a WTH forum for users to feed back these little quirks to the devs).
- While most integrations support configuration via the GUI, you do will need to delve into configuration files in some situations (BESPOKE CONFIGURATION.YAML FILES!!!)
- Support for devices is largely excellent, though as you move from the official integrations into community integrations you do run the risk of an integration lacking or losing support (though as HA is all open source you’re free to contribute/fork as you want and are able).
- While backup and recovery is relatively easy, for something which will likely take over more automation of our home I’d like to see better options
ESPHome
ESPHome is largely a partner system to HA. While it can be used completely independently or with other systems (mainly via MQTT), it’s both supported by the Open Home Foundation and has deep integration into HA.
But what does it do? The simplest explaination is that it allows you to build your own Smart Home devices using off-the-shelf components, and little to no “programming” required. Depending on your skills and requirements, it can be as simple as buying a prebuilt board, connecting it to your computer, writing a basic config file, and then using that config file (with supplied tools) to build and upload a firmware file to the board. If you’ve got more time, skill, and patience you can produce your own custom boards and components, and integrate them into ESPHome (and HA).
I started playing with ESPHome shortly after starting using HA, and have about 6-7 devices currently “in-service”, ranging from off-the-shelf devices which I’ve pushed a pre-written config to, up to assembled devices using separate boards and sensors. Currently I have live (as of Dec 2024):
- M5Stack Atom Echo - A prebuilt development device with an onboard ESP32 chip, plus mic and speaker. Used as either a mini HA voice assistant or HA media player depending on how I’m feeling that week!
- M5Stack Atom Lite - A prebuilt development device with an onboard ESP32 chip, but no mic and speaker. However I currently use this with the M5Stack Atomic SPK Base which gives the Lite a DAC and speaker to play audio. Used as an HA media player to play background sound while I’m working.
- ESP32 S3 Box 3 - A prebuilt development device with an onboard ESP32, plus mic, speaker, and screen. Used as an HA voice assistant (using the prewritten ESPHome VA config).
- Waveshare Custom ePaper Display - I’ve written a piece about it on here already, so won’t go into more detail, but I’ve now got two of these (recently built a second one in portrait). Used to display useful information from HA (e.g. weather, Octopus Energy rates).
- Waveshare Touch - A small circular LCD screen with attached ESP32. Mainly bought to play with LVGL on ESPHome, but now doing (temporary) duty on my desk showing realtime electricity pricing (p/kWh) and usage (W).
- RevK OpenMic - A board custom produced by RevK, originally as either an audio recorder, or an extremely portable SIP client, but as it’s based on standard ESP32 hardware (plus other components) it’s extremely easy to get it into ESPHome and start doing other stuff with it. Again, mainly bought to play with, but potentially plan to add a speaker and try and turn it into a (mobile?) HA voice assistant or media player.
And in storage:
- Waveshare ESP32-S3 Mini - I have a pair of these tiny development boards which I keep for general testing and trying stuff out on. They both have pin headers attached so it’s relatively simple to hook up different sensors with dupont cables for “play” :-). At the point I get a soldering iron one of them may have their headers removed and get turned into a BLE proxy for HA…
Final Thoughts
- ESPHome is one of those things which can consume as much or as little time as you’re willing to give it. It is completely and unashamedly a techy hacker’s toy/toolbox and I wouldn’t recommend it unless you’re into the thought of building your own devices, and spending hours tweaking and troubleshooting configs.
- It does give the opportunity to really make something completely custom to your needs. If you have the need for a small tabletop device which does temperature, humidity, and NFC, then you can probably build it with ESPHome and integrate it into HA or any other system which it can talk to.
- It meshes exceptionally well with owning a 3D Printer (no pun intended). Building a custom ESPHome device and then wrapping a custom case around it gives an immense sense of satisfaction (if you’re into that sort of thing).
Meshtastic
Meshtastic is an interesting one. On their website it’s billed as:
An open source, off-grid, decentralized, mesh network built to run on affordable, low-power devices
Under the hood, Meshtastic is a set of software written to run on low-power ESP32/nRF52840 devices paired with a LoRa (LOng RAnge) radio, to then allow device to device to device (node to node to node) communication in a mesh style network. As long as there are other nodes in range, there’s no reliance on Wifi, the Internet, any mobile/cell network, etc., it’s all device to device with any individual node able to forward messages on to increase the message “range” beyond whereever the next-hop device is. Individual built devices are reasonably inexpensive (around £40-50 range) and the Meshtastic software itself is open source.
Which sounds fantastic right… well there’s one key point which I fell foul of…
“As long as there are other nodes in range”
Unfortunately, while I live on the edge of a relatively large urban area in the UK, and I’ve taken my device out and about to look for other nodes, I appear to be the only person in the area running Meshtastic. Unfortunately, this is kind of the main stumbling block for Meshtastic, you need other people around you to also run nodes. I commented on this in the Meshtastic community, and the general feedback seemed to be either “congratulations, you’re the first”, or “find some friends and get them to set up nodes”, which aren’t incorrect, but for a general communications technology it’s also just a lot simpler to just use Internet based messaging or SMS to talk to people, with the benefit that I can do so with anyone, anywhere globally, as long as we both have Internet or mobile/cell coverage.
That’s not to say that Meshtastic (or other similar technologies) are completely useless, far from it. I can see use cases where there’s truly a need for local “off-grid” point to point messaging, particularly where you’re in a true rural setting, or need to keep communications open in the event of Internet/mobile service going down, but for someone sat in suburban UK with otherwise good connectivity… I’m not so sure.
Final Thoughts
- I think I can sum it up as - nice idea if you have a particular use case, or are in a situation where you can easily deploy multiple nodes, otherwise it’s down to whether you’re luckly enough to have others running nodes nearby and you’re happy with it as a toy.
- I will keep a node running on the basis that “I’m the first”, and see if anyone else in the area eventually joins, but I’m not otherwise going to invest any extra time in this.
3D Printer
I’ve never been a creative sort. I did art, etc. at school when (much) younger, but have never really been that well endowed in the creative department. My drawing is little better than my children can manage (and in most cases they’re better than me!), and when it comes to any other creative pursuits, well…
So while a 3D printer was something that appealed to me from a techy/gadget perspective, and I thought I had a use case to buy one, I had no expectations of suddenly becoming a super creative genius, jacking in the day job, and immediately opening a shop on Etsy (yes I know how bad Etsy is for creators).
After doing a little research, and chatting with Darkedge on Mastodon (an existing 3D printer user) I decided on, and bought, a Creality K1 3D printer. The K1 seemed to come in at the mid-range for printers, neither base level or super high-end, with some useful featuers such as auto-levelling to make life a little simpler for a 3D printing newbie.
Now, one of the first things I quickly learnt about 3D printing is that it has a specific “workflow”. In normal printing this isn’t the case, you pretty much open what you want to print in whatever app you’re using, press “Print”, and it comes out of whatever printer you have selected with a known quality. With a 3D printer you need to follow a more involved process of creating/downloading a design (usually an STL file), slicing that file to turm the model into something your printer can print, and then send the resulting printer file (GCode) to the printer to print. The details and settings of that slicing process are specific to the model of 3D printer used, the particular filament used, and any particular quality & print settings chosen at the slicing stage.
With a normal 2D (ink & paper) printer, details of how to print on paper are typically abstrated within the printer and printer driver such that you select things like paper type, quality, single/double sided, etc. and the app, OS, printer, and driver work out what needs to happen. With a 3D printer that “work out what needs to happen” is largely down to the user to work out, mainly through setting up printer & filament profiles, running calibration prints, and generally “trying stuff out” to see what works best. That additional work doesn’t make using a 3D printer impossible, but it’s worth bearing in mind that any 3D printer isn’t guaranteed quality out of the box (and even with good settings a certain amount of post-print processing may be required).
Once you get past any hurdles though, having the ability to take an idea, turn it into a design, and (relatively) quickly produce a solid representation of that idea, quickly becomes addictive, whether designing something functional or decorative. As an example, some of the designs I’ve so far produced myself (i.e. not downloaded):
- A bracket/clip for our bed to fix an issue with a screw mounting hole
- Various sizes and shapes of boxes, both utility and decorative
- A sign made from a company logo as a Christmas present for a family member
- A clip to mount a USB fan on some Ikea shelving
- Various different frame mounts to mount an eInk panel in a photo frams
- A spacer to replace a broken washer on our fridge door
- A spacer to allow me to mount a Zigbee door sensor on a set of uPVC french doors
- A multicolour sign/ornament as a Christmas present
On top of that, I’ve downloaded and printed various STL models for decorations, fidget toys, filament clips, soap dishes, keyrings, and many more. The two main sites for downloadable models seem to be Thingiverse and Printables, both have an ever growing set of freely avaialble (but check licensing) models covering just about anything you need.
Final Thoughts
- The ability to take an idea, and relatively quickly turn it into a physical object is a fairly significant ability to be able to have sat on a desk in my home office. It’s even managed to gain a high HAF (Household Approval Factor) within the first couple of prints, and with little or no effort on my part. I’ve even had my other half get involved and actively ask me to design and/or print stuff, which is new :-).
- There’s still a fairly high learning curve to be able to go from zero, through basic printing, to high quality and “effects”. I wouldn’t yet recommend this for anyone without a minimum level of technical ability.
- I feel that there prbably needs to be some standardisation of things like printer and filament profiles so that the “best” settings for printers and filaments are easily available to someone without having to spend time calibrating their setup for each new filament.
- I sometimes wish I’d either waited, or spent more, to go for a multicolour printer. While not critical for what I do, and there are downsides of having multicolour, it would have been a nice addition to be able to print models with more than one colour.
- It’s certainly bought out some level of creativity in me which wasn’t present before. I’m still not an “artist” by any stretch of the imagination, but being able to produce things like an illuminated sign from the logo of a family member’s company for their Christmas present, or mix a downloaded model of a Christmas tree with a self-designed “trunk” to make some homemade Christmas decorations, is something I could never have even considered doing before. With that comes a big chunk of self satisfaction and pleasure in actually being able to say “I made that” :-)