0.115:生日版发布!媒体浏览器、标签、自动化与大量 WTH 改进

Home Assistant 生日快乐!

There's a party goin' on right here 🕺
A dedication to last throughout the years 🥳
So bring your good times, and your laughter too 😂
We gonna celebrate our party with you 🎁

It's a celebration! 🎉

~ Kool & The Gang - Celebration

7! Siete! Soch! Syv! Sieben! Seitsemän! Cедем! Sept! Sju! επτά! Zeven! Sette! Seven! Years old today! And ooooh, are we going to party and celebrate with you!

你可能已经注意到了,这次发布稍微晚了一点,整整晚了两周。我们平常的发布周期是 3 周,而这次用了 5 周。当然,这和今天的生日有关,不过还有什么礼物能比一个装满内容、人人都能从中找到惊喜的版本更好呢?

幸运的是,很多人在“What the heck?!” 之月(WTH)中分享了自己的心愿清单。太喜欢你们了!这个月论坛里出现了大量精彩的想法、痛点和建议,真的太棒了!

而且不仅如此,还有很多人亲自下场把这些问题修好。多么棒的社区!WTH 月马上就要结束了,之后我们会先关闭论坛中的这个分类,直到下一个 WTH 月再重新开放。

除此之外,这次发布还带来了两个全新而重磅的功能,我们非常希望在发布前把它们打磨到更完善。

我平时通常会在这里写几句我个人对这个版本的开场白, 但老实说,这次我完全不知道该从哪儿写起……内容实在太多了! 我真的很喜欢这次新增的自动化功能,但这个版本里这种内容也太多太多了。😅 我决定放弃尝试把它们都写出来了。😂

所以,就让我用一段对我们创始人的感谢来收尾吧:

Paulus, thank you so much for what you have imagined, started and 创建 7 years ago. Your idea has changed the lives of many, including my own. Thank you.

当然,不只是 Paulus,而是所有以任何方式为这个项目做出贡献的人。 无论是代码、文字、支持、聊天、YouTube 视频、直播、博客、文章、社区指南、文档、推文、issue、bug 报告、功能请求、想法、提问,哪怕只是单纯在使用它的人。 感谢你们的贡献!❤️

生日快乐,也祝你享受这个版本!

../Frenck

目录

好啦,这次发布内容非常庞大,所以这里放上一份目录,方便你快速浏览整篇发布说明。

媒体浏览器

这个版本带来了一组非常令人兴奋的媒体相关功能。如果你的媒体播放器支持它,你现在可以直接浏览播放器的媒体库,并快速切换正在播放的内容。想调灯光又想选音乐时,再也不用在两个应用之间来回切换了。

任何媒体播放器都可以启用这个新功能。本次发布已经为 Arcam FMJKodiPhilips JSPlexRokuSonosSpotify 加入了媒体浏览器支持!

感谢 @jjlawren 完成最初实现,也感谢 @cgtobi@ctalkington@martinhjelmare@elupus 为各个集成和后端细节所做的完善工作。

不过媒体浏览器不只是后端功能,它还得足够好看。幸运的是, @zsarnett @bramkragten 的帮助下完成了漂亮的设计,让你能更优雅地浏览自己的媒体内容。

When @hunterjm saw the new media browser, he got an idea. What if the 用户 can use the media browser to browse media offered by any 集成 and play it on any of their media players? And so the media source integrations was born.

The first media source that has been added is to allow 用户 to play local media. Local media can be motion detection events from your IP 摄像头 or a bunch of music files to be used with Home Assistant Tags.

Home Assistant, by default, will look at the /media path. If you're using Home Assistant OS (the default 安装), you can use the Samba 插件 to upload media. If you use Docker, you need to mount a volume at /media and if you use a Python virtual environment, the default is <config>/media.

You can also specify your own media paths with a new 配置 option in configuration.yaml:

homeassistant:
  media_dirs:
    motion: /media/motion_events
    music: /media/music

Media Source is not limited to local media. Any 集成 can offer its media. @cgtobi has upgraded the Netatmo integrations, which will now offer its recorded motion events to play.

Media player 集成 that want to play media sources will need to be updated. In this 发布, we've updated the Chromecast integrations. If you click its media browser 按钮, you will be presented with the available local sources.

Sometimes you just want to play your media without having to 打开 the TV. To 遮盖 that case, @zsarnett added a new media browser to the Home Assistant interface, which can be used to play your media. That way, you can quickly see what that motion event that you just received was about.

Home Assistant 标签

Photo of the Home Assistant tag reader made by Adonno The Home Assistant tag reader, made by Adonno with the help of MagnusO.

Home Assistant 现在已经原生支持标签了!借助 Home Assistant 标签,我们让可扫描标签(NFC/RFID)正式成为 Home Assistant 中的一等公民。读取、写入和自动化都变得更简单!

We have a beautiful UI for it in the 前端, our mobile companion apps have been updated to work seamlessly with tags and there is now even an open-source scanner available, as shown in the 图像 above.

