This commit is contained in:
Nick Leeman 2020-07-07 18:50:18 +02:00
parent ffbb2a0071
commit f852a9f3e2
5 changed files with 75 additions and 10 deletions

View File

@ -77,4 +77,41 @@ class LEDStrip:
@staticmethod @staticmethod
def handle_data(device, action, data): def handle_data(device, action, data):
pass pass
@staticmethod
def handle_movement_led():
mainBedLEDUUID = '34gr-54jf'
collection = EchoDB.EchoDB.database['Devices']
# Get Device (Main Light)
mainBedLEDDevice = collection.find_one({'uuid': mainBedLEDUUID})
# Check if automatic movement mode of main light is enabled, else do nothing
if mainBedLEDDevice['automatic_movement'] == False:
return
# Check if light levels are low enough to turn on light
collectionLight = EchoDB.EchoDB.database['LightLog']
data = collectionLight.find().sort([('timestamp', -1)]).limit(1)
if data[0]['light_amount'] > 20:
return;
# Light is already on, update automatic shutdown.
if mainBedLEDDevice['status'] == "on":
now_time = datetime.datetime.now()
auto_shutdown = now_time + datetime.timedelta(minutes = 2)
collection.update_one({'uuid': mainBedLEDUUID}, {"$set": { 'automatic_shutdown': auto_shutdown }})
return
# Light is off, turn it on
# Send Serial Command
EchoSerial.EchoSerial.send_commmand(mainBedLEDDevice, "set_color", mainBedLEDDevice['current_color'])
# Auto shutdown time
now_time = datetime.datetime.now()
auto_shutdown = now_time + datetime.timedelta(minutes= 2)
# Update Database
collection.update_one({'uuid': mainBedLEDUUID}, {"$set": { 'last_used': datetime.datetime.now(), 'status': "on", 'automatic_shutdown': auto_shutdown }})

View File

@ -21,8 +21,8 @@ class EchoScheduler:
print('Echo Scheduler Thread started!') print('Echo Scheduler Thread started!')
# Schedule Tasks # Schedule Tasks
schedule.every(2).minutes.do(EchoScheduler.getClimateData) schedule.every(2.1).minutes.do(EchoScheduler.getClimateData)
schedule.every(2).minutes.do(EchoScheduler.getLightData) schedule.every(2.2).minutes.do(EchoScheduler.getLightData)
schedule.every(1).minute.do(EchoScheduler.checkAutomaticShutdown) schedule.every(1).minute.do(EchoScheduler.checkAutomaticShutdown)
schedule.every(1).minute.do(EchoScheduler.checkAutomaticBlinds) schedule.every(1).minute.do(EchoScheduler.checkAutomaticBlinds)
@ -57,25 +57,53 @@ class EchoScheduler:
@staticmethod @staticmethod
def checkAutomaticShutdown(): def checkAutomaticShutdown():
# Get Device
collection = EchoDB.EchoDB.database['Devices'] collection = EchoDB.EchoDB.database['Devices']
device = collection.find_one({'uuid': '9472-4f60'})
#
# Main Light
#
# Get Device
device_main_light = collection.find_one({'uuid': '9472-4f60'})
# Check if light is on # Check if light is on
if device['status'] == "off": if device_main_light['status'] == "off":
return; return;
# Check if automatic movement is enabled # Check if automatic movement is enabled
if device['automatic_movement'] == False: if device_main_light['automatic_movement'] == False:
return; return;
# Check if date is current time is past device automatic shutdown time # Check if date is current time is past device automatic shutdown time
automatic_shutdown_time = device['automatic_shutdown'] automatic_shutdown_time = device_main_light['automatic_shutdown']
current_time = datetime.datetime.now() current_time = datetime.datetime.now()
if current_time > automatic_shutdown_time: if current_time > automatic_shutdown_time:
Controller.Controller.handle_action(device, "off") Controller.Controller.handle_action(device_main_light, "off")
print('Scheduler Turned off light') print('Scheduler Turned off main light')
#
# LED Light
#
# Get Device
device_bed_led = collection.find_one({'uuid': '34gr-54jf'})
# Check if light is on
if device_bed_led['status'] == "off":
return;
# Check if automatic movement is enabled
if device_bed_led['automatic_movement'] == False:
return;
# Check if date is current time is past device automatic shutdown time
automatic_shutdown_time = device_bed_led['automatic_shutdown']
current_time = datetime.datetime.now()
if current_time > automatic_shutdown_time:
Controller.Controller.handle_action(device_bed_led, "off")
print('Scheduler Turned off main bed led light')
@staticmethod @staticmethod
def checkAutomaticBlinds(): def checkAutomaticBlinds():