Wednesday, 16 September 2026

GPU Passthrough Crashes on UnRaid

Fixing RTX 3090 VFIO Passthrough Crashes on Unraid: QEMU, IOMMU and Physical Address Width

I recently ran into a particularly awkward GPU passthrough problem on my Unraid server. The machine is based on an AMD Threadripper 3960X with 128 GB RAM and an NVIDIA RTX 3090, with the 3090 passed through to a Windows 11 VM.

GPU passthrough initially appeared to work. Windows booted, the NVIDIA driver loaded, the desktop was stable, and even 4K video playback worked normally. However, as soon as the GPU was placed under substantial 3D load, it disappeared from the host and the VM failed.

Symptoms

Running Unigine Superposition at 1080p Medium caused the display to go black almost immediately. The Unraid/QEMU logs then contained errors along these lines:

vfio: Unable to power on device, stuck in D3 vfio_container_dma_map(..., 0x383000000000, 0x10000000, ...) = -14 (Bad address) 0000:4d:00.0: PCI peer-to-peer transactions on BARs are not supported. error: kvm run failed Bad address

Afterwards the GPU would often be inaccessible to VFIO, with failed D0/D3 power transitions, failed resets and PCIe link recovery attempts. A complete host power cycle was sometimes required before the card could be passed through again.

Monday, 25 May 2026

Unifi Doorbell -> BlueIris

Getting a UniFi Doorbell into Blue Iris (the hard way, because the easy way broke)

I use Blue Iris as my primary CCTV platform, but like many home lab tinkerers, I also have some UniFi kit in the mix. In this case, a UniFi doorbell camera managed by UniFi Protect on a UDM-Pro.

On paper, this should be easy. UniFi cameras can expose RTSP streams. Blue Iris can ingest RTSP streams. Job done.

Except, as usual, it wasn't quite that simple.

Wednesday, 13 May 2026

Building a Home Energy Dashboard with Node-RED, MQTT, InfluxDB and Grafana

I recently started building a local energy monitoring dashboard for my home solar setup. The goal was to take live data from my Solis inverter, process it in Node-RED, publish it through MQTT, store it in InfluxDB, and visualise it in Grafana.

This post outlines the first working version of that setup, and is a continuation of the initial retrieval of data from Solis into NodeRed


The Overall Architecture

The final data path looks like this:

Solis inverter
  ↓
Modbus TCP
  ↓
Node-RED
  ↓
MQTT / Mosquitto
  ↓
InfluxDB
  ↓
Grafana

The idea is to keep MQTT as the central message bus. Node-RED reads and decodes the inverter data, publishes useful values to MQTT, and also writes those values into InfluxDB for historical storage. Grafana then reads from InfluxDB to provide dashboards and charts.

Monday, 11 May 2026

Importing Solis Inverter Data to Node Red

I wanted a reliable way to pull live data from my Solis hybrid inverter into Node-RED. The goal was not just to view the same information shown in SolisCloud, but to make the data available locally for dashboards, automation, MQTT, Home Assistant / Homey, and eventually longer-term graphing in something like Grafana.

The SolisCloud app is useful, but it is not ideal for automation. It can lag by several minutes, and the values shown in the app are not always updated at the same moment. For automation, I wanted local data directly from the inverter/datalogger path.

This is what I ended up with;


Sunday, 5 April 2026

Improving Windows 11 VM Performance on Unraid (Threadripper)

I’ve been running a Windows 11 VM on my Unraid server for a while now. It’s reasonably well specced. Threadripper 3960X, RTX 3090 passed through, dedicated SSD. On paper it should feel very close to bare metal.

In reality, it didn’t.

Nothing obviously broken, but general UI usage felt a bit sluggish. Windows took a little longer to open things than expected.  With the help of my ChatGPT sidekick, I decided to go through the config properly and see what could be improved. Logging it here mainly for my own reference later.

Monday, 23 September 2024

HDMI Clearout

