2022.10:到处都是亮点

十月快乐!十月对这个项目来说一直都是特别的一个月。这是大家重新开始折腾家庭自动化的月份,也是 Hacktoberfest 为项目带来大量新贡献和新贡献者的月份(👋 欢迎!)。而且今年还有:“What the Heck?!” 之月

WTH 之月目前已经看起来非常有戏,大家提出了许多很棒也很有意思的问题、想法和让体验更流畅的建议。请继续发起话题并投票吧 ❤️。

哦对了!还有 Home Assistant Core 2022.10!🎉

上个月的发布已经很重磅了,而这个月的发布则主要是在那个基础上继续打磨提升。我想大家应该不会意外,这次最大的改进又一次出现在蓝牙上!当然,这次还有很多其他内容,只不过整体上稍微有点“到处都是亮点”的感觉,而这其实也挺不错的。

享受这次发布吧!

../Frenck

PS:我注意到 Home Assistant SkyConnect 现在已经开放预购了 🥳

别忘了今天在 12:00 PDT / 21:00 CET 来 YouTube 参加我们的发布派对直播

Marcel van der Veldt 加入 Nabu Casa

我们很高兴地宣布,Marcel van der Veldt 已经加入 Nabu Casa

Marcel 因其在 Z-Wave 集成Hue 集成 重写、 Music Assistant 自定义集成 等方面的贡献而广为人知!

Marcel 将会专注于 Home Assistant 中的 Matter 支持开发。顺便一提,如果你还没注意到,Matter 现已正式发布并可用了 🎉。

欢迎加入,Marcel!

主动蓝牙无处不在

在两次发布之前,我们引入了蓝牙集成。而在上一次发布中,我们通过加入蓝牙代理支持,让蓝牙信号可以覆盖你家中的各个角落。现在,我们还要继续往前走!

这次发布中,这些代理现在已经支持主动蓝牙连接了!🤯

简单来说:以前,我们只能监听蓝牙设备,并通过代理接收它们发出的数据(被动连接);而现在,我们可以主动与这些设备建立通信并发送数据了(主动连接)。这意味着,可控蓝牙设备的覆盖范围也能被进一步扩展 💙。

Picture of a home showing how 蓝牙 data is proxied via ESPHome 设备 to Home Assistant

为此,ESPHome 也会额外发布一个版本,加入这项功能。我们还更新了 蓝牙代理安装网站,让你可以安装支持主动连接的版本。

所以,如果你想控制家里另一头那个原本够不着的 SwitchBot 蓝牙设备,现在只要在一个简单的 ESP32 设备上安装代理,就可以做到了。

哦,对了!还有额外惊喜:蓝牙性能也得到了提升!尤其是本地蓝牙适配器,现在应该会快上不少。🚀

支持 iBeacon

这次发布还加入了对 iBeacon 的支持。这类设备通过蓝牙发送标识符来表明自己的位置,而 Home Assistant 现在可以接收到这些信号,并显示与该 iBeacon 的大致距离。

iBeacon 能为自动化带来很多非常酷的用例。比如,你可以在车上放一个 iBeacon,这样就能知道车是否已经回家。又或者把它放在垃圾桶上,用来判断收垃圾那天垃圾桶是否还留在车库里,并据此发出通知。

在文档中了解更多关于 iBeacon 的信息

找到正确的集成

不久前,我们引入了“支持的品牌”,让你可以按不同品牌来查找可用集成。现在,我们又往前推进了一步,让添加新设备或服务的体验变得更顺手。

对于某些品牌的设备,我们可能会提供多个不同的集成。举个例子,“Google” 相关的集成就有不少。有些品牌的设备既可以通过 Zigbee 工作,也可以通过它们自家的网关工作,这意味着你可以选择集成它们的网关,或者直接通过 Zigbee 来接入设备(比如使用 ZHA)。

为了让这些可选项更清晰,你现在可以按品牌来筛选集成。Home Assistant 会直接展示某个品牌下所有可用的接入方式。比如,“Google” 品牌下就会显示对应的全部选项:

Screenshots showing adding an 集成 by the Google brands. Once you select Google, you will be offered all Google 集成

这样一来,你就不再需要自己去“查明”设备究竟该如何接入了。我们现在还会明确显示某个集成是否依赖“云端”,让你提前心里有数。

我们经常会收到关于“只能通过 YAML 配置、在 UI 中找不到”的集成相关问题。虽然我们也希望它们最终都能通过 UI 使用,但完全找不到它们确实会让人困惑。