For all details, read the dedicated 博客 post about Home Assistant tags!

自定义侧边栏

One of the most requested functions of What the heck was customizing the 侧边栏: You do want history for your 实体 in the more info dialog, but you don't use that history 面板. Or you do want 日历 for automating, or in the new Lovelace 卡片, but don't want a 日历 面板 with all your 日历.

Now you can hide 面板 from the 侧边栏 and rearrange them, by just drag and drop them.

Screen recording of customizing the 侧边栏 Screen recording of customizing the 侧边栏.

You can enter edit mode by pressing and holding the 侧边栏's header or from your profile page. You can then drag the items in the order you want them or remove them by clicking the x next to it.

The removed items will be visible at the bottom of the list, by clicking the + 按钮, you can add them back to the 侧边栏.

These 设置 are stored on your 设备 in the local storage of your browser, this means that this setting is 设备-based and will be cleared when you logout.

人员图片上传

You can now upload 图像 for a person in the 前端!

Select or drop an 图像 in the input field and then crop it to a square. The 图像 is stored on your Home Assistant instance.

We will use the 图像 in the 前端 for your persons and the 侧边栏 for the 用户 linked to this person.

This feature is powered by the new 图像 集成 and opens up for future possibilities. For example, uploading 图像, for use in your Lovelace picture 卡片, would be nice!

更新后的更多信息对话框

The more info dialog is updated. In case an 实体 has controls, for example a 灯光, the more info dialog will now have 2 tabs. One for controls and one for history.

On the history tab, you can find the history graph you are used to and now also a list of logbook entries of the specific 实体.

Screenshot of the 更新 more info dialogs The updated more info dialogs, showing the two tabs: details & history.

For 实体 without controls (like a 传感器), no tabs will be shown like before.

日志簿面板中的更多信息

The logbook will now show what 自动化 or 脚本 caused the change and what 动作 was used to make the change happen.

This solves yet another WTH request. It will be really helpful to find those cases that are: WTH turned on this 灯光?

Screenshot of the logbook showing the sources of the events. The logbook shows which 自动化 changed the 状态 of my stream 灯光.

自动化和脚本更新

The month of "What the heck?!" brought in a lot of topics that evolve around 自动化 and 脚本, of which quite a few have been addressed this 发布. Furthermore, we already had quite a bunch of improvements pending. If you like doing 自动化 in YAML, you'll probably just love this 发布.

Before starting on the list of newly added features, let's talk about the Home Assistant 前端. You can now duplicate an 自动化 and, the long present but always disabled, duplicate 条件, 触发器, and 动作 function are now also finally working!

新动作:等待触发器

This is a special new 动作 than can be used in an 自动化 动作 or 脚本 sequence that allows you to pause the execution until a certain 触发器 is been fired. It can be helpful for 自动化 or 脚本 that consist of multiple stages.

In this example, a 通知 is sent when one passes through two gates to enter the garden, but only when both gates are passed within 10 seconds.

automation:
  - trigger:
      - platform: state
        entity_id: binary_sensor.gate1
        to: "on"
    action:
      - wait_for_trigger:
          - platform: state
            entity_id: binary_sensor.gate2
            to: "on"
        timeout: 10
        continue_on_timeout: false
      - service: notify.notify
        data:
          message: Someone just entered the yard!

This example is simple and probably fairly useless for most of us. However, let's say you left your garage door open and you leave the "Home" 区域. Home Assistant could send you an actionable 通知, saying: "Hey, you left the garage door open, shall I close if for you?" with 2 choices: Yes/No.

Where you previously would have needed 3 自动化 for this. The first for sending a 通知 and two others for handling the "Yes" or "No" answer. Using the wait_for_trigger this could be done in a single 自动化.

Right after sending the 通知, the wait_for_trigger could halt the 脚本 from continuing, until it receives the "Yes" or "No" answer and continue after that and run the 动作 you'd like based on the answer received.

This new feature is not just for our YAML uses; it also is added to our 自动化 editor in the UI.

Screenshot of the new wait_for_trigger in the 自动化 editor The 自动化 editor can also use the new Wait for 触发器 动作.

基于实体属性的触发器与条件

Ever tried to create an 自动化 触发器 or 条件 on an 实体 属性, like the temperature of a 温控 or 天气 实体?

You used to need to use a 模板 for that. Either by extracting the 属性 from an 实体 using a 模板 传感器 or by writing a 模板 条件. A reason for a lot of you to put it up as a "What the heck?!" entry. And you know what? You guys are right, this was difficult.

Screenshot of using 属性 in the 自动化 editor The 自动化 editor now supports 属性 on 触发器 and 条件.

So, Home Assistant now supports the use of 属性 in 触发器 & 条件. Both the 状态 and numeric 状态, 触发器 & 条件 now have an attribute option that can be set with the 属性 to use. The UI got a nice field for it, as shown in the above screenshots, but of course, it is also available when you are using YAML for your 自动化.

