Files
pilot/README.md
Gilles Soulier c5381b7112 Pilot v2: Core implementation + battery telemetry
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>
2025-12-30 06:23:00 +01:00

171 lines
3.2 KiB
Markdown

# Aorus
## Description
installe un service qui creer des entites pour home assistant:
- etat de la batterie
- button pour eteindre le pc
- reboot
- eteindre l'ecran
- cpu
- memory
- adresse ip
- cpu frequency
## Prérequis
installation de python3 et de python-env:
```
sudo apt install python3-venv
```
```
python3 -m venv monenv
```
activation de l'environnement:
```
source monenv/bin/activate
```
## Installation
```
git clone http://10.0.1.200/pilot/aorus.git
```
```
cd aorus
```
Création de l'environnement:
```
python3 -m venv monenv
```
Activation de l'environnement:
```
source monenv/bin/activate
```
Installation des paquets additionnels:
```
pip install -r requirements.txt
```
## Test du programme
```
python3 main.py
```
Sortie de l'environnement:
```
deactivate
```
## Installation en temps que service
authorisation de shutdown: ajouter a la fin du fichier
```
sudo visudo
```
```
gilles ALL=(ALL) NOPASSWD: /sbin/shutdown
gilles ALL=(ALL) NOPASSWD: /sbin/reboot
gilles ALL=(ALL) NOPASSWD: /usr/bin/tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
```
Installation du service en manuel:
```
sudo cp mqtt_pilot.service /etc/systemd/system/
```
```
sudo systemctl daemon-reload
```
```
sudo systemctl enable mqtt_pilot.service
```
```
sudo systemctl start mqtt_pilot.service
```
```
sudo systemctl status mqtt_pilot.service
```
lancer l'installation du service:
```
sudo ./install.sh
```
## PILOT v2 (Rust) ✅ FUNCTIONAL
**Status**: Core implementation complete and tested. Ready for feature development.
### Quick Start
```bash
# Start MQTT broker (Docker required)
./scripts/start_mqtt_broker.sh
# Run pilot v2
./scripts/run_pilot.sh
# In another terminal, monitor messages
./scripts/monitor_mqtt.sh
# Send a test command
docker exec pilot-mosquitto mosquitto_pub -t "pilot/pilot-device/cmd/screen/set" -m "OFF"
```
### Documentation
- **[Implementation Status](docs/implementation_status.md)** - What's implemented and what's missing
- **[Development Roadmap](docs/development_roadmap.md)** - Planned features and priorities
- **[Testing Results](docs/testing_results.md)** - End-to-end test validation
- **[Architecture](docs/architecture_v2.md)** - MQTT contract and module structure
- **[Deployment Guide](docs/deploiement.md)** - Systemd service setup
- **[Usage Guide](docs/utilisation.md)** - How to use pilot v2
### Configuration
Example config: `config/config.example.yaml`
Key settings:
- MQTT broker connection
- Telemetry interval (default: 10s)
- Commands allowlist
- Dry-run mode (safety during development)
- Platform backends (power and screen control)
### Development
```bash
# Run tests
cd pilot-v2 && cargo test
# Build release
cd pilot-v2 && cargo build --release
# Check code
cd pilot-v2 && cargo check
```
### Features (v2)
**Working**:
- ✅ MQTT connectivity with LWT
- ✅ YAML configuration
- ✅ Telemetry (CPU, memory, IP, battery*)
- ✅ Power commands (shutdown, reboot, sleep)
- ✅ Screen control (on/off)
- ✅ Home Assistant auto-discovery
- ✅ Command allowlist and cooldown
- ✅ Dry-run mode for safe testing
_* Battery telemetry: Linux only, auto-detected_
**Planned** (see roadmap):
- CPU temperature
- Battery support for Windows
- GPU telemetry
- Windows backend implementation
- TLS/SSL support
- Integration tests