Example #1
0
def DailyHouseKeeping():
    street = HomerHelper.getSettingValue('StreetAddress')
    city = HomerHelper.getSettingValue('City')
    state = HomerHelper.getSettingValue('State')
    while True:
        logging.debug("performing daily housekeeping actions")
        sun = HomerHelper.calcSunPosition(street, city, state)
        HomerHelper.updateSettingValue('sunrise',sun['sunrise'])
        HomerHelper.updateSettingValue('sunset',sun['sunset'])
Example #2
0
def PollingStart():
    schedule(DailyHouseKeeping, id="DailyRunTasks", trigger='cron', hour=03, misfire_grace_time=None)

    if HomerHelper.getSettingValue('hue_polling') == 'True':
        logger.info("They see me pollin they hating, Phillips hue polling enabled")
        polling_rate = int(HomerHelper.getSettingValue('hue_polling_rate'))
        schedule(HuePoll, id="HuePoll", trigger='interval', seconds=polling_rate)

    if HomerHelper.getSettingValue('myQ_polling') == 'True':
        logger.info("They see me pollin they hating, myQ Device polling enabled")
        polling_rate = int(HomerHelper.getSettingValue('myQ_polling_rate'))
        schedule(myQPoll, id="MyQ Poll", trigger='interval', seconds=polling_rate, misfire_grace_time=None)
    def authenticate(self):
        loginUrl = urlparse.urljoin(self.MYQ_API, "/Membership/ValidateUserWithCulture")
        payload = {
            'appId':self.MyQ_App_ID,
            'securityToken':'null',
            'username':HomerHelper.getSettingValue('MyQ_Username'),
            'password':HomerHelper.getSettingValue('MyQ_Password'),
            'culture':'en'
        }
        logging.debug('authenticating MyQ account')
        r = requests.get(loginUrl, params=payload)
        jsonData = json.loads(r.text)
        errorMessage = str(jsonData['ErrorMessage'])

        if not errorMessage:
            return jsonData['SecurityToken']
        else:
            return None
Example #4
0
__author__ = 'matt'
import HomerHelper
from apscheduler.schedulers.gevent import GeventScheduler
from apscheduler.jobstores.memory import MemoryJobStore
from apscheduler.executors.pool import ThreadPoolExecutor



street = HomerHelper.getSettingValue('StreetAddress')
city = HomerHelper.getSettingValue('City')
state = HomerHelper.getSettingValue('State')
timezone = HomerHelper.calcTimeZone(street, city, state)

jobstores = {
    'default': MemoryJobStore
}
executors = {
    'default': ThreadPoolExecutor(40)
}
job_defaults = {
    'misfire_grace_time': None,
    'coalesce': True,
    'max_instances': 3
}
scheduler = GeventScheduler(executors=executors, job_defaults=job_defaults, timezone=timezone)
scheduler.start()

def schedule(*args, **kwargs):
    job = scheduler.add_job(*args, **kwargs)
    return job
 def __init__(self):
     self.MYQ_API = HomerHelper.getSettingValue('MyQ_API_URL')
     self.MyQ_App_ID = HomerHelper.getSettingValue('MyQ_App_ID')
     self.securityToken = self.authenticate()
import HomerHelper
import logging
import threading
import gevent
from gevent import Greenlet
import urlparse
import requests
import json
from Scheduler import schedule, KillJob, GetJob
import random



logger = logging.getLogger(__name__)

IMP_API = HomerHelper.getSettingValue('Imp_API_URL')
SPARK_API = HomerHelper.getSettingValue('Spark_API_URL')



spark_token = HomerHelper.getSettingValue('spark_token')



b = Bridge("Philips-hue.mattlovett.com", config_file_path = "./HOMEr_hue")

# If the app is not registered and the button is not pressed, press the button and call connect() (this only needs to be run a single time)
b.connect()

# Get the bridge state (This returns the full dictionary that you can explore)
b.get_api()