PiFace interrupts

Begonnen von matsahm, 24 Juni 2015, 00:28:25

Vorheriges Thema - Nächstes Thema

matsahm

Hallo,

Ich habe ein Problem mein PiFace in Verbindung mit FHEM zu nutzen und bräuchte mal Hilfe. Eigentlich läuft es soweit schon. Ein Python-Skript überwacht per Interrupt die Eingänge und löst FHEM-Befehle aus. Nach meinem Kenntnisstand kann ich mit dem PiFace-Modul aus FHEM ja keine Interrupt-Abfragen durchführen. Dies funktioniert jedoch nur sehr unzuverlässig und ich finde den Fehler nicht. Oder ist es vielleicht ein Hardware-Fehler?

Ich habe aus der Anleitung zum PiFace folgendes Skript ausgeführt. Dies bewirkt, dass LED 0 (und damit auch Output 0 und Relais 0) bei jedem Druck auf Taster 0 sein Zustand ändert.

import pifacedigitalio
def toggle_led0(event):
    event.chip.leds[0].toggle()

pifacedigital = pifacedigitalio.PiFaceDigital()
listener = pifacedigitalio.InputEventListener(chip=pifacedigital)
listener.register(0, pifacedigitalio.IODIR_FALLING_EDGE, toggle_led0)
listener.activate()


Aber auch das funktioniert nur sehr unzuverlässig. Von zehn mal Taster drücken schaltet die LED nur durchschnittlich jedes 5. mal. Hat jmd. eine Idee? Mache ich was falsch?


Gruß
Mathias

Jostar

Hallo ich habe aktuell ein Piface2 am Pi 2 und kann genau das gleiche Ergebnis vorweisen. Hast du eine Lösung gefunden? Die aktuelle Doku vom Piface scheint aber auch interrupts nicht zu kennen.

Eigentlich möchte ich nur ein Signal von 100 ms detektieren, was mit Polls allein auf 1 Sekunde limitiert leider nicht geht.

Grüße
Raspberry Pi(s) mit FHEM auf Rasbian Jessie/Strech, DbLog/DbRep mit mySQL, piface, 1Wire-USB-Master von SMS-GUARD, RFXtrx433E