This is the source code for Home Assistant. For installation instructions, tutorials and the docs, please see the website. 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:
- Track if devices are home by monitoring connected devices to a wireless router (supporting OpenWrt, Tomato, Netgear, and DD-WRT)
- Track and control Philips Hue lights, WeMo switches, and Tellstick devices and sensors
- Track and control Google Chromecasts and Music Player Daemon
- Support for ISY994 (Insteon and X10 devices), Z-Wave, Nest Thermostats, and Modbus
- Track running system services and monitoring your system stats (Memory, disk usage, and more)
- Control low-cost 433 MHz remote control wall-socket devices (https://github.com/r10r/rcswitch-pi) and other switches that can be turned on/off with shell commands
- Turn on the lights when people get home after sun set
- Turn on lights slowly during sun set to compensate for light loss
- Turn off all lights and devices when everybody leaves the house
- Offers web interface to monitor and control Home Assistant
- Offers a REST API for easy integration with other projects
- Ability to have multiple instances of Home Assistant work together
- Allow sending notifications using Instapush, Notify My Android (NMA), PushBullet, PushOver, and Jabber (XMPP)
- Allow to display details about a running Transmission client, the Bitcoin network, local meteorological data from OpenWeatherMap, the time, the date, and the downloads from SABnzbd
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
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 creating your own components.
If you run into issues while using Home Assistant or during development of a component, reach out to the Home Assistant developer community.
Running Home Assistant requires that python 3.4 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.
Please see the getting started guide on how to further configure Home Assistant.