🏡 Open source home automation that puts local control and privacy first.
Go to file
Paulus Schoutsen 10bbc3d6e1 Default config: add recorder 2015-01-31 19:52:00 -08:00
config Fix automation example 2015-01-25 12:32:50 -08:00
docs Updated screenshots 2014-11-13 22:52:39 -08:00
homeassistant Default config: add recorder 2015-01-31 19:52:00 -08:00
scripts Clean up http related components 2015-01-30 08:26:06 -08:00
tests Refactor http into frontend and api component 2015-01-29 23:56:21 -08:00
.gitignore Added an example component that does the bare minimum 2014-12-26 22:58:58 -08:00
.gitmodules Increased environment validation upon start 2015-01-20 22:18:44 -08:00
.travis.yml Exclude external libraries from code coverage 2015-01-15 21:35:11 -08:00
CONTRIBUTING.md Moved documentation from GitHub source to home-assistant.io 2014-12-21 15:06:17 -08:00
Dockerfile Updated docker container instructions 2015-01-05 21:02:43 -08:00
LICENSE Added MIT license 2013-10-08 21:18:22 -07:00
README.md Add command-line toggle to run in demo mode 2015-01-17 22:23:07 -08:00
pylintrc Disable pylint unused-argument check 2015-01-19 23:40:51 -08:00
requirements.txt Migrate nest platform to python-nest 2015-01-12 23:31:31 -08:00

README.md

Home Assistant Build Status Coverage Status

This is the source for Home Assistant. For installation instructions, tutorials and the docs, please see https://home-assistant.io. For a functioning demo frontend of Home Assistant, click here.

Home Assistant is a home automation platform running on Python 3. The goal of Home Assistant is to be able to track and control all devices at home and offer a platform for automating control.

It offers the following functionality through built-in components:

Home Assistant also includes functionality for controlling HTPCs:

  • Simulate key presses for Play/Pause, Next track, Prev track, Volume up, Volume Down
  • Download files
  • Open URLs in the default browser

screenshot-states

The system is built modular so support for other devices or actions can be implemented easily. See also the section on architecture and the section on customizing.

If you run into issues while using Home Assistant or during development of a component, reach out to the Home Assistant developer community.

Installation instructions / Quick-start guide

Running Home Assistant requires that python3 and the package requests are installed. Run the following code to install and start Home Assistant:

git clone --recursive https://github.com/balloob/home-assistant.git
cd home-assistant
pip3 install -r requirements.txt
python3 -m homeassistant --open-ui

The last command will start the Home Assistant server and launch its webinterface. By default Home Assistant looks for the configuration file config/home-assistant.conf. A standard configuration file will be written if none exists.

If you are still exploring if you want to use Home Assistant in the first place, you can enable the demo mode by adding the --demo-mode argument to the last command.

If you're using Docker, you can use

docker run -d --name="home-assistant" -v /path/to/homeassistant/config:/config -v /etc/localtime:/etc/localtime:ro --net=host balloob/home-assistant

After you have launched the Docker image, navigate to its web interface on http://127.0.0.1:8123.

After you got the demo mode running it is time to enable some real components and get started. An example configuration file has been provided in /config/home-assistant.conf.example.

Note: you can append ?api_password=YOUR_PASSWORD to the url of the web interface to log in automatically.

Note: for the light and switch component, you can specify multiple platforms by using sequential sections: [switch], [switch 2], [switch 3] etc

Philips Hue

To get Philips Hue working you will have to connect Home Assistant to the Hue bridge.

Run the following command from your config dir and follow the instructions:

python3 -m phue --host HUE_BRIDGE_IP_ADDRESS --config-file-path phue.conf

After that add the following lines to your home-assistant.conf:

[light]
platform=hue

Wireless router

Your wireless router is used to track which devices are connected. Three different types of wireless routers are currently supported: tomato, netgear and luci (OpenWRT). To get started add the following lines to your home-assistant.conf (example for Netgear):

[device_tracker]
platform=netgear
host=192.168.1.1
username=admin
password=MY_PASSWORD

Note on tomato: Tomato requires an extra config variable called http_id. The value can be obtained by logging in to the Tomato admin interface and search for http_id in the page source code.

Note on luci: before the Luci scanner can be used you have to install the luci RPC package on OpenWRT: opkg install luci-mod-rpc.

Once tracking, the device_tracker component will maintain a file in your config dir called known_devices.csv. Edit this file to adjust which devices have to be tracked.

As an alternative to the router-based device tracking, it is possible to directly scan the network for devices by using nmap. The IP addresses to scan can be specified in any format that nmap understands, including the network-prefix notation (192.168.1.1/24) and the range notation (192.168.1.1-255).

[device_tracker]
platform=nmap_tracker
hosts=192.168.1.1/24