premier envoie
This commit is contained in:
96
mqtt_unvai.py
Normal file
96
mqtt_unvai.py
Normal file
@@ -0,0 +1,96 @@
|
||||
import paho.mqtt.client as mqtt
|
||||
|
||||
# Paramètres MQTT
|
||||
mqtt_broker_ip_address = "10.0.0.3"
|
||||
mqtt_port = 1883
|
||||
mqtt_username = ""
|
||||
mqtt_password = ""
|
||||
|
||||
# Configuration des entités
|
||||
shutdown_entity = {
|
||||
"availability_topic": "pilot/aorus/shutdown/available",
|
||||
"payload_not_available": "offline",
|
||||
}
|
||||
|
||||
# battery_entity = {
|
||||
# "availability_topic": "pilot/aorus/battery/available",
|
||||
# "payload_not_available": "offline",
|
||||
# }
|
||||
cpu_temperature_entity = {
|
||||
"availability_topic": "pilot/aorus/cpu_temp/available",
|
||||
"payload_not_available": "offline",
|
||||
}
|
||||
|
||||
gpu_temperature_entity = {
|
||||
"availability_topic": "pilot/aorus/gpu_temp/available",
|
||||
"payload_not_available": "offline",
|
||||
}
|
||||
gpu_memory_entity = {
|
||||
"availability_topic": "pilot/aorus/gpu_memory_usage/available",
|
||||
"payload_not_available": "offline",
|
||||
}
|
||||
|
||||
memory_usage_entity = {
|
||||
"availability_topic": "pilot/aorus/memory_used/available",
|
||||
"payload_not_available": "offline",
|
||||
}
|
||||
cpu_usage_entity = {
|
||||
"availability_topic": "pilot/aorus/cpu_usage/available",
|
||||
"payload_not_available": "offline",
|
||||
}
|
||||
|
||||
# Fonction pour publier l'état "unavailable" pour les entités
|
||||
def publish_unavailability(client):
|
||||
client.publish(
|
||||
shutdown_entity["availability_topic"],
|
||||
shutdown_entity["payload_not_available"],
|
||||
retain=True,
|
||||
)
|
||||
# client.publish(
|
||||
# battery_entity["availability_topic"],
|
||||
# battery_entity["payload_not_available"],
|
||||
# retain=True,
|
||||
# )
|
||||
|
||||
client.publish(
|
||||
cpu_temperature_entity["availability_topic"],
|
||||
cpu_temperature_entity["payload_not_available"],
|
||||
retain=True,
|
||||
)
|
||||
client.publish(
|
||||
gpu_temperature_entity["availability_topic"],
|
||||
gpu_temperature_entity["payload_not_available"],
|
||||
retain=True,
|
||||
)
|
||||
client.publish(
|
||||
gpu_memory_entity["availability_topic"],
|
||||
gpu_memory_entity["payload_not_available"],
|
||||
retain=True,
|
||||
)
|
||||
client.publish(
|
||||
cpu_usage_entity["availability_topic"],
|
||||
cpu_usage_entity["payload_not_available"],
|
||||
retain=True,
|
||||
)
|
||||
client.publish(
|
||||
memory_usage_entity["availability_topic"],
|
||||
memory_usage_entity["payload_not_available"],
|
||||
retain=True,
|
||||
)
|
||||
print("Published unavailability for all entities")
|
||||
|
||||
# Fonction appelée lors de la connexion au broker MQTT
|
||||
def on_connect(client, userdata, flags, rc):
|
||||
if rc == 0:
|
||||
print("Connected with result code {rc}")
|
||||
publish_unavailability(client)
|
||||
client.disconnect() # Déconnecter après la publication
|
||||
|
||||
|
||||
# Configuration et démarrage du client MQTT
|
||||
client = mqtt.Client()
|
||||
client.username_pw_set(mqtt_username, mqtt_password)
|
||||
client.on_connect = on_connect
|
||||
client.connect(mqtt_broker_ip_address, mqtt_port, 60)
|
||||
|
||||
client.loop_forever()
|
||||
Reference in New Issue
Block a user