From af85c6144b7a10707239205c1c20e560ad15ac41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=20St=C3=B6cker?= Date: Fri, 5 Aug 2016 12:59:13 +0200 Subject: [PATCH] only change lastchange timestamp if the state has changed --- lastState.txt | 1 + state.py | 38 ++++++++++++++++++++++++++++++-------- 2 files changed, 31 insertions(+), 8 deletions(-) create mode 100644 lastState.txt diff --git a/lastState.txt b/lastState.txt new file mode 100644 index 0000000..2e2e43a --- /dev/null +++ b/lastState.txt @@ -0,0 +1 @@ +0 1470352249 diff --git a/state.py b/state.py index 7ce2d6e..d9e3541 100644 --- a/state.py +++ b/state.py @@ -7,6 +7,7 @@ import logging fileName = "json" url = "http://status.krautspace.de/status/button/" +laststateFile = 'lastState.txt' data = None # Raum Status abrufen @@ -15,7 +16,7 @@ try: except: logging.exception("urllib2") else: - # Status lessen + # Status lesen data = response.read(1) # Data validieren if len(data) != 1 or data not in ("0", "1"): @@ -33,19 +34,40 @@ except: # Bereich in dem der Status steht state = raw["state"] -# letzte Verarbeitungszeit setzen -state["lastchange"] = int(time.time()) + +try: + fp = file(laststateFile) + lastState, oldTimestamp = fp.readline().split() + fp.close() +except: + logging.exception("file") + exit(1) + # Status setzen if data: - if data == "0": - state["open"] = False - state["message"] = "no human being on location" + if lastState != data: + currentTimestamp = int(time.time()) + if data == "0": + state["lastchange"] = currentTimestamp + state["open"] = False + state["message"] = "no human being on location" + else: + state["lastchange"] = currentTimestamp + state["open"] = True + state["message"] = "open for public" + try: + fp = open( laststateFile, 'w' ) + fp.write(data + ' ' + str(currentTimestamp)) + fp.close() + except: + logging.exception("file") + exit(1) else: - state["open"] = True - state["message"] = "open for public" + state["lastchange"] = oldTimestamp else: state["open"] = None state["message"] = "open for public" + state["lastchange"] = oldTimestamp # JSON Decodieren und ausgeben print json.dumps(raw)