以下是按照Python语言规范和命名规范修改后的MQTT模块文档：
## MQTT

### MQTT 订阅信息（使用传入的topic）

* 方法说明

  向指定的 topic 订阅信息，适用于订阅多个topic的场景。

```python
def mqtt_subscribe(topic: str) -> str:
```

* 输入参数
* `topic`：str 类型，订阅的 topic。
* 输出参数

  订阅到的信息。

  如果订阅失败返回 `None`。
* 异常

  本方法不会抛出异常。
* 使用示例
* 1. 在 `application-biz.yml` 里面开启MQTT，并完成相应的配置，如下：

```yaml
# 是否开启 MQTT 服务
mqtt_config_view:
  enable: true
  pub_config:
    # 服务器端点url
    broker: tcp://broker.emqx.io:1883
    # 订阅的主题，MQTT允许使用通配符订阅主题，不允许使用通配符pub发布消息
    topics:
      - Examples/1/123
    # 设置message的服务质量（0：消息最多传递一次（零次或一次）1：至少传递一次（一次或多次）。2：只传递一次）
    qos: 2
    # 客户端唯一标识
    client_id: RDS-Pub
    # 连接的用户名，不需要就填 null
    username: null
    # 连接的密码,不需要就填 null
    password: null
    # 设置是否清空session,false表示服务器会保留客户端的连接记录，true每次都以新的身份连接服务器
    clean_session: false
    # 超时时间(seconds)
    connection_timeout: 30
    # 设置会话心跳时间(seconds)
    keep_alive_interval: 60
    # 设置断开后重新连接
    automatic_reconnect: true
    # 表示发送的消息需要一直持久保存（不受服务器重启影响），不但要发送给当前的订阅者，并且以后新来的订阅了此Topic name的订阅者会马上得到推送。
    retained: false
    # 作为publish的遗嘱消息，会存到服务器，在publish端非正常断连的情况下，发送给所有订阅的客户端
    # 不需要就填 null
    will_msg: null
    # 遗嘱消息发布的topic
    will_topic: Examples1
  sub_config:
    # 服务器端点url
    broker: tcp://broker.emqx.io:1883
    # MQTT允许使用通配符sub订阅主题，但不允许使用通配符pub发布消息
    topics:
      - Examples/1/123
    # 设置message的服务质量（0：消息最多传递一次（零次或一次）1：至少传递一次（一次或多次）。2：只传递一次）
    qos: 1
    # 客户端唯一标识
    client_id: RDS-Sub
    # 连接的用户名，不需要就填 null
    username: null
    # 连接的密码,不需要就填 null
    password: null
    # 设置是否清空session,false表示服务器会保留客户端的连接记录，true每次都以新的身份连接服务器
    clean_session: false
    # 超时时间(seconds)
    connection_timeout: 30
    # 设置会话心跳时间(seconds)
    keep_alive_interval: 60
    # 设置断开后重新连接
    automatic_reconnect: true
    # 表示发送的消息需要一直持久保存（不受服务器重启影响），不但要发送给当前的订阅者，并且以后新来的订阅了此Topic name的订阅者会马上得到推送。
    retained: false
```

* 2. 编写脚本方法

```python
data = mqtt_subscribe("test_topic")
script_log("info", "sub1", data)
```

### MQTT 订阅信息（使用配置文件的topic）

* 方法说明

  向 `application-biz.yml` 配置的 topic 订阅信息，适用于只订阅一个topic的场景。

```python
def mqtt_subscribe() -> str:
```

* 输入参数

  无。
* 输出参数

  订阅到的信息。

  如果订阅失败返回 `None`。
* 异常

  本方法不会抛出异常。
* 使用示例
* 1. 在 `application-biz.yml` 里面开启MQTT，并完成相应的配置，如下：

