From 697fce992459c49a54a774f8aa127513f2812ff2 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 4 Jan 2014 18:24:30 -0800 Subject: [PATCH] Updating documentation --- README.md | 58 ++++++++++----------------- docs/architecture.png | Bin 31205 -> 33778 bytes homeassistant/components/__init__.py | 10 +++++ 3 files changed, 32 insertions(+), 36 deletions(-) diff --git a/README.md b/README.md index a4f045a1686..27383efbf55 100644 --- a/README.md +++ b/README.md @@ -169,15 +169,15 @@ The [APK](https://raw.github.com/balloob/home-assistant/master/android-tasker/Ho Architecture ------------ -The core of Home Assistant exists of two components; a Bus for calling services and firing events and a State Machine that keeps track of the state of things. +The core of Home Assistant exists of two parts; a Bus for calling services and firing events and a State Machine that keeps track of the state of things. ![screenshot-android-tasker.jpg](https://raw.github.com/balloob/home-assistant/master/docs/architecture.png) -For example to control the lights there are two components. One is the device tracker that polls the wireless router for connected devices and updates the state of the tracked devices in the State Machine to be either 'Home' or 'Not Home'. +For example to control the lights there are two components. One is the device_tracker that polls the wireless router for connected devices and updates the state of the tracked devices in the State Machine to be either 'Home' or 'Not Home'. -When a state is changed a state_changed event is fired for which the light trigger component is listening. Based on the new state of the device combined with the state of the sun it will decide if it should turn the lights on or off: +When a state is changed a state_changed event is fired for which the device_sun_light_trigger component is listening. Based on the new state of the device combined with the state of the sun it will decide if it should turn the lights on or off: - In the event that the state of device 'Paulus Nexus 4' changes to the 'Home' state: + In the event that the state of device 'Paulus Nexus 5' changes to the 'Home' state: If the sun has set and the lights are not on: Turn on the lights @@ -189,37 +189,23 @@ When a state is changed a state_changed event is fired for which the light trigg If the lights are off and the combined state of all tracked device equals 'Home': Turn on the lights -The light trigger component also registers the service turn_light_on with the Bus. When this is called it will turn on the lights. +By using the Bus as a central communication hub between components it is easy to replace components or add functionality. For example if you would want to change the way devices are detected you only have to write a component that updates the device states in the State Machine. -By using the Bus as a central communication hub between components it is easy to replace components or add functionality. For example if you would want to change the way devices are detected you only have to write a component that updates the State Machine and you're good to go. +### Components -The components have been categorized into two categories: - - 1 components that observe (implemented in [observers.py](https://github.com/balloob/home-assistant/blob/master/homeassistant/observers.py)) - 2 components that act on observations or provide services (implemented in [actors.py](https://github.com/balloob/home-assistant/blob/master/homeassistant/actors.py)) - -### Supported observers - -**track_sun** +**sun** Tracks the state of the sun and when the next sun rising and setting will occur. Depends on: latitude and longitude Action: maintains state of `weather.sun` including attributes `next_rising` and `next_setting` -**TomatoDeviceScanner** -A device scanner that scans a Tomato-based router and retrieves currently connected devices. To be used by `DeviceTracker`. -Depends on: host, username, password and http_id to login to Tomato Router. - -**DeviceTracker** +**device_tracker** Keeps track of which devices are currently home. -Depends on: a device scanner -Action: sets the state per device and maintains a combined state called `all_devices`. Keeps track of known devices in the file `known_devices.csv`. Will also provide a service to reload `known_devices.csv`. +Action: sets the state per device and maintains a combined state called `all_devices`. Keeps track of known devices in the file `known_devices.csv`. -### Supported actors +**Light** +Keeps track which lights are turned on and can control the lights. -**HueLightControl** -A light control for controlling the Philips Hue lights. - -**LightTrigger** +**device_sun_light_trigger** Turns lights on or off using a light control component based on state of the sun and devices that are home. Depends on: light control, track_sun, DeviceTracker Action: @@ -233,19 +219,19 @@ Optional service data: - `light_id` - only act on specific light. Else targets all. - `transition_seconds` - seconds to take to swithc to new state. -**media_buttons** -Registers services that will simulate key presses on the keyboard. It currently offers the following Buttons as a Service (BaaS): `keyboard/volume_up`, `keyboard/volume_down` and `keyboard/media_play_pause` -This actor depends on: PyUserInput - -**file_downloader** -Registers service `downloader/download_file` that will download files. File to download is specified in the `url` field in the service data. - -**webbrowser** -Registers service `browser/browse_url` that opens `url` as specified in event_data in the system default browser. - **chromecast** Registers three services to start playing YouTube video's on the ChromeCast. Service `chromecast/play_youtube_video` starts playing the specified video on the YouTube app on the ChromeCast. Specify video using `video` in service_data. Service `chromecast/start_fireplace` will start a YouTube movie simulating a fireplace and the `chromecast/start_epic_sax` service will start playing Epic Sax Guy 10h version. + +**media_buttons** +Registers services that will simulate key presses on the keyboard. It currently offers the following Buttons as a Service (BaaS): `keyboard/volume_up`, `keyboard/volume_down` and `keyboard/media_play_pause` +This actor depends on: PyUserInput + +**downloader** +Registers service `downloader/download_file` that will download files. File to download is specified in the `url` field in the service data. + +**browser** +Registers service `browser/browse_url` that opens `url` as specified in event_data in the system default browser. diff --git a/docs/architecture.png b/docs/architecture.png index 435be87b58ccb877ad098260ea620be96fc352a1..927410ee87575f54c9608431a3f411b7cbecf180 100644 GIT binary patch literal 33778 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

Ge3 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.". + +Each component should publish services only under its own domain. + """