0.110:更快!OpenZWave Beta、HomeKit 摄像头、ONVIF 与日历

你知道我有多兴奋,终于能把 Home Assistant Core 0.110 带给大家了吗?

如果我告诉你,过去几乎每天我都把自己正在生产环境运行的 Home Assistant 升级到最新开发版本,你会相信吗?

最好相信,因为过去 3 周我几乎每天都是这样开始一天的。 那种感觉就像每天都在拆新礼物、每天都能体验到令人惊喜的改进。

今天,我们把这一切打包成一个超大的礼物送给你。🎁

这绝对是 Home Assistant 各个层面上都很重磅的一次发布。 前端和后端都更快了,可用性改进非常多, 还带来了 12 个超棒的新集成,以及大量现有集成的重要更新。

祝你享受这次发布!

../Frenck

图标

在 Home Assistant Core 0.109 中, 我们让前端变得更轻、更快;而这次发布又向前迈进了一步。

图标的加载方式已经更新。随着 Material Icons 集合不断增长, 我们必须调整处理图标的方式,才能确保应用继续保持良好性能。

现在 Material Icons 会被拆分成多个分块, 这样前端在只需要一个图标时,就不必把所有图标都加载进来; 此外,我们也不再把图标存放在 DOM 中,而是放进数据库里。

这节省了大量内存,也让 Home Assistant 前端变得更加轻巧、更加快速!

说实话,优化的还不只是图标……这个版本里有很多地方都被调整过, 就是为了让前端更快。现在它比以往任何时候都更灵敏!

@timmo001 为集成页面加入了搜索功能,让你可以更快找到想要的内容。

现在页面中的条目也会按集成进行分组,这意味着同一个集成不再显示多张卡片; 如果一个集成下有多个条目,则会以名称列表的形式展示。

点击某个条目后,对应内容就会显示在卡片中。 这样你就更容易总览所有集成了。

Screenshot of the 集成 page Screenshot of the 集成 page.

哦!我们还让自定义集成也可以使用图标和 Logo 了!

Screenshot of the HACS 集成 with its icon shown Screenshot of the HACS 集成 with its icon shown.

OpenZWave 集成现已进入 Beta

本次发布带来了全新的 OpenZWave 集成。它自去年 12 月起就以社区自定义集成的形式进行测试,现在已经准备好面向更广泛的用户了。

不过,这个集成目前仍处于早期阶段;并非所有平台和设备都已支持,设置流程也还有一些前置要求,门槛相对较高。请查看我们的文档了解当前要求和说明。

如果你想尝试它,最好已经熟悉自定义插件和 MQTT。目前还不能从现有的 Z-Wave 集成直接迁移,这部分后续会补上。

未来的计划是继续加入更多平台支持,让这个集成的设置过程变得非常简单。敬请期待。

目前我们还没有弃用现有 Z-Wave 集成的计划。 但我们希望这个新集成未来能提供比当前 Z-Wave 集成更简单、更稳定、功能也更丰富的体验。

感谢一直在测试这个自定义集成并提供宝贵数据的社区成员,正因如此我们才能发现 bug 并支持更多设备。特别感谢 @cgarwood@marcelveldt,他们在这个集成的建设上起到了开拓性的作用。

所有被发现的集成都可以忽略了

一个经常被提及的问题/功能请求,就是希望任何被发现的项目都可以被忽略。 大多数集成之前已经支持了,但也有一些还不行。

从 0.110 开始,我们新增了一条开发规则:集成必须支持忽略被发现的项目;而在 0.110 中,我们也已经补齐了所有此前还不支持的集成!

结果就是:任何被发现的项目,现在都可以忽略了。

Screenshot of showing ignorable 集成 Screenshot of showing ignorable 集成.

日历面板

感谢 @zsarnett,我们有了一个漂亮的新日历面板!

它可以按月、周或日视图显示你所选日历中的全部项目。 另外,Lovelace 的日历卡片也已经在开发中了。

Screenshot of the 日历 面板 Screenshot of the 日历 面板.

天气卡片

