corrige temperature
This commit is contained in:
59
scripts/check_ha_api.sh
Executable file
59
scripts/check_ha_api.sh
Executable 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
113
scripts/check_ha_mqtt.md
Normal 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
71
scripts/mqtt_monitor.py
Executable 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
63
scripts/test_mqtt_connection.sh
Executable 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 ""
|
||||
Reference in New Issue
Block a user