đŸ‡©đŸ‡Ș Deutsch | [🇬🇧 English](planning.en.md) # 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. |