Some example 触发器 and 条件 using 属性 in YAML:

trigger:
  - platform: state
    entity_id: climate.living_room
    attribute: hvac_action
    to: "heating"
  - platform: numeric_state
    entity_id: weather.outside
    attribute: temperature
    above: 20.5
condition:
  - condition: state
    entity_id: climate.living_room
    attribute: havc_mode
    state: "heat"
  - condition: numeric_state
    entity_id: weather.outside
    attribute: humidity
    below: 80

在自动化触发器中使用 input_datetime 助手

Using dates and times in your 自动化 can be hard. If often needs quite a bit of Jinja templating and is actually really hard to do. @pnbruckner noticed, and he added the possibility to use your input_datetime 助手 实体 directly in time 触发器!

Assume you have an input_datetime.bedroom_alarm_clock_time 助手 实体, that is in your Lovelace UI, which you can set a time in. Great! You can now just use it in your 自动化 to 触发器 on:

trigger:
  - platform: time
    at: input_datetime.bedroom_alarm_clock_time

Yes, he made it that elegant. It also works for multiple, or mixed variable and statically set times.

trigger:
  - platform: time
    at:
      - "10:00"
      - input_datetime.bedroom_alarm_clock_time
      - input_datetime.some_other_time_entity

More about the time 触发器, can be found in our 文档.

在条件中使用 input_* 助手

@pnbruckner set a standard in the above, and we used that to start working on making this something that would work on more places. As of this 发布, all input_* 实体 can be used in 条件.

The time 条件 can accept input_datetime 助手 实体, similar to the 触发器 shown above.

conditions:
  - condition: time
    after: input_datetime.house_silent_hours_start
    before: input_datetime.house_silent_hours_end

The numeric_state 条件 now accepts input_number 助手 实体 for the above and below options.

conditions:
  - condition: numeric_state
    entity_id: climate.living_room_thermostat
    attribute: temperature
    above: input_number.temperature_threshold_low
    below: input_number.temperature_threshold_high

And finally, the state 条件 accepts any input_* 助手 实体 in its state option.

conditions:
  - condition: state
    entity_id: sensor.happy_birthday
    state: input_text.too_you
  - condition: state
    entity_id: sensor.happy_birtday_song
    state: input_select.notify_on_song
  - condition: state
    entity_id: light.living_room
    state: input_boolean.expected_state

We are confident this will greatly improve the power and ease of the 助手 实体. The 条件 文档 has been updated with more examples.

Here is an idea: You can now easily create a set of 助手 实体 representing your 自动化 设置 and adding those to a separate Lovelace 仪表盘. You now have your own 自动化 配置 面板, helpful for tweaking things like times or adjust temperature thresholds, without touching your 自动化.

模板条件简写

A neat little trick added this 发布: Allow for shorter, cleaner YAML code, if you use 模板 quite a bit: A shorthand notation for 条件 模板 have been added.

All places that accept 条件, now accept 模板 directly. Some examples:

automations:
  - alias: "My automation"
    ...
    condition: ""
    ...
- choose:
    - conditions: ""
      sequence:
        - ...

Or in a list of 条件:

condition:
  condition: or
  conditions:
    - ""
    - condition: numeric_state
      entity_id: "sensor.temperature"
      below: 20

More examples can be found in the 条件 文档.

直接在 dataservice 字段中使用模板

More WTH input! Those data_template, and service_template fields in 服务 calls are so annoying! Why not accept 模板 in the normal data and service field?

Good question! And even better suggestion. As of now, you can!

action:
  - service: "notify."
    data:
      title: This is notification!
      message: "The time is "

Don't worry, the old format still works as before, so this is not a breaking change. However, you can start removing those data_template's by renaming to (or merging them with) data.

The keys inside a data block, can be 模板 now too!

service: kef_custom.set_mode
  data:
    "": ""

变量

Another WTH item, "Why can't we have variables?!". This WTH is not fully solved, but a good start is made this 发布 by adding support for variables to 自动化 and 脚本.

Here is an example 自动化:

automation:
  trigger:
    platform: sun
    event: sunset
    offset: -00:30
  variables:
    notification_service: notify.paulus_iphone
  action:
    - service: ""
      data:
        message: Beautiful sunset!

While the above example, it doesn't add that much value, it does shows how it works. Variables can be 模板 too! For example:

variables:
  person: frenck
  notification_service: "notify._iphone"

Both 脚本 and 自动化 动作 support this syntax now. Additionally, we added a new 动作! The variables 动作. This unlocks the potential to change variables during the runtime of a 脚本.

variables:
  notification_service: notify.paulus_iphone
action:
  - variables:
      notification_service: notify.frenck_iphone
  - service: ""
    data:
      message: This message actually went to Frenck, not Paulus.

For a more extensive example, check out the example written in the 博客 article about Home Assistant Tags.

其他脚本和自动化变化

But wait! There is more! 😂

