From ce451daef1c0ab9dbe9ae4e14579fd132b5c9013 Mon Sep 17 00:00:00 2001 From: Bandie Date: Sat, 13 Nov 2021 14:27:33 +0100 Subject: [PATCH] =?UTF-8?q?Intendation;=20foodoord=5Foben=20-=20right=20AP?= =?UTF-8?q?I=E2=84=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- foodoord_oben | 180 +++++++++++++++++++++++++------------------------ foodoord_unten | 89 ++++++++++++------------ 2 files changed, 137 insertions(+), 132 deletions(-) diff --git a/foodoord_oben b/foodoord_oben index 153cf35..1f982a7 100755 --- a/foodoord_oben +++ b/foodoord_oben @@ -1,4 +1,5 @@ #!/usr/bin/env python2 +# vim: ts=2 sw=2 et import os import stat @@ -14,8 +15,9 @@ from ConfigParser import SafeConfigParser parser = SafeConfigParser() parser.read('/etc/foodoord.conf') -url = parser.get('door_firstlevel', 'status_url') -old_api = parser.get('door_firstlevel_old', 'status_url') +doorapi = parser.get('doorstatus', 'status_url') +consumerkey = parser.get('doorstatus', 'key') +consumersecret = parser.get('doorstatus', 'secret') #Definitions for output @@ -33,108 +35,110 @@ RED=1 GREEN=2 ORANGE=3 + +def update_api(locked): + try: + os.system("/usr/bin/curl -XPOST --header 'Content-Type: application/json' --data '{ \"consumer_key\": \"" + consumerkey + "\", \"consumer_secret\": \"" + consumersecret + "\", \"aerie\": " + str(locked).lower() + " }' '" + doorapi + "' ") + except: + pass + + if __name__ == "__main__": - + def doorbell(event): + if (STATUS): + pifacedigital.relays[RELAYS_UNLOCK].toggle() + time.sleep(2) + pifacedigital.relays[RELAYS_UNLOCK].toggle() + #print 'got doorbell' - def doorbell(event): - if (STATUS): - pifacedigital.relays[RELAYS_UNLOCK].toggle() - time.sleep(2) - pifacedigital.relays[RELAYS_UNLOCK].toggle() - #print 'got doorbell' + def close_button(event): + global STATUS + STATUS = False + try: + update_api(True) + except: + pass - def close_button(event): - global STATUS - STATUS = False - try: - urllib2.urlopen(url+'&door=aerie&locked=1', timeout=2) - urllib2.urlopen(old_api+'&status=closed', timeout=2) - except: - pass - - set_led(RED) + set_led(RED) - listener = pifacedigitalio.InputEventListener() - listener.register(0, pifacedigitalio.IODIR_RISING_EDGE, doorbell, settle_time=10) - listener.register(1, pifacedigitalio.IODIR_RISING_EDGE, close_button, settle_time=5) - listener.activate() + listener = pifacedigitalio.InputEventListener() + listener.register(0, pifacedigitalio.IODIR_RISING_EDGE, doorbell, settle_time=10) + listener.register(1, pifacedigitalio.IODIR_RISING_EDGE, close_button, settle_time=5) + listener.activate() - def signal_handler(signal, frame): - listener.deactivate() - os.remove("/var/run/foodoord.pipe") + def signal_handler(signal, frame): + listener.deactivate() + os.remove("/var/run/foodoord.pipe") - try: - urllib2.urlopen(url+'&door=aerie&locked=1', timeout=2) - urllib2.urlopen(old_api+'&status=closed', timeout=2) - except: - pass - - set_led(RED) - sys.exit(0) + try: + update_api(True) + except: + pass - def set_led(color): - if (color==RED): - pifacedigital.leds[LED_RED].turn_on() - pifacedigital.leds[LED_GREEN].turn_off() + set_led(RED) + sys.exit(0) - elif (color==GREEN): - pifacedigital.leds[LED_GREEN].turn_on() - pifacedigital.leds[LED_RED].turn_off() + def set_led(color): + if (color==RED): + pifacedigital.leds[LED_RED].turn_on() + pifacedigital.leds[LED_GREEN].turn_off() - elif (color==ORANGE): - pifacedigital.leds[LED_RED].turn_on() - pifacedigital.leds[LED_GREEN].turn_on() + elif (color==GREEN): + pifacedigital.leds[LED_GREEN].turn_on() + pifacedigital.leds[LED_RED].turn_off() - pifacedigital = pifacedigitalio.PiFaceDigital() - signal.signal(signal.SIGTERM, signal_handler) + elif (color==ORANGE): + pifacedigital.leds[LED_RED].turn_on() + pifacedigital.leds[LED_GREEN].turn_on() - #Startsettings - STATUS = False - pifacedigital.leds[LED_RED].turn_on() + pifacedigital = pifacedigitalio.PiFaceDigital() + signal.signal(signal.SIGTERM, signal_handler) - #Setting up FiFo to get sshd-output - try: - os.mkfifo("/var/run/foodoord.pipe") - os.chown("/var/run/foodoord.pipe", -1, grp.getgrnam('foodoor')[2]) - os.chmod("/var/run/foodoord.pipe", stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP | stat.S_IWGRP) - except OSError: - pass + #Startsettings + STATUS = False + pifacedigital.leds[LED_RED].turn_on() - with open("/var/run/foodoord.pipe", "r") as ssh_input: - while 1: - #Read sshd-output from pipe - Pipe = ssh_input.readline()[:-1] - - if (Pipe == "close" and STATUS): - pifacedigital.relays[RELAYS_LOCK].toggle() - time.sleep(1) - pifacedigital.relays[RELAYS_LOCK].toggle() - STATUS = False + #Setting up FiFo to get sshd-output + try: + os.mkfifo("/var/run/foodoord.pipe") + os.chown("/var/run/foodoord.pipe", -1, grp.getgrnam('foodoor')[2]) + os.chmod("/var/run/foodoord.pipe", stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP | stat.S_IWGRP) + except OSError: + pass - try: - urllib2.urlopen(url+'&door=aerie&locked=1', timeout=2) - urllib2.urlopen(old_api+'&status=closed', timeout=2) - except: - pass - - set_led(RED) + with open("/var/run/foodoord.pipe", "r") as ssh_input: + while 1: + #Read sshd-output from pipe + Pipe = ssh_input.readline()[:-1] - elif (Pipe == "open"): - pifacedigital.relays[RELAYS_UNLOCK].toggle() - time.sleep(2) - pifacedigital.relays[RELAYS_UNLOCK].toggle() + if (Pipe == "close" and STATUS): + pifacedigital.relays[RELAYS_LOCK].toggle() + time.sleep(1) + pifacedigital.relays[RELAYS_LOCK].toggle() + STATUS = False - if (STATUS==False): - - try: - urllib2.urlopen(url+'&door=aerie&locked=0', timeout=2) - urllib2.urlopen(old_api+'&status=open', timeout=2) - except: - pass + try: + update_api(True) + except: + pass - STATUS = True - - set_led(GREEN) - time.sleep(0.1) + set_led(RED) + + elif (Pipe == "open"): + pifacedigital.relays[RELAYS_UNLOCK].toggle() + time.sleep(2) + pifacedigital.relays[RELAYS_UNLOCK].toggle() + + if (STATUS==False): + + try: + update_api(False) + except: + pass + + STATUS = True + + set_led(GREEN) + time.sleep(0.1) diff --git a/foodoord_unten b/foodoord_unten index 8ea0c5f..14e70ef 100755 --- a/foodoord_unten +++ b/foodoord_unten @@ -1,4 +1,5 @@ #! /usr/bin/python +# vim: ts=2 sw=2 et import os import stat @@ -37,61 +38,61 @@ ORANGE=3 def write_state(state): - try: - handle = open("/tmp/door_state", "w") - handle.write(state) - handle.close() - except: - pass + try: + handle = open("/tmp/door_state", "w") + handle.write(state) + handle.close() + except: + pass def update_api(locked): - try: - os.system("/usr/bin/curl -XPOST --header 'Content-Type: application/json' --data '{ \"consumer_key\": \"" + consumerkey + "\", \"consumer_secret\": \"" + consumersecret + "\", \"cellar\": " + str(locked).lower() + " }' '" + doorapi + "' ") - except: - pass + try: + os.system("/usr/bin/curl -XPOST --header 'Content-Type: application/json' --data '{ \"consumer_key\": \"" + consumerkey + "\", \"consumer_secret\": \"" + consumersecret + "\", \"cellar\": " + str(locked).lower() + " }' '" + doorapi + "' ") + except: + pass if __name__ == "__main__": - #Startsettings - STATUS=False - gpio.setmode(gpio.BCM) - gpio.setup(PIN_OPEN, gpio.OUT) - gpio.setup(PIN_CLOSE, gpio.OUT) - #Setting up FiFo to get sshd-output - try: - os.mkfifo("/var/run/foodoord.pipe") - os.chown("/var/run/foodoord.pipe", -1, grp.getgrnam('foodoor')[2]) - os.chmod("/var/run/foodoord.pipe", stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP | stat.S_IWGRP) - except OSError: - pass + #Startsettings + STATUS=False + gpio.setmode(gpio.BCM) + gpio.setup(PIN_OPEN, gpio.OUT) + gpio.setup(PIN_CLOSE, gpio.OUT) + #Setting up FiFo to get sshd-output + try: + os.mkfifo("/var/run/foodoord.pipe") + os.chown("/var/run/foodoord.pipe", -1, grp.getgrnam('foodoor')[2]) + os.chmod("/var/run/foodoord.pipe", stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP | stat.S_IWGRP) + except OSError: + pass - with open("/var/run/foodoord.pipe", "r") as ssh_input: - while 1: - #Read sshd-output from pipe - Pipe = ssh_input.readline()[:-1] + with open("/var/run/foodoord.pipe", "r") as ssh_input: + while 1: + #Read sshd-output from pipe + Pipe = ssh_input.readline()[:-1] - if (Pipe == "close"): - gpio.output(PIN_CLOSE,1) - time.sleep(1) - gpio.output(PIN_CLOSE,0) + if (Pipe == "close"): + gpio.output(PIN_CLOSE,1) + time.sleep(1) + gpio.output(PIN_CLOSE,0) - write_state("closed") - update_api(True) + write_state("closed") + update_api(True) - elif (Pipe == "open"): + elif (Pipe == "open"): - #Locking - gpio.output(PIN_OPEN,1) - time.sleep(1) - gpio.output(PIN_OPEN,0) + #Locking + gpio.output(PIN_OPEN,1) + time.sleep(1) + gpio.output(PIN_OPEN,0) + + #Save State + write_state("open") + + #Status Update + update_api(False) - #Save State - write_state("open") - - #Status Update - update_api(False) - - time.sleep(0.2) + time.sleep(0.2)