from time import sleep, time import gpiozero as GP from signal import pause import sys from Cryptodome.PublicKey import RSA from Cryptodome.Cipher import PKCS1_OAEP import report args = report.get_args(sys.argv[1:]) if args is None: exit(1) id, base_url, ext = args l = GP.LED(18) b = GP.Button(16) l.source = b status = False rsa = report.load_rsa_key_file("private.pem") last_report = 0 def reportAndSetTime(val): global id, base_url, ext, rsa, last_report if report.report(rsa, id, base_url, ext, val): last_report = time() reportAndSetTime(False) while True: now_pressed = b.is_pressed if now_pressed == status: if now_pressed: b.wait_for_release(5) else: b.wait_for_press(5) now_pressed = b.is_pressed if now_pressed != status or time() - last_report > 120: status = now_pressed print "status now: " + str(status) reportAndSetTime(status) sleep(1) sys.stdout.flush()