There was no way of knowing if a wait 模板 was timed out or if it continued normally. Now, we do know this. After each wait 模板, a new variable is available: wait. It provides wait.completed (indicates if the 模板 evaluated to true before the timeout expired) and wait.remaning (remaining time out).

sequence:
  - wait_template: ""
    timeout: 10
    continue_on_timeout: true
  - choose:
      - conditions:
          - condition: template
            value_template: ""
        sequence:
          # Handle timeout case

The new 脚本 and 自动化 run modes are amazing! But in some cases, they might be polluting your 日志. For example, you have a 自动化 in single mode, but it does get triggered multiples times sometimes and you are not interested in the 日志. You can now control that with the max_exceeded option.

The example below silences the 自动化 and it will not 日志 when it gets triggered while it was already running:

automation:
  - trigger: ...
    max_exceeded: silent
    action: ...

日历卡片

Like promised, when we introduced the 日历 面板, we now also added a Lovelace 日历 卡片!

This allows you to create as many 日历 as you want with the 实体 you want.

If you want multiple 日历 面板, create a Lovelace 仪表盘 with a panelmode view with a 日历 卡片!

Screenshot of the new 日历 卡片 Screenshot of the new 日历 卡片.

模板开发者工具

The 模板 开发者工具 are very useful for checking if the 模板 you made works and does what you want it to do. But people had some annoyances with the tool; the editor is always filled with sample data, that can give a lot of response. It would be more useful to have your previously used 模板 there. Yes, you guessed it, another WTH!

The 模板 would also not automatically re-render after the 状态 of an 实体 is changed, causing you needing to change the 模板 in order to re-render it.

We addressed both these issues. We save your last-used 模板 and will show that instead of the example when you visit the 模板 开发者工具.

Screenrecording the live 状态 changes in the 模板 development tools. 模板 you write in the 开发者工具, are now updating live!

We will also listen for changes of the 实体 you used in your 模板 and automatically re-render your 模板. As a bonus, we will show which 实体 Home Assistant detected you are using in your 模板.

重载所有 YAML 配置

WTH, do we still need to 重启 Home Assistant for applying YAML 配置? That was one of the WTH raised. It is being worked on!

This 发布, @bdraco found a way to 重载 some of the internal 集成 and boosted this capability to a lot of 集成. For those, you can just 重载 the YAML in the 配置 server control page (you will need advanced mode).

As of this 发布, besides the 集成 that already could be reloaded, the following 集成 can now 重载 their YAML 配置 without a 重启 of Home Assistant:

You can also 重载 an 集成 that is 设置 with the UI! This can be useful when it lost its connection or is in an otherwise failed 状态. You can find the 重载 按钮 in the overflow menu on the 集成 卡片.

Screenshot of reloading an UI configured 集成. UI configured 集成 can now be reloaded as well!

更改用户密码

Another What the heck, that sounded so obvious: Being able to change a 用户's 密码 as the owner of the system. Right?!

You can now change every 用户's 密码 from the UI when you are the owner of the system!

Screenshot of change a 密码 of a 用户 account. As a owner, you can now change a 密码 of a 用户.

通过 Home Assistant Cloud 暴露实体的改进方式

This 发布 brings an 更新 to the way you can expose 实体 to Google Assistant and Amazon Alexa via Home Assistant Cloud.

With the new 面板, you can now set on a domain level if 实体 should be exposed/not exposed by default. You can still override this on a per-实体 level for fine-grained control.

The default expose rules have also been updated to expose 实体 that work best with voice assistants.

Screenshot of expose options on an 实体.

按实体添加卡片

Are you a bit overwhelmed by all the different types of 卡片 Lovelace has? You can now just select the 实体 you want to use for a 卡片, and have Lovelace suggest a 卡片 for you.

Screenshot of add 卡片 by 实体 selection view in Lovelace UI. Select one or more 实体 to populate the 卡片.

Screenshot of add 卡片 by 实体 confirmation view in Lovelace UI. A confirmation dialog is shown before adding the suggested 卡片.

In the add 卡片 dialog, we added a second tab with a list of all your 实体. Select the 实体 you want to use and click continue. We will suggest a 卡片 for you and you can then fine-tune the 配置.

在 Lovelace UI 编辑器中排序实体

You can now sort the 实体 in Lovelace UI editors by just dragging them. No more clicking the up and down 按钮 over and over again, simply drag the item up or down.

Screenrecording of dragging and dropping 实体 to re-order Drag and and drop the 实体 in the order you want.

