Files
homeassistant-jackery/delete.py
不求圣剑 3f698d6e16 first commit
2025-10-14 10:44:00 +08:00

55 lines
1.5 KiB
Python

import json
import paho.mqtt.client as mqtt
MQTT_BROKER = "192.168.0.101"
MQTT_PORT = 1883
MQTT_USERNAME = ""
MQTT_PASSWORD = ""
MQTT_CLIENT_ID = "ha_delete_discovery"
SENSOR_IDS = [
"solar_power",
"home_power",
"grid_import",
"grid_export",
"battery_charge",
"battery_discharge",
"battery_soc",
"battery_power",
"grid_power"
]
# ==== 修改后的回调 ====
def on_connect(client, userdata, flags, reason_code, properties=None):
if reason_code == 0:
print("✅ 已连接到 MQTT Broker")
else:
print(f"❌ 连接失败,原因码: {reason_code}")
def on_publish(client, userdata, mid, reason_code, properties=None):
print(f"🧹 已发送删除命令 (mid={mid})")
def delete_discovery_configs():
client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, MQTT_CLIENT_ID)
if MQTT_USERNAME:
client.username_pw_set(MQTT_USERNAME, MQTT_PASSWORD)
client.on_connect = on_connect
client.on_publish = on_publish
print("🚀 正在连接 MQTT Broker ...")
client.connect(MQTT_BROKER, MQTT_PORT, 60)
client.loop_start()
for sensor_id in SENSOR_IDS:
topic = f"homeassistant/sensor/{sensor_id}/config"
client.publish(topic, None, retain=True)
print(f"🗑️ 已发布空配置以删除实体:{sensor_id}")
client.loop_stop()
client.disconnect()
print("✅ 所有 Discovery 配置已删除")
if __name__ == "__main__":
delete_discovery_configs()