Есть несколько предложений.
1. Сделать несколько фильтров
2. Добавить отслеживание активности пользователя за компом.
Смысл в том что у меня датчики движения не регистрируют незначительные движения, когда я сижу в кабинете за компом. В итоге Алиса через 40 минут думает что дома никого нет.
Потому нужно отсылать Алисе статус. Есть я за компом или нет.
Если привязаться например к включённому компьютеру, то это не факт что я за ним сижу. Я мог поставить какую то длительную задачу на обработку и уйти гулять. Определять по активность средств ввода, тоже не вариант. Я могу смотреть фильм на диване. Потому предлагаю привязаться к скрин серверу. Учитывая что Видео плееры умеют его отключать на время воспроизведения видео.
Прилагаю готовый вариант кода на Delphi (Я его обожаю. И 80% своих программ пишу именно на нём. Не смотря что я по профессии программист

)
В нём 3 функции
spi_GetScreenSaveActive - определяет включён ли скринсервер
SPI_GETSCREENSAVERRUNNING - определяет запущен ли скринсервер
LastInput - время по последней активности систем ввода (в данном случае нужна только для контроля)
Также предлагаю помочь в написании (чтобы разгрузить Сергея)
Осталось ещё одна не решённая проблема с датчиками движения: Если смотреть ТВ в зале. Хоть в диван встраивай весы (По типу автомобильных в сидении пассажира. Поймут только те у кого есть такие )