#!/usr/bin/python3 import time, socket, atexit import RPi.GPIO as GPIO tuerSock = "/run/tuer.sock" ringPin = 18 GPIO.setmode(GPIO.BOARD) GPIO.setup(ringPin, GPIO.IN) atexit.register(GPIO.cleanup); lastEvent = 0 while True: GPIO.wait_for_edge(ringPin, GPIO.BOTH) # measure time since event now = time.time() timePassed = now-lastEvent print("Time between events %f" % timePassed) # remember, remember lastEvent = now # action to be taken? if timePassed >= 1.5 and timePassed <= 3: print("Opening door") # talk with tuerd s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) s.connect(tuerSock) s.send(b'buzz') data = s.recv(4) s.close() print("...done") if data != b'1': print("Received unexpected answer %s" % str(data))