irrigation_system/docs/planning.de.md

4.0 KiB

🇩🇪 Deutsch | 🇬🇧 English

Projektplan: Modulares Bewässerungssystem

Abgehakt Aufgabe Datum Bemerkungen
Phase 0: Planung & Definition
Konzept erstellen und finalisieren 30.06.2025 Architektur, Komponenten und grundlegende Architektur sind festgelegt.
MODBUS Register Map definieren 30.06.2025 Die "API" der Slaves ist definiert und bildet die Grundlage für die Software-Entwicklung.
Phase 1: Slave-Node Prototyp (STM32 Eval-Board) Ziel: Ein einzelner Slave wird auf dem Eval-Board zum Leben erweckt.
1.1 Entwicklungsumgebung für STM32/Zephyr einrichten Toolchain, VS Code, Zephyr-SDK, MCUBoot etc. installieren und ein "Hello World" zum Laufen bringen.
1.2 Basis-Firmware für Slave-Node erstellen Hardware-Abstraktion (GPIOs, ADC, UART für RS485) implementieren.
1.3 MODBUS-RTU Stack auf dem Slave implementieren Basierend auf der definierten Register-Map. Zuerst nur lesende Funktionen (Status, Version).
1.4 Kernlogik implementieren (z.B. Ventilsteuerung) Umsetzung der VENTIL_ZUSTAND_BEWEGUNG Logik, Strommessung für Endlagen etc.
Phase 2: Verifikation der Slave-Firmware Ziel: Nachweisen, dass der Slave sich exakt an die MODBUS-Spezifikation hält.
2.1 Slave-Node mit PC via USB-MODBUS-Adapter testen Kritischer Meilenstein. Mit Tools wie "QModMaster" oder einem Python-Skript die Register lesen & schreiben. Die Slave-Firmware wird so unabhängig vom Gateway validiert.
2.2 Firmware-Update Mechanismus testen Den kompletten Update-Prozess (Chunking, CRC-Check) mit einem Skript vom PC aus testen. Der Slave schreibt die Firmware dabei vorerst nur in einen ungenutzten RAM-Bereich.
Phase 3: Hardware-Design und Prototypenbau Ziel: Von der Entwicklung auf dem Eval-Board zum massgeschneiderten PCB.
3.1 Schaltplan und PCB-Layout für Slave-Node entwerfen Basierend auf den Erfahrungen mit dem Eval-Board.
3.2 Prototypen-Platinen bestellen und bestücken Z.B. bei JLCPCB. THT-Komponenten (Stecker etc.) selbst löten.
3.3 Hardware-Inbetriebnahme des ersten Prototyps Spannungen prüfen, Firmware aufspielen und die Tests aus Phase 2 wiederholen, um die Hardware zu validieren.
3.4 Flash-Schreibroutine für Firmware-Update implementieren Den in Schritt 2.2 im RAM validierten Prozess nun auf den echten Flash-Speicher anwenden.
Phase 4: Gateway Entwicklung (ESP32 Eval-Board) Ziel: Die Brücke von der RS485-Welt ins Heimnetzwerk bauen.
4.1 Gateway-Firmware (ESPHome) erstellen Einfaches MODBUS TCP zu RTU Gateway auf dem ESP32C6 Eval-Board aufsetzen.
4.2 Gateway mit Slave-Node Prototyp verbinden und testen Test der Kette: PC (als MODBUS TCP Client) -> WLAN -> Gateway -> RS485 -> Slave.
Phase 5: System-Integration in Home Assistant Ziel: Das System "smart" machen.
5.1 MODBUS-Integration in Home Assistant konfigurieren Anlegen der Sensoren und Entitäten für den Slave-Node in der configuration.yaml oder über die UI.
5.2 Dashboards und Automationen in HA erstellen Visualisierung der Zustände (Ventil, Pumpe etc.) und Erstellen der eigentlichen Bewässerungs-Logik.
5.3 Python-Skript für Firmware-Update in HA entwickeln Implementierung des Chunk-basierten Uploads als Skript, das aus HA heraus aufgerufen werden kann.
Phase 6: Aufbau und Inbetriebnahme Ziel: Das fertige System installieren.
6.1 Alle benötigten Slave-Nodes aufbauen und testen Jeden Slave einzeln mit dem PC via USB-Adapter testen und die MODBUS-Adresse konfigurieren.
6.2 System final installieren und verkabeln Einbau der Komponenten in den Schuppen, Verkabelung des RS485-Busses.
6.3 Gesamtsystemtest und Kalibrierung Füllstandsensor kalibrieren, Laufzeiten der Ventile prüfen, Fail-Safe-Verhalten testen.