add per-hardware plugin operation guides in docs
This commit is contained in:
46
docs/hardware-station-shell-guide.md
Normal file
46
docs/hardware-station-shell-guide.md
Normal file
@@ -0,0 +1,46 @@
|
||||
# Station Hardware via Shell Scripts
|
||||
|
||||
Diese Anleitung beschreibt die stationseitige Hardware-Orchestrierung ueber `rms.station.shell`.
|
||||
|
||||
Das Plugin selbst steuert keine einzelne Komponente direkt, sondern ruft Aktivierungs-/Deaktivierungs-Skripte auf, die typischerweise Relais, Netzteile, TRX und Nebenkomponenten schalten.
|
||||
|
||||
## Quick Start
|
||||
|
||||
```bash
|
||||
grep -E '^(SCRIPT_ROOT|SCRIPT_ACTIVATE|SCRIPT_DEACTIVATE|STATION_SCRIPT_TIMEOUT_MS)=' /etc/remotestation-arcg/remotestation-arcg.env
|
||||
sudo systemctl restart remotestation-arcg
|
||||
```
|
||||
|
||||
## 1) Relevante ENV-Keys
|
||||
|
||||
```env
|
||||
SCRIPT_ROOT=/opt/remotestation
|
||||
SCRIPT_ACTIVATE=/opt/remotestation/bin/activate.sh
|
||||
SCRIPT_DEACTIVATE=/opt/remotestation/bin/deactivate.sh
|
||||
STATION_SCRIPT_TIMEOUT_MS=180000
|
||||
```
|
||||
|
||||
## 2) Verhalten
|
||||
|
||||
- `station.activate` ruft `SCRIPT_ACTIVATE` auf.
|
||||
- `station.deactivate` ruft `SCRIPT_DEACTIVATE` auf.
|
||||
- Falls Standardskript fehlt, versucht das Plugin Runtime-Fallbacks unter `SCRIPT_ROOT/src/...`.
|
||||
- Wenn kein Skript konfiguriert ist, wird Aktion als `skipped` behandelt.
|
||||
|
||||
## 3) Einstellen
|
||||
|
||||
1. Skripte separat shellseitig testen.
|
||||
2. `SCRIPT_ROOT` so setzen, dass Fallback-Pfade konsistent sind.
|
||||
3. Timeouts an reale Schaltzeiten anpassen.
|
||||
4. In Skripten idempotent arbeiten (mehrfaches Ausfuehren darf nicht zerstoeren).
|
||||
|
||||
## 4) Fehlerbilder
|
||||
|
||||
- `${KEY} failed`: Skriptfehler (Exit != 0 / stderr).
|
||||
- Standardskript fehlt: Plugin meldet Skip/Fallback.
|
||||
- Timeout: `STATION_SCRIPT_TIMEOUT_MS` zu niedrig oder Skript haengt.
|
||||
|
||||
## 5) Sicherheitsregeln
|
||||
|
||||
- Skripte muessen TX/PTT-Fail-safe beachten.
|
||||
- Keine produktiven Zugangsdaten in Skripten oder Repo ablegen.
|
||||
Reference in New Issue
Block a user