only change lastchange timestamp if the state has changed
This commit is contained in:
parent
080817d1af
commit
af85c6144b
2 changed files with 31 additions and 8 deletions
1
lastState.txt
Normal file
1
lastState.txt
Normal file
|
@ -0,0 +1 @@
|
|||
0 1470352249
|
38
state.py
38
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)
|
||||
|
|
Reference in a new issue