其他值得注意的变化

  • The OpenZWave beta 集成 is coming along nicely. First signs of some control 面板 in the UI are visible this 发布. You can see the status and information of your network and nodes. There are also 按钮 to put your Z-Wave network in inclusion and exclusion mode and to refresh a node. Thanks @cgarwood!

  • The code editor in the UI is now theme-able, so make them look nice!

  • The stream component now supports audio! Amazing job @uvjustin!

  • Slack 通知 now supports change username/icon on the fly, which was a great WTH suggestion! Thanks for adding that @bachya.

  • The Met.no now supports hourly forecasts, very nice @bruxy70!

  • The MDI icons are updated to 版本 5.5.55, this adds another 100 icons you can use!

  • The Google Assistant 集成 got some updates:

    • @elupus added support for asking for the previous or next input source.
    • Basic support for controlling 灯光 effect has been added by @mjg59.
    • @blueshiftlabs added capabilities to control media player muting and relative-volume controls.
  • The Netatmo 集成 was re-engineered, which reduced the number of API calls and added Webhook events to improve overall responsiveness. It now supports controlling the outdoor 摄像头 floodlight and got 服务 to set the occupants' home/away status and the outdoor 摄像头 mode.

  • We no longer automatically alphabetically sort the keys in YAML files written by the UI, as a result from a WTH request. Much better!

新集成

A lot new 集成 added this 发布:

新平台

The following 集成 got support for a new platform:

现在可通过 UI 设置的集成

The following 集成 are now available via the Home Assistant UI:

如果你需要帮助……

...don't hesitate to use our very active forums or join us for a little chat.

Experiencing issues introduced by this 发布? Please report them in our issue tracker. Make sure to fill in all fields of the issue 模板.

不向后兼容的变更

Below is a listing of the breaking change for this 发布, per subject or 集成. Click on one of those to read more about the breaking change for that specific item.

自动化

Previously an 自动化's last_triggered 属性 was updated, and an automation_triggered event was fired, whenever a 触发器 fired and the 条件 (if any) were true, regardless if the 动作 actually ran.

For example, in single mode, the 动作 won't run if they are still running from a previous 触发器 event.

Now the 属性 will be updated, and the event fired, only if the 动作 actually run.

