0.103:节日快乐、服务调用、StarLine、GeoNet NZ 和 Proxmox

来了!Home Assistant 0.103 正式发布了,这也是今年最后一个重大版本。 在今年最后这段时间里,我们一直专注于清理和收尾工作。这个版本包含了很多 仍在推进中的内容(比如 Hacktoberfest 带来的一些改动),以及大量错误修复; 总体上都在帮助提升 Home Assistant 的稳定性和使用体验。

祝你节日快乐!和往年一样,我们会跳过年底的一个发布周期,因此这就是 2019 年的最后一次重大发布。这样我们大家也都能有时间陪伴家人、享受假期。 2020 年的第一次发布将在 1 月 15 日到来。

此外,我们也想借这个机会感谢所有贡献者。 无论贡献大小,无论是代码、文档、问题反馈、Beta 测试,还是在我们的 论坛聊天频道中帮助他人, 我们都向你致敬并表示感谢。随着我们即将迈入 2020 年,也祝你在新的十年里一切顺利!❤️

干杯!

服务已迁移到各自对应的集成命名空间

在 0.103 中,我们对服务名称进行了一次大规模清理。我们知道这会影响很多用户, 因此特意把这些变更都集中放进了这次发布中。 这项工作主要由 @raman325 推动,并且他出色地赶在 0.103 之前完成了它。

过去我们有些服务被放在了别的域名空间下面,但这种做法并不统一,因此一直显得不够一致。 例如,给 Todoist 添加任务的服务,之前实际上是挂在 calendar 域下,名称是: calendar.todoist_new_task

在这个版本中,所有放置位置不正确的服务都被迁移到了各自对应的集成域中。 所以,前面提到的 calendar.todoist_new_task 现在已经更名为 todoist.new_task

我们希望这能让现在以及未来的服务使用体验都更加统一、顺畅。 完整的新旧服务名称对照表已经加入到本文下方的更新后的服务名称部分。

Python 软件包导入位置调整

在 Home Assistant 内部,我们的集成依赖了大量 Python 软件包。过去几周里, 这些导入语句所在的位置发生了变化。这不会直接影响你的系统,主要属于内部清理工作。

特别感谢下面这些贡献者,过去几周里他们合力提交了数百个贡献,帮了我们大忙:

@Bouni, @briglx, @djpremier, @exxamalte, @javicalle, @Michsior14, @Misiu, @mnigbur, @Quentame, @springstan, @thaohtp, @tulindo

真的非常感谢!

Python 3.6 支持已弃用

从 0.101 开始,我们就已经弃用了对 Python 3.6 的支持。目前我们正在推进对 Python 3.8 的支持,预计很快就会到来。

因此,这个版本将成为最后一个支持 Python 3.6 的版本。

如果你还没有把系统升级到 Python 3.7,建议尽快完成升级,以确保未来可以继续使用 Home Assistant。

如果你使用的是 Docker 或 Hass.io,则不必担心这个问题,因为我们会为你提供匹配且可用的 Python 版本。

Frenck 加入 Nabu Casa

正如我们在 2019 项目现状演讲 中宣布的那样,Frenck 已加入 Nabu Casa。

前端

我们也对自动化编辑器投入了不少精力,修复了一些问题,并加入了一些实用功能。

自然语言改进

现在,用自然语言创建自动化时已经支持区域;如果你提到了某个名称,我们也会尽量为你匹配正确的区域或设备。

所以现在你可以直接说:“Turn the lights on in the living room”,系统就会把客厅中的所有灯光设备加入自动化。 选择 Choose individual devices 后,你还可以手动增删设备。

Screenshot of the result of the above query 上述查询结果截图。

YAML support

现在,你可以把每一个单独的触发器、条件或动作都切换为 YAML 进行编辑。 这让你即使在自动化编辑器中也能编写非常复杂的自动化,同时也能更快复制自动化中的部分内容。

Screenshot of the 自动化 YAML editor Screenshot of the 自动化 YAML editor.

重新排列动作

我们还加入了重新排列动作的能力,因此当你想在两个服务调用之间插入延迟时,不再需要从头重做。 说到服务调用动作,它现在也已经有了实体选择器,可以帮助你更容易找到正确的目标。

Screenshot of 自动化 动作 自动化动作界面截图。

其他消息

New 集成

以下集成是在这个版本中新增的:

新平台

以下平台已加入现有集成:

Backward-incompatible changes

如果你是现有用户,请务必在升级之前阅读本节,这能帮助你理解这些变更,并避免在升级过程中遇到问题。

更新后的服务名称

所有可在 Home Assistant 中使用的服务都已迁移到各自集成的命名空间中。

