lade...

Blog.shwok.com

Blog.shwok.com

an avatar

a logo

Ctrl-Alt-Delusions - Will Osborne-Kennedy

IT Management, Home Automation, Parenting Fails & Political Cynicism

an icon 🌐 Visit Blog.shwok.com 🌐 Blog.shwok.com besuchen

Write rieview✍️ Rezension schreiben✍️ Get Badge!🏷️ Abzeichen holen!🏷️ Edit entry⚙️ Eintrag bearbeiten⚙️ News📰 Neuigkeiten📰

Write review

Tags: automation cynicism management parenting political

Blog.shwok.com hosts 1 (1) users Blog.shwok.com beherbergt 1 (1) Benutzer insgesamt (powered by Ghost)

Server location (188.114.97.4):Serverstandort (188.114.97.4 ):US United States

Server location (188.114.96.4):Serverstandort (188.114.96.4 ):US United States

Rieviews

Bewertungen

not yet rated noch nicht bewertet 0%

Be the first one
and write a rieview
about blog.shwok.com.
Sein Sie der erste
und schreiben Sie eine Rezension
über blog.shwok.com.

Blog.shwok.com News

Does Matter matter?

https://blog.shwok.com/does-matt...

My views on the automation world's most annoying protocol to date.

Does Matter matter?

Picture your automation utopia. Devices from every brand seamlessly interoperate via a shared language. Setup is simple and can be undertaken by any monkey - the same primates who apparently would come up with the Complete Works of Shakespeare if left with some typewriters and enough time....

I fear they may have permitted this same merry band to infiltrate the Connectivity Standards Alliance, or CSA (although that acronym has entirely different and more sinister connotations in the UK), with aforementioned complete works, which look uncannily like the draft Matter protocol documents.

In classic CTRL+ALT+DELusions style, we digress from the topic at hand a little. However, my weak Sunday morning jokes hide a far more practical challenge.

So far, Matter is rubbish

There, I've said it. The unifying, simplifying protocol has been about as effective as an Israel vs Iran human rights competition.

The first premise of Matter is that it is IP based. This, in my opinion, is a mistake. Firstly, it's a retrograde step for security. Why on god's earth does everything need an IP address. The only people who might derive something useful from an IP connected window sensor, are those who are seeking to exploit it as an entry point into a network.

There are, in fact, two "flavours" of Matter (which I am desperately trying not to entitle "Doesn't Matter" and "Really Doesn't Matter").

Does Matter matter?

Plain "Matter" (not to be mistaken for dark matter, else your IKEA KLIPPBOK might experience an anti-gravity event, possibly while trying to work out how to connect to a hub) is an overlay on the 802.11 Wi-Fi standard, while its apparently smarter, prettier cousin "Matter over Thread" (i.e. hanging by a [sic]) decided the best approach would be to take the already robust and well adopted Zigbee standard and (yep, you guessed it), layer IP over the top, just for shits and giggles*

💩
It's all shits and giggles, until someone giggles and shits.......

The CSA are also responsible for the Zigbee and Z-Wave protocols which are mature enough to realise that a physical device ID is sufficient when dealing with largely primitive devices announcing their presence periodically.

So, it would seem that someone brought the space cakes along to their HQ at 508 2nd Street, Davis, CA a couple of years ago.....

Does Matter matter?

A few hours later, almost certainly after:

A member of the ratifying committee jumped to his feet and said

"I know guys, why don't we make something so utterly contrived and pointless that it will keep us in a job for years???"

While I would love this to be the truth, I suspect the reality is somewhat more "death by committee", where everyone agreed that this would be a good idea, without actually knowing how to make the good idea work.

I mean, you only have to look at this forward-thinking and diverse group of humans in the CSA to know it was the right decision, well made:

Does Matter matter?
DEI at its Gen-X finest here....

The tech industry as a whole is renowned for its commitment to simplicity, acronyms, unusual verbiage, and bien sûr, interoperability....

It all rather reminds me of this splendid, turn of the Millennium IBM advert:

Twenty-five odd years later and not much has really changed. There are an even greater number of standards, which manufacturers don't pay much attention to.

There are therefore, by definition, an even greater number of standards bodies. Seems like nobody pays much attention to them either....


Does Matter matter?
Elon's new lightbulb was getting ideas for the new mysterious "corporate salute"

Hardly a week seems to go by without there being some sort of complaint about Matter. My fellow HA Geeks, @philhawthorne / @rkaramandi - AKA Phil and Rohan from the #hasspodcast, seem to have a similarly dim view of where this is headed.

I think we are now on revision 1.5 of the standard, and so far:

It feels like this started off as a superb idea somewhere, but nobody is bothering to police the standards properly, as this would cost money and mean some actual product re-engineering - like, actually putting the THC vape down for a bit and changing some CI/CD pipelines and making new quality procedures.

Not just taking the current Wi-Fi base build, mashing it with the current Zigbee base build, turning on IPv6 and putting a pretty sticker on the side!


IPv6 Twoddle

Does Matter matter?

We've been moaning and bitching, almost since the initial conception of TCP/IP in the early nineties (trust me, I was there), about the potential lack of available IP addresses.

Some 30 years later, and we still haven't run out. Perhaps if Bell Labs and the University of Outer B* F*** Nowhere would care to return those /8 blocks of allocation which the Bush administration bequeathed them, we can manage for another couple of decades, without the needless headfuck of IPv6. Nothing should be allowed that much unbridled use of semicolons to start with, and whose idea was it to use bloody hexadecimal?

Probably one of those respected standards bodies, once again figuring: "If we make it super-complicated, we'll be employed to explain it forever".

Clearly, I am not alone in this disdain. Twenty years (and by inference, at least two core router replacements) later, half of the civilised world has just gone "Nah, fuck it, can't be arsed. Maybe next time"

Except France. 🧀🧀 Once again, the fromage-chomping, port-blocking 🐏🐏socialists have gone their own way. Perhaps realising that a job for life is entirely compatible with a two-hour wine fuelled lunch, followed by some intensive Base 16 subnetting sessions and a couple of Gauloises.


Putting a hex on it.

Does Matter matter?

As you might note above. I can't really abide IPv6. It just turns up to the party and makes things needlessly complicated.

I think mostly because my brain can just about manage decimal and binary maths, hex is the devil spawn, with my historic hatred derived from 8 Bit POKE commands in Commodore BASIC that still haunt me now.

So, in my eyes, Matter has just made it into the wooden spoon club, on this matter alone. . .(terrible pun intended).


I've got about 10 Matter-compatible devices, notwithstanding the "tube lady". Several Shelly Gen4 relays, a couple of Swedish-House-Mafia additions with comedy names (which apparently don't work properly anyway) and four of these wonderful items:

Does Matter matter?

The Sengled W41-U33A (snappy, huh). These things have had more disconnections than the US administration has had from reality. In fact, if you drew some comedy facial hair on one, it could take a family trip to Europe and start lecturing other governments on democracy and civil liberties.

Does Matter matter?

One of the supposed improvements which comes with Matter is proximity pairing using Bluetooth Low Energy (BLE) beacons which connect to your mobile device. Devices which have the 🛜 symbol are supposed to pop up on your phone and prompt you to start configuration. Emphasis on the "supposed to". I can't comment on the ubiquity of this process, but this particular breed of Shenzhen wonder is neither beaconing or prompting.

It's then meant to talk to whatever Matter platform you have available and auto-configure itself. I believe the appropriate turn of phrase to be deployed here is "after a fashion".

✅ Connects device to hub

❌ Connects automatically

✅ Requires pointlessly small barcode on side of device

✅ Appears in app (not necessarily the one of choice) with some pointless arbitrary name

❌ Is easily shared within your smart home ecosystem

❌ Provides compatibility and feature parity across all platforms

❌ Remains reliably connected for an extended period with no intervention.

✅ Requires you to spend several hours fucking about with IPv6 on your router or firewall device, just to be able to see the blessed thing

The Amazon and Google implementations of the connection process are entirely different, both to each other and to Home Assistant, where all my gear will naturally end up eventually.


Multicast hell

Personally, I do find this idea that everything must use some sort of mDNS type discovery protocol to be fundamentally incompatible with any serious kind of network security through segmentation. I wonder if the security guys didn't get invited to the space cake party because everyone assumed they were too boring.

Aside from the level of chattiness that comes when every device wants a place on Truth Social and so starts broadcasting a multitude of shit to anything that will listen, the idea that you have to have all of your devices on a single flat subnet so they will play nicely together feels so sophisticated that it could only been conceived by a lifeform with primitive cognition. I will leave your imagination to infer for itself what sort of lifeform this is, and whether or not it wants to sell you some teak oil or some second-hand Latino hydrocarbons.

In my world, IoT devices don't get to play in the park with the grownups, especially if they might go and tell the Mandarin teacher what the big boys and girls are up to.

I'm not sure how much more I've got with this particular analogy, but let's just conclude that having to fix up both router advertisement and IP helpers between subnets did not please me.

