{
  "workbookTitle": "Girls Day - Automatische Pflanzen-Bewässerung",
  "goalTitle": "Lernziel",
  "instructionTitle": "Aufgabe",
  "hintTitle": "Hinweis",
  "safetyTitle": "⚠️ Wichtige Sicherheitsregel",
  "section0Title": "0. Motivation",
  "section1Title": "1. Bauteile & Aufbau",
  "section1ChecklistIntro": "Checkliste für die Bauteile:",
  "section1Subtitle1": "Aufbau und Verkabelung",
  "section1WiringHint": "Überprüft, ob ihr alle Teile habt:",
  "section1RelayInfo": "Warum ein Relais? Das Arduino kann nur kleine Ströme direkt schalten, aber die Pumpe braucht mehr Strom. Der Arduino steuert das Relais und das Relais schaltet die Pumpe an/aus.",
  "componentArduino": "Arduino Board",
  "componentMoistureSensor": "Feuchtigkeitssensor",
  "componentPump": "Wasserpumpe",
  "componentRelay": "Relais-Modul",
  "componentPowerSupply": "Netzteil",
  "componentWires": "Drähte",
  "componentHoses": "Schläuche & Wasserbehälter",
  "componentConnectionCable": "Verbindungskabel",
  "componentUsbCable": "USB-Kabel",
  "wiringSlideshowTitle": "Verkabelungs-Slideshow",
  "wiringSlideSource": "Pflanzenworkshop",
  "wiringSlideDescription": "Verkabelungsschritt",
  "LLabel": "Verkabelung",
  "RLabel": "Was macht diese Verkabelung?",
  "wiringSlideText1": "In den nächsten Schritten benötigt ihr Jumperkabel. Nehmt euch jetzt schon ein paar Jumperkabel und legt sie beiseite.",
  "wiringSlideText2": "Nehmt euch jetzt einen Arduino Nano, ein Relais und den Feuchtigkeitssensor. Diese Bauteile verbinden wir gleich miteinander.",
  "wiringSlideTextL3": "Sensor + <--> Arduino D2  \nSensor - <--> Arduino GND  \nSensor S <--> Arduino A0",
  "wiringSlideTextR3": "Der Pin D2 versorgt den Sensor mit Strom, wenn wir Werte messen wollen. Er wird nicht permanent mit Strom versorgt, damit der Sensor länger hält.  \n  \nGND ist der Minuspol (Masse) der Schaltung. Ohne die Verbindung zu GND ist der Stromkreis nicht geschlossen und der Sensor kann keine stabilen Werte liefern.  \n  \nÜber A0 liest der Arduino den analogen Messwert ein. Aus diesem Wert entscheidet euer Programm später, ob die Pumpe laufen soll oder nicht.",
  "wiringSlideTextL4": " Relais DC+ <--> Arduino 5V  \nRelais DC- <--> Arduino GND  \nRelais IN <--> Arduino D8",
  "wiringSlideTextR4": "Das Relais wird mit 5V und GND vom Arduino versorgt. Über den Pin D8 steuert der Arduino das Relais an.  \n  \nDas Relais funktioniert als Schalter zwischen Arduino und Pumpe. So kann der Arduino die Pumpe sicher ein- und ausschalten, obwohl die Pumpe mehr Strom braucht, als der Arduino liefern kann.  \n  \nWichtig: Die Pumpe wird nicht direkt am Arduino angeschlossen, sondern über das Relais geschaltet.",
  "wiringSlideText5": "So sollte euer Aufbau bis hier aussehen. Vergleicht eure Verkabelung mit dem Bild und prüft kurz alle Verbindungen, bevor es weitergeht.",
  "wiringSlideText6": "Schneidet euch jetzt 3 Stücke Draht zurecht und legt sie bereit. Diese braucht ihr in den nächsten Schritten. Jumperkabel werden ab jetzt nicht mehr verwendet.",
  "wiringSlideText7": "Nehmt euch jetzt das Relais, die Pumpe und den Adapter. Den Adapter verbinden wir später mit dem Netzteil.  \nDas Relais ist dasselbe wie vorher, aber wir arbeiten jetzt mit den Anschlüssen auf der anderen Seite.",
  "wiringSlideTextL8": " Pumpe + <--> Relais NO (Normally Open)  \nPumpe - <--> Adapter -  \nAdapter + <--> Relais COM (Common)",
  "wiringSlideTextR8": "Hier verbindet ihr Relais, Pumpe und Adapter mit den vorbereiteten Drähten. Das Relais schaltet später den Strom zur Pumpe.  \n  \nDer Pluspol vom Adapter geht über COM und NO zur Pumpe, der Minuspol vom Adapter wird direkt mit der Pumpe verbunden.  \n  \nWichtig: Für diese Verbindung keine Jumperkabel verwenden, sondern die zugeschnittenen Drähte.",
  "wiringSlideText9": "Verbindet jetzt den Adapter mit dem Netzteil. Achtet dabei darauf, dass Plus und Minus richtig angeschlossen sind.",
  "wiringSlideText10": "Nehmt von der großen PVC-Schlauchrolle zwei Stücke mit jeweils 50 cm Länge. Diese beiden Schlauchstücke werden gleich für die Pumpe benötigt.",
  "wiringSlideText11": "Verbindet jetzt die beiden Schlauchstücke mit der Pumpe. Ein Schlauchstück kommt an den Eingang und das andere an den Ausgang der Pumpe.",
  "wiringSlideHelp": "Hinweis",
  "wiringSlideCurrentStatus": "Zwischenstand",
  "slideshowBack": "← Zurück",
  "slideshowNext": "Weiter →",
  "section2Title": "2. Sensor ausprobieren",
  "section2Subtitle1": "Aufgabenstellung",
  "section2Subtitle2": "Code zusammenstellen",
  "ReorderHintTitle": "Hilfestellung",
  "section2ReorderHintBody": "Der Sensor soll angeschaltet werden und dann wird kurz gewartet, bis Werte geliefert werden. Danach wird der Messwert ausgelesen und im Serial Monitor ausgegeben. Anschließend wird der Sensor wieder ausgeschaltet. Kannst du aus dieser Beschreibung erkennen, wie der Code aussehen muss?",
  "section3ReorderHintBody": "Wir müssen genau wie in der letzten Aufgabe den Sensor auslesen und den Messwert im Serial Monitor ausgeben. Jetzt wollen wir aber noch eine Fallunterscheidung hinzufügen, also schauen wir ob der Messwert kleiner als ein bestimmter Wert ist. Wenn ja, dann ist der Boden trocken und wir schalten die Pumpe ein. Wenn nein, dann ist der Boden feucht und wir schalten die Pumpe nicht ein. Wie muss der Code dafür aussehen?",
  "section4ReorderHintBody": "Wir wollen erstmal nur die Pumpe einschalten. für 2 Sekunden warten und danach wieder auschalten, um die Pumpe zu testen. Wie muss der Code dafür aussehen?",
  "section5ReorderHintBody": "Wir wollen jetzt den gesamten Ablauf umsetzen. Auch wenn das erstmal sehr viel Code ist, fügen wir hier eigentlich nur alles zusammen, was wir in den letzten Aufgaben gemacht haben. Gehe ruhig nochmal in die letzten Aufgaben und überlege, an welchen Stellen der Code zusammenpasst. In Aufgabe 3 haben wir zwischen zwei Fällen unterschieden. In welchem der beiden Fälle wollen wir die Pumpe ein- und ausschalten und in welchem Fall wollen wir nichts tun?",
  "section2Subtitle3": "Code hochladen",
  "section2Subtitle4": "Messungen durchführen",
  "section2Subtitle5": "Selbstkontrolle",
  "section2GoalText": "Ihr versteht, wie man die Werte eines analogen Sensors mit Arduino ausliest und im Serial Monitor ausgibt.",
  "section2InstructionText": "Setzt die Code-Bausteine in die richtige Reihenfolge, damit der Sensor ausgelesen und der Messwert ausgegeben wird.\n\nDanach ladet ihr den Code auf den Arduino und testet ihn mit trockener und nasser Erde.",
  "section2HintText": "Mit `analogRead(SENSOR_PIN)` liest man analoge Werte. Um den Sensor zu schonen, wird er kurz über `SENSOR_POWER_PIN` ein- und wieder ausgeschaltet. Mit `Serial.print()` und `Serial.println()` gebt ihr den Wert aus.\n\n**Tipp:** Fahrt mit der Maus über die Code-Bausteine, um Erklärungen zu den einzelnen Zeilen zu sehen.",
  "sensorReadCodeEditorTodo": "Vervollständigt den Code zum Sensor auslesen:",
  "section2DownloadSteps": "#### Schritt-für-Schritt: Sensor-Code auf den Arduino laden\n\n1. Klickt auf **Sensor-Code herunterladen (.ino)** und speichert die Datei `sensor-auslesen.ino`.\n2. Öffnet die Datei in der Arduino IDE.\n3. Verbindet den Arduino Nano per USB mit dem Computer.\n4. Wählt **Werkzeuge > Board > Arduino Nano** und den richtigen Port.\n5. Klickt auf **Hochladen** und wartet bis **Hochladen abgeschlossen** angezeigt wird.\n6. Öffnet den **Seriellen Monitor** (Werkzeuge > Serieller Monitor, 9600 Baud) – ihr solltet fortlaufend Zahlenwerte sehen.",
  "section2DownloadButton": "Sensor-Code herunterladen (.ino)",
  "section2MeasurementTitle": "Messungen",
  "section2MeasurementText": "Führt jetzt die beiden Messungen durch:\n\n1. Sensor in **trockene Erde** stecken → Wert im Serial Monitor ablesen und notieren.\n2. Sensor in nasse Erde stecken (oder feuchten Finger daraufhalten) → Wert ablesen und notieren.\n3. Vergleicht: Welcher Wert ist größer? Warum?",
  "sensorExploreDone1": "In trockener Erde habe ich einen niedrigen Wert gesehen.",
  "sensorExploreDone2": "In nasser Erde habe ich einen hohen Wert gesehen.",
  "sensorExploreDone3": "Ich kann das Programm in eigenen Worten erklären.",
  "section1SafetyText": "Niemals Strom ohne Aufseher einschalten! Die Stromversorgung darf nur zusammen mit einer betreuenden Person aktiviert werden.",
  "pumpCodeEditorTodo": "Schreibt den Code für die Pumpensteuerung:",
  "moistureCodeEditorTodo": "Vervollständigt den Code für die Feuchtigkeitsmessung:",
  "combinedCodeEditorTodo": "Vervollständigt das Gesamtsystem:",
  "moistureDone1": "Ich kann erklären, wofür SENSOR_POWER_PIN genutzt wird.",
  "moistureDone2": "Ich kann `analogRead(SENSOR_PIN)` in eine Variable einlesen.",
  "moistureDone3": "Ich kann die Grenzwert-Bedingung für trockenen Boden erklären.",
  "section3Title": "3. Fallunterscheidung zum Gießen",
  "section3Subtitle1": "Aufgabenstellung",
  "section3Subtitle2": "Code zusammenstellen",
  "section3Subtitle3": "Selbstkontrolle",
  "section3Subtitle4": "Code hochladen",
  "section3DownloadSteps": "#### Schritt-für-Schritt: Feuchtigkeits-Code auf den Arduino laden\n\n1. Klickt auf **Feuchtigkeits-Code herunterladen (.ino)** und speichert die Datei `feuchtigkeit-messen.ino`.\n2. Öffnet die Datei in der Arduino IDE.\n3. Verbindet den Arduino Nano per USB mit dem Computer.\n4. Wählt unter **Werkzeuge > Board** den Eintrag **Arduino Nano**.\n5. Wählt den richtigen Port unter **Werkzeuge > Port**.\n6. Klickt auf **Hochladen** und wartet bis **Hochladen abgeschlossen** angezeigt wird.\n7. Öffnet den **Seriellen Monitor** und testet den Sensor mit trockener und nasser Erde.",
  "section3DownloadButton": "Feuchtigkeits-Code herunterladen (.ino)",
  "section3GoalText": "Ihr könnt anhand eines Grenzwerts entscheiden, ob der Boden trocken ist und gegossen werden muss.",
  "section3InstructionText": "Erweitert euren Sensor-Code um eine **Fallunterscheidung** (if-else): Das Programm soll anhand des Messwerts entscheiden, ob der Boden trocken oder feucht ist, und das Ergebnis auf dem Serial Monitor ausgeben.\n\nNutzt eure Messwerte aus der vorherigen Sektion, um einen sinnvollen Grenzwert zu wählen.",
  "section3HintText": "Prüft mit `if (messwert < feuchtigkeitsGrenze)`, ob der Boden trocken ist. Setzt einen Grenzwert, z. B. `int feuchtigkeitsGrenze = 400;`.\n\n**Tipp:** Fahrt mit der Maus über die Code-Bausteine, um Erklärungen zu den einzelnen Zeilen zu sehen.",
  "section4Title": "4. Pumpe steuern",
  "section4Subtitle1": "Aufgabenstellung",
  "section4Subtitle2": "Code zusammenstellen",
  "section4Subtitle3": "Selbstkontrolle",
  "section4GoalText": "Ihr könnt digitale Ausgänge mit HIGH/LOW schalten und das Relais so steuern, dass die Pumpe sicher ein- und ausgeschaltet wird.",
  "section4InstructionText": "Schreibt ein Programm, das die Pumpe für genau 2 Sekunden einschaltet.\n\nDanach soll die Pumpe wieder ausgehen.",
  "section4HintText": "In dieser Schaltung wird das Relais mit `digitalWrite(PUMP_PIN, HIGH)` eingeschaltet und mit `LOW` ausgeschaltet.\n\n**Tipp:** Fahrt mit der Maus über die Code-Bausteine, um Erklärungen zu den einzelnen Zeilen zu sehen.",
  "pumpDone1": "Ich kann erklären, warum das Relais mit HIGH eingeschaltet und mit LOW ausgeschaltet wird.",
  "pumpDone2": "Ich kann den 2-Sekunden-Gießzyklus aufbauen.",
  "pumpDone3": "Ich habe die Reihenfolge EIN -> delay -> AUS getestet.",
  "section5Title": "5. Messwerte & Pumpe",
  "section5Subtitle1": "Aufgabenstellung",
  "section5Subtitle2": "Code zusammenstellen",
  "section5Subtitle3": "Selbstkontrolle",
  "section5Subtitle4": "Code hochladen",
  "section5GoalText": "Ihr könnt alle Schritte zu einem vollständigen Bewässerungsprogramm verbinden: messen, entscheiden und gezielt gießen.",
  "section5InstructionText": "Jetzt setzt ihr den kompletten Ablauf um. Das Programm soll:\n\n1. Den Sensor kurz mit `SENSOR_POWER_PIN` einschalten und den Messwert per `analogRead(SENSOR_PIN)` auslesen\n2. Den Messwert auf dem Serial Monitor ausgeben (`Analoger Wert: ...`)\n3. Prüfen, ob `messwert < feuchtigkeitsGrenze`\n4. Wenn ja: Pumpe einschalten, 2 Sekunden gießen, wieder ausschalten\n5. Danach 10 Sekunden warten\n\n**Wichtig:** Das gesamte Programm läuft in einer Endlosschleife.",
  "section5HintText": "Denkt an eure Ergebnisse aus den vorherigen Aufgaben. Nun müsst ihr alles in der richtigen Reihenfolge zusammenfügen, überlegt euch dazu wann der Sensor gelesen werden muss und in welchen Fällen die Pumpe aktiviert bzw. deaktiviert werden soll.\n\n**Tipp:** Fahrt mit der Maus über die Code-Bausteine, um Erklärungen zu den einzelnen Zeilen zu sehen.",
  "combinedDone1": "Ich kann Sensorlesen und Pumpensteuerung in einem Ablauf kombinieren.",
  "combinedDone2": "Ich kann erklären, wann die Pumpe aus bleiben muss.",
  "combinedDone3": "Ich kann erklären, warum delay(10000) zwischen den Zyklen steht.",
  "section6Title": "6. Test & Fertig",
  "section6DownloadTitle": "Code hochladen",
  "section6SafetyWarningText": "Niemals Strom ohne Aufseher einschalten! Bevor ihr hochladet, testet oder die Pumpe startet, muss eine Aufsichtsperson dabei sein.",
  "section6DownloadSteps": "#### Schritt-für-Schritt: .ino auf den Arduino Nano laden\n\n1. Klickt auf den Button **Arduino-Code herunterladen (.ino)** und speichert die Datei `plantworkshop.ino`.\n2. Öffnet die Datei in der Arduino IDE (Doppelklick oder über **Datei > Öffnen**).\n3. Verbindet den Arduino Nano per USB mit dem Computer.\n4. Wählt in der Arduino IDE unter **Werkzeuge > Board** den Eintrag **Arduino Nano** aus.\n5. Wählt unter **Werkzeuge > Port** den passenden COM/USB-Port eures Nano aus.\n6. Klickt auf **Hochladen** (Pfeil-Symbol) und wartet bis **Hochladen abgeschlossen** angezeigt wird.\n7. Öffnet danach den Serial Monitor (**Werkzeuge > Serieller Monitor**), um die Messwerte zu sehen und den Aufbau zu testen.",
  "section6DownloadButton": "Arduino-Code herunterladen (.ino)",
  "section6TestChecklistTitle": "Test-Checkliste",
  "section6TestChecklistIntro": "Hakt ab, was ihr überprüft habt:",
  "testChecklistSensorDry": "Sensor in trockene Erde halten - zeigt er niedrige Werte?",
  "testChecklistSensorWet": "Feuchten Finger auf Sensor halten - zeigt er hohe Werte?",
  "testChecklistPumpDry": "Pumpt die Pumpe Wasser, wenn die Erde trocken ist?",
  "testChecklistPumpStopsShortly": "Hört die Pumpe nach kurzer Zeit wieder auf?",
  "testChecklistMoistNoPump": "Passiert nichts, wenn die Erde feucht genug ist?",
  "section6TroubleshootingTitle": "Häufige Fehler",
  "section6TroubleshootingText": "**Problem: Pumpe läuft nicht**\n- Sind Relais, Netzteil und Pumpe richtig verbunden?\n- Ist das Netzteil eingesteckt?\n- Klickt das Relais, wenn es schalten soll?\n\n**Problem: Werte ändern sich nicht**\n- Sind die Kabel am Sensor richtig? (Analoge und Digitale Pins nicht vertauschen)\n\n**Problem: Pumpe läuft ständig / gar nicht**\n- Ist der Grenzwert richtig gesetzt?\n- Prüft der Code wirklich die Bedingung?",
  "section6BonusTitle": "Bonus-Aufgaben (für Schnelle)",
  "section6BonusText": "Wenn ihr fertig seid und noch Zeit habt:\n- Lasst eine LED blinken, während gepumpt wird\n- Verwendet mehrere LEDs in verschiedenen Farben für verschiedene Feuchtigkeitsstufen\n- Falls ihr eigene Ideen habt, probiert sie gerne aus!",
  "section6CongratulationsTitle": "Herzlichen Glückwunsch!",
  "section6Congratulations": "🌟 Ihr habt eine automatische Bewässerungsanlage gebaut und programmiert!",
  "section0IntroMarkdown": "## 🌱 Willkommen zum Arduino Pflanzenworkshop!\nKennt ihr das? Nach dem Urlaub sind die Zimmerpflanzen vertrocknet, oder sie wurden aus Fürsorge so oft gegossen, dass die Wurzeln im Wasser stehen. Beides passiert, weil Gießen meist nach Zeitplan oder Gefühl läuft, nicht danach, was die Pflanze tatsächlich gerade braucht.\n\nHeute baut ihr ein System, das dieses Problem löst. Es misst selbstständig die Feuchtigkeit im Boden und entscheidet, wann Wasser wirklich nötig ist. Das Prinzip dahinter, also Zustand messen, Entscheidung treffen, Aktion auslösen, steckt hinter den meisten Automatisierungen um euch herum, ob jetzt bei der Heizungssteuerung oder einem Staubsaugroboter. Mit Arduino, einem kleinen Mikrocontroller, lässt sich diese Idee leicht umsetzen.\n\n**Damit euer System das kann, müsst ihr drei Dinge zum Laufen bringen:**\n- Einen Sensor auslesen, der die Bodenfeuchtigkeit misst\n- Die Pumpe gezielt an und ausschalten\n- Beides so verbinden, dass die Messung automatisch die Aktion auslöst\n\n> **Hinweis:** Keine Sorge, wenn ihr noch nie programmiert habt, wir fangen ganz von vorne an! Ihr habt die Wahl zwischen einem Anfängermodus mit vorgefertigten Codebausteinen mit Erklärungen und einem Fortgeschrittenenmodus, in dem ihr Codelückentext selbst ausfüllen könnt.", 
  "section0SafetyMarkdown": "### Sicherheitshinweise\n- **Wasser und Strom:** Achtet darauf, dass keine elektrischen Teile (außer dem Sensor) mit Wasser in Berührung kommen.\n- **Stromversorgung:** Verwendet nur die vorgesehenen Netzteile und Spannungen.\n- **Bei Problemen oder Unsicherheiten:** Fragt ruhig immer nach.",
  "section1PowerWarningMarkdown": "> **⚠️ WICHTIGE SICHERHEITSREGEL:** Niemals Strom ohne Aufseher einschalten! Die Stromversorgung darf nur zusammen mit einer betreuenden Person aktiviert werden.",

  "section4WiringPhaseBTitle": "Pumpe & Schläuche anschließen",
  "section4WiringPhaseBHint": "Bevor ihr weiterprogrammiert, schließt jetzt die Pumpe und die Schläuche an. Folgt den Schritten in der Slideshow.",

  "section4DownloadTitle": "Code hochladen",
  "section4DownloadSteps": "#### Schritt-für-Schritt: Pumpen-Test auf den Arduino laden\n\n1. Klickt auf **Pumpen-Test-Code herunterladen (.ino)** und speichert die Datei `pumpe-test.ino`.\n2. Öffnet die Datei in der Arduino IDE.\n3. Verbindet den Arduino Nano per USB mit dem Computer.\n4. Wählt unter **Werkzeuge > Board** den Eintrag **Arduino Nano**.\n5. Wählt den richtigen Port unter **Werkzeuge > Port**.\n6. Klickt auf **Hochladen** und wartet bis **Hochladen abgeschlossen** angezeigt wird.\n7. Schaut auf eure Pumpe – sie sollte jetzt 2 Sekunden laufen und dann stoppen.",
  "section4DownloadButton": "Pumpen-Test-Code herunterladen (.ino)",

  "reorderHintPumpHigh": "Setze PUMP_PIN auf HIGH (Pumpe an).",
  "reorderHintPumpLow": "Setze PUMP_PIN auf LOW (Pumpe aus).",
  "reorderHintDelay2000": "Warte 2000 ms.",
  "reorderHintDelay10": "Warte 10 ms.",
  "reorderHintDelay10000": "Warte 10000 ms.",
  "reorderHintSensorPowerHigh": "Setze SENSOR_POWER_PIN auf HIGH (Sensor an).",
  "reorderHintSensorPowerLow": "Setze SENSOR_POWER_PIN auf LOW (Sensor aus).",
  "reorderHintAnalogRead": "Lies den analogen Wert von SENSOR_PIN und speichere ihn als messwert.",
  "reorderHintMesswertCheck": "Prüfe: Ist messwert kleiner als feuchtigkeitsGrenze?",
  "reorderHintSerialPrint": "Gib Text im Serial Monitor ohne Zeilenumbruch aus.",
  "reorderHintSerialPrintln": "Gib Text oder Wert im Serial Monitor mit Zeilenumbruch aus.",
  "reorderHintFeuchtigkeitsGrenze": "Erstelle eine Ganzzahlvariable für die Feuchtigkeitsgrenze.",
  "reorderHintIfBlock": "Starte einen if-Block.",
  "reorderHintElseBlock": "Beende den if-Block und starte den else-Zweig.",
  "reorderHintCloseBrace": "Schließe den Block.",

  "advHintSensorPower": "Sensor über SENSOR_POWER_PIN ein- und ausschalten",
  "advHintDelay": "delay nach dem Einschalten fehlt",
  "advHintAnalogRead": "analogRead() fehlt",
  "advHintSerial": "Serial-Ausgabe fehlt",
  "advHintThreshold": "feuchtigkeitsGrenze als Variable setzen",
  "advHintIf": "if-else Bedingung fehlt",
  "advHintCondition": "if-Bedingung mit messwert < feuchtigkeitsGrenze fehlt",
  "advHintPumpOn": "Pumpe einschalten (HIGH)",
  "advHintPumpOff": "Pumpe ausschalten (LOW)",
  "advHintPumpDelay": "2 Sekunden warten (delay(2000))",
  "advHintPumpControl": "Pumpensteuerung (HIGH/LOW) unvollständig",
  "advHintLoopDelay": "Wartezeit delay(10000) fehlt",
  "advSuccessSensorRead": "✅ Sehr gut! Sensor ein-/ausschalten, messen und Serial-Ausgabe sind vorhanden.",
  "advSuccessMoisture": "✅ Sehr gut! Du hast alle wichtigen Teile: Grenzwert, Sensor lesen, if-else und Serial-Ausgabe.",
  "advSuccessPump": "✅ Perfekt! Die Pumpe wird richtig gesteuert.",
  "advSuccessCombined": "🎉 Hervorragend! Das System ist komplett: Grenzwert, Sensor, Bedingung, Pumpe und Wartezeit."
}