关于上个版本更新后的天气卡片,我们收到了很多反馈;我们认真听取后,又加入了一些功能。 现在你可以为新图标设置主题颜色,甚至可以完全用另一张图片替换它们。

你还可以自定义哪些属性显示为次要信息。

Screenshot of the updated 天气 卡片 Screenshot of the updated 天气 卡片.

更多信息请查看文档

内部与外部 URL

There are many cases where an 集成 needs the URL/link to your Home Assistant instance. For example, to set up a Webhook, communicate audio files or 摄像头 streams to an Amazon Alexa or Google Assistant 设备.

We used to have a base_url setting to deal with those cases, but that wasn't always sufficient. Some 集成 require specific requirements for that setting, which could lead to conflicting or impossible 设置.

It often resulted in broken TTS, streaming issues for 摄像头's or issues with casting. This 发布 addresses this issue by introducing two new 设置 in 配置 > General.

Screenshot of the URLs 配置 Screenshot of the URLs 配置.

If you want to set those via YAML, homeassistant: main 配置 has now a external_url and internal_url setting.

These 设置 allow you to override the URLs Home Assistant uses when communicating on your internal network versus the outside world. Please note, that these are overrides. By default, Home Assistant will try to figure this out on its own.

If you have a Home Assistant Cloud subscription, 集成 can now also leverage that. This will reduce the amount of, often complex, 配置 needed.

After upgrading to 0.110, you can delete base_url from your 配置 as Home Assistant will automatically migrate that setting for you on 升级.

自动化现已支持 “not” 条件

When an 自动化 触发器, one can use 条件 to check if the set 动作 of an 自动化 should be run. 条件, however, always take the positive approach: If "something" equals or is "this".

As of this 发布, the 条件 now have support for specifying if a 条件 (or set of 条件) should "not" match. This can be helpful for 设备 or 实体 that have multiple 状态, but you actually only want to ensure it is not just that one 状态.

Screenshot of the 自动化 editor with a "not" 条件 Screenshot of the 自动化 editor with a "not" 条件.

This feature has been added to the 自动化 editor, but is also available for writing 自动化 in YAML:

# Example automation
alias: "Turn kitchen lights off when alarm is armed."
trigger:
  - platform: state
    entity_id: alarm_control_panel.home_alarm
condition:
  - condition: not
    conditions:
      - condition: state
        entity_id: alarm_control_panel.home_alarm
        state: disarmed
action:
  - service: light.turn_off
    target:
      entity_id: light.kitchen

HomeKit

@bdraco has been busy improving HomeKit support for Home Assistant in 0.109, but it seems like that didn't stop him even a tiny bit. This 发布 @xdissent and @stickpin jumped on the HomeKit bandwagon as well!

HomeKit can now be configured and set up from the Home Assistant 前端, and even allows you to set up multiple instances! This allows one to bypass the maximum amount of 设备 a single HomeKit gateway supports by adding multiple. Using multiple, will also allow you to bypass the 1 TV per bridge limit on HomeKit.

Ready for this? Home Assistant 核心 0.110 now has 摄像头 support for HomeKit!

And if that wasn't enough already, the HomeKit 集成 now sends out more information as HomeKit accessory information. So besides the 实体 id, which was already present, you can also see which 集成 (and its name) provided the accessory in HomeKit.

Screenshot from HomeKit. Left: accessory information, Right: 摄像头 support. Screenshot from HomeKit. Left: accessory information, Right: 摄像头 support.

ONVIF

The ONVIF 集成 did get lots of love from @hunterjm! ONVIF Profile S conformant 摄像头's, can now be set up via the UI!

And that is not all... It now leverages more features of the ONVIF protocol: pull point subscriptions. This means that events from ONVIF will now show up in Home Assistant as well. So, if your ONVIF compatible 摄像头 supports things like motion, object or sound detection, those will be available now!

Screenshot of an ONVIF 摄像头 in Home Assistant Screenshot of an ONVIF 摄像头 in Home Assistant.

Supervisor

Have you seen the new supervisor UI? @ludeeus did a great job redoing its UI! It now uses the same tabs as the 配置 面板. The 插件 page is split into multiple tabs, the 插件 store is cleaned up and you can view all 日志 in the system tab now (requires advanced mode).