In classic CTRL+ALT+DELusions "If all else fails, RTFM" style I hadn't appreciated the finer nature of the IPv6 link-local handshake that Matter necessitates, and therefore it simply hadn't occurred to me that I needed such a level of complexity to simply connect a pissing light bulb up to my phone so I can have a more relaxing style of bath. One where my retina don't get burned through while I'm lying there (almost certainly failing to relax).


Conclusions

This is one of those topics where I sense I could probably waffle on for many hours more. in the interests of reader sanity (I assume not all of you are IT nerds) I shall draw to a close here.

The summation:

Is Matter worth it? Absolutely fucking not.

Will it continue its trajectory of annoying many people while on a long and pointless path to vendor ambivalence? Almost certainly.

In Jeremy Clarkson style, I feel I shall henceforth refer to it exclusively as "Doesn't Matter", feed it a box of Boursin periodically and toy childishly with its numeric logic, because I can.

Does Matter matter?

When the Commies have taken over the world, via the medium of rogue robot vacuum cleaners equipped with AK47s, you'll thank me for telling IPv6 to fuck off, and be reminded that Boursin is a really tasty snack. FROMAGE!

Until the next rant.

WOK, over and out.

Love ya xx

3.3.2026 21:57Does Matter matter?
https://blog.shwok.com/does-matt...

The terrifying world of video content.....

https://blog.shwok.com/the-terri...

The terrifying world of video content.....

I know, I know. I'm neglecting the written word in favour of these new-fangled things. I promise that solid written content is en route in the near future, but there are only so many hours in the day available when you are busy trying to terrifyingly subvert the world of consumer electronics, one Cold War listening device style piece of sacrilege at a time.

I've made a teaser video for my latest attempt to upgrade the "Sacrificial Tuya", which includes power systems that actually work, shoddy waterproofing efforts that are crying out for Mrs O-K to permit the purchase and installation of a 3D printing device, a potential solar upgrade in the future, and most importantly and exclusive view of exactly how the sensor felt about being tied to a tree......

As we enter the season for passover and resurrection, I felt it was only timely to consider the feelings of a poor, innocent piece of Chinese plastic, cast outside for months against the bitter Bognor Regis winter, wearing little more than an infrared LED and some heat shrink for protection.

So, I brought it inside, pimped it up and chucked it back out again for a second bite at the cherry. As I write, still 100% battery, many less false positives, and an enduring feeling of smugness that I have create something that the KGB would have been aesthetically proud of.

So, short and sweet, enjoy me making an arse of myself pretending to be an "influencer", and some new stuff will arrive soon.....promise.

До новых встреч, мои друзья из Перестройки. Люблю вас, пока!

25.2.2026 21:24The terrifying world of video content.....
https://blog.shwok.com/the-terri...

Nesting Season is Over.....

https://blog.shwok.com/nesting-s...

I Let AI Analyse My Heating System. It Was Uncomfortably Accurate.

Nesting Season is Over.....

When I was on the Home Assistant Podcast this week, we touched briefly on something that’s been quietly bothering me for months.

My heating.

Now, I'm a reasonable guy, but those who have read my previous article "Fleeing the Nest - Part 1" will be familiar with my long-running and increasingly fractious relationship with General Nest - my sociopathic and increasingly single-minded smart dumb-as-fuck thermostat.

Whatever the question, the answer always appears to be 9°C.

Winter? 9°C.
Summer? 9°C.
5:30am on a freezing January morning? 9°C.

It claims to be learning.
I remain unconvinced. It's about as erudite as The Great Mahogany Cockwomble.

Tired of his persistent attempts to annex my conservatory via deprivation of my basic human heating rights, I decided to do something constructive and invoke Article HA...

I exported months of heating data from Home Assistant and asked AI to analyse it.


The Setup

I’m running Home Assistant in a fairly old UK house — thick brick walls, lath and plaster ceilings, more draughts than a medieval banquet hall.

I've been playing with the unofficial Home Assistant MCP for a few months now. It's also a megalomaniac, but slightly less so than General Nest. It only deletes things it finds sporadically, rather than through targeted deprivation.

