Blog

Release notes for March 11, 2015

It has only been a little over a week since Theodor introduced YAML support for Home Assistant but so much has already happened that it is time for a summary of recent changes. Before mentioning the highlights I want to thank andythigpen, jamespcole and theolind for numerous bug fixes, enhancements and new contributions. Thanks!

Monitor local resources.
Theodor has contributed a new sensor platform to allow you to monitor disk usage, memory usage, CPU usage and running processes. This platform has superseded the process component which is now considered deprecated.

# Example configuration.yaml entry
sensor:
  - platform: systemmonitor
    resources:
      - type: disk_use_percent
        arg: /home
      - type: memory_free
      - type: process
        arg: kodi

Experimental Z-Wave support
There is now experimental support for connecting Z-Wave networks using a Z-Wave USB stick. Right now it only integrates Z-Wave sensors into Home Assistant. Our goal is to get this tested by more people before adding support for other Z-Wave devices.

The new component is built on top of python-openzwave. This package is currently not distributed on PyPi so we’ve added a script scripts/build_python_openzwave to install it on your machine. Alternatively you can use the Docker image which is ready to go.

The development was done using an AEON Z-Wave USB stick and an AEON Z-Wave MultiSensor.

# Example configuration.yaml entry
zwave:
  usb_path: /dev/ttyUSB0

Voice control
An initial version of voice control for Home Assistant has landed. The current implementation consists of two parts.

The first part is a component called conversation that exposes the service conversation/process. This service is capable of processing text and translating them into commands for devices. For now it will only support commands in the format of Turn <Friendly Name> <on/off>.

The second part is an upgrade to the frontend to use the speech-to-text in Chrome to allow users to speak commands. If you’re using Chrome, you can test this out in the demo.

# Example configuration.yaml entry
conversation:

New logo for Home Assistant

It is well known that you are either a good programmer or a good designer. It’s rare you’ll meet someone that is both. That’s why it wasn’t surprising to anyone that the logo that I made was mediocre — at best. Luckily, Jeremy Geltman has come to the rescue and contributed a brand new logo for Home Assistant.

The new logo follows Googles material design spec. It uses the blue color that Home Assistant uses in the interface and it comes in two versions: a high detailed version (for homescreen icon etc) and a simple version (for favicon etc).

The old logo, the new detailed logo and the new simple logo.


Home Assistant moving to YAML

Home Assistant is now using YAML for its configuration file. YAML allows the use of lists, which should make the configuration file a bit more flexible and useful. The new configuration file format is backwards compatible with existing components. Because of this, there is no need for component developers to update their components.

The new file is named configuration.yaml and if it can’t be found in your config directory, Home Assistant will instead try to find the old configuration file, home-assistant.conf.

The home-assistant.conf.example has been replaced with an updated configuration.yaml.example.

Users of Home Assistant should migrate as the old configuration format is deprecated.


Streaming updates

Home Assistant has learned a new trick to get the latest information from the server: streaming updates. No longer will the frontend poll every 30 seconds for updates but instead it will keep a connection open and get the latest changes pushed as soon as they happen.

A new toggle has been added to the sidebar to turn streaming updates on and off. This preference will be saved on a per-browser basis using local storage. The toggle will also indicate when there is an error setting up a stream after which it will fall back to use polling.

Read on →

Looking at the past

Ever since the launch of Home Assistant you have been able to track the state of your house. But the view has always been limited to what the current state is. Not what it was. Today we are going to change that by introducing two brand new components:

  • Recorder component that will record every event to a SQLite database
  • History component that will query and aggregate the recorded events

By adding this view into the past, we are adding an extra dimension into the state of your house. This brings great new possibilities for future features. The focus of today’s release is on getting the recording component to you to start recording and getting some data. To show what is being recorded a view has been added that shows the last 24 hours of your house. Expect more extensive tools to explore your history in the future.

Adding history to the UI was a challenge on itself because the old UI did not support easy navigation. So to add to the awesomeness of this release, Home Assistant also got a face lift.

The history component will be enabled for new users by default. For current users, run scripts/update to upgrade to the latest version and add [history] to your home-assistant.conf file.

Note

Events are saved in a local database. Google Graphs is used to draw the graph. Drawing is happening 100% in your browser - no data is transferred to anyone at any time.

