Blog

Thomas Krenn award 2017

You may already know from our social media channels and the release blog post for 0.41: We are now an award-winning Open source project. The jury of the Thomas-Krenn-Award put us on the 2nd place. This is an awesome achievement for an independent community project.

I would like to thanks all contributors. Your endless effort made this possible.

The prize beside the very nice trophy contains hardware and we want to give that hardware partically away. We won four Low Energy Server v2 (LES) units with an Intel Celeron N2930, 8 GB of RAM, and a mSATA of 128 GB (one unit with 64 GB). We were thinking about to keep one of those units in Europe and one in North America for testing and to use during workshops and events. But the other two will go to interested parties.

As a raffle would be to easy, we make a contest out of it. This means that we are looking for your application. Of course, we would like to see those systems goes to active or future developers who can justify their need for one of the systems to run CI, UI tests, public accessible Home Assistant demo instances, etc. At the other hand we would like to keep it open, to see with what people are coming up. Please participate as well if you are planning to automate the public school of your kids with 1000 switches or light, need a server to run it, and want to provide regular feedback about the user experience.

Create an entry in our Forum. Be creative and use your imagination.

The details

  • Jury: The Home Assistant community
  • Dead line: April, 23 2017 - 23.59 UTC
  • Voting period: April, 24th till April, 30 2017 - 23.59 UTC

The decision of the jury will be final. If there will be a dispute then the Top-5 committer of the Home Assistant organization on Github will decide. Also, we reserve us the right to ban applications if we suspect cheating or unfair methods. Updates will be available in the Forum and on Twitter.

Keep in mind that you may have to pay the fee for customs handling and the import duty by yourself. The plan is to ship the hardware from Germany. If you are located in a country with import/export regulations, we may not be able to ship the hardware to you.


HTTP to MQTT bridge

The idea of creating HTTP to MQTT bridge appeared when I was trying to integrate Google Assistant with my Home Assistant after watching BRUH Automation video. Right now there is no MQTT service available in IFTTT. Existing integration solution uses Maker Webhooks which requires that your Home Assistant instance is publicly accessible, which I think brings some security concerns or simply not always possible to set up.

The HTTP to MQTT bridge should fill that gap. The idea is to receive messages using HTTP requests and transfer them to your MQTT broker, which can be contacted by Home Assistant. The HTTP to MQTT bridge is written using Node.js with Express for the server part and MQTT.js for the client.

Read on →

Home Assistant 0.41: Tado, Volumio, Workday, improved Plex

Welcome to 0.41. There was a lot going on in the last two weeks. Not only from the code side but also from the social one of Home Assistant. Paulus did an interview with OpenSourceCraft, Fabian did a workshop at the Chemnitzer Linux Tage, and we are now an award-winning Open source project (I will cover that in a separate blog post).

Plex

@JesseWebDotCom made massive changes to the Plex media player platform. From better metadata support over new configuration options to improved controls and non-controllable clients.

Component overview

The Components overview is now powered by search/filtering feature. This will make it faster to get the component/platform you are looking for more quickly. Thanks again, @bdurrer for this.

Changelog

The new format of the changelog which was introduced with 0.40 will provide a link to the related pull request. We are not covering everything in our release notes but we think that this addition will make it easier to find details about the change.

New platforms/components

