diff --git a/homeassistant/actors.py b/homeassistant/actors.py index b9c79ce33e3..c973d436d4e 100644 --- a/homeassistant/actors.py +++ b/homeassistant/actors.py @@ -10,6 +10,7 @@ import os import logging from datetime import datetime, timedelta import re +import webbrowser import dateutil.parser from phue import Bridge @@ -26,6 +27,7 @@ LIGHT_TRANSITION_TIME = timedelta(minutes=15) HUE_MAX_TRANSITION_TIME = 9000 EVENT_DOWNLOAD_FILE = "download_file" +EVENT_BROWSE_URL = "browse_url" EVENT_TURN_LIGHT_ON = "turn_light_on" EVENT_TURN_LIGHT_OFF = "turn_light_off" @@ -238,3 +240,7 @@ def setup_file_downloader(eventbus, download_path): eventbus.listen(EVENT_DOWNLOAD_FILE, download_file) + +def setup_webbrowser(eventbus): + """ Listen for browse_url events and opens the url in the default webbrowser. """ + eventbus.listen(EVENT_BROWSE_URL, lambda event: webbrowser.open(event.data['url'])) diff --git a/start.py b/start.py index b014f2a644b..f85d80d2dc7 100644 --- a/start.py +++ b/start.py @@ -18,7 +18,7 @@ statemachine = StateMachine(eventbus) # Init observers tomato = observers.TomatoDeviceScanner(config.get('tomato','host'), config.get('tomato','username'), - config.get('tomato','password'), config.get('tomato','http_id')) + config.get('tomato','password'), config.get('tomato','http_id')) devicetracker = observers.DeviceTracker(eventbus, statemachine, tomato) @@ -29,10 +29,11 @@ actors.LightTrigger(eventbus, statemachine, devicetracker, actors.HueLightContro # If a chromecast is specified, add some chromecast specific event triggers if config.has_option("chromecast", "host"): - eventbus.listen("start_fireplace", lambda event: play_youtube_video(config.get("chromecast","host"), "eyU3bRy2x44")) - eventbus.listen("start_epic_sax", lambda event: play_youtube_video(config.get("chromecast","host"), "kxopViU98Xo")) + eventbus.listen("start_fireplace", lambda event: play_youtube_video(config.get("chromecast","host"), "eyU3bRy2x44")) + eventbus.listen("start_epic_sax", lambda event: play_youtube_video(config.get("chromecast","host"), "kxopViU98Xo")) actors.setup_file_downloader(eventbus, "downloads") +actors.setup_webbrowser(eventbus) # Init HTTP interface HTTPInterface(eventbus, statemachine, config.get("common","api_password"))