为了解决这个问题,现在在添加新集成时,我们会显示所有集成,包括那些仅支持 YAML 的集成。虽然它们仍然无法直接通过 UI 设置,但现在至少会提供指向文档的链接,告诉你该如何配置。

仪表盘子视图

这可能是最近加入到仪表盘里的、最酷也最有影响力的功能之一:子视图!

现在,仪表盘中的每个视图都可以被标记为“子视图”:

Screenshot showing the new subview 切换 in the view options

子视图不会出现在仪表盘的导航栏中,这意味着你只能通过某些方式进入它,比如在按钮上使用导航动作。

当你进入某个子视图时,这个子视图本身不会再显示仪表盘导航栏。取而代之的,是一个返回按钮,用来回到你之前所在的视图。

Screen recording showing a Kitchen subview in 动作 展示 Kitchen 子视图实际效果的屏幕录制。

这使你可以设计出很棒的导航结构,特别适合在手机或平板设备上使用。

所有对话框重新设计

Home Assistant 中出现的所有对话框,现在都经过了一些小幅更新。

最明显的变化是:对话框边角变得更圆润了,动作按钮的样式和命名也更加统一。这让 Home Assistant 更接近它所遵循的 Material Design 3 风格。

Screenshot showing one of the restyled dialogs.

在自动化编辑器中查看 YAML 自动化

在上一次发布中,我们重做了自动化编辑器。看到这么多人喜欢这些改动,我们真的很开心 ❤️

不过,如果你是手动用 YAML 管理自动化,那么以前在 UI 中打开这些自动化时,总是只会看到一条错误信息。这显然不太有帮助,对吧?

这个问题现在已经改善了!你现在可以在 UI 中打开任何自动化(或脚本)。这样你就能查看它的内容,快速了解它是如何工作的。

Screenshot showing an YAML 自动化 as read-only in the 自动化 editor.

另外还有一个额外好处:如果你正在考虑把自动化迁移到 UI 中,现在你可以先直接查看它们在 UI 中会是什么样子、如何工作,并通过右上角的按钮一键导入到 UI。

在模板中处理版本号

新增了一个 version() 模板函数/过滤器,让你可以在模板中对版本号做很多实用操作。

它可以用来获取版本号信息、比较版本号,甚至检查两个版本之间的差异。

  • ``
    返回 true,因为 2022.10.0 更新。

  • ``
    返回 true,因为版本的补丁号发生了变化。

  • ``
    返回 false,因为这只是补丁版本差异。

  • ``
    返回 true,因为这是一个 beta 版本。

版本() 在为 update 实体编写自动化或蓝图时会很有帮助。 例如,当有补丁版本可用时,你可以更轻松地决定是否自动升级, 或者发送更详细的通知消息。

Google Sheets

本次发布带来了一种从 Home Assistant 导出数据的新方式: Google Sheets

通过这个集成,你可以在服务调用时向 Google 表格文档新增行, 从而把自动化中的数据导出用于进一步处理、可视化或分析洞察。

Screenshots exporting energy data to Google Sheets from Home Assistant 你可以把任何想要的数据导出到 Google Sheets,比如能耗数据。

你也许想导出每日能耗,或者在宝宝喂养日记表格中记录 每天用了多少片尿布。

它的可玩性几乎是无限的。

其他值得关注的变更

这次发布还有很多内容;以下是另外一些值得关注的变更:

  • 长期统计卡片现在会使用你为传感器选择的单位。因此,如果你改了传感器单位,显示现在会一致!另外,也有更多传感器支持单位切换/转换。感谢 @emontnemery@epenet
  • 删除使用应用凭据的集成时,我们现在会询问你是否要一并清理这些凭据。很贴心,感谢 @allenporter
  • Netatmo 集成获得了大量增强!现在支持 Netatmo 门铃、调制式恒温器,并新增支持 Legrand、Bubendorff、BTicino 和 Smarther 的设备。感谢 @cgtobi
  • 如果你有 Prusa 打印机,现在可以使用 PrusaLink 集成,通过新加入的任务控制按钮来控制打印任务。感谢 @balloob
  • BTHome 现在支持二进制传感器!感谢 @Ernst79
  • HomeKit Controller 现在支持 Thread 传输。感谢 @roysjosh@Jc2k
  • forked-daapd(OwnTone)现在支持媒体浏览器,并可联动 Spotify 集成。感谢 @uvjustin
  • Min/Max 助手现在支持计算统计范围。比如你想展示最冷房间与最暖房间的温差时就很有用。感谢 @jsherman256
  • @holysolesUniversal Media Player 添加了唯一 ID 支持, @magic7s OhmConnect 添加了对应支持。感谢!
  • NETGEAR 现在新增了一批开关,可控制家长控制、Wi-Fi 可用性和访问权限等功能。感谢 @starkillerOG

