96 lines
3.6 KiB
Markdown
96 lines
3.6 KiB
Markdown
# Modbus Tool für Bewässerungssystem-Knoten
|
|
|
|
Dieses Python-Skript bietet eine interaktive Kommandozeilen-Benutzeroberfläche (TUI) zur Steuerung und Überwachung eines Ventil-Knotens des Bewässerungssystems über Modbus RTU.
|
|
|
|
## Features
|
|
|
|
- **Interaktive Benutzeroberfläche:** Eine benutzerfreundliche, auf `curses` basierende Oberfläche, die eine einfache Bedienung ermöglicht.
|
|
- **Live-Statusanzeige:** Zeigt tabellarisch und in Echtzeit den Zustand des Ventils, die Bewegung, den Motorstrom, die konfigurierten Öffnungs-/Schließzeiten sowie Firmware-Version und Uptime des Geräts an.
|
|
- **Volle Kontrolle:** Ermöglicht das Senden von Befehlen zum Öffnen, Schließen und Stoppen des Ventils.
|
|
- **Konfiguration zur Laufzeit:** Die maximalen Öffnungs- und Schließzeiten können direkt in der Oberfläche geändert werden.
|
|
- **Anpassbares Design:** Die Benutzeroberfläche ist für eine klare Lesbarkeit mit einem durchgehenden blauen Hintergrund und abgesetzten Schaltflächen gestaltet.
|
|
|
|
## Installation
|
|
|
|
### Voraussetzungen
|
|
|
|
- Python 3.x
|
|
- `pip` (Python Paket-Installer)
|
|
|
|
### Installation der Abhängigkeiten
|
|
|
|
Die benötigten Python-Pakete sind in der Datei `requirements.txt` aufgeführt. Sie können auf zwei Arten installiert werden: global oder in einer virtuellen Umgebung (empfohlen).
|
|
|
|
#### Option 1: Installation mit virtueller Umgebung (empfohlen)
|
|
|
|
Eine virtuelle Umgebung isoliert die Projekt-Abhängigkeiten von Ihrem globalen Python-System, was Konflikte vermeidet.
|
|
|
|
1. **Virtuelle Umgebung erstellen:**
|
|
Führen Sie im Verzeichnis `software/tools/modbus_tool` den folgenden Befehl aus, um eine Umgebung im Ordner `.venv` zu erstellen:
|
|
```bash
|
|
python3 -m venv .venv
|
|
```
|
|
|
|
2. **Umgebung aktivieren:**
|
|
- **Linux / macOS:**
|
|
```bash
|
|
source .venv/bin/activate
|
|
```
|
|
Ihre Shell-Anzeige sollte sich ändern und `(.venv)` am Anfang zeigen.
|
|
- **Windows (cmd.exe):**
|
|
```bash
|
|
.venv\Scripts\activate.bat
|
|
```
|
|
- **Windows (PowerShell):**
|
|
```powershell
|
|
.venv\Scripts\Activate.ps1
|
|
```
|
|
|
|
3. **Abhängigkeiten installieren:**
|
|
Wenn die Umgebung aktiv ist, installieren Sie die Pakete:
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
4. **Umgebung deaktivieren:**
|
|
Wenn Sie fertig sind, können Sie die Umgebung mit folgendem Befehl wieder verlassen:
|
|
```bash
|
|
deactivate
|
|
```
|
|
|
|
#### Option 2: Globale Installation (nicht empfohlen)
|
|
|
|
Wenn Sie keine virtuelle Umgebung verwenden möchten, können Sie die Pakete direkt in Ihrem globalen Python-System installieren.
|
|
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
## Verwendung
|
|
|
|
Stellen Sie sicher, dass das Skript ausführbar ist:
|
|
```bash
|
|
chmod +x modbus_tool.py
|
|
```
|
|
|
|
Starten Sie das Tool, indem Sie den seriellen Port als Argument übergeben:
|
|
|
|
```bash
|
|
./modbus_tool.py /dev/ttyACM0
|
|
```
|
|
Ersetzen Sie `/dev/ttyACM0` durch den korrekten Port Ihres Geräts.
|
|
|
|
### Kommandozeilen-Argumente
|
|
|
|
- `port`: (Erforderlich) Der serielle Port (z.B. `/dev/ttyACM0` oder `COM3`).
|
|
- `--baud`: Die Baudrate (Standard: `19200`).
|
|
- `--slave-id`: Die Modbus Slave ID des Geräts (Standard: `1`).
|
|
- `--interval`: Das Abfrageintervall für den Status in Sekunden (Standard: `1.0`).
|
|
|
|
### Bedienung der Oberfläche
|
|
|
|
- **Navigation:** Verwenden Sie die **Pfeiltasten (↑/↓)**, um zwischen den Menüpunkten zu navigieren.
|
|
- **Auswählen:** Drücken Sie **Enter**, um den ausgewählten Befehl auszuführen.
|
|
- **Werte eingeben:** Bei Aktionen wie "Set Max Opening Time" werden Sie zur Eingabe eines Wertes aufgefordert. Geben Sie den Wert ein und bestätigen Sie mit **Enter**.
|
|
- **Beenden:** Wählen Sie den Menüpunkt **"Exit"** und drücken Sie **Enter**.
|