```yaml
# 是否开启 MQTT 服务
mqtt_config_view:
  enable: true
  pub_config:
    # 服务器端点url
    broker: tcp://broker.emqx.io:1883
    # 订阅的主题，MQTT允许使用通配符订阅主题，不允许使用通配符pub发布消息
    topics:
      - Examples/1/123
    # 设置message的服务质量（0：消息最多传递一次（零次或一次）1：至少传递一次（一次或多次）。2：只传递一次）
    qos: 2
    # 客户端唯一标识
    client_id: RDS-Pub
    # 连接的用户名，不需要就填 null
    username: null
    # 连接的密码,不需要就填 null
    password: null
    # 设置是否清空session,false表示服务器会保留客户端的连接记录，true每次都以新的身份连接服务器
    clean_session: false
    # 超时时间(seconds)
    connection_timeout: 30
    # 设置会话心跳时间(seconds)
    keep_alive_interval: 60
    # 设置断开后重新连接
    automatic_reconnect: true
    # 表示发送的消息需要一直持久保存（不受服务器重启影响），不但要发送给当前的订阅者，并且以后新来的订阅了此Topic name的订阅者会马上得到推送。
    retained: false
    # 作为publish的遗嘱消息，会存到服务器，在publish端非正常断连的情况下，发送给所有订阅的客户端
    # 不需要就填 null
    will_msg: null
    # 遗嘱消息发布的topic
    will_topic: Examples1
  sub_config:
    # 服务器端点url
    broker: tcp://broker.emqx.io:1883
    # MQTT允许使用通配符sub订阅主题，但不允许使用通配符pub发布消息
    topics:
      - Examples/1/123
    # 设置message的服务质量（0：消息最多传递一次（零次或一次）1：至少传递一次（一次或多次）。2：只传递一次）
    qos: 1
    # 客户端唯一标识
    client_id: RDS-Sub
    # 连接的用户名，不需要就填 null
    username: null
    # 连接的密码,不需要就填 null
    password: null
    # 设置是否清空session,false表示服务器会保留客户端的连接记录，true每次都以新的身份连接服务器
    clean_session: false
    # 超时时间(seconds)
    connection_timeout: 30
    # 设置会话心跳时间(seconds)
    keep_alive_interval: 60
    # 设置断开后重新连接
    automatic_reconnect: true
    # 表示发送的消息需要一直持久保存（不受服务器重启影响），不但要发送给当前的订阅者，并且以后新来的订阅了此Topic name的订阅者会马上得到推送。
    retained: false
```

* 2. 编写脚本方法

```python
data = mqtt_subscribe()
script_log("info", "sub", data)
```

### MQTT 发布信息（使用传入的topic）

* 方法说明

  向输入的 topic 发布信息。

```python
def mqtt_publish(topic: str, message: str) -> None:
```

* 输入参数
* `topic`：str 类型，发布的 topic。
* `message`：str 类型，需要发布的信息。
* 输出参数

  无。
* 异常

  本方法不会抛出异常。
* 使用示例
* 1. 在 `application-biz.yml` 里面开启MQTT，并完成相应的配置，如下：

```yaml
# 是否开启 MQTT 服务
mqtt_config_view:
  enable: true
  pub_config:
    # 服务器端点url
    broker: tcp://broker.emqx.io:1883
    # 订阅的主题，MQTT允许使用通配符订阅主题，不允许使用通配符pub发布消息
    topics:
      - Examples/1/123
    # 设置message的服务质量（0：消息最多传递一次（零次或一次）1：至少传递一次（一次或多次）。2：只传递一次）
    qos: 2
    # 客户端唯一标识
    client_id: RDS-Pub
    # 连接的用户名，不需要就填 null
    username: null
    # 连接的密码,不需要就填 null
    password: null
    # 设置是否清空session,false表示服务器会保留客户端的连接记录，true每次都以新的身份连接服务器
    clean_session: false
    # 超时时间(seconds)
    connection_timeout: 30
    # 设置会话心跳时间(seconds)
    keep_alive_interval: 60
    # 设置断开后重新连接
    automatic_reconnect: true
    # 表示发送的消息需要一直持久保存（不受服务器重启影响），不但要发送给当前的订阅者，并且以后新来的订阅了此Topic name的订阅者会马上得到推送。
    retained: false
    # 作为publish的遗嘱消息，会存到服务器，在publish端非正常断连的情况下，发送给所有订阅的客户端
    # 不需要就填 null
    will_msg: null
    # 遗嘱消息发布的topic
    will_topic: Examples1
  sub_config:
    # 服务器端点url
    broker: tcp://broker.emqx.io:1883
    # MQTT允许使用通配符sub订阅主题，但不允许使用通配符pub发布消息
    topics:
      - Examples/1/123
    # 设置message的服务质量（0：消息最多传递一次（零次或一次）1：至少传递一次（一次或多次）。2：只传递一次）
    qos: 1
    # 客户端唯一标识
    client_id: RDS-Sub
    # 连接的用户名，不需要就填 null
    username: null
    # 连接的密码,不需要就填 null
    password: null
    # 设置是否清空session,false表示服务器会保留客户端的连接记录，true每次都以新的身份连接服务器
    clean_session: false
    # 超时时间(seconds)
    connection_timeout: 30
    # 设置会话心跳时间(seconds)
    keep_alive_interval: 60
    # 设置断开后重新连接
    automatic_reconnect: true
    # 表示发送的消息需要一直持久保存（不受服务器重启影响），不但要发送给当前的订阅者，并且以后新来的订阅了此Topic name的订阅者会马上得到推送。
    retained: false
```