新集成

欢迎以下新集成加入本次发布:

现已可通过 UI 设置的集成

以下集成现已可通过 Home Assistant UI 进行配置:

发布 2022.10.1 - 10 月 6 日

发布 2022.10.2 - 10 月 9 日

发布 2022.10.3 - 10 月 10 日

发布 2022.10.4 - 10 月 14 日

发布 2022.10.5 - 10 月 20 日

需要帮助?加入社区!

Home Assistant 拥有一个非常棒的用户社区,大家都非常乐于互相帮助。 欢迎你加入我们!

我们非常活跃的 Discord 聊天服务器 是交流的绝佳去处, 也别忘了加入超赞的社区论坛

发现 bug 或遇到问题了吗?请到我们的问题追踪器 提交反馈,帮助我们修复它!你也可以查看帮助页面,获取更多可求助的渠道。

如果你更喜欢通过邮件获取信息,可以订阅 Building the Open Home 新闻简报, 把功能更新、社区动态,以及关于打造开放家庭的更多资讯直接送达你的收件箱。

不向后兼容的变更

下面按主题或集成列出了本次发布中的破坏性变更。 你可以点开对应条目,查看每项变更的详细说明。

prob_given_false 现在是必填配置项。此前它的默认值是 1 - prob_given_true;这个默认值在数学上并没有充分依据,因此现已移除。你可以参考文档来计算合适的值;如果想恢复之前的行为,可以将其设置为 1 - prob_given_true

Bayesian 传感器的逻辑已经进行了重要修正。此前,上方示例中的配置实际上无法按预期工作。比如,当设备 device_tracker.paulus 状态为 home 时,Paulus Home 为开的概率并不会被更新。这是因为 Bayesian 以前会忽略结果为 false 的观测,而这些观测其实应该用于更新概率。

因此,很多用户过去不得不使用以下两种变通方式之一:

  1. 增加一条与原观测“镜像”的观测:当原观测为 False 时这条观测为 True。这样就能强制 Bayesian 把负向观测纳入计算。
  2. 反复微调 priorthreshold,有时还要调整 prob_given_trueprob_given_false,以达到期望效果,通常还要借助社区提供的表格进行迭代测试。

要解决第(1)种情况,你只需删除如下所示的镜像条目:

# 作为变通方案使用的镜像条目示例
binary_sensor:
  - name: "Heat On"
    platform: bayesian
    prior: 0.2
    probability_threshold: 0.9
    observations:
      - platform: numeric_state
        entity_id: sensor.outside_air_temperature_fahrenheit
        prob_given_true: 0.95
        prob_given_false: 0.05
        below: 50
      - platform: numeric_state # 此行不再需要 - 删除
        entity_id: sensor.outside_air_temperature_fahrenheit # 此行不再需要 - 删除
        prob_given_true: 0.05 # 此行不再需要 - 删除
        prob_given_false: 0.95 # 此行不再需要 - 删除
        above: 50 # 此行不再需要 - 删除
      - platform: state
        entity_id: binary_sensor.house_occupied
        prob_given_true: 0.3
        prob_given_false: 0.05
        to_state: "on"
      - platform: state # 此行不再需要 - 删除
        entity_id: binary_sensor.house_occupied # 此行不再需要 - 删除
        prob_given_true: 0.7 # 此行不再需要 - 删除
        prob_given_false: 0.95 # 此行不再需要 - 删除
        to_state: "off" # 此行不再需要 - 删除

要解决第(2)种情况,你需要参考文档重新估计这些概率,这通常会带来更好的长期效果。

如果你只是想恢复之前的行为,还有一种取巧且不推荐的做法:为每条观测添加镜像条目,并让 prob_given_false 等于 prob_given_true。这样会产生与旧版本类似的结果——负向的反事实观测会被基本忽略。请注意:这种方法在未来版本中可能失效或引发错误,并且不适用于 templatenumeric_state 观测。对于模板观测,你可以在原本返回 False 的地方改为返回 None,让 Bayesian 忽略该观测。

