Major updates: - Complete Rust rewrite (pilot-v2/) with working MQTT client - Fixed MQTT event loop deadlock (background task pattern) - Battery telemetry for Linux (auto-detected via /sys/class/power_supply) - Home Assistant auto-discovery for all sensors and switches - Comprehensive documentation (AVANCEMENT.md, CLAUDE.md, roadmap) - Docker test environment with Mosquitto broker - Helper scripts for development and testing Features working: ✅ MQTT connectivity with LWT ✅ YAML configuration with validation ✅ Telemetry: CPU, memory, IP, battery (Linux) ✅ Commands: shutdown, reboot, sleep, screen (dry-run tested) ✅ HA discovery and integration ✅ Allowlist and cooldown protection Ready for testing on real hardware. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
3.6 KiB
Methode de re-developpement / re-deploiement (V2)
1) Pre-requis
- Python 3.10+ (ou version a valider), paho-mqtt, psutil, optionnel pynvml.
- Repo structuree :
src/,configs/,docs/,scripts/,tests/. - Conventions : configuration centralisee (env/yaml), logs JSON, topics versionnes.
2) Liste des informations que l’utilisateur doit completer
Section : A completer par l’utilisateur
- OS cibles : [ ]
- Broker MQTT (host:port) : [ ]
- Auth/TLS (user/pass, CA, client cert) : [ ]
- Client_id et keepalive : [ ]
- Prefix topics (ex: pilot/v2) : [ ]
- Liste commandes a supporter : [ ]
- Politique de securite (allowlist, validation, ACL broker) : [ ]
- Packaging desire (exe Windows, systemd Linux, docker) : [ ]
- Integration Home Assistant autodiscovery : [oui/non] + details : [ ]
- Availability / birth / will : [ ]
- Frequence telemetrie (par capteur) : [ ]
- Metriques a exposer (CPU, RAM, GPU, IP, batterie, etc.) : [ ]
- Politique de logs (format, rotation) : [ ]
3) Plan iteratif (prompts)
Prompt 1 :
"Genere l’architecture cible + conventions. Cree docs/architecture.md et docs/topics.md. Liste modules, flux, schemas de payload, et conventions de config."
- Fichiers :
docs/architecture.md,docs/topics.md - Checklist : schema topics, flux MQTT, decisions securite
- Sortie attendue : docs completes
Prompt 2 :
"Implemente le noyau MQTT + config + logs. Cree src/app.py, src/config.py, src/logging.py. Ajoute configs/example.env."
- Fichiers :
src/app.py,src/config.py,src/logging.py,configs/example.env - Checklist : connexion MQTT, LWT, logs JSON, chargement config
- Sortie attendue : demarrage local + doc config
Prompt 3 :
"Implemente le moteur de commandes avec allowlist. Cree src/commands/ et docs/commands.md."
- Fichiers :
src/commands/__init__.py,src/commands/linux.py,docs/commands.md - Checklist : validation payload, allowlist, dry-run option
- Sortie attendue : commandes securisees + doc
Prompt 4 :
"Ajoute availability/LWT + heartbeat + etats. Etends src/app.py et docs/topics.md."
- Fichiers :
src/app.py,docs/topics.md - Checklist : LWT, availability topic, cadence heartbeat
- Sortie attendue : etats en retained
Prompt 5 :
"Ajoute autodiscovery Home Assistant (si demande). Cree src/hass.py et docs/hass.md."
- Fichiers :
src/hass.py,docs/hass.md - Checklist : discovery payloads, device_info, tests de base
- Sortie attendue : entites visibles dans HA
Prompt 6 :
"Packaging Windows (service/tache). Cree docs/deploy_windows.md et scripts."
- Fichiers :
docs/deploy_windows.md,scripts/install_windows.ps1 - Checklist : lancement automatique, permissions, rollback
- Sortie attendue : procedure Windows claire
Prompt 7 :
"Packaging Linux (systemd). Cree docs/deploy_linux.md, scripts/install_linux.sh, packaging/mqtt_pilot.service."
- Fichiers :
docs/deploy_linux.md,scripts/install_linux.sh,packaging/mqtt_pilot.service - Checklist : user/service, restart policy, logs journald
- Sortie attendue : service systemd fonctionnel
Prompt 8 :
"Tests + harness MQTT + doc + exemples. Cree tests/, scripts/mqtt_harness.py, docs/examples.md."
- Fichiers :
tests/test_topics.py,scripts/mqtt_harness.py,docs/examples.md - Checklist : tests unitaires, exemples payload, validation topics
- Sortie attendue : test suite + exemples
4) Procedure de re-deploiement
- Strategie : nouveau dossier (V2) + migration progressive.
- Migration config : convertir valeurs hardcodees vers env/yaml.
- Compatibilite topics : versionner
pilot/v2et garder mapping legacy. - Rollback : conserver ancien service et bascule via systemd.