I fed to Gemini CLI (a course of action I have more recently realised is fraught with more danger than Nicholas Maduro's capture) and asked the following:

I want to analyse the my heating systems to understand factors such as which rooms are the fastest to heat up and cool down, whether maintaining a higher nightime temperature is more energy efficient than heating from a lower one, how much gas in volume and cost it takes to heat the house by 1C, what impact external temperatures have on the cost and runtime of the heating and how much the humidity level is affected by temperature.
Use external sources to define what "good" looks like and use the MCP to query my Google Nest thermostat, the Viessman Vitodens smart boiler, internal and external temperature and humidity sensors and the Hildebrand Glow integration for gas costs.
Give me a statistics report to read and also recommendations for how to optimise the heating system for consistent temperatures and energy efficiency.

Given my previous Gemini-sponsored tasks had resulted in abject failure (until Claude, suave-as-fuck, waltzed in to save the day*) I was not confident in the outcomes.

Nesting Season is Over.....
*I am utterly convinced that Claude is actually "Claudé" and at any moment, he will shout "FROMAGE" at me

What I got was… uncomfortable.


What AI Got Right

Gem-in-eye immediately identified that:

Certain rooms were heating far faster than others

It even estimated relative cost impact of certain scheduling choices.

None of this was technically beyond my own capability to work out.

But here’s the thing. I hadn’t.

Because once something “works”, you stop interrogating it.

AI doesn’t get bored. It gets excitable.

If you give it an MCP and a brief, it starts creating stuff (and deleting it) at a rate of knots. Like graphs for example....

Nesting Season is Over.....

Like anything which involves AI based coding, the main challenge remains what I affectionately term "plausible bullshit". The outline principle of what it tries to do is relatively grounded in reality. However, the nuance gets lost on the way to the party.

Nesting Season is Over.....

In real terms, this means that there's no way that it can be left to its own devices to produce a workable dashboard or automation. Somewhere on the way to said party, it decides to smoke some crack and start fabricating code parameters, entities or other artifacts. Then, like any good crackhead does, it swears blind it's telling the truth, and leaves you to establish the actual facts.

Nesting Season is Over.....

However, amongst my poor attempts at comedy and satire, I was impressed by how much actual inference it did manage to make based on the data in Home Assistant and my prompt.


What It Got Wrong

As an honest reviewer of technology, it would be wrong to say I was utterly astounded by the whole process. In the spirit of identifying the strengths and weaknesses of the process, my conclusion is:

It didn’t understand:

But as a pattern-analysis tool? Impressively good.

As a designer of sensible ways for humans to interpret said patterns. Terrifying. See the utter bollocks below:

Nesting Season is Over.....
Interpolation between two abstract lines anyone?

What I Learnt

Aside from the questionable colour combination choices which were made when building graphs, the AI extracted some gold. I learned to infer some really quite good stuff from the data.

Morning ramp-up timing

I was heating for several hours in one contiguous chunk, despite The General's desire to shut things down. This, it seems, was not the most efficient way to do things. By allowing the boiler some downtime in between 45 minute bursts, the convection in the house moderated the temperature in some of the colder rooms, meaning I didn't have to run for so long.

Certain set-points

Nesting Season is Over.....

I'd been tracking the average temperatures of the two floors of the house for a while, by creating derivative sensors using helpers in HA. It doesn't take a genius to establish that upstairs is somewhat warmer than downstairs (take heed, General).

I've only partially been able to fix this, using the Sonoff TRV-ZB valves I purchased before. The pattern is pretty consistent throughout the day, so the eventual plan is that we will only call for heat from the boiler when an aggregate of both the room thermostat and the TRV fall below a preset point.

Heating duration in faster rooms

Similar to above, my AI mate noticed that some rooms were quicker than others to heat up. . . Nice work Sherlock.

However, virtual Sherlock has one over on me, because while I can see how much glass and how big the room is, he can get fed this information, work out the temperature coefficient and decide:

AI will probably have the last laugh here too.....

Some automation logic

General Nest pretends to know when we are home or away. In reality, he thinks we're away an awful lot (and then he calls in the Green Party to give us a free Eco Leaf). 🍃

Home Assistant can help me be smarter than that. I can use Bayesian sensors to determine the probability that someone is home, based on not just Geo-fencing, but things like whether energy levels are going up and down, or when the front door last opened and closed.

What the General fails to realise is that, (hopefully), like 2026 Fascism, his days are numbered. Unlike DJT's little Hitler impression, I already have a solution.

My mate Shelly is poised and ready to depose the little guttersnipe at a moment's notice. OK, well, if we're being honest, when I've got a spare day to install an X2 wall panel and several relays.


The Bigger Point

The interesting part here isn’t that AI can control heating.

The goal isn’t “AI runs my heating”.
The goal is better decisions based on clearer insight.

It’s that Home Assistant gives you structured, accessible data about your own home — and AI can interrogate that data in ways that are faster than manual analysis.

It’s not replacing engineering judgement. It’s augmenting it.

And in a draughty period house with rising energy costs, that matters. More than my ego vs a smug little aluminium circular thing.


What’s Next

In my new-found quest to get "local first" to the top of the priority list faster than a hippie in a farmers' market, I'll be building out something which will "just run" natively, without any Cloud support.

This will be supported by additional logic and telemetry from Home Assistant which can override the defaults, assuming it's online and working AOK. If it's not, things keep on trucking irrespective.

IMO, all the while the world is a scary place, where unusually coloured men argue with unusually dressed men over how many bombs they have, one must focus on the things one can control. In my world, making sure everyone is warm and burning less of the planet to do that is one way I can make a little individual difference.

If you found me through Home Assistant Podcast, thanks for reading. Stay tuned for more Will based antics....

19.2.2026 23:39Nesting Season is Over.....
https://blog.shwok.com/nesting-s...

Welcome Home Assistant Podcast Listeners! 🎙️

https://blog.shwok.com/ha-podcas...

Welcome Home Assistant Podcast Listeners! 🎙️

If you’ve just arrived here after hearing me on the Home Assistant Podcast, welcome!

I’m Will. I live in a slightly draughty period house on the south coast of the UK, where I automate things that probably don’t need automating, argue with a Nest thermostat I’ve nicknamed General Nest, and occasionally let AI loose on my heating data.

This blog is where I document the experiments.

Some are sensible.
Some involve soldering irons balanced on frying pans in holiday villas.

If for some crazy reason, you want to hear my nasal Surrey posh-boy tones again, here's an episode link: https://homeassistant.fm/ha222

Or, for those that prefer a visual experience:


What We Discussed on the Show

🙏
Firstly, thanks so much to Phil and Rohan for having me on the show. It was a blast, and great to be in the company of fellow Home Assistanters....

In the episode we covered:

If any of that sounded interesting, here’s where to start.


Start Here: My Best Content

Period Home Restoration & Automation

The intersection of "this building is older than most countries" and "I want Alexa to turn on the lights" is where I live.

I do actually do period home stuff too…..
We’re reaching that stage of the year where: * I have got used to getting up somewhat later in the morning, without the joy of school runs. * The children declare “I’m bored!” about once every twelve seconds, despite having tried to do nothing except improve their west-coast accent through the medium
Welcome Home Assistant Podcast Listeners! 🎙️
When is a door not a door?
The entrances to our home have always been a problematic element of the building. On the plus side, we’ve retained many of the original features. On the minus side, we’ve retained many of the original flaws. A couple of months back, I started the process of removing and replacing all
Welcome Home Assistant Podcast Listeners! 🎙️
Windows, of a non-Microsoft persuasion
As the UK enjoyed an event about as rare as Unicorn faeces; a Late Summer Bank Holiday where rain of biblical proportions was not the defining feature, I took it upon myself to commence one of the more pressing projects on our house. When we first moved in, four and
Welcome Home Assistant Podcast Listeners! 🎙️

🌍 Overseas Property Management with Home Assistant 🌍

🌋 My parents have a house on a volcanic island in the Atlantic.

📪 It’s unattended most of the year.

🏚️ I created "Project Casa" to help manage some of it.

Including:

If you’re curious how far Home Assistant can be pushed in a remote environment:

My first dabble with Tasmota
Hint = it makes a big splash..... You’ll remember from my previous posts that I wanted to try and automate a swimming pool controller. Some further ESP32 action, a steep learning curve about the MODBUS protocol and MQTT, and I’m pleased to say I’ve built my first successful prototype. The aim
Welcome Home Assistant Podcast Listeners! 🎙️
“Strawtenna” - An Experiment in 2.4Ghz Signal Strength
I’m writing a shorter article today, partially because the window replacement has been some kind of marathon task, but also because it’s 5:30Am and I’m killing time while watching over a server migration........ Perhaps I should do an article called “I actually do IT work sometimes too”. Long ago,
Welcome Home Assistant Podcast Listeners! 🎙️
A Matter of Scale
Would my ChatGPT’s latest idea pass the acid test? Some months ago, in the dim and distant memory there was a passing glimpse of summer. Regular readers will recall that I started Project Casa - a number of improvements to our family holiday villa intended to allow greater remote maintenance
Welcome Home Assistant Podcast Listeners! 🎙️

DIY Builds & Projects

I document my builds because future-me inevitably forgets how past-me solved things.

Recent projects:

Reflecting on my laziness
When is a door not a door? When it’s been an unhung period mirror for half a decade.... I took a brave step today, and finally committed to a piece of work which has been in the backlog for almost as long as we’ve lived in this house. When we
Welcome Home Assistant Podcast Listeners! 🎙️
Let there be light......
In a terrifying advance in my attempts to demonstrate some sort of prowess in the sphere of home automation and improvements, I’ve now started a YouTube channel. Much to the utter disgust of DD1, who now lives in a state of perpetual terror that this content could be found by
Welcome Home Assistant Podcast Listeners! 🎙️

Watch My Builds on YouTube 📺

I create build videos on YouTube at @CTRLALTDELusions, where you can watch me figure things out in real-time.

Latest build: DIY Ambilight system using Raspberry Pi + ESP32 + HyperHDR

More builds coming soon—subscribe so you don't miss them!


Let's Stay Connected 📬

Want my best home automation content, project updates, and the occasional rant about why nothing ever works the first
time?

Join 100+ fellow HA enthusiasts getting weekly updates:

I send one email per week—no spam, no BS, just builds, automations, and lessons learned the hard way.


Find Me Elsewhere on the Internet

🐦 Twitter/X: @wjok - Home automation thoughts, build updates, and jokes about my failing automations
💼 LinkedIn: https://www.linkedin.com/in/wjkennedy/ - Where I pretend to be professional while talking about smart home tech
📘 Facebook: https://www.facebook.com/will.kennedy.359 - Longer posts and community discussions
📸 Instagram: https://www.instagram.com/will.kennedy.359 - Visual project updates and behind-the-scenes
🎙️ Podcast: Home Assistant Podcast episode - The episode that brought you here!


Active in the HA Community

You'll find me contributing on:

If you have questions about anything we discussed on the podcast (or anything home automation-related), drop a comment below or reach out on any platform—I actually respond!


Want to Collaborate? 🤝

I'm always interested in:

Reach out: will@shwok.com or DM me on any social platform.


What's Next?

Stick around—I've got more builds, automations, and "why is this so complicated" troubleshooting guides coming soon.

And seriously, thanks for listening to the podcast and checking out my work. The Home Assistant community is the best, and I'm glad you're here.

— Will Osborne-Kennedy
Middle-aged geek attempting to automate anything that sits still long enough


P.S. If there's a specific topic from the podcast you want me to write more about, let me know in the comments below or shoot me a message. I take requests!

16.2.2026 19:59Welcome Home Assistant Podcast Listeners! 🎙️
https://blog.shwok.com/ha-podcas...

Reflecting on my laziness

https://blog.shwok.com/reflectin...

When is a door not a door? When it's been an unhung period mirror for half a decade....

Reflecting on my laziness

I took a brave step today, and finally committed to a piece of work which has been in the backlog for almost as long as we've lived in this house.

When we moved in, the previous occupant (*see "mad as a box of frogs") decided that we almost certainly must have the antique wardrobes to match the decor. This was code for "I can't be arsed to move them out, so you have them" - along with:

Fortunately, the Interweb was quite taken with at least one of these wardrobes, another found its way to a new home, while the third, and arguably the most practical, but least attractive of these, decided that it had had enough of being a faux armoire and summarily disintegrated when we tried to move it. Which is a shame really, as I actually quite liked it internally.

After its component parts being shifted around between various bits of family dwellings for a while, I concluded what everyone else had known for some time. I wasn't going to repair it, or indeed do anything with it. The upstart Fromage-imposter was junked. But for some reason, Mrs O-K and I both rather liked the mirror.

And so it settled, in DD2's bedroom (she got the larger room, so seemed fair) for around 5 years, gently minding its own business.

We had a little sort out about a fortnight ago, in preparation for some sort of sleepover, and the blessed thing found its way into the entrance of my office. A daily reminder ensued.

Today, after some considerable fucking about, trying to remember where I had put the brown coloured modesty blocks and then trying to find the little brass mirror tabs, I finally gave it a new lease of life.

Reflecting on my laziness
Just a short wait for installation….

It replaces a mirror about 1/3 of the size, and I think it looks rather handsome in its new home. There's a solid antique feel about it, especially the imperfections in the glass where the silvering is wearing off. Also, there is a solid antique feel to my arms after trying to hold about 25kg of mirror up to mount it. Mrs O-K was nowhere to be seen at the critical moment, so DD1 stepped in, and did precisely fuck all other than sort of hold one side.

Still, it's up, and that's what matters.

I made another terrible video, which you can view on my now throbbing YouTube channel, where we're heading towards the grand position of nearly 800 video views..... Woohoo.

Anyways - nearly midnight on a Saturday night. I know how to live. Three pints in the local boozer and a bloke will type any old shite. Hopefully it makes sense.

Until my sober fingers decide to type.

Ciao, bella.

Wxx

7.2.2026 23:44Reflecting on my laziness
https://blog.shwok.com/reflectin...

Let there be light......

https://blog.shwok.com/let-there...

Let there be light......

In a terrifying advance in my attempts to demonstrate some sort of prowess in the sphere of home automation and improvements, I've now started a YouTube channel. Much to the utter disgust of DD1, who now lives in a state of perpetual terror that this content could be found by her friends, instantly reducing her popularity etc.

One of the projects I started cooking up over Christmas was to improve the cinematic experience of our newly-inaugurated "council house TV". Somehow I'd stumbled across the idea of accent lighting when looking for ridiculous festive lighting, and entered the usual long, dark and deeply geeky tunnel, where the initial entry point is usually

"I wonder if I could make one of those.....?"

In a relative first for this blog, there is no idle political commentary, nor uttering of the "F" word. Just pure unadulterated bad camerawork and some posh bloke waffling over the top.

I've made a few other "social" shorts about my previous project, which I will also stand up over this weekend. Don't have high expectations of quality, but please enjoy, whether for the right or wrong reasons. Yes, I know I sound awful when recorded......

When I said to Gemini "slightly portly" I think it took the brief too far.....

I'll be mostly continuing with written content, on the basis that FROMAGE has so much more impact when written.

So, lovely readers, enjoy now becoming viewers, and I hope to distribute some more useful content when I have established how not to look like a complete twat.

I shall be looking to recruit myself a teenager soon so I can adorn the likes of Snapchat and Insta with my portly posh-boy self.

Until the next instalment.

Take care my furry friends.

Love ya

Wx

6.2.2026 19:50Let there be light......
https://blog.shwok.com/let-there...

Reinforcing my weaknesses

https://blog.shwok.com/reinforci...

Reinforcing my weaknesses

I never did learn to code. Thirty-odd years ago, this didn't seem to be a massive problem. There were oodles of IT generalist jobs that consisted of telling people to turn things off and on again, interspersed with occasional arguments with BT about why ISDN2/e lines or 512Kbps ADSL circuits weren't working. Who needs code, I thought. There are people with beards and bad personal hygiene to do that.

Turns out, as seems to be a repeating pattern in my life, that I was wrong.


Almost everything is code now:

Even the most effective ways to annoy my children are seemingly code-based - for example, my recent "Duh duuuuh" button (a childish, but fun tool which invokes a bugle sound in the spirit of "and I'm an Elf" from Ben & Holly's Little Kingdom) involved code to get the audio from my brain and into "the lady in the tube" via a neat little button press.

alias: Elf Button
description: ""
triggers:
  - device_id: f62088096a02766dfaf836e3602b9a15
    domain: bthome
    type: button
    subtype: double_press
    trigger: device
conditions: []
actions:
  - action: media_player.play_media
    data:
      media:
        media_content_id: amzn_sfx_trumpet_bugle_04
        media_content_type: sound
        entity: media_player.office_3
    target:
      entity_id:
        - media_player.office_3
        - media_player.dd1_s_echo
        - media_player.dd2_s_echo
mode: single

In case you too wish to vex your t(w)eenage children

Reinforcing my weaknesses

Option A is on my Home Assistant dashboard. Fun, but impractical when needed.

Option B is much more practical. Another @Shelly_IoT invention - the Button 1 Tough.

Shelly BLU Button Tough 1 Black - Shelly Europe
Buy Shelly BLU Button Tough 1 Black at an irresistible price ⭐ Make your home smarter with a Shelly BLU Button Tough 1 Black from a proven brand - Shelly
Reinforcing my weaknesses

This is a Bluetooth Low Energy button, which can be programmed with about 6 different click patterns. I'd already cut its teeth on my Christmas automations, using it to enable early illumination or premature termination of my impression of National Lampoon's Christmas Vacation. This was easy, as everything was within the Shelly ecosystem. The Lady in the Tube is not, and this required several iterations to suitably annoy the children.

This has been remarkably effective, with DD2 actually unplugging said rainforest tube lady, purely so she cannot be rudely awoken by "duh duuuuh".

Sometimes, it's the little things.


I just met a girl database called Maria

Reinforcing my weaknesses
Actually, we've been friends for quite a few years

Anyway, enough pontificating - on to more useful things, such as why I can never hold my focus on anything for long enough.

The actual article here is about some more vibe coding with my mate Claude. I got him a date with Maria(DB) and she asked him about being on the stage. Not really, but all these human names for tech make for some incredibly good dad jokes and plays on words.

I had a utilisation conundrum. One of my roles has some granular reporting requirements which have got to the stage they need Power BI, and a young, enthusiastic data analyst with bags of data knowledge, and virtually no infrastructure knowledge. Code for "I'll drop a quick query onto the server," and the next thing you know your monitoring platform's lit up light a Christmas tree. Reporting server's run out of disk space trying to stage the joins needed to fulfil the report. Oops. Actually not his fault, but PCI-DSS compliant IaaS is pretty expensive, so we keep things running lean.

Back to my favourite topic. "fromages". In this context, "technologies fromages" in the form of eclectic, Camembert-powered hosting company OVH. A stalwart of economical hosting with European data sovereignty. Oh, and the odd large outage, sometimes caused by fire. Normally when someone forgot they were hosting WordPress and not a fondue party.

Reinforcing my weaknesses
If "techxit" ever happens, we're sorted, at least for fondue

We've used OVH at this customer's place for quite a few years as a cheap and cheerful place to store some replica servers that we could light up in the event of emergency. One of the delights of OVH, is that the capacity is relatively cheap, and you get full hardware access to whatever piece of tin you've rented. So, fondue and raclétte aside*, there was space to abuse it a bit further.

Reinforcing my weaknesses
*I apologise to any Swiss people who may feel there is a case of mistaken identity here. Having lived for a short while in Zurich many years ago, I am aware of the provenance of certain melted cheese dishes, but you just don't suit my narrative right now...
I digress. Again.

My plan was simply this. Use the spare processing and bandwidth capacity bestowed upon me by the cheese-eating ones to stage a secondary reporting server which would not fill up quicker than episodes of DJT's "Minnesota Murders" series to provide my eager young colleague with all the PBI he could eat, dipped in a pot of melty stuff.

We use Veeam to create our replicas every few hours, which is more than enough for periodic reporting, but of course, the replicas have to be switched off for a snapshot to write to them.

I started by creating a clone of the replica I wanted in VMWare, changed the name and UUID of the server and powered it up. A few tweaks of the IP address and firewalld and we were online. Only already out of date.

How could I get a copy of the freshly replicated data off of the powered off replica and onto the clone such that both data boy and I could have our fromage and eat it. That's where my mate Claude steps in.


I'd already conceived the idea that we could mount the VMWare image somehow and copy the files from one blob to another. It was just the exact mechanism that was eluding me. I'd planned to use the SureBackup facility in Veeam to fire up the VM after replication and then run a script against it to extract the database file.

Claude, being the suave bloke around AI town right now, enters the chat and gives me a different spin on how to do things - leverage the vSphere API in VMWare to physically mount the replica image as a volume on the management server, and then simply Robocopy the files to the staging box. Simples. Or not. You decide.

This all sounds wonderful, until you realise that we are dealing with:

😐 Veeam based backups on a Windows management server

🤑 Sat on VMWare ESXi server

🙃 With a MariaDB database on Red Hat Enterprise Linux (RHEL)

🧀 All casually layered on a deep sea of melted fromage

I've written before about some of the vibe coding experiences I have had with all three of the major LLMs. This was a bit more of a serious test however - it required not just the fineries of CSS / JS / YAML layout, but some serious logic to mount a disk, extract a consistent copy of the database and logs, connect to a target and restore it.

This took a few goes. The main issue was actually one of my making - where I had cloned the database server using just a copy in ESXi (feeling the cheapness, no vCenter - not making Broadcom any richer...) the vmid of the disk objects was still the same. Once we had overcome that snafu, it really didn't take that long to build. A bit of time fucking about with SSH timeouts (*300 seconds insufficient to get a really good fondue going) and were away.

To bring this back to being a sensible technical blog post, I asked Claude to summarise its work and the steps taken. For those needing a little light bedtime reading, here it is....

# MariaDB Staging Sync via VMware Snapshot Disk Attachment

## Overview

Automated solution to sync a production MariaDB database to a staging environment by attaching a replica VM's disk directly to the staging VM, avoiding network transfer overhead and enabling near-instant database refresh from production snapshots.

## Architecture

**Components:**
- **ESXi Host** (a.b.c.d) - Hosts all VMs
- **Replica VM** (ID 23: `SERVER-DB_replica`) - Production database replica, powered off
- **Staging VM** (ID 39: `SERVER-DB Staging`, a.b.c.d) - RHEL 7 target environment, powered on
- **Control Machine** - Windows with PowerShell, Posh-SSH module

**Storage:**
- Replica disk: `/vmfs/volumes/HDD1/.../6228571 - VCSA-000023.vmdk`
- Staging disk: `/vmfs/volumes/SSD2/staging-copy.vmdk` (flattened clone)
- MariaDB data: `/var/lib/mysql/`

## Workflow

```
1. Connect to ESXi via SSH
2. Verify replica VM is powered off, staging VM is powered on
3. Get replica disk VMDK path
4. Hot-attach replica VMDK to staging VM (SCSI 0:1 or 0:2)
5. Rescan SCSI bus on staging VM
6. Import replica's LVM volume group with new name
7. Mount replica filesystem read-only
8. Stop MariaDB on staging
9. Rsync data from replica to staging
10. Restart MariaDB on staging
11. Unmount and cleanup LVM
12. Detach replica disk from staging VM
```

## Key Technical Challenges Solved

### 1. **Duplicate LVM Volume Group UUIDs**
**Problem:** Replica and staging disks both had `VolGroup` with identical UUIDs (cloned VMs)

**Solution:**
- Used LVM device filters to force visibility of only the replica disk during import:
  ```bash
  --config 'devices { filter = ["a|/dev/sdb.*|", "r|.*|"] } global { use_lvmetad = 0 }'
  ```
- Used `vgimportclone` to re-UUID and rename replica VG to `VolGroup_replica`

### 2. **XFS Duplicate Filesystem UUIDs**
**Problem:** XFS refuses to mount filesystems with duplicate UUIDs

**Solution:**
```bash
mount -o ro,nouuid /dev/VolGroup_replica/lv_root /mnt/replica-disk
```

### 3. **Sudo Without TTY**
**Problem:** SSH commands require passwordless sudo but default sudo config requires TTY

**Solution:** Added to `/etc/sudoers.d/zzz-admin`:
```
admin ALL=(ALL) NOPASSWD: ALL
```
(File sorts last alphabetically to override group permissions)

### 4. **VMware Snapshot Chains**
**Problem:** Can't detach disks part of snapshot chains, can't boot with LVM name changes

**Solution:**
- Cloned disk to flatten snapshots:
  ```bash
  vmkfstools -i "source.vmdk" -d thin "staging-rescue.vmdk"
  ```
- Edited VMX file to replace disk reference

### 5. **Large Database Rsync Timeout**
**Problem:** 30GB database sync exceeded default 5-minute SSH timeout

**Solution:**
- Increased timeout to 3600 seconds (1 hour)
- Removed `-v` (verbose) flag from rsync for performance

## PowerShell Script Configuration

**File:** `C:\Scripts\MariaDB-Staging\Sync-MariaDBStaging.ps1`

**Configuration:**
```powershell
$Config = @{
    ESXiHost = "a.b.c.d"
    StagingIP = "a.b.c.d"
    MySQLDataPath = "/var/lib/mysql"
    MountPoint = "/mnt/replica-disk"
    CredentialPath = "C:\Scripts\MariaDB-Staging"
    ReplicaVGName = "VolGroup_replica"
}
```

**Credentials (created once):**
```powershell
# Create encrypted credential files
Get-Credential | Export-Clixml C:\Scripts\MariaDB-Staging\esxi-cred.xml
Get-Credential | Export-Clixml C:\Scripts\MariaDB-Staging\linux-cred.xml
```

**Key Functions:**
- `Write-Log` - Timestamped logging with color-coded severity
- `Invoke-SSHCmd` - SSH command wrapper with configurable timeout and error handling

## ESXi Commands Used

**VM Management:**
```bash
vim-cmd vmsvc/getallvms                    # List all VMs
vim-cmd vmsvc/power.getstate <vmid>        # Check power state
vim-cmd vmsvc/device.getdevices <vmid>     # Get VM devices
```

**Disk Operations:**
```bash
# Attach existing disk
vim-cmd vmsvc/device.diskaddexisting <vmid> "<vmdk_path>" <controller> <unit>

# Detach disk
vim-cmd vmsvc/device.diskremove <vmid> <controller> <unit> <delete_file>

# Clone/flatten disk
vmkfstools -i "source.vmdk" -d thin "destination.vmdk"
```

## Linux LVM Commands

**Device scanning:**
```bash
# SCSI rescan
for h in /sys/class/scsi_host/host*; do echo '- - -' | sudo tee $h/scan >/dev/null; done
sudo partprobe

# Find new disk
lsblk -ndo NAME | grep -E "^sd[b-z]$"
```

**LVM operations:**
```bash
# Import cloned VG with new name and device filter
sudo vgimportclone --config 'devices { filter = ["a|/dev/sdb.*|", "r|.*|"] } global { use_lvmetad = 0 }' \
  -n VolGroup_replica /dev/sdb5

# Activate and mount
sudo vgchange -ay VolGroup_replica
sudo mount -o ro,nouuid /dev/VolGroup_replica/lv_root /mnt/replica-disk

# Cleanup
sudo umount /mnt/replica-disk
sudo vgchange -an VolGroup_replica
sudo vgremove -f VolGroup_replica
```

## Data Sync

**Rsync command:**
```bash
sudo rsync -a --delete \
  --exclude='*.pid' \
  --exclude='*.sock' \
  --exclude='*.err' \
  /mnt/replica-disk/var/lib/mysql/ \
  /var/lib/mysql/
```

**Flags:**
- `-a` - Archive mode (preserves permissions, ownership, timestamps)
- `--delete` - Remove files in destination not in source
- Excludes runtime files that shouldn't be copied

## Prerequisites

**Windows Control Machine:**
- PowerShell 5.1+
- Posh-SSH module: `Install-Module -Name Posh-SSH`

**ESXi:**
- SSH enabled
- Root or admin SSH access

**Staging VM:**
- RHEL/CentOS 7
- Sudo access for admin user
- Passwordless sudo configured
- MariaDB/MySQL installed
- LVM tools (pvs, vgs, lvs, vgimportclone)

## Execution

```powershell
# Manual execution
C:\Scripts\MariaDB-Staging\Sync-MariaDBStaging.ps1

# Scheduled task (Windows Task Scheduler)
# Action: PowerShell.exe
# Arguments: -ExecutionPolicy Bypass -File "C:\Scripts\MariaDB-Staging\Sync-MariaDBStaging.ps1"
```

## Logging

Logs stored in: `C:\Scripts\MariaDB-Staging\Logs\sync-YYYY-MM-DD-HHmmss.log`

Format: `[YYYY-MM-DD HH:MM:SS] [LEVEL] Message`

Levels: INFO, SUCCESS, WARNING, ERROR

## Benefits

1. **Speed** - No network transfer; direct disk access
2. **Consistency** - Point-in-time snapshot from replica
3. **Automation** - Fully scripted, can be scheduled
4. **Safety** - Replica mounted read-only, staging DB stopped during sync
5. **Space efficient** - No intermediate backup files

## Limitations

1. Requires staging and replica VMs on same ESXi host (same datastore access)
2. Replica VM must be powered off during sync
3. Staging database unavailable during sync (~15-30 min for 30GB)
4. Requires ESXi SSH access (security consideration)

## Future Enhancements

- Support for cross-datastore scenarios (storage vMotion or NFS)
- Parallel execution for multiple staging environments
- Pre/post-sync SQL scripts execution
- Slack/email notifications
- Validation checks (row counts, checksum comparison)

## Lessons Learned

1. **LVM duplicate UUIDs are common with cloned VMs** - Always use device filters with vgimportclone
2. **XFS requires `nouuid` for duplicate filesystems** - Unlike ext4 which mounts duplicates by default
3. **Sudoers file order matters** - Later entries override earlier ones; use `/etc/sudoers.d/zzz-*` for final say
4. **VMware snapshot chains prevent disk operations** - Flatten when possible for flexibility
5. **SSH timeouts need tuning for large operations** - Default 300s insufficient for 30GB+ syncs
6. **Always test recovery procedures** - VG rename broke boot; needed alternate recovery path

---

**Total Development Time:** ~4 hours of troubleshooting LVM/boot issues, 30 minutes for working script

**Script LOC:** ~214 lines PowerShell

**Typical Sync Time:** 5-15 minutes for 30GB database (varies with change volume)

Overall, it's a reasonably elegant solution. I'm not mad on needing SSH open on the ESXi host, having been hacked and crypto-malwared this way once before, but it does provide useful functionality. Daily staged report snapshots are go.


Pour conclure....

Reinforcing my weaknesses

What is the actual conclusion here? Having spent half the week jetting around Scandinavia and freezing my brain, I'm not sure if there is an actual one, other than I'm better at annoying the French than I am at software development, and Claude still remains my tool of choice for pretending that I can code.

While there remain many reasons to be sceptical about the abilities of AI, it is undeniable that it can speed up certain technical tasks dramatically. Sure, I could have eventually conceived this, but it would have taken closer to 3 or 4 days of development effort to find the commands, understand the syntax, create usable code blocks and then test it. Instead I have 3.5 days of my life back. Which is important, especially when you don't know if some deranged tyrannical piece of teak furniture is going to reduce your life expectancy.

Anyway - having returned this evening to discover not just my unfinished article, but also a blog server failure and a sea of wires in my office, I've run out of enthusiasm for this post.

For anyone who's interested, I've put the anonymised code into GitHub for you to play with:

GitHub - willkennedy78/mariadb_sync: Some scripts for extracting, syncing and staging MariaDB databases using Veeam and the vSphere API
Some scripts for extracting, syncing and staging MariaDB databases using Veeam and the vSphere API - willkennedy78/mariadb_sync
Reinforcing my weaknesses

Until next time, when my brain has thawed out.

Love ya. TTFN.

Wxx

29.1.2026 20:09Reinforcing my weaknesses
https://blog.shwok.com/reinforci...

Modelling Some Context

https://blog.shwok.com/modelling...

Agentic AI. Genius, evil genius, or just pointless?

Modelling Some Context

For the last three months, I've been sitting, patiently waiting for someone to tell me that the great "AI Bubble" has burst. Finally, the Elongated Muskrat, fibber Altman and all the associated hyperbole will implode in a puff of logic. Or perhaps not.....

Modelling Some Context

Like most, I am astounded at the rate of AI development. It's growing faster than DJT's list of fascist felonies. There has been an awful lot to dislike about both. The amount of hot air and promises, vs what has actually been delivered, for example.

Some of the more recent AI developments, where actual real-world data can be used to augment the general AI model have proven quite successful, albeit somewhat dangerous if you don't know exactly where your real-world data is going, and how it will be reused, especially anything personal, which by all accounts is going to end up in some maga mega data centre used to create an automated dystopian hell where the state knows everything about you.

So, imagine the surprise when you discover that there are actually some sensible uses beyond undressing unwitting girls and generating cat memes.

Recently, I've been testing Model Context Protocols, or MCPs - I wrote some content about this in my previous post, but I've actually been so impressed with one product in particular that I wanted to put some more thoughts down on paper.

If you preclude the Muskrat's paedophile undressing tool, there are really three major players in the mainstream AI space. Open AI's ChatGPT, Google Gemini and Anthropic's Claude. I've had the relative luxury of playing with all three of these side by side in my home lab to see how they compare at different tasks. I'll drop a small summary table at the end, but for now, given that this is a home automation and improvement blog, I'll focus on my comparative test.


Deck the halls (with lots of buttons.....)

Oh wait, that season's over now, but my projects aren't.
Modelling Some Context

This is a Densitron ProDeck. I've talked about it before. It's one of the products made by the company I work for. It's really meant for the commercial broadcast business as a front-end for video switching and manipulation for things like control rooms and outside broadcast units.

In the spirit of CTRL+ALT+DELusions, however, I've tinkered with it, and made it do something different. Inside, it's basically a micro x86 PC, with an 8" touchscreen. Its secret weapon, however, is the button overlay, which provides nice tactile push buttons that can dynamically change context as required.

🆒
For anyone who has played with an Elgato Streamdeck, this is its far superior older sibling.
- No host device needed
- PoE powered
- 24 and 40 button variants, with more configurations coming
- Compatible with Bitfocus Companion, the app used by most creators and studios
- Cooler, chunkier and better built in every way.
- Now (you're welcome) compatible with Home Assistant via my dashboards
https://www.densitron.com/products/control-panels/prodeck

Having extracted one through some sweet-talking, I've made mine into a rather lovely desktop controller and viewer for Home Assistant. For anyone who loves automation but yearns for the physical feedback of actual buttons, this is for you!

Anyone who is already familiar with my skills will know that my coding prowess extends no further than shell scripting with PowerShell, DOS and a bit of BASH. Any of these horrible languages which incorporate 15 different types of brackets and parentheses are the devil spawn, and I will not attempt to learn them. Any which also autistic in their requirements for tabs and double-spacing are actually Lucifer himself IMO.

This presented a problem, because Home Assistant is based on JSON and YAML, which are exactly the type of code notation I am referring to. So it will come as no surprise that I had a spot of help with this project.


Vibe coding for old people.

Enter my AI mates that I've been testing. In my article:

Captain’s Log 🪵Stardate 🌠2026.01.04
Looking to the bright AI future, because why not? I’m not sure one ever confesses to being a Trekkie in public forums. Certainly it’s been many years since I was released from treatment for Star Trek related psychological conditions. It was all about the TNG for me. I was never
Modelling Some Context

I showed a little of what could be done with an MCP and Home Assistant, and a little more about my frustration with having to click "allow" every time the MCP so much as farted.

Not to be defeated by this, I did what any decent techie of a certain age would do. I turned to the command line.

There are now many tools for this. Just recently I went over to the dark side and installed an IDE for the first time ever. VS Code is actually pretty cool for editing all kinds of files, and can now wield LLMs to enhance your editing experience. Or, in my case, do the job for you.

I set all three contenders the same task. In essence:

"Here is a ProDeck. Here is my Home Assistant, into which I have plumbed an MCP connection. Go build me a dashboard which controls...."

The contestants were provided with the same exam materials. A copy of the ProDeck guide with the screen resolution and pixel by pixel layout of the buttons and touch overlay, some example dashboards to reference from my HA setup, and a prompt which said something like:

Build a Home Assistant dashboard (ProDeck Test) designed for a 24-button ProDeck hardware unit running Lubuntu + Firefox, with a touch overlay.

This evolved into:

Let the competition begin.


ChatGPT

Let's start with a statement to ensure a fair fight. At the time of the test, I wasn't aware of Open AI Codex. So the tasks performed were done so via the web interface. This has pros and cons - performance is comparatively poor, but it is substantially quicker to embed things like images with drag and drop that includes visuals.

The poor performance I speak of is really twofold. In my last post, you saw the need to explicitly authorise each MCP transaction, making a long development chat a rather tedious process. There are also, IMO, some inherent performance problems with the 5.x ChatGPT models, which I believe stem from how much client-side processing is performed (*you take the hit so they don't have to...). Long chats in particular are affected and the delay and sometimes freeze between asking the question and getting a response is extensive, to the point of cripplingly annoying.

That said, ChatGPT did a decent job of assembling an initial framework from the prompt. It has a decent grasp of Home Assistant's functionality in context and is able to assemble a working prototype with a few revisions. There were some struggles with more complex code items and occasionally with code syntax - especially when multi-level nesting of code artifacts is needed.

Hallucination (or as I prefer to say "plausible bullshit") levels were medium. There were quite a few U turns when the model was presented with facts or told specifically to consult external sources. At one point it argued with me about the use of certain delimiters and parentheses, basically contradicting the code it had written about 20 minutes earlier.

Overall, poor interface performance aside, Chatty Gee gets second prize.

🥈
ChatGPT:
Understanding the brief 70%
Number of revisions needed 50%
Plausible bullshit 20ish %
Performance 30%
Finished article 55%

Overall, I still like ChatGPT, but its strength definitely lies in language and general reasoning, not code. It's still my "go to" to help with this blog, and I like the way it has learnt my preferences and accurately carries them forward. It shouldn't give up that day job. 6/10

Google Gemini CLI

My first command line and IDE effort was with Gemini CLI. For this, I have had to swap my lightsabre for a double-ender (pun resisted) and turn the dark side. I had to install codey nerd stuff. My PC now has a local Node.js container and associated deployment tools. My WSL instance has never been so busy CURLing and building code.

For additional Spod Points I've also installed the plugin for VS Code

Modelling Some Context
Channelling the inner Sheldon Cooper.....

Configuration of the MCP was reasonably straightforward, but I'm not appraising any of the tools on this, mainly because it was my first time with the double-ender, and nearly fifty year old men are not always the speediest out of the blocks.

The transition to CLI was not totally frictionless, especially when initially trying to work out how to "show" something in the form of an image - a 2 second job in a browser-based AI.

There proceeded to be about 15 minutes of fucking about, trying to find, access and upload to my Google Drive (for me an operation about as common as Giant Pandas mating, given that my entire life is in M365) only to discover that the privacy settings in drive don't actually allow Gemini to read documents shared using a link. It then advised me to upload to a sharing service that was no longer available in the UK (a victim of JD Vandickhead's "leftist censorship" apparently - read, they don't want kiddie porn on there), nominated a further unusable one before finally announcing that it does actually have access to my c:\users\will folder. You can @mention files in Gemini CLI, including the path and it will read them.

Other neat features include being able to create defined "checkpoints" in the chat that you can return to later and the ability to drop to a Google web search and import the contents.

To avoid the eerie suspense ageing you, I will now reveal [that the ancient planet we are orbiting around is in fact Magarathea]..... sorry, got carried away.

Gemini CLI came third in the subjective test, for the following reasons.

1 - It made a complete hash up of the initial concept, and kept getting stuck in processing loops with the MCP, to the extent that I eventually gave it Chatty Gee's framework and told it to modify it. Which it did, but with a level of fucking about hitherto reserved for an Essex swingers club on a Pineapple Cruises tour.

2 - Operationally, it is literally smoking crack. It invented entities, card types, HACS extensions and so much more. I think this is inexcusable because it quite clearly has plenty of information in context, but as the context fills up it gets more and more confused.

We were about 4 seconds away from a forcible disconnection after it decided that the best approach to a problem was to start again, which included deleting dashboards, helpers, entities and scripts, to the extent that I had to restore from backup.

This wasn't a one off either, it had a particular penchant for some group helpers for lighting and deleted them to the extent that I (a) created a YAML for rapid reimport and (b) felt like a primary school teacher when I kept asking "have you deleted my helpers again" in response to the entire dashboard being filled with yellow warning triangles.

3 - It repeatedly ran out of input tokens into the context window. The handling of this is quite poor. In some circumstances you can compact the chat history, but this didn't feel like coming out to play when I needed it. The net result was a need to close and invoke a new session, but with the huge caveat that you couldn't resume from the checkpoint because that very action would immediately fill the entire context again.

🥉
Google Gemini CLI
Understanding the brief 40%
Number of revisions needed 10%
Plausible bullshit -6793.873 %
Performance 60%
Finished article 30%

Gemm Ineecli failed to complete the task at hand, put my cherished Home Assistant in danger and nearly got me a drug squad raid for the amount of crack it got through. It's a shame, because the web based Gemini platform is pretty strong. Performance here, as on the web, was much faster than ChatGPT across all prompts and inputs. I suspect there are other tasks it is better at, if the example of the Nano Banana imaging engine or Google Veo are anything to go by. I'll be testing its research capabilities another time. Not sure what the "day job" is yet, but it's certainly not a YAML development position. 3/10

Anthropic Claude Code

I'd never touched an Anthropic product before this test, but sentiment among co-workers and generally online was that this was the tool for the job I was trying to do.

The observant amongst you will have concluded that there can only be one winner, and that the filling of second and third places can mean only one thing. This puppy is Best in Show.

What I didn't expect going into the evaluation was quite how much better it actually is a coding tasks than the other two tools. My analogy would be that if one were to cock one's hat in say, London, Claude could knock the other two contenders into it from say, Tokyo. Without leaving its business class seat.

It was a rocky start. Having had infinite joy with Gemini using node.js on Windows, I went balls-deep on the WSL implementation with this one. Much CURLing later (while simultaneously stroking the metaphorical beard and admiring my Cupertino-branded iSandals) and the environment was installed and IDE integrated, but the MCP staunchly refused to be connected to. The self-diagnosis feature had clearly had lessons from a chocolate toaster, and went round in nearly as many circles as a flight into Heathrow before concluding it didn't know what the problem was.

Modelling Some Context
Gemini - better at images than code, for sure

Eventually, it all came down to Claude Code and Claude Desktop needing entirely different configurations, and I'd chosen the wrong one. My feathers were a little bit ruffled after this, but oh boy was it about to redeem itself.

After 30 years in IT, it's fair to say that I am quite cynical of things which appear to be shiny, but are actually what we will politely term "a crock of old shite" when you lift the lid. So, when something renders me near speechless and making "wow, that's really fucking good" mutterings, some Unicorn poo must have just been discovered.

Neither of the other two candidates managed a working prototype on the first attempt, which Claude did with aplomb. Not only that, but it picked up Gemini's crack pipe (or "shwok", a slang my attention was amusingly drawn to by our company accountant, whom does not seem the type to be trawling Urban Dictionary) tossed it aside, corrected all the code mistakes and added new functionality within 3 prompts. No prefects needed to ensure entity deletions were not being smoked behind the bike sheds.

This is one smooth operator. There are several things which I have never seen before in an AI tool, but the one that was ultra-useful was a sophisticated "planning mode" which is essentially like Microsoft's "What If".

Modelling Some Context

You can pull the trigger and it will crunch the answer before presenting its plan in a neat set of bullet points for you to critique, while also asking salient questions about any variables you might need to address. You can then say "Yep, go on", "OK, but let me check your workings as you go" or "Nope - let me take your work and send it to the head teacher". Very smooth, and very confidence inducing.

If you use it with VS Code it also presents a diff of any changes showing the outbound code in red and the new code in green for you to approve.

There is one significant drawback - cost. But then, you gets what you pays for. The entry point for Claude is £20 a month. I managed to use up my token count in about 2 hours on this plan - admittedly I'm crunching about 2,500 lines of code in context for my dashboard, but it wasn't much. A nice feature is that you can choose immediately whether to wait until the 12 hour period is up (and then just type "resume" and it cracks on again) or pay for more. £100 a month gets you five times that, which I have not yet managed to fill, or £250 gets you twenty times the capacity. However, against the other two models, which both have a completely free tier, it's pretty pricey.

However, if Claude is the future of AI Vibe coding and traditional code enhancement, then the future is quite bright. Maybe even brighter than Vandickhead's teeth, which I sincerely hope someone knocks 0ut next time he tries to tell Europe about democracy.

🥇
Anthropic Claude Code
Understanding the brief 85%
Number of revisions needed 80%
Plausible bullshit 8 %
Performance 75%
Finished article 85%

Claudie C is the cool cat in town. If you can absorb the slightly eye-watering token cost, this is the AI equivalent of Antony Joshua vs Jake Paul. It makes Gemini seem like a rank amateur at code compilation, code review and generally understanding a moderately complex brief. It also looks much better with a Shwok in its mouth.
I'm genuinely looking forward to seeing what else this can do -some other MCPs have been connected, and the world is my lobster.
Reluctantly but palpably impressed. 9/10

That's all for this week my furry friends. A few pics below of the finished article, which I took great pleasure in discussing earlier today with the lovely Phil & Rohan from the Home Assistant Podcast.

We chatted about AI, bastardising Tuya devices, drinking straw antennae and why girls can't turn lights off. My chat with them is due to air on 18th February, and my lovely readers will be the first to know.

Modelling Some Context
They look so much cooler than me doing this....

Until next time.

Sending love, the world needs it right now. Especially Greenland.

Asavakkit, inuulluaqqusi

Will xx

17.1.2026 22:10Modelling Some Context
https://blog.shwok.com/modelling...

Captain's Log 🪵Stardate 🌠2026.01.04

https://blog.shwok.com/captains-...

Looking to the bright AI future, because why not?

Captain's Log 🪵Stardate 🌠2026.01.04

I'm not sure one ever confesses to being a Trekkie in public forums. Certainly it's been many years since I was released from treatment for Star Trek related psychological conditions. It was all about the TNG for me. I was never a William Shatner fan, but there was something about Patrick Stewart in that role that kept twenty-something me entertained for some time.

Anyway, enough nostalgia. It's 2026 now and we must look forwards. Into the direction of a bright AI future, powered by 33 Billion barrels of plundered Venezuelan oil, mistakenly stolen sold by a piece of teak furniture who had presumed it to be some sort of fake tan.

This weekend, among the manic de-Christmasing, (which, rather like the lead-up to the sacred event, must happen before the start of school, or zombies and hellfire will be released) I decided to investigate the crazy notion of allowing an LLM access to my Home Assistant configuration.

Aside from the possibility of Mrs O-K having ordered me a frontal lobotomy while I slept, there were a couple of reasons why I wanted to investigate this.

What I'm talking about here is a Model Context Protocol or MCP. For the uninitiated, this is in effect a "schema" which publishes the structure of an application or its API in such a way that an AI model can read from or write to it

Obvious security concerns abound, but before we get all 1984 about it, there are several layers of security in place, and ultimately I can pull the plug on access any time. Plus, the way it's currently configured, every batch or cluster of commands requires explicit authorisation in order to execute. Sometimes this does feel a bit painful, but I think it's the right side of the security fence to be on currently. You are obviously allowing something else to access your HA instance, and even though this is done securely using a Cloudflare tunnel with control around it, better to be safe than sorry.

Captain's Log 🪵Stardate 🌠2026.01.04
The first of many requests this evening to access certain elements of my configuration
Captain's Log 🪵Stardate 🌠2026.01.04
and another.....
Captain's Log 🪵Stardate 🌠2026.01.04
and another!

You get the idea. Anyway, back to my reasons, other than it being quite cool.


Deposing "General Nest"

1: I've got this whole load of new Shelly gear to install to replace the bipolar sociopathic Google Nest thermostat which is still, despite sub-zero temperatures nearly every day this week, decreeing that 9°C is the correct temperature to maintain in the morning. As I start work tomorrow, it may get reprogrammed with a rolling pin if it refuses to heat the house up.

Fleeing the Nest - Part 1
Saying goodbye to the dummest “smart” thermostat ever. Picture this, it’s 2017, I’m fresh-faced and have a twinkle in my eye. Oh wait, no. It’s a bit of glitter from one of the many bits of pink plastic shite that adourned our lounge back then. The face was only fresh
Captain's Log 🪵Stardate 🌠2026.01.04

The idea of the MCP is that it can examine the various elements of my heating system which are exposed to HA, and then help me design my heating to take advantage of all the telemetry which I can provide, while still having local control, without HA dependence, provided by the Shelly gear.

This will be especially cool if I can use things like the Sonoff TRVs I purchased and the information exposed by my whizzy Viessman smart boiler to improve the efficiency. Currently under General Nest's lookout, upstairs is like a weekend in Marrakech, while downstairs is three nights in Vladivostok.

I will update you once we've moved forwards with the project. I've run out of time this holiday, and I thought it better for my marriage not to disable the boiler all day when it's about -1 outside.


Making a cool control thing...

2: I've been struggling for a while to get a Lovelace dashboard working effectively on the Densitron ProDeck which I've been testing. This is a product manufactured by my place of work, and is primarily used in the broadcast market for controlling AV applications, but it could be pretty cool in certain home automation scenarios too.

The main problem I had was understanding how the browser viewport was presented to Home Assistant and how to line up the visual elements so they are correctly behind the buttons which provide touch feedback.

As you can see, there have been a number of iterations here, but the most useful thing was that I could ask Chatty Gee (other AIs are available, and supported) to query the telemetry from the Prodeck and ask it to verify certain elements.

Firstly we identified exactly how the visual elements were constructed on screen. I'm actually using a Picture Elements card in HA because it supports precise positioning of visual components without needing any HACS plugins or modifications. As you can see in the first image, we've got the various button and screen c0mponents lined up in a generic way.

After several hours, some swearing, and a realisation that there's much about Docker and containerisation

(yes, that's containerisation with an S, dear USA colleagues)

which I don't understand, despite my learning curve with TVbellHeadEnd recently, we got to a working prototype that controls some basic lighting functions natively in HA, without any API or third-party tools needed.

There are some limitations to the extent of the tool. I'm not using the officially sanctioned MCP, from Open Home Foundation (sorry guys), but the unofficial, and greatly more feature rich one available here:

Home Assistant MCP Setup Wizard
Configure ha-mcp for your favorite AI assistant
Captain's Log 🪵Stardate 🌠2026.01.04

The unofficial HA MCP website.

So far, I've been able to create dashboards, helpers, automations, scenes etc, and read status information for devices, entities, routines, helpers and quite a few other attributes within HA. It's been genuinely useful, if a little bit frustrating in its stop-startedness. This is compounded by the fact that OpenAI still don't seem to have managed to fix the performance issues with long-running or detailed chats, particularly ones which get brought back into context. ChatGPT is however, in my opinion, currently the LLM with the most Home Asssistant context available, and therefore gives the most suitable answers.

Having clicked "allow" about a million times, in between response pauses which feel like I'm physically aging, I don't think it's quite there yet. However, I'm keen to see what ideas it can come up with to improve the heating controls, and I genuinely think this sort of tool is the path to home automation becoming more generally accessible to the non-tinkerers of the world. If a tool can understand its extents and then pretty much set itself up (ideally without me clicking a permit button for each action) then there is much to be positive for.


Hopefully I'll be able to up the cadence of my posts a little, now the various festive demands have ceased. Not too much on the friends and family IT support front this year, but a number of last-minute customer and employer requirements took more of my time than I anticipated.

I'm off to bed shortly, as the daily grind starts again tomorrow and school starts again on Wednesday ( + = peace, - = early mornings). Just a few more clicks of

Captain's Log 🪵Stardate 🌠2026.01.04

to go. Then a little settle down to read about all the features of my shiny new TV. As predicted, the outcome of repairing the acquired unit was the more expensive option. Still, now I have a mini-LED QLED contraption to play with, and the picture quality seems pretty epic. I will review it in due course.

Until then. Buenos noches mis amigos.

Love you lots.

Wxx

4.1.2026 21:59Captain's Log 🪵Stardate 🌠2026.01.04
https://blog.shwok.com/captains-...

For Old sin(c)=

https://blog.shwok.com/for-old-l...

Lurching terrifyingly into 2026 with my usual scant levels of preparedness

For Old <lang> sin(c)=

And just like that, it's 1st January. Still not entirely sure where the last few months of 2025 went. I wonder if they simply just fucked off into the ether before Rachel From Accounts and the Lego haired moron found a way to tax them.

2025 was in many ways an unremarkable year. There are still some utter twats with zero qualifications running (in the loosest sense of the term) both the first and seventh-largest economies on earth. The Elongated Muskrat is inching ever closer to the archetypal Bond villain - part genius maverick creator and part deluded man-child with more offspring than a horny springtime rabbit and a terrifying addiction to donkey tranquillisers

For me personally, it's been a voyage of discovery, which started with a throwaway comment at the school gates, via some drunken ramblings with a marketing colleague, some psychiatric and psychological assessments and endless NHS bureaucracy. To tell me what I sort of already knew. I'm a bit different, in a bat-shit-crazy, massively inappropriate, Marmite sort of way.

The discovery was that, that's actually OK. As I surge towards my half-century, I think I'm finally comfortable with being a middle-aged Tory geek who terrifies HR departments.

Bad dad jokes, and the paying forward of childhood trauma derived from both 1980s parenting and over-exposure to pine panelling, Soda Stream and the finest British Leyland automobiles are also personality features I have come to begrudgingly accept, along with:

❌ 🧚I am not Peter Pan, despite my many misconceptions. Eventually I do have to grow up, even if I do still find farts funny.

❌ 🐴I am also not Shergar, even though I am partial to a horse noise or five as a measure of exasperation. Sometimes, just to annoy Mrs O-K.

❌💰I probably won't ever be "rich" in the way my twenty-year-old self thought I was going to be.

✅🧔🏾‍♀️🧔🏿‍♂️🧔🏽‍♂️🧔🏻It is likely I will offend at least one ethnic group on a night out. Possibly more, depending on which groups and how attentive my audience is.

❌🤮I still can't abide Southern Comfort, some thirty years after my untimely demise attributable to this, some Young Farmers and an eighth of bad nineties weed.

This hasn't been an epiphany, as such, more a gradual orientation towards a future where the quantity of fucks given is inversely proportional to the number of miles on the clock.

Good luck, future DDs - based on this realisation, you're going to need it in spades. Oh, and you're welcome for the half a million or so quid invested in your education - suck up the belligerent old fart.....


These are a few of my favourite things......

The benefit of this Neuro-spicyish unshaming is that I've rediscovered some things I'd stopped doing and revealed some new interests.

I've always been a soldering iron kind of a guy, but now I'm unashamedly a multi-soldering solution kind of a guy, with shelves full of little sorter boxes of components and connectors, and offcuts of cables that might come in handy, one Sunday next decade, when the mystic connector block aligns with Mecca.

I'm also now the type of guy who wastes invests large swathes of time trying to make stuff happen in my house automatically, for no other reason than "because I can" or because it was mentioned on one of the more "specialist interest" podcasts I have now found I tune into.

❌ Is it necessary to know the relative humidity of every room in my house to three decimal places?.... No.

❌ Or, when someone has most recently occupied the downstairs loo?..... Also, no.

✅ Will I find a use for it? Almost certainly yes.

✅ Do I derive great pleasure from exposing Mrs O-K as the Luddite analogue device seeker that she is? Also yes.

Especially at this time of year when my new-fangled digital calendar continues, in perpetuity, with no split-screen content transposition required.
For Old <lang> sin(c)=
Not the real Mrs O-K for reasons of copyright and my future marriage...

Writing and the satisfaction of crafting something deliciously witty, un-woke or insightful has moved from a skill only exercised when attempting to woo a certain type of lady (the type who knows an errant possessive apostrophe and is not afraid to show it), to an almost weekly event. It's both anxiety-inducing when trying to conceive content and meanwhile deeply cathartic to be able to rant about everything which is wrong in my world, even if that is mostly French people and / or the betoupeéd piece of teak garden furniture masquerading as a human being.


And so, I leave 2025 with mixed emotions. I still don't know what I want to do when I grow up, but I've become more tolerant of both myself and future me's career choices.

The next few years hint at being quite interesting. Not solely because of the confluence of teenagers and menopause (golf, anyone??) but because of the infinite uncertainty meted out to the many from the actions of a few deluded megalomaniacs who appear not to have read the well-known self-help book "That's not my dictator, his moustache is too puny" and subsequently engage in an extended game of What's the time Mr Wolf "Geopolitics".

For Old <lang> sin(c)=

I'm both astounded by the advances in AI and terrified for what it means for us as a race when in the hands of my book-readers above.

As a certain British comedian recently pointed out, AI lowers the cost of running a dystopian, purportedly neoliberal regime by about 90% when compared to all that poison umbrella and propaganda nonsense.

It's no wonder there is now a massive land grab under way to see who can bankrupt their investors first while converting all available particles of the element Silicon into massive, multi-gigawatt sovereign datacentres that can ingest every possible piece of civilian telemetry (including my downstairs loo occupancy rates) for use in what will undoubtedly become the next war. That of information authenticity, counterpointing the deepfake marketing machine that will herd society into believing any old drivel fed to them by our power-hungry friends above.

Did someone say "insurrection" ?

~

At which cheery finale, I shall bow out, with the thoughts of:

So long, 2025, and thanks for all the fish.

Happy New Year.

Love you. Bye.

Will xx

1.1.2026 15:54For Old sin(c)=
https://blog.shwok.com/for-old-l...
Subscribe

🔝

Datenschutzerklärung    Impressum