binary_sensor:
  - name: "Heat On"
    platform: bayesian
    prior: 0.2
    probability_threshold: 0.9
    observations:
      - platform: state
        entity_id: binary_sensor.house_occupied
        prob_given_true: 0.3
        prob_given_false: 0.05
        to_state: "on"
      - platform: state # 不推荐
        entity_id: binary_sensor.house_occupied # 不推荐
        prob_given_true: 0.5 # 不推荐
        prob_given_false: 0.5 # 不推荐
        to_state: "off" # 不推荐

(@HarvsG - #67631) (documentation)

当播放器处于分组状态但不是主设备时,状态将不再显示为 "grouped",而是显示为 "idle"。

(@epenet - #78096) (documentation)

此前已弃用的 guardian.rebootguardian.reset_valve_diagnostics 服务现已移除, 并由 guardian 阀门控制器设备上的按钮实体取代。

(@bachya - #78663) (documentation)

当播放器正在加载时,状态将不再显示为 "opening", 而是显示为 "buffering"。

(@epenet - #78101) (documentation)

HERE Travel Time 集成此前已弃用的 YAML 配置现已移除。

HERE Travel Time 现在通过 UI 进行配置。 现有 YAML 配置已在此前版本中完成导入, 现在可以安全地从 YAML 配置文件中删除。

(@eifinger - #77959) (documentation)

当播放器未处于活动状态时,状态将不再显示为 "problem", 而是显示为 "off"。

当播放器处于活动状态但状态不匹配已知状态时, 状态将不再显示为 "ok",而是显示为 "on"。

(@epenet - #78105) (documentation)

出于稳妥考虑,我们对停用 Movies 计数传感器做了一些不向后兼容的调整。 该传感器在超大型数据库场景中可能引发问题。 如果你仍希望使用它,依然可以继续使用。

电影名称不再作为 movies 传感器的属性提供。 Upcoming 已被移除,它将以更现代的日历条目形式重构。 Diskspace 现已拆分为多个传感器,每个文件夹对应一个。 Status 和 commands 已被移除,因为它们对自动化并没有明显实际价值。

(@tkdrob - #78965) (documentation)

在 Home Assistant 2022.4 中,Supervisor 集成中用于显示更新的二进制传感器 已被弃用,改用更新实体

这些用于显示更新的二进制传感器现已移除。

(@ludeeus - #60677) (documentation)

在 Home Assistant 2022.4 中,Synology DSM 里用于显示更新的二进制传感器 已被弃用,改用新的更新实体。

该用于显示更新的二进制传感器现已移除。

(@mib1185 - #79509) (documentation)

由于上游库发生变更,Workday 集成不再支持以下内容:

  • 英国下级地区(Wales、Scotland、England 等)不能再作为 country 配置项的取值。 它们仍可作为 province 设置的取值。
  • IsleOfMan 不再被识别为英国的省级区域, 请改用 countryIM
  • 葡萄牙扩展假日集(PortugalExt)不再作为独立国家可用; 请改用国家代码 PT,并将省份设为 Ext

(@TomBrien - #78832) (documentation)

你必须使用 zwave-js-server 1.24.0 或更高版本(schema 24)。

从这个版本开始,你需要更新 zwave-js-server 实例。

  • 如果你使用 Z-Wave JS 插件,版本至少需要 0.1.74。
  • 如果你使用 Z-Wave JS UI 插件,版本至少需要 1.1.0。
  • 如果你使用 Z-Wave JS UI Docker 容器,版本至少需要 8.1.0。
  • 如果你运行的是自建 Docker 容器或其他安装方式,需要将 zwave-js-server 实例至少更新到 1.24.0。

(@raman325 - #79342) (文档)


Leviton ZW4SF 风扇控制器的风速档位现在会正确映射到 Home Assistant 中对应的百分比档位。

这可能会改变某些百分比对应的风扇档位。 请按需调整面向这些设备的自动化和脚本。

(@mkowalchuk - #60677) (文档)

如果你是自定义集成开发者,并希望了解与你的集成相关的破坏性变更和新特性, 请关注我们的开发者博客。以下是本次发布中最值得关注的内容:

告别以下集成

以下集成也已在本次发布中下线:

  • Ambee:已无法获取个人使用的 API 密钥。
  • Climacell:已由 Tomorrow.io 取代。
  • Flu Near You:该数据源已不可用,导致集成无法继续工作。
  • U.S. Citizenship and Immigration 服务 (USCIS):该集成依赖网页抓取,而该方式已不再被允许。

完整变更

当然,本次发布还有更多改动。你可以在这里查看完整变更列表: Home Assistant 核心 2022.10 完整更新日志