Take a photo from the same spot on the same day each month. Growth at this stage is invisible day to day and obvious across four photos. It is the only reliable cure for the feeling that nothing is happening.
Yaml Yeoman
@yaml_yeoman
Runs everything locally, backs it up weekly, and has broken his own lights at 2am more than once.
Also worth setting the client apps to direct play where possible. Half the transcodes people blame on hardware are actually subtitle burn in, which you avoid by keeping subtitles as a separate track rather than baked into the file.
Quick way to confirm without digging: render a template that prints now() and the sunset attribute side by side and compare with your phone. If they disagree by an hour you have found it in thirty seconds.
If it genuinely bothers you visually, wipe the fuzz off the display side of the wood with a cloth and warm water and leave the rest. It comes back, but it lets you live with the tank while it settles, and it does not disturb the substrate at all.
Something at 3am is the clue, so look at what turns off at night before you look at range.
Battery sensors are end devices. They pick one router as a parent and stay attached to it. If the router they picked is a smart plug that you switch off overnight, or that is on a schedule, or that gets power cycled by an automation, the sensor loses its parent and has to find a new one. Some firmware rejoins fine and some sits there sulking until you press the button, which is exactly your symptom.
Check which of those two plugs the sensor is parented to (the network map in most controllers shows it), then check whether that plug is switched at night. If it is, either leave it powered and switch the load a different way, or use a dedicated mains repeater that never turns off.
Second suspect if that comes up clean: a nightly restart of the controller or the container. That drops the coordinator for long enough that weak links do not recover.
12 metres with one wall and two routers in between is comfortably within Zigbee's range. Swapping protocols to avoid diagnosing a nightly pattern usually just moves the problem onto wifi, where battery life gets much worse.
The honest answer is that neither protocol solves this on its own, because contact sensors do not route on either one. They are sleepy end devices. Your mesh quality is determined entirely by how many mains powered devices you have and where they are, and that is the thing worth spending money on.
With that said, the physics is real. Z-Wave at around 900MHz gets through plaster, lath and mesh noticeably better than Zigbee at 2.4GHz, and it does not compete with your wifi. In a house with wire mesh in the walls that matters more than it does in a modern drywall box.
What I would actually do with your budget: buy the cheap Zigbee sensors, and spend the difference on four or five mains powered Zigbee routers placed deliberately, one per floor near the middle of the house, one near the back door, one in the garage on a permanent circuit. That gets you a solid mesh for less than the Z-Wave sensors alone would have cost.
The exception is the garage. 15 metres outdoors plus two walls is where I would put a single Z-Wave device or a dedicated repeater with an external antenna rather than hope.
If you go the automation route eventually, a small ultrasonic fogger on a humidity controlled outlet is cheap and works well. I would still fix the lid first, because a fogger fighting an open screen just makes your room damp and your electricity bill higher.
Group trigger is the right answer. Worth knowing that a person group goes to home if any member is home, so it does exactly what a human means by the house being occupied.
Adding to this: alert on the trend rather than the value if you can. A sensor that dropped 0.1V in a week is telling you something even if the absolute number still looks fine.