corrige temperature

This commit is contained in:
2026-01-10 20:24:11 +01:00
parent ff3fc65eef
commit 91bfcff1fe
2486 changed files with 31797 additions and 544 deletions

59
scripts/check_ha_api.sh Executable file
View File

@@ -0,0 +1,59 @@
#!/bin/bash
# Script pour vérifier la configuration MQTT dans Home Assistant via API REST
HA_URL="http://10.0.0.2:8123"
HA_USER="gilles"
HA_PASS="gilles"
echo "🏠 Vérification de Home Assistant"
echo "URL: $HA_URL"
echo ""
# Fonction pour obtenir un token d'accès
get_token() {
echo "🔐 Tentative de connexion..."
# Home Assistant utilise des tokens long-lived, pas username/password pour l'API
# Il faut créer un token dans HA: Profile -> Long-Lived Access Tokens
echo ""
echo "⚠️ IMPORTANT: L'API Home Assistant nécessite un Long-Lived Access Token"
echo ""
echo "Pour créer un token:"
echo "1. Allez sur $HA_URL"
echo "2. Cliquez sur votre profil (en bas à gauche)"
echo "3. Descendez jusqu'à 'Long-Lived Access Tokens'"
echo "4. Cliquez sur 'CREATE TOKEN'"
echo "5. Donnez un nom comme 'pilot-debug'"
echo "6. Copiez le token généré"
echo ""
echo "Ensuite, relancez ce script avec:"
echo " HA_TOKEN='votre-token' $0"
echo ""
}
# Vérifier si un token est fourni
if [ -z "$HA_TOKEN" ]; then
get_token
exit 0
fi
echo "🔍 Vérification de l'état de Home Assistant..."
curl -s -H "Authorization: Bearer $HA_TOKEN" \
-H "Content-Type: application/json" \
"$HA_URL/api/" | jq '.' 2>/dev/null || echo "❌ Impossible de se connecter"
echo ""
echo "📡 Vérification de l'intégration MQTT..."
curl -s -H "Authorization: Bearer $HA_TOKEN" \
-H "Content-Type: application/json" \
"$HA_URL/api/config/config_entries" | jq '.[] | select(.domain == "mqtt")' 2>/dev/null || echo "❌ MQTT non configuré ou jq non installé"
echo ""
echo "🖥️ Recherche de l'appareil 'asus'..."
curl -s -H "Authorization: Bearer $HA_TOKEN" \
-H "Content-Type: application/json" \
"$HA_URL/api/config/device_registry/list" | jq '.[] | select(.name == "asus")' 2>/dev/null || echo "❌ Appareil non trouvé ou jq non installé"
echo ""
echo "✅ Vérification terminée"

113
scripts/check_ha_mqtt.md Normal file
View File

