# 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 alle wichtigen Register des Slaves an: - Ventilstatus (Zustand, Bewegung, Motorstrom) - Zustand der digitalen Ein- und Ausgänge - "Clear-on-Read" Taster-Events - Systemkonfiguration (Öffnungs-/Schließzeiten, Watchdog-Timeout) - Gerätestatus (Firmware-Version, Uptime) - **Volle Kontrolle:** Ermöglicht das Senden von Befehlen zum Öffnen, Schließen und Stoppen des Ventils sowie zum Umschalten der digitalen Ausgänge. - **Konfiguration zur Laufzeit:** Die maximalen Öffnungs-/Schließzeiten und der Watchdog-Timeout können direkt in der Oberfläche geändert werden. - **Simulierter Firmware-Upload:** Implementiert den vollständigen, in der Dokumentation beschriebenen Firmware-Update-Prozess. Das Tool sendet eine `firmware.bin`-Datei in Chunks an den Slave und folgt dem CRC-Verifizierungs-Protokoll. ## 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 Watchdog" werden Sie zur Eingabe eines Wertes aufgefordert. Geben Sie den Wert ein und bestätigen Sie mit **Enter**. - **Firmware Update:** Diese Funktion startet den Upload der Datei `firmware.bin` aus dem aktuellen Verzeichnis. Während des Updates wird eine Fortschrittsanzeige dargestellt. - **Beenden:** Wählen Sie den Menüpunkt **"Exit"** und drücken Sie **Enter**.