更新 MQTT 主题为 device/data 和 device/data-get,调整相关订阅和消息处理逻辑,确保一致性和清晰度。

This commit is contained in:
不求圣剑
2025-10-14 15:06:48 +08:00
parent 7dd05ac126
commit 0ed60db853

View File

@@ -29,14 +29,14 @@ class DataTransmissionExample:
if rc == 0: if rc == 0:
print("✅ 连接到 MQTT 代理成功") print("✅ 连接到 MQTT 代理成功")
# 订阅数据获取请求主题 # 订阅数据获取请求主题
client.subscribe("/data/data-get") client.subscribe("device/data-get")
print("✅ 订阅 /data/data-get 主题成功") print("✅ 订阅 device/data-get 主题成功")
else: else:
print(f"❌ 连接 MQTT 代理失败,错误码: {rc}") print(f"❌ 连接 MQTT 代理失败,错误码: {rc}")
def on_message(self, client, userdata, msg): def on_message(self, client, userdata, msg):
"""MQTT 消息接收回调""" """MQTT 消息接收回调"""
if msg.topic == "/data/data-get": if msg.topic == "device/data-get":
print(f"📨 收到数据请求: {msg.payload.decode()}") print(f"📨 收到数据请求: {msg.payload.decode()}")
# 模拟处理时间 # 模拟处理时间
time.sleep(0.1) time.sleep(0.1)
@@ -94,12 +94,12 @@ class DataTransmissionExample:
# 转换为 JSON 格式 # 转换为 JSON 格式
json_data = json.dumps(data, ensure_ascii=False, indent=2) json_data = json.dumps(data, ensure_ascii=False, indent=2)
# 发布到 /device/data 主题 # 发布到 device/data 主题
result = self.client.publish("/device/data", json_data) result = self.client.publish("device/data", json_data)
if result.rc == mqtt.MQTT_ERR_SUCCESS: if result.rc == mqtt.MQTT_ERR_SUCCESS:
print("📤 发送设备数据:") print("📤 发送设备数据:")
print(f" 主题: /device/data") print(f" 主题: device/data")
print(f" 数据: {json_data}") print(f" 数据: {json_data}")
print() print()
else: else:
@@ -155,8 +155,8 @@ def main():
print("🏠 Energy Monitor 数据传输示例") print("🏠 Energy Monitor 数据传输示例")
print("=" * 50) print("=" * 50)
print("这个示例演示了以下功能:") print("这个示例演示了以下功能:")
print("1. 监听 /data/data-get 请求") print("1. 监听 device/data-get 请求")
print("2. 响应请求并发送设备数据到 /device/data") print("2. 响应请求并发送设备数据到 device/data")
print("3. 模拟真实的能源监控数据") print("3. 模拟真实的能源监控数据")
print("4. 每秒5次的数据获取频率由 Home Assistant 集成触发)") print("4. 每秒5次的数据获取频率由 Home Assistant 集成触发)")
print() print()