Beiträge von dll-live

    Sali Andreas.

    Ich habe dien Thread mal quer gelesen - coole Sachen.
    Diesen Ansatz kann ich jedoch hier nicht verwenden. denn dies ist der glieche wie in deinem ersten Post (Zeitmessung zwischen 2 Ereignissen). Das geht leider nicht auf....
    Ich versuch das nochmals zu beschreiben:

    Situation a)
    1) Signal kommt (Zeit 0)
    2) "kurze" Wartezeit (0.5 Sekunden)
    3) Signal kommt
    ==> PI soll schalten

    Situation b)
    1) Signal kommt (Zeit 0)
    2) "lange" Wartezeit (5 Stunden)
    3) Signal kommt
    ==> Pi schaltet nicht da warte zeit zu lange
    4) "kurze" Warte Zeit (0.5) Sekunden
    5) Signal kommt
    ==> PI sollte jetzt schalten

    Situation a lässt sich mit der Zeitmessung (deinem Thread) perfekt abfangen - da geb ich dir zu 100 % Recht
    Sitation b läst sich leider nicht abfangen
    Mein Problem es können beiden Sitationen auftreten und ich will / muss diese entsprechend Abfangen.

    Gruss Dani

    Sali Andreas.

    Die "Zeit-Messung" ist kein wirkliche Option, da ich sonst beim nächsten wirklichen Schalten drei HIGH's brauche (erste HIGH messung starten - ( lange Warten) zweites HIGH -> auswerten zu lange wieder vorne beginnen -> drittes HIGH messung starten - 4 HIGH auswerten OK -> schalten. Das ist ein HIGH zu viel ich muss es maximal mit 2 HIGH machen.

    und Nein die Störsignale kann ich leider nicht zu hundert Prozent ausschliessen. Das meine Leitung als Antenne taugt vermuttei ch ehner weniger denn die ist max 30 cm lang.

    Hoffe, das weitere Ideen kommen, das mit dem Interrupt in einer gewissen Zeit wäre auch für andere Sachen eine coole Methode.

    Gruss Dani

    Hallo Blebbens.

    Der RI 3 hat "nur" ein 2.4 GHz WLAN somit ist deine Annahme richtig.

    Bezüglich den Kanälen kann ich dir nicht weiter helfen, mein Pi konnte sich zwar mit dem WLAN verbinden jedoch war die Verbindung nicht sehr stabil, deshalb ist er mittlerweile wieder verkabelt.

    Gruss Dani

    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 :danke_ATDE: .
    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 :helpnew:
    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