---
layout: post
title: "0.19: Empowering scripts and Alexa"
description: "The new release of Home Assistant includes a lot of upgrades to how we handle scripts and make them available in a wide range of new components including automation and alexa."
date: 2016-05-07 11:06:00 -0700
date_formatted: "May 7, 2016"
author: Paulus Schoutsen
author_twitter: balloob
comments: true
categories: Release-Notes
---

This release is big. Until now, our automations and scripts have been very static. Starting today it should all be a bit more dynamic.

**Scripts** are now available in automations and when responding to Alexa/Amazon Echo. Both of these components will now expose data to be used in script templates (including `from_state` !). Passing data to script entities is available by passing the data to the script services.

```yaml
automation:
  trigger:
    platform: mqtt
    topic: some/notify/topic
  action:
    service: notify.notify
    data_template:
      message: {{ trigger.payload }}

automation 2:
  trigger:
    platform: state
    entity_id: light.hue
  action:
    service: notify.notify
    data_template:
      message: {{ trigger.to_state.name }} is now {{ trigger.to_state.state }}
```

**Entity Namespaces** allow you to influence the entity ids for a specific platform. For example you can turn `light.living_room` into `light.holiday_home_living_room` with the following config:

```yaml
light:
  platform: hue
  entity_namespace: holiday_home
```

 - Automation: allow [script syntax] for action ([@balloob])
 - Automation: expose [`trigger` variable][trigger-variable] to script templates ([@balloob])
 - Script: allow passing variables for script templates in the [script service calls] ([@balloob])
 - Alexa/Amazon Echo: allow [script syntax] for action ([@balloob])
 - Alexa/Amazon Echo: [expose intent variables] to script templates ([@balloob])
 - Script syntax: [conditions now supported] to interrupt execution ([@balloob])
 - Automation: use [new condition syntax] ([@balloob])
 - Script syntax: two new conditions [`and`][con-and] and [`or`][con-or] to combine conditions ([@balloob])
 - Any platform: Allow setting [entity namespace] to prefix entity_ids. ([@balloob])
 - Switch: [Raspberry Pi generic 433 Mhz GPIO adapters][rpi-rf] now supported ([@milaq])
 - Z-Wave: use more sane defaults ([@danieljkemp])
 - Media Player: [Snapcast] now supports picking a source ([@happyleavesaoc])
 - MySensors: major cleanup ([@MartinHjelmare])
 - Binary Sensor: [Command line sensor] now supports classes ([@fabaff])
 - MQTT: [allow client key authentication] ([@timharton])
 - Sensor: [Forecast.io] now supports minutely, hourly and daily summaries ([@aceat64])
 - Media Player: [Pioneer AVR] now supported ([@kylehendricks])
 - Switch: [Acer Projectors] now supported ([@deisi])
 - New [HVAC component] added with Z-Wave support ([@turbokongen])
 - Support added for [OctoPrint] ([@w1ll1am23])
 - Configuration.yaml can now refer to environment variables using `!env_var` ([@bah2830])
 - Lock: [Z-Wave][lock.zwave] now supported ([@devdelay])
 - New [Dweet component] to export data ([@fabaff])
 - Media Player now supports stop command + initial kodi support ([@hmronline])
 - Zigbee: push updates now supported ([@flyte])
 - Wink devices with battery level will now show these ([@w1ll1am23])
 - Templates: new [`as_timestamp`] method now available ([@srcLurker])
 - API: Add [`/api/discovery_info`] with basic instance info ([@robbiet480])
 - Sensor: [Google Maps travel time] added ([@Danielhiversen])
 - HTTP: Allow adding [CORS headers] ([@robbiet480])
 - Sensor: [Fitbit] support added ([@robbiet480])
 - Bug fixes and tweaks by [@turbokongen], [@danieljkemp], [@Danielhiversen], [@TheRealLink], [@persandstrom], [@sander76], [@fabaff], [@ishults], [@Bart274], [@robbiet480], [@Cinntax], [@blackdog70], [@gwendalg], [@JshWright], [@kylehendricks], [@bradsk88], [@shaftoe], [@molobrakos], [@bah2830], [@nkgilley]

