72 lines
1.8 KiB
Python
Executable File
72 lines
1.8 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
"""
|
|
Script simple pour monitorer les messages MQTT de Pilot.
|
|
Utile pour debugger la découverte Home Assistant.
|
|
"""
|
|
import sys
|
|
import time
|
|
try:
|
|
import paho.mqtt.client as mqtt
|
|
except ImportError:
|
|
print("❌ Module paho-mqtt non installé")
|
|
print("Installer avec: pip3 install paho-mqtt")
|
|
sys.exit(1)
|
|
|
|
|
|
def on_connect(client, userdata, flags, rc):
|
|
if rc == 0:
|
|
print("✅ Connecté au broker MQTT")
|
|
print()
|
|
print("📡 Souscription aux topics:")
|
|
client.subscribe("pilot/#")
|
|
print(" - pilot/#")
|
|
client.subscribe("homeassistant/#")
|
|
print(" - homeassistant/#")
|
|
print()
|
|
print("🔊 En écoute des messages... (Ctrl+C pour arrêter)")
|
|
print("-" * 80)
|
|
else:
|
|
print(f"❌ Échec de connexion, code: {rc}")
|
|
|
|
|
|
def on_message(client, userdata, msg):
|
|
print(f"📨 Topic: {msg.topic}")
|
|
try:
|
|
payload = msg.payload.decode('utf-8')
|
|
if len(payload) > 200:
|
|
print(f" Payload: {payload[:200]}... (truncated)")
|
|
else:
|
|
print(f" Payload: {payload}")
|
|
except:
|
|
print(f" Payload (binary): {len(msg.payload)} bytes")
|
|
print(f" Retain: {msg.retain}")
|
|
print("-" * 80)
|
|
|
|
|
|
def main():
|
|
broker = "10.0.0.3"
|
|
port = 1883
|
|
|
|
print("🚀 MQTT Monitor pour Pilot v2")
|
|
print(f"📡 Broker: {broker}:{port}")
|
|
print()
|
|
|
|
client = mqtt.Client()
|
|
client.on_connect = on_connect
|
|
client.on_message = on_message
|
|
|
|
try:
|
|
print("🔌 Connexion au broker...")
|
|
client.connect(broker, port, 60)
|
|
client.loop_forever()
|
|
except KeyboardInterrupt:
|
|
print("\n\n👋 Arrêt du monitoring")
|
|
client.disconnect()
|
|
except Exception as e:
|
|
print(f"\n❌ Erreur: {e}")
|
|
sys.exit(1)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|