home-assistant.io/source/_posts/2016-05-07-empowering-scripts-and-alexa.markdown
2021-03-29 13:45:08 +02:00

157 lines
6.9 KiB
Markdown

---
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
categories:
- Release-Notes
- Core
---
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:
message: {{ trigger.payload }}
automation 2:
trigger:
platform: state
entity_id: light.hue
action:
service: notify.notify
data:
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]: /integrations/script/#passing-parameters-in-service-calls
[expose intent variables]: /integrations/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]: /integrations/rpi_rf
[Forecast.io]: /integrations/darksky
[Snapcast]: /integrations/snapcast
[Command line sensor]: /integrations/sensor.command_line/
[allow client key authentication]: /integrations/mqtt/
[Pioneer AVR]: /integrations/pioneer
[Acer Projectors]: /integrations/acer_projector
[HVAC component]: /integrations/climate/
[OctoPrint]: /integrations/octoprint/
[Z-Wave]: /integrations/zwave/
[lock]: /integrations/lock/
[lock.zwave]: /integrations/zwave#lock
[Dweet component]: /integrations/dweet/
[`as_timestamp`]: /topics/templating/#home-assistant-template-extensions
[Google Maps travel time]: /integrations/google_travel_time
[CORS headers]: /integrations/http/
[Fitbit]: /integrations/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
```