Maybe the best way to think about it is not dark, but the absence of more light.
On a DMD projector, we use tiny micromirrors for each pixel which flash thousands of times per frame of video.
The flash/no-flash ratio decides how much light makes it out of the projector. This gives us over a thousand light levels per colour channel, from near dark, to full light.
When the mirrors are not in position, the light output is very low. (1/1000th of the full output, on a projector with a static 1000:1 contrast ratio)
The screen is designed to reflect light well, which means in a non-perfect room, it will have a light floor of the reflected ambient light, plus whatever still makes it through the projector (as Cygnus mentioned, room treatment).
If you do treat a room well enough that the small amount of light that makes it through the projector at all-off is a problem, you can do things like fitting an ND filter to the lens (reducing the full light output, while also reducing the minimum).
Or you can use the dynamic iris fitted to some projectors (which reduces the amount of light being put out based on the overall scene illumination, similar to the way LCD TVs lower the backlight level to "reach" contrast ratios of 100000:1).
The biggest one was probably a combo of having an anemometer, and heat/humidity sensors in each room.
When it's cold outside, the top floor of the house (loft conversion) loses more heat. But it loses significantly more heat when it's cold, and the wind is blowing parallel to the floor joists.
I realised that because they're not perfectly sealed (old house), enough air pressure means that the floor void can easily hit external temperatures, meaning the rooms have cold on twice as many sides.
I will (eventually) get some suitable insulation in them to stop this.
I love having a projector in the living room.
I won't lie, it gets used far less than I'd like.
But it cost me almost nothing, and it's just fun to have a massive wall of video.
I too love the fact that HASS is a common platform for everything.
It makes duct taping lots of different devices together into automation so much easier.
AFAIK, LG still do not require internet access on first startup.
At least on their medium/high end lines (C and G series).
This was a hard requirement for me. Mine has never been on the internet.
For a low tech solution, you could use cold chain labels.
They indicate when a temperature threshold is breached. So you'd at least know when a vial was spoiled.
They're not cheap, mind, when you only want a few.
But I know that's not solving the problem in the way you wanted to!
If you only need to know when a threshold is exceeded, you could make something simple using (for example) an esp with a PAYG SIM card and a temperature sensor.
Then set it up to SMS an alert when temperatures go out of bounds. And pick the SMS up in HASS (various ways). That way, you'll only be spending a few cents each time there is an issue.
You could also use mobile data if you felt more fancy, and post straight to HASS.
H.264 had a license fee, but it wasn't ridiculous. It was jacked up for 265, to the point that a lot of software houses no longer bundle the 265 decoder license.
It annoys me too: Security cameras often use turnkey H.265 encoding packages rather than more open codecs, which makes dealing with the files using FOSS more of a pita.
You'd probably get better coding advice in the comments.