Hochbeetplaner: Wie meine App dein Hochbeet plant
Nach dem Bau eines Hochbeets bleiben viele Fragen offen: Was kommt wohin, welche Pflanzen vertragen sich, und wann muss ich gießen, säen oder ernten?
Dafür habe ich den Hochbeetplaner entwickelt, eine Web-App, die Beet, Mischkultur, Fruchtfolge und Kalender an einem Ort zusammenführt. Du kannst sie direkt ausprobieren: 0815hochbeet.vercel.app. Der Quellcode liegt offen auf GitHub.
Dieser Artikel beschreibt die Funktionen und erklärt an einigen Stellen, wie die App rechnet.
Warum ein eigener Planer?
Wer ein Hochbeet bepflanzt, muss drei Dinge gleichzeitig im Blick behalten: den Platz, die Pflanzennachbarn und den Kalender. Die Antworten stehen meist verstreut in Zetteln, Büchern und Notizen-Apps.
Ich wollte eine App, die das zusammenführt und sich auf das Nötigste beschränkt.
Das Beet in echten Zentimetern
Jedes Beet hat Breite, Tiefe und Höhe in Zentimetern. Zum Start gibt es vier gängige Formate: Klassisch (120 × 80 cm), Balkon (100 × 40 cm), Groß (200 × 75 cm) und Quadrat (100 × 100 cm).
Jede Pflanze wird als Kreis gezeichnet. Der Durchmesser entspricht ihrem Pflanzabstand, bei Karotten sind das 5 cm, bei Tomaten 60 cm. Da nichts größer gezeichnet wird, als es ist, siehst du sofort, ob noch etwas dazwischenpasst. Gesetzt wird in 5-cm-Schritten, und zwei Kreise dürfen sich nicht überlappen. Passt eine Pflanze nicht, nennt die App den Grund. Tippst du auf eine Pflanze derselben Sorte, die schon dort steht, erhöht sich die Stückzahl.
Eng gesäte Kulturen lassen sich schwer darstellen. Karotten mit 5 cm Abstand würden als Buchstabenbrei enden. Die App zeichnet sie deshalb als Punktfeld und zeigt den Anfangsbuchstaben erst ab 24 Pixel Durchmesser, den Namen ab 54 Pixel. Die Legende unter dem Beet sagt, was dort wächst. Die Tippfläche ist mindestens 30 Pixel groß, damit du auch in dichten Reihen triffst. Mit zwei Fingern zoomst du bis zum Fünffachen.
Änderst du später die Beetmaße, schiebt die App die Pflanzen in den neuen Rahmen zurück. Der Plan bleibt erhalten.
Mischkultur: 21 Pflanzen, 210 mögliche Paare
Hinter der Mischkultur-Prüfung steckt eine Matrix. Für die 21 Pflanzen der Bibliothek gibt es 210 mögliche Paare. 66 davon sind als gute und 21 als schlechte Nachbarn hinterlegt, der Rest ist neutral. Die Matrix wird in beide Richtungen gelesen, ich muss also kein Paar doppelt pflegen.
Sobald Pflanzen nebeneinander stehen, bekommt jede einen Status: gut, schlecht oder neutral. Ein einziger schlechter Nachbar reicht für „schlecht“. Als Nachbarn zählen Pflanzen, die sich fast berühren.
Für die bekannten Klassiker gibt es eine ausformulierte Begründung, bei anderen Paaren zeigt die App nur das Ergebnis. Einige Beispiele:
- Kartoffel und Tomate gehören zur selben Familie (Nachtschattengewächse), die Krautfäule springt von einer auf die andere über.
- Zwiebel und Bohne vertragen sich schlecht, weil Schwefelverbindungen der Zwiebel das Bohnenwachstum hemmen.
- Reifer Dill hemmt Keimung und Wachstum von Möhren.
- Die Bohne bindet Luftstickstoff, von dem die Kartoffel profitiert.
- Basilikum vertreibt Blattläuse und weiße Fliege von der Tomate.
- Spinat hält den Boden feucht, die Erdbeere spendet ihm Schatten.
Findet die Analyse Konflikte, kannst du sie mit einem Tipp auflösen lassen. Die App tauscht die betroffene Pflanze dann gegen die am besten passende Alternative.
Der Plan-Generator
Den Plan kann auch ein Generator bauen. Du wählst Pflanzen, Saison und ein Ziel, die App legt Reihen quer zum Beet an. Zur Wahl stehen fünf Ziele: Pflegeleicht, Viel Ertrag, Vielfalt, Mit Kindern und Küchenkräuter.
Eine Reihe braucht so viel Tiefe, wie die Pflanze Abstand braucht. Ein Salat belegt 25 cm, eine Karotte 5 cm. Der Generator muss also entscheiden, welche deiner Wunschpflanzen in 80 cm Tiefe passen. Mathematisch ist das ein Rucksackproblem.
Meine erste Version ging die Pflanzen der Reihe nach durch und nahm mit, was noch passte. Dabei trat ein Fehler auf: Fügte man eine Pflanze hinzu, flog eine andere raus, die eigentlich gepasst hätte. Nutzer erleben das so, als ignoriere die App ihre Auswahl.
Heute löst der Generator ein echtes 0/1-Rucksackproblem per dynamischer Programmierung über die Zentimeter der Tiefe. Er sucht die Kombination mit den meisten verschiedenen Sorten, die ins Beet passt. Bei Gleichstand entscheidet ein Punktwert aus Mischkultur-Verträglichkeit und gewähltem Ziel.
Danach ordnet er die Reihen:
- Bleibt Tiefe übrig, kommt eine zweite Reihe der Pflanze dazu, die bisher am seltensten vorkommt.
- Hohe Pflanzen wandern nach hinten, damit sie nichts beschatten.
- Stehen zwei Reihen mit schlechten Nachbarn nebeneinander, tauscht der Generator eine Reihe gegen eine verträgliche weiter hinten.
- Jede Reihe wird gleichmäßig über die Breite verteilt. Gezeichnet werden höchstens 24 Kreise pro Reihe, bei mehr Pflanzen steht ein Kreis für mehrere.
Als Ergebnis bekommst du die Zahl der Pflanzen, einen geschätzten Ertrag in Kilogramm und eine grobe Schätzung des Pflegeaufwands. Ist ein Beet zu niedrig für die Wurzeln einer Pflanze, erscheint eine Warnung.
Ein Rechenbeispiel
Ein Beet mit 120 × 80 cm, Saison Herbst, Ziel Vielfalt. Ich wünsche mir Salat, Radieschen, Erbse, Kohlrabi, Spinat, Rucola und Karotte. Alle sieben zusammen brauchen 98 cm Tiefe, es passen also nur sechs.
Der Generator wählt Erbse, Karotte, Salat, Spinat, Rucola und Radieschen. Die Karotte bekommt wegen der übrigen Tiefe eine zweite Reihe. Zusammen belegen die Reihen 78 von 80 cm, das sind 99 Pflanzen. Kohlrabi steht auf der Liste der nicht untergebrachten Pflanzen, mit dem Vermerk „kein Platz“.
Jede Pflanze, die nicht ins Beet kommt, nennt die App mit Grund. Es gibt drei Gründe: falsche Saison, zu tief für das Beet (eine Zucchini braucht 90 cm Abstand und passt in kein 80-cm-Beet) und kein Platz mehr.
Die Logik ist durch zehn automatische Tests abgesichert. Einer davon prüft, dass eine zusätzliche Pflanze keine andere verdrängt.
Aufgaben aus der Bepflanzung
Die Aufgabenliste entsteht aus dem, was im Beet steht, dem aktuellen Monat und den Pflanzendaten. Jede Aufgabe hat eine feste ID. Hakst du etwas ab, bleibt es auch nach dem Neuladen erledigt.
Gießen. Das durstigste Gewächs bestimmt den Rhythmus des Beets:
| Saison | Durstig | Mittel | Genügsam |
|---|---|---|---|
| Frühling (März bis Mai) | Mo, Do | Di | – |
| Sommer (Juni bis August) | Mo, Mi, Fr, So | Mo, Do | Sa |
| Herbst (September bis November) | Mo, Do | Fr | – |
| Winter | – | – | – |
Bei durstigen Pflanzen nennt die Aufgabe die betroffenen Arten und rät zum Wässern am Morgen, bodennah. Bei den übrigen steht dort: Erde 3 cm tief prüfen und nur gießen, wenn sie trocken ist.
Säen, Vorziehen, Ernten. Für jede Pflanze sind die passenden Monate hinterlegt. Die Tomate wird im Februar und März auf der Fensterbank vorgezogen, im Mai ins Beet gesetzt und von Juli bis Oktober geerntet. Aussaat- und Vorziehtermine kommen samstags, Erntetermine freitags. Beim Säen stehen Tiefe, Abstand und die Zeit bis zur Ernte dabei.
Pflege. Zehn Pflanzen haben eigene wiederkehrende Aufgaben, zum Beispiel:
- Tomaten ausgeizen: dienstags, Juni bis September
- Kartoffeln anhäufeln: samstags, Mai und Juni
- Zucchini jung ernten: freitags, Juni bis September
- Basilikum-Blüten ausknipsen: donnerstags, Juni bis August
Eisheilige. Am 11. Mai erinnert die App daran, Frostschutz bereitzulegen, und nennt die empfindlichen Pflanzen in deinem Beet beim Namen. Bis zum 15. Mai kann es nochmal frieren.
Alle Aufgaben stehen im Kalender und auf dem Startbildschirm. Dort zeigt die App auch, was du in diesem Monat noch säen kannst. Einfache und schnelle Pflanzen stehen zuerst.
Fruchtfolge in vier Saisons
Jedes Beet hat vier Saisons mit eigener Bepflanzung. Die Bepflanzung lässt sich per Tipp in die nächste Saison übernehmen.
Die Analyse prüft, ob dieselbe Pflanzenfamilie in mehreren Saisons wiederkehrt. Jede Wiederholung kostet 25 von 100 Punkten. Für einige Familien gibt es zusätzliche Hinweise:
- Nach Nachtschattengewächsen folgen besser Hülsenfrüchtler oder Wurzelgemüse.
- Kreuzblütler wie Kohl brauchen mindestens drei Jahre Pause am selben Platz, sonst droht die Kohlhernie.
- Kürbisgewächse zehren stark, danach tun Hülsenfrüchtler dem Boden gut.
- Hülsenfrüchtler sind eine ideale Vorfrucht, weil ihre Stickstoffknöllchen im Boden bleiben.
Jede Pflanze ist außerdem als Starkzehrer, Mittelzehrer, Schwachzehrer oder Stickstoffsammler eingestuft. Starkzehrer sind Tomate, Gurke, Kartoffel, Zucchini und Paprika, Stickstoffsammler sind Bohne und Erbse. Nach Starkzehrern empfiehlt die App Mittel- und Schwachzehrer.
Wetterhinweise
Optional holt die App die Vorhersage von OpenWeather. Dafür brauchst du einen eigenen Schlüssel. Die Hinweise gelten für die Pflanzen, die in deinem Beet stehen, und es erscheinen höchstens drei gleichzeitig:
| Hinweis | Auslöser |
|---|---|
| Frostgefahr | unter 3 °C in den nächsten 36 Stunden, betrifft Tomate, Basilikum, Gurke, Bohne, Zucchini, Paprika |
| Regen kommt | mehr als 5 mm in 24 Stunden, das Gießen kann ausfallen |
| Hitzestress | über 28 °C, betrifft Salat, Spinat, Rucola, Radieschen |
| Gießen empfohlen | kein Regen und über 20 °C, betrifft Tomate, Gurke, Zucchini |
| Gutes Pflanzwetter | im Schnitt 14 bis 24 °C, wenig Regen, nachts über 5 °C |
Ernteprotokoll
Für jede Pflanze ist ein typischer Ertrag hinterlegt, etwa rund 1,8 kg je Tomatenpflanze oder 0,4 kg je Karotte. Daraus schätzt die App den Ertrag deines Beets. Im Ernteprotokoll trägst du ein, was tatsächlich geerntet wurde: Beet, Pflanze, Menge in Kilogramm und eine Notiz. Am Ende der Saison siehst du, wo Plan und Ergebnis auseinanderliegen.
Bedienung auf dem Handy
Die App ist für die Bedienung mit dem Finger ausgelegt.
- Ein Tipp auf die Erde setzt die gewählte Pflanze. Passt sie nicht, nennt die App den Grund.
- Ein Tipp auf eine Pflanze wählt sie aus und öffnet die Aktionsleiste. Ein Fehltipp löscht nichts.
- Mit einem Finger verschiebst du, mit zwei Fingern zoomst du, ein Doppeltipp zoomt auf die Stelle.
- Jede löschende Aktion lässt sich über die Meldung sofort zurücknehmen. Dazu gibt es Rückgängig und Wiederholen für rund 40 Schritte.
Außerdem gibt es einen Dunkelmodus, Unterstützung für Notch und Home-Indikator und Bedienelemente ab 44 Pixel. Ein Schalter blendet den Sonnenverlauf über dem Beet ein.
Offline nutzen
Der Hochbeetplaner ist eine PWA. Du installierst ihn über Einstellungen → Zum Homescreen hinzufügen, danach startet er ohne Browserleiste und funktioniert ohne Empfang.
Dafür sorgt ein Service Worker. Er legt beim Installieren die App-Hülle in den Cache. Beim Öffnen fragt er zuerst das Netz, damit neue Versionen ankommen, und greift nur ohne Verbindung auf die gespeicherte Version zurück. Wetter und Firebase laufen nur online.
Deine Beete liegen lokal im Browser. Legst du ein Konto an, werden sie zusätzlich mit Firestore gespiegelt. Ohne Firebase-Schlüssel läuft alles lokal, das Firebase-SDK wird dann gar nicht erst geladen.
Grenzen der App
- Die Bibliothek umfasst 21 Pflanzen. Es fehlen zum Beispiel Kohl, Mangold und Kürbis.
- Der Generator bringt möglichst viele deiner Wunschsorten unter. Große Pflanzen wie die Tomate (60 cm Reihenabstand) fallen dabei leicht heraus, weil mehrere kleine Pflanzen zusammen weniger Tiefe brauchen. Eine Tomate setzt du besser von Hand.
- Alle Angaben sind Richtwerte für Mitteleuropa (Klimazone 6 bis 8). Boden und Mikroklima im eigenen Garten können abweichen.
- Das Ernteprotokoll liegt im Browser und wird nicht mit dem Konto synchronisiert.
Technik
Der Planer ist eine React-App mit Vite und React Router, gehostet auf Vercel, mit mehr als 5.000 Zeilen Code. Firebase ist optional. Die Mischkultur- und Anbaudaten stammen aus Gertrud Francks „Mischkulturen im Gemüsegarten“, den Bioland-Anbaurichtlinien und Veröffentlichungen der Deutschen Gartenbau-Gesellschaft.
Ausprobieren
Plane dein nächstes Hochbeet im Hochbeetplaner und schau, welche Nachbarn zusammenpassen und welche Termine anstehen.
)
)
)