Azure Service Bus

Azure Service Bus 集成允许您从 Home Assistant 发送消息到 Azure Service Bus

首次设置

这假设您已经有一个 Azure 帐户。如果没有,请在 这里 创建一个免费帐户。

您需要创建一个 Service Bus 命名空间;您可以按照 本指南 操作。

然后,您必须为 Service Bus 创建一个具有 Send 权限的共享访问策略,或使用您命名空间中的 RootManageAccessKey(此密钥具有其他权限,包括管理事件中心和侦听,而这些权限在本情况下并不需要),有关 Service Bus 安全性的更多详细信息 请点击这里。或者,您可以仅为一个队列或主题创建一个专用密钥,以限制对仅该队列或主题的访问。

一旦您拥有了带有 Send 策略的连接字符串,就可以设置集成本身。

Important

您要发送的队列或主题在您使用它之前需要在服务总线命名空间中存在。有关如何设置队列,请参见 这里,有关设置主题和订阅,请参见 这里

配置

将以下行添加到您的 configuration.yamlconfiguration.yaml 文件是 Home Assistant 的主要配置文件。它列出了要加载的集成及其特定配置。在某些情况下,需要直接在 configuration.yaml 文件中手动编辑配置。大多数集成可以在 UI 中配置。 [Learn more] 文件中。 在更改了configuration.yamlconfiguration.yaml 文件是 Home Assistant 的主要配置文件。它列出了要加载的集成及其特定配置。在某些情况下,需要直接在 configuration.yaml 文件中手动编辑配置。大多数集成可以在 UI 中配置。 [Learn more] 文件后,重启 Home Assistant 以应用更改。 该集成现在显示在集成页面的 设置 > 设备与服务 下。其实体在集成卡片上以及实体标签上列出。

# 示例 configuration.yaml 条目
notify:
  - platform: azure_service_bus
    connection_string: !secret servicebus_connection_string
    topic: t-test
  - platform: azure_service_bus
    connection_string: !secret servicebus_connection_string
    queue: q-test

Configuration Variables

name string (Optional, default: notify)

设置可选参数 name 允许创建多个通知器。通知器将绑定到 notify.NOTIFIER_NAME 操作。

connection_string string Required

在 Azure 门户中找到的连接字符串,具有 send 权限的密钥。

queue string (Exclusive)

发送通知的队列。

topic string (Exclusive)

发送通知的主题。

Tip

如果您计划发送 Home Assistant 中一个或多个实体的所有状态更改,您应该考虑使用 Azure Event Hub 集成。

使用

通知服务将把提供的数据转换为服务总线上的 JSON 对象。message 字段将始终被设置,但 targettitle 字段是可选的,仅在设置时才包含在服务总线消息中。在 data 部分提供的任何输入都将被展平到 JSON 对象的根部,并遵循给定的结构。数据部分提供的所有输入都将包含在消息中。

请查看下面的示例,了解自动化触发器如何转换为服务总线上的消息。

automation:
  - alias: "Sunset Service Bus message"
    triggers:
      - trigger: sun
        event: sunset
    actions:
      - action: notify.test_queue
        data:
          message: "太阳正在下山"
          title: "晚上好"
          data:
            sun_direction: "向下"
            custom_field: 123
            custom_object:
              trigger_more: true
              explain: "开始变暗了"

可以从队列或主题订阅中检索到的消息:

{
  "message": "太阳正在下山",
  "title": "晚上好",
  "sun_direction": "向下",
  "custom_field": 123,
  "custom_object": {
    "trigger_more": true,
    "explain": "开始变暗了"
  }
}