Automação Residencial - Raspiberry Pi, PIR Sensor, Relé

Olá pessoal. Estou montando um DIY de automação residencial para minha casa com raspiberry pi 3+, placa de relé e sensores de presença PIR. Elaborei uma programação simples para que quando o sensor de presença detectar um movimento ele enviaria um sinal para acionar um relé, que acenderia uma lâmpada. Acontece que durante os teste com o sistema o sensor detectava movimento enquanto não havia movimento (ambiente vazio). Eu tentei regular a sensibilidade e o intervalo do sinal no próprio sensor, porém o problemas persistiu. No início eu achei que o problema fosse com os sensores ou as GPIOs, mas já testei com vários sensores e portas da GPIO e o problema ainda persistia.
Então eu criei um registo dos sinais que o sensor PIR estava enviando para a GPIO e percebi que são picos de sinais aleatórios. Então o meu problema é: Preciso de uma logica que leia os sinais da sensor por um intervalo de tempo afim de evitar os picos de sinais (por exemplo: Se o sensor detectar movimento por mais que 2 segundos ele acione um relé, ou se o sensor detectar 10 movimento em um intervalo de 2 segundos ele acione um relé, caso contrário ele reinicia a contagem).
Abaixo segue uma das revisões do projeto que eu estava tentando implementar, mas tb não está funcionando.

import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)

GPIO.setup(7, GPIO.IN)
GPIO.setup(3,GPIO.OUT)
GPIO.setup(5,GPIO.OUT)

contagem = 0

while True:

while GPIO.input(7) == 1:

    contagem = contagem + 1
    time.sleep(0.1)
    print(contagem)
    if contagem >= 20:
        GPIO.setup(5,0)
        contagem = 0
        print ('Movimento Detectado!')
       
    else:
        GPIO.setup(5,1)
        print('Movimento Cancelado')

Eu espero que alguém consiga me dar uma luz para que isso passa funcionar. Caso alguém proponha uma solução que funcione eu posso postar para na comunidade para que todos possam fazer igual.

Desde já agradeço a atenção e a cooperação de todos.

Sds,

1 verifica o ajuste do PIR, ele da sinal por algo com 30 millis ate 2 segundos ,
2 Lembra que ele detectar o “heat signature” do corpo humano, entao verifica possiveis fontes de calor .
3 seu codigo nao ta legal, to sem tempo pra corregir, mas eu nao escreveria assim.
4 caso continuar tendo esses problemas chama os cacadores de fantasmas.