initial push
This commit is contained in:
0
echo-master/echo_scheduler/__init__.py
Normal file
0
echo-master/echo_scheduler/__init__.py
Normal file
BIN
echo-master/echo_scheduler/__pycache__/__init__.cpython-37.pyc
Normal file
BIN
echo-master/echo_scheduler/__pycache__/__init__.cpython-37.pyc
Normal file
Binary file not shown.
BIN
echo-master/echo_scheduler/__pycache__/__init__.cpython-38.pyc
Normal file
BIN
echo-master/echo_scheduler/__pycache__/__init__.cpython-38.pyc
Normal file
Binary file not shown.
BIN
echo-master/echo_scheduler/__pycache__/scheduler.cpython-37.pyc
Normal file
BIN
echo-master/echo_scheduler/__pycache__/scheduler.cpython-37.pyc
Normal file
Binary file not shown.
BIN
echo-master/echo_scheduler/__pycache__/scheduler.cpython-38.pyc
Normal file
BIN
echo-master/echo_scheduler/__pycache__/scheduler.cpython-38.pyc
Normal file
Binary file not shown.
100
echo-master/echo_scheduler/scheduler.py
Normal file
100
echo-master/echo_scheduler/scheduler.py
Normal file
@@ -0,0 +1,100 @@
|
||||
import sys
|
||||
import _thread
|
||||
import datetime
|
||||
import time
|
||||
import schedule
|
||||
|
||||
import echo_controller.controller as Controller
|
||||
import echo_db.database as EchoDB
|
||||
|
||||
class EchoScheduler:
|
||||
|
||||
|
||||
|
||||
@staticmethod
|
||||
def init():
|
||||
print('Starting Echo Scheduler Thread...')
|
||||
_thread.start_new_thread(EchoScheduler.scheduler, ("Main Scheduler Thread", 2, ))
|
||||
|
||||
@staticmethod
|
||||
def scheduler(threadname, delay):
|
||||
print('Echo Scheduler Thread started!')
|
||||
|
||||
# Schedule Tasks
|
||||
schedule.every(2).minutes.do(EchoScheduler.getClimateData)
|
||||
schedule.every(2).minutes.do(EchoScheduler.getLightData)
|
||||
schedule.every(1).minute.do(EchoScheduler.checkAutomaticShutdown)
|
||||
schedule.every(1).minute.do(EchoScheduler.checkAutomaticBlinds)
|
||||
|
||||
# collection_delete = EchoDB.EchoDB.database['ClimateLogs']
|
||||
# collection_delete.remove({})
|
||||
|
||||
while True:
|
||||
schedule.run_pending()
|
||||
time.sleep(1)
|
||||
|
||||
@staticmethod
|
||||
def getClimateData():
|
||||
# Get Device
|
||||
collection = EchoDB.EchoDB.database['Devices']
|
||||
device = collection.find_one({'uuid': 'aa50-48fd'})
|
||||
|
||||
# Call Action
|
||||
Controller.Controller.handle_action(device, "gather_climate_data")
|
||||
|
||||
print('Scheduler Gathered Climate Data')
|
||||
|
||||
@staticmethod
|
||||
def getLightData():
|
||||
# Get Device
|
||||
collection = EchoDB.EchoDB.database['Devices']
|
||||
device = collection.find_one({'uuid': 'be0c-4bc7'})
|
||||
|
||||
# Call Action
|
||||
Controller.Controller.handle_action(device, "gather_light_data")
|
||||
|
||||
print('Scheduler Gathered Light Data')
|
||||
|
||||
@staticmethod
|
||||
def checkAutomaticShutdown():
|
||||
# Get Device
|
||||
collection = EchoDB.EchoDB.database['Devices']
|
||||
device = collection.find_one({'uuid': '9472-4f60'})
|
||||
|
||||
# Check if light is on
|
||||
if device['status'] == "off":
|
||||
return;
|
||||
|
||||
# Check if automatic movement is enabled
|
||||
if device['automatic_movement'] == False:
|
||||
return;
|
||||
|
||||
# Check if date is current time is past device automatic shutdown time
|
||||
automatic_shutdown_time = device['automatic_shutdown']
|
||||
current_time = datetime.datetime.now()
|
||||
|
||||
if current_time > automatic_shutdown_time:
|
||||
Controller.Controller.handle_action(device, "off")
|
||||
print('Scheduler Turned off light')
|
||||
|
||||
@staticmethod
|
||||
def checkAutomaticBlinds():
|
||||
# Get current time
|
||||
now_time = datetime.datetime.now()
|
||||
now_hours = now_time.hour
|
||||
now_minutes = now_time.minute
|
||||
check_time = str(now_hours).zfill(2) + ":" + str(now_minutes).zfill(2)
|
||||
|
||||
# Get Device
|
||||
collection = EchoDB.EchoDB.database['Devices']
|
||||
device = collection.find_one({'uuid': 'b039-471a'})
|
||||
|
||||
# Check if automatic open is enabled
|
||||
if device['automatic_open'] == False:
|
||||
return;
|
||||
|
||||
automatic_open_time = device['automatic_open_time']
|
||||
|
||||
if automatic_open_time == check_time:
|
||||
Controller.Controller.handle_action(device, "preset", "open")
|
||||
print('Scheduler Opened Sunblinds')
|
Reference in New Issue
Block a user