

It was a huge pain and I ended up troubleshooting with Gemini for hours aha! I know, I’ll plant a tree to offset my sins. It was at least useful to rapid search solutions and tell me what component was the most likely issue.
I had coturn set up for legacy Element Classic and, before that, XMPP, but as I wasn’t using those I decided to shut it down and try using Matrix Livekit’s internal TURN server. I’m not sure what actually helped in the end, but Livekit’s latest build caused a bug, so I instead pulled v1.9.12. I also shuffled around my reverse proxy config (from my old attempts) because some endpoints seemed to have changed. I’ll update later with anonymised config :3


I use a humidity sensor, motion sensor and a helper that shows the change over a period of time. If the humidity raises fast (+2%/5m) and goes over a certain amount (unique, depending on your room’s climate) the bathroom automation changes tracks to hold the light at 100%, turn the extractor fan on, and well, how you stop the automation depends on you. I let it stay on for 15 minutes before waiting for motion. Small tips: For me the humidity triggers the automation within 15s-1m of showering, which is okay for me. Motion sensors typically use IR to see movement. If the room is too steamy it might struggle to see you. Also, it cannot penetrate glass. It must have a line of sight to you.
The best alt I think would be mmwave presence sensors, but they’re pricy and require a wired connection.