* 2. 编写脚本方法

```python
mqtt_publish("test_topic", "RDS-Script sub message.")
```

### MQTT 发布信息（使用配置文件的topic）

* 方法说明

  向配置的 topic 发布信息。

```python
def mqtt_publish(message: str) -> None:
```

* 输入参数
* `message`：str 类型，需要发布的信息
* 输出参数

  无。
* 异常

  本方法不会抛出异常。
* 使用示例
* 1. 在 `application-biz.yml` 里面开启MQTT，并完成相应的配置，如下：

```yaml
# 是否开启 MQTT 服务
mqtt_config_view:
  enable: true
  pub_config:
    # 服务器端点url
    broker: tcp://broker.emqx.io:1883
    # 订阅的主题，MQTT允许使用通配符订阅主题，不允许使用通配符pub发布消息
    topics:
      - Examples/1/123
    # 设置message的服务质量（0：消息最多传递一次（零次或一次）1：至少传递一次（一次或多次）。2：只传递一次）
    qos: 2
    # 客户端唯一标识
    client_id: RDS-Pub
    # 连接的用户名，不需要就填 null
    username: null
    # 连接的密码,不需要就填 null
    password: null
    # 设置是否清空session,false表示服务器会保留客户端的连接记录，true每次都以新的身份连接服务器
    clean_session: false
    # 超时时间(seconds)
    connection_timeout: 30
    # 设置会话心跳时间(seconds)
    keep_alive_interval: 60
    # 设置断开后重新连接
    automatic_reconnect: true
    # 表示发送的消息需要一直持久保存（不受服务器重启影响），不但要发送给当前的订阅者，并且以后新来的订阅了此Topic name的订阅者会马上得到推送。
    retained: false
    # 作为publish的遗嘱消息，会存到服务器，在publish端非正常断连的情况下，发送给所有订阅的客户端
    # 不需要就填 null
    will_msg: null
    # 遗嘱消息发布的topic
    will_topic: Examples1
  sub_config:
    # 服务器端点url
    broker: tcp://broker.emqx.io:1883
    # MQTT允许使用通配符sub订阅主题，但不允许使用通配符pub发布消息
    topics:
      - Examples/1/123
    # 设置message的服务质量（0：消息最多传递一次（零次或一次）1：至少传递一次（一次或多次）。2：只传递一次）
    qos: 1
    # 客户端唯一标识
    client_id: RDS-Sub
    # 连接的用户名，不需要就填 null
    username: null
    # 连接的密码,不需要就填 null
    password: null
    # 设置是否清空session,false表示服务器会保留客户端的连接记录，true每次都以新的身份连接服务器
    clean_session: false
    # 超时时间(seconds)
    connection_timeout: 30
    # 设置会话心跳时间(seconds)
    keep_alive_interval: 60
    # 设置断开后重新连接
    automatic_reconnect: true
    # 表示发送的消息需要一直持久保存（不受服务器重启影响），不但要发送给当前的订阅者，并且以后新来的订阅了此Topic name的订阅者会马上得到推送。
    retained: false
```