[script syntax]: /getting-started/scripts/
[trigger-variable]: /getting-started/automation-templating/#available-trigger-data
[script service calls]: /components/script/#passing-parameters-in-service-calls
[expose intent variables]: /components/alexa/#configuring-home-assistant
[conditions now supported]: /getting-started/scripts-conditions/
[new condition syntax]: /getting-started/scripts-conditions/
[con-and]: /getting-started/scripts-conditions/#and-condition
[con-or]: /getting-started/scripts-conditions/#or-condition
[entity namespace]: /topics/platform_options/#entity-namespace
[rpi-rf]: /components/switch.rpi_rf/
[Forecast.io]: /components/sensor.forecast/
[Snapcast]: /components/media_player.snapcast/
[Command line sensor]: /components/sensor.command_line/
[allow client key authentication]: /components/mqtt/
[Pioneer AVR]: /components/media_player.pioneer/
[Acer Projectors]: /components/switch.acer_projector/
[HVAC component]: /components/hvac/
[OctoPrint]: /components/octoprint/
[Z-Wave]: /components/zwave/
[lock]: /components/lock/
[lock.zwave]: /components/lock.zwave/
[Dweet component]: /components/dweet/
[`as_timestamp`]: /topics/templating/#home-assistant-template-extensions
[Google Maps travel time]: /components/sensor.google_travel_time/
[CORS headers]: /components/http/
[Fitbit]: /components/sensor.fitbit/
[@balloob]: https://github.com/balloob/
[@milaq]: https://github.com/milaq/
[@danieljkemp]: https://github.com/danieljkemp/
[@happyleavesaoc]: https://github.com/happyleavesaoc/
[@MartinHjelmare]: https://github.com/MartinHjelmare/
[@fabaff]: https://github.com/fabaff/
[@timharton]: https://github.com/timharton/
[@aceat64]: https://github.com/aceat64/
[@kylehendricks]: https://github.com/kylehendricks/
[@deisi]: https://github.com/deisi/
[@turbokongen]: https://github.com/turbokongen/
[@w1ll1am23]: https://github.com/w1ll1am23/
[@bah2830]: https://github.com/bah2830/
[@devdelay]: https://github.com/devdelay/
[@hmronline]: https://github.com/hmronline/
[@flyte]: https://github.com/flyte/
[@srcLurker]: https://github.com/srcLurker/
[@robbiet480]: https://github.com/robbiet480/
[@Danielhiversen]: https://github.com/Danielhiversen/
[@TheRealLink]: https://github.com/TheRealLink/
[@persandstrom]: https://github.com/persandstrom/
[@sander76]: https://github.com/sander76/
[@ishults]: https://github.com/ishults/
[@Bart274]: https://github.com/Bart274/
[@Cinntax]: https://github.com/Cinntax/
[@blackdog70]: https://github.com/blackdog70/
[@gwendalg]: https://github.com/gwendalg/
[@JshWright]: https://github.com/JshWright/
[@bradsk88]: https://github.com/bradsk88/
[@shaftoe]: https://github.com/shaftoe/
[@molobrakos]: https://github.com/molobrakos/
[@nkgilley]: https://github.com/nkgilley/

### Deprecations
 - Conditions in automations should now specify which condition to use with `condition:` instead of `platform:`. For example `condition: state`.
 - RFXtrx has a new config format.

Old RFXtrx config format:

```yaml
  devices:
    123efab1:
      name: My DI.0 light device
      packetid: 1b2200000890efab1213f60
```

New RFXtrx config format:

```yaml
  devices:
    1b2200000890efab1213f60:
      name: My DI.0 light device
```