Screenshot of the Supervisor 面板 Screenshot of the Supervisor 面板.

Some 插件 are now also marked "advanced" and are only visible when you've enabled advanced mode on your 用户 profile.

其他值得注意的变更

  • It took a while, as many adjustments had to be made. This is the first 发布 supporting Python 3.8 🎉!

  • Quite a few optimizations to make Home Assistant go faster. One of the major changes is that Home Assistant will now set up all configured 集成 instances in parallel during startup. Some startup speed reported improvements from 82 seconds before this change and 28 seconds after this change. That is a huge improvement!

  • The info page in the development tools now shows more information about your set up. Including the name for your 安装 method. It will tell you if you run Home Assistant, Home Assistant 受监管模式 or Home Assistant 核心.

  • @MartinHjelmare added a new detection method for 集成 that potentially harm Home Assistant during runtime. We can now detect if an 集成 tries to close Home Assistant's (shared) HTTP client. If this happens, it will be prevented and write an 错误 message to your 日志, similar to how the I/O detection does it (released in 0.109).

  • The ISY994 got a major 升级! While it has quite a few backward-incompatible changes, it is now available via the UI and many bug are squashed. Thanks @shbatm!

新集成

新平台

现已可通过 UI 设置的集成

以下集成现在已经可以直接通过 Home Assistant UI 进行设置:

如果你需要帮助……

欢迎前往我们非常活跃的 论坛,或者加入 聊天频道

如果这个版本带来了问题,请到我们的 issue tracker 提交报告,并尽量完整填写 issue 模板中的所有字段。