Backward-incompatible changes

  • The Kodi notifier platform was migrated to async and the configuration synced with the Kodi media player platform (#6497).
  • For the Music Player Daemon (MPD) platform was location replaced with name (#6553).
  • Event decorators were removed (#6634).
  • The Emby mediaplayer platform was changed to avoid name clashes (#6664).
  • In a lot of places were the power and energy units update. This change mostly affects the switch platforms (#6212).
  • If set to auto then the MQTT implementation will use the bundled certificates automatically (#6707).
  • Autodiscovery of Android IP Webcam was removed (#6528).
  • The frontend is now using Shadow DOM and this could break your custom panels (#228).

If you need help…

…don’t hesitate to use our very active forums or join us for a little chat. The release notes have comments enabled but it’s preferred if you use the former communication channels. Thanks.

Reporting Issues

Experiencing issues introduced by this release? Please report them in our issue tracker. Make sure to fill in all fields of the issue template.

Read on →


0.40.2 and broken dependencies

TL; DR: We have just released version 0.40.2 that includes a fix related to the installation of dependencies.

Some users in the last few days have been reporting that their Home Assistant installation fails to start with an error in the http component:

ImportError: No module named 'aiohttp.file_sender'

The problem is that Home Assistant did not handle the case where a dependency would want to install a core dependency of Home Assistant that is newer than what Home Assistant works with. For now, we have identified the following two components that can cause this issue:

  • AppleTV (0.38+)
  • Android IP Webcam (0.40+)

This issue has been resolved by 0.40.2. If you are on an impacted version and cannot upgrade to the latest version just yet, a temporary workaround will be to remove the <config dir>/deps directory and stop using the above mentioned integrations. In the case of AppleTV, you will also have to disable the discovery component to prevent it from being auto-detected.


Home Assistant 0.40: Turn any Android phone into an IP Webcam

It’s time for version 0.40 already! For this version, the main focus was on performance and bug fixes. Big thanks to @pvizeli for driving this effort. Startup is now super fast. We have also continued with adding warnings for components and platforms that are slowing down Home Assistant.

Some people have interpreted our recent added warnings as if 0.39 introduced the issues that caused the warning. This is not the case, the platforms and components have been misbehaving for a while but now we are adding warnings so we are able to track down the culprits.

Before we continue talking about all the improvements in this release I want to take a moment to thank a few people from the Home Assistant community that are fundamental to the success of Home Assistant. Big thanks to @dale3h, @CCOSTAN, @skalavala, @rrubin0, @brahmafear, @bassclarinetl2, and @torn8o! These are all people that hang out in our main chat channel and help new users get started and help existing users when running into trouble. Home Assistant would not be there without all the effort you put in! 🙇

And that our community kicks ass is also shown in the numbers. We have already raised together over $700 for the EFF via the sale of our t-shirts! All of you rock! Another number worth mentioning is that this release brings us passed 600 integrations for Home Assistant. All of you rock, again!

Z-Wave is now threadsafe

@andrey-git has spend a lot of time to make Z-Wave perform better. It should no longer cause Home Assistant to run slower or raise warnings about the timer getting out of sync.

Update on the MQTT Out of Memory errors in 0.39

MQTT started causing “Out of Memory” errors for some people on a Raspberry Pi. We have been able to track this down to Raspberry Pis that are using an older firmware. If you are experiencing this issue, please upgrade your firmware using rpi-update.

Turn any Android phone into an IP Camera

With the new support for IP Webcam added by @robbiet480 and @pvizeli you are now able to re-purpose any Android phone to become a multifunctional IP webcam. Some of the cool things that you can do:

  • Integrate the Android device camera
  • Binary sensor when motion is detected
  • Sensors to expose the device sensors, including pressure, sound, battery, light
  • Control device features like the GPS, night vision and camera flash

Screenshot of all the different functionality the IP webcam integration offers.

Other Highlights

  • Support added for Austrian weather using Zamg weather data (@Zac-HD)
  • Ring.com video doorbell integration added (@tchellomello)
  • Blink Home Security Camera support added (@fronzbot)
  • AppleTV has been converted to push data to Home Assistant instead of us having to poll (@postlund)

Backward-incompatible changes

  • Vera entity ids have changed. This is a one time change to migrate to a model that will prevent future conflicts.
  • The Twilio notify platforms now have to be configured via the twilio component.
twilio:
  account_sid: "abc"
  auth_token: "xyz"
  • If you are using async custom components, the passed in async_add_devices method is now a callback instead of a coroutine function.

If you need help…

…don’t hesitate to use our very active forums or join us for a little chat. The release notes have comments enabled but it’s preferred if you use the former communication channels. Thanks.

Reporting Issues

Experiencing issues introduced by this release? Please report them in our issue tracker. Make sure to fill in all fields of the issue template.

Release 0.40.1 - March 16

Release 0.40.2 - March 22

Hot fix release to fix dependency issues. More detailed information about the issue in this blog post.

  • Prevent dependencies that are installed on demand from installing different versions of core dependencies (@balloob - #6738)
  • Upgrade PyChromecast to silent some benign errors (@balloob - #6702)
Read on →

0.39: Configuration panel, state restoration and improved docs

It’s time for 0.39 and this release has some amazing new features!

T-Shirts

First off, in case you haven’t seen it yet: we have t-shirts now and they are beautiful. All proceeds from the shirts will be donated to the Electronic Frontier Foundation. The first three days all of you have already raised $400! Still waiting for Teespring to get back to me so stay tuned for the EU store.

Configuration panel

Yep, you read that right. We have a configuration panel. It’s just the first of many small steps. Putting in a foundation is important and gives us something to iterate on.

To start, we have three simple configuration panels:

  • Core: allows you to validate config, reload core/group/automation config and restart/stop Home Assistant
  • Group: allows you to rename groups, change type between group/view and reorder entities.
  • Z-Wave: allows you to set device specific configuration settings

Screenshot of our new configuration panel.

As a security measure, the configuration panel will need to be activated in the config file to be activated. This can be done by adding the following to your configuration.yaml:

config:

Using our configuration panels will require you to structure your groups and Z-Wave device config according to how the configuration panel expects it. This is on purpose as it we will not be aiming to build a system that supports both our extended set of configuration extend hooks and our configuration panels. It’s one or the other.

To activate them in your config, create empty files groups.yaml and zwave_device_config.yaml in your config dir and add the following entries to your config:

group: !include groups.yaml

zwave:
  device_config: !include zwave_device_config.yaml

Note that this is the first release. Things will be missing, things might be broken.

Reorganized documentation

Thanks to Fabian we have a great re-organized documentation. Is it perfect yet? No. But we are getting close. We put a lot of focus on making sure the Raspberry Pi is the main focus of our getting started. The other instructions are still available, just not as part of the main getting started.

State restoration

Ever have some input components or integrations and get annoyed with the fact that their state is lost after a restart? Don’t worry any longer. Johann has added the foundation for state restoration to Home Assistant. For the initial release support has been added to input_select and input_boolean components. We will be adding this to more integrations in the future.

Backward-incompatible changes to customize and Z-Wave “customize”

A couple of releases ago we introduced a new way of doing customize. It became a list that allowed different ways of matching the config to the entity.

We realized that this was leading into a rabbit hole that we had to get out off. Besides making it unnecessarily complicated it also blocked the road to config panels. And who doesn’t like config panels?

So starting this release, we had to make some backward-incompatible changes to right the wrong. We will be releasing an online tool to help you convert your config to the new format later today.

Update: the online tool can be found here.

Customize has been reverted to its original config

The old customize is back. The options to match by domain or using glob have been moved to its own options. It will now look like this:

homeassistant:
  customize:
    light.kitchen:
      hidden: true
  customize_domain:
    light:
      icon: mdi:home
  customize_glob:
    "light.kitchen_*":
      icon: mid:description

Z-Wave customize is now device config

Ever wondered why the Z-Wave customize was called customize? Yeah, so did we. So when migrating this to the new config format, we decided to upgrade the name too:

zwave:
  device_config:
    light.kitchen:
      ignored: true
  device_config_domain:
    light:
      polling_intensity: 2
  device_config_glob:
    "light.kitchen_*":
      polling_intensity: 0

Speed improvements

And a final shout out to Pascal. He keeps improving the performance of components and platforms all over Home Assistant.

Read on →

Home Assistant t-shirts have arrived!

Cool dude with beard and tattoo wearing [the new blue Home Assistant shirt][blue-us].

What time is it? Yep, t-shirt time. Today we’re launching the first two Home Assistant designs. We have a blue t-shirt as pictured above and a design for on black/gray shirts as pictured below.

Visit the Home Assistant store

Family of 4 on a bench wearing the new black Home Assistant shirt.

We are using Teespring.com to manage all the sales, production and distribution of the shirts. It’s also how we got all these amazing stockphotos.

More photos after the click.

Read on →

Workshop at CLT 2017

There will be a Home Assistant Workshop at the Chemnitzer Linux-Tage 2017. First I will cover the installation, the setup, and the configuration process. The second part will be all about automation. Last but not least, we will talk about the integration of a new platform/component.

Check the Workshop overview to get the details.

Reqistration is required as the places in the room are limited. The deadline for the registration is March, 8th 2017.

  • Location: Technische Universität Chemnitz, Reichenhainer Straße 90, 09126 Chemnitz, Germany
  • Date: March, 12th 2017
  • Time: 10:00, Room W2
  • Language: German

0.38: Alert, AppleTV, MQTT discovery, and Yeelight

Another Saturday, another release!

Core updates

  • Thanks to @pvizeli, all the core components are now written asynchronously. All entity components are now migrated from synchronously to asynchronously code!

  • Now when you restart Home Assistant using the homeassistant.restart service, your configuration is checked. If it appears to be invalid the restart will fail.

Rewritten frontend

The frontend has been completely been rewritten, optimizing for speed and lost connection recovery. Even on the slowest phones it should fly now. The frontend also now uses the new WebSockets API instead of the EventStream API.

Custom state card UI

A nice new feature is the possibility to create custom state cards in the frontend. Go ahead and write your own state card for lights, sensors, locks, etc.

MQTT discovery

MQTT now has discovery support which is different than our discovery component. Similar to the HTTP sensor and HTTP binary sensor, MQTT discovery removes the need for configuration by allowing devices to make their presence known to Home Assistant.

Alert component

If you left your front door open, then the new alert component can be used to remind you of this by sending you repeating notifications at a given interval.

Yeelight

The yeelight component has been ported to use a more stable and feature-complete python-yeelight backend, and supports now both white and RGB bulbs. The component also supports transitions and can be configured to save the settings to the bulb on changes. The users currently using custom components for Yeelight are encouraged to move back to use the included version and report any problems with it to our issue tracker.

Apple TV

Apple TV is now a supported media_player! It has support for just about every media player function, including a realtime display of playback status and artwork.

All changes

New platforms/components

Improvements

  • Switch - Pilight: Validation no longer rejects alphanumeric IDs (@DavidLP)
  • Device tracker - ASUSWrt: Fixes ip neigh regex to handle the possible IPv6 “router” flag (@kylehendricks)
  • Light - MySensors: Fix mysensors RGB and W light turn on (@MartinHjelmare)
  • Light - Yeelight: new yeelight backend lib, new features (@rytilahti)
  • Climate - Eq3btsmart: Cleanup modes & available, bump version requirement (@rytilahti)
  • Sensor - SMA: Handle units correctly (@kellerza)
  • MQTT eventstream: Prevent infinite loop in cross configured MQTT event streams (@aequitas)
  • Light - Hue: Fix lightgroups not syncing state ([@tboyce1])
  • Dvice tracker - Owntracks: Fix OwnTracks state names ([@tboyce1])
  • Wink: Wink AC and additional sensor support (@w1ll1am23)
  • Modbus: Modbus write_register accept list (@benvm)
  • Device tracker - Ping: Add devices detected by ping as SOURCE_TYPE_ROUTER instead of GPS (@michaelarnauts)
  • Climate - Ecobee: Cleanup climate and ecobee (@Duoxilian)
  • Sensor - Miflora: Allow specification of bluetooth adapter (@Danielhiversen)
  • Sensor - Systemmonitor: Add average load to systemmonitor (@eagleamon)
  • Sensor - Openweathermap: Add wind bearing (@fabaff)
  • Notify - Facebook: Allow to use data for enhanced messages (@adrianlzt)
  • Light - Hyperion: Change CONF_DEFAULT_COLOR CV type (@Joeboyc2)
  • Mysensors: Fix validation of serial port on windows (@MartinHjelmare)
  • Notify - Webostv: Store the key file in the configuration directory (@pschmitt)
  • TTS: TTS ID3 support (@robbiet480)
  • Switch - Broadlink: Add send packet service (@Yannic-HAW)
  • Wink: Add support for position on Wink cover (@albertoarias)
  • Light - Flux: Make brightness display work for RGB devices. (@aequitas)
  • Media player - Roku: Fix attribute error for media_player/roku (@tchellomello)
  • Light - MQTT template: Fix brightness slider for MQTT template lights (@ray0711)
  • Template: Add min and max Jinja2 filters (@sbidoul)
  • Device tracker - Skyhub: Improve Sky Hub error handling (@alexmogavero)
  • Notify - SMTP: Add error checking to the MIMEImage encoding (@stratosmacker)
  • Light - MQTT: Check for command topics when determining the capabilities of an MQTT light (@herm)
  • Core: Check config before restarting (@andrey-git)
  • Light - Hue: Fix groups with same names (@tboyce1)
  • Template: Add icon_template to template sensor (@tboyce1)
  • Recorder: Refactoring, scoping, and better handling of SQLAlchemy Sessions (@kellerza)
  • Light - Flux: Add support for fluxled discovery. (@aequitas)
  • Media player - AppleTV: Add discovery support to Apple TV (@postlund)
  • Sensor - Template: Improve warning message in template rendering (@Danielhiversen)
  • Light - Demo: Add available property and typing hints (@rytilahti)
  • Sensor - ARWN: Enhancements to ARWN platform (@sdague)
  • Fan - ISY994: Change medium state for filtering (@Teagan42)
  • Climate - Ecobee: Support away_mode as permanent hold and hold_mode as temporary hold. (@Duoxilian)
  • Tellduslive: Don’t throw exception if connection to server is lost (@molobrakos)
  • Zoneminder: Refactoring and JSON decode error handling (@pschmitt)
  • Image processing: Cleanup Base face class add support for microsoft face detect (@pvizeli)

Bugfixes: @balloob, @fabaff, @pvizeli, @mnoorenberghe @Danielhiversen, @armills, @tchellomello, @aequitas, @mathewpeterson, @molobrakos, @michaelarnauts, @jabesq, @turbokongen, @JshWright, @andriej, @jawilson, @andrey-git, @nodinosaur, @konikvranik, and you if you are missing here.

Release 0.38.1 - February 12

  • Fix logbook ordering (@balloob)
  • Fix AppleTV conflicting dependency breaking websockets (@balloob)

Release 0.38.2 - February 12

Release 0.38.3 - February 15

  • Sonos: fix losing favorite sources on disconnect (@pvizeli)
  • Google Calendar: fix timeMin losing events (@happyleavesaoc)
  • Fix Wink PubNub subscription (@w1ll1am23)
  • Z-Wave: getter not to ignore label (@andrey-git)
  • Moon: remove unit of measurement (@fabaff)
  • MySensors: add version requirement to notify and device tracker (@MartinHjelmare)

Release 0.38.4 - February 21

  • Discovery: flux_led discovery led to problems on systems and has been removed (@bazwilliams)
  • Hidden devices are no longer visible on views (@balloob)

Backward-incompatible changes

  • The support for LG webOS Smart TVs was improved. This requires you to move $HOME/.pylgtv to $HASS_CONFIG_DIR/webostv.conf or Home Assistant will need to be paired with the TV again.
  • Image processing events have been renamed: identify_face has become image_processing.detect_face, found_plate has become image_processing.found_plate
  • The FFmpeg binary sensor change the platform name from ffmpeg to ffmpeg_noise and ffmpeg_motion. Also all FFmpeg-related services are moved from a platform implementation to a the FFmpeg components and were rename from binary_sensor.ffmpeg_xy to ffmpeg.xy.
  • The frontend core changes have caused all custom panels to break. Docs have not been updated yet. The gist is that you have to use this.hass.entities, this.hass.callService and this.hass.callApi.

If you need help…

…don’t hesitate to use our very active forums or join us for a little chat. The release notes have comments enabled but it’s preferred if you use the former communication channels. Thanks.

Reporting Issues

Experiencing issues introduced by this release? Please report them in our issue tracker. Make sure to fill in all fields of the issue template.