first commit
This commit is contained in:
54
delete.py
Normal file
54
delete.py
Normal file
@@ -0,0 +1,54 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user