# 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**.