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. Open a demo.
Check out the website for installation instructions, tutorials and documentation.
Examples of devices it can interface it:
- Monitoring connected devices to a wireless router: OpenWrt, Tomato, Netgear, DD-WRT, TPLink, and ASUSWRT
- Philips Hue lights, WeMo switches, Efergy plugs, Edimax switches, RFXtrx sensors, and Tellstick devices and sensors
- Google Chromecasts, Music Player Daemon, Logitech Squeezebox, and Kodi (XBMC)
- Support for ISY994 (Insteon and X10 devices), Z-Wave, Nest Thermostats, Arduino, Raspberry Pi, and Modbus
- Integrate data from the Bitcoin network, meteorological data from OpenWeatherMap and Forecast.io, Transmission, or SABnzbd.
- See full list of supported devices
Built home automation on top of your devices:
- Keep a precise history of every change to the state of your house
- Turn on the lights when people get home after sun set
- Turn on lights slowly during sun set to compensate for less light
- Turn off all lights and devices when everybody leaves the house
- Offers a REST API for easy integration with other projects
- Allow sending notifications using Instapush, Notify My Android (NMA), PushBullet, PushOver, Slack, and Jabber (XMPP)
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 help section how to reach us.
Running Home Assistant requires Python 3.4. Run the following code to get up and running:
git clone --recursive https://github.com/balloob/home-assistant.git
python3 -m venv home-assistant
cd home-assistant
python3 -m homeassistant --open-ui
The last command will start the Home Assistant server and launch its web interface. By default Home Assistant looks for the configuration file config/configuration.yaml
. 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.