I recently purchased a 4x4 HDMI extender Matrix to distribute video signals around the house. (blog post to follow0. This consolidates a number of discrete devises I'd previously used and tested for this task. In retiring some of them, I took inventory of all the HDMI switches, splitters and distributors I have, and it turned out to be quite a collection, some of which were languishing totally unused.

I've listed a lot of them for sale on a reputable local classifieds site if anyone is interested. (likely best suit people in EU as otherwise import duties will apply).



Friday, 20 September 2024

Updates to announcing Reolink doorbells on Alexa

A while back, I wrote a post on how I build a Node-Red flow to allow me ask specific echo devices to announce visitors pressing my ReoLink doorbell. This worked great, but there were a couple of shortcomings; 
 
  • The list of registered devices would last only as long as Node-Red was active. If I needed to restart the Node-Red docker for any reason, I would also need to re-register announcement devices. 

  • The ONVIF node the flow relies on is a little flaky, and will occasionally just disappear from Node Red. 

I've added functionality to store the list of devices in a text file, so it persists between Node-Red restarts. I also added some notes on how to recover from the self-destructing ONVIF nodes, bring this all up to v1.1.1.


The device list saving is managed automatically as part of the voice registration process, but there's also a manual trigger that can be used in testing. If you use this, you might need to adjust the save and read file locations, particularly if you're not running Node-Red in a docker, like me.

The full flow is pasted below;

Wednesday, 7 August 2024

VirtualHere on piCorePlayer

This is niche...

I'm in the middle of building a DIY music streamer based around piCorePlayer on a Raspberry Pi with a HiFiBerry Digi+ Pro HAT. This will live in my main AV rack and output to my AV Processor.

I selected PiCorePlayer as I already run a Logitech Media Server (LMS) and have a few squeezebox devices, so that OS is a good fit for me.

I also have an Elgato StreamDeck that I purchased some time ago that I'd like to use in my Home Cinema. This device has a bunch of customisable buttons that I intend to configure with shortcuts for lighting, av system power etc. 

The issue I have is that the StreamDeck needs to be plugged in to a PC via USB for configuration and operation. I don't have a PC nearby, and would ideally like to manage it from a Virtual Windows machine, but that runs on my Unraid server in a different building.

It would be great to be able to use the Pi in my DIY streamer to somehow relay the StreamDeck to my VM.

I came across some VirtualHere software that appeared to do just that. This runs a 'server' on a computer that you can plug USB devices into, and a 'client; on a remote machine. The client can connect to the USB devices as if they were local. 

There is a linux/arm server for PIs available, and a Windows client. The problem is how to install it on PiCorePlayer, which is based on Tiny Core Linux (TCL), and while it supports extensions and the like, is fairly locked down, and ultimately runs in RAM with no persistent storage out of the box.

It took a while, but I finally came up with a somewhat bodged solution.....

Tuesday, 11 June 2024

Migrating Deprecated Unifi Docker on unRaid

I've been using LinuxServer's Unifi-Controller docker for a long time to manage my unifi devices. However, this has been deprecated and to keep up with new releases, there is a requirement to install a Mongo database docker and a newer Unifi docker. This sounded like a bit of a faff but I thought I'd give it a try before succumbing to a physical controller device. The process did not go well, and I couldn't seem to get the systems to work together.

However, in searching around for solutions, I saw there was a new 'all in one' option, the Unifi-Controller-Reborn docker from PeteAsking. (find it in the Apps tab). I gave it a whirl and was able to get my old setup running in a shiny new Docker. Along the way were a few learnings that I thought I'd log here for posterity.

Saturday, 4 November 2023

Announce ReoLink Doorbell on Echo Devices

I recently installed a Reolink POE Video Doorbell, and like it a lot. Its got great picture, doesn't require web connectivity, and integrates really well with my Unraid.html">Blue Iris set up
. The only issue I have is that notifications on my mobile are poor and often missed. The bundled chime works OK inside the house, but when I'm in my detached office, I can often miss visitors.


I thought it would be nice to have the doorbell ping my office Alexa when pressed. Of course, there's a skill for that, but as someone with a penchant for Node-Red automations and too much time on my hands, a project was born....

Thursday, 24 August 2023

Backing up unRAID to Stabelebit Drivepool using Kopia

Since I retired Mediaserver 8.1 and  Mediaserver 8.2 in favour of Mediaserver 8.3, I've had a spacious ThermalTake Core X9 case and AMD FX-8320 based motherboard sitting around. I also have a selection of hard drives ranging from 500GB to 4TB that are retired from my main unRAID system. I'd been hankering to turn all of this into a backup server and, in fact, had made a few attempts that never really made it past proof of concept. It was time to attack the project seriously....


Monday, 7 August 2023

Alexa Music Playback through Marantz / Denon Heos

Arising from a query on reddit, I revisited something I'd set up quite some time ago and forgotten all about: using Alexa to play music on my HT system. It works;


As can be seen, the processor is on CD input to start. When I ask it to play music, it switches to the HEOS input and plays. If the processor had been in standby, it would have been woken and switched to the correct input.

Also, only the music content plays through the speakers,, the Alexa responses come from the echo device itself.

Sunday, 30 July 2023

Set up Reolink Doorbell video with BlueIris


I recently purchased a Reolink Video Doorbell PoE on Amazon prime day to replace the Comfort intercom thats going on 20 years old. I selected this item over others as it supposedly integrates with BlueIris which I use for all my other surveillance cameras.

There's no distinct guide for setting this up that I could find, so here's what I did, for posterity.

Friday, 21 July 2023

Best Triple Monitor USB-C Dock I've used


I've bought my fair share of docks and peripherals over the years as I love multi-monitor work set ups. My main workstation comprised a client issued HP corporate laptop that I used with a couple of older Dell U3014 30" displays. This was nice, but I was itching to add a third display that I had lying around and found an adapter that works perfectly.

It's a 'Selore' branded USB C to Dual HDMI Adapter,7 in 1 USB C Docking Station to Dual HDMI Displayport VGA Adapter,USB C to 3USB 2.0, Multi Monitor Adapter. I'm sure there are plenty of versions and brands of this, but this one does the job.

It's got 2x HDMI outputs and a Display Port. I connected up my 3x 30" panels, et volia!


Unfortunately, this only works its magic with Windows as it seems to be able to mirror on Macs, but not span. For now, though, I'm happy with it and can multitask happily.

Wednesday, 19 July 2023

Building an UnRaid Home Server for Media Storage and Automation

Are you looking to create a versatile and efficient home server that can handle your media storage needs while seamlessly integrating with your home automation system? If so, building an unRaid home server might be the solution you've been searching for. In this post, we'll explore the benefits of unRaid and provide practical advice on building your own home server for media storage and automation.

I've been using unRaid for home storage and automation for about 10 years now, and have been blogging about it here for almost as long. A lot of my posts are quite specific, so I thought I'd try a high level guide for those starting out. Let me know what you think, or if there are other specific topics you'd like to see covered.

Tuesday, 7 March 2023

Tidal not playing through Squeezebox with LMS in Docker

Starting to rebuild my whole-house audio playback system based on LMS as Roon, while nice, is not as free as LMS. Plus, I can get my LMS to access and play not only local files and Tidal, but also Spotify, which is missing from Roon.

Anyway, in getting back into this, I came across a frustrating issue - I could not get Tidal to play on any client device.

There's a few posts out there on things to check, like Tidal plugin setup in mysqueezebox.com, use FLAC file format etc., but nothing worked for me.

I had a look in the LMS server log file and came across a bunch of these errors;

fh=Slim::Networking::Async::Socket::HTTPS=GLOB(0x563293263068)
[23-03-07 11:43:22.4710] Slim::Networking::IO::Select::__ANON__ (130) Error: Select task failed calling Slim::Networking::Async::HTTP::_http_read_body: Error in tempfile() using /config/cache/tmp/XXXXXXXXXX: Parent directory (/config/cache/tmp/) is not writable at /lms/Slim/Formats/FLAC.pm line 950.
I run my LMS as a docker in unRaid. When I checked my mapped paths in the docker, I see 'config' maps to my appdata/LogitechMediaServer/. Inside there, I used chmod via SSH to set permissions on the /cache/tmp/ directory and instantly the Tidal stream started right up.

Friday, 29 July 2022

Forcing HDR / Dolby Vision when not supported

 I came across VideoProcessor.org through a thread on AVSForums. From their own description, this sounded like something that might be of use for me to see how far I could push HDR on my venerable JVC X500 projector;

VideoProcessor turns a computer into a 4k HDR capable live video processor by connecting a video capture card to a renderer and taking care of details such as conversion, timing and HDR metadata.

This allows advanced renderers to do things like 3D LUT, HDR tone mapping, scaling, deinterlacing and much more which can significantly improve image quality on most displays and beamers.

It turned into quite the adventure, and when I finally got it working, I thought I'd write up the settings for posterity....

Monday, 23 May 2022

Mapping additional and network drives inside an unRaid Windows VM

On the unRaid forums recently, I was responding to a user who was asking why his VM gcow2 image did not shrink when files are removed (thread here). I advised that auto-shrink is not standard behaviour, and in the discussion, it became clear that the use case was security camera footage. The user figured out that perhaps saving video files to a network share would be better than to the VM boot / system drive, and I mentioned that I do this with my BlueIris setup. I promised a quick guide, so here it is....

Monday, 11 April 2022

Streamer, with benefits

I've spent a while refining my a/v setup and finally got around to building a decent home for all the kit. It now all rests on a DIY pull-out and swivel rack that allows for access as needed. However, one of the problems with any rack is the proliferation of devices and cables. 

In the spirit of consolidation that underpins this blog,  I thought there must be a way of tidying all that up. So I started with a svelte computer case and starting adding stuff in until I was happy. 

Wednesday, 8 December 2021

Serial Perl Revisited

I'd posted this item on creating a custom serial driver / interface in  PERL a few years ago, and needing to revisit it for another project, I found that there was now an issue with running the Win32::Serial module on 64-bit Windows, Windows 10 specifically.

The problem was, when I ran some Perl that previously worked for me, it now failed when querying a serial port with an error like this;

error: Second Read attempted before First is done at xantech.pl line 47.

Some Google-Fu later, I found a reference to the issue on PerlMonks, and a link by user cr8josh to the fix by Christopher Oicles which is published here.

It looks like there's a risk that the rt.cpan site will close, so I'm reproducing the fix here for my own future sanity;