Sehr geehrte aktive Forums-Mitglieder.
Lange Zeit betrachte ich nun schon diese Forum und ihr wart schon das eine oder ander Mal eine Hilfe für mich dafür herzlich .
Es war mir bis jetzt leider unmöglich mal eine Antowrt zu posten da ihr immer schneller (oder besser) als ich wart.
Nun heute wende ich mich an euch, mit der Bitte um
Falls das Thema am falschen Ort platziert wurde enschuldige ich mich.
Mein PI erledigt diverse Aufgaben unter anderem steuert er mein WLAN-Router und meine "alte" Stereoanlage (ein / aus).
Das Einschalten ist über ein Funkrelais gelöst das ein PIN (PIN 16 -> GPIO23) auf High setzt.
Leider kommt es ab und zu vor, das es ein "false_positiv" gibt > soll heissen mitten in der Nacht wird mein WLAN und die Stereoanlage eingeschaltet - uncool
Meine Idee dazu ist mein bestehendes Python-Script so zu erweitern das nach einem ersten HIGH geprüft wird, ob innerhalt einer gewissen Zeit (1 Sekunde) der selbe Pin ein zweites Mal HIGH geschaltet wurde. Falls Ja -> schalte WLAN und Stereoanlage ein, falls nein gehe wieder Return und warte (theoretisch unendlich lange bis der Pin HIGH geschaltet wird, dann beginnt das spiel von vorne. (soweit ich das verstehe ist das eine art Rekursion wobei das keine Rolle spielt, da komme ich shcon wieder weiter.
Somit benötige ich "nur" den Code zum prüfen ob der Pin innerhalb einer gewissen Zeit (1 Sekunde) mind 1mal HIGH war.
Anbei noch mein Script (abgeschrieben - da ich aktuell kein Netzwerkzugriff auf den PI habe)
------------
import RPi.GPIO as GPIO
import subprocess
GPIO.setmode(GPIO.BCM)
GPIO.setup(23, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
def func1():
try:
GPIO.wait_for_edge(23, GPIO.FALLING)
subprocess.call("/home/pi/eingang.sh")
except KeyboardInterrupt:
GPIO.cleanup()
GPIO.cleanup()
return
print "Eingangsüberwachung aktiv"
func1()
--------------
Für euere Bemühungen bedanke ich mich bereits im voraus.
Freundliche Grüsse
Dani