Read on →

Release notes for January 24, 2015

I have just merged the latest version of the development branch into master. Here are some of the highlights of this release:

Configuration via the frontend
Phliips Hue will now be auto discovered and uses the new configurator component to interact with the user to finish the setup process.

Wink Hub support
Thanks to the work done by John McLaughlin and Geoff Norton we now support the lights, switches and sensors that are connected to the Wink hub.

The getting started guide and component page have been reorganized
The getting started instructions have been split into separate pages per component and a general overview page. The goal is to have a page per component that describes:

  • What it does
  • How to set it up
  • Which states it maintains
  • Which services it provides
  • Additional development tips

More reasonable errors
Home Assistant should now throw better errors and offer solutions if you do not have the right version of Python 3, forgot to clone the git submodules or install the dependencies.

Streamlined first launch
Home Assistant now supports --open-ui and --demo-mode command line properties to open the browser automatically and have something to show. Home Assistant now supports to be run without a password, allowing the interface to login automatically on launch.


Nest in the house!

For thet majority of its existence, Home Assistant primary focus was on presence detection, lights and switches. But not anymore as we’re expanding the supported devices. Today, we’re proud to introduce Nest Thermostat integration for Home Assistant contributed by Stefano Fiorini!

The new integration exists out of two parts: a generic thermostat component and a Nest platform implementation. The initial version implements provides a read-only card and services to control it. The plan is in the future to add temperature and away mode controls from the thermostat card and more info dialog. Internally, we are using the Python package python-nest by jkoelker to talk to the Nest.

If you own a Nest thermostat, add the following lines to your home-assistant.conf:

[thermostat]
platform=nest
username=YOUR_USERNAME
password=YOUR_PASSWORD

Bootstrapping your setup with Discovery

Most people do not like configuring things. Things just have to work, out of the box. Reaching this scenario is the goal of what we are about to introduce: our new discovery component.

The discovery component will scan the WiFi network from time to time for connected zeroconf/mDNS and uPnP devices. The initial introduction is mainly focussed on getting the right architecture in place and discovers Belkin WeMo switches and Google Chromecasts connected to your network. When found, it will load and notify the appropritate component and it will be ready to use within seconds.

Most devices still require some sort of interaction from the user after being discovered - be it a button being pressed or some sort of authentication. This is a challenge that will be solved in the future.

To enable the discovery component, add the following to your home-assistant.conf:

[discovery]

A new discovery section has been added to the Adding a new platform page with instructions how to make your platform discoverable.


Hello PushBullet, nice talking to you

One of the things that was missing in Home Assistant for a while was a way to communicate with users. Wouldn’t it be nice to get a message when important events happen like the lights being turned on while no one is home? Since the Home Assistant frontend runs as a web application on the phone, we have no way to bring ourselves to the front. This is where the new notify component comes in, powered by PushBullet.

The new notify component will take in messages and tells them to the user. For now this will be powered by the very awesome PushBullet but any other messaging platform can be easily added.

A message triggered by the simple_alarm component is shown by PushBullet on the Moto360.

Read on to learn how to enable the notify component and integrate it with other components.

Read on →

Home Control, Automation & the Smart Home

The internet has been buzzing over the last year about home automation. A lot of different terms fly around like the internet of things, home automation and the smart home. This article will try to explain how they all relate.

The first thing to introduce is the Internet of Things (IoT). This refers to a new generation of devices that cannot only be controlled by humans via buttons or remotes but also provide an interface to communicate with other devices and applications. For example, an IoT-capable coffee machine could receive commands to create different types of coffee and be able to broadcast the amount of water left in its reservoir.

There is no widely adopted open standard for smart device communication. This prevents a lot of devices to communicate with one another. And even if they could, most devices are not designed to manage other devices. To solve this we need a device to be able to communicate with and manage all these connected devices. This device is called a hub.

As a bare minimum a hub has to keep track of the state of each device and should be able to control them if possible. For example, it has to know which lights are on or off and offer a way to control the lights. For a sensor it only has to know the value. A hub with these capabilities offers home control.

Hub dashboard example Example of a hub's dashboard. Showing the state of 2 persons, 4 lights and the sun.

Read on →