#!/usr/bin/env python import logging from datetime import datetime, timedelta from time import sleep from pytz import utc from requests import get from hosted import device logging.basicConfig(level=logging.INFO) log = logging.getLogger("afra-status") last_open = datetime.now(utc) while True: try: r = get("https://spaceapi.afra-berlin.de/v1/status.json") r.raise_for_status() status = r.json() except Exception as e: log.exception("error while fetching status") status = { "state": { "open": None, }, } try: if status["state"]["open"]: last_open = datetime.now(utc) log.info('afra is open') else: log.info('afra is closed') except KeyError: log.exception("open status was not in state json") if datetime.now(utc) - last_open > timedelta(minutes=2): device.screen(on=False) else: device.screen(on=True) sleep(30)