@kmxak:
selbst wenn ich es so mache kommt die wartezeit erst wenn ich das script mit strg c abbreche:
import MFRC522
import signal
import time
import urllib
continue_reading = True
MIFAREReader = MFRC522.MFRC522()
# Karten konfigurieren
karte1 = [1111111111]
karte2 = [1111111111]
def end_read(signal, frame):
global continue_reading
continue_reading = False
print "Ctrl+C captured, ending read."
MIFAREReader.GPIO_CLEEN()
signal.signal(signal.SIGINT, end_read)
# Script starten
print "\x1b[2J" # Terminal leeren
print "RFID Card Reader ioBroker Script"
print "Zum Abbrechen des Skripts STRG-C druecken."
while continue_reading:
(status,TagType) = MIFAREReader.MFRC522_Request(MIFAREReader.PICC_REQIDL)
if status == MIFAREReader.MI_OK:
print "Card detected"
(status,backData) = MIFAREReader.MFRC522_Anticoll()
if status == MIFAREReader.MI_OK:
print "Card read UID: "+str(backData[0])+","+str(backData[1])+","+str(backData[2])+","+str(backData[3])+","+str(backData[4])
# Hier werden die Karten abgefragt
if backData == karte1:
urllib.urlretrieve('http://ip/set/Test?value=true') # ioBroker URL
print "Status True gesetzt! - Karte 1"
elif backData == karte2:
print "Karte 2"
else:
print "wrong Card"
time.sleep(5)
print "wartezeit"
verstehe das einfach nicht.
Scanne eine "falsche karte" nach meinem verständnis müsste nun wrong card kommen und nach 5 sec wartezeit. das tut es aber nicht. es kommt immer wieder im millisekundentakt wrong card und das wartezeit erst mit strg c `
wie währe es wenn du dich mit python ein wenig auseinander setzt..
wiki Python_(Programmiersprache)
vor allem der Absatz
#Syntax
das
while continue_reading:
(status,TagType) = MIFAREReader.MFRC522_Request(MIFAREReader.PICC_REQIDL)
if status == MIFAREReader.MI_OK:
print "Card detected"
(status,backData) = MIFAREReader.MFRC522_Anticoll()
if status == MIFAREReader.MI_OK:
print "Card read UID: "+str(backData[0])+","+str(backData[1])+","+str(backData[2])+","+str(backData[3])+","+str(backData[4])
# Hier werden die Karten abgefragt
if backData == karte1:
urllib.urlretrieve('http://ip/set/Test?value=true') # ioBroker URL
print "Status True gesetzt! - Karte 1"
elif backData == karte2:
print "Karte 2"
else:
print "wrong Card"
time.sleep(5)
print "wartezeit"
ist was andereas als das
while continue_reading:
(status,TagType) = MIFAREReader.MFRC522_Request(MIFAREReader.PICC_REQIDL)
if status == MIFAREReader.MI_OK:
print "Card detected"
(status,backData) = MIFAREReader.MFRC522_Anticoll()
if status == MIFAREReader.MI_OK:
print "Card read UID: "+str(backData[0])+","+str(backData[1])+","+str(backData[2])+","+str(backData[3])+","+str(backData[4])
# Hier werden die Karten abgefragt
if backData == karte1:
urllib.urlretrieve('http://ip/set/Test?value=true') # ioBroker URL
print "Status True gesetzt! - Karte 1"
elif backData == karte2:
print "Karte 2"
else:
print "wrong Card"
time.sleep(5)
print "wartezeit"
aus die Einrückung kommt es an wann was ausgeführt wird
zumidest Grundinformationen habe ich erwartet