下面的列表展示了已迁移到各自集成下的服务调用和平台 - @raman325

  • Local File: camera.local_file_update_file_path -> local_file.update_file_path (#28890)
  • Elk-M1 Controller: alarm_control_panel.elkm1_* -> elkm1.* (#29128)
  • Neato: vacuum.neato_custom_cleaning -> neato.custom_cleaning (#29148)
  • Envisalink: alarm_control_panel.envisalink_alarm_keypress -> envisalink.alarm_keypress (#29126)
  • IFTTT: alarm_control_panel.ifttt_push_alarm_state -> ifttt.push_alarm_state (#29129)
  • AlarmDecoder 报警: alarm_control_panel.alarmdecoder_alarm_toggle_chime -> alarmdecoder.alarm_toggle_chime (#29127)
  • Econet: water_heater.econet_* -> econet.* (#29149)
  • APNS: notify.apns_* -> apns.apns_* (#29165)
  • Facebox: image_processing.facebox_teach_face -> facebox.teach_face (#29151)
  • HTML5: notify.html5_dismiss -> html5.dismiss (#29145)
  • Lifx: light.lifx_* -> lifx.* (#29136)
  • Mill: climate.mill_set_room_temperature -> mill.set_room_temperature (#29132)
  • Todoist: calendar.todoist_new_task -> todoist.new_task (#29131)
  • Wink: lock.wink_* -> wink.* (#29137)
  • Wemo: fan.wemo_* -> wemo.* (#29135)
  • 蓝牙: device_tracker.update -> bluetooth_tracker.update (#29161)
  • Demo: device_tracker.randomize_device_tracker_data -> demo.randomize_device_tracker_data (#29164)
  • iCloud: device_tracker.icloud_* -> icloud.* (#29144)
  • Blackbird: media_player.blackbird_set_all_zones -> blackbird.set_all_zones (#29112)
  • Bluesound: media_player.bluesound_* -> bluesound.* (#29111)
  • Channels: media_player.channels_* -> channels.* (#29139)
  • Epson: media_player.epson_select_cmode -> epson.select_cmode (#29113)
  • Monoprice: media_player.monoprice_* -> monoprice.* (#29099)
  • Songpal: media_player.songpal_set_sound_setting -> songpal.set_sound_setting (#29143)
  • Soundtouch: media_player.soundtouch_* -> soundtouch.* (#29140)
  • Squeezebox: media_player.squeezebox_call_method -> squeezebox.call_method (#29141)
  • Xiaomi Miio: *.xiaomi_miio_* -> xiaomi_miio.* (#29134)
  • Xiaomi Miio: *.xiaomi_* -> xiaomi_miio.* (#29134)
  • Yamaha: media_player.yamaha_* -> yamaha.* (#29142)

其他不向后兼容的变更

  • Mobile App - Loading the Mobile App no longer causes the Cloud 集成 to be loaded. If you relied on this, add cloud: to your 配置.yaml. - (@balloob - #29373) (mobile_app docs)

  • Samsung TV - The behavior for next and previous track commands for Samsung TVs has changed. Before the change, the Samsung TV 集成 reacted to the two above commands sending the KEY_FF and KEY_REWIND commands. While watching TV programs, those two commands do nothing. After the change, the 实体 sends the KEY_CHUP and KEY_CHDOWN commands instead, thus allowing the 用户 to change the channel using the media player standard Lovelace interface. The 用户 doesn't need to change anything in the 配置. - (@tulindo - #28213) (samsungtv docs)

  • Wake on LAN - The 配置 key mac_address: was renamed to mac: to be in sync with the 服务. (@fabaff - #28830) (wake_on_lan docs)

  • PulseAudio Loopback 开关 - The default port was incorrectly set to 4712, however, the official 文档 状态 that the default port is 4713. Therefore, the port has been changed and all previously configured 开关 now need to listen to port 4713. - (@springstan - #28857) (pulseaudio_loopback docs)

  • Z-Wave - This changes the primary command class for Z-Wave thermostats in discovery schemas from COMMAND_CLASS_THERMOSTAT_SETPOINT to COMMAND_CLASS_THERMOSTAT_MODE. This will cause a typical dual setpoint thermostat to be correctly represented as a single 实体. - (@oandrew - #27040) (zwave docs)

  • Transmission - Added host field to add_torrent 服务 in order to support multiple Transmission instances. (@engrbm87 - #28653) (transmission docs)

  • Opentherm Gateway - Adds 设备 support. This change breaks enabled sensor and binary_sensor 实体, which are now disabled by default and can be re-enabled through the 设备 面板. It also breaks entity_id of the 温控 实体 in some 配置. The entity_id is now based on the gateway_id rather than the configured name to guarantee uniqueness. - (@mvn23 - #28722) (opentherm_gw docs)

  • Intent - If you use the built-in intents for shopping list, 遮盖 or 灯光, you need to add intent: to your configuration.yaml. - (@balloob - #29280) (conversation docs) (遮盖 docs) (灯光 docs) (shopping_list docs)

  • Emulated Hue - As previous entityid were not Hue compliant, emulated_hue_ids.json will need to be cleared out and 设备 re-discovered and configured in Alexa / Google Home. This is a necessary growing pain to move the 集成 forward in a Hue-compliant fashion. - (@NobleKangaroo - #28317) (emulated_hue docs)

  • Miflora - Values for an unresponsive 设备 aren't reported any more as if they were valid, so it's possible to send an alert. - (@ferbar - #29276) (miflora docs)

    Example 配置 YAML:

    - id: plant_unreachable
      alias: "plant unreachable"
      trigger:
        - entity_id: sensor.plant_moisture
          for: 01:00:00
          platform: state
          to: unavailable
      action:
  • 实体 ID - It is no longer possible to target all 实体 by not passing both entity_id and area_id to your 服务 data. This feature was previously deprecated and has been printing 警告. The correct way to target all 实体 is to set entity_id: all - (@balloob - #29178)

  • Heatmiser Thermostat - The Heatmiser 集成 has been updated to the latest 版本 of the heatmiserV3 library, meaning less code inside HA, and more leverage on the library. The current 版本 of the Heatmiser 集成 went out of date with the introduction of voluptuous. This has now been fixed, but it breaks the old config syntax slightly. See the updated docs for the new config format. - (@andylockran - #29006) (heatmiser docs)

发布 0.103.1 - December 18

发布 0.103.2 - December 19

  • Fix dependency 安装 recursinog (@balloob)

发布 0.103.3 - December 20

发布 0.103.4 - December 22

发布 0.103.5 - December 28

发布 0.103.6 - January 6

如果你需要帮助……

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

问题反馈

如果你遇到了这个版本引入的问题,请在我们的 issue tracker 中报告。请务必填写 issue 模板中的所有字段。

Beta Fixes

All changes