Gilles Soulier 1640754df8 Add $hostname variable substitution in config
This commit adds support for automatic hostname substitution in configuration files.
Users can now use $hostname in device.name, device.identifiers, and mqtt.client_id
to automatically use the system's hostname.

Changes:
- Add hostname crate dependency (v0.4)
- Implement expand_variables() to replace $hostname with actual hostname
- Add get_hostname() helper function
- Update config.example.yaml to demonstrate $hostname usage
- Add test for hostname substitution
- Update config.yaml to use $hostname by default
- Add test_command.sh script for testing MQTT commands

This makes deployment easier across multiple machines without manual config changes.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-30 06:52:41 +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%