I'm using YeeLight lamps (and of course I wrote my own library for them), which can fade in/out very easily.
I am using PIR indeed, I just added a timeout of X minutes, depending on the room, where you just eyeball X to be long enough that there will be motion if there's someone in the room, but not long enough that the light always stays on.
I am using PIR indeed, I just added a timeout of X minutes, depending on the room, where you just eyeball X to be long enough that there will be motion if there's someone in the room, but not long enough that the light always stays on.