Gilles Soulier df871ddf6e Fix Home Assistant MQTT discovery compliance
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>
2025-12-30 07:39:24 +01:00
2024-09-02 12:38:05 +02:00
2024-09-02 12:38:05 +02:00
2024-09-02 12:37:13 +02:00
2024-09-02 12:38:05 +02:00
2024-09-02 12:38:05 +02:00
2024-04-14 07:45:02 +02:00

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

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
No description provided
Readme 607 MiB
Languages
HTML 68.1%
D 21%
Rust 9.5%
Python 0.8%
JavaScript 0.3%
Other 0.3%