diff --git a/schalter.py b/schalter.py index 0a1bbf6..3bfeafb 100755 --- a/schalter.py +++ b/schalter.py @@ -15,19 +15,13 @@ import json import RPi.GPIO as GPIO # for logging import logging -import systemd.journal +from systemd import journal ######################################################## #start init -log = logging.getLogger("SpaceAPI Schalter") #create a logger -log_fmt = logging.Formatter("%(levelname)s %(message)s") #define logging format -log_ch = JournalHandler() # create logging Handler -log_ch.setFormatter(log_fmt) -log.addHandler(log_ch) - -log.setLevel(logging.INFO) -log.info("CCCHB space api switch v. 0.3 ") +journal.write("CCCHB space api switch v. 0.3") +currentState = False ################################################################################# #function definitons: @@ -35,15 +29,16 @@ log.info("CCCHB space api switch v. 0.3 ") # will read the GPIO header of the pi and write the current state in the www spaceapi json file def switched(pos): + global currentState wert_des_schalters = not bool(GPIO.input(pin_number)) - icons = data.get("state").get('icon') if pos != wert_des_schalters: - log.info("state changed to: ", wert_des_schalters) + journal.write("state changed to: %s " %wert_des_schalters) chn_time = datetime.datetime.now().isoformat() + icons = data.get("state").get('icon') data.update({'state':{'open':wert_des_schalters,'lastchange':chn_time, "icon":icons}}) + currentState = wert_des_schalters with open('/var/www/html/spaceapi.json', 'w') as outfile: - json.dump(data, outfile, sort_keys=True) - return wert_des_schalters + json.dump(data, outfile,sort_keys=True) ################################################################################# @@ -51,8 +46,8 @@ def switched(pos): pin_number = 18; #set GPIO Pin number GPIO.setmode(GPIO.BCM) GPIO.setup(pin_number, GPIO.IN, pull_up_down=GPIO.PUD_UP) -GPIO.add_event_detect(pin_number, GPIO.BOTH, callback=switched, bouncetime=200) -log.info("init complete... starting json foo") +GPIO.add_event_detect(pin_number, GPIO.BOTH, callback=switched, bouncetime=600) +journal.write("init complete... starting json foo") #read json file with open('spaceapi.json','r') as infile: data = json.load(infile) @@ -60,13 +55,10 @@ with open('spaceapi.json','r') as infile: #run switched once to get current switch status and change if needed. #switched(wert_des_schalters) -currentValue = False try: while True: - time.sleep(1) - currentValue = switched(currentValue) - - #include IRCBOT status here? + time.sleep(5) + switched(currentState) #do other stuff otherwise just don't do anything?! except KeyboardInterrupt: GPIO.cleanup()