Dražen Lučanin
Published © MIT

Home automation using Python, Flask and Celery

How to schedule chromecast control from a resin.io Raspberry Pi device.

IntermediateFull instructions provided3 hours10,429
Home automation using Python, Flask and Celery

Things used in this project

Story

Read more

Code

Code snippet #1

Plain text
git push resin master

Code snippet #2

Plain text
from celery.schedules import crontab  
app.config['CELERYBEAT_SCHEDULE'] = {  
    'play-every-morning': {
        'task': 'tasks.play_task',
        'schedule': crontab(hour=9, minute=0)
    },
    'pause-later': {
        'task': 'tasks.pause_task',
        'schedule': crontab(hour=9, minute=10)
    }
}

Code snippet #3

Plain text
@celery.task(name='tasks.play_task')
def play_task():  
    print('play something')
    return play()

@celery.task(name='tasks.pause_task')
def pause_task():  
    print('enough fun')
    return pause()

Code snippet #4

Plain text
@app.route('/play')
def get_play():  
    play_task.delay()
    return 'Playing! <a href="/">back</a>'

Code snippet #5

Plain text
redis: redis-server  
web: ./venv/bin/gunicorn main:app -b 0.0.0.0:5000 --chdir=src --log-level info --access-logfile=- --error-logfile=-  
worker: ./venv/bin/celery worker -A main.celery --loglevel=info --workdir=src -B  

Code snippet #6

Plain text
git push resin master

Code snippet #7

Plain text
from celery.schedules import crontab  
app.config['CELERYBEAT_SCHEDULE'] = {  
    'play-every-morning': {
        'task': 'tasks.play_task',
        'schedule': crontab(hour=9, minute=0)
    },
    'pause-later': {
        'task': 'tasks.pause_task',
        'schedule': crontab(hour=9, minute=10)
    }
}

Code snippet #8

Plain text
@celery.task(name='tasks.play_task')
def play_task():  
    print('play something')
    return play()

@celery.task(name='tasks.pause_task')
def pause_task():  
    print('enough fun')
    return pause()

Code snippet #9

Plain text
@app.route('/play')
def get_play():  
    play_task.delay()
    return 'Playing! <a href="/">back</a>'

Code snippet #10

Plain text
redis: redis-server  
web: ./venv/bin/gunicorn main:app -b 0.0.0.0:5000 --chdir=src --log-level info --access-logfile=- --error-logfile=-  
worker: ./venv/bin/celery worker -A main.celery --loglevel=info --workdir=src -B  

Github

https://github.com/balloob/pychromecast

Github

https://github.com/metakermit/resin-home-automator

Credits

Dražen Lučanin

Dražen Lučanin

1 project • 2 followers
http://metakermit.com/

Comments