@@ -0,0 +1,113 @@
# Guide de Diagnostic - Home Assistant MQTT Discovery
## Problème: L'appareil Pilot n'apparaît pas dans Home Assistant
### ✅ Checklist de Diagnostic
#### 1. Vérifier que Home Assistant est connecté au broker MQTT
**Option A: Via l'interface HA**
1. Allez sur http://10.0.0.2:8123
2. Connectez-vous (user: gilles, password: gilles)
3. Allez dans **Paramètres****Appareils et Services**
4. Cherchez l'intégration **MQTT**
- ✅ Si présente: Vérifiez la configuration
- ❌ Si absente: Ajoutez l'intégration MQTT
**Option B: Via configuration.yaml**
```yaml
mqtt:
broker: 10.0.0.3
port: 1883
discovery: true
discovery_prefix: homeassistant
```
Après modification, redémarrez Home Assistant.
#### 2. Vérifier la connexion au broker
Dans Home Assistant:
1. Allez dans **Outils de développement****MQTT**
2. Essayez de vous abonner au topic `pilot/#`
3. Vous devriez voir des messages arriver
#### 3. Vérifier les topics de découverte
Les topics de découverte Pilot doivent être:
```
homeassistant/sensor/asus/asus_cpu_usage/config
homeassistant/sensor/asus/asus_memory_used_mb/config
homeassistant/sensor/asus/asus_memory_total_mb/config
homeassistant/sensor/asus/asus_ip_address/config
homeassistant/sensor/asus/asus_power_state/config
homeassistant/sensor/asus/asus_battery_level/config
homeassistant/sensor/asus/asus_battery_state/config
homeassistant/switch/asus/asus_shutdown/config
homeassistant/switch/asus/asus_reboot/config
homeassistant/switch/asus/asus_sleep/config
homeassistant/switch/asus/asus_screen/config
```
#### 4. Forcer la republication des messages discovery
Redémarrez Pilot pour qu'il republie les messages de découverte:
```bash
pkill -f pilot-v2
cd /home/gilles/app/pilot/pilot-v2
cargo run --release &
```
#### 5. Vérifier les logs Home Assistant
Dans Home Assistant:
1. Allez dans **Paramètres****Système****Journaux**
2. Cherchez des erreurs liées à MQTT
### 🔧 Solutions Courantes
**Problème**: MQTT non configuré dans HA
- **Solution**: Ajoutez l'intégration MQTT pointant vers 10.0.0.3:1883
**Problème**: Discovery désactivé
- **Solution**: Dans la config MQTT de HA, activez `discovery: true`
**Problème**: Mauvais prefix de découverte
- **Solution**: Vérifiez que HA utilise le prefix `homeassistant` (par défaut)
**Problème**: L'appareil n'apparaît pas après ajout MQTT
- **Solution**: Redémarrez Pilot ET Home Assistant
### 📊 Test manuel de publication MQTT
Si vous avez mosquitto-clients installé:
```bash
# Installer
sudo apt install mosquitto-clients
# Écouter tous les messages
mosquitto_sub -h 10.0.0.3 -t '#' -v
# Écouter uniquement discovery
mosquitto_sub -h 10.0.0.3 -t 'homeassistant/#' -v
# Écouter uniquement Pilot
mosquitto_sub -h 10.0.0.3 -t 'pilot/#' -v
```
### 🐍 Alternative: Script Python de monitoring
Si paho-mqtt est installé:
```bash
pip3 install paho-mqtt
python3 /home/gilles/app/pilot/scripts/mqtt_monitor.py
```
### ✅ Vérification Finale
Une fois configuré correctement, vous devriez voir dans HA:
- **Appareil**: "asus" dans la liste des appareils MQTT
- **7 Capteurs**: CPU Usage, Memory Used/Total, IP Address, Power State, Battery Level/State
- **4 Switches**: Shutdown, Reboot, Sleep, Screen
L'appareil apparaît dans: **Paramètres****Appareils et Services****MQTT****Appareils**

71
scripts/mqtt_monitor.py Executable file
View File

@@ -0,0 +1,71 @@
#!/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()

63
scripts/test_mqtt_connection.sh Executable file
View File

@@ -0,0 +1,63 @@
#!/bin/bash
# Script pour tester la connectivité MQTT et vérifier les messages
echo "🔍 Test de connectivité MQTT"
echo "=============================="
echo ""
# Test 1: Vérifier que le broker MQTT est accessible
echo "1⃣ Test de connexion au broker 10.0.0.3:1883..."
if nc -zv 10.0.0.3 1883 2>&1 | grep -q "succeeded\|open"; then
echo " ✅ Broker MQTT accessible"
else
echo " ❌ Broker MQTT non accessible"
exit 1
fi
echo ""
# Test 2: Vérifier que Pilot est en cours d'exécution
echo "2⃣ Vérification de Pilot..."
if pgrep -f "pilot-v2" > /dev/null; then
PID=$(pgrep -f "pilot-v2")
echo " ✅ Pilot est en cours d'exécution (PID: $PID)"
else
echo " ❌ Pilot n'est pas en cours d'exécution"
exit 1
fi
echo ""
# Test 3: Afficher la configuration MQTT de Pilot
echo "3⃣ Configuration MQTT de Pilot:"
echo " Broker: 10.0.0.3:1883"
echo " Device: $(hostname)"
echo " Topics publiés:"
echo " - pilot/$(hostname)/availability"
echo " - pilot/$(hostname)/state/*"
echo " - homeassistant/sensor/$(hostname)/*"
echo " - homeassistant/switch/$(hostname)/*"
echo ""
echo ""
echo "⚠️ DIAGNOSTIC:"
echo "==============="
echo ""
echo "Pilot publie sur le broker: 10.0.0.3:1883"
echo "Home Assistant doit être configuré pour écouter ce même broker."
echo ""
echo "Pour vérifier dans Home Assistant:"
echo "1. Allez dans Paramètres → Appareils et Services → MQTT"
echo "2. Cliquez sur 'Configurer' (roue dentée)"
echo "3. Vérifiez que 'Courtier' = 10.0.0.3"
echo "4. Vérifiez que 'Port' = 1883"
echo ""
echo "Si le broker est différent, vous avez 2 options:"
echo ""
echo "📌 Option A: Changer HA pour écouter 10.0.0.3"
echo " Dans les options MQTT de HA, changez le Courtier vers 10.0.0.3"
echo ""
echo "📌 Option B: Changer Pilot pour publier sur le broker de HA"
echo " Modifiez /home/gilles/app/pilot/pilot-v2/config.yaml"
echo " Changez mqtt.host vers l'IP du broker que HA utilise"
echo ""