不向后兼容的变更

  • Manual 报警 面板 - When going from 状态 disarmed to any other (armed) 状态 such as armed_away, the 状态 will be arming instead of pending during the transition time as set in the 配置. When going from an armed 状态 (such as armed_away) to the triggered 状态 the 状态 will still be pending during the transition time as set in the 配置 (as it was before). - (@starkillerOG - #32950) (manual docs)

    • 状态 属性 pre_pending_state changed to previous_state
    • 状态 属性 post_pending_state changed to next_state
    • 配置 option pending_time is renamed to arming_time, functionality is the same.
    • The time the 报警 stays at pending when triggered has changed from delay_time of the previous 状态 + arming_time (previously known as pending_time) of the triggered 状态 to only the delay_time of the previous 状态.
  • Cert Expiry - The "name" 配置 option marked as deprecated in 0.107 has been removed and will now cause 错误 on startup if it remains in the 配置. You should change your 配置 accordingly. - (@jjlawren - #34628) (cert_expiry docs)

  • Stream - pyAV >7.0.0 has dropped support for FFmpeg versions <4.0. FFmpeg will need to be updated to at least 4.0 for stream to work. If you run an Home Assistant with the Superviser or Docker, no manual intervention is needed. Alternative installs can check the stream 集成 文档 for troubleshooting tips. - (@hunterjm - #34648) (stream docs)

  • Nederlandse Spoorwegen - The punctuality 属性 has been removed from the 集成. Ever since NS updated its API a few months ago, its behavior with regards to the punctuality has been incoherent, sometimes even missing from the API's response. This has caused numerous Issues to be 创建 in this repo by 用户 getting 错误 that the punctuality 属性 was unlike what the 集成 was expecting. - (@YarmoM - #34680) (nederlandse_spoorwegen docs)

  • Fortigate (Deprecated) - The Fortigate 集成 will be removed in 0.112.0 and has a replacement in the FortiOS 集成.

    Please refer to the fortios integrations on how to 配置 the new parameters. - (@kifeo - #34854)

  • 树莓派 摄像头 - To align with ADR-0007, 配置 has been moved under rpi_camera: as its own platform. - (@alxrdn - #34461) (rpi_camera docs)

    Old YAML 配置 example:

    camera:
    - platform: rpi_camera
      image_width: 1296
      image_height: 972
      image_quality: 75

    New YAML 配置 example:

    rpi_camera:
      image_width: 1296
      image_height: 972
      image_quality: 75
  • ONVIF - ONVIF is now available to be added from the 集成 UI! The extra_arguments and rtsp_transport 配置 from YAML is now a part of the Options flow for the 集成, and is not automatically imported to the 配置 flow with the rest of the defined ONVIF platforms. - (@hunterjm - #34520) (onvif docs)

  • PulseAudio Loopback - Internal library code has been replaced with the pulsectl library. - (@breiti - #34965) (pulseaudio_loopback docs)

    • The default connection honors the 配置 in /etc/pulse and no longer defaults to localhost.
    • When a host is configured, the default port has been changed to 4713 to use the native interface of PulseAudio.
    • The 配置 parameters buffer_size and tcp_timeout have been removed.
  • UPnP - 此integrations has been simplified and will always create 传感器, so port mapping functionality has been removed. - (@StevenLooman - #35191) (upnp docs)

    Example YAML 配置:

    upnp:
  • ZHA - 配置 options for ZHA 集成 in YAML is now deprecated and will be removed in 0.112.0. - (@Adminiuga - #35161) (zha docs)

    Starting with the following radio 配置 options:

    • usb_path
    • baudrate
    • radio_type
  • IMAP Email Content - The 状态 of the imap_email_content is replaced when there is no email found. With this change, any other thing like an 自动化 can react to the arrival of an email - (@isk0001y - #35123) (imap_email_content docs)

  • Sony Songpal - This is now enabled through the 集成 UI. To call songpal/set_sound_setting on all songpal 设备, the entity_id now needs to be set to all instead of left unset. - (@shenxn - #34714, #35318) (songpal docs)

  • HTTP - base_url is deprecated and replaced by an internal_url and external_url 核心 配置 setting. - (@frenck - #35224) (basic config docs) (http docs)

  • Kodi - Kodi previously reported the media content type for all PVR channels as "channel", no Matter if it was a TV or a radio channel. The media content type is now derived from the used player type, i.e., it reports as "music" for radio channels and "video" for TV channels. - (@Tho85 - #35091) (kodi docs)

  • Mill - Mill is now enabled through the 集成 UI and no longer available via YAML - (@Danielhiversen - #35136) (mill docs)

  • Homematic - 自动化 relying on the numeric value for the garage door status might break, since the status will now be reported as human-readable strings. - (@guillempages - #35349) (homematic docs)

  • Tuya - Tuya is now enabled through the 集成 UI. - (@ollo69 - #35422) (tuya docs)

  • LG webOS Smart TV - A new unique_id is used for webostv media players for 用户 running a 0.109.X 发布. Duplicate 实体 will be 创建 with new 实体 IDs and old 实体 will need to be manually removed. - (@jjlawren - #34979) (webostv docs)

  • Blink As of May 11, 2020 Blink has removed the old username/密码 认证 method, which means all current Blink 集成 prior to this 发布 are broken.

    In order to support this change, a 2FA key must be entered before 设置 can continue. Some 用户 may not have 2FA enabled on their account yet, but you will still receive an email at login asking you to allow the 设备 to continue setting up.

    Your current YAML 配置 will be converted to a UI-based 配置, but the only supported entries are username, password, and scan_interval. All other entries must be removed; otherwise, the 集成 will not be configured. - (@fronzbot - #35396) (blink docs)

  • Emulated Hue - Emulated Hue was updated for better compatibility with newer systems. Existing 用户 may find that they will need to re-pair their system with emulated hue to reconnect 设备. - (@Tho85 - #35148) (emulated_hue docs)

  • Universal 设备 ISY994 - This migrates ISY994 to PyISY v2 and is now available to be added from the 集成 UI. PyISY 版本 2 is a significant 更新 to the original module used to communicate with the ISY. (@shbatm - #35212, #35338, #35413, #35391 ) (isy994 docs)

    As part of the 更新 and many bug fixes, some backward-incompatible changes were introduced:

    点击查看 ISY994 的全部不兼容变更
    • Remove ISY 温控 Module support: the ISY 温控 Module was retired by UDI on 3/30/2020: UDI Announcement, support has been removed from the module, so any 实体 based on 温控 module nodes will no longer import into Home Assistant. The enable_climate 配置 option will need be removed from your YAML 配置 file.

    • 设备 状态 属性 have changed: some 属性' names and types will have changed as part of the changes to PyISY. If a 用户 relied on a 设备 状态 属性 for a given 实体, they should check that it is still there and formatted the same. In general, more 状态 属性 that were previously unavailable, should appear.

    • isy994_control events now return with additional information about the event. If a 用户 relies on the control event property in 自动化, these will need to be updated since the format has changed to include the additional detail.

    • Nodes that are "grouped" together in the ISY Admin Console will now be correctly identified and sorted, this will cause additional 实体 to be added to Home Assistant. If you were using this "group" feature to ignore some sub-设备 in Home Assistant, you will now need to use the ignore_string in the name instead.

    • Turning on a 灯光 without providing a brightness value will use the ISY 设备's On Level property instead of turning on to full brightness (if Home Assistant doesn't have a stored value for the last brightness).

    Sorting of certain 设备 based on the ISY's Node Def ID and Insteon Type properties have been corrected to match the ISY's provided 设备 categories, as well as 用户 feedback of incorrect sorting for specific 设备. As a result, some 实体 that were incorrectly categorized will now appear under a different platform (e.g. 开关 to binary_sensor, 灯光 to 开关, etc.)

    Both KeypadLinc Secondary 按钮 and RemoteLinc2 按钮 have been moved from switch to 传感器. This is because these 按钮 cannot actually be directly controlled via commands sent from the switch platform, doing so results in communication 错误 from the ISY because the commands are not valid. These 设备 are being moved to sensor instead of binary_sensor because they report a 状态 in a range from 0 to 255; 0=Off, 255=On according to their last brightness/dimming level sent.

    The ISY994 集成 now includes a restore_light_state option. In 0.109.0, a change was made to 恢复 a 灯光's brightness to the previous 状态 when turned on with no brightness parameter. This was, in part, to fix an issue where the 灯光 to 打开 to full brightness when no parameters were given, regardless of the physical 设备's On Level brightness setting. Using the On Level is now supported and is the default behavior. To keep the current behavior and use Home Assistant's last brightness, set the restore_light_state to True or enable the option in the new config flow options.

    The following 设备 node types have changed platforms to correct their categorization:

    • "BinaryControl" (SWITCH->BINARY_SENSOR)
    • "BinaryControl_ADV" (SWITCH->BINARY_SENSOR; IOLinc 传感器)
    • "EZIO2x4_Input" (SWITCH->BINARY_SENSOR)
    • "EZRAIN_Input" (SWITCH->BINARY_SENSOR)
    • "OnOffControl" (SWITCH->BINARY_SENSOR)
    • "OnOffControl_ADV" (New; Thermostat Control/Running 传感器)
    • "EZIO2x4_Input_ADV" (SWITCH->传感器, Analog input on EZIO).
    • "RemoteLinc2" (LIGHT->SWITCH),
    • "RemoteLinc2_ADV" (LIGHT->SWITCH),
    • RemoteLincs only report 按钮 presses as events, are not controllable and do not accurately report dimmable 状态.
    • New Insteon Types for BINARY_SENSORS: "7.0.", "7.13." (IOLinc/EZIO 传感器)
      • IOLinc 传感器/control logic will be updated in PR-4 to sort them correctly into two different platforms.
    • New Insteon Type for LOCKS: "4.64." added.
    • New Insteon Types for SWITCHES: "0.16.", "7.3.255.", "9.10."

发布 0.110.1 - May 21

发布 0.110.2 - May 24

发布 0.110.3 - May 26

发布 0.110.4 - May 28

发布 0.110.5 - June 5

发布 0.110.6 - June 8

  • Fix mobile_app registering/更新 传感器 values with an unknown 状态. Will unblock iOS app (#36566 - @frenck)

发布 0.110.7 - June 9

  • Fix mobile_app missing 状态 in 传感器 registration (#36604 - @frenck)

所有变更

点击查看所有变更!