premier envoie

This commit is contained in:
2024-04-14 07:13:49 +02:00
parent 537f1acde4
commit c14ea74287
5 changed files with 585 additions and 79 deletions

96
mqtt_unvai.py Normal file
View 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()