blob: ce404110496a7097467b07f9c5935367ba77f780 [file] [log] [blame]
import paho.mqtt.client as mqtt
import time
import os
import sys
import threading
import logging as log
mqttBroker ="localhost"
resolution = {}
timer = {}
timestamp = {}
def person_detected(device, num):
timestamp[device] = time.time()
if device in resolution and resolution[device] == "high":
return
set_resolution(device, "high")
def start_timer(device):
# log.info("Start timer for device {}".format(device))
timer[device] = threading.Timer(10.0, timer_expiry, device)
timer[device].start()
def remove_timer(device):
del timer[device]
def set_resolution(device, level):
log.info("Setting camera {} resolution to {}".format(device, level))
resolution[device] = level
if level == "high" and device not in timer:
start_timer(device)
client = mqtt.Client()
client.connect(mqttBroker)
client.publish("camera/" + str(5000 + int(device)), level)
def timer_expiry(device):
now = time.time()
diff = now - timestamp[device]
# log.info("timer_expiry() - now:{}, timestamp:{}".format(now, timestamp[device]))
if diff > 5.0:
set_resolution(device, "low")
remove_timer(device)
else:
start_timer(device)