-

    • Official Post

    [code=php]
    import RPi.GPIO as IO
    import time
    print"Programmstart"
    def Switch(channel):
    if(IO.input(Ried)):
    print"offen"
    IO.output(Pin, IO.LOW)
    else:
    print"zu"
    IO.output(Pin, IO.HIGH)
    IO.setwarnings(False)
    IO.setmode(IO.BCM)
    Ried = 3
    Pin = 4
    IO.setup(Ried, IO.IN)
    IO.setup(Pin, IO.OUT)
    IO.add_event_detect(Ried, IO.BOTH, callback=Switch, bouncetime=10)
    while True:
    time.sleep(5)[/php]


    Ich hab es mal in CodeTags geschrieben und das pass durch time.sleep ersetzt. Denn durch das pass erzeugst du 100% CPU Auslastung
    Im Moment gibt er ja "offen" und "zu" aus. und das soll jetzt ne Datei geschrieben werden? irgendein wunschformat? mit oder ohne Datums/zeitangabe?

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

    Edited once, last by dbv ().

  • Sowas wie open()?


    Ungetestet und nur schnell mal verfasst:



    Hab selber noch nie damit gearbeitet, vermute aber mal, dass das zumindest in die Richtung geht. ;)

    • Official Post

    [code=php]
    import RPi.GPIO as GPIO
    import time


    Pin = 4
    Ried = 3


    GPIO.setmode (GPIO.BOARD)


    GPIO.setup (Pin, GPIO.OUT)
    GPIO.setup (Ried, GPIO.IN)


    GPIO.output(Pin, GPIO.HIGH)




    def schreibe_log():


    if GPIO.input(Ried) == GPIO.LOW:
    with open("/Pfad/Zu/Deiner/Datei", "a") as f:
    f.write("Kontakt unterbrochen um %s\n" % time.asctime(time.localtime(time.time())))


    elif GPIO.input(Ried) == GPIO.HIGH:
    with open("/Pfad/Zu/Deiner/Datei", "a") as f:
    f.write("Kontakt unterbrochen um %s\n" % time.asctime(time.localtime(time.time())))


    GPIO.add_event_detect(Ried, IO.BOTH, callback=schreibe_log, bouncetime=10)


    while True:
    time.sleep(1)[/php]


    Ungefähr so?

  • TypeError: 'module' object is not callable


    Ich vermute du hast die Datei noch nicht erstellt, die muss vorhanden sein für "open("/Pfad/Zu/Deiner/Datei", "a")".


    PS: Jetzt haste übrigens 2 mal "Kontakt unterbrochen" im Beispiel ;)

    Edited once, last by Nueffe ().

    • Official Post

    da fehlt auch ein f. weil es heisst ja f.write.... Der Codeanzeiger hier hat zwar arge Probleme mit Einrückungen (und deren Übernahme) aber Buchstaben verschluckt er beim kopieren nicht ;)

  • setze mal noch ein "f.close()" unter das "f.write()" in jedem if-Block um die Datei auch wieder zu schließen.

  • Patti4832

    Changed the title of the thread from “Python Alarm Programm” to “-”.