(@pnbruckner - #39323) (自动化 docs)

Axis

Initial naming of events from VMD4 and Fence guard are now based on their configured name on the 设备; binary_sensor.m1065-lw_0_vmd4_camera1profile1 is now binary_sensor.m1065-lw_0_vmd4_profile_1 or profile_1 can be whatever the 用户 chose to name the profile.

(@Kane610 - #39699) (axis docs)

Broadlink

1. 设备 are now configured via 配置 flow

To set up a Broadlink 设备, click Configuration in the 侧边栏 and click Integrations.

The 设备 will be imported from your 配置 files to that page. If you see your 设备 there, click Configure. If not, click the + icon in the lower right, click Broadlink, enter the host and follow the instructions to complete the 设置.

The name you choose will serve as a 模板 for the 实体. You can change the 实体 name and id in the 实体 设置 on the 前端. You may need to change some names or ids to make everything look the same as it was before this 更新.

2. Discontinue broadlink.learn and broadlink.send 服务

remote.learn_command and remote.send_command are now registered automatically. Now you can use remote.send_command to send base64 codes.

Instead of broadlink.learn:

script:
  learn_tv_power:
    sequence:
      - service: broadlink.learn
        data:
          host: 192.168.0.107

Use the remote.learn_command:

script:
  learn_tv_power:
    sequence:
      - service: remote.learn_command
        target:
          entity_id: remote.bedroom
        data:
          device: tv
          command: power

Instead of broadlink.send:

script:
  send_tv_power:
    sequence:
      - service: broadlink.send
        data:
          host: 192.168.0.107
          packet: JgAcAB0dHB44HhweGx4cHR06HB0cHhwdHB8bHhwADQUAAAAAAAAAAAAAAAA=

Use the remote.send_command by replacing host by entity_id of the 遥控器 实体, replace packet by command with data prefixed with b64::

script:
  send_tv_power:
    sequence:
      - service: remote.send_command
        target:
          entity_id: remote.bedroom
        data:
          command: b64:JgAcAB0dHB44HhweGx4cHR06HB0cHhwdHB8bHhwADQUAAAAAAAAAAAAAAAA=

If you have learned the commands, you can refer to them by name instead of the raw codes.:

script:
  send_tv_power:
    sequence:
      - service: remote.send_command
        target:
          entity_id: remote.bedroom
        data:
          device: tv
          command: power

3. Discontinue all platforms, except 开关

实体 are now registered automatically. The only exception is the 开关 platform, which continues to exist for RM 开关. The config schema haschanged . The host and type are no longer required and the name serves as a 模板 for the 实体 ID.

Instead of:

switch:
  - platform: broadlink
    host: 192.168.0.107
    mac: 34:ea:34:b4:5d:2c
    type: rm_mini3_redbean
    switches:
      sony_tv:
        friendly_name: Sony TV
        command_on: JgAcAB0dHB44HhweGx4cHR06HB0cHhwdHB8bHhwADQUAAAAAAAAAAAAAAAA=
        command_off: JgAaABweOR4bHhwdHB4dHRw6HhsdHR0dOTocAA0FAAAAAAAAAAAAAAAAAAA=
      lg_tv:
        friendly_name: LG TV
        command_on: JgAcAB0dHB44HhweGx4cHR06HB0cHhwdHB8bHhwADQUAAAAAAAAAAAAAAAA=
        command_off: JgAaABweOR4bHhwdHB4dHRw6HhsdHR0dOTocAA0FAAAAAAAAAAAAAAAAAAA=

Use this:

switch:
  - platform: broadlink
    mac: 34:ea:34:b4:5d:2c
    switches:
      - name: Sony TV
        command_on: JgAcAB0dHB44HhweGx4cHR06HB0cHhwdHB8bHhwADQUAAAAAAAAAAAAAAAA=
        command_off: JgAaABweOR4bHhwdHB4dHRw6HhsdHR0dOTocAA0FAAAAAAAAAAAAAAAAAAA=
      - name: LG TV
        command_on: JgAcAB0dHB44HhweGx4cHR06HB0cHhwdHB8bHhwADQUAAAAAAAAAAAAAAAA=
        command_off: JgAaABweOR4bHhwdHB4dHRw6HhsdHR0dOTocAA0FAAAAAAAAAAAAAAAAAAA=

The above example creates switch.sony_tv and switch.lg_tv to be controlled using the 设备 with the MAC address 34:ea:34:b4:5d:2c. This 设备 needs to be configured first via 配置 flow.

When you finish configuring the 设备 you can delete all your Broadlink 配置 files except the RM 开关. These 开关 are the only platform that still exists in YAML. They won't be imported. If you delete the file, they are gone.

(@felipediel - #36914) (broadlink docs)

Brother 打印机

The uptime 传感器 状态 format and unit have been changed. If you rely on those you might need to adjust your 配置.

(@bieniu - #39226) (brother docs)

CPU 速度

The naming of the 属性 was updated to be aligned with the current used standards.

  • Brand -> brand
  • GHz Advertised -> ghz_advertised

(@fabaff - #39155) (cpuspeed docs)

Deutsche Wetter Dienst (DWD) 天气 警告

If you use 实体 状态 属性 of 此integrations in 自动化 or 脚本 need to adjust these to handle the changes.

  • The region_state 属性 has been removed, cause it is no longer available on the new API.
  • All timestamps in the 状态 属性 are now UTC and not local time anymore.

(@stephan192 - #34820) (dwd_weather_warnings docs)

Emulated Hue

By default, all 灯光 and 设备 that do not support brightness adjustment are exported as On/Off 灯光 without a brightness property. When upgrading from earlier versions of Home Assistant (0.112 and earlier), some 设备 may now be reported by Alexa as non-responsive.

Alternatively, you can set the lights_all_dimmable 配置 option to continue reporting these 设备 as if they have a brightness setting.

How to fix it once and for all:

You need to have Alexa rediscover all 设备 and then remove the now non-responding duplicates using the Alexa phone App. This can take quite a while if you have lots of 设备.

An alternative would be to 日志 in to the Alexa web site and remove all the 灯光 instead and then re-discover them all.

To do so go to https://alexa.amazon.com/spa/index.html#appliances, or if not logged in: https://alexa.amazon.com then select "Smart Home" -> "设备" and select "Remove All".

If you have multiple Echo 设备 on your network, it is possible that the entries would continue to show as duplicates. This is due to an individual Echo 设备 caching the old list and re-using it.

The only known solution for this is to remove your echo 设备 from your Amazon account, delete all the 灯光 previously discovered by Alexa and then re-run discovery.

This is a one-off requirement, unfortunately there's no other way to easily transition from the previously incorrect values reported by the Emulated Hue.

(@jyavenard - #39539) (emulated_hue docs)

Ezviz

The Ezviz 集成 has been temporarily disabled, as it has a dependency that contains code that breaks Home Assistant.

(@balloob - #38444) (ezviz docs)

前端

The previous deprecated 前端 配置 options frontend_extra_html_url and frontend_extra_html_url are now removed.

(@balloob - #39799) (前端 docs)

HDMI-CEC

The HDMI-CEC 集成 has been temporarily disabled, as it has a dependency that contains code that breaks Home Assistant.

(@balloob - #37707)

旧版 Android 设备上的 Home Assistant Cloud

Home Assistant Cloud uses Let's Encrypt to provide SSL certificates for your instance. Let's Encrypt is changing the way they sign their certificates at the end of the month which breaks support for older Android 设备 (older than Android 7.1).

This 发布 includes an 更新 to make the certificates used by Home Assistant Cloud backward compatible. This relies on a feature that Let's Encrypt provides, which will expire in September 2021.

If you use an older Android 设备 and cannot 升级 to Home Assistant 0.115 or want to use it past September 2021, 安装 the Firefox browser. It includes modern certificates and is able to support the new Let's Encrypt certificates.

HTTP:使用反向代理

The processing of data received from reverse proxies is now more strictly handled. Invalid or malformed X-Forwarded-For headers will now result in an HTTP 400 错误 (Bad Request).

Support for X-Forwarded-Proto and X-Forwarded-Host has been added.

Additionally, Home Assistant will now 日志 cases of a reverse proxy being used, but not configured with Home Assistant. Make sure, you set the use_x_forwarded_for and trusted_proxies in your Home Assistant HTTP 配置 correctly to avoid 警告.

(@frenck - #38696) (http docs)

Instituto Português do Mar e Atmosfera (IPMA)

The precipitation 属性 has been renamed to precipitation_probability.

(@dgomes - #38697) (ipma docs)

KNX

The KNX 集成 has been completely refactored to no longer rely on dedicated platform 配置 but instead use the 集成 domain key as the base 配置.

Let's say you've previously used the following 配置:

knx:
  tunneling:
    host: "192.168.0.1"
switch:
  - platform: knx
    name: Switch
    address: "2/0/1"
    state_address: "2/0/2"

You'll need to migrate it as follows:

knx:
  tunneling:
    host: "192.168.0.1"
  switch:
    - name: Switch
      address: "2/0/1"
      state_address: "2/0/2"

(@marvin-w - #39219) (knx docs)

Kodi

Kodi Media Player 配置 is now available through the UI, including discovery. If you have Kodi configured in YAML, it is advised to remove that and use discovery or a manual 配置 through the UI.

Existing YAML entries will be imported, but:

  1. Your 打开/off 动作 will not be ported. This functionality is now available through 设备 触发器.
  2. You may have duplicate 实体.
  3. Kodi must be on when Home Assistant is loading for the first time in order for the 配置 to be imported.

(@OnFreund - #38551) (kodi docs)

Lovelace 生成(自动)模式

实体 that are generated from mobile apps with the mobile_app 集成 is now hidden in the generated Lovelace view. If you want to continue to display those you need to take control over your view with the 3 dots in the top right corner of the Lovelace screen.

(@ludeeus - #6873) (Lovelace docs)

MDI 图标

The MDI icons are updated to 版本 5.5.55, this adds another 100 icons you can use!

In 5.5.55 there was 1 breaking change, if you used the icon mdi:scooter this has been renamed to mdi:human-scooter and you need to adjust your 配置.

All icons that were deprecated in 0.113.0 have now been removed. Icons that were renamed or deleted in 版本 5.0.45 will no longer work.

Météo-France

The 属性 of next_rain has been reworked. In the previous 版本 it was a list of objects with changing keys (every 5 minutes) corresponding to a UTC timestamp. This design was difficult to use in 模板 and 自动化.

The new design will add a dedicated string 属性 to have the reference timestamp of the forecast (forecast_time_ref) and a dict 属性 with fixed keys to access the rain forecast within the hour (1_hour_forecast).

Example of the new 属性:

forecast_time_ref: "2020-08-20T19:25:00+00:00"
1_hour_forecast:
  0 min: Temps sec
  5 min: Temps sec
  10 min: Temps sec
  15 min: Temps sec
  20 min: Temps sec
  25 min: Pluie faible
  35 min: Pluie faible
  45 min: Pluie modérée
  55 min: Pluie modérée

(@oncleben31 - #39092) (meteo_france docs)

Meteorologisk institutt (Met.no)

While updating the 集成, and its underlying libraries, to use the newer API endpoint, some of the calculations and forecast aggregations were tweaked a bit:

  • Use hourly forecast for current 天气, not daily.
  • Ensure compared datetime objects are compared in the same time 区域.
  • Use highest resolution data from full 24 hours to calculate daily forecast min/max/sum values.

None of these changes are expected to break your 设置, though the data presented might look a little different due to the above.

In addition, all time stamps are now given in UTC. 自动化 that depend on the datetime key under the 状态 属性 forecast needs to be checked and updated accordingly.

(@thimic - #39493) (met docs)

Netatmo

The 传感器 for wind and gust angle is split up into two 实体 so that it now returns the direction (e.g., NE) and the actual value (e.g., 178°) rather than a string containing both (e.g., NE (123°)).

(@cgtobi - #38627) (netatmo docs)

NZBGet

NZBGet is now available via the 集成 UI. This also means it's no longer configured in YAML. Existing 配置 are automatically transitioned to 配置 via UI, so after 升级 your existing YAML entry can be safely removed.

YAML support will be fully removed in Home Assistant 0.117.0.

The NZGGet uptime 传感器 is now a timestamp 传感器 so its 状态 value has changed from number of minutes since startup to a timestamp indicating the start time of the application.

(@ctalkington - #38938 #39425) (nzbget docs)

OAuth2 认证与重定向

集成 using OAuth2 认证 now use the current request URL from the browser as the redirect target, instead of the internal URL setting.

This matches the experience one would expect to happen and removes the need to fiddle around with the internal URL setting.

However, this might require you to 更新 application 设置 when re-authenticating with existing 服务.

(@frenck - #38692)

Open Hardware Monitor

In some locales numbers with decimals uses "," instead of "." and this causes an issue when trying to use InfluxDB for example. This has been adjusted.

(@fillefilip8 - #39030) (openhardwaremonitor docs)

OpenUV

Support for configuring 此integrations has been fully removed. If you have existing OpenUV 配置 in your YAML 配置 files, you can safely remove that 配置.

(@bachya - #38857) (openuv docs)

OpenWeatherMap

The OpenWeatherMap 集成 can now be configured via the UI. After upgrading, your existing 配置 will be imported automatically and you can safely remove existing YAML 配置 for 此integrations.

(@freekode - #34659) (openweathermap docs)

RFLink

The 集成 has been adjusted and 修改 the entity_id generation for Rflink 切换 type 灯光. There is a small possibility an 实体 ID has changed because of this.

(@javicalle - #37992) (rflink docs)

Roku

The Roku 状态 now better aligns with media playback.

Previously, if an app was open, the 状态 would be "playing" even if you were just browsing the app interface. This has been adjusted to be represented as "on". When Roku reports media playback in progress, the 状态 "playing" will be used.

This improves compatibility with exposing 实体 to Alexa, Google Assistant, and HomeKit.

(@ctalkington - #39540) (roku docs)

Sentry

The YAML 配置 for Sentry is now deprecated and no longer works. If you had Sentry configured via YAML previously, you can safely remove the YAML 配置 (without the need to reconfigure) as it has been imported into the UI before.

The 发布 is now formatted with only the 版本 number of Home Assistant 核心, for example, 0.115.0. Previously, this was prefixed with homeassistant-, for example, homeassistant-0.115.0. This prefix is now removed.

(@frenck - #38833) (sentry docs)

Squeezebox

The Squeezebox 集成 previously always gave only the current track as the media_content_id and gave the media_content_type as music.

This leads to unexpected behavior when saving and loading 场景, because only the current track is saved and loaded.

The media_content_id for the squeezebox 集成 may be either a single URL or a list of them. If a single URL, media_content_type is music. If a playlist, media_content_type is a playlist. If you are using 自动化 that use media_content_id, you should check if the media_content_type is music or playlist.

(@rajlaud - #38214) (squeezebox docs)

模板

It is no longer necessary to provide a list of 实体 to monitor for each 模板 platform as automatic analysis can now find all 实体 that affect the 状态 in the 模板 without manual 设置.

This means you can now remove the entity_id option from your 模板, as it is now deprecated.

The 模板 is now re-evaluated whenever an 实体 that can affect the 模板 状态 changes. New 实体 that can affect the 模板 状态 are automatically discovered each time the 模板 is rendered. This change solves a performance issue where the 模板 would be re-rendered unnecessarily.

Please review the Working without entities section on the Binary Sensor Template 文档 for alternative ways to force 模板 实体 to re-evaluate. This includes 模板 that rely on the use of now().

If this change means you need to make adjustments, we have made it easier by making 模板 实体 reloadable in the YAML configuration reloading section under Configure Home Assistant -> Server Controls.

(@bdraco - #39382) (模板 docs)

主题

The code editor is now themeable, you can set the background color and the color for the different code blocks. The default background color now is card-background-color. For some themes this may conflict with the default code colors. To get the old behavior back add code-editor-background-color: white to your theme.

时间模式触发器

The time_pattern 触发器 will now reject invalid expressions that were previously accepted (but did not work as expected).

For example the minutes: /60 would have been accepted previously, but could never 触发器.

(@amelchio - #38982) (自动化 docs)

计时器

This will remove the remaining 属性 from the timer unless the timer is paused. Any workarounds that do exist to use the remaining 属性 to determine when the timer finishes have to 开关 to use the finishes_at 属性.

(@IcyPalm - #37519) (timer docs)

Timers with a duration longer than a day would format as "1 day, 1:00:00" and that is difficult to use in 模板 or for the 前端 to render. Now it will render as "25:00:00".

(@bramkragten - #38292) (timer docs)

Yandex Transport

The 集成 now accepts a full stop ID in text notation: 'stop__1234' or 'group_345' or '6789'

You'll have to 更新 stop_id: 1234567 in your existing 配置 to stop_id: stop__1234567 as it is used in Yandex maps API.

(@devbis - #39021) (yandex_transport docs)

Yeelight

The Yeelight 集成 now uses custom SSDP-like discovery instead of the mDNS discovery, since mDNS discovery is removed in new firmwares.

After this change, there will be no longer automatic 配置 based on discovery. 用户 currently using that should set up all 设备 through UI.

(@shenxn - #37191) (yeelight docs)

告别以下内容

  • The Prezzi Benzina 集成 has been removed. It was using webscraping to gather its data, which is no longer allowed. (@eliseomartelli - #38736)
  • The yr 集成 has been removed after a request from yr.no. Use the Met.no 集成 instead (@Danielhiversen - #39247)

发布 0.115.1 - September 18

发布 0.115.2 - September 19

发布 0.115.3 - September 25

发布 0.115.4 - September 28

发布 0.115.5 - September 29

发布 0.115.6 - September 30

所有变更

点击查看所有变更!