df871ddf6e5453e1d10e4b19997bae935dbbe048
This commit fixes several issues with the MQTT discovery payload to ensure
full compliance with Home Assistant's MQTT discovery specification and match
the working configuration from the v1 implementation.
Changes:
- Add payload_available ("online") and payload_not_available ("offline") fields
to EntityConfig struct for proper availability handling in HA
- Make device_info parameters (manufacturer, model, sw_version, suggested_area)
configurable via config.yaml instead of hardcoded values
- Remove incorrect device_class "power" from cpu_usage sensor (power is for Watts, not %)
- Update config.example.yaml with documented device_info fields
The discovery payload now correctly includes all required fields for HA to
properly register and display the device with its sensors and switches.
Tested on physical PC (asus) with MQTT broker at 10.0.0.3:1883.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
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
# 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 - What's implemented and what's missing
- Development Roadmap - Planned features and priorities
- Testing Results - End-to-end test validation
- Architecture - MQTT contract and module structure
- Deployment Guide - Systemd service setup
- Usage Guide - 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
# 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
Description
Languages
HTML
68.1%
D
21%
Rust
9.5%
Python
0.8%
JavaScript
0.3%
Other
0.3%