fix
This commit is contained in:
parent
ffbb2a0071
commit
f852a9f3e2
Binary file not shown.
Binary file not shown.
@ -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 }})
|
Binary file not shown.
@ -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():
|
||||||
|
Loading…
x
Reference in New Issue
Block a user