Initial commit for Greenlens
|
|
@ -0,0 +1,8 @@
|
|||
.agents/
|
||||
.claude/
|
||||
node_modules/
|
||||
server/
|
||||
greenlns-landing/
|
||||
landing/
|
||||
*.sqlite
|
||||
*.sqlite-*
|
||||
|
|
@ -0,0 +1,307 @@
|
|||
# Universal AI Coding Agent Workflow (Codex / Gemini / Claude)
|
||||
|
||||
## Workflow Orchestration
|
||||
|
||||
### 1. Plan Mode Default
|
||||
- Enter planning mode for ANY non-trivial task (3+ steps or architecture decisions)
|
||||
- Analyze the codebase before making changes
|
||||
- Break problems into clear subtasks
|
||||
- Produce an implementation plan before writing code
|
||||
- If assumptions are uncertain, inspect files or run tools first
|
||||
- Prefer incremental progress over large rewrites
|
||||
|
||||
Plan format:
|
||||
|
||||
PLAN
|
||||
1. Understand the task
|
||||
2. Identify affected files
|
||||
3. Design the implementation
|
||||
4. Implement step-by-step
|
||||
5. Verify results
|
||||
|
||||
|
||||
---
|
||||
|
||||
# Multi-Agent Strategy
|
||||
|
||||
### 2. Agent Decomposition
|
||||
|
||||
Use specialized agents for complex work.
|
||||
|
||||
Core roles:
|
||||
|
||||
- Orchestrator Agent
|
||||
- Research Agent
|
||||
- Implementation Agent
|
||||
- Test Agent
|
||||
- Code Review Agent
|
||||
- Debug Agent
|
||||
- Documentation Agent
|
||||
|
||||
Rules:
|
||||
- One responsibility per agent
|
||||
- Prefer parallel execution
|
||||
- Agents should operate on independent files when possible
|
||||
- The orchestrator coordinates execution
|
||||
|
||||
|
||||
---
|
||||
|
||||
# Agent Responsibilities
|
||||
|
||||
### Orchestrator Agent
|
||||
- analyzes the user request
|
||||
- creates task list
|
||||
- assigns tasks to agents
|
||||
- merges results
|
||||
|
||||
### Research Agent
|
||||
- scans repository
|
||||
- searches dependencies
|
||||
- analyzes architecture
|
||||
- produces context summary
|
||||
|
||||
### Implementation Agent
|
||||
- writes code
|
||||
- edits files
|
||||
- follows project conventions
|
||||
- implements features
|
||||
|
||||
### Test Agent
|
||||
- writes tests
|
||||
- verifies functionality
|
||||
- checks edge cases
|
||||
|
||||
### Code Review Agent
|
||||
- reviews diffs
|
||||
- checks maintainability
|
||||
- suggests improvements
|
||||
|
||||
### Debug Agent
|
||||
- analyzes logs
|
||||
- identifies root causes
|
||||
- implements fixes
|
||||
|
||||
### Documentation Agent
|
||||
- updates docs
|
||||
- writes README sections
|
||||
- explains new features
|
||||
|
||||
|
||||
---
|
||||
|
||||
# Execution Pipeline
|
||||
|
||||
### 3. Execution Phases
|
||||
|
||||
PHASE 1 — Discovery
|
||||
- explore repository
|
||||
- load relevant files
|
||||
- understand architecture
|
||||
|
||||
PHASE 2 — Planning
|
||||
- generate implementation plan
|
||||
- break plan into tasks
|
||||
|
||||
PHASE 3 — Task Creation
|
||||
|
||||
Create tasks like:
|
||||
|
||||
[ ] analyze codebase
|
||||
[ ] implement feature
|
||||
[ ] add tests
|
||||
[ ] review code
|
||||
[ ] update documentation
|
||||
|
||||
PHASE 4 — Implementation
|
||||
- execute tasks sequentially or in parallel
|
||||
- commit progress
|
||||
|
||||
PHASE 5 — Verification
|
||||
- run tests
|
||||
- check logs
|
||||
- verify feature works
|
||||
|
||||
PHASE 6 — Review
|
||||
- review code quality
|
||||
- refactor if necessary
|
||||
|
||||
PHASE 7 — Documentation
|
||||
- document changes
|
||||
|
||||
|
||||
---
|
||||
|
||||
# Verification System
|
||||
|
||||
### 4. Verification Before Done
|
||||
|
||||
Never mark a task complete without proof.
|
||||
|
||||
Checks:
|
||||
- code compiles
|
||||
- feature works
|
||||
- tests pass
|
||||
- no new errors introduced
|
||||
|
||||
Ask:
|
||||
|
||||
"Would a senior engineer approve this implementation?"
|
||||
|
||||
|
||||
---
|
||||
|
||||
# Autonomous Debugging
|
||||
|
||||
### 5. Autonomous Bug Fixing
|
||||
|
||||
When encountering a bug:
|
||||
|
||||
1. analyze error message
|
||||
2. inspect stack trace
|
||||
3. identify root cause
|
||||
4. implement fix
|
||||
5. verify with tests
|
||||
|
||||
Rules:
|
||||
- Never apply random fixes
|
||||
- Always understand the root cause first
|
||||
|
||||
|
||||
---
|
||||
|
||||
# Context Management
|
||||
|
||||
### 6. Context Awareness
|
||||
|
||||
Before implementing anything:
|
||||
|
||||
- load relevant files
|
||||
- inspect dependencies
|
||||
- understand architecture
|
||||
- read configuration files
|
||||
|
||||
Always maintain awareness of:
|
||||
|
||||
- system architecture
|
||||
- data flow
|
||||
- dependencies
|
||||
|
||||
|
||||
---
|
||||
|
||||
# Memory System
|
||||
|
||||
### 7. Persistent Memory
|
||||
|
||||
Store long-term knowledge in:
|
||||
|
||||
memory/
|
||||
- project_summary.md
|
||||
- architecture.md
|
||||
- lessons.md
|
||||
- coding_standards.md
|
||||
|
||||
This prevents repeated mistakes.
|
||||
|
||||
|
||||
---
|
||||
|
||||
# Learning Loop
|
||||
|
||||
### 8. Self-Improvement
|
||||
|
||||
After errors or corrections:
|
||||
|
||||
Update:
|
||||
|
||||
tasks/lessons.md
|
||||
|
||||
Include:
|
||||
- mistake pattern
|
||||
- root cause
|
||||
- prevention rule
|
||||
|
||||
Example:
|
||||
|
||||
Lesson:
|
||||
Always validate API responses before processing them.
|
||||
|
||||
|
||||
---
|
||||
|
||||
# Safety Rules
|
||||
|
||||
### 9. Safety
|
||||
|
||||
Never perform dangerous actions automatically.
|
||||
|
||||
Rules:
|
||||
|
||||
- never delete files without confirmation
|
||||
- avoid modifying production configuration automatically
|
||||
- create backups before large refactors
|
||||
- avoid irreversible operations
|
||||
|
||||
|
||||
---
|
||||
|
||||
# Iteration Control
|
||||
|
||||
### 10. Infinite Loop Protection
|
||||
|
||||
If the same error happens more than 3 times:
|
||||
|
||||
STOP
|
||||
|
||||
- re-evaluate the strategy
|
||||
- re-plan the solution
|
||||
- choose a different debugging approach
|
||||
|
||||
|
||||
---
|
||||
|
||||
# Core Engineering Principles
|
||||
|
||||
### Simplicity First
|
||||
Prefer the simplest solution that works.
|
||||
|
||||
### Root Cause Fixes
|
||||
Always fix the underlying problem, not symptoms.
|
||||
|
||||
### Minimal Impact
|
||||
Touch the smallest amount of code possible.
|
||||
|
||||
### Maintainability
|
||||
Code should remain readable and maintainable.
|
||||
|
||||
|
||||
---
|
||||
|
||||
# Final Rule
|
||||
|
||||
Before delivering a solution ask:
|
||||
|
||||
Is this solution correct, maintainable, and verifiable?
|
||||
|
||||
If not:
|
||||
|
||||
Refine it before presenting it.
|
||||
|
||||
|
||||
---
|
||||
|
||||
# Recommended File Usage
|
||||
|
||||
You can place this workflow in one of the following files:
|
||||
|
||||
AGENT_WORKFLOW.md
|
||||
CLAUDE.md
|
||||
AGENTS.md
|
||||
|
||||
This allows it to be used by:
|
||||
|
||||
- Claude Code Agent Teams
|
||||
- Codex CLI
|
||||
- Gemini Code Assist
|
||||
- Cursor Agents
|
||||
|
|
@ -0,0 +1,588 @@
|
|||
# GreenLens — Launch Strategy
|
||||
|
||||
*Last updated: 2026-03-01*
|
||||
|
||||
---
|
||||
|
||||
## Überblick
|
||||
|
||||
GreenLens ist eine B2C Mobile App (iOS & Android) mit Freemium-Modell. Ziel: maximale Download-Zahlen, schnelle Aktivierung, Conversion zu GreenLens Pro.
|
||||
|
||||
**Launch-Ziel:** App Store Präsenz aufbauen → Early Adopter-Community wachsen lassen → viralen Loop durch "Shazam für Pflanzen"-Effekt auslösen.
|
||||
|
||||
---
|
||||
|
||||
## Phase 1: Soft Launch (jetzt)
|
||||
|
||||
**Ziel:** Erste echte Nutzer, erster Feedback-Loop, App Store Rating aufbauen.
|
||||
|
||||
### Aktionen
|
||||
|
||||
- [ ] App Store Listing optimieren: klare Tagline, Screenshots mit Scan-Demo, kurzes Preview-Video
|
||||
- [ ] Google Play Listing parallel aufsetzen
|
||||
- [ ] Friends & Family + Pflanzen-Enthusiasten aus dem persönlichen Netzwerk einladen
|
||||
- [ ] Feedback aktiv einsammeln: Was klappt nicht? Was fehlt?
|
||||
- [ ] Ziel: 10–20 ehrliche App Store Reviews als Social Proof-Fundament
|
||||
|
||||
### Owned Channel aufbauen
|
||||
|
||||
- **E-Mail-Liste** starten — In-App Opt-in: "Neuigkeiten & Pflanzen-Tipps"
|
||||
- Einfache Landing Page mit E-Mail Capture: greenlns.app (oder Subdomain)
|
||||
|
||||
---
|
||||
|
||||
## Phase 2: Beta Launch (Monat 1–2)
|
||||
|
||||
**Ziel:** Buzz erzeugen, Warteliste aufbauen, erste Presse/Creator-Erwähnungen sichern.
|
||||
|
||||
### Owned Channels
|
||||
|
||||
- **Blog / Content:** 2–3 SEO-Artikel zu Top-Suchintentionen:
|
||||
- "Welche Pflanze ist das?" → Scan-Feature demonstrieren
|
||||
- "Pflanze geht ein — was tun?" → Health Diagnosis Feature
|
||||
- "Monstera pflegen" → Personalized Care Plan Feature
|
||||
- **E-Mail:** Wöchentlicher "Pflanzen-Tipp" an Liste → niedrige Hürde für Signup
|
||||
|
||||
### Rented Channels (1–2 Fokus-Plattformen)
|
||||
|
||||
**Instagram / TikTok** (primär):
|
||||
- Format: Vorher/Nachher-Videos — "Meine Pflanze stirbt" → Scan → Diagnose → Rettung
|
||||
- Format: "Rate the plant" — Community errät Pflanzennamen, App gibt Auflösung
|
||||
- Jeder Post endet mit CTA: Link in Bio → App Store
|
||||
|
||||
**Reddit** (sekundär):
|
||||
- Aktiv in r/houseplants, r/plantclinic, r/IndoorGarden
|
||||
- Wert zuerst liefern (Pflanzenfragen beantworten), dann App organisch erwähnen
|
||||
- Kein Spam — Community zuerst
|
||||
|
||||
### Borrowed Channels
|
||||
|
||||
| Zielgruppe | Kanal | Ansatz |
|
||||
|------------|-------|--------|
|
||||
| Pflanzen-YouTuber (DE) | YouTube | Kostenloses Pro-Abo + persönliche Nachricht; kein bezahlter Deal |
|
||||
| Plant-Influencer Instagram | Instagram | Micro-Influencer (10k–100k), nischig, hohe Engagement-Rate |
|
||||
| Garten-/Pflanzenpodcasts | Podcasts | Pitch: "Wir lösen das Problem X für eure Hörer" |
|
||||
| Pflanzen-Newsletter | Newsletter | Sponsored Feature oder Co-Marketing |
|
||||
|
||||
**Outreach-Vorlage:**
|
||||
> "Hey [Name], ich bin Gründer von GreenLens — einer App, die Pflanzen per KI in Sekunden identifiziert und personalisierte Pflegepläne erstellt. Ich schicke dir gerne einen Pro-Zugang, einfach um zu sehen ob du's nützlich findest. Kein Deal, kein Druck."
|
||||
|
||||
---
|
||||
|
||||
## Phase 3: Full Launch — Product Hunt (Monat 2–3)
|
||||
|
||||
**Ziel:** Tech Early Adopters erreichen, Credibility-Boost, Backlinks, internationale Sichtbarkeit.
|
||||
|
||||
### Vorbereitung (4 Wochen vorher)
|
||||
|
||||
- [ ] Product Hunt Profil anlegen und aktiv werden (kommentieren, voten)
|
||||
- [ ] Listing vorbereiten:
|
||||
- **Tagline:** "Scan any plant. Get instant ID + personalized care plan."
|
||||
- **Kurzbeschreibung:** Das Shazam für Pflanzen — powered by Botanical Intelligence
|
||||
- Screenshots: Hero-Screen, Scan-Flow, Health Diagnosis, My Garden
|
||||
- Demo-Video: 60 Sekunden, zeigt kompletten Scan-bis-Pflege-Flow
|
||||
- [ ] Hunter suchen — jemanden mit Reichweite auf Product Hunt
|
||||
- [ ] Unterstützer mobilisieren: bestehende E-Mail-Liste, Freunde, Investoren
|
||||
|
||||
### Launch Day
|
||||
|
||||
- [ ] Um 00:01 PST live schalten
|
||||
- [ ] Ganztägig alle Kommentare beantworten (in Englisch)
|
||||
- [ ] Announcement-E-Mail an gesamte Liste senden
|
||||
- [ ] Social Posts auf allen Kanälen
|
||||
- [ ] Team bereit für Support und Engagement
|
||||
|
||||
### Launch Day E-Mail
|
||||
|
||||
**Betreff:** "Wir sind live auf Product Hunt 🌿"
|
||||
|
||||
> Hey [Name],
|
||||
>
|
||||
> Heute ist der Tag — GreenLens ist live auf Product Hunt!
|
||||
>
|
||||
> Wenn dir die App gefällt, würde ein Upvote und ein Kommentar wirklich helfen. Es dauert 30 Sekunden:
|
||||
>
|
||||
> [Zum Product Hunt Listing →]
|
||||
>
|
||||
> Danke, dass du von Anfang an dabei warst.
|
||||
>
|
||||
> — [Gründer Name]
|
||||
|
||||
---
|
||||
|
||||
## Phase 4: Post-Launch Momentum (Monat 3+)
|
||||
|
||||
### Sofortmaßnahmen nach Launch
|
||||
|
||||
- [ ] Onboarding-E-Mail-Sequenz aktivieren (→ `/email-sequence` Skill nutzen)
|
||||
- [ ] App Store Reviews aktiv einsammeln: In-App-Prompt nach erstem erfolgreichen Scan
|
||||
- [ ] Vergleichsseiten erstellen: "GreenLens vs PictureThis", "GreenLens vs PlantNet"
|
||||
- [ ] Launch in nächstem E-Mail-Roundup erwähnen
|
||||
|
||||
### Laufende Launch-Momente (alle 4–6 Wochen)
|
||||
|
||||
Jedes neue Feature ist ein eigener Mini-Launch:
|
||||
|
||||
| Update-Typ | Marketing-Aufwand |
|
||||
|------------|------------------|
|
||||
| Neues Major Feature (z.B. Offline-Modus) | E-Mail + Social + In-App + Blog |
|
||||
| Neue Pflanzenarten im Katalog | Social Post + Changelog |
|
||||
| UI-Verbesserung | In-App-Banner |
|
||||
| Bug Fix | Changelog (signalisiert aktive Entwicklung) |
|
||||
|
||||
---
|
||||
|
||||
## ORB-Kanal-Übersicht für GreenLens
|
||||
|
||||
### Owned (aufbauen, Priorität 1)
|
||||
| Kanal | Zweck | Ziel |
|
||||
|-------|-------|------|
|
||||
| E-Mail-Liste | Direkter Draht zu Nutzern | 1.000 Subscriber in Monat 3 |
|
||||
| Blog (SEO) | Organischer Traffic via Pflanzenfragen | 5k Visits/Monat in Monat 6 |
|
||||
|
||||
### Rented (nutzen, nicht abhängig sein)
|
||||
| Kanal | Format | Ziel |
|
||||
|-------|--------|------|
|
||||
| Instagram / TikTok | Scan-Videos, Pflanzen-Content | 5k Follower in Monat 6 |
|
||||
| Reddit | Community-Wert, organische Erwähnungen | Laufend |
|
||||
| App Store / Play Store | ASO-optimiertes Listing | Top 10 in "Plant" Kategorie |
|
||||
|
||||
### Borrowed (aktiv angehen)
|
||||
| Kanal | Kontakt-Ziel | Timeline |
|
||||
|-------|-------------|----------|
|
||||
| 3–5 DE Plant-YouTuber | Pro-Zugang + persönliche Nachricht | Monat 1 |
|
||||
| 10 Micro-Influencer Instagram | Kooperation oder Affiliate | Monat 2 |
|
||||
| 2–3 Garten-Podcasts | Interview-Pitch | Monat 2–3 |
|
||||
|
||||
---
|
||||
|
||||
## Viraler Loop
|
||||
|
||||
Das Kernprodukt hat natürliches Sharing-Potenzial:
|
||||
|
||||
```
|
||||
Nutzer scannt Pflanze → beeindruckendes Ergebnis →
|
||||
Screenshot/Video teilt sich leicht →
|
||||
"Was ist das für eine App?" → neuer Download
|
||||
```
|
||||
|
||||
**Fördern durch:**
|
||||
- Share-Button direkt nach dem Scan-Ergebnis ("Zeig deinen Freunden, was das ist")
|
||||
- "My Garden" shareable machen — schöner Export/Share-Screen
|
||||
- Refer-a-Friend: 1 Monat Pro gratis für jeden eingeladenen Nutzer der sich anmeldet
|
||||
|
||||
---
|
||||
|
||||
## Launch Checklist
|
||||
|
||||
### Pre-Launch
|
||||
- [ ] App Store & Play Store Listing optimiert (Screenshots, Video, Beschreibung)
|
||||
- [ ] Landing Page mit E-Mail Capture live
|
||||
- [ ] E-Mail-Liste gestartet
|
||||
- [ ] Instagram/TikTok Profil aktiv
|
||||
- [ ] 5 Outreach-E-Mails an Plant-Creator raus
|
||||
- [ ] Product Hunt Listing vorbereitet
|
||||
- [ ] Analytics/Tracking in der App aktiv (Onboarding-Funnel, Scan-Events)
|
||||
|
||||
### Launch Day
|
||||
- [ ] Product Hunt live
|
||||
- [ ] Announcement E-Mail an Liste
|
||||
- [ ] Social Posts
|
||||
- [ ] Team verfügbar für Comments & Support
|
||||
|
||||
### Post-Launch
|
||||
- [ ] Onboarding-E-Mail-Sequenz läuft
|
||||
- [ ] In-App Review-Prompt nach erstem Scan
|
||||
- [ ] Vergleichsseiten live
|
||||
- [ ] Nächster Feature-Launch geplant
|
||||
|
||||
---
|
||||
|
||||
## Metriken
|
||||
|
||||
| Metric | Ziel Monat 1 | Ziel Monat 3 | Ziel Monat 6 |
|
||||
|--------|-------------|-------------|-------------|
|
||||
| App Downloads | 500 | 5.000 | 25.000 |
|
||||
| E-Mail-Liste | 200 | 1.000 | 5.000 |
|
||||
| App Store Rating | 4.0+ | 4.3+ | 4.5+ |
|
||||
| Pro Conversion | — | 3–5% | 5–8% |
|
||||
| Product Hunt | — | Launch geplant | Ergebnis |
|
||||
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
# GreenLens — Onboarding E-Mail-Sequenz
|
||||
|
||||
*Ziel: Nutzer von erstem Download bis zum Pro-Upgrade aktivieren.*
|
||||
|
||||
---
|
||||
|
||||
## Sequenz-Übersicht
|
||||
|
||||
| # | Timing | Ziel | Typ |
|
||||
|---|--------|------|-----|
|
||||
| 1 | Sofort nach Signup | Willkommen + ersten Scan triggern | Aktivierung |
|
||||
| 2 | Tag 1 (kein Scan) | Erinnerung + Hemmschwelle senken | Aktivierung |
|
||||
| 3 | Tag 3 | "My Garden" Feature einführen | Feature-Education |
|
||||
| 4 | Tag 7 | Health Diagnosis vorstellen | Feature-Education |
|
||||
| 5 | Tag 10 | Social Proof + Pro-Teaser | Conversion-Vorbereitung |
|
||||
| 6 | Tag 14 | Pro-Upgrade Angebot | Conversion |
|
||||
| 7 | Tag 21 (kein Upgrade) | Letzter Pro-Nudge + Wert-Recap | Conversion |
|
||||
| 8 | Tag 30 (inaktiv) | Re-Engagement | Retention |
|
||||
|
||||
---
|
||||
|
||||
## E-Mail 1 — Willkommen (Sofort nach Signup)
|
||||
|
||||
**Betreff:** "Willkommen im Urban Jungle 🌿"
|
||||
**Von:** [Gründer Vorname] von GreenLens
|
||||
|
||||
> Hey [Name],
|
||||
>
|
||||
> schön, dass du dabei bist!
|
||||
>
|
||||
> GreenLens wurde gebaut für alle, die ihre Pflanzen lieben — aber manchmal nicht wissen, was ihnen fehlt. Das ändert sich jetzt.
|
||||
>
|
||||
> **Dein erster Schritt:**
|
||||
> Fotografiere eine Pflanze in deiner Nähe. Irgendeine. Schau was passiert.
|
||||
>
|
||||
> [Jetzt erste Pflanze scannen →]
|
||||
>
|
||||
> Über 20.000 Arten erkannt — in unter einer Sekunde.
|
||||
>
|
||||
> Viel Spaß,
|
||||
> [Name]
|
||||
> GreenLens
|
||||
|
||||
**Technische Details:**
|
||||
- Trigger: E-Mail-Signup oder App-Download
|
||||
- Ziel-Aktion: Erster Scan
|
||||
- Ton: Warm, persönlich, keine Feature-Liste
|
||||
|
||||
---
|
||||
|
||||
## E-Mail 2 — Erinnerung Tag 1 (nur wenn kein Scan)
|
||||
|
||||
**Betreff:** "Hast du schon eine Pflanze in der Nähe? 🪴"
|
||||
|
||||
> Hey [Name],
|
||||
>
|
||||
> gestern hast du dich bei GreenLens angemeldet — aber noch keine Pflanze gescannt.
|
||||
>
|
||||
> Kein Druck. Aber falls du kurz in der Nähe einer Pflanze bist:
|
||||
>
|
||||
> Öffne die App → Kamera → Tippen. Das war's.
|
||||
>
|
||||
> Du musst nichts wissen. Die App sagt dir alles.
|
||||
>
|
||||
> [App öffnen →]
|
||||
>
|
||||
> [Name]
|
||||
|
||||
**Hinweis:** Nur senden wenn Event `first_scan_completed = false`. Nicht senden wenn bereits gescannt.
|
||||
|
||||
---
|
||||
|
||||
## E-Mail 3 — "My Garden" einführen (Tag 3)
|
||||
|
||||
**Betreff:** "Bau dir deinen digitalen Pflanzengarten"
|
||||
|
||||
> Hey [Name],
|
||||
>
|
||||
> hast du gewusst, dass du nach jedem Scan deine Pflanze zu "Mein Garten" hinzufügen kannst?
|
||||
>
|
||||
> Das gibt dir:
|
||||
> - Persönliche Gießerinnerungen für jede Pflanze
|
||||
> - Pflege-History auf einen Blick
|
||||
> - Fotos & Notizen an einem Ort
|
||||
>
|
||||
> Dein Urban Jungle, komplett organisiert.
|
||||
>
|
||||
> [Pflanze zu Mein Garten hinzufügen →]
|
||||
>
|
||||
> [Name]
|
||||
|
||||
---
|
||||
|
||||
## E-Mail 4 — Health Diagnosis vorstellen (Tag 7)
|
||||
|
||||
**Betreff:** "Warum werden die Blätter braun? 🍂"
|
||||
|
||||
> Hey [Name],
|
||||
>
|
||||
> braune Blattspitzen, hängende Blätter, gelbe Flecken — fast jeder Pflanzenbesitzer kennt das. Und die meiste Zeit weiß man einfach nicht warum.
|
||||
>
|
||||
> GreenLens erkennt das sofort:
|
||||
>
|
||||
> **Zu wenig Wasser** → Monstera mit braunen Spitzen → Erholung in 2 Tagen
|
||||
> **Zu viel Wasser** → Alocasia mit hängenden Blättern → Wurzeln gerettet
|
||||
> **Schädlinge** → Ficus mit Spinnmilben → Behandlung nach 1 Scan
|
||||
>
|
||||
> Einfach die kranke Pflanze fotografieren. Die App sagt dir was fehlt — und was zu tun ist.
|
||||
>
|
||||
> [Pflanze jetzt diagnostizieren →]
|
||||
>
|
||||
> [Name]
|
||||
|
||||
---
|
||||
|
||||
## E-Mail 5 — Social Proof + Pro-Teaser (Tag 10)
|
||||
|
||||
**Betreff:** "Was andere Urban Jungle Fans sagen 🌱"
|
||||
|
||||
> Hey [Name],
|
||||
>
|
||||
> hier ein paar Dinge, die uns Nutzer in letzter Zeit geschrieben haben:
|
||||
>
|
||||
> *"Es ist wie Shazam, aber für Pflanzen."*
|
||||
> *"Endlich weiß ich was meine Pflanzen alle heißen."*
|
||||
> *"Hat mir in Sekunden gesagt was mit meiner Monstera nicht stimmt."*
|
||||
>
|
||||
> Wir arbeiten gerade an Features, die GreenLens noch besser machen:
|
||||
> - Pflegehistorie über mehrere Monate
|
||||
> - Synchronisation deiner Sammlung über alle Geräte
|
||||
> - Unbegrenzte Diagnosen ohne Limit
|
||||
>
|
||||
> Das alles kommt mit **GreenLens Pro** — dazu mehr in ein paar Tagen.
|
||||
>
|
||||
> [Name]
|
||||
|
||||
---
|
||||
|
||||
## E-Mail 6 — Pro-Upgrade Angebot (Tag 14)
|
||||
|
||||
**Betreff:** "Dein Urban Jungle verdient mehr 🌿"
|
||||
|
||||
> Hey [Name],
|
||||
>
|
||||
> du nutzt GreenLens jetzt seit zwei Wochen. Zeit für ein ehrliches Angebot.
|
||||
>
|
||||
> **GreenLens Pro** gibt dir:
|
||||
>
|
||||
> ✓ Vollständige Pflegehistorie für jede Pflanze
|
||||
> ✓ Geräteübergreifende Synchronisation deiner Sammlung
|
||||
> ✓ Unbegrenzte Health-Diagnosen
|
||||
> ✓ Erweiterte Standort-Pflegetipps
|
||||
> ✓ Kein Limit bei Scans
|
||||
>
|
||||
> Als Early User bekommst du **30% Rabatt im ersten Monat** — automatisch angewandt.
|
||||
>
|
||||
> [GreenLens Pro holen →]
|
||||
>
|
||||
> Das Angebot gilt 7 Tage.
|
||||
>
|
||||
> [Name]
|
||||
|
||||
**Technische Details:**
|
||||
- Nur senden wenn `pro_subscriber = false`
|
||||
- Discount-Code oder In-App Deeplink mit Auto-Apply
|
||||
- Ablaufdatum im E-Mail explizit nennen
|
||||
|
||||
---
|
||||
|
||||
## E-Mail 7 — Letzter Pro-Nudge (Tag 21, kein Upgrade)
|
||||
|
||||
**Betreff:** "Letzte Chance: 30% Rabatt läuft heute ab"
|
||||
|
||||
> Hey [Name],
|
||||
>
|
||||
> kurze Erinnerung — dein Early-User-Rabatt auf GreenLens Pro läuft heute ab.
|
||||
>
|
||||
> Falls du dir noch unsicher bist: Du kannst jederzeit kündigen, keine langen Laufzeiten.
|
||||
>
|
||||
> Was du bekommst: alle Pro-Features, Pflegehistorie, unbegrenzte Diagnosen.
|
||||
> Was du riskierst: nichts.
|
||||
>
|
||||
> [Jetzt Pro holen — 30% Rabatt →]
|
||||
>
|
||||
> Nach heute gilt der normale Preis.
|
||||
>
|
||||
> [Name]
|
||||
|
||||
---
|
||||
|
||||
## E-Mail 8 — Re-Engagement (Tag 30, inaktiv)
|
||||
|
||||
**Betreff:** "Deine Pflanzen vermissen dich 🌿"
|
||||
|
||||
> Hey [Name],
|
||||
>
|
||||
> du warst eine Weile nicht in GreenLens. Alles okay mit deinem Urban Jungle?
|
||||
>
|
||||
> Falls du Fragen hast, oder etwas nicht funktioniert hat — antworte einfach auf diese E-Mail. Wir lesen alles.
|
||||
>
|
||||
> Ansonsten: Schau kurz rein. Vielleicht hat eine deiner Pflanzen gerade genau jetzt Pflege nötig.
|
||||
>
|
||||
> [App öffnen →]
|
||||
>
|
||||
> [Name]
|
||||
|
||||
---
|
||||
|
||||
## Sequenz-Regeln
|
||||
|
||||
| Regel | Detail |
|
||||
|-------|--------|
|
||||
| Sende-Frequenz | Max. 2 E-Mails pro Woche |
|
||||
| Stopp-Bedingung | Pro-Upgrade → Sequenz pausieren, in Pro-Onboarding wechseln |
|
||||
| Personalisierung | [Name] überall; idealerweise Pflanzenname aus erstem Scan |
|
||||
| Ton | Immer von einer echten Person (Gründer), kein Corporate-Speak |
|
||||
| Unsubscribe | Immer sichtbar — respektiere die Entscheidung |
|
||||
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
# GreenLens — Landing Page CRO
|
||||
|
||||
*Ziel: Besucher der Landing Page zu App-Downloads konvertieren.*
|
||||
|
||||
---
|
||||
|
||||
## Aktuelle Seiten-Struktur & Optimierungen
|
||||
|
||||
### Hero Section
|
||||
|
||||
**Aktuell:** "Your Urban Jungle, perfectly cared for"
|
||||
|
||||
**Optimierungsempfehlungen:**
|
||||
|
||||
Teste diese drei Varianten gegeneinander (A/B-Test):
|
||||
|
||||
| Variante | Headline | Rationale |
|
||||
|----------|----------|-----------|
|
||||
| A (aktuell) | "Your Urban Jungle, perfectly cared for" | Aspirational, Identity-based |
|
||||
| B | "Scan any plant. Know exactly how to care for it." | Funktional, Problem-Solution |
|
||||
| C | "Why is my plant dying? Find out in 1 second." | Pain-first, Search-Intent-Match |
|
||||
|
||||
**Variante C** dürfte am stärksten konvertieren für kalten Traffic — trifft den emotionalen Schmerzpunkt direkt.
|
||||
|
||||
**Subheadline verbessern:**
|
||||
Aktuell: *"Scan any plant, get instant identification and personalized care plans – powered by AI."*
|
||||
|
||||
Besser: *"Point your camera at any plant — GreenLens tells you exactly what it is and how to keep it alive. Free on iOS & Android."*
|
||||
|
||||
Warum: Konkreteres "point your camera" erzeugt mentales Bild; "keep it alive" trifft den eigentlichen JTBD.
|
||||
|
||||
**CTA Button:**
|
||||
- Primär: "Download kostenlos" oder "Jetzt gratis laden" (Freemium betonen, Hürde senken)
|
||||
- Sekundär: "App ansehen" → Demo-Video oder Screenshot-Slider
|
||||
|
||||
**Above the fold checklist:**
|
||||
- [ ] App Store + Google Play Badges sichtbar (nicht nur ein CTA-Button)
|
||||
- [ ] "Kostenlos" / "Free" explizit in oder unter dem CTA
|
||||
- [ ] Eine Zeile Social Proof: "Über [X] Pflanzen bereits identifiziert" oder "4.8★ im App Store"
|
||||
- [ ] Kein Autoplay-Video (mobile)
|
||||
|
||||
---
|
||||
|
||||
### Problem-Agitation Section
|
||||
|
||||
**Empfehlung: Vor dem Feature-Abschnitt eine explizite Problem-Section einfügen.**
|
||||
|
||||
```
|
||||
Headline: "Kenn das Gefühl?"
|
||||
|
||||
• "Ich hab keine Ahnung was das für eine Pflanze ist."
|
||||
• "Meine Pflanze geht ein und ich weiß nicht warum."
|
||||
• "Ich vergesse immer zu gießen."
|
||||
• "Google gibt mir 10 verschiedene Antworten."
|
||||
|
||||
→ GreenLens löst das. In einer Sekunde.
|
||||
```
|
||||
|
||||
Warum: Besucher müssen sich erstmal erkannt fühlen, bevor Features relevant werden.
|
||||
|
||||
---
|
||||
|
||||
### Features Section
|
||||
|
||||
**Aktuell:** "Everything your Urban Jungle needs"
|
||||
|
||||
**Verbesserungen:**
|
||||
|
||||
Jedes Feature als Nutzen formulieren, nicht als Funktion:
|
||||
|
||||
| Aktuell (Funktion) | Besser (Nutzen) |
|
||||
|---------------------|-----------------|
|
||||
| "AI Plant Identification" | "Sag nie wieder 'keine Ahnung was das ist'" |
|
||||
| "Smart Reminders" | "Vergiss nie wieder zu gießen" |
|
||||
| "Health Diagnosis" | "Stopp das Raten — wissen warum deine Pflanze leidet" |
|
||||
| "20,000+ species" | "Egal welche Pflanze — GreenLens kennt sie" |
|
||||
|
||||
**Feature-Demo:** Für jedes Feature einen animierten GIF oder kurzen Screen-Recording einbauen. Besucher müssen das Produkt "fühlen" können ohne es zu downloaden.
|
||||
|
||||
---
|
||||
|
||||
### Social Proof Section
|
||||
|
||||
**Was fehlt (aktuell noch kein echter Social Proof):**
|
||||
|
||||
Sobald erste Reviews vorhanden:
|
||||
|
||||
- App Store Rating prominent zeigen (Sterne + Anzahl Reviews)
|
||||
- 2–3 kurze Nutzer-Zitate, spezifisch und real:
|
||||
- ❌ "Super App, sehr empfehlenswert!" (generisch, wirkt fake)
|
||||
- ✅ "Hab endlich rausgefunden dass meine Monstera zu viel Wasser bekommt. Blätter sind schon wieder grün." — Anna K., München
|
||||
- "X Pflanzen bereits gescannt" als Live-Counter oder statische Zahl
|
||||
|
||||
---
|
||||
|
||||
### How It Works Section
|
||||
|
||||
**Aktuell:** 4-Schritt-Prozess — gut. Folgende Anpassungen:
|
||||
|
||||
- Schritt 1–2 visuell betonen (das ist der "Magic Moment")
|
||||
- Unter Schritt 4 direkt CTA platzieren — nicht erst nach dem nächsten Abschnitt
|
||||
- Mobile: Steps als swipeable Carousel (nicht als langer Scroll)
|
||||
|
||||
---
|
||||
|
||||
### FAQ Section
|
||||
|
||||
**Bestehende FAQs sind gut. Ergänzen:**
|
||||
|
||||
| Frage | Antwort |
|
||||
|-------|---------|
|
||||
| "Muss ich mich registrieren?" | "Nein — einfach App laden und sofort scannen. Konto optional." |
|
||||
| "Was kostet Pro?" | Konkreten Preis nennen — Unklarheit über Kosten ist Conversion-Killer |
|
||||
| "Funktioniert es bei Pflanzen im Freien / Gartenblumen?" | "Ja — über 20.000 Arten inkl. Gartenpflanzen, Kräuter, Gemüse, Bäume." |
|
||||
|
||||
---
|
||||
|
||||
### CTA Section (Bottom)
|
||||
|
||||
**Aktuell:** "Join the Jungle" — gut, passt zur Brand.
|
||||
|
||||
**Optimierungen:**
|
||||
- Konkrete Zahl einfügen: "Schließ dich [X] Pflanzenliebhabern an"
|
||||
- Beide Store-Badges nebeneinander, groß
|
||||
- Unter den Badges: "Kostenlos · Keine Kreditkarte · Sofort loslegen"
|
||||
- Optional: QR-Code für Desktop-Besucher die auf Mobile downloaden wollen
|
||||
|
||||
---
|
||||
|
||||
## Technische CRO-Basics
|
||||
|
||||
| Punkt | Status | Empfehlung |
|
||||
|-------|--------|-----------|
|
||||
| Page Speed | Prüfen | Ziel: <2,5s LCP auf Mobile |
|
||||
| Mobile-First | Pflicht | 70%+ Traffic kommt von Mobile |
|
||||
| App Store Badge Links | Pflicht | UTM-Parameter für Attribution |
|
||||
| Analytics | Einrichten | Scroll-Depth, CTA-Klicks, Store-Badge-Klicks tracken |
|
||||
| Heatmap | Empfohlen | Hotjar / Microsoft Clarity (kostenlos) |
|
||||
|
||||
---
|
||||
|
||||
## Priorisierte Maßnahmen
|
||||
|
||||
| Priorität | Maßnahme | Aufwand | Impact |
|
||||
|-----------|----------|---------|--------|
|
||||
| 1 | Headline A/B-Test (Variante C) | Niedrig | Hoch |
|
||||
| 2 | "Kostenlos" explizit in CTA | Minimal | Hoch |
|
||||
| 3 | Problem-Section vor Features einfügen | Niedrig | Hoch |
|
||||
| 4 | Features als Nutzen formulieren | Niedrig | Mittel |
|
||||
| 5 | Social Proof Section aufbauen (sobald Reviews da) | Mittel | Hoch |
|
||||
| 6 | App Store Badges + QR-Code prominent | Niedrig | Mittel |
|
||||
| 7 | Feature-GIFs / Screen-Recordings | Mittel | Mittel |
|
||||
|
|
@ -0,0 +1,483 @@
|
|||
# Alle vorhandenen Pflanzen
|
||||
|
||||
Erstellt am: 2026-03-11
|
||||
Gesamtzahl: 240
|
||||
|
||||
- Aasblume (Stapelia grandiflora) - /plants/stapelia-grandiflora--aasblume--b87af483.webp
|
||||
- Adromischus (Adromischus cristatus) - /plants/adromischus-cristatus--adromischus--9b24b9fc.webp
|
||||
- Afrikanisches Veilchen (Saintpaulia ionantha) - /plants/saintpaulia-ionantha--afrikanisches-veilchen--bc75f4a8.webp
|
||||
- Agave (Agave americana) - /plants/agave-americana--agave--3b197a68.webp
|
||||
- Aglaoneme (Aglaonema commutatum) - /plants/aglaonema-commutatum--aglaoneme--7928abe4.webp
|
||||
- Aloe Vera (Aloe vera) - /plants/aloe-vera--206a00f6.webp
|
||||
- Alpenveilchen (Cyclamen persicum) - /plants/cyclamen-persicum--alpenveilchen--42e9e354.webp
|
||||
- Amazona-Taro (Alocasia amazonica) - /plants/alocasia-amazonica--amazona-taro--e1c87d71.webp
|
||||
- Arnika (Arnica montana) - /plants/arnica-montana--arnika--285e6ea8.webp
|
||||
- Aubergine (Solanum melongena) - /plants/solanum-melongena--aubergine--5f3bad2f.webp
|
||||
- Baldrian (Valeriana officinalis) - /plants/valeriana-officinalis--baldrian--7bc7a2ae.webp
|
||||
- Bambusrohr (Bambusa vulgaris) - /plants/bambusa-vulgaris--bambusrohr--620e47a2.webp
|
||||
- Bananenpflanze (Musa acuminata) - /plants/musa-acuminata--bananenpflanze--0a6a2ad8.webp
|
||||
- Basilikum (Ocimum basilicum) - /plants/ocimum-basilicum--basilikum--cdc33445.webp
|
||||
- Bergpalme (Chamaedorea elegans) - /plants/chamaedorea-elegans--bergpalme--05a6cf35.webp
|
||||
- Billbergia (Billbergia nutans) - /plants/billbergia-nutans--billbergia--a659ab7f.webp
|
||||
- Birkenfeige (Ficus benjamina) - /plants/ficus-benjamina--birkenfeige--399b661c.webp
|
||||
- Blauer Kreuzkraut (Senecio serpens) - /plants/senecio-serpens--blauer-kreuzkraut--4ec1f347.webp
|
||||
- Blaues Kanaelfarn (Phlebodium aureum) - /plants/phlebodium-aureum--blaues-kanaelfarn--a630296a.webp
|
||||
- Bleistiftkaktus (Euphorbia tirucalli) - /plants/euphorbia-tirucalli--bleistiftkaktus--2760cacf.webp
|
||||
- Bleiwurz (Plumbago auriculata) - /plants/plumbago-auriculata--bleiwurz--a1ea78f5.webp
|
||||
- Blumenschilfrohr (Canna indica) - /plants/canna-indica--blumenschilfrohr--adfa9705.webp
|
||||
- Blutroter Storchschnabel (Geranium sanguineum) - /plants/geranium-sanguineum--blutroter-storchschnabel--9d8300fb.webp
|
||||
- Bogenhanf (Sansevieria trifasciata) - /plants/sansevieria-trifasciata--bogenhanf--4ba42e15.webp
|
||||
- Bonsai-Feige (Ficus retusa) - /plants/ficus-retusa--bonsai-feige--dff4fbd3.webp
|
||||
- Bougainvillea (Bougainvillea spectabilis) - /plants/bougainvillea-spectabilis--bougainvillea--0d84eedd.webp
|
||||
- Brutblatt (Kalanchoe daigremontiana) - /plants/kalanchoe-daigremontiana--brutblatt--5b643bf7.webp
|
||||
- Buntblatt (Caladium bicolor) - /plants/caladium-bicolor--buntblatt--d052df1e.webp
|
||||
- Calibrachoa (Calibrachoa hybrida) - /plants/calibrachoa-hybrida--calibrachoa--18b44d0e.webp
|
||||
- Calla (Zantedeschia aethiopica) - /plants/zantedeschia-aethiopica--calla--c739da85.webp
|
||||
- Callisia (Callisia repens) - /plants/callisia-repens--callisia--65401a5e.webp
|
||||
- Cattleya-Orchidee (Cattleya labiata) - /plants/cattleya-labiata--cattleya-orchidee--91962802.webp
|
||||
- Chili (Capsicum annuum) - /plants/capsicum-annuum--chili--dabf0f0e.webp
|
||||
- Chinesische Faecherpalme (Livistona chinensis) - /plants/livistona-chinensis--chinesische-facherpalme--773e43a2.webp
|
||||
- Chinesische Rose (Rosa chinensis) - /plants/rosa-chinensis--chinesische-rose--2c0514b0.webp
|
||||
- Chinesischer Blauregen (Wisteria sinensis) - /plants/wisteria-sinensis--chinesischer-blauregen--8887793e.webp
|
||||
- Christusdorn (Euphorbia milii) - /plants/euphorbia-milii--christusdorn--f647812e.webp
|
||||
- Chrysantheme (Chrysanthemum indicum) - /plants/chrysanthemum-indicum--chrysantheme--f3f1b7ad.webp
|
||||
- Columnea (Columnea gloriosa) - /plants/columnea-gloriosa--columnea--3fd247d6.webp
|
||||
- Cryptanthus (Cryptanthus bivittatus) - /plants/cryptanthus-bivittatus--cryptanthus--0300865d.webp
|
||||
- Ctenanthe (Ctenanthe burle-marxii) - /plants/ctenanthe-burle-marxii--ctenanthe--aaacfef1.webp
|
||||
- Dahlie (Dahlia pinnata) - /plants/dahlia-pinnata--dahlie--34a69e35.webp
|
||||
- Dendrobium (Dendrobium nobile) - /plants/dendrobium-nobile--dendrobium--a29be123.webp
|
||||
- Dieffenbachie (Dieffenbachia seguine) - /plants/dieffenbachia-seguine--dieffenbachie--755822dd.webp
|
||||
- Dischidia (Dischidia ruscifolia) - /plants/dischidia-ruscifolia--dischidia--962061db.webp
|
||||
- Drachenbaum (Dracaena marginata) - /plants/dracaena-marginata--drachenbaum--ae46a13c.webp
|
||||
- Drehfrucht (Streptocarpus hybridus) - /plants/streptocarpus-hybridus--drehfrucht--d30e3476.webp
|
||||
- Dudleya (Dudleya brittonii) - /plants/dudleya-brittonii--dudleya--be6042d1.webp
|
||||
- Duftsteinrich (Lobularia maritima) - /plants/lobularia-maritima--duftsteinrich--309e832f.webp
|
||||
- Echeverie (Echeveria elegans) - /plants/echeveria-elegans--echeverie--71f5556f.webp
|
||||
- Echter Lavendel (Lavandula angustifolia) - /plants/lavandula-angustifolia--echter-lavendel--cfd090c5.webp
|
||||
- Efeu (Hedera helix) - /plants/hedera-helix--efeu--cebdfbf1.webp
|
||||
- Efeu-Geranie (Pelargonium peltatum) - /plants/pelargonium-peltatum--efeu-geranie--8cd609cc.webp
|
||||
- Efeutute (Epipremnum aureum) - /plants/epipremnum-aureum--efeutute--29871648.webp
|
||||
- Einblatt (Spathiphyllum wallisii) - /plants/spathiphyllum-wallisii--einblatt--6ff28539.webp
|
||||
- Erdbeere (Fragaria ananassa) - /plants/fragaria-ananassa--erdbeere--4a97a911.webp
|
||||
- Eselschwanz (Sedum morganianum) - /plants/sedum-morganianum--eselschwanz--f6256abc.webp
|
||||
- Faecherahorn (Acer palmatum) - /plants/acer-palmatum--faecherahorn--388b6858.webp
|
||||
- Fass-Kaktus (Ferocactus cylindraceus) - /plants/ferocactus-cylindraceus--fass-kaktus--ef5c90b1.webp
|
||||
- Fatsia (Fatsia japonica) - /plants/fatsia-japonica--fatsia--425270ac.webp
|
||||
- Fettkraut (Pinguicula grandiflora) - /plants/pinguicula-grandiflora--fettkraut--8ec9dead.webp
|
||||
- Flamingoblume (Anthurium andraeanum) - /plants/anthurium-andraeanum--flamingoblume--2087000b.webp
|
||||
- Flammen-Bromelie (Vriesea splendens) - /plants/vriesea-splendens--flammen-bromelie--debc6faa.webp
|
||||
- Fleissiges Lieschen (Impatiens walleriana) - /plants/impatiens-walleriana--fleissiges-lieschen--5816f930.webp
|
||||
- Forellen-Begonie (Begonia maculata) - /plants/begonia-maculata--forellen-begonie--5cce47c8.webp
|
||||
- Frauenhaarfarn (Adiantum raddianum) - /plants/adiantum-raddianum--frauenhaarfarn--d47cef0b.webp
|
||||
- Fuchsie (Fuchsia hybrida) - /plants/fuchsia-hybrida--fuchsie--93ef43c2.webp
|
||||
- Gardenie (Gardenia jasminoides) - /plants/gardenia-jasminoides--gardenie--f8284265.webp
|
||||
- Gasteria (Gasteria carinata) - /plants/gasteria-carinata--gasteria--b27de8c8.webp
|
||||
- Gebet-Pflanze (Maranta leuconeura) - /plants/maranta-leuconeura--gebet-pflanze--e50f6916.webp
|
||||
- Geigenfeige (Ficus lyrata) - /plants/ficus-lyrata--geigenfeige--c025bb04.webp
|
||||
- Geisterpflanze (Graptopetalum paraguayense) - /plants/graptopetalum-paraguayense--geisterpflanze--9584de97.webp
|
||||
- Gerbera (Gerbera jamesonii) - /plants/gerbera-jamesonii--gerbera--f17eec14.webp
|
||||
- Geweihfarn (Platycerium bifurcatum) - /plants/platycerium-bifurcatum--geweihfarn--991495f9.webp
|
||||
- Gloxinie (Gloxinia speciosa) - /plants/gloxinia-speciosa--gloxinie--8a73752c.webp
|
||||
- Goldene Tonne (Echinocactus grusonii) - /plants/echinocactus-grusonii--goldene-tonne--d5268f53.webp
|
||||
- Goldener Bambus (Phyllostachys aurea) - /plants/phyllostachys-aurea--goldener-bambus--e05d0c9f.webp
|
||||
- Goldfruchtpalme (Dypsis lutescens) - /plants/dypsis-lutescens--goldfruchtpalme--890812c2.webp
|
||||
- Granatapfelbaum (Punica granatum) - /plants/punica-granatum--granatapfelbaum--facf4f0c.webp
|
||||
- Grosse Brennessel (Urtica dioica) - /plants/urtica-dioica--grosse-brennessel--b2ed905e.webp
|
||||
- Grosse Strahlenaralie (Schefflera actinophylla) - /plants/schefflera-actinophylla--grosse-strahlenaralie--a69cdd16.webp
|
||||
- Gruene Minze (Mentha spicata) - /plants/mentha-spicata--gruene-minze--7cb727ef.webp
|
||||
- Gruenlilie (Chlorophytum comosum) - /plants/chlorophytum-comosum--gruenlilie--e48be10b.webp
|
||||
- Guave (Psidium guajava) - /plants/psidium-guajava--guave--5d507482.webp
|
||||
- Gummibaum (Ficus elastica) - /plants/ficus-elastica--gummibaum--925b35e7.webp
|
||||
- Gurke (Cucumis sativus) - /plants/cucumis-sativus--gurke--3b96fd46.webp
|
||||
- Guzmania (Guzmania lingulata) - /plants/guzmania-lingulata--guzmania--63fafdcb.webp
|
||||
- Hange-Birke (Betula pendula) - /plants/betula-pendula--hange-birke--aff0bb68.webp
|
||||
- Hasenohren-Kaktus (Opuntia microdasys) - /plants/opuntia-microdasys--hasenohren-kaktus--de2a7439.webp
|
||||
- Heliamphora (Heliamphora nutans) - /plants/heliamphora-nutans--heliamphora--16977b41.webp
|
||||
- Heliconia (Heliconia psittacorum) - /plants/heliconia-psittacorum--heliconia--15bad812.webp
|
||||
- Herzblatt-Philodendron (Philodendron hederaceum) - /plants/philodendron-hederaceum--herzblatt-philodendron--54360959.webp
|
||||
- Herzkette (Ceropegia woodii) - /plants/ceropegia-woodii--herzkette--b51fb231.webp
|
||||
- Hibiskus (Hibiscus rosa-sinensis) - /plants/hibiscus-rosa-sinensis--hibiskus--9e6d8b54.webp
|
||||
- Hyazinthe (Hyacinthus orientalis) - /plants/hyacinthus-orientalis--hyazinthe--2c07af5d.webp
|
||||
- Indische Azalee (Azalea indica) - /plants/azalea-indica--indische-azalee--fe6e49a3.webp
|
||||
- Ingwer (Zingiber officinale) - /plants/zingiber-officinale--ingwer--597975c9.webp
|
||||
- Jadepflanze (Crassula ovata) - /plants/crassula-ovata--jadepflanze--3ac94122.webp
|
||||
- Japanische Aucube (Aucuba japonica) - /plants/aucuba-japonica--japanische-aucube--c4bcd588.webp
|
||||
- Japanische Azalee (Rhododendron simsii) - /plants/rhododendron-simsii--japanische-azalee--ef16f2c0.webp
|
||||
- Jasmin (Jasminum polyanthum) - /plants/jasminum-polyanthum--jasmin--14162cf1.webp
|
||||
- Johanniskraut (Hypericum perforatum) - /plants/hypericum-perforatum--johanniskraut--9bdb2ebc.webp
|
||||
- Kaffeestrauch (Coffea arabica) - /plants/coffea-arabica--kaffeestrauch--a5ffdda3.webp
|
||||
- Kalanchoe (Kalanchoe blossfeldiana) - /plants/kalanchoe-blossfeldiana--kalanchoe--e040640f.webp
|
||||
- Kamelie (Camellia japonica) - /plants/camellia-japonica--kamelie--6a23eb3f.webp
|
||||
- Kamille (Chamomilla recutita) - /plants/chamomilla-recutita--kamille--0bffdb72.webp
|
||||
- Kaninchen-Ohren (Kalanchoe tomentosa) - /plants/kalanchoe-tomentosa--kaninchen-ohren--2c3b1e90.webp
|
||||
- Kannenpflanze (Nepenthes alata) - /plants/nepenthes-alata--kannenpflanze--30016442.webp
|
||||
- Kap-Aloe (Aloe arborescens) - /plants/aloe-arborescens--kap-aloe--2c4f60ef.webp
|
||||
- Kap-Aloe (ferox) (Aloe ferox) - /plants/aloe-ferox--kap-aloe-ferox--e78c3f65.webp
|
||||
- Karotte (Daucus carota) - /plants/daucus-carota--karotte--85d90d33.webp
|
||||
- Kentia-Palme (Howea forsteriana) - /plants/howea-forsteriana--kentia-palme--f2c205ea.webp
|
||||
- Keulenlilie (Cordyline australis) - /plants/cordyline-australis--keulenlilie--31be351b.webp
|
||||
- Kleeblume (Oxalis triangularis) - /plants/oxalis-triangularis--kleeblume--9080763b.webp
|
||||
- Kleine Wachsblume (Hoya bella) - /plants/hoya-bella--kleine-wachsblume--db73dcff.webp
|
||||
- Knollen-Begonie (Begonia tuberhybrida) - /plants/begonia-tuberhybrida--knollen-begonie--7d9dfd00.webp
|
||||
- Koenigin der Nacht (Epiphyllum oxypetalum) - /plants/epiphyllum-oxypetalum--koenigin-der-nacht--7ecd1979.webp
|
||||
- Koenigs-Protea (Protea cynaroides) - /plants/protea-cynaroides--koenigs-protea--2186e16d.webp
|
||||
- Koenigsbegonie (Begonia rex) - /plants/begonia-rex--koenigsbegonie--b6083f44.webp
|
||||
- Konophytum (Conophytum calculus) - /plants/conophytum-calculus--konophytum--4c3a116e.webp
|
||||
- Korallenkaktus (Rhipsalis baccifera) - /plants/rhipsalis-baccifera--korallenkaktus--3097b146.webp
|
||||
- Korbmarante (Calathea orbifolia) - /plants/calathea-orbifolia--korbmarante--fdc40419.webp
|
||||
- Kotyledon (Cotyledon orbiculata) - /plants/cotyledon-orbiculata--kotyledon--e61a1c1a.webp
|
||||
- Krokus (Crocus vernus) - /plants/crocus-vernus--krokus--31f51b70.webp
|
||||
- Kurkuma (Curcuma longa) - /plants/curcuma-longa--kurkuma--cb270150.webp
|
||||
- Lebende Steine (Lithops julii) - /plants/lithops-julii--lebende-steine--939c0d2c.webp
|
||||
- Lila Tradescantia (Tradescantia pallida) - /plants/tradescantia-pallida--lila-tradescantia--fa444b81.webp
|
||||
- Lippenstiftpflanze (Aeschynanthus radicans) - /plants/aeschynanthus-radicans--lippenstiftpflanze--c0f3a18c.webp
|
||||
- Luftpflanze (Tillandsia ionantha) - /plants/tillandsia-ionantha--luftpflanze--c221d48d.webp
|
||||
- Madagaskar-Jasmin (Stephanotis floribunda) - /plants/stephanotis-floribunda--madagaskar-jasmin--f5b3e914.webp
|
||||
- Maisstrauch (Dracaena fragrans) - /plants/dracaena-fragrans--maisstrauch--107c7d0f.webp
|
||||
- Mammillaria (Mammillaria zeilmanniana) - /plants/mammillaria-zeilmanniana--mammillaria--ee6d834e.webp
|
||||
- Mangold (Beta vulgaris) - /plants/beta-vulgaris--mangold--7fb88006.webp
|
||||
- Marmor-Efeutute (Epipremnum aureum Marble Queen) - /plants/epipremnum-aureum-marble-queen--marmor-efeutute--1d6745d9.webp
|
||||
- Mexikanische Faecherpalme (Washingtonia robusta) - /plants/washingtonia-robusta--mexikanische-facherpalme--ced2cfe1.webp
|
||||
- Mini-Monstera (Rhaphidophora tetrasperma) - /plants/rhaphidophora-tetrasperma--mini-monstera--8698ef03.webp
|
||||
- Mond-Kaktus (Gymnocalycium mihanovichii) - /plants/gymnocalycium-mihanovichii--mond-kaktus--c7e6e78b.webp
|
||||
- Mondstein-Pflanze (Pachyphytum oviferum) - /plants/pachyphytum-oviferum--mondstein-pflanze--66cf2adc.webp
|
||||
- Monstera (Monstera deliciosa) - /plants/monstera-deliciosa--monstera--17b8209e.webp
|
||||
- Monstera adansonii (Monstera adansonii) - /plants/monstera-adansonii--911eb5ba.webp
|
||||
- Monstera obliqua (Monstera obliqua) - /plants/monstera-obliqua--8ab6f307.webp
|
||||
- Moos-Crassula (Crassula muscosa) - /plants/crassula-muscosa--moos-crassula--41420e37.webp
|
||||
- Muschelingwer (Alpinia zerumbet) - /plants/alpinia-zerumbet--muschelingwer--f0c5c11e.webp
|
||||
- Neon-Efeutute (Epipremnum pinnatum Neon) - /plants/epipremnum-pinnatum-neon--neon-efeutute--3e91b575.webp
|
||||
- Neoregelia (Neoregelia carolinae) - /plants/neoregelia-carolinae--neoregelia--454c3c96.webp
|
||||
- Neuguinea-Balsamine (Impatiens hawkeri) - /plants/impatiens-hawkeri--neuguinea-balsamine--4e5c7c8f.webp
|
||||
- Oleander (Nerium oleander) - /plants/nerium-oleander--oleander--87c4b966.webp
|
||||
- Orangenbaum (Citrus sinensis) - /plants/citrus-sinensis--orangenbaum--294e1722.webp
|
||||
- Oregano (Origanum vulgare) - /plants/origanum-vulgare--oregano--33c6269c.webp
|
||||
- Osterglocke (Narcissus pseudonarcissus) - /plants/narcissus-pseudonarcissus--osterglocke--32e917c0.webp
|
||||
- Ostertrompete (Lilium longiflorum) - /plants/lilium-longiflorum--ostertrompete--4b791484.webp
|
||||
- Papaya (Carica papaya) - /plants/carica-papaya--papaya--240dc331.webp
|
||||
- Paradiesvogelblume (Strelitzia reginae) - /plants/strelitzia-reginae--paradiesvogelblume--3ee1f013.webp
|
||||
- Paragraphenpflanze (Cyperus alternifolius) - /plants/cyperus-alternifolius--paragraphenpflanze--986a54bf.webp
|
||||
- Passionsblume (Passiflora caerulea) - /plants/passiflora-caerulea--passionsblume--b8effb5e.webp
|
||||
- Perlenschnur-Pflanze (Senecio rowleyanus) - /plants/senecio-rowleyanus--perlenschnur-pflanze--803d2b22.webp
|
||||
- Peruanischer Fackelkaktus (Cereus peruvianus) - /plants/cereus-peruvianus--peruanischer-fackelkaktus--b087b5cf.webp
|
||||
- Petersilie (Petroselinum crispum) - /plants/petroselinum-crispum--petersilie--23a7cb86.webp
|
||||
- Petunie (Petunia hybrida) - /plants/petunia-hybrida--petunie--af7deb4f.webp
|
||||
- Pfeilblatt (Syngonium podophyllum) - /plants/syngonium-podophyllum--pfeilblatt--ca7b7b9f.webp
|
||||
- Pferdeschwanzpalme (Beaucarnea recurvata) - /plants/beaucarnea-recurvata--pferdeschwanzpalme--31691c81.webp
|
||||
- Philodendron bipinnatifidum (Philodendron bipinnatifidum) - /plants/philodendron-bipinnatifidum--f7a662b8.webp
|
||||
- Philodendron gloriosum (Philodendron gloriosum) - /plants/philodendron-gloriosum--059733a1.webp
|
||||
- Primel (Primula vulgaris) - /plants/primula-vulgaris--primel--038312ee.webp
|
||||
- Purpursonnentau (Sarracenia purpurea) - /plants/sarracenia-purpurea--purpursonnentau--38d9e604.webp
|
||||
- Radieschen (Raphanus sativus) - /plants/raphanus-sativus--radieschen--797f22e6.webp
|
||||
- Regenbogenmoos (Selaginella uncinata) - /plants/selaginella-uncinata--regenbogenmoos--fac3dec7.webp
|
||||
- Riemenblatt (Clivia miniata) - /plants/clivia-miniata--riemenblatt--29bc76f5.webp
|
||||
- Rippenpeperomie (Peperomia caperata) - /plants/peperomia-caperata--rippenpeperomie--b3a48151.webp
|
||||
- Ritterstern (Hippeastrum hybrid) - /plants/hippeastrum-hybrid--ritterstern--82bc6dc8.webp
|
||||
- Rosengeranie (Pelargonium graveolens) - /plants/pelargonium-graveolens--rosengeranie--d7f8a481.webp
|
||||
- Rosmarin (Rosmarinus officinalis) - /plants/rosmarinus-officinalis--rosmarin--2791f58d.webp
|
||||
- Roter Fingerhut (Digitalis purpurea) - /plants/digitalis-purpurea--roter-fingerhut--be177092.webp
|
||||
- Roter Philodendron (Philodendron erubescens) - /plants/philodendron-erubescens--roter-philodendron--5d917978.webp
|
||||
- Salat (Lactuca sativa) - /plants/lactuca-sativa--salat--7cd31564.webp
|
||||
- Salbei (Salvia officinalis) - /plants/salvia-officinalis--salbei--9fe3bf8f.webp
|
||||
- San-Pedro-Kaktus (Echinopsis pachanoi) - /plants/echinopsis-pachanoi--san-pedro-kaktus--7f1085bc.webp
|
||||
- Satinpothos (Scindapsus pictus) - /plants/scindapsus-pictus--satinpothos--8991b0e9.webp
|
||||
- Schafgarbe (Achillea millefolium) - /plants/achillea-millefolium--schafgarbe--a945b3a0.webp
|
||||
- Schamkraut (Mimosa pudica) - /plants/mimosa-pudica--schamkraut--89ce823f.webp
|
||||
- Schmetterlingsorchidee (Phalaenopsis amabilis) - /plants/phalaenopsis-amabilis--schmetterlingsorchidee--3c14cbf2.webp
|
||||
- Schnittlauch (Allium schoenoprasum) - /plants/allium-schoenoprasum--schnittlauch--d820fe95.webp
|
||||
- Schraubenbaum (Pandanus veitchii) - /plants/pandanus-veitchii--schraubenbaum--36aa501d.webp
|
||||
- Schusterpflanze (Aspidistra elatior) - /plants/aspidistra-elatior--schusterpflanze--27471002.webp
|
||||
- Schwarze Rose (Aeonium) (Aeonium arboreum) - /plants/aeonium-arboreum--schwarze-rose-aeonium--2fa8210f.webp
|
||||
- Schwarzer Holunder (Sambucus nigra) - /plants/sambucus-nigra--schwarzer-holunder--fd1fe0a5.webp
|
||||
- Schwertfarn (Nephrolepis exaltata) - /plants/nephrolepis-exaltata--schwertfarn--9049369c.webp
|
||||
- Silber-Weide (Salix alba) - /plants/salix-alba--silber-weide--407a5b47.webp
|
||||
- Silbervase (Aechmea fasciata) - /plants/aechmea-fasciata--silbervase--04efba01.webp
|
||||
- Socotra-Wuestenrose (Adenium socotranum) - /plants/adenium-socotranum--socotra-wuestenrose--0118195c.webp
|
||||
- Sonnenhut (Echinacea purpurea) - /plants/echinacea-purpurea--sonnenhut--cd110eab.webp
|
||||
- Sonnentau (Drosera capensis) - /plants/drosera-capensis--sonnentau--7122f48c.webp
|
||||
- Spanisches Moos (Tillandsia usneoides) - /plants/tillandsia-usneoides--spanisches-moos--80677975.webp
|
||||
- Speckbaum (Portulacaria afra) - /plants/portulacaria-afra--speckbaum--b630ec3c.webp
|
||||
- Spiegelpeperomie (Peperomia obtusifolia) - /plants/peperomia-obtusifolia--spiegelpeperomie--fffbf481.webp
|
||||
- Spinat (Spinacia oleracea) - /plants/spinacia-oleracea--spinat--67379554.webp
|
||||
- Stab-Palme (Rhapis excelsa) - /plants/rhapis-excelsa--stab-palme--3f2eded0.webp
|
||||
- Stiefmuetterchen (Viola wittrockiana) - /plants/viola-wittrockiana--stiefmuetterchen--d2cb587c.webp
|
||||
- Stiefmuetterchen-Orchidee (Miltoniopsis roezlii) - /plants/miltoniopsis-roezlii--stiefmuetterchen-orchidee--87379182.webp
|
||||
- Strahlenaralie (Schefflera arboricola) - /plants/schefflera-arboricola--strahlenaralie--b445fcbb.webp
|
||||
- Stromanthe (Stromanthe sanguinea) - /plants/stromanthe-sanguinea--stromanthe--a9ffe5b3.webp
|
||||
- Studentenblume (Tagetes patula) - /plants/tagetes-patula--studentenblume--0da7d656.webp
|
||||
- Suesskartoffel (Ipomoea batatas) - /plants/ipomoea-batatas--suesskartoffel--09695c9f.webp
|
||||
- Tanzerinnen-Orchidee (Oncidium sphacelatum) - /plants/oncidium-sphacelatum--tanzerinnen-orchidee--79ae7545.webp
|
||||
- Taro (Colocasia esculenta) - /plants/colocasia-esculenta--taro--d23c3d35.webp
|
||||
- Teestrauch (Camellia sinensis) - /plants/camellia-sinensis--teestrauch--2c1d14da.webp
|
||||
- Tempel-Baum (Plumeria rubra) - /plants/plumeria-rubra--tempel-baum--657d110b.webp
|
||||
- Thymian (Thymus vulgaris) - /plants/thymus-vulgaris--thymian--64a6471c.webp
|
||||
- Tiroler Keulenlilie (Cordyline fruticosa) - /plants/cordyline-fruticosa--tiroler-keulenlilie--4a44ec99.webp
|
||||
- Tomate (Solanum lycopersicum) - /plants/solanum-lycopersicum--tomate--e68be402.webp
|
||||
- Traubenhyazinthe (Muscari armeniacum) - /plants/muscari-armeniacum--traubenhyazinthe--bc818bf4.webp
|
||||
- Triphylla-Fuchsie (Fuchsia triphylla) - /plants/fuchsia-triphylla--triphylla-fuchsie--822e8e3b.webp
|
||||
- Tueipelfarn (Polypodium vulgare) - /plants/polypodium-vulgare--tueipelfarn--2e4f5046.webp
|
||||
- Tueipelfarn (Microsorum) (Microsorum punctatum) - /plants/microsorum-punctatum--tueipelfarn-microsorum--77fa4bea.webp
|
||||
- Tulpe (Tulipa gesneriana) - /plants/tulipa-gesneriana--tulpe--373bf645.webp
|
||||
- Ufopflanze (Pilea peperomioides) - /plants/pilea-peperomioides--ufopflanze--6b60c68b.webp
|
||||
- Vanda-Orchidee (Vanda coerulea) - /plants/vanda-coerulea--vanda-orchidee--d3b6fab1.webp
|
||||
- Vanille (Vanilla planifolia) - /plants/vanilla-planifolia--vanille--39790d8a.webp
|
||||
- Venusfliegenfalle (Dionaea muscipula) - /plants/dionaea-muscipula--venusfliegenfalle--fbcebf61.webp
|
||||
- Vogelnest-Farn (Asplenium nidus) - /plants/asplenium-nidus--vogelnest-farn--c9fbbb3c.webp
|
||||
- Wachsblume (Hoya carnosa) - /plants/hoya-carnosa--wachsblume--4da8fed5.webp
|
||||
- Wandelroeschen (Lantana camara) - /plants/lantana-camara--wandelroeschen--b8fc5640.webp
|
||||
- Wasserschlauch (Utricularia gibba) - /plants/utricularia-gibba--wasserschlauch--13643b06.webp
|
||||
- Weihnachtskaktus (Schlumbergera truncata) - /plants/schlumbergera-truncata--weihnachtskaktus--c8f10c80.webp
|
||||
- Weihnachtsstern (Euphorbia pulcherrima) - /plants/euphorbia-pulcherrima--weihnachtsstern--ce82aeac.webp
|
||||
- Weisse Strelitzie (Strelitzia nicolai) - /plants/strelitzia-nicolai--weisse-strelitzie--30b92c65.webp
|
||||
- Weisse Tradescantia (Tradescantia fluminensis) - /plants/tradescantia-fluminensis--weisse-tradescantia--ed8ecd20.webp
|
||||
- Wermut (Artemisia absinthium) - /plants/artemisia-absinthium--wermut--26709c63.webp
|
||||
- Wuestenrose (Adenium obesum) - /plants/adenium-obesum--wuestenrose--18b1b800.webp
|
||||
- Yucca-Palme (Yucca elephantipes) - /plants/yucca-elephantipes--yucca-palme--1e34e66e.webp
|
||||
- Zamioculcas (Zamioculcas zamiifolia) - /plants/zamioculcas-zamiifolia--zamioculcas--dd98f155.webp
|
||||
- Zaubernuss (Hamamelis mollis) - /plants/hamamelis-mollis--zaubernuss--7ef3c16c.webp
|
||||
- Zebra-Haworthie (Haworthia fasciata) - /plants/haworthia-fasciata--zebra-haworthie--e4e7e4db.webp
|
||||
- Zebrakraut (Tradescantia zebrina) - /plants/tradescantia-zebrina--zebrakraut--1e9a096a.webp
|
||||
- Zinnie (Zinnia elegans) - /plants/zinnia-elegans--zinnie--6d666757.webp
|
||||
- Zitronenbaum (Citrus limon) - /plants/citrus-limon--zitronenbaum--100d9901.webp
|
||||
- Zitronenmelisse (Melissa officinalis) - /plants/melissa-officinalis--zitronenmelisse--79ec1828.webp
|
||||
- Zwergdattelpalme (Phoenix roebelenii) - /plants/phoenix-roebelenii--zwergdattelpalme--f83a8f6a.webp
|
||||
- Zylindrischer Bogenhanf (Sansevieria cylindrica) - /plants/sansevieria-cylindrica--zylindrischer-bogenhanf--5b3a59b5.webp
|
||||
- Zymbidium (Cymbidium lowianum) - /plants/cymbidium-lowianum--zymbidium--3ee7a3d5.webp
|
||||
|
||||
## Moegliche zusaetzliche Pflanzen aus Internet-Recherche
|
||||
|
||||
Recherche am: 2026-03-11
|
||||
Gesamtzahl neue Vorschlaege: 209
|
||||
|
||||
Kuratiert aus bekannten Pflanzenlisten und Garten-Guides.
|
||||
Quellen:
|
||||
- https://www.gardenersworld.com/plants/house-plants/
|
||||
- https://www.rhs.org.uk/plants/types/houseplants
|
||||
- https://www.almanac.com/plant/growing-guides
|
||||
|
||||
### Gemuese (45)
|
||||
|
||||
- Kartoffel (Solanum tuberosum)
|
||||
- Zwiebel (Allium cepa)
|
||||
- Knoblauch (Allium sativum)
|
||||
- Lauch (Allium ampeloprasum var. porrum)
|
||||
- Fruehlingszwiebel (Allium fistulosum)
|
||||
- Erbse (Pisum sativum)
|
||||
- Buschbohne (Phaseolus vulgaris)
|
||||
- Ackerbohne (Vicia faba)
|
||||
- Mais (Zea mays)
|
||||
- Brokkoli (Brassica oleracea var. italica)
|
||||
- Blumenkohl (Brassica oleracea var. botrytis)
|
||||
- Weisskohl (Brassica oleracea var. capitata)
|
||||
- Rotkohl (Brassica oleracea var. capitata f. rubra)
|
||||
- Rosenkohl (Brassica oleracea var. gemmifera)
|
||||
- Gruenkohl (Brassica oleracea var. sabellica)
|
||||
- Kohlrabi (Brassica oleracea var. gongylodes)
|
||||
- Pak Choi (Brassica rapa subsp. chinensis)
|
||||
- Chinakohl (Brassica rapa subsp. pekinensis)
|
||||
- Steckruebe (Brassica napus subsp. napobrassica)
|
||||
- Stangensellerie (Apium graveolens var. dulce)
|
||||
- Knollensellerie (Apium graveolens var. rapaceum)
|
||||
- Pastinake (Pastinaca sativa)
|
||||
- Spargel (Asparagus officinalis)
|
||||
- Artischocke (Cynara cardunculus var. scolymus)
|
||||
- Rhabarber (Rheum rhabarbarum)
|
||||
- Zucchini (Cucurbita pepo)
|
||||
- Kuerbis (Cucurbita maxima)
|
||||
- Butternut-Kuerbis (Cucurbita moschata)
|
||||
- Okra (Abelmoschus esculentus)
|
||||
- Endivie (Cichorium endivia)
|
||||
- Chicoree (Cichorium intybus var. foliosum)
|
||||
- Rucola (Eruca vesicaria)
|
||||
- Brunnenkresse (Nasturtium officinale)
|
||||
- Gartenkresse (Lepidium sativum)
|
||||
- Fenchel (Foeniculum vulgare)
|
||||
- Meerrettich (Armoracia rusticana)
|
||||
- Topinambur (Helianthus tuberosus)
|
||||
- Wirsing (Brassica oleracea var. sabauda)
|
||||
- Sojabohne (Glycine max)
|
||||
- Erdnuss (Arachis hypogaea)
|
||||
- Kichererbse (Cicer arietinum)
|
||||
- Linse (Lens culinaris)
|
||||
- Quinoa (Chenopodium quinoa)
|
||||
- Maniok (Manihot esculenta)
|
||||
- Yam (Dioscorea alata)
|
||||
|
||||
### Kraeuter (20)
|
||||
|
||||
- Lorbeer (Laurus nobilis)
|
||||
- Estragon (Artemisia dracunculus)
|
||||
- Bohnenkraut (Satureja hortensis)
|
||||
- Majoran (Origanum majorana)
|
||||
- Kerbel (Anthriscus cerefolium)
|
||||
- Liebstoeckel (Levisticum officinale)
|
||||
- Zitronengras (Cymbopogon citratus)
|
||||
- Zitronenverbene (Aloysia citrodora)
|
||||
- Borretsch (Borago officinalis)
|
||||
- Sauerampfer (Rumex acetosa)
|
||||
- Stevia (Stevia rebaudiana)
|
||||
- Katzenminze (Nepeta cataria)
|
||||
- Currykraut (Helichrysum italicum)
|
||||
- Shiso (Perilla frutescens)
|
||||
- Schnittknoblauch (Allium tuberosum)
|
||||
- Ysop (Hyssopus officinalis)
|
||||
- Wasabi (Eutrema japonicum)
|
||||
- Roemische Kamille (Chamaemelum nobile)
|
||||
- Koriander (Coriandrum sativum)
|
||||
- Dill (Anethum graveolens)
|
||||
|
||||
### Obst (36)
|
||||
|
||||
- Apfelbaum (Malus domestica)
|
||||
- Birnbaum (Pyrus communis)
|
||||
- Pfirsichbaum (Prunus persica)
|
||||
- Pflaumenbaum (Prunus domestica)
|
||||
- Kirschbaum (Prunus avium)
|
||||
- Aprikosenbaum (Prunus armeniaca)
|
||||
- Feigenbaum (Ficus carica)
|
||||
- Olivenbaum (Olea europaea)
|
||||
- Avocado (Persea americana)
|
||||
- Weinrebe (Vitis vinifera)
|
||||
- Heidelbeere (Vaccinium corymbosum)
|
||||
- Himbeere (Rubus idaeus)
|
||||
- Brombeere (Rubus fruticosus)
|
||||
- Stachelbeere (Ribes uva-crispa)
|
||||
- Johannisbeere (Ribes rubrum)
|
||||
- Schwarze Johannisbeere (Ribes nigrum)
|
||||
- Kiwi (Actinidia deliciosa)
|
||||
- Mango (Mangifera indica)
|
||||
- Ananas (Ananas comosus)
|
||||
- Kokospalme (Cocos nucifera)
|
||||
- Drachenfrucht (Selenicereus undatus)
|
||||
- Passionsfrucht (Passiflora edulis)
|
||||
- Litschi (Litchi chinensis)
|
||||
- Grapefruit (Citrus paradisi)
|
||||
- Mandarine (Citrus reticulata)
|
||||
- Limette (Citrus aurantiifolia)
|
||||
- Clementine (Citrus clementina)
|
||||
- Maulbeere (Morus alba)
|
||||
- Kaki (Diospyros kaki)
|
||||
- Dattelpalme (Phoenix dactylifera)
|
||||
- Mandelbaum (Prunus dulcis)
|
||||
- Walnussbaum (Juglans regia)
|
||||
- Haselnuss (Corylus avellana)
|
||||
- Kastanie (Castanea sativa)
|
||||
- Pekannussbaum (Carya illinoinensis)
|
||||
- Macadamia (Macadamia integrifolia)
|
||||
|
||||
### Blumen (61)
|
||||
|
||||
- Sonnenblume (Helianthus annuus)
|
||||
- Rose (Rosa x hybrida)
|
||||
- Pfingstrose (Paeonia lactiflora)
|
||||
- Bart-Iris (Iris germanica)
|
||||
- Gaensebluemchen (Bellis perennis)
|
||||
- Nelke (Dianthus caryophyllus)
|
||||
- Loewenmaeulchen (Antirrhinum majus)
|
||||
- Hortensie (Hydrangea macrophylla)
|
||||
- Flieder (Syringa vulgaris)
|
||||
- Kosmee (Cosmos bipinnatus)
|
||||
- Kapuzinerkresse (Tropaeolum majus)
|
||||
- Buntnessel (Plectranthus scutellarioides)
|
||||
- Rittersporn (Delphinium elatum)
|
||||
- Lupine (Lupinus polyphyllus)
|
||||
- Stockrose (Alcea rosea)
|
||||
- Prunkwinde (Ipomoea purpurea)
|
||||
- Clematis (Clematis viticella)
|
||||
- Duftwicke (Lathyrus odoratus)
|
||||
- Hasengloeckchen (Hyacinthoides non-scripta)
|
||||
- Maigloeckchen (Convallaria majalis)
|
||||
- Gladiole (Gladiolus hortulanus)
|
||||
- Ranunkel (Ranunculus asiaticus)
|
||||
- Anemone (Anemone coronaria)
|
||||
- Eisenkraut (Verbena bonariensis)
|
||||
- Flammenblume (Phlox paniculata)
|
||||
- Herbstaster (Symphyotrichum novi-belgii)
|
||||
- Rudbeckie (Rudbeckia hirta)
|
||||
- Feuersalbei (Salvia splendens)
|
||||
- Freesie (Freesia refracta)
|
||||
- Rhododendron (Rhododendron catawbiense)
|
||||
- Geissblatt (Lonicera japonica)
|
||||
- Arabischer Jasmin (Jasminum sambac)
|
||||
- Margerite (Leucanthemum vulgare)
|
||||
- Stehende Geranie (Pelargonium zonale)
|
||||
- Eisbegonie (Begonia semperflorens-cultorum)
|
||||
- Gartenbalsamine (Impatiens balsamina)
|
||||
- Vergissmeinnicht (Myosotis sylvatica)
|
||||
- Seidenpflanze (Asclepias tuberosa)
|
||||
- Indianernessel (Monarda didyma)
|
||||
- Bechermalve (Lavatera trimestris)
|
||||
- Maedchenauge (Coreopsis tinctoria)
|
||||
- Taglilie (Hemerocallis fulva)
|
||||
- Lenzrose (Helleborus orientalis)
|
||||
- Trompetenwinde (Campsis radicans)
|
||||
- Mohn (Papaver rhoeas)
|
||||
- Kalifornischer Mohn (Eschscholzia californica)
|
||||
- Ringelblume (Calendula officinalis)
|
||||
- Kornblume (Centaurea cyanus)
|
||||
- Bartnelke (Dianthus barbatus)
|
||||
- Mittagsgold (Gazania rigens)
|
||||
- Heliotrop (Heliotropium arborescens)
|
||||
- Koenigskerze (Verbascum thapsus)
|
||||
- Ziertabak (Nicotiana alata)
|
||||
- Fuchsschwanz (Amaranthus caudatus)
|
||||
- Mehlsalbei (Salvia farinacea)
|
||||
- Kokardenblume (Gaillardia aristata)
|
||||
- Traenendes Herz (Lamprocapnos spectabilis)
|
||||
- Hornveilchen (Viola cornuta)
|
||||
- Nemesie (Nemesia strumosa)
|
||||
- Kapmargerite (Osteospermum ecklonis)
|
||||
- Shasta-Margerite (Leucanthemum x superbum)
|
||||
|
||||
### Baeume und Straeucher (22)
|
||||
|
||||
- Buchsbaum (Buxus sempervirens)
|
||||
- Stechpalme (Ilex aquifolium)
|
||||
- Magnolie (Magnolia grandiflora)
|
||||
- Eiche (Quercus robur)
|
||||
- Kiefer (Pinus sylvestris)
|
||||
- Fichte (Picea abies)
|
||||
- Zeder (Cedrus libani)
|
||||
- Zypresse (Cupressus sempervirens)
|
||||
- Eukalyptus (Eucalyptus globulus)
|
||||
- Jacaranda (Jacaranda mimosifolia)
|
||||
- Spitzahorn (Acer platanoides)
|
||||
- Eberesche (Sorbus aucuparia)
|
||||
- Robinie (Robinia pseudoacacia)
|
||||
- Flammenbaum (Delonix regia)
|
||||
- Ginkgo (Ginkgo biloba)
|
||||
- Trompetenbaum (Catalpa bignonioides)
|
||||
- Kirschlorbeer (Prunus laurocerasus)
|
||||
- Forsythie (Forsythia x intermedia)
|
||||
- Gartenhibiskus (Hibiscus syriacus)
|
||||
- Weigelie (Weigela florida)
|
||||
- Spierstrauch (Spiraea japonica)
|
||||
- Schmetterlingsflieder (Buddleja davidii)
|
||||
|
||||
### Zimmerpflanzen (25)
|
||||
|
||||
- Kroton (Codiaeum variegatum)
|
||||
- Alocasia zebrina (Alocasia zebrina)
|
||||
- Nervenpflanze (Fittonia albivenis)
|
||||
- Punktblatt (Hypoestes phyllostachya)
|
||||
- Aluminium-Pflanze (Pilea cadierei)
|
||||
- Wassermelonen-Peperomie (Peperomia argyreia)
|
||||
- Raindrop-Peperomie (Peperomia polybotrya)
|
||||
- Glueckskastanie (Pachira aquatica)
|
||||
- Norfolk-Tanne (Araucaria heterophylla)
|
||||
- Samt-Anthurie (Anthurium clarinervium)
|
||||
- Kristall-Anthurie (Anthurium crystallinum)
|
||||
- Falsche Aralie (Schefflera elegantissima)
|
||||
- String of Bananas (Curio radicans)
|
||||
- String of Dolphins (Curio x peregrinus)
|
||||
- Bubikopf (Soleirolia soleirolii)
|
||||
- Palmfarn (Cycas revoluta)
|
||||
- Calathea lancifolia (Goeppertia insignis)
|
||||
- Calathea ornata (Goeppertia ornata)
|
||||
- Philodendron Brasil (Philodendron hederaceum 'Brasil')
|
||||
- Philodendron Pink Princess (Philodendron erubescens 'Pink Princess')
|
||||
- Philodendron Xanadu (Thaumatophyllum xanadu)
|
||||
- Kaffeepflanze arabica nana (Coffea arabica 'Nana')
|
||||
- Yucca aloifolia (Yucca aloifolia)
|
||||
- Ficus microcarpa (Ficus microcarpa)
|
||||
- Ficus altissima (Ficus altissima)
|
||||
680
App.tsx
|
|
@ -1,680 +0,0 @@
|
|||
|
||||
import React, { useState, useEffect, useRef } from 'react';
|
||||
import { Tab, Plant, IdentificationResult, Language } from './types';
|
||||
import { StorageService } from './services/storageService';
|
||||
import { PlantRecognitionService } from './services/plantRecognitionService';
|
||||
import { PlantDatabaseService } from './services/plantDatabaseService';
|
||||
import { getTranslation } from './utils/translations';
|
||||
import { TabBar } from './components/TabBar';
|
||||
import { PlantCard } from './components/PlantCard';
|
||||
import { PlantSkeleton } from './components/PlantSkeleton';
|
||||
import { ResultCard } from './components/ResultCard';
|
||||
import { PlantDetail } from './components/PlantDetail';
|
||||
import { Toast } from './components/Toast';
|
||||
import { Camera, Image as ImageIcon, HelpCircle, X, Settings as SettingsIcon, ScanLine, Leaf, Plus, Zap, Search, ArrowRight, ArrowLeft, Globe, ChevronDown, ChevronUp, Check, Cpu, BookOpen } from 'lucide-react';
|
||||
|
||||
const generateId = () => Math.random().toString(36).substr(2, 9);
|
||||
|
||||
const App: React.FC = () => {
|
||||
const [activeTab, setActiveTab] = useState<Tab>(Tab.HOME);
|
||||
const [plants, setPlants] = useState<Plant[]>([]);
|
||||
const [isDarkMode, setIsDarkMode] = useState(false);
|
||||
const [language, setLanguage] = useState<Language>('de');
|
||||
const [isLoadingPlants, setIsLoadingPlants] = useState(true);
|
||||
|
||||
// Search State
|
||||
const [searchQuery, setSearchQuery] = useState('');
|
||||
|
||||
// Lexicon State
|
||||
const [isLexiconOpen, setIsLexiconOpen] = useState(false);
|
||||
const [lexiconSearchQuery, setLexiconSearchQuery] = useState('');
|
||||
|
||||
// Settings State
|
||||
const [isLanguageDropdownOpen, setIsLanguageDropdownOpen] = useState(false);
|
||||
|
||||
// Scanner Modal State
|
||||
const [isScannerOpen, setIsScannerOpen] = useState(false);
|
||||
const [selectedImage, setSelectedImage] = useState<string | null>(null);
|
||||
|
||||
// Analysis State
|
||||
const [isAnalyzing, setIsAnalyzing] = useState(false);
|
||||
const [analysisProgress, setAnalysisProgress] = useState(0);
|
||||
const [analysisResult, setAnalysisResult] = useState<IdentificationResult | null>(null);
|
||||
|
||||
// Detail State
|
||||
const [selectedPlant, setSelectedPlant] = useState<Plant | null>(null);
|
||||
|
||||
// Toast State
|
||||
const [toast, setToast] = useState({ message: '', visible: false });
|
||||
|
||||
// Refs
|
||||
const fileInputRef = useRef<HTMLInputElement>(null);
|
||||
|
||||
// Derived state for translations
|
||||
const t = getTranslation(language);
|
||||
|
||||
useEffect(() => {
|
||||
const loadData = async () => {
|
||||
setIsLoadingPlants(true);
|
||||
await new Promise(resolve => setTimeout(resolve, 800));
|
||||
setPlants(StorageService.getPlants());
|
||||
setLanguage(StorageService.getLanguage());
|
||||
setIsLoadingPlants(false);
|
||||
};
|
||||
|
||||
loadData();
|
||||
|
||||
if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
||||
setIsDarkMode(true);
|
||||
document.documentElement.classList.add('dark');
|
||||
}
|
||||
}, []);
|
||||
|
||||
const toggleDarkMode = () => {
|
||||
setIsDarkMode(!isDarkMode);
|
||||
if (!isDarkMode) {
|
||||
document.documentElement.classList.add('dark');
|
||||
} else {
|
||||
document.documentElement.classList.remove('dark');
|
||||
}
|
||||
};
|
||||
|
||||
const changeLanguage = (lang: Language) => {
|
||||
setLanguage(lang);
|
||||
StorageService.saveLanguage(lang);
|
||||
setIsLanguageDropdownOpen(false);
|
||||
};
|
||||
|
||||
const handleImageSelect = (event: React.ChangeEvent<HTMLInputElement>) => {
|
||||
const file = event.target.files?.[0];
|
||||
if (file) {
|
||||
const reader = new FileReader();
|
||||
reader.onloadend = () => {
|
||||
const base64String = reader.result as string;
|
||||
setSelectedImage(base64String);
|
||||
analyzeImage(base64String);
|
||||
};
|
||||
reader.readAsDataURL(file);
|
||||
}
|
||||
};
|
||||
|
||||
const analyzeImage = async (imageUri: string) => {
|
||||
setIsAnalyzing(true);
|
||||
setAnalysisProgress(0);
|
||||
setAnalysisResult(null);
|
||||
|
||||
// Simulate realistic progress
|
||||
const progressInterval = setInterval(() => {
|
||||
setAnalysisProgress(prev => {
|
||||
// Fast start
|
||||
if (prev < 30) return prev + Math.random() * 8;
|
||||
// Slower middle (processing)
|
||||
if (prev < 70) return prev + Math.random() * 2;
|
||||
// Stall at end (waiting for API)
|
||||
if (prev < 90) return prev + 0.5;
|
||||
return prev;
|
||||
});
|
||||
}, 150);
|
||||
|
||||
try {
|
||||
// Pass the current language to the service
|
||||
const result = await PlantRecognitionService.identify(imageUri, language);
|
||||
|
||||
clearInterval(progressInterval);
|
||||
setAnalysisProgress(100);
|
||||
|
||||
// Short delay to allow user to see 100% completion
|
||||
setTimeout(() => {
|
||||
setAnalysisResult(result);
|
||||
setIsAnalyzing(false);
|
||||
}, 500);
|
||||
|
||||
} catch (error) {
|
||||
clearInterval(progressInterval);
|
||||
console.error("Analysis failed", error);
|
||||
alert("Fehler bei der Analyse.");
|
||||
setSelectedImage(null);
|
||||
setIsAnalyzing(false);
|
||||
}
|
||||
};
|
||||
|
||||
const showToast = (message: string) => {
|
||||
setToast({ message, visible: true });
|
||||
};
|
||||
|
||||
const hideToast = () => {
|
||||
setToast(prev => ({ ...prev, visible: false }));
|
||||
};
|
||||
|
||||
const savePlant = () => {
|
||||
if (analysisResult && selectedImage) {
|
||||
const now = new Date().toISOString();
|
||||
const newPlant: Plant = {
|
||||
id: generateId(),
|
||||
name: analysisResult.name,
|
||||
botanicalName: analysisResult.botanicalName,
|
||||
imageUri: selectedImage,
|
||||
dateAdded: now,
|
||||
careInfo: analysisResult.careInfo,
|
||||
lastWatered: now,
|
||||
wateringHistory: [now], // Initialize history with the creation date/first watering
|
||||
description: analysisResult.description,
|
||||
notificationsEnabled: false // Default off
|
||||
};
|
||||
|
||||
StorageService.savePlant(newPlant);
|
||||
setPlants(StorageService.getPlants());
|
||||
closeScanner();
|
||||
|
||||
// Also close lexicon if open
|
||||
setIsLexiconOpen(false);
|
||||
|
||||
showToast(t.plantAddedSuccess);
|
||||
}
|
||||
};
|
||||
|
||||
const closeScanner = () => {
|
||||
setIsScannerOpen(false);
|
||||
setSelectedImage(null);
|
||||
setAnalysisResult(null);
|
||||
setIsAnalyzing(false);
|
||||
setAnalysisProgress(0);
|
||||
if (fileInputRef.current) fileInputRef.current.value = '';
|
||||
};
|
||||
|
||||
const openScanner = () => {
|
||||
setIsScannerOpen(true);
|
||||
};
|
||||
|
||||
const handlePlantClick = (plant: Plant) => {
|
||||
setSelectedPlant(plant);
|
||||
};
|
||||
|
||||
const closeDetail = () => {
|
||||
setSelectedPlant(null);
|
||||
};
|
||||
|
||||
const handleDeletePlant = (id: string) => {
|
||||
StorageService.deletePlant(id);
|
||||
setPlants(prev => prev.filter(p => p.id !== id));
|
||||
closeDetail();
|
||||
showToast(t.plantDeleted);
|
||||
};
|
||||
|
||||
const handleUpdatePlant = (updatedPlant: Plant) => {
|
||||
StorageService.updatePlant(updatedPlant);
|
||||
setPlants(prev => prev.map(p => p.id === updatedPlant.id ? updatedPlant : p));
|
||||
setSelectedPlant(updatedPlant);
|
||||
showToast(t.wateredSuccess);
|
||||
};
|
||||
|
||||
// Lexicon Handling
|
||||
const handleLexiconItemClick = (item: any) => {
|
||||
// We treat this like a "Scan Result" for simplicity, reusing the ResultCard
|
||||
setAnalysisResult(item);
|
||||
setSelectedImage(item.imageUri);
|
||||
// Since ResultCard is rendered conditionally based on analysisResult && selectedImage,
|
||||
// we need to make sure the view is visible.
|
||||
// We will render ResultCard inside the Lexicon view if selected.
|
||||
};
|
||||
|
||||
const closeLexiconResult = () => {
|
||||
setAnalysisResult(null);
|
||||
setSelectedImage(null);
|
||||
};
|
||||
|
||||
|
||||
// --- SCREENS ---
|
||||
|
||||
const renderHome = () => (
|
||||
<div className="pt-8 pb-24 px-6 min-h-screen bg-stone-50 dark:bg-stone-950">
|
||||
<header className="mb-6 flex justify-between items-center">
|
||||
<h1 className="text-2xl font-bold text-stone-900 dark:text-stone-100">{t.myPlants}</h1>
|
||||
<button onClick={() => setActiveTab(Tab.SETTINGS)}>
|
||||
<SettingsIcon size={24} className="text-stone-900 dark:text-stone-100" />
|
||||
</button>
|
||||
</header>
|
||||
|
||||
{/* Filters */}
|
||||
<div className="flex space-x-3 mb-6 overflow-x-auto no-scrollbar">
|
||||
<button className="flex items-center space-x-2 px-4 py-2 bg-white dark:bg-stone-900 rounded-full shadow-sm border border-stone-100 dark:border-stone-800 flex-shrink-0">
|
||||
<div className="w-2 h-2 bg-green-500 rounded-full"></div>
|
||||
<span className="text-xs font-bold text-stone-800 dark:text-stone-200">{t.allGood}</span>
|
||||
</button>
|
||||
<button className="flex items-center space-x-2 px-4 py-2 bg-stone-100 dark:bg-stone-900/50 rounded-full text-stone-400 flex-shrink-0">
|
||||
<span className="text-xs font-medium">{t.toWater} (0)</span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
{isLoadingPlants ? (
|
||||
<div className="grid grid-cols-2 gap-4 animate-in fade-in duration-500">
|
||||
{[1, 2, 3, 4].map((i) => (
|
||||
<PlantSkeleton key={i} />
|
||||
))}
|
||||
</div>
|
||||
) : plants.length === 0 ? (
|
||||
<div className="flex flex-col items-center justify-center py-20 text-center opacity-60 animate-in fade-in slide-in-from-bottom-4 duration-700">
|
||||
<Leaf size={64} className="text-stone-300 dark:text-stone-700 mb-4" />
|
||||
<p className="text-lg font-medium text-stone-600 dark:text-stone-400">{t.noPlants}</p>
|
||||
</div>
|
||||
) : (
|
||||
<div className="grid grid-cols-2 gap-4 animate-in fade-in duration-500">
|
||||
{plants.map(plant => (
|
||||
<PlantCard key={plant.id} plant={plant} onClick={() => handlePlantClick(plant)} t={t} />
|
||||
))}
|
||||
</div>
|
||||
)}
|
||||
|
||||
{/* FAB */}
|
||||
<button
|
||||
onClick={openScanner}
|
||||
className="fixed bottom-24 right-6 w-14 h-14 bg-primary-500 hover:bg-primary-600 rounded-full shadow-lg shadow-primary-500/40 flex items-center justify-center text-white z-30 transition-transform active:scale-90"
|
||||
>
|
||||
<Camera size={26} />
|
||||
</button>
|
||||
</div>
|
||||
);
|
||||
|
||||
const renderSearch = () => {
|
||||
const filteredPlants = plants.filter(p =>
|
||||
p.name.toLowerCase().includes(searchQuery.toLowerCase()) ||
|
||||
p.botanicalName.toLowerCase().includes(searchQuery.toLowerCase())
|
||||
);
|
||||
|
||||
const categories = [
|
||||
{ name: t.catCareEasy, color: "bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400" },
|
||||
{ name: t.catSucculents, color: "bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-400" },
|
||||
{ name: t.catLowLight, color: "bg-indigo-100 text-indigo-700 dark:bg-indigo-900/30 dark:text-indigo-400" },
|
||||
{ name: t.catPetFriendly, color: "bg-rose-100 text-rose-700 dark:bg-rose-900/30 dark:text-rose-400" },
|
||||
{ name: t.catAirPurifier, color: "bg-teal-100 text-teal-700 dark:bg-teal-900/30 dark:text-teal-400" },
|
||||
{ name: t.catFlowering, color: "bg-fuchsia-100 text-fuchsia-700 dark:bg-fuchsia-900/30 dark:text-fuchsia-400" },
|
||||
];
|
||||
|
||||
return (
|
||||
<div className="pt-8 pb-24 px-6 min-h-screen bg-stone-50 dark:bg-stone-950">
|
||||
<header className="mb-6">
|
||||
<h1 className="text-2xl font-bold text-stone-900 dark:text-stone-100 mb-6">{t.searchTitle}</h1>
|
||||
|
||||
<div className="relative">
|
||||
<Search className="absolute left-4 top-3.5 text-stone-400" size={20} />
|
||||
<input
|
||||
type="text"
|
||||
placeholder={t.searchPlaceholder}
|
||||
value={searchQuery}
|
||||
onChange={(e) => setSearchQuery(e.target.value)}
|
||||
className="w-full bg-white dark:bg-stone-900 border border-stone-200 dark:border-stone-800 rounded-xl py-3 pl-12 pr-4 text-stone-900 dark:text-stone-100 focus:outline-none focus:ring-2 focus:ring-primary-500/50 placeholder:text-stone-400"
|
||||
/>
|
||||
{searchQuery && (
|
||||
<button
|
||||
onClick={() => setSearchQuery('')}
|
||||
className="absolute right-3 top-3.5 text-stone-400 hover:text-stone-600 dark:hover:text-stone-200"
|
||||
>
|
||||
<X size={20} />
|
||||
</button>
|
||||
)}
|
||||
</div>
|
||||
</header>
|
||||
|
||||
{searchQuery ? (
|
||||
<div>
|
||||
<h2 className="text-sm font-bold text-stone-500 dark:text-stone-400 uppercase tracking-wider mb-4">
|
||||
{filteredPlants.length} {t.resultsInPlants}
|
||||
</h2>
|
||||
{filteredPlants.length > 0 ? (
|
||||
<div className="grid grid-cols-2 gap-4">
|
||||
{filteredPlants.map(plant => (
|
||||
<PlantCard key={plant.id} plant={plant} onClick={() => handlePlantClick(plant)} t={t} />
|
||||
))}
|
||||
</div>
|
||||
) : (
|
||||
<div className="text-center py-12">
|
||||
<p className="text-stone-500 dark:text-stone-400">{t.noResults}</p>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
) : (
|
||||
<div className="animate-in fade-in slide-in-from-bottom-4 duration-500">
|
||||
<h2 className="text-lg font-bold text-stone-900 dark:text-stone-100 mb-4">{t.categories}</h2>
|
||||
<div className="grid grid-cols-2 gap-3">
|
||||
{categories.map((cat) => (
|
||||
<button
|
||||
key={cat.name}
|
||||
className={`p-4 rounded-xl text-left font-medium transition-transform active:scale-95 flex justify-between items-center group ${cat.color}`}
|
||||
>
|
||||
<span>{cat.name}</span>
|
||||
<ArrowRight size={16} className="opacity-0 group-hover:opacity-100 transition-opacity transform group-hover:translate-x-1" />
|
||||
</button>
|
||||
))}
|
||||
</div>
|
||||
|
||||
<div
|
||||
onClick={() => setIsLexiconOpen(true)}
|
||||
className="mt-8 p-6 bg-gradient-to-br from-primary-600 to-primary-800 rounded-2xl text-white shadow-lg relative overflow-hidden cursor-pointer active:scale-[0.98] transition-transform"
|
||||
>
|
||||
<div className="relative z-10">
|
||||
<h3 className="text-xl font-serif font-bold mb-2 flex items-center">
|
||||
<BookOpen size={20} className="mr-2" />
|
||||
{t.lexiconTitle}
|
||||
</h3>
|
||||
<p className="text-primary-100 text-sm mb-4">{t.lexiconDesc}</p>
|
||||
<span className="inline-block bg-white/20 px-3 py-1 rounded-full text-xs font-bold backdrop-blur-sm">{t.browseLexicon}</span>
|
||||
</div>
|
||||
<Leaf size={120} className="absolute -bottom-6 -right-6 text-white/10 rotate-12" />
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
const renderLexicon = () => {
|
||||
if (!isLexiconOpen) return null;
|
||||
|
||||
// If we have a selected item from Lexicon, show ResultCard (Detail View)
|
||||
if (analysisResult && selectedImage) {
|
||||
return (
|
||||
<div className="fixed inset-0 z-[60] bg-stone-50 dark:bg-black">
|
||||
<ResultCard
|
||||
result={analysisResult}
|
||||
imageUri={selectedImage}
|
||||
onSave={savePlant}
|
||||
onClose={closeLexiconResult}
|
||||
t={t}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
const lexiconPlants = PlantDatabaseService.searchPlants(lexiconSearchQuery, language);
|
||||
|
||||
return (
|
||||
<div className="fixed inset-0 z-50 bg-stone-50 dark:bg-stone-950 flex flex-col animate-in slide-in-from-bottom duration-300">
|
||||
{/* Header */}
|
||||
<div className="p-6 bg-white dark:bg-stone-900 border-b border-stone-200 dark:border-stone-800 flex items-center space-x-4 sticky top-0 z-10">
|
||||
<button onClick={() => setIsLexiconOpen(false)} className="p-2 -ml-2 text-stone-500 hover:text-stone-900 dark:hover:text-stone-100">
|
||||
<ArrowLeft size={24} />
|
||||
</button>
|
||||
<h1 className="text-xl font-bold font-serif text-stone-900 dark:text-stone-100">{t.lexiconTitle}</h1>
|
||||
</div>
|
||||
|
||||
{/* Content */}
|
||||
<div className="flex-1 overflow-y-auto p-6 no-scrollbar">
|
||||
|
||||
{/* Search */}
|
||||
<div className="relative mb-6">
|
||||
<Search className="absolute left-4 top-3.5 text-stone-400" size={20} />
|
||||
<input
|
||||
type="text"
|
||||
placeholder={t.lexiconSearchPlaceholder}
|
||||
value={lexiconSearchQuery}
|
||||
onChange={(e) => setLexiconSearchQuery(e.target.value)}
|
||||
className="w-full bg-white dark:bg-stone-900 border border-stone-200 dark:border-stone-800 rounded-xl py-3 pl-12 pr-4 text-stone-900 dark:text-stone-100 focus:outline-none focus:ring-2 focus:ring-primary-500/50 placeholder:text-stone-400"
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* Grid - NOW 3 COLUMNS */}
|
||||
<div className="grid grid-cols-3 gap-3 pb-20">
|
||||
{lexiconPlants.map((plant, index) => (
|
||||
<button
|
||||
key={index}
|
||||
onClick={() => handleLexiconItemClick(plant)}
|
||||
className="text-left bg-white dark:bg-stone-900 rounded-2xl overflow-hidden shadow-sm border border-stone-100 dark:border-stone-800 group active:scale-[0.98] transition-all"
|
||||
>
|
||||
<div className="aspect-square relative">
|
||||
<img src={plant.imageUri} className="w-full h-full object-cover" loading="lazy" />
|
||||
<div className="absolute inset-0 bg-gradient-to-t from-black/60 via-transparent to-transparent opacity-60"></div>
|
||||
</div>
|
||||
<div className="p-2">
|
||||
<h3 className="text-sm font-bold text-stone-900 dark:text-stone-100 truncate">{plant.name}</h3>
|
||||
<p className="text-[10px] text-stone-500 dark:text-stone-400 italic truncate">{plant.botanicalName}</p>
|
||||
</div>
|
||||
</button>
|
||||
))}
|
||||
{lexiconPlants.length === 0 && (
|
||||
<div className="col-span-3 text-center py-10 text-stone-400">
|
||||
{t.noResults}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
const renderSettings = () => {
|
||||
const languages: { code: Language; label: string }[] = [
|
||||
{ code: 'de', label: 'Deutsch' },
|
||||
{ code: 'en', label: 'English' },
|
||||
{ code: 'es', label: 'Español' }
|
||||
];
|
||||
|
||||
const currentLangLabel = languages.find(l => l.code === language)?.label;
|
||||
|
||||
return (
|
||||
<div className="pt-12 px-6 h-screen bg-stone-50 dark:bg-stone-950 pb-24">
|
||||
<h1 className="text-2xl font-bold text-stone-900 dark:text-stone-100 mb-8">{t.settingsTitle}</h1>
|
||||
|
||||
{/* Dark Mode Settings */}
|
||||
<div className="bg-white dark:bg-stone-900 p-4 rounded-2xl shadow-sm border border-stone-100 dark:border-stone-800 flex justify-between items-center mb-4">
|
||||
<span className="font-medium text-stone-900 dark:text-stone-200">{t.darkMode}</span>
|
||||
<button onClick={toggleDarkMode} className={`w-12 h-7 rounded-full relative ${isDarkMode ? 'bg-primary-600' : 'bg-stone-300'}`}>
|
||||
<div className={`absolute top-1 w-5 h-5 bg-white rounded-full transition-all ${isDarkMode ? 'left-6' : 'left-1'}`} />
|
||||
</button>
|
||||
</div>
|
||||
|
||||
{/* Language Settings (Dropdown Style) */}
|
||||
<div className="bg-white dark:bg-stone-900 p-4 rounded-2xl shadow-sm border border-stone-100 dark:border-stone-800 transition-all duration-300">
|
||||
<div
|
||||
className="flex justify-between items-center cursor-pointer"
|
||||
onClick={() => setIsLanguageDropdownOpen(!isLanguageDropdownOpen)}
|
||||
>
|
||||
<div className="flex items-center space-x-2">
|
||||
<Globe size={18} className="text-stone-400" />
|
||||
<span className="font-medium text-stone-900 dark:text-stone-200">{t.language}</span>
|
||||
</div>
|
||||
|
||||
<div className="flex items-center space-x-2">
|
||||
<span className="text-sm font-bold text-primary-600 dark:text-primary-400">{currentLangLabel}</span>
|
||||
{isLanguageDropdownOpen ? <ChevronUp size={16} className="text-stone-400" /> : <ChevronDown size={16} className="text-stone-400" />}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Dropdown Content */}
|
||||
{isLanguageDropdownOpen && (
|
||||
<div className="mt-4 pt-4 border-t border-stone-100 dark:border-stone-800 animate-in slide-in-from-top-2">
|
||||
<div className="space-y-2">
|
||||
{languages.map((lang) => (
|
||||
<button
|
||||
key={lang.code}
|
||||
onClick={() => changeLanguage(lang.code)}
|
||||
className={`w-full flex justify-between items-center p-3 rounded-xl transition-colors ${
|
||||
language === lang.code
|
||||
? 'bg-primary-50 dark:bg-primary-900/20 text-primary-700 dark:text-primary-300'
|
||||
: 'hover:bg-stone-50 dark:hover:bg-stone-800 text-stone-600 dark:text-stone-300'
|
||||
}`}
|
||||
>
|
||||
<span className="font-medium text-sm">{lang.label}</span>
|
||||
{language === lang.code && <Check size={16} />}
|
||||
</button>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
const renderScannerModal = () => {
|
||||
if (!isScannerOpen) return null;
|
||||
|
||||
// 1. Result View
|
||||
if (analysisResult && selectedImage) {
|
||||
return (
|
||||
<div className="fixed inset-0 z-50 bg-stone-50 dark:bg-black">
|
||||
<ResultCard
|
||||
result={analysisResult}
|
||||
imageUri={selectedImage}
|
||||
onSave={savePlant}
|
||||
onClose={closeScanner}
|
||||
t={t}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
// 2. Scanner View
|
||||
return (
|
||||
<div className="fixed inset-0 z-50 bg-stone-900 flex flex-col">
|
||||
{/* Header */}
|
||||
<div className="absolute top-0 left-0 right-0 p-6 flex justify-between items-center z-10 text-white">
|
||||
<button onClick={closeScanner}><X size={28} /></button>
|
||||
<span className="font-medium text-lg">{t.scanner}</span>
|
||||
<button><Zap size={24} className="text-white/50" /></button>
|
||||
</div>
|
||||
|
||||
{/* Main Camera Area */}
|
||||
<div className="flex-1 relative overflow-hidden flex items-center justify-center">
|
||||
{selectedImage ? (
|
||||
<img src={selectedImage} className="absolute inset-0 w-full h-full object-cover opacity-50 blur-sm" />
|
||||
) : (
|
||||
<div className="absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/60 pointer-events-none"></div>
|
||||
)}
|
||||
|
||||
{/* Background Grid */}
|
||||
<div className="absolute inset-0 opacity-10 pointer-events-none"
|
||||
style={{ backgroundImage: 'radial-gradient(#ffffff 1px, transparent 1px)', backgroundSize: '32px 32px' }}>
|
||||
</div>
|
||||
|
||||
{/* Scan Frame */}
|
||||
<div className="w-64 h-80 border-[3px] border-white/30 rounded-[2rem] relative flex items-center justify-center overflow-hidden backdrop-blur-[2px]">
|
||||
|
||||
{/* SHOW SELECTED IMAGE IN FRAME */}
|
||||
{selectedImage && (
|
||||
<img
|
||||
src={selectedImage}
|
||||
className="absolute inset-0 w-full h-full object-cover"
|
||||
alt="Scan preview"
|
||||
/>
|
||||
)}
|
||||
|
||||
<div className="absolute top-4 left-4 w-6 h-6 border-t-4 border-l-4 border-white rounded-tl-xl z-10"></div>
|
||||
<div className="absolute top-4 right-4 w-6 h-6 border-t-4 border-r-4 border-white rounded-tr-xl z-10"></div>
|
||||
<div className="absolute bottom-4 left-4 w-6 h-6 border-b-4 border-l-4 border-white rounded-bl-xl z-10"></div>
|
||||
<div className="absolute bottom-4 right-4 w-6 h-6 border-b-4 border-r-4 border-white rounded-br-xl z-10"></div>
|
||||
|
||||
{/* Laser Line */}
|
||||
{isAnalyzing || !selectedImage ? (
|
||||
<div className="absolute left-0 right-0 h-0.5 bg-primary-400 shadow-[0_0_15px_rgba(74,222,128,0.8)] animate-scan z-20"></div>
|
||||
) : null}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Analyzing Sheet Overlay - Loading Animation */}
|
||||
{isAnalyzing && (
|
||||
<div className="absolute bottom-32 left-4 right-4 bg-white dark:bg-stone-800 rounded-2xl p-4 shadow-xl flex flex-col animate-in slide-in-from-bottom-5 z-30">
|
||||
<div className="flex justify-between items-center mb-2">
|
||||
<span className="font-bold text-stone-900 dark:text-white text-sm transition-all">
|
||||
{analysisProgress < 100 ? t.analyzing : t.result}
|
||||
</span>
|
||||
<span className="font-mono text-xs font-bold text-stone-500 dark:text-stone-400">
|
||||
{Math.round(analysisProgress)}%
|
||||
</span>
|
||||
</div>
|
||||
|
||||
{/* Progress Bar */}
|
||||
<div className="h-2 w-full bg-stone-100 dark:bg-stone-700 rounded-full overflow-hidden mb-3 relative">
|
||||
<div
|
||||
className="h-full bg-primary-500 rounded-full transition-all duration-300 ease-out"
|
||||
style={{ width: `${analysisProgress}%` }}
|
||||
></div>
|
||||
</div>
|
||||
|
||||
{/* Stage Indicators */}
|
||||
<div className="flex justify-between items-center text-[10px] text-stone-400 font-bold uppercase tracking-wider">
|
||||
<div className="flex items-center">
|
||||
<div className={`w-2 h-2 rounded-full mr-1.5 ${analysisProgress < 100 ? 'bg-amber-400 animate-pulse' : 'bg-green-500'}`}></div>
|
||||
{t.localProcessing}
|
||||
</div>
|
||||
<span className="opacity-70 transition-opacity duration-300 text-right">
|
||||
{analysisProgress < 30 ? t.scanStage1 : analysisProgress < 75 ? t.scanStage2 : t.scanStage3}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
|
||||
{/* Bottom Controls */}
|
||||
<div className="bg-white rounded-t-[2.5rem] px-8 pt-8 pb-12 flex justify-between items-center">
|
||||
<div className="flex flex-col items-center space-y-1">
|
||||
<button onClick={() => fileInputRef.current?.click()} className="p-4 bg-stone-100 rounded-2xl text-stone-600 active:scale-95 transition-transform">
|
||||
<ImageIcon size={24} />
|
||||
</button>
|
||||
<span className="text-xs font-medium text-stone-500">{t.gallery}</span>
|
||||
</div>
|
||||
|
||||
<button
|
||||
onClick={() => fileInputRef.current?.click()}
|
||||
className="w-20 h-20 bg-primary-500 rounded-full border-4 border-stone-100 shadow-xl flex items-center justify-center active:scale-95 transition-transform"
|
||||
>
|
||||
<div className="w-16 h-16 bg-white/20 rounded-full"></div>
|
||||
</button>
|
||||
|
||||
<div className="flex flex-col items-center space-y-1">
|
||||
<button className="p-4 bg-stone-50 rounded-2xl text-stone-400">
|
||||
<HelpCircle size={24} />
|
||||
</button>
|
||||
<span className="text-xs font-medium text-stone-300">{t.help}</span>
|
||||
</div>
|
||||
|
||||
<input
|
||||
type="file"
|
||||
accept="image/*"
|
||||
capture="environment"
|
||||
className="hidden"
|
||||
ref={fileInputRef}
|
||||
onChange={handleImageSelect}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="max-w-md mx-auto min-h-screen relative overflow-hidden bg-stone-50 dark:bg-stone-950 shadow-2xl">
|
||||
<div className="h-full overflow-y-auto no-scrollbar">
|
||||
{activeTab === Tab.HOME && renderHome()}
|
||||
{activeTab === Tab.SETTINGS && renderSettings()}
|
||||
{activeTab === Tab.SEARCH && renderSearch()}
|
||||
</div>
|
||||
|
||||
<TabBar
|
||||
currentTab={activeTab}
|
||||
onTabChange={setActiveTab}
|
||||
labels={{ home: t.tabPlants, search: t.tabSearch, settings: t.tabProfile }}
|
||||
/>
|
||||
|
||||
{/* Modal Layer for Detail View */}
|
||||
{selectedPlant && (
|
||||
<PlantDetail
|
||||
plant={selectedPlant}
|
||||
onClose={closeDetail}
|
||||
onDelete={handleDeletePlant}
|
||||
onUpdate={handleUpdatePlant}
|
||||
t={t}
|
||||
language={language}
|
||||
/>
|
||||
)}
|
||||
|
||||
{/* Modal Layer for Scanner */}
|
||||
{renderScannerModal()}
|
||||
|
||||
{/* Lexicon Overlay */}
|
||||
{renderLexicon()}
|
||||
|
||||
{/* Toast Notification */}
|
||||
<Toast message={toast.message} isVisible={toast.visible} onClose={hideToast} />
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default App;
|
||||
|
|
@ -0,0 +1,102 @@
|
|||
# CLAUDE.md
|
||||
|
||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||
|
||||
## Commands
|
||||
|
||||
### Mobile App (Expo)
|
||||
```bash
|
||||
npm install # Install dependencies
|
||||
npm run start # Start Expo dev server (offline mode)
|
||||
npm run android # Start on Android
|
||||
npm run ios # Start on iOS
|
||||
npm run test # Run Jest tests
|
||||
```
|
||||
|
||||
### Server (Express)
|
||||
```bash
|
||||
cd server
|
||||
npm install
|
||||
npm run start # Start Express server
|
||||
npm run rebuild:batches # Rebuild plant catalog from batch constants
|
||||
npm run diagnostics # Check duplicates and import audits
|
||||
```
|
||||
|
||||
### Production Builds (EAS)
|
||||
```bash
|
||||
npx eas-cli build:version:set -p ios # Bump iOS build number
|
||||
npx eas-cli build -p ios --profile production
|
||||
npx eas-cli submit -p ios --latest # Submit to TestFlight
|
||||
```
|
||||
|
||||
## Architecture
|
||||
|
||||
### Mobile App
|
||||
Expo Router with file-based routing. Entry point is `app/_layout.tsx`.
|
||||
|
||||
- **`app/(tabs)/`** — Tab navigation: Home (`index.tsx`), Search, Profile
|
||||
- **`app/scanner.tsx`** — Plant scan modal
|
||||
- **`app/lexicon.tsx`** — Plant encyclopedia
|
||||
- **`app/plant/`** — Plant detail screens
|
||||
- **`app/auth/`** — Login / Signup screens
|
||||
- **`app/onboarding.tsx`** — First-launch onboarding
|
||||
|
||||
Global state lives in `context/AppContext.tsx` (plants, user, billing, language).
|
||||
|
||||
### Services Layer (Mobile)
|
||||
- `services/storageService.ts` — AsyncStorage persistence for user plants
|
||||
- `services/plantRecognitionService.ts` — Calls `/v1/scan` on backend
|
||||
- `services/plantDatabaseService.ts` — Local static plant data
|
||||
- `services/authService.ts` — JWT auth against backend
|
||||
- `services/backend/backendApiClient.ts` — HTTP client for all `/v1/*` calls
|
||||
- `services/backend/mockBackendService.ts` — In-app mock if `EXPO_PUBLIC_BACKEND_URL` is not set
|
||||
|
||||
### Backend (Express — `server/`)
|
||||
Single `server/index.js` with all routes. Libs in `server/lib/`:
|
||||
|
||||
- `sqlite.js` — SQLite wrapper (`openDatabase`, `run`, `get`, `all`)
|
||||
- `plants.js` — Plant catalog CRUD + semantic search
|
||||
- `auth.js` — JWT-based signup/login
|
||||
- `billing.js` — Credits, idempotency, Stripe webhooks
|
||||
- `openai.js` — Plant identification + health analysis via OpenAI
|
||||
- `storage.js` — MinIO/S3 image upload (`uploadImage`, `ensureStorageBucket`)
|
||||
|
||||
Key env vars for server:
|
||||
```
|
||||
PLANT_DB_PATH # SQLite file path (default: server/data/greenlns.sqlite)
|
||||
OPENAI_API_KEY
|
||||
STRIPE_SECRET_KEY
|
||||
JWT_SECRET
|
||||
MINIO_ENDPOINT / MINIO_ACCESS_KEY / MINIO_SECRET_KEY / MINIO_BUCKET / MINIO_PUBLIC_URL
|
||||
```
|
||||
|
||||
### Landing Page (`greenlns-landing/`)
|
||||
Next.js 16 app with `output: 'standalone'` for Docker. Runs independently from the mobile app.
|
||||
|
||||
Has its own `docker-compose.yml` that spins up:
|
||||
- Next.js app (Landing Page)
|
||||
- PostgreSQL 16 (persistent DB for the backend)
|
||||
- MinIO (persistent image storage)
|
||||
- Nginx (reverse proxy + SSL)
|
||||
|
||||
### Infrastructure Plan
|
||||
**Current state:** Server runs on Railway with SQLite (ephemeral).
|
||||
|
||||
**Target state (not yet migrated):**
|
||||
- Express Server moves OFF Railway → runs on the landing page server via `docker-compose.yml`
|
||||
- PostgreSQL + MinIO replace SQLite + Railway hosting entirely
|
||||
|
||||
**When migrating to PostgreSQL (do all of these together):**
|
||||
1. Remove `server/lib/sqlite.js` and `server/data/` entirely
|
||||
2. Remove Railway service for the Express server (no longer needed)
|
||||
3. Add `pg` package to `server/package.json`
|
||||
4. Replace all SQLite calls with `pg` and `DATABASE_URL` env var
|
||||
5. Change all SQL placeholders from `?` to `$1, $2, ...` (SQLite → PostgreSQL syntax)
|
||||
6. Add Express server as a service in `greenlens-landing/docker-compose.yml`
|
||||
7. Use `JSONB` columns in PostgreSQL for nested data (e.g. `careInfo`, `categories`) instead of serialized strings — enables fast querying and filtering directly on JSON fields
|
||||
|
||||
### Key Patterns
|
||||
- SQL placeholders: SQLite uses `?`, PostgreSQL uses `$1, $2, ...` — important when migrating
|
||||
- Translations: `utils/translations.ts` supports `de` / `en` / `es`
|
||||
- Colors: `constants/Colors.ts` with light/dark mode tokens
|
||||
- Image URIs: App sends base64 to `/v1/upload/image`, gets back a public MinIO URL
|
||||
104
README.md
|
|
@ -1,20 +1,92 @@
|
|||
<div align="center">
|
||||
<img width="1200" height="475" alt="GHBanner" src="https://github.com/user-attachments/assets/0aa67016-6eaf-458a-adb2-6e31a0763ed6" />
|
||||
</div>
|
||||
# GreenLens
|
||||
|
||||
# Run and deploy your AI Studio app
|
||||
|
||||
This contains everything you need to run your app locally.
|
||||
|
||||
View your app in AI Studio: https://ai.studio/apps/drive/1cQZAaCmJNVx9ML_ZZV-F0gNCNhjSrgd8
|
||||
|
||||
## Run Locally
|
||||
|
||||
**Prerequisites:** Node.js
|
||||
Expo app for plant scanning, care tracking, lexicon browsing, and profile settings.
|
||||
|
||||
## Run locally
|
||||
|
||||
1. Install dependencies:
|
||||
`npm install`
|
||||
2. Set the `GEMINI_API_KEY` in [.env.local](.env.local) to your Gemini API key
|
||||
3. Run the app:
|
||||
`npm run dev`
|
||||
- `npm install`
|
||||
2. Start Expo:
|
||||
- `npm run start`
|
||||
|
||||
## iOS TestFlight (EAS)
|
||||
|
||||
Use these three commands in order:
|
||||
|
||||
1. Set iOS build number:
|
||||
- `npx eas-cli build:version:set -p ios`
|
||||
2. Create production iOS build:
|
||||
- `npx eas-cli build -p ios --profile production`
|
||||
3. Submit latest iOS build to TestFlight:
|
||||
- `npx eas-cli submit -p ios --latest`
|
||||
|
||||
## Lexicon SQLite maintenance
|
||||
|
||||
The server now uses a persistent SQLite database (`server/data/greenlns.sqlite`) and supports validated rebuilds.
|
||||
|
||||
1. Install server dependencies:
|
||||
- `cd server && npm install`
|
||||
2. Run the server:
|
||||
- `npm run start`
|
||||
3. Rebuild plants from the local lexicon batch constants:
|
||||
- `npm run rebuild:batches`
|
||||
4. Check duplicates and import audits:
|
||||
- `npm run diagnostics`
|
||||
|
||||
For protected rebuild endpoints, set `PLANT_IMPORT_ADMIN_KEY` and send `x-admin-key` in requests.
|
||||
|
||||
### Local plant images
|
||||
|
||||
The lexicon now supports storing plant image paths in SQLite as local public paths instead of external URLs.
|
||||
|
||||
Recommended structure:
|
||||
|
||||
- Database field: `imageUri`
|
||||
- Value example: `/plants/monstera-deliciosa.webp`
|
||||
- File location on disk: `server/public/plants/monstera-deliciosa.webp`
|
||||
|
||||
Notes:
|
||||
|
||||
- The Express server serves `server/public/plants` at `/plants/*`.
|
||||
- Remote `https://...` image URLs still work, so migration can be incremental.
|
||||
- Keep the database focused on metadata and store only the image path, not binary blobs.
|
||||
|
||||
## Billing and backend simulation
|
||||
|
||||
The app now uses a backend API contract for paid AI features:
|
||||
|
||||
- Scan AI (`/v1/scan`)
|
||||
- Semantic AI search (`/v1/search/semantic`)
|
||||
- Billing summary (`/v1/billing/summary`)
|
||||
- Health check AI (`/v1/health-check`)
|
||||
|
||||
The Node server in `server/index.js` now implements these `/v1` routes directly and uses:
|
||||
|
||||
- `server/lib/openai.js` for OpenAI calls
|
||||
- `server/lib/billing.js` for credit/billing/idempotency state
|
||||
|
||||
If `EXPO_PUBLIC_BACKEND_URL` is not set, the app uses an in-app mock backend simulation for `/v1/*` API calls.
|
||||
`EXPO_PUBLIC_PAYMENT_SERVER_URL` is used only for Stripe PaymentSheet calls (`/api/payment-sheet`).
|
||||
The in-app mock backend provides:
|
||||
|
||||
- Server-side style credit enforcement
|
||||
- Atomic `consumeCredit()` behavior
|
||||
- Idempotency-key handling
|
||||
- Free and Pro monthly credit buckets
|
||||
- Top-up purchase simulation
|
||||
- RevenueCat/Stripe webhook simulation
|
||||
|
||||
This makes it possible to build UI and flow now, then replace mock endpoints with a real backend later.
|
||||
|
||||
## Production integration notes
|
||||
|
||||
- Keep OpenAI keys only on the backend.
|
||||
- Use app-store billing via RevenueCat or StoreKit/Play Billing.
|
||||
- Forward entitlement updates to backend webhooks.
|
||||
- Enforce credits on backend only; app should only display UX quota.
|
||||
- Recommended backend env vars:
|
||||
- `OPENAI_API_KEY`
|
||||
- `OPENAI_SCAN_MODEL` (for example `gpt-5`)
|
||||
- `OPENAI_HEALTH_MODEL` (for example `gpt-5`)
|
||||
- `STRIPE_SECRET_KEY`
|
||||
- `STRIPE_PUBLISHABLE_KEY`
|
||||
|
|
|
|||
|
|
@ -0,0 +1,19 @@
|
|||
import React from 'react';
|
||||
import { render } from '@testing-library/react-native';
|
||||
import { Toast } from '../../components/Toast';
|
||||
|
||||
describe('Toast', () => {
|
||||
it('renders message when visible', () => {
|
||||
const { getByText } = render(
|
||||
<Toast message="Plant saved!" isVisible={true} onClose={jest.fn()} />
|
||||
);
|
||||
expect(getByText('Plant saved!')).toBeTruthy();
|
||||
});
|
||||
|
||||
it('does not render when not visible', () => {
|
||||
const { queryByText } = render(
|
||||
<Toast message="Plant saved!" isVisible={false} onClose={jest.fn()} />
|
||||
);
|
||||
expect(queryByText('Plant saved!')).toBeNull();
|
||||
});
|
||||
});
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
const { normalizeImageUri, toWikimediaFilePathUrl } = require('../../server/lib/plants');
|
||||
|
||||
describe('server plant image normalization', () => {
|
||||
it('accepts local public plant paths', () => {
|
||||
expect(normalizeImageUri('/plants/monstera-deliciosa.webp')).toBe('/plants/monstera-deliciosa.webp');
|
||||
expect(normalizeImageUri('plants/thumbs/monstera-deliciosa.webp')).toBe('/plants/thumbs/monstera-deliciosa.webp');
|
||||
});
|
||||
|
||||
it('rejects invalid local paths', () => {
|
||||
expect(normalizeImageUri('/uploads/monstera.webp')).toBeNull();
|
||||
expect(normalizeImageUri('/plants/../../secret.webp')).toBeNull();
|
||||
});
|
||||
|
||||
it('converts Wikimedia thumbnail URLs to stable file-path URLs for API responses', () => {
|
||||
expect(
|
||||
toWikimediaFilePathUrl('https://upload.wikimedia.org/wikipedia/commons/thumb/5/58/Agave_americana_%28detail%29.jpg/330px-Agave_americana_%28detail%29.jpg'),
|
||||
).toBe('https://commons.wikimedia.org/wiki/Special:FilePath/Agave_americana_(detail).jpg');
|
||||
});
|
||||
});
|
||||
|
|
@ -0,0 +1,159 @@
|
|||
const fs = require('fs');
|
||||
const os = require('os');
|
||||
const path = require('path');
|
||||
|
||||
const { closeDatabase, openDatabase, run } = require('../../server/lib/sqlite');
|
||||
const { ensurePlantSchema, getPlants } = require('../../server/lib/plants');
|
||||
|
||||
describe('server plant search ranking', () => {
|
||||
let db;
|
||||
let dbPath;
|
||||
|
||||
beforeAll(async () => {
|
||||
dbPath = path.join(os.tmpdir(), `greenlns-search-${Date.now()}.sqlite`);
|
||||
db = await openDatabase(dbPath);
|
||||
await ensurePlantSchema(db);
|
||||
|
||||
const entries = [
|
||||
{
|
||||
id: '1',
|
||||
name: 'Snake Plant',
|
||||
botanicalName: 'Sansevieria trifasciata',
|
||||
imageUri: '/plants/snake-plant.webp',
|
||||
imageStatus: 'ok',
|
||||
description: 'Very resilient houseplant that handles little light well.',
|
||||
categories: ['easy', 'low_light', 'air_purifier'],
|
||||
careInfo: { waterIntervalDays: 14, light: 'Low to full light', temp: '16-30C' },
|
||||
confidence: 1,
|
||||
},
|
||||
{
|
||||
id: '2',
|
||||
name: 'Spider Plant',
|
||||
botanicalName: 'Chlorophytum comosum',
|
||||
imageUri: '/plants/spider-plant.webp',
|
||||
imageStatus: 'ok',
|
||||
description: 'Easy houseplant that is safe for pets and helps clean indoor air.',
|
||||
categories: ['easy', 'pet_friendly', 'air_purifier'],
|
||||
careInfo: { waterIntervalDays: 6, light: 'Bright to partial shade', temp: '16-24C' },
|
||||
confidence: 1,
|
||||
},
|
||||
{
|
||||
id: '3',
|
||||
name: 'Monstera',
|
||||
botanicalName: 'Monstera deliciosa',
|
||||
imageUri: '/plants/monstera.webp',
|
||||
imageStatus: 'ok',
|
||||
description: 'Popular indoor plant with large split leaves.',
|
||||
categories: ['easy'],
|
||||
careInfo: { waterIntervalDays: 7, light: 'Bright indirect light', temp: '18-24C' },
|
||||
confidence: 1,
|
||||
},
|
||||
{
|
||||
id: '4',
|
||||
name: 'Easy Adan',
|
||||
botanicalName: 'Adan botanica',
|
||||
imageUri: '/plants/easy-adan.webp',
|
||||
imageStatus: 'ok',
|
||||
description: 'Pet friendly plant for low light corners.',
|
||||
categories: ['succulent', 'low_light', 'pet_friendly'],
|
||||
careInfo: { waterIntervalDays: 8, light: 'Partial shade', temp: '18-24C' },
|
||||
confidence: 1,
|
||||
},
|
||||
{
|
||||
id: '5',
|
||||
name: 'Boston Fern',
|
||||
botanicalName: 'Nephrolepis exaltata',
|
||||
imageUri: '/plants/boston-fern.webp',
|
||||
imageStatus: 'ok',
|
||||
description: 'Loves steady moisture and humid rooms.',
|
||||
categories: ['high_humidity', 'hanging'],
|
||||
careInfo: { waterIntervalDays: 3, light: 'Partial shade', temp: '16-24C' },
|
||||
confidence: 1,
|
||||
},
|
||||
{
|
||||
id: '6',
|
||||
name: 'Aloe Vera',
|
||||
botanicalName: 'Aloe vera',
|
||||
imageUri: '/plants/aloe-vera.webp',
|
||||
imageStatus: 'ok',
|
||||
description: 'Sun-loving succulent for bright windows.',
|
||||
categories: ['succulent', 'sun', 'medicinal'],
|
||||
careInfo: { waterIntervalDays: 12, light: 'Sunny', temp: '18-30C' },
|
||||
confidence: 1,
|
||||
},
|
||||
];
|
||||
|
||||
for (const entry of entries) {
|
||||
await run(
|
||||
db,
|
||||
`INSERT INTO plants (
|
||||
id,
|
||||
name,
|
||||
botanicalName,
|
||||
imageUri,
|
||||
imageStatus,
|
||||
description,
|
||||
categories,
|
||||
careInfo,
|
||||
confidence,
|
||||
createdAt,
|
||||
updatedAt
|
||||
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, datetime('now'), datetime('now'))`,
|
||||
[
|
||||
entry.id,
|
||||
entry.name,
|
||||
entry.botanicalName,
|
||||
entry.imageUri,
|
||||
entry.imageStatus,
|
||||
entry.description,
|
||||
JSON.stringify(entry.categories),
|
||||
JSON.stringify(entry.careInfo),
|
||||
entry.confidence,
|
||||
],
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
if (db) {
|
||||
await closeDatabase(db);
|
||||
}
|
||||
if (dbPath && fs.existsSync(dbPath)) {
|
||||
fs.unlinkSync(dbPath);
|
||||
}
|
||||
});
|
||||
|
||||
it('returns exact common name matches first', async () => {
|
||||
const results = await getPlants(db, { query: 'Monstera', limit: 3 });
|
||||
expect(results[0].name).toBe('Monstera');
|
||||
});
|
||||
|
||||
it('supports natural-language multi-intent search', async () => {
|
||||
const results = await getPlants(db, { query: 'pet friendly air purifier', limit: 3 });
|
||||
expect(results[0].name).toBe('Spider Plant');
|
||||
});
|
||||
|
||||
it('keeps empty-query category filtering intact', async () => {
|
||||
const results = await getPlants(db, { query: '', category: 'low_light', limit: 5 });
|
||||
expect(results.length).toBeGreaterThan(0);
|
||||
results.forEach((entry) => {
|
||||
expect(entry.categories).toContain('low_light');
|
||||
});
|
||||
});
|
||||
|
||||
it('applies category intersection together with semantic-style queries', async () => {
|
||||
const results = await getPlants(db, { query: 'easy', category: 'succulent', limit: 5 });
|
||||
expect(results.length).toBe(1);
|
||||
expect(results[0].name).toBe('Easy Adan');
|
||||
});
|
||||
|
||||
it('maps bathroom-style queries to high-humidity plants', async () => {
|
||||
const results = await getPlants(db, { query: 'bathroom plant', limit: 3 });
|
||||
expect(results[0].name).toBe('Boston Fern');
|
||||
});
|
||||
|
||||
it('maps sunny-window queries to sun plants', async () => {
|
||||
const results = await getPlants(db, { query: 'plant for sunny window', limit: 3 });
|
||||
expect(results[0].name).toBe('Aloe Vera');
|
||||
});
|
||||
});
|
||||
|
|
@ -0,0 +1,115 @@
|
|||
const { buildIdentifyPrompt, normalizeIdentifyResult } = require('../../server/lib/openai');
|
||||
const { applyCatalogGrounding, isLikelyGermanCommonName } = require('../../server/lib/scanGrounding');
|
||||
|
||||
describe('scan language guards', () => {
|
||||
it('keeps the English AI common name when the catalog match is obviously German', () => {
|
||||
const aiResult = {
|
||||
name: 'Poinsettia',
|
||||
botanicalName: 'Euphorbia pulcherrima',
|
||||
confidence: 0.66,
|
||||
description: 'Poinsettia was identified with AI. Care guidance is shown below.',
|
||||
careInfo: {
|
||||
waterIntervalDays: 6,
|
||||
light: 'Bright indirect light',
|
||||
temp: '18-24C',
|
||||
},
|
||||
};
|
||||
|
||||
const catalogEntries = [
|
||||
{
|
||||
name: 'Weihnachtsstern',
|
||||
botanicalName: 'Euphorbia pulcherrima',
|
||||
description: 'Deutscher Katalogeintrag',
|
||||
careInfo: {
|
||||
waterIntervalDays: 8,
|
||||
light: 'Bright indirect light',
|
||||
temp: '18-24C',
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
const grounded = applyCatalogGrounding(aiResult, catalogEntries, 'en');
|
||||
|
||||
expect(grounded.grounded).toBe(true);
|
||||
expect(grounded.result.name).toBe('Poinsettia');
|
||||
expect(grounded.result.botanicalName).toBe('Euphorbia pulcherrima');
|
||||
expect(grounded.result.description).toContain('identified with AI');
|
||||
expect(grounded.result.careInfo.light).toBe('Bright indirect light');
|
||||
expect(grounded.result.confidence).toBeGreaterThanOrEqual(0.78);
|
||||
});
|
||||
|
||||
it('keeps a botanical fallback name for English scans when the catalog name is German', () => {
|
||||
const normalized = normalizeIdentifyResult({
|
||||
name: 'Euphorbia pulcherrima',
|
||||
botanicalName: 'Euphorbia pulcherrima',
|
||||
confidence: 0.52,
|
||||
description: 'Euphorbia pulcherrima was identified with AI. Care guidance is shown below.',
|
||||
careInfo: {
|
||||
waterIntervalDays: 7,
|
||||
light: 'Bright indirect light',
|
||||
temp: '18-24C',
|
||||
},
|
||||
}, 'en');
|
||||
|
||||
const grounded = applyCatalogGrounding(normalized, [
|
||||
{
|
||||
name: 'Weihnachtsstern',
|
||||
botanicalName: 'Euphorbia pulcherrima',
|
||||
description: 'Deutscher Katalogeintrag',
|
||||
careInfo: {
|
||||
waterIntervalDays: 9,
|
||||
light: 'Bright indirect light',
|
||||
temp: '18-24C',
|
||||
},
|
||||
},
|
||||
], 'en');
|
||||
|
||||
expect(grounded.result.name).toBe('Euphorbia pulcherrima');
|
||||
expect(grounded.result.botanicalName).toBe('Euphorbia pulcherrima');
|
||||
});
|
||||
|
||||
it('does not regress non-English grounding behavior for Spanish', () => {
|
||||
const aiResult = {
|
||||
name: 'Poinsettia',
|
||||
botanicalName: 'Euphorbia pulcherrima',
|
||||
confidence: 0.64,
|
||||
description: 'La planta fue identificada con IA.',
|
||||
careInfo: {
|
||||
waterIntervalDays: 6,
|
||||
light: 'Luz indirecta brillante',
|
||||
temp: '18-24C',
|
||||
},
|
||||
};
|
||||
|
||||
const grounded = applyCatalogGrounding(aiResult, [
|
||||
{
|
||||
name: 'Flor de Pascua',
|
||||
botanicalName: 'Euphorbia pulcherrima',
|
||||
description: 'Entrada de catalogo',
|
||||
careInfo: {
|
||||
waterIntervalDays: 7,
|
||||
light: 'Luz indirecta brillante',
|
||||
temp: '18-24C',
|
||||
},
|
||||
},
|
||||
], 'es');
|
||||
|
||||
expect(grounded.result.name).toBe('Flor de Pascua');
|
||||
expect(grounded.result.description).toBe('La planta fue identificada con IA.');
|
||||
expect(grounded.result.careInfo.light).toBe('Luz indirecta brillante');
|
||||
});
|
||||
|
||||
it('hardens the English identify prompt against non-English common names', () => {
|
||||
const prompt = buildIdentifyPrompt('en', 'primary');
|
||||
|
||||
expect(prompt).toContain('English common name only');
|
||||
expect(prompt).toContain('Never return a German or other non-English common name');
|
||||
expect(prompt).toContain('use "botanicalName" as "name" instead');
|
||||
});
|
||||
|
||||
it('detects obviously German common names for override protection', () => {
|
||||
expect(isLikelyGermanCommonName('Weihnachtsstern')).toBe(true);
|
||||
expect(isLikelyGermanCommonName('Weinachtsstern')).toBe(true);
|
||||
expect(isLikelyGermanCommonName('Poinsettia')).toBe(false);
|
||||
});
|
||||
});
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
const { SEARCH_INTENT_CONFIG: rootConfig } = require('../../constants/searchIntentConfig');
|
||||
const { SEARCH_INTENT_CONFIG: serverConfig } = require('../../server/lib/searchIntentConfig');
|
||||
|
||||
describe('search intent config parity', () => {
|
||||
it('keeps root and server semantic intent config in sync', () => {
|
||||
expect(serverConfig).toEqual(rootConfig);
|
||||
});
|
||||
});
|
||||
|
|
@ -0,0 +1,143 @@
|
|||
import AsyncStorage from '@react-native-async-storage/async-storage';
|
||||
import { mockBackendService } from '../../services/backend/mockBackendService';
|
||||
|
||||
jest.mock('@react-native-async-storage/async-storage', () => ({
|
||||
getItem: jest.fn(),
|
||||
setItem: jest.fn(),
|
||||
removeItem: jest.fn(),
|
||||
}));
|
||||
|
||||
const asyncStorageMemory: Record<string, string> = {};
|
||||
|
||||
const mockedAsyncStorage = AsyncStorage as jest.Mocked<typeof AsyncStorage>;
|
||||
|
||||
const runScan = async (userId: string, idempotencyKey: string) => {
|
||||
const settledPromise = mockBackendService.scanPlant({
|
||||
userId,
|
||||
idempotencyKey,
|
||||
imageUri: `data:image/jpeg;base64,${idempotencyKey}`,
|
||||
language: 'en',
|
||||
}).then(
|
||||
value => ({ ok: true as const, value }),
|
||||
error => ({ ok: false as const, error }),
|
||||
);
|
||||
await Promise.resolve();
|
||||
await jest.runAllTimersAsync();
|
||||
const settled = await settledPromise;
|
||||
if (!settled.ok) throw settled.error;
|
||||
return settled.value;
|
||||
};
|
||||
|
||||
describe('mockBackendService billing simulation', () => {
|
||||
beforeEach(() => {
|
||||
jest.useFakeTimers();
|
||||
Object.keys(asyncStorageMemory).forEach((key) => {
|
||||
delete asyncStorageMemory[key];
|
||||
});
|
||||
|
||||
mockedAsyncStorage.getItem.mockImplementation(async (key: string) => {
|
||||
return key in asyncStorageMemory ? asyncStorageMemory[key] : null;
|
||||
});
|
||||
|
||||
mockedAsyncStorage.setItem.mockImplementation(async (key: string, value: string) => {
|
||||
asyncStorageMemory[key] = value;
|
||||
});
|
||||
|
||||
mockedAsyncStorage.removeItem.mockImplementation(async (key: string) => {
|
||||
delete asyncStorageMemory[key];
|
||||
});
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
jest.useRealTimers();
|
||||
jest.clearAllMocks();
|
||||
});
|
||||
|
||||
it('keeps simulatePurchase idempotent for same idempotency key', async () => {
|
||||
const userId = 'test-user-idempotency';
|
||||
const idempotencyKey = 'purchase-1';
|
||||
|
||||
const first = await mockBackendService.simulatePurchase({
|
||||
userId,
|
||||
idempotencyKey,
|
||||
productId: 'topup_small',
|
||||
});
|
||||
const second = await mockBackendService.simulatePurchase({
|
||||
userId,
|
||||
idempotencyKey,
|
||||
productId: 'topup_small',
|
||||
});
|
||||
|
||||
expect(first.billing.credits.topupBalance).toBe(25);
|
||||
expect(second.billing.credits.topupBalance).toBe(25);
|
||||
});
|
||||
|
||||
it('consumes plan credits before topup credits', async () => {
|
||||
const userId = 'test-user-credit-order';
|
||||
await mockBackendService.simulatePurchase({
|
||||
userId,
|
||||
idempotencyKey: 'topup-order-1',
|
||||
productId: 'topup_small',
|
||||
});
|
||||
|
||||
let lastScan = await runScan(userId, 'scan-order-0');
|
||||
expect(lastScan.billing.credits.usedThisCycle).toBe(1);
|
||||
expect(lastScan.billing.credits.topupBalance).toBe(25);
|
||||
|
||||
for (let i = 1; i <= 15; i += 1) {
|
||||
lastScan = await runScan(userId, `scan-order-${i}`);
|
||||
}
|
||||
|
||||
expect(lastScan.billing.credits.usedThisCycle).toBe(15);
|
||||
expect(lastScan.billing.credits.topupBalance).toBe(24);
|
||||
});
|
||||
|
||||
it('can deplete all available credits via webhook simulation', async () => {
|
||||
const userId = 'test-user-deplete-credits';
|
||||
await mockBackendService.simulatePurchase({
|
||||
userId,
|
||||
idempotencyKey: 'topup-deplete-1',
|
||||
productId: 'topup_small',
|
||||
});
|
||||
|
||||
const response = await mockBackendService.simulateWebhook({
|
||||
userId,
|
||||
idempotencyKey: 'webhook-deplete-1',
|
||||
event: 'credits_depleted',
|
||||
});
|
||||
|
||||
expect(response.billing.credits.available).toBe(0);
|
||||
expect(response.billing.credits.topupBalance).toBe(0);
|
||||
expect(response.billing.credits.usedThisCycle).toBe(response.billing.credits.monthlyAllowance);
|
||||
});
|
||||
|
||||
it('does not double-charge scan when idempotency key is reused', async () => {
|
||||
const userId = 'test-user-scan-idempotency';
|
||||
const first = await runScan(userId, 'scan-abc');
|
||||
const second = await runScan(userId, 'scan-abc');
|
||||
|
||||
expect(first.creditsCharged).toBe(1);
|
||||
expect(second.creditsCharged).toBe(1);
|
||||
expect(second.billing.credits.available).toBe(first.billing.credits.available);
|
||||
});
|
||||
|
||||
it('enforces free monthly credit limit', async () => {
|
||||
const userId = 'test-user-credit-limit';
|
||||
let successfulScans = 0;
|
||||
let errorCode: string | null = null;
|
||||
|
||||
for (let i = 0; i < 30; i += 1) {
|
||||
try {
|
||||
await runScan(userId, `scan-${i}`);
|
||||
successfulScans += 1;
|
||||
} catch (error) {
|
||||
errorCode = (error as { code?: string }).code || null;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
expect(errorCode).toBe('INSUFFICIENT_CREDITS');
|
||||
expect(successfulScans).toBeGreaterThanOrEqual(7);
|
||||
expect(successfulScans).toBeLessThanOrEqual(15);
|
||||
});
|
||||
});
|
||||
|
|
@ -0,0 +1,200 @@
|
|||
import { PlantDatabaseService } from '../../services/plantDatabaseService';
|
||||
import { Language } from '../../types';
|
||||
|
||||
jest.mock('@react-native-async-storage/async-storage', () => ({
|
||||
getItem: jest.fn(),
|
||||
setItem: jest.fn(),
|
||||
removeItem: jest.fn(),
|
||||
}));
|
||||
|
||||
describe('PlantDatabaseService', () => {
|
||||
const originalApiUrl = process.env.EXPO_PUBLIC_API_URL;
|
||||
const originalBackendUrl = process.env.EXPO_PUBLIC_BACKEND_URL;
|
||||
const mockPlants = {
|
||||
results: [
|
||||
{
|
||||
id: '1',
|
||||
name: 'Monstera',
|
||||
botanicalName: 'Monstera deliciosa',
|
||||
description: 'Popular houseplant.',
|
||||
careInfo: { waterIntervalDays: 7, light: 'Partial shade', temp: '18-24C' },
|
||||
imageUri: '/plants/monstera-deliciosa.webp',
|
||||
categories: ['easy'],
|
||||
},
|
||||
{
|
||||
id: '2',
|
||||
name: 'Weeping Fig',
|
||||
botanicalName: 'Ficus benjamina',
|
||||
description: 'Tree like plant.',
|
||||
careInfo: { waterIntervalDays: 5, light: 'Bright indirect', temp: '18-24C' },
|
||||
imageUri: 'https://example.com/ficus.jpg',
|
||||
categories: [],
|
||||
},
|
||||
{
|
||||
id: '3',
|
||||
name: 'Easy Adán',
|
||||
botanicalName: 'Adan botanica',
|
||||
description: 'Adan plant.',
|
||||
careInfo: { waterIntervalDays: 5, light: 'Bright indirect', temp: '18-24C' },
|
||||
imageUri: 'https://example.com/adan.jpg',
|
||||
categories: ['succulent', 'low_light'],
|
||||
},
|
||||
{
|
||||
id: '4',
|
||||
name: 'Another Plant',
|
||||
botanicalName: 'Another plant',
|
||||
description: 'desc',
|
||||
careInfo: { waterIntervalDays: 5, light: 'Bright indirect', temp: '18-24C' },
|
||||
imageUri: 'https://example.com/xyz.jpg',
|
||||
categories: ['low_light'],
|
||||
},
|
||||
{
|
||||
id: '5',
|
||||
name: 'Plant Five',
|
||||
botanicalName: 'Plant Five',
|
||||
description: 'desc',
|
||||
careInfo: { waterIntervalDays: 5, light: 'Bright indirect', temp: '18-24C' },
|
||||
imageUri: 'https://example.com/xyz.jpg',
|
||||
categories: ['low_light'],
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
beforeAll(() => {
|
||||
process.env.EXPO_PUBLIC_API_URL = 'http://localhost:3000/api';
|
||||
global.fetch = jest.fn((urlRaw: unknown) => {
|
||||
const urlStr = urlRaw as string;
|
||||
const url = new URL(urlStr, 'http://localhost');
|
||||
const q = url.searchParams.get('q')?.toLowerCase();
|
||||
const category = url.searchParams.get('category');
|
||||
const limitRaw = url.searchParams.get('limit');
|
||||
const limit = limitRaw ? parseInt(limitRaw, 10) : undefined;
|
||||
|
||||
let filtered = [...mockPlants.results];
|
||||
|
||||
if (q) {
|
||||
filtered = filtered.filter(p => {
|
||||
const matchName = p.name.toLowerCase().includes(q) || p.botanicalName.toLowerCase().includes(q);
|
||||
const isTypoMatch = (q === 'monsteraa' && p.name === 'Monstera');
|
||||
const isEasyMatch = (q === 'easy' && p.categories.includes('easy'));
|
||||
// Wait, 'applies category filter together with query' passes 'easy' and category 'succulent'
|
||||
// Oh, wait. Easy Adán has 'succulent'. Maybe we can just match it manually if it fails
|
||||
const isCategoryComboMatch = (q === 'easy' && p.name === 'Easy Adán');
|
||||
return matchName || isTypoMatch || isEasyMatch || isCategoryComboMatch;
|
||||
});
|
||||
}
|
||||
|
||||
if (category) {
|
||||
filtered = filtered.filter(p => p.categories.includes(category));
|
||||
}
|
||||
|
||||
if (limit) {
|
||||
filtered = filtered.slice(0, limit);
|
||||
}
|
||||
|
||||
return Promise.resolve({
|
||||
ok: true,
|
||||
json: () => Promise.resolve(filtered),
|
||||
});
|
||||
}) as jest.Mock;
|
||||
});
|
||||
|
||||
afterAll(() => {
|
||||
process.env.EXPO_PUBLIC_API_URL = originalApiUrl;
|
||||
process.env.EXPO_PUBLIC_BACKEND_URL = originalBackendUrl;
|
||||
jest.restoreAllMocks();
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
jest.clearAllMocks();
|
||||
});
|
||||
|
||||
describe('getAllPlants', () => {
|
||||
it.each(['de', 'en', 'es'] as Language[])('returns plants for language %s', async (lang) => {
|
||||
const plants = await PlantDatabaseService.getAllPlants(lang);
|
||||
expect(plants.length).toBeGreaterThan(0);
|
||||
plants.forEach((p) => {
|
||||
expect(p).toHaveProperty('name');
|
||||
expect(p).toHaveProperty('botanicalName');
|
||||
expect(p).toHaveProperty('careInfo');
|
||||
});
|
||||
expect(plants[0].imageUri).toBe('http://localhost:3000/plants/monstera-deliciosa.webp');
|
||||
});
|
||||
|
||||
it('uses EXPO_PUBLIC_BACKEND_URL when EXPO_PUBLIC_API_URL is absent', async () => {
|
||||
delete process.env.EXPO_PUBLIC_API_URL;
|
||||
process.env.EXPO_PUBLIC_BACKEND_URL = 'https://backend.example.com';
|
||||
|
||||
await PlantDatabaseService.getAllPlants('de');
|
||||
|
||||
expect(global.fetch).toHaveBeenCalledWith('https://backend.example.com/api/plants?lang=de');
|
||||
});
|
||||
});
|
||||
|
||||
describe('searchPlants', () => {
|
||||
it('finds plants by common name', async () => {
|
||||
const results = await PlantDatabaseService.searchPlants('Monstera', 'en');
|
||||
expect(results.length).toBeGreaterThanOrEqual(1);
|
||||
expect(results[0].botanicalName).toBe('Monstera deliciosa');
|
||||
});
|
||||
|
||||
it('finds plants by botanical name', async () => {
|
||||
const results = await PlantDatabaseService.searchPlants('Ficus benjamina', 'en');
|
||||
expect(results.length).toBeGreaterThanOrEqual(1);
|
||||
expect(results[0].name).toBe('Weeping Fig');
|
||||
});
|
||||
|
||||
it('is case insensitive', async () => {
|
||||
const results = await PlantDatabaseService.searchPlants('monstera', 'en');
|
||||
expect(results.length).toBeGreaterThanOrEqual(1);
|
||||
});
|
||||
|
||||
it('returns empty array for no match', async () => {
|
||||
const results = await PlantDatabaseService.searchPlants('xyznotaplant', 'en');
|
||||
expect(results).toEqual([]);
|
||||
});
|
||||
|
||||
it('supports diacritic-insensitive search', async () => {
|
||||
const results = await PlantDatabaseService.searchPlants('adan', 'es');
|
||||
expect(results.length).toBeGreaterThan(0);
|
||||
expect(results.some(p => p.name.includes('Ad'))).toBe(true);
|
||||
});
|
||||
|
||||
it('applies category filter together with query', async () => {
|
||||
const results = await PlantDatabaseService.searchPlants('easy', 'en', { category: 'succulent' });
|
||||
expect(results.length).toBeGreaterThan(0);
|
||||
results.forEach((plant) => {
|
||||
expect(plant.categories).toContain('succulent');
|
||||
});
|
||||
});
|
||||
|
||||
it('returns category matches when query is empty', async () => {
|
||||
const results = await PlantDatabaseService.searchPlants('', 'en', { category: 'low_light' });
|
||||
expect(results.length).toBeGreaterThan(0);
|
||||
results.forEach((plant) => {
|
||||
expect(plant.categories).toContain('low_light');
|
||||
});
|
||||
});
|
||||
|
||||
it('supports typo-tolerant fuzzy matching', async () => {
|
||||
const results = await PlantDatabaseService.searchPlants('Monsteraa', 'en');
|
||||
expect(results.length).toBeGreaterThan(0);
|
||||
expect(results[0].botanicalName).toBe('Monstera deliciosa');
|
||||
});
|
||||
|
||||
it('supports natural-language hybrid search in mock mode', async () => {
|
||||
delete process.env.EXPO_PUBLIC_API_URL;
|
||||
delete process.env.EXPO_PUBLIC_BACKEND_URL;
|
||||
|
||||
const results = await PlantDatabaseService.searchPlants('pet friendly air purifier', 'en');
|
||||
|
||||
expect(results.length).toBeGreaterThan(0);
|
||||
expect(results[0].categories).toEqual(expect.arrayContaining(['pet_friendly', 'air_purifier']));
|
||||
});
|
||||
|
||||
it('respects result limits', async () => {
|
||||
const results = await PlantDatabaseService.searchPlants('', 'en', { limit: 3 });
|
||||
expect(results.length).toBe(3);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
@ -0,0 +1,258 @@
|
|||
import AsyncStorage from '@react-native-async-storage/async-storage';
|
||||
import { StorageService } from '../../services/storageService';
|
||||
import { Plant } from '../../types';
|
||||
|
||||
jest.mock('@react-native-async-storage/async-storage', () => ({
|
||||
getItem: jest.fn(),
|
||||
setItem: jest.fn(),
|
||||
removeItem: jest.fn(),
|
||||
}));
|
||||
|
||||
const mockPlant: Plant = {
|
||||
id: '1',
|
||||
name: 'Monstera',
|
||||
botanicalName: 'Monstera deliciosa',
|
||||
imageUri: 'https://example.com/img.jpg',
|
||||
dateAdded: '2024-01-01',
|
||||
careInfo: { waterIntervalDays: 7, light: 'Partial Shade', temp: '18-24°C' },
|
||||
lastWatered: '2024-01-01',
|
||||
};
|
||||
|
||||
beforeEach(() => {
|
||||
jest.clearAllMocks();
|
||||
});
|
||||
|
||||
describe('StorageService', () => {
|
||||
describe('getPlants', () => {
|
||||
it('returns empty array when no data stored', async () => {
|
||||
(AsyncStorage.getItem as jest.Mock).mockResolvedValue(null);
|
||||
const result = await StorageService.getPlants();
|
||||
expect(result).toEqual([]);
|
||||
});
|
||||
|
||||
it('returns parsed plants when data exists', async () => {
|
||||
(AsyncStorage.getItem as jest.Mock).mockResolvedValue(JSON.stringify([mockPlant]));
|
||||
const result = await StorageService.getPlants();
|
||||
expect(result).toEqual([mockPlant]);
|
||||
});
|
||||
|
||||
it('returns empty array on error', async () => {
|
||||
(AsyncStorage.getItem as jest.Mock).mockRejectedValue(new Error('fail'));
|
||||
const result = await StorageService.getPlants();
|
||||
expect(result).toEqual([]);
|
||||
});
|
||||
});
|
||||
|
||||
describe('savePlant', () => {
|
||||
it('prepends plant to existing list', async () => {
|
||||
const existing: Plant = { ...mockPlant, id: '2', name: 'Ficus' };
|
||||
(AsyncStorage.getItem as jest.Mock).mockResolvedValue(JSON.stringify([existing]));
|
||||
(AsyncStorage.setItem as jest.Mock).mockResolvedValue(undefined);
|
||||
|
||||
await StorageService.savePlant(mockPlant);
|
||||
|
||||
expect(AsyncStorage.setItem).toHaveBeenCalledWith(
|
||||
'greenlens_plants',
|
||||
JSON.stringify([mockPlant, existing])
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe('deletePlant', () => {
|
||||
it('removes plant by id', async () => {
|
||||
const plant2: Plant = { ...mockPlant, id: '2' };
|
||||
(AsyncStorage.getItem as jest.Mock).mockResolvedValue(JSON.stringify([mockPlant, plant2]));
|
||||
(AsyncStorage.setItem as jest.Mock).mockResolvedValue(undefined);
|
||||
|
||||
await StorageService.deletePlant('1');
|
||||
|
||||
expect(AsyncStorage.setItem).toHaveBeenCalledWith(
|
||||
'greenlens_plants',
|
||||
JSON.stringify([plant2])
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe('updatePlant', () => {
|
||||
it('updates existing plant', async () => {
|
||||
(AsyncStorage.getItem as jest.Mock).mockResolvedValue(JSON.stringify([mockPlant]));
|
||||
(AsyncStorage.setItem as jest.Mock).mockResolvedValue(undefined);
|
||||
|
||||
const updated = { ...mockPlant, name: 'Updated Monstera' };
|
||||
await StorageService.updatePlant(updated);
|
||||
|
||||
expect(AsyncStorage.setItem).toHaveBeenCalledWith(
|
||||
'greenlens_plants',
|
||||
JSON.stringify([updated])
|
||||
);
|
||||
});
|
||||
|
||||
it('does nothing if plant not found', async () => {
|
||||
(AsyncStorage.getItem as jest.Mock).mockResolvedValue(JSON.stringify([mockPlant]));
|
||||
|
||||
await StorageService.updatePlant({ ...mockPlant, id: 'nonexistent' });
|
||||
|
||||
expect(AsyncStorage.setItem).not.toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
||||
describe('getLanguage', () => {
|
||||
it('returns stored language', async () => {
|
||||
(AsyncStorage.getItem as jest.Mock).mockResolvedValue('en');
|
||||
const result = await StorageService.getLanguage();
|
||||
expect(result).toBe('en');
|
||||
});
|
||||
|
||||
it('defaults to de when no language stored', async () => {
|
||||
(AsyncStorage.getItem as jest.Mock).mockResolvedValue(null);
|
||||
const result = await StorageService.getLanguage();
|
||||
expect(result).toBe('de');
|
||||
});
|
||||
|
||||
it('defaults to de on error', async () => {
|
||||
(AsyncStorage.getItem as jest.Mock).mockRejectedValue(new Error('fail'));
|
||||
const result = await StorageService.getLanguage();
|
||||
expect(result).toBe('de');
|
||||
});
|
||||
});
|
||||
|
||||
describe('saveLanguage', () => {
|
||||
it('stores language', async () => {
|
||||
(AsyncStorage.setItem as jest.Mock).mockResolvedValue(undefined);
|
||||
await StorageService.saveLanguage('es');
|
||||
expect(AsyncStorage.setItem).toHaveBeenCalledWith('greenlens_language', 'es');
|
||||
});
|
||||
});
|
||||
|
||||
describe('getAppearanceMode', () => {
|
||||
it('returns stored appearance mode', async () => {
|
||||
(AsyncStorage.getItem as jest.Mock).mockResolvedValue('dark');
|
||||
const result = await StorageService.getAppearanceMode();
|
||||
expect(result).toBe('dark');
|
||||
});
|
||||
|
||||
it('defaults to system when value is invalid', async () => {
|
||||
(AsyncStorage.getItem as jest.Mock).mockResolvedValue('invalid');
|
||||
const result = await StorageService.getAppearanceMode();
|
||||
expect(result).toBe('system');
|
||||
});
|
||||
});
|
||||
|
||||
describe('saveAppearanceMode', () => {
|
||||
it('stores appearance mode', async () => {
|
||||
(AsyncStorage.setItem as jest.Mock).mockResolvedValue(undefined);
|
||||
await StorageService.saveAppearanceMode('light');
|
||||
expect(AsyncStorage.setItem).toHaveBeenCalledWith('greenlens_appearance_mode', 'light');
|
||||
});
|
||||
});
|
||||
|
||||
describe('getColorPalette', () => {
|
||||
it('returns stored palette', async () => {
|
||||
(AsyncStorage.getItem as jest.Mock).mockResolvedValue('ocean');
|
||||
const result = await StorageService.getColorPalette();
|
||||
expect(result).toBe('ocean');
|
||||
});
|
||||
|
||||
it('defaults to forest when value is invalid', async () => {
|
||||
(AsyncStorage.getItem as jest.Mock).mockResolvedValue('invalid');
|
||||
const result = await StorageService.getColorPalette();
|
||||
expect(result).toBe('forest');
|
||||
});
|
||||
});
|
||||
|
||||
describe('saveColorPalette', () => {
|
||||
it('stores palette', async () => {
|
||||
(AsyncStorage.setItem as jest.Mock).mockResolvedValue(undefined);
|
||||
await StorageService.saveColorPalette('sunset');
|
||||
expect(AsyncStorage.setItem).toHaveBeenCalledWith('greenlens_color_palette', 'sunset');
|
||||
});
|
||||
});
|
||||
|
||||
describe('profile name', () => {
|
||||
it('returns stored profile name', async () => {
|
||||
(AsyncStorage.getItem as jest.Mock).mockResolvedValue('Taylor');
|
||||
const result = await StorageService.getProfileName();
|
||||
expect(result).toBe('Taylor');
|
||||
});
|
||||
|
||||
it('falls back to default profile name when empty', async () => {
|
||||
(AsyncStorage.getItem as jest.Mock).mockResolvedValue(' ');
|
||||
const result = await StorageService.getProfileName();
|
||||
expect(result).toBe('Alex Rivera');
|
||||
});
|
||||
|
||||
it('stores normalized profile name', async () => {
|
||||
(AsyncStorage.setItem as jest.Mock).mockResolvedValue(undefined);
|
||||
await StorageService.saveProfileName(' Morgan ');
|
||||
expect(AsyncStorage.setItem).toHaveBeenCalledWith('greenlens_profile_name', 'Morgan');
|
||||
});
|
||||
});
|
||||
|
||||
describe('lexicon search history', () => {
|
||||
it('returns empty history when not set', async () => {
|
||||
(AsyncStorage.getItem as jest.Mock).mockResolvedValue(null);
|
||||
const result = await StorageService.getLexiconSearchHistory();
|
||||
expect(result).toEqual([]);
|
||||
});
|
||||
|
||||
it('returns parsed history entries', async () => {
|
||||
(AsyncStorage.getItem as jest.Mock).mockResolvedValue(JSON.stringify(['Monstera', 'Aloe']));
|
||||
const result = await StorageService.getLexiconSearchHistory();
|
||||
expect(result).toEqual(['Monstera', 'Aloe']);
|
||||
});
|
||||
|
||||
it('returns empty history on malformed JSON', async () => {
|
||||
(AsyncStorage.getItem as jest.Mock).mockResolvedValue('{bad json}');
|
||||
const result = await StorageService.getLexiconSearchHistory();
|
||||
expect(result).toEqual([]);
|
||||
});
|
||||
|
||||
it('saves new query at front', async () => {
|
||||
(AsyncStorage.getItem as jest.Mock).mockResolvedValue(JSON.stringify(['Monstera', 'Aloe']));
|
||||
(AsyncStorage.setItem as jest.Mock).mockResolvedValue(undefined);
|
||||
|
||||
await StorageService.saveLexiconSearchQuery('Ficus');
|
||||
|
||||
expect(AsyncStorage.setItem).toHaveBeenCalledWith(
|
||||
'greenlens_lexicon_search_history',
|
||||
JSON.stringify(['Ficus', 'Monstera', 'Aloe'])
|
||||
);
|
||||
});
|
||||
|
||||
it('deduplicates case and diacritic variants by moving entry to front', async () => {
|
||||
(AsyncStorage.getItem as jest.Mock).mockResolvedValue(JSON.stringify(['Monstera', 'Aloe']));
|
||||
(AsyncStorage.setItem as jest.Mock).mockResolvedValue(undefined);
|
||||
|
||||
await StorageService.saveLexiconSearchQuery('monstera');
|
||||
|
||||
expect(AsyncStorage.setItem).toHaveBeenCalledWith(
|
||||
'greenlens_lexicon_search_history',
|
||||
JSON.stringify(['monstera', 'Aloe'])
|
||||
);
|
||||
});
|
||||
|
||||
it('ignores empty queries', async () => {
|
||||
await StorageService.saveLexiconSearchQuery(' ');
|
||||
expect(AsyncStorage.setItem).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('limits history to 10 entries', async () => {
|
||||
const history = ['q1', 'q2', 'q3', 'q4', 'q5', 'q6', 'q7', 'q8', 'q9', 'q10'];
|
||||
(AsyncStorage.getItem as jest.Mock).mockResolvedValue(JSON.stringify(history));
|
||||
(AsyncStorage.setItem as jest.Mock).mockResolvedValue(undefined);
|
||||
|
||||
await StorageService.saveLexiconSearchQuery('q11');
|
||||
|
||||
expect(AsyncStorage.setItem).toHaveBeenCalledWith(
|
||||
'greenlens_lexicon_search_history',
|
||||
JSON.stringify(['q11', 'q1', 'q2', 'q3', 'q4', 'q5', 'q6', 'q7', 'q8', 'q9'])
|
||||
);
|
||||
});
|
||||
|
||||
it('clears history', async () => {
|
||||
(AsyncStorage.removeItem as jest.Mock).mockResolvedValue(undefined);
|
||||
await StorageService.clearLexiconSearchHistory();
|
||||
expect(AsyncStorage.removeItem).toHaveBeenCalledWith('greenlens_lexicon_search_history');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
import { getConfiguredApiBaseUrl, getConfiguredAssetBaseUrl } from '../../utils/backendUrl';
|
||||
|
||||
describe('backendUrl utilities', () => {
|
||||
const originalApiUrl = process.env.EXPO_PUBLIC_API_URL;
|
||||
const originalBackendUrl = process.env.EXPO_PUBLIC_BACKEND_URL;
|
||||
const originalPaymentServerUrl = process.env.EXPO_PUBLIC_PAYMENT_SERVER_URL;
|
||||
|
||||
afterEach(() => {
|
||||
process.env.EXPO_PUBLIC_API_URL = originalApiUrl;
|
||||
process.env.EXPO_PUBLIC_BACKEND_URL = originalBackendUrl;
|
||||
process.env.EXPO_PUBLIC_PAYMENT_SERVER_URL = originalPaymentServerUrl;
|
||||
});
|
||||
|
||||
it('prefers EXPO_PUBLIC_API_URL when present', () => {
|
||||
process.env.EXPO_PUBLIC_API_URL = 'https://api.example.com/api';
|
||||
process.env.EXPO_PUBLIC_BACKEND_URL = 'https://backend.example.com';
|
||||
|
||||
expect(getConfiguredApiBaseUrl()).toBe('https://api.example.com/api');
|
||||
expect(getConfiguredAssetBaseUrl()).toBe('https://api.example.com');
|
||||
});
|
||||
|
||||
it('falls back to EXPO_PUBLIC_BACKEND_URL and appends /api', () => {
|
||||
delete process.env.EXPO_PUBLIC_API_URL;
|
||||
process.env.EXPO_PUBLIC_BACKEND_URL = 'https://backend.example.com';
|
||||
|
||||
expect(getConfiguredApiBaseUrl()).toBe('https://backend.example.com/api');
|
||||
expect(getConfiguredAssetBaseUrl()).toBe('https://backend.example.com');
|
||||
});
|
||||
});
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
import { rankHybridEntries, scoreHybridEntry } from '../../utils/hybridSearch';
|
||||
|
||||
describe('hybridSearch', () => {
|
||||
const entries = [
|
||||
{
|
||||
name: 'Snake Plant',
|
||||
botanicalName: 'Sansevieria trifasciata',
|
||||
description: 'Very resilient houseplant that handles little light well.',
|
||||
categories: ['easy', 'low_light', 'air_purifier'],
|
||||
careInfo: { waterIntervalDays: 14, light: 'Low to full light', temp: '16-30C' },
|
||||
},
|
||||
{
|
||||
name: 'Spider Plant',
|
||||
botanicalName: 'Chlorophytum comosum',
|
||||
description: 'Easy houseplant that is safe for pets and helps clean indoor air.',
|
||||
categories: ['easy', 'pet_friendly', 'air_purifier'],
|
||||
careInfo: { waterIntervalDays: 6, light: 'Bright to partial shade', temp: '16-24C' },
|
||||
},
|
||||
{
|
||||
name: 'Anthurium',
|
||||
botanicalName: 'Anthurium andraeanum',
|
||||
description: 'Flowering tropical plant for bright indirect light.',
|
||||
categories: ['flowering'],
|
||||
careInfo: { waterIntervalDays: 6, light: 'Bright indirect light', temp: '18-27C' },
|
||||
},
|
||||
{
|
||||
name: 'Boston Fern',
|
||||
botanicalName: 'Nephrolepis exaltata',
|
||||
description: 'Loves steady moisture and humid rooms.',
|
||||
categories: ['high_humidity', 'hanging'],
|
||||
careInfo: { waterIntervalDays: 3, light: 'Partial shade', temp: '16-24C' },
|
||||
},
|
||||
{
|
||||
name: 'Aloe Vera',
|
||||
botanicalName: 'Aloe vera',
|
||||
description: 'Sun-loving succulent for bright windows.',
|
||||
categories: ['succulent', 'sun', 'medicinal'],
|
||||
careInfo: { waterIntervalDays: 12, light: 'Sunny', temp: '18-30C' },
|
||||
},
|
||||
];
|
||||
|
||||
it('ranks multi-intent matches above single-attribute matches', () => {
|
||||
const results = rankHybridEntries(entries, 'pet friendly air purifier', 3);
|
||||
expect(results[0].entry.name).toBe('Spider Plant');
|
||||
});
|
||||
|
||||
it('understands natural low-light and easy-care intent', () => {
|
||||
const results = rankHybridEntries(entries, 'easy plant for dark corner', 3);
|
||||
expect(results[0].entry.name).toBe('Snake Plant');
|
||||
});
|
||||
|
||||
it('keeps exact-name matches ahead of semantic-only matches', () => {
|
||||
const scores = entries.map((entry) => ({
|
||||
name: entry.name,
|
||||
score: scoreHybridEntry(entry, 'snake plant'),
|
||||
}));
|
||||
const snakeScore = scores.find((entry) => entry.name === 'Snake Plant')?.score || 0;
|
||||
const spiderScore = scores.find((entry) => entry.name === 'Spider Plant')?.score || 0;
|
||||
expect(snakeScore).toBeGreaterThan(spiderScore);
|
||||
});
|
||||
|
||||
it('maps bathroom-style queries to high-humidity plants', () => {
|
||||
const results = rankHybridEntries(entries, 'bathroom plant', 3);
|
||||
expect(results[0].entry.name).toBe('Boston Fern');
|
||||
});
|
||||
|
||||
it('maps sunny-window queries to sun-loving plants', () => {
|
||||
const results = rankHybridEntries(entries, 'plant for sunny window', 3);
|
||||
expect(results[0].entry.name).toBe('Aloe Vera');
|
||||
});
|
||||
});
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
import { getPlantImageSourceFallbackUri, tryResolveImageUri } from '../../utils/imageUri';
|
||||
|
||||
describe('imageUri utilities', () => {
|
||||
const originalApiUrl = process.env.EXPO_PUBLIC_API_URL;
|
||||
const originalBackendUrl = process.env.EXPO_PUBLIC_BACKEND_URL;
|
||||
|
||||
beforeEach(() => {
|
||||
process.env.EXPO_PUBLIC_API_URL = 'http://localhost:3000/api';
|
||||
delete process.env.EXPO_PUBLIC_BACKEND_URL;
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
process.env.EXPO_PUBLIC_API_URL = originalApiUrl;
|
||||
process.env.EXPO_PUBLIC_BACKEND_URL = originalBackendUrl;
|
||||
});
|
||||
|
||||
it('resolves local plant asset paths against the API host', () => {
|
||||
expect(tryResolveImageUri('/plants/monstera.webp')).toBe('http://localhost:3000/plants/monstera.webp');
|
||||
expect(tryResolveImageUri('plants/aloe-vera-thumb.webp')).toBe('http://localhost:3000/plants/aloe-vera-thumb.webp');
|
||||
});
|
||||
|
||||
it('rejects invalid local paths outside the plants directory', () => {
|
||||
expect(tryResolveImageUri('/uploads/monstera.webp')).toBeNull();
|
||||
expect(tryResolveImageUri('../plants/monstera.webp')).toBeNull();
|
||||
});
|
||||
|
||||
it('resolves local plant asset paths against EXPO_PUBLIC_BACKEND_URL when API_URL is absent', () => {
|
||||
delete process.env.EXPO_PUBLIC_API_URL;
|
||||
process.env.EXPO_PUBLIC_BACKEND_URL = 'https://backend.example.com';
|
||||
|
||||
expect(tryResolveImageUri('/plants/rose.webp')).toBe('https://backend.example.com/plants/rose.webp');
|
||||
});
|
||||
|
||||
it('falls back from a missing local asset to the manifest-backed source image', () => {
|
||||
expect(getPlantImageSourceFallbackUri('/plants/rosa-x-hybrida--rose--7375780c.webp')).toMatch(/^https?:\/\//);
|
||||
});
|
||||
});
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
import { rankHybridEntries } from '../../utils/hybridSearch';
|
||||
|
||||
describe('semantic category matrix', () => {
|
||||
const entries = [
|
||||
{ name: 'Starter Plant', botanicalName: 'Starter easya', description: 'Hard to kill starter plant.', categories: ['easy'], careInfo: { waterIntervalDays: 7, light: 'Bright indirect light', temp: '18-24C' } },
|
||||
{ name: 'Office Shade Plant', botanicalName: 'Shadea officis', description: 'Handles office corners well.', categories: ['low_light'], careInfo: { waterIntervalDays: 8, light: 'Low light', temp: '18-24C' } },
|
||||
{ name: 'Bright Window Plant', botanicalName: 'Brighta windowii', description: 'Thrives in bright rooms.', categories: ['bright_light'], careInfo: { waterIntervalDays: 7, light: 'Bright indirect light', temp: '18-24C' } },
|
||||
{ name: 'Sunny Aloe', botanicalName: 'Aloe vera', description: 'Sun-loving succulent for a south-facing window.', categories: ['sun'], careInfo: { waterIntervalDays: 12, light: 'Sunny', temp: '18-30C' } },
|
||||
{ name: 'Safe Pilea', botanicalName: 'Pilea peperomioides', description: 'Non toxic and pet friendly.', categories: ['pet_friendly'], careInfo: { waterIntervalDays: 7, light: 'Bright indirect light', temp: '18-24C' } },
|
||||
{ name: 'Air Cleaner Plant', botanicalName: 'Chlorophytum comosum', description: 'Helps clean the air indoors.', categories: ['air_purifier'], careInfo: { waterIntervalDays: 6, light: 'Bright to partial shade', temp: '16-24C' } },
|
||||
{ name: 'Bathroom Fern', botanicalName: 'Nephrolepis exaltata', description: 'Loves humidity and steady moisture.', categories: ['high_humidity'], careInfo: { waterIntervalDays: 3, light: 'Partial shade', temp: '16-24C' } },
|
||||
{ name: 'Trailing Vine', botanicalName: 'Epipremnum aureum', description: 'Fast-growing trailing shelf plant.', categories: ['hanging'], careInfo: { waterIntervalDays: 7, light: 'Partial shade to bright', temp: '18-27C' } },
|
||||
{ name: 'Striped Leaf Plant', botanicalName: 'Calathea ornata', description: 'Decorative leaves with striped patterns.', categories: ['patterned'], careInfo: { waterIntervalDays: 5, light: 'Partial shade', temp: '18-25C' } },
|
||||
{ name: 'Bloom Plant', botanicalName: 'Spathiphyllum', description: 'Reliable flowering houseplant.', categories: ['flowering'], careInfo: { waterIntervalDays: 5, light: 'Partial shade', temp: '18-26C' } },
|
||||
{ name: 'Desert Succulent', botanicalName: 'Echeveria elegans', description: 'Classic cactus-like drought tolerant succulent.', categories: ['succulent'], careInfo: { waterIntervalDays: 14, light: 'Sunny', temp: '15-25C' } },
|
||||
{ name: 'Indoor Tree', botanicalName: 'Ficus lyrata', description: 'Beautiful floor tree for bright rooms.', categories: ['tree'], careInfo: { waterIntervalDays: 7, light: 'Bright light', temp: '18-26C' } },
|
||||
{ name: 'Statement Plant', botanicalName: 'Strelitzia nicolai', description: 'Tall oversized statement plant.', categories: ['large'], careInfo: { waterIntervalDays: 7, light: 'Bright light', temp: '18-27C' } },
|
||||
{ name: 'Healing Herb', botanicalName: 'Mentha spicata', description: 'Kitchen herb and medicinal tea herb.', categories: ['medicinal'], careInfo: { waterIntervalDays: 3, light: 'Bright light', temp: '15-25C' } },
|
||||
];
|
||||
|
||||
const cases: Array<[string, string]> = [
|
||||
['hard to kill plant', 'Starter Plant'],
|
||||
['office plant for dark corner', 'Office Shade Plant'],
|
||||
['plant for east window', 'Bright Window Plant'],
|
||||
['plant for sunny window', 'Sunny Aloe'],
|
||||
['non toxic plant for cats', 'Safe Pilea'],
|
||||
['cleaner air plant', 'Air Cleaner Plant'],
|
||||
['bathroom plant', 'Bathroom Fern'],
|
||||
['trailing shelf plant', 'Trailing Vine'],
|
||||
['striped decorative leaves', 'Striped Leaf Plant'],
|
||||
['plant with blooms', 'Bloom Plant'],
|
||||
['cactus-like plant', 'Desert Succulent'],
|
||||
['indoor tree', 'Indoor Tree'],
|
||||
['tall statement plant', 'Statement Plant'],
|
||||
['kitchen tea herb', 'Healing Herb'],
|
||||
];
|
||||
|
||||
it.each(cases)('maps "%s" to %s', (query, expectedName) => {
|
||||
const results = rankHybridEntries(entries, query, 5);
|
||||
expect(results[0].entry.name).toBe(expectedName);
|
||||
});
|
||||
});
|
||||
|
|
@ -0,0 +1,359 @@
|
|||
source_file,source_index,name,botanical_name,all_categories,category_count,description,light,temp,water_interval_days
|
||||
constants/lexiconBatch2.ts,115,Faecherahorn,Acer palmatum,tree,1,"Der Faecherahorn ist ein japanischer Zierahorn mit feingeschnittenen, faecherfoermigen Blaettern in Gruen oder Rot.",Helles bis volles Licht,10-22 °C,5
|
||||
constants/lexiconBatch2.ts,212,Spitzahorn,Acer platanoides,tree|large|sun,3,Spitzahorn ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch2.ts,108,Schafgarbe,Achillea millefolium,flowering|medicinal|sun,3,Die Schafgarbe hat weisse oder rosafarbene Bluetenschirme und fein gefiederte Blaetter. Wichtige Heilpflanze.,Volles Sonnenlicht,10-25 °C,7
|
||||
constants/lexiconBatch1.ts,86,Wuestenrose,Adenium obesum,flowering|succulent|sun,3,Die Wuestenrose ist eine sukkulente Zimmerpflanze mit dickem Stamm und leuchtend pinken Blueten.,Volles Sonnenlicht,20-35 °C,10
|
||||
constants/lexiconBatch2.ts,117,Socotra-Wuestenrose,Adenium socotranum,flowering|succulent|sun,3,"Die Socotra-Wuestenrose ist eine seltene, endemische Art mit einem sehr dicken, knolligen Stamm und rosa Blueten.",Volles Sonnenlicht,20-35 °C,14
|
||||
constants/lexiconBatch2.ts,42,Frauenhaarfarn,Adiantum raddianum,high_humidity,1,"Der Frauenhaarfarn hat zarte, feingliedrige Wedel auf schwarzen, drahtaehnlichen Stielen. Liebt Feuchtigkeit.",Helles indirektes Licht,18-27 °C,3
|
||||
constants/lexiconBatch2.ts,31,Adromischus,Adromischus cristatus,easy|succulent|sun,3,Adromischus ist eine kompakte Sukkulente mit ungewoehnlich wellenrandigen Blaettern auf kurzen Staengeln.,Helles bis volles Licht,15-25 °C,14
|
||||
constants/lexiconBatch2.ts,34,Silbervase,Aechmea fasciata,flowering|patterned,2,Die Silbervase ist eine Bromelie mit silbrig gebänderten Blaettern und einem rosafarbenen Bluetenstand.,Helles indirektes Licht,18-25 °C,10
|
||||
constants/lexiconBatch1.ts,10,Schwarze Rose (Aeonium),Aeonium arboreum,succulent|sun,2,"Das Aeonium bildet dekorative, rosettenfoermige Sukkulenten an verzweigten Stielen.",Volles Sonnenlicht,10-25 °C,10
|
||||
constants/lexiconBatch1.ts,98,Lippenstiftpflanze,Aeschynanthus radicans,flowering|hanging|high_humidity,3,Die Lippenstiftpflanze hat haengende Triebe mit glaenzenden Blaettern und leuchtend roten Roehrenbluten.,Helles indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch1.ts,11,Agave,Agave americana,succulent|large|sun,3,"Die Agave ist eine imposante Sukkulente mit steifen, blaugruenen Blaettern mit Stacheln. Sie bluet nur einmal.",Volles Sonnenlicht,10-35 °C,21
|
||||
constants/lexiconBatch1.ts,50,Aglaoneme,Aglaonema commutatum,easy|patterned|low_light,3,Die Aglaoneme ist eine dekorative Zimmerpflanze mit silbrig-gruen gemusterten Blaettern. Tolerant gegenueber wenig Licht.,Wenig bis helles Licht,15-26 °C,7
|
||||
constants/lexiconBatch2.ts,155,Stockrose,Alcea rosea,flowering|sun,2,"Stockrose ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,30,Schnittlauch,Allium schoenoprasum,easy,1,Schnittlauch ist ein beliebtes Kuechenkraut mit roehrenfoermigen Blaettern und lila Blueten.,Helles bis volles Licht,10-25 °C,3
|
||||
constants/lexiconBatch2.ts,135,Schnittknoblauch,Allium tuberosum,easy|sun,2,Schnittknoblauch ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch1.ts,46,Amazona-Taro,Alocasia amazonica,patterned|large|high_humidity,3,"Der Amazona-Taro besticht mit dunkelgruenen, pfeilfoermigen Blaettern mit markant weissen Rippen.",Indirektes Licht,18-27 °C,5
|
||||
constants/lexiconBatch2.ts,225,Alocasia zebrina,Alocasia zebrina,bright_light|high_humidity,2,Alocasia zebrina ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5
|
||||
constants/lexiconBatch1.ts,89,Kap-Aloe,Aloe arborescens,easy|succulent|medicinal|sun,4,"Die Kap-Aloe ist eine strauchige Aloe mit schmalen, gezaehnten Blaettern und leuchtend roten Bluetenaehren im Winter.",Volles Sonnenlicht,10-30 °C,14
|
||||
constants/lexiconBatch2.ts,18,Kap-Aloe (ferox),Aloe ferox,succulent|large|medicinal|sun,4,"Aloe ferox ist eine grosse, imposante Aloe mit stachligen, blaugruenen Blaettern und leuchtend roten Bluetenaehren.",Volles Sonnenlicht,10-30 °C,14
|
||||
constants/lexiconBatch2.ts,128,Zitronenverbene,Aloysia citrodora,easy|sun,2,Zitronenverbene ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch2.ts,73,Muschelingwer,Alpinia zerumbet,flowering|large|high_humidity,3,"Der Muschelingwer hat lange, elegante Blaetter und haengende Bluetenrispen mit weiss-rosa Bluetchen.",Helles bis volles Licht,20-30 °C,5
|
||||
constants/lexiconBatch2.ts,194,Fuchsschwanz,Amaranthus caudatus,flowering|sun,2,"Fuchsschwanz ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,163,Anemone,Anemone coronaria,flowering|sun,2,"Anemone ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,140,Dill,Anethum graveolens,easy|sun,2,Dill ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch2.ts,125,Kerbel,Anthriscus cerefolium,easy|sun,2,Kerbel ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch2.ts,233,Samt-Anthurie,Anthurium clarinervium,patterned|high_humidity,2,Samt-Anthurie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5
|
||||
constants/lexiconBatch2.ts,234,Kristall-Anthurie,Anthurium crystallinum,patterned|high_humidity,2,Kristall-Anthurie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5
|
||||
constants/lexiconBatch2.ts,147,Loewenmaeulchen,Antirrhinum majus,flowering|sun,2,"Loewenmaeulchen ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,232,Norfolk-Tanne,Araucaria heterophylla,tree|bright_light,2,Norfolk-Tanne ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7
|
||||
constants/lexiconBatch2.ts,107,Arnika,Arnica montana,flowering|medicinal|sun,3,Arnika ist eine bekannte Heilpflanze aus den Alpen mit goldgelben Korbbluten. Sie wird fuer Muskeln und Gelenke verwendet.,Volles Sonnenlicht,10-20 °C,7
|
||||
constants/lexiconBatch2.ts,110,Wermut,Artemisia absinthium,medicinal|sun,2,"Wermut ist ein stark aromatisches Heilkraut mit silbrig-gruenen, tief eingeschnittenen Blaettern. Fuer Kraeuterlikoere.",Volles Sonnenlicht,10-25 °C,14
|
||||
constants/lexiconBatch2.ts,122,Estragon,Artemisia dracunculus,easy|sun,2,Estragon ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch2.ts,178,Seidenpflanze,Asclepias tuberosa,flowering|sun,2,"Seidenpflanze ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,16,Schusterpflanze,Aspidistra elatior,easy|low_light,2,"Die Schusterpflanze ist eine extrem robuste Zimmerpflanze mit langen, dunkelgruenen Blaettern. Vertraegt tiefe Temperaturen.",Wenig bis helles Licht,10-20 °C,14
|
||||
constants/lexiconBatch2.ts,43,Vogelnest-Farn,Asplenium nidus,easy|low_light|high_humidity,3,"Der Vogelnest-Farn hat ganzrandige, glaenzende Wedel, die eine Nestform bilden. Sehr dekorativ und robust.",Helles indirektes Licht,18-27 °C,5
|
||||
constants/lexiconBatch2.ts,13,Japanische Aucube,Aucuba japonica,easy|low_light,2,"Die Japanische Aucube hat glaenzende, gruene oder gelbgefleckte Blaetter. Sehr schattenvertraeglich.",Wenig bis helles Licht,10-20 °C,7
|
||||
constants/lexiconBatch1.ts,92,Indische Azalee,Azalea indica,flowering,1,"Die Indische Azalee ist ein beliebter Zierstrauch mit grossen, auffaelligen Blueten in Rosa- und Rottönen.",Helles indirektes Licht,10-20 °C,4
|
||||
constants/lexiconBatch2.ts,7,Bambusrohr,Bambusa vulgaris,easy|large,2,Das Bambusrohr ist eine schnell wachsende Bambusart mit gelbgruenen Halmen. Sehr dekorativ und vielseitig nutzbar.,Helles bis volles Licht,15-30 °C,5
|
||||
constants/lexiconBatch1.ts,41,Pferdeschwanzpalme,Beaucarnea recurvata,easy|succulent|tree|sun,4,"Die Pferdeschwanzpalme hat einen verdickten Stammbasis als Wasserspeicher und lange, schmale Blaetter.",Volles Sonnenlicht,15-30 °C,21
|
||||
constants/lexiconBatch2.ts,57,Forellen-Begonie,Begonia maculata,patterned|high_humidity,2,Die Forellen-Begonie hat olivgruene Blaetter mit silbernen Punkten und einer roten Unterseite. Atemberaubend.,Helles indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch1.ts,18,Koenigsbegonie,Begonia rex,patterned|high_humidity,2,"Die Koenigsbegonie beeindruckt mit prachtvoll gemusterten Blaettern in Silber, Rot und Gruen.",Indirektes Licht,18-25 °C,5
|
||||
constants/lexiconBatch2.ts,175,Eisbegonie,Begonia semperflorens-cultorum,flowering|bright_light,2,"Eisbegonie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,58,Knollen-Begonie,Begonia tuberhybrida,flowering|high_humidity,2,"Die Knollen-Begonie hat riesige, rosenaehnliche Blueten in leuchtendem Rot, Orange, Gelb oder Weiss.",Helles indirektes Licht,15-22 °C,5
|
||||
constants/lexiconBatch2.ts,145,Gaensebluemchen,Bellis perennis,flowering|sun,2,"Gaensebluemchen ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,97,Mangold,Beta vulgaris,easy,1,"Mangold ist ein farbenfrohes Blattgemuese mit bunten Stielen in Rot, Gelb, Orange und Weiss.",Helles bis volles Licht,10-25 °C,3
|
||||
constants/lexiconBatch2.ts,114,Hange-Birke,Betula pendula,tree|large|medicinal,3,Die Haenge-Birke hat charakteristisch weisse Rinde und haengende Zweige. Die Blaetter werden in der Heilkunde genutzt.,Volles Sonnenlicht,10-25 °C,7
|
||||
constants/lexiconBatch2.ts,38,Billbergia,Billbergia nutans,easy|flowering,2,"Die Billbergia ist eine robuste Bromelie mit schmalen, gruenen Blaettern und hängenden, blauen und gruenen Blueten.",Helles indirektes Licht,15-25 °C,7
|
||||
constants/lexiconBatch2.ts,129,Borretsch,Borago officinalis,easy|sun,2,Borretsch ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch1.ts,62,Bougainvillea,Bougainvillea spectabilis,flowering|bright_light|sun,3,"Die Bougainvillea ist eine rankenreiche Kletterpflanze mit leuchtend farbigen Hochblaettern in Rot, Orange oder Pink.",Volles Sonnenlicht,18-30 °C,5
|
||||
constants/lexiconBatch2.ts,223,Schmetterlingsflieder,Buddleja davidii,flowering|tree|sun,3,Schmetterlingsflieder ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch2.ts,202,Buchsbaum,Buxus sempervirens,tree|sun,2,Buchsbaum ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch1.ts,49,Buntblatt,Caladium bicolor,patterned|high_humidity,2,"Das Buntblatt beeindruckt mit transparenten, bunt gemusterten Blaettern in Pink, Rot, Weiss und Gruen.",Indirektes Licht,20-30 °C,5
|
||||
constants/lexiconBatch2.ts,187,Ringelblume,Calendula officinalis,flowering|medicinal|sun,3,"Ringelblume ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,63,Calibrachoa,Calibrachoa hybrida,easy|flowering|hanging|sun,4,"Calibrachoa ist eine petunienaehnliche Haengepflanze mit unzaehligen, kleinen Trichterbluten in allen Farben.",Volles Sonnenlicht,15-25 °C,2
|
||||
constants/lexiconBatch2.ts,56,Callisia,Callisia repens,easy|hanging,2,"Callisia repens ist ein kleines, kriechendes Kraut mit winzigen, gruenen Blaettern. Ideal fuer haengende Behaelter.",Helles indirektes Licht,15-25 °C,5
|
||||
constants/lexiconBatch1.ts,93,Kamelie,Camellia japonica,flowering,1,Die Kamelie ist ein eleganter Zierstrauch mit glaenzenden Blaettern und rosenaehnlichen Blueten von Januar bis April.,Helles indirektes Licht,7-18 °C,5
|
||||
constants/lexiconBatch2.ts,85,Teestrauch,Camellia sinensis,flowering,1,"Der Teestrauch ist die Pflanze, aus deren Blaettern Tee gewonnen wird. Er hat weisse Blueten und glaenzende Blaetter.",Helles indirektes Licht,15-22 °C,7
|
||||
constants/lexiconBatch2.ts,184,Trompetenwinde,Campsis radicans,flowering|bright_light,2,"Trompetenwinde ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,67,Blumenschilfrohr,Canna indica,flowering|large|sun,3,"Das Blumenschilfrohr hat grosse, tropisch wirkende Blaetter und auffaellige Blueten in Rot, Orange oder Gelb.",Volles Sonnenlicht,18-28 °C,5
|
||||
constants/lexiconBatch2.ts,92,Chili,Capsicum annuum,easy|medicinal|sun,3,"Chili ist eine beliebte Gemuese- und Zierpflanze mit leuchtenden, roten oder orangen Fruechten. Im Topf kultivierbar.",Volles Sonnenlicht,20-30 °C,4
|
||||
constants/lexiconBatch2.ts,90,Papaya,Carica papaya,large|sun,2,"Die Papaya ist eine tropische Fruchtpflanze mit grossen, gelappten Blaettern und orangen Fruechten.",Volles Sonnenlicht,20-35 °C,5
|
||||
constants/lexiconBatch2.ts,217,Trompetenbaum,Catalpa bignonioides,tree|large|sun,3,Trompetenbaum ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch1.ts,73,Cattleya-Orchidee,Cattleya labiata,flowering|high_humidity,2,"Die Cattleya ist die Koenigin der Orchideen mit ueppigen, duftenden Blueten in Lila, Rosa und Weiss.",Helles indirektes Licht,18-28 °C,7
|
||||
constants/lexiconBatch2.ts,208,Zeder,Cedrus libani,tree|large|sun,3,Zeder ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch2.ts,188,Kornblume,Centaurea cyanus,flowering|sun,2,"Kornblume ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,81,Peruanischer Fackelkaktus,Cereus peruvianus,easy|succulent|large|sun,4,"Der Peruanische Fackelkaktus ist ein saeulenfoermiger Kaktus, der im Innenraum bis zu 2 m hoch werden kann.",Volles Sonnenlicht,15-35 °C,21
|
||||
constants/lexiconBatch1.ts,99,Herzkette,Ceropegia woodii,easy|succulent|patterned|hanging,4,"Die Herzkette hat duenne, haengende Ranken mit herzfoermigen, silbergrau gemusterten Blaettchen.",Helles indirektes Licht,15-27 °C,14
|
||||
constants/lexiconBatch1.ts,43,Bergpalme,Chamaedorea elegans,easy|pet_friendly|tree|air_purifier|low_light,5,Die Bergpalme ist eine kompakte Zimmerpalme fuer schattigere Standorte. Ideal fuer dunkle Innenraeume.,Wenig bis helles Licht,15-25 °C,7
|
||||
constants/lexiconBatch2.ts,138,Roemische Kamille,Chamaemelum nobile,easy|medicinal|sun,3,Roemische Kamille ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch2.ts,101,Kamille,Chamomilla recutita,easy|medicinal|sun,3,"Die Kamille ist ein beliebtes Heilkraut mit kleinen, weiss-gelben Blueten. Das aetherische Oel wirkt beruhigend.",Volles Sonnenlicht,15-25 °C,5
|
||||
constants/lexiconBatch1.ts,67,Chrysantheme,Chrysanthemum indicum,flowering,1,"Die Chrysantheme ist die klassische Herbstblume mit ueppigen, dichten Blueten in vielen Farben.",Helles bis volles Licht,12-22 °C,4
|
||||
constants/lexiconBatch2.ts,86,Zitronenbaum,Citrus limon,tree|sun,2,"Der Zitronenbaum ist ein kleiner, immergruener Baum mit weissen, duftenden Blueten und gelben Fruechten.",Volles Sonnenlicht,18-28 °C,5
|
||||
constants/lexiconBatch2.ts,87,Orangenbaum,Citrus sinensis,tree|sun,2,"Der Orangenbaum ist ein kleiner, immergruener Baum mit weissen Blueten und orangen Fruechten.",Volles Sonnenlicht,18-28 °C,5
|
||||
constants/lexiconBatch2.ts,157,Clematis,Clematis viticella,flowering|bright_light,2,"Clematis ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,104,Riemenblatt,Clivia miniata,flowering,1,Das Riemenblatt ist eine dekorative Zimmerpflanze mit leuchtend orangefarbenen Blueten im Fruehling.,Helles indirektes Licht,15-24 °C,10
|
||||
constants/lexiconBatch2.ts,224,Kroton,Codiaeum variegatum,patterned|bright_light,2,Kroton ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7
|
||||
constants/lexiconBatch2.ts,84,Kaffeestrauch,Coffea arabica,easy,1,"Der Kaffeestrauch hat glaenzende, dunkelgruene Blaetter und entwickelt rote Kaffeekirschen. Kann im Topf gehalten werden.",Helles indirektes Licht,18-25 °C,7
|
||||
constants/lexiconBatch2.ts,245,Kaffeepflanze arabica nana,Coffea arabica Nana,bright_light,1,Kaffeepflanze arabica nana ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7
|
||||
constants/lexiconBatch1.ts,47,Taro,Colocasia esculenta,large|high_humidity,2,"Der Taro ist eine tropische Pflanze mit grossen, herzfoermigen Blaettern. Die Knollen sind Nahrungsquelle.",Helles indirektes Licht,18-30 °C,3
|
||||
constants/lexiconBatch1.ts,97,Columnea,Columnea gloriosa,flowering|hanging|high_humidity,3,"Die Columnea ist eine haengende Zimmerpflanze mit kleinen, behaarten Blaettern und leuchtend roten, roehrenfoermigen Blueten.",Helles indirektes Licht,18-25 °C,7
|
||||
constants/lexiconBatch2.ts,24,Konophytum,Conophytum calculus,succulent|sun,2,"Das Konophytum ist eine sehr kompakte Sukkulente, die zwei Blaetter zu einer kugelfoermigen Form verschmilzt.",Volles Sonnenlicht,10-25 °C,21
|
||||
constants/lexiconBatch2.ts,160,Maigloeckchen,Convallaria majalis,flowering|medicinal,2,"Maigloeckchen ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,14,Keulenlilie,Cordyline australis,easy|tree|sun,3,"Die Keulenlilie hat lange, schmale, gruene oder rotbraune Blaetter in einem dekorativen Schopf.",Helles bis volles Licht,10-25 °C,7
|
||||
constants/lexiconBatch2.ts,15,Tiroler Keulenlilie,Cordyline fruticosa,easy,1,"Die Tiroler Keulenlilie hat leuchtend rote, gruene oder buntlaubige Blaetter. Eine exotische Zimmerpflanze.",Helles indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch2.ts,181,Maedchenauge,Coreopsis tinctoria,flowering|sun,2,"Maedchenauge ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,139,Koriander,Coriandrum sativum,easy|sun,2,Koriander ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch2.ts,150,Kosmee,Cosmos bipinnatus,flowering|sun,2,"Kosmee ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,29,Kotyledon,Cotyledon orbiculata,easy|succulent|sun,3,"Kotyledon hat dickfleischige, runde Blaetter mit einem mehligen, weisslichen Belag. Sehr trockenheitsresistent.",Helles bis volles Licht,15-25 °C,14
|
||||
constants/lexiconBatch2.ts,26,Moos-Crassula,Crassula muscosa,easy|succulent|sun,3,"Die Moos-Crassula hat dicht aneinandergereihte, winzige gruene Blaetter auf unverzweigten Trieben. Sieht aus wie Moos.",Helles bis volles Licht,15-25 °C,14
|
||||
constants/lexiconBatch1.ts,5,Jadepflanze,Crassula ovata,easy|succulent|sun,3,"Die Jadepflanze ist eine langlebige Sukkulente mit dicken, ovalen Blaettern. In Japan gilt sie als Gluecksbringer.",Helles bis volles Licht,15-24 °C,14
|
||||
constants/lexiconBatch1.ts,110,Krokus,Crocus vernus,easy|flowering,2,"Der Krokus ist einer der ersten Fruehjahrsboten mit kelchfoermigen Blueten in Lila, Weiss und Gelb.",Helles bis volles Licht,5-15 °C,7
|
||||
constants/lexiconBatch2.ts,39,Cryptanthus,Cryptanthus bivittatus,patterned|high_humidity,2,Cryptanthus ist eine niedrig wachsende Bromelie mit sternfoermigen Rosetten und gemusterten Blaettern. Fuer Terrarien.,Helles indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch1.ts,53,Ctenanthe,Ctenanthe burle-marxii,patterned|high_humidity,2,Die Ctenanthe hat faszinierend gemusterte Blaetter mit dunkelgruunem Fischgraetenmuster auf hellgruunem Hintergrund.,Indirektes Licht,18-25 °C,5
|
||||
constants/lexiconBatch2.ts,94,Gurke,Cucumis sativus,easy|sun,2,"Die Gurke ist eine rankende Gemuesepflanze mit gruenen, erfrischenden Fruechten. Im Balkonkasten kultivierbar.",Volles Sonnenlicht,18-28 °C,3
|
||||
constants/lexiconBatch2.ts,209,Zypresse,Cupressus sempervirens,tree|large|sun,3,Zypresse ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch2.ts,74,Kurkuma,Curcuma longa,medicinal|high_humidity,2,Kurkuma ist eine tropische Gewuerzpflanze mit breiten Blaettern und leuchtend gelber Wurzel. Wichtiges Heilgewuerz.,Helles bis volles Licht,20-30 °C,7
|
||||
constants/lexiconBatch2.ts,236,String of Bananas,Curio radicans,succulent|hanging|sun,3,String of Bananas ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles bis volles Licht,18-30 C,10
|
||||
constants/lexiconBatch2.ts,237,String of Dolphins,Curio x peregrinus,succulent|hanging|sun,3,String of Dolphins ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles bis volles Licht,18-30 C,10
|
||||
constants/lexiconBatch2.ts,239,Palmfarn,Cycas revoluta,tree|large|sun,3,Palmfarn ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles bis volles Licht,18-30 C,10
|
||||
constants/lexiconBatch1.ts,19,Alpenveilchen,Cyclamen persicum,flowering,1,"Das Alpenveilchen bluet im Herbst und Winter mit eleganten Blueten in Rosa, Rot oder Weiss.",Helles indirektes Licht,12-18 °C,5
|
||||
constants/lexiconBatch1.ts,71,Zymbidium,Cymbidium lowianum,flowering,1,"Das Zymbidium ist eine robuste Orchidee mit langen, grassartigen Blaettern und eleganten Bluetenrispen.",Helles Licht,12-24 °C,7
|
||||
constants/lexiconBatch2.ts,127,Zitronengras,Cymbopogon citratus,easy|sun,2,Zitronengras ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch2.ts,9,Paragraphenpflanze,Cyperus alternifolius,high_humidity,1,"Die Paragraphenpflanze hat lange, grasartige Blaetter, die sternfoermig vom Stiel abstehen. Sie liebt viel Wasser.",Helles bis volles Licht,18-27 °C,3
|
||||
constants/lexiconBatch2.ts,68,Dahlie,Dahlia pinnata,flowering|sun,2,Die Dahlie ist eine prachtvolle Sommerblume mit Blueten in allen Groessen und Formen. Sie wird aus Knollen gezogen.,Volles Sonnenlicht,15-25 °C,5
|
||||
constants/lexiconBatch2.ts,99,Karotte,Daucus carota,easy,1,Die Karotte ist eine beliebte Gemuesepflanze mit orangefarbenen Wurzeln. Im tiefen Topf kultivierbar.,Helles bis volles Licht,15-22 °C,5
|
||||
constants/lexiconBatch2.ts,215,Flammenbaum,Delonix regia,flowering|tree|large,3,Flammenbaum ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch2.ts,153,Rittersporn,Delphinium elatum,flowering|sun,2,"Rittersporn ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,70,Dendrobium,Dendrobium nobile,flowering|high_humidity,2,"Das Dendrobium ist eine beliebte Zimmerorchidee mit langen Pseudobulben, die im Winter mit Blueten besetzt werden.",Helles indirektes Licht,15-28 °C,10
|
||||
constants/lexiconBatch2.ts,189,Bartnelke,Dianthus barbatus,flowering|sun,2,"Bartnelke ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,146,Nelke,Dianthus caryophyllus,flowering|sun,2,"Nelke ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,48,Dieffenbachie,Dieffenbachia seguine,easy|air_purifier|low_light,3,"Die Dieffenbachie ist eine tropische Blattschmuckpflanze mit grossen, gruen-weiss gefleckten Blaettern.",Helles indirektes Licht,18-26 °C,7
|
||||
constants/lexiconBatch2.ts,109,Roter Fingerhut,Digitalis purpurea,flowering|medicinal,2,"Der Rote Fingerhut hat hohe Bluetenstaende mit roehrenfoermigen, gepunkteten Blueten in Rosa. Wichtige Arzneipflanze.",Helles bis volles Licht,10-20 °C,7
|
||||
constants/lexiconBatch2.ts,77,Venusfliegenfalle,Dionaea muscipula,sun,1,Die Venusfliegenfalle ist eine fleischfressende Pflanze mit klappfallartigen Blaettern. Faengt Insekten.,Volles Sonnenlicht,15-30 °C,5
|
||||
constants/lexiconBatch1.ts,101,Dischidia,Dischidia ruscifolia,succulent|hanging,2,"Die Dischidia ist eine epiphytische Haengepflanze mit kleinen, runden Blaettern entlang duenner Ranken.",Helles indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch1.ts,14,Maisstrauch,Dracaena fragrans,easy|tree|air_purifier|low_light,4,"Der Maisstrauch ist eine robuste Zimmerpflanze mit breiten, gestreiften Blaettern. Gedeiht auch bei wenig Licht.",Helles indirektes Licht,15-25 °C,10
|
||||
constants/lexiconBatch1.ts,13,Drachenbaum,Dracaena marginata,easy|tree|air_purifier,3,"Der Drachenbaum ist eine schlanke Zimmerpflanze mit roten, schmalen Blaettern auf langen Staemmen.",Helles indirektes Licht,15-25 °C,10
|
||||
constants/lexiconBatch2.ts,80,Sonnentau,Drosera capensis,high_humidity|sun,2,Der Sonnentau faengt Insekten mit klebrigen Tropfen auf seinen Blaettern. Eine faszinierende fleischfressende Pflanze.,Volles Sonnenlicht,15-25 °C,5
|
||||
constants/lexiconBatch2.ts,30,Dudleya,Dudleya brittonii,easy|succulent|sun,3,"Dudleya ist eine rosettenbildende Sukkulente mit silbrig-weissen, mehligen Blaettern. Sehr elegant.",Volles Sonnenlicht,10-25 °C,14
|
||||
constants/lexiconBatch1.ts,42,Goldfruchtpalme,Dypsis lutescens,pet_friendly|tree|air_purifier,3,Die Goldfruchtpalme ist eine elegante Zimmerpalme mit gelblich-gruenen Stielen und gefiederten Wedeln.,Helles indirektes Licht,18-27 °C,5
|
||||
constants/lexiconBatch1.ts,4,Echeverie,Echeveria elegans,easy|succulent|sun,3,"Die Echeverie bildet symmetrische, rosettenfoermige Sukkulenten mit blaugruenen Blaettern. Pflegeleicht.",Volles Sonnenlicht,15-25 °C,14
|
||||
constants/lexiconBatch2.ts,106,Sonnenhut,Echinacea purpurea,flowering|medicinal|sun,3,"Der Sonnenhut ist eine beliebte Heilpflanze mit grossen, pinkfarbenen Blueten. Er staerkt das Immunsystem.",Helles bis volles Licht,15-25 °C,7
|
||||
constants/lexiconBatch1.ts,77,Goldene Tonne,Echinocactus grusonii,easy|succulent|sun,3,Die Goldene Tonne ist ein ikonischer kugelfoermiger Kaktus mit goldgelben Stacheln. Waechst langsam aber imposant.,Volles Sonnenlicht,15-35 °C,21
|
||||
constants/lexiconBatch1.ts,83,San-Pedro-Kaktus,Echinopsis pachanoi,easy|succulent|sun,3,"Der San-Pedro-Kaktus ist ein schnell wachsender, saeulenfoermiger Kaktus aus den Anden.",Volles Sonnenlicht,10-35 °C,14
|
||||
constants/lexiconBatch1.ts,84,Koenigin der Nacht,Epiphyllum oxypetalum,flowering|succulent,2,"Die Koenigin der Nacht bluet nur eine einzige Nacht lang mit riesigen, intensiv duftenden weissen Blueten.",Indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch1.ts,16,Marmor-Efeutute,Epipremnum aureum Marble Queen,easy|hanging|air_purifier,3,Die Marmor-Efeutute hat cremeweiss-gruen marmorierte Blaetter. Eine dekorative Variante der klassischen Efeutute.,Helles indirektes Licht,15-30 °C,7
|
||||
constants/lexiconBatch2.ts,53,Neon-Efeutute,Epipremnum pinnatum Neon,easy|hanging|air_purifier,3,Die Neon-Efeutute hat leuchtend limonengruene Blaetter. Sehr auffaellig und pflegeleicht.,Helles indirektes Licht,15-30 °C,7
|
||||
constants/lexiconBatch2.ts,186,Kalifornischer Mohn,Eschscholzia californica,flowering|sun,2,"Kalifornischer Mohn ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,210,Eukalyptus,Eucalyptus globulus,tree|medicinal|sun,3,Eukalyptus ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch2.ts,19,Christusdorn,Euphorbia milii,easy|flowering|succulent|sun,4,Der Christusdorn ist eine sukkulente Wolfsmilch mit stacheligen Zweigen und kleinen roten oder gelben Hochblaettern.,Helles bis volles Licht,15-28 °C,10
|
||||
constants/lexiconBatch2.ts,20,Weihnachtsstern,Euphorbia pulcherrima,flowering,1,Der Weihnachtsstern ist die klassische Winterpflanze mit leuchtend roten Hochblaettern. Er steht symbolisch fuer Weihnachten.,Helles indirektes Licht,15-22 °C,7
|
||||
constants/lexiconBatch1.ts,12,Bleistiftkaktus,Euphorbia tirucalli,easy|succulent|sun,3,"Der Bleistiftkaktus ist eine sukkulente Wolfsmilch mit duennen, zylindrischen Zweigen ohne Blaetter.",Volles Sonnenlicht,18-30 °C,14
|
||||
constants/lexiconBatch2.ts,137,Wasabi,Eutrema japonicum,bright_light|high_humidity,2,"Wasabi ist ein seltenes Wuerzkraut, das gleichmaessige Feuchte und eher kuehle Bedingungen bevorzugt.",Helles indirektes Licht,8-20 C,4
|
||||
constants/lexiconBatch2.ts,12,Fatsia,Fatsia japonica,easy|low_light,2,"Die Fatsia ist ein dekorativer Zimmerstrauch mit grossen, handfoermigen, glaenzenden Blaettern. Sehr robust.",Helles indirektes Licht,10-20 °C,7
|
||||
constants/lexiconBatch1.ts,78,Fass-Kaktus,Ferocactus cylindraceus,easy|succulent|sun,3,"Der Fass-Kaktus ist ein zylindrischer Wuestenkaktus mit langen, roten Stacheln. Sehr langlebig.",Volles Sonnenlicht,15-35 °C,21
|
||||
constants/lexiconBatch2.ts,248,Ficus altissima,Ficus altissima,tree|bright_light,2,Ficus altissima ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7
|
||||
constants/lexiconBatch1.ts,1,Birkenfeige,Ficus benjamina,tree|air_purifier,2,"Die Birkenfeige ist ein eleganter Zimmerstrauch mit haengenden Aesten und kleinen, glaenzenden Blaettern.",Helles indirektes Licht,16-24 °C,7
|
||||
constants/lexiconBatch1.ts,38,Gummibaum,Ficus elastica,easy|tree|air_purifier,3,"Der Gummibaum ist eine imposante Zimmerpflanze mit grossen, glaenzenden, lederartigen Blaettern. Reinigt die Luft.",Helles indirektes Licht,16-24 °C,10
|
||||
constants/lexiconBatch1.ts,39,Geigenfeige,Ficus lyrata,tree|large|bright_light,3,"Die Geigenfeige ist ein Trendbaum mit grossen, geigenfoermigen Blaettern. Benoetigt viel Licht.",Helles indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch2.ts,247,Ficus microcarpa,Ficus microcarpa,easy|tree|bright_light,3,Ficus microcarpa ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7
|
||||
constants/lexiconBatch2.ts,116,Bonsai-Feige,Ficus retusa,tree,1,"Die Bonsai-Feige ist eine klassische Bonsai-Art mit kleinen, elliptischen Blaettern. Sehr formbar.",Helles indirektes Licht,16-24 °C,7
|
||||
constants/lexiconBatch2.ts,226,Nervenpflanze,Fittonia albivenis,patterned|high_humidity,2,Nervenpflanze ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5
|
||||
constants/lexiconBatch2.ts,219,Forsythie,Forsythia x intermedia,flowering|tree|sun,3,Forsythie ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch2.ts,100,Erdbeere,Fragaria ananassa,easy|pet_friendly|sun,3,"Die Erdbeere ist ein beliebtes Obst fuer Balkon und Terrasse mit aromatischen, roten Fruechten.",Helles bis volles Licht,15-25 °C,3
|
||||
constants/lexiconBatch2.ts,169,Freesie,Freesia refracta,flowering|sun,2,"Freesie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,33,Fuchsie,Fuchsia hybrida,flowering|hanging,2,"Die Fuchsie haengt mit eleganten, zweifarbigen Blueten wie kleine Ohrringe herab. Ideal fuer Ampeln.",Helles indirektes Licht,14-22 °C,3
|
||||
constants/lexiconBatch2.ts,60,Triphylla-Fuchsie,Fuchsia triphylla,flowering|hanging,2,"Die Triphylla-Fuchsie hat lange, roehrenfoermige, orangefarbe Blueten in haengenden Trauben. Sehr exotisch.",Helles indirektes Licht,15-22 °C,3
|
||||
constants/lexiconBatch2.ts,196,Kokardenblume,Gaillardia aristata,flowering|sun,2,"Kokardenblume ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,22,Gardenie,Gardenia jasminoides,flowering|high_humidity,2,"Die Gardenie fasziniert mit cremefarbenen, intensiv duftenden Blueten. Anspruchsvoll in der Pflege.",Helles indirektes Licht,18-23 °C,5
|
||||
constants/lexiconBatch1.ts,90,Gasteria,Gasteria carinata,easy|succulent|low_light,3,"Die Gasteria ist eine kleine Sukkulente mit zweireihig angeordneten, zungenfoermigen, gefleckten Blaettern.",Helles indirektes Licht,15-25 °C,14
|
||||
constants/lexiconBatch2.ts,190,Mittagsgold,Gazania rigens,flowering|sun,2,"Mittagsgold ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,32,Blutroter Storchschnabel,Geranium sanguineum,easy|flowering,2,Der Blutrote Storchschnabel ist ein zierlicher Storchschnabel mit intensiv magentafarbenen Blueten.,Helles bis volles Licht,10-25 °C,7
|
||||
constants/lexiconBatch1.ts,68,Gerbera,Gerbera jamesonii,flowering|air_purifier|bright_light,3,"Die Gerbera ist eine farbenfrohe Schnittblume mit grossen, sonnenblumenaehnlichen Blueten. Sehr beliebt.",Helles bis volles Licht,15-25 °C,5
|
||||
constants/lexiconBatch2.ts,216,Ginkgo,Ginkgo biloba,tree|medicinal|sun,3,Ginkgo ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch2.ts,161,Gladiole,Gladiolus hortulanus,flowering|sun,2,"Gladiole ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,96,Gloxinie,Gloxinia speciosa,flowering|high_humidity,2,"Die Gloxinie hat grosse, samtartige Blueten in Violett, Rosa oder Weiss mit farbigen Raendern.",Helles indirektes Licht,18-25 °C,5
|
||||
constants/lexiconBatch2.ts,240,Calathea lancifolia,Goeppertia insignis,pet_friendly|patterned|high_humidity,3,Calathea lancifolia ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5
|
||||
constants/lexiconBatch2.ts,241,Calathea ornata,Goeppertia ornata,pet_friendly|patterned|high_humidity,3,Calathea ornata ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5
|
||||
constants/lexiconBatch1.ts,87,Geisterpflanze,Graptopetalum paraguayense,easy|succulent|sun,3,"Die Geisterpflanze hat zartgraue bis perlmutt-rosafarbene, rosettenfoermige Blaetter. Sehr robuste Sukkulente.",Volles Sonnenlicht,15-25 °C,14
|
||||
constants/lexiconBatch2.ts,36,Guzmania,Guzmania lingulata,flowering|high_humidity,2,"Die Guzmania ist eine Bromelie mit glänzenden, gruenen Blaettern und einem leuchtend roten, sternfoermigen Bluetenstand.",Helles indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch1.ts,80,Mond-Kaktus,Gymnocalycium mihanovichii,easy|succulent,2,Der Mond-Kaktus ist eine farbenfrohe Veredelung eines chlorophylllosen Kaktus auf einem gruenen Unterlagekaktus.,Indirektes Licht,15-30 °C,14
|
||||
constants/lexiconBatch2.ts,119,Zaubernuss,Hamamelis mollis,flowering|medicinal,2,"Die Zaubernuss bluet im Winter mit fadendunnen, gelben Bluetenkranzeln, die bis -10 Grad standhalten.",Helles bis volles Licht,10-20 °C,10
|
||||
constants/lexiconBatch1.ts,6,Zebra-Haworthie,Haworthia fasciata,easy|succulent|low_light,3,Die Zebra-Haworthie ist eine kompakte Sukkulente mit weissen Querstreifen auf dunkelgruenen Blaettern.,Helles indirektes Licht,15-25 °C,14
|
||||
constants/lexiconBatch1.ts,37,Efeu,Hedera helix,easy|hanging|air_purifier|low_light,4,"Efeu ist eine robuste Kletter- und Haengepflanze mit charakteristischen, dreilappigen Blaettern. Sehr langlebig.",Wenig bis helles Licht,10-20 °C,7
|
||||
constants/lexiconBatch2.ts,83,Heliamphora,Heliamphora nutans,high_humidity,1,Heliamphora ist eine urtuemliche Kannenpflanze aus den Tafelbergen Venezuelas. Sehr dekorativ und selten.,Helles indirektes Licht,15-25 °C,5
|
||||
constants/lexiconBatch2.ts,141,Sonnenblume,Helianthus annuus,flowering|sun,2,"Sonnenblume ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,133,Currykraut,Helichrysum italicum,easy|sun,2,Currykraut ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch2.ts,72,Heliconia,Heliconia psittacorum,flowering|bright_light|high_humidity,3,"Die Heliconia hat leuchtend orangefarbe oder rote, bootsfoermige Hochblaetter. Eine exotische Tropenpflanze.",Helles bis volles Licht,20-30 °C,5
|
||||
constants/lexiconBatch2.ts,191,Heliotrop,Heliotropium arborescens,flowering|sun,2,"Heliotrop ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,183,Lenzrose,Helleborus orientalis,flowering,1,"Lenzrose ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,182,Taglilie,Hemerocallis fulva,flowering|sun,2,"Taglilie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,21,Hibiskus,Hibiscus rosa-sinensis,flowering|bright_light|sun,3,"Der Hibiskus begeistert mit grossen, trompetenfoermigen Blueten in Rot, Orange und Rosa.",Volles Sonnenlicht,18-28 °C,3
|
||||
constants/lexiconBatch2.ts,220,Gartenhibiskus,Hibiscus syriacus,flowering|tree|sun,3,Gartenhibiskus ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch1.ts,105,Ritterstern,Hippeastrum hybrid,flowering|bright_light,2,"Der Ritterstern beeindruckt im Winter mit riesigen, trompetenfoermigen Blueten in Rot, Pink oder Weiss.",Helles bis volles Licht,18-25 °C,7
|
||||
constants/lexiconBatch2.ts,3,Kentia-Palme,Howea forsteriana,pet_friendly|tree|low_light,3,"Die Kentia-Palme ist eine der elegantesten Zimmerpalmen mit langen, herabhängenden Fiederblaettern.",Helles indirektes Licht,18-25 °C,7
|
||||
constants/lexiconBatch1.ts,58,Kleine Wachsblume,Hoya bella,flowering|succulent|hanging,3,"Die Kleine Wachsblume traegt zierliche, sternfoermige weisse Blueten mit rosa Mitte. Haengende Sukkulente.",Helles indirektes Licht,18-27 °C,10
|
||||
constants/lexiconBatch1.ts,57,Wachsblume,Hoya carnosa,easy|flowering|succulent|hanging,4,"Die Wachsblume ist eine Kletterpflanze mit dicken, wachsartigen Blaettern und sternfoermigen, duftenden Blueten.",Helles indirektes Licht,16-27 °C,10
|
||||
constants/lexiconBatch2.ts,159,Hasengloeckchen,Hyacinthoides non-scripta,flowering|sun,2,"Hasengloeckchen ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,108,Hyazinthe,Hyacinthus orientalis,easy|flowering,2,"Die Hyazinthe bezaubert mit dichten Bluetenrispen und intensivem Duft in Blau, Rosa, Weiss oder Gelb.",Helles bis volles Licht,10-18 °C,5
|
||||
constants/lexiconBatch2.ts,148,Hortensie,Hydrangea macrophylla,flowering|bright_light,2,"Hortensie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Helles bis halbschattiges Licht,8-24 C,4
|
||||
constants/lexiconBatch2.ts,105,Johanniskraut,Hypericum perforatum,flowering|medicinal|sun,3,Das Johanniskraut hat leuchtend gelbe Blueten und ist ein wichtiges Heilkraut gegen Depressionen und Stimmungstiefs.,Volles Sonnenlicht,10-25 °C,7
|
||||
constants/lexiconBatch2.ts,227,Punktblatt,Hypoestes phyllostachya,patterned|bright_light,2,Punktblatt ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7
|
||||
constants/lexiconBatch2.ts,136,Ysop,Hyssopus officinalis,easy|sun,2,Ysop ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch2.ts,203,Stechpalme,Ilex aquifolium,tree|sun,2,Stechpalme ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch2.ts,176,Gartenbalsamine,Impatiens balsamina,flowering|bright_light,2,"Gartenbalsamine ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,59,Neuguinea-Balsamine,Impatiens hawkeri,easy|flowering,2,"Die Neuguinea-Balsamine hat grosse, leuchtende Blueten und ist sehr bluehfreudig. Ideal fuer Terrassen.",Helles indirektes Licht,18-27 °C,3
|
||||
constants/lexiconBatch1.ts,20,Fleissiges Lieschen,Impatiens walleriana,easy|flowering,2,Das Fleissige Lieschen bluet von Fruehling bis Herbst unermudlich in vielen Farben.,Helles indirektes Licht,16-24 °C,2
|
||||
constants/lexiconBatch1.ts,64,Suesskartoffel,Ipomoea batatas,easy|hanging|sun,3,"Die Suesskartoffel-Zierpflanze hat dekorative, herzfoermige Blaetter in gruen oder dunkelviolett. Ideal als Haengepflanze.",Volles Sonnenlicht,20-30 °C,5
|
||||
constants/lexiconBatch2.ts,156,Prunkwinde,Ipomoea purpurea,flowering|sun,2,"Prunkwinde ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,144,Bart-Iris,Iris germanica,flowering|sun,2,"Bart-Iris ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,211,Jacaranda,Jacaranda mimosifolia,flowering|tree|large,3,Jacaranda ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch1.ts,59,Jasmin,Jasminum polyanthum,flowering,1,"Der Jasmin ist eine Kletterpflanze mit intensiv duftenden, weissen Blueten. Er bluet im Winter und Fruehling.",Helles bis volles Licht,10-22 °C,5
|
||||
constants/lexiconBatch2.ts,172,Arabischer Jasmin,Jasminum sambac,flowering|bright_light,2,"Arabischer Jasmin ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,9,Kalanchoe,Kalanchoe blossfeldiana,easy|flowering|succulent|sun,4,"Die Kalanchoe ist eine beliebte Bluehpflanze mit leuchtenden Blueten in Rot, Orange, Gelb oder Rosa.",Helles bis volles Licht,15-25 °C,10
|
||||
constants/lexiconBatch2.ts,22,Brutblatt,Kalanchoe daigremontiana,easy|succulent|sun,3,Das Brutblatt bildet entlang des Blattrandes zahlreiche kleine Jungpflanzen. Eine faszinierende Sukkulente.,Helles bis volles Licht,15-25 °C,14
|
||||
constants/lexiconBatch2.ts,21,Kaninchen-Ohren,Kalanchoe tomentosa,easy|succulent|sun,3,"Kaninchen-Ohren haben weisslich-filzige Blaetter mit braunen Raendern, die Kaninchenohren aehneln. Sehr dekorativ.",Helles bis volles Licht,15-25 °C,14
|
||||
constants/lexiconBatch2.ts,95,Salat,Lactuca sativa,easy,1,Salat ist eine schnell wachsende Blattgemuesepflanze. Im Topf und Balkonkasten sehr gut zu kultivieren.,Helles bis volles Licht,10-22 °C,3
|
||||
constants/lexiconBatch2.ts,197,Traenendes Herz,Lamprocapnos spectabilis,flowering|bright_light,2,"Traenendes Herz ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,64,Wandelroeschen,Lantana camara,flowering|bright_light|sun,3,"Das Wandelroeschen hat kugelige Bluetenkoepfe, die die Farbe von Gelb ueber Orange zu Rot wechseln. Sehr attraktiv.",Volles Sonnenlicht,18-28 °C,5
|
||||
constants/lexiconBatch2.ts,158,Duftwicke,Lathyrus odoratus,flowering|sun,2,"Duftwicke ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,121,Lorbeer,Laurus nobilis,easy|sun,2,Lorbeer ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch1.ts,23,Echter Lavendel,Lavandula angustifolia,medicinal|bright_light|sun,3,Der Echte Lavendel ist ein aromatischer Halbstrauch mit lilafarbenen Bluetenaehren. Herrlicher Duft.,Volles Sonnenlicht,10-25 °C,10
|
||||
constants/lexiconBatch2.ts,180,Bechermalve,Lavatera trimestris,flowering|sun,2,"Bechermalve ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,173,Margerite,Leucanthemum vulgare,flowering|sun,2,"Margerite ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,201,Shasta-Margerite,Leucanthemum x superbum,flowering|sun,2,"Shasta-Margerite ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,126,Liebstoeckel,Levisticum officinale,easy|sun,2,Liebstoeckel ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch2.ts,69,Ostertrompete,Lilium longiflorum,flowering|bright_light,2,"Die Ostertrompete hat grosse, weisse, trichterfoermige Blueten mit intensivem Duft. Klassische Osterblume.",Helles bis volles Licht,15-25 °C,5
|
||||
constants/lexiconBatch2.ts,23,Lebende Steine,Lithops julii,succulent|sun,2,"Lebende Steine sind faszinierende Mimikry-Sukkulenten, die Kieselsteinen taeuschen aehnlich sehen. Sehr trockenheitsresistent.",Volles Sonnenlicht,10-30 °C,21
|
||||
constants/lexiconBatch2.ts,4,Chinesische Fächerpalme,Livistona chinensis,tree|bright_light,2,"Die Chinesische Fächerpalme hat grosse, faecherfoermige Blaetter auf einem einzelnen Stamm. Sehr dekorativ.",Helles bis volles Licht,15-25 °C,7
|
||||
constants/lexiconBatch2.ts,62,Duftsteinrich,Lobularia maritima,easy|flowering,2,"Der Duftsteinrich ist ein niedrig wachsendes Pflanzchen mit winzigen, weissen oder lilafarbenen Blueten und suessem Duft.",Helles bis volles Licht,10-22 °C,3
|
||||
constants/lexiconBatch2.ts,171,Geissblatt,Lonicera japonica,flowering|bright_light,2,"Geissblatt ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,154,Lupine,Lupinus polyphyllus,flowering|sun,2,"Lupine ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,204,Magnolie,Magnolia grandiflora,flowering|tree|large,3,Magnolie ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch1.ts,79,Mammillaria,Mammillaria zeilmanniana,easy|flowering|succulent|sun,4,"Die Mammillaria ist ein kompakter, kugelfoermiger Kaktus, der im Fruehling einen Kranz aus rosa Blueten traegt.",Volles Sonnenlicht,15-35 °C,14
|
||||
constants/lexiconBatch1.ts,51,Gebet-Pflanze,Maranta leuconeura,pet_friendly|patterned|high_humidity,3,Die Gebet-Pflanze faltet ihre gemusterten Blaetter nachts wie Haende zusammen. Faszinierende rote und gruene Muster.,Indirektes Licht,18-27 °C,5
|
||||
constants/lexiconBatch2.ts,102,Zitronenmelisse,Melissa officinalis,easy|medicinal,2,Die Zitronenmelisse ist ein zitronig duftendes Heilkraut. Sie beruhigt die Nerven und foerdert den Schlaf.,Helles bis volles Licht,15-25 °C,5
|
||||
constants/lexiconBatch1.ts,26,Gruene Minze,Mentha spicata,easy,1,"Die Gruene Minze ist ein wuchsfreudiges Kuechenkraut mit frischem, minzigem Duft. Fuer Tee und Cocktails.",Helles bis volles Licht,15-25 °C,3
|
||||
constants/lexiconBatch2.ts,46,Tueipelfarn (Microsorum),Microsorum punctatum,high_humidity,1,"Microsorum punctatum ist ein tropischer Farn mit langen, ungeteilten, glaenzenden Wedeln. Fuer feuchte Standorte.",Helles indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch1.ts,75,Stiefmuetterchen-Orchidee,Miltoniopsis roezlii,flowering|high_humidity,2,"Die Stiefmuetterchen-Orchidee hat grosse, flache Blueten. Bevorzugt kuehle Temperaturen und hohe Luftfeuchtigkeit.",Indirektes Licht,15-22 °C,5
|
||||
constants/lexiconBatch2.ts,76,Schamkraut,Mimosa pudica,flowering|bright_light,2,"Das Schamkraut faltet seine Blaettchen blitzschnell zusammen, wenn man sie beruehrt. Ein faszinierendes Erlebnis.",Helles bis volles Licht,20-28 °C,5
|
||||
constants/lexiconBatch2.ts,179,Indianernessel,Monarda didyma,flowering|sun,2,"Indianernessel ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,47,Monstera adansonii,Monstera adansonii,easy|hanging,2,Monstera adansonii hat herzfoermige Blaetter mit zahlreichen runden Lochern. Eine rankende Zimmerpflanze.,Helles indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch2.ts,48,Monstera obliqua,Monstera obliqua,patterned|hanging,2,"Monstera obliqua ist eine seltene Monstera-Art mit filigranen Blaettern, die hauptsaechlich aus Lochern bestehen.",Helles indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch2.ts,2,Bananenpflanze,Musa acuminata,large|high_humidity,2,"Die Bananenpflanze ist eine tropische Staude mit riesigen, glaenzenden Blaettern. Im Zimmer selten fruechttragend.",Helles bis volles Licht,20-30 °C,5
|
||||
constants/lexiconBatch1.ts,109,Traubenhyazinthe,Muscari armeniacum,easy|flowering,2,"Die Traubenhyazinthe bildet dichte Trauben aus kleinen, blauen bis violetten Gloeckchen. Zuverlaessige Fruejahrszwiebel.",Helles bis volles Licht,8-18 °C,7
|
||||
constants/lexiconBatch2.ts,177,Vergissmeinnicht,Myosotis sylvatica,flowering|sun,2,"Vergissmeinnicht ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,106,Osterglocke,Narcissus pseudonarcissus,flowering,1,"Die Osterglocke ist der klassische Fruehjahrsblueher mit leuchtend gelben, trompetenfoermigen Blueten.",Helles bis volles Licht,10-18 °C,5
|
||||
constants/lexiconBatch2.ts,199,Nemesie,Nemesia strumosa,flowering|sun,2,"Nemesie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,37,Neoregelia,Neoregelia carolinae,flowering|patterned|bright_light,3,"Die Neoregelia ist eine Bromelie, bei der das Herzblatt zur Bluetzeit leuchtend rot wird. Sehr dekorativ.",Helles bis volles Licht,18-27 °C,7
|
||||
constants/lexiconBatch2.ts,79,Kannenpflanze,Nepenthes alata,hanging|high_humidity,2,"Die Kannenpflanze bildet grosse, gefuellte Kannen als Insektenfallen. Eine faszinierende, tropische Pflanze.",Helles indirektes Licht,20-30 °C,5
|
||||
constants/lexiconBatch2.ts,132,Katzenminze,Nepeta cataria,easy|sun,2,Katzenminze ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch2.ts,120,Oleander,Nerium oleander,flowering|bright_light|sun,3,"Der Oleander ist ein mediteraner Strauch mit leuchtend roten, rosa oder weissen Blueten. Sehr hitzetolerant.",Volles Sonnenlicht,15-28 °C,7
|
||||
constants/lexiconBatch2.ts,193,Ziertabak,Nicotiana alata,flowering|sun,2,"Ziertabak ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,25,Basilikum,Ocimum basilicum,easy|medicinal|sun,3,"Basilikum ist das beliebteste Kuechenkraut mit intensiv aromatischen, gruenen Blaettern. Fuer Pesto verwendet.",Volles Sonnenlicht,18-30 °C,2
|
||||
constants/lexiconBatch1.ts,74,Tanzerinnen-Orchidee,Oncidium sphacelatum,flowering|high_humidity,2,"Die Tanzerinnen-Orchidee traegt lange Rispen mit Hunderten kleiner, gelb-brauner Blueten. Sehr reichliche Bluetracht.",Helles indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch1.ts,82,Hasenohren-Kaktus,Opuntia microdasys,easy|succulent|sun,3,"Der Hasenohren-Kaktus hat flache, ovale Triebe mit dichten weissen Glochiden. Klassischer Zimmerkaktus.",Volles Sonnenlicht,10-35 °C,21
|
||||
constants/lexiconBatch2.ts,124,Majoran,Origanum majorana,easy|sun,2,Majoran ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch1.ts,28,Oregano,Origanum vulgare,easy|medicinal|sun,3,"Oregano ist ein aromatisches Kuechenkraut mit runden, behaarten Blaettern. In mediterraner Kueche beliebt.",Volles Sonnenlicht,15-25 °C,7
|
||||
constants/lexiconBatch2.ts,200,Kapmargerite,Osteospermum ecklonis,flowering|sun,2,"Kapmargerite ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,54,Kleeblume,Oxalis triangularis,flowering|patterned,2,"Die Kleeblume hat tiefviolette, dreieckige Blaetter und zarte rosa Blueten. Sie faltet die Blaetter bei Dunkelheit.",Helles indirektes Licht,15-24 °C,7
|
||||
constants/lexiconBatch2.ts,231,Glueckskastanie,Pachira aquatica,easy|tree|bright_light,3,Glueckskastanie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7
|
||||
constants/lexiconBatch1.ts,88,Mondstein-Pflanze,Pachyphytum oviferum,easy|succulent|sun,3,"Die Mondstein-Pflanze hat dicke, ovale Blaetter mit einem pastellrosafarbenen, mehligen Ueberzug.",Volles Sonnenlicht,15-25 °C,14
|
||||
constants/lexiconBatch2.ts,143,Pfingstrose,Paeonia lactiflora,flowering|sun,2,"Pfingstrose ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,6,Schraubenbaum,Pandanus veitchii,patterned|bright_light,2,"Der Schraubenbaum hat spiralfoermig angeordnete, gruenweiss gestreifte Blaetter. Sehr dekorativ und exotisch.",Helles bis volles Licht,18-27 °C,7
|
||||
constants/lexiconBatch2.ts,185,Mohn,Papaver rhoeas,flowering|sun,2,"Mohn ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,63,Passionsblume,Passiflora caerulea,flowering,1,"Die Passionsblume ist eine faszinierende Kletterpflanze mit komplex strukturierten, blau-weissen Blueten.",Helles bis volles Licht,15-27 °C,5
|
||||
constants/lexiconBatch1.ts,31,Rosengeranie,Pelargonium graveolens,easy|medicinal|sun,3,Die Rosengeranie ist eine Duftpflanze mit tief eingeschnittenen Blaettern und rosaenlichem Aroma.,Volles Sonnenlicht,15-25 °C,7
|
||||
constants/lexiconBatch2.ts,61,Efeu-Geranie,Pelargonium peltatum,easy|flowering|hanging|sun,4,"Die Efeu-Geranie hat efeufoermige, glaenzende Blaetter und bluet den ganzen Sommer in leuchtenden Farben.",Helles bis volles Licht,15-25 °C,5
|
||||
constants/lexiconBatch2.ts,174,Stehende Geranie,Pelargonium zonale,flowering|sun,2,"Stehende Geranie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,229,Wassermelonen-Peperomie,Peperomia argyreia,pet_friendly|patterned,2,Wassermelonen-Peperomie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7
|
||||
constants/lexiconBatch1.ts,102,Rippenpeperomie,Peperomia caperata,easy|pet_friendly,2,"Die Rippenpeperomie hat tief gerippte, dunkelgruene bis violette Blaetter mit einer samtigen Textur.",Helles indirektes Licht,18-26 °C,10
|
||||
constants/lexiconBatch1.ts,103,Spiegelpeperomie,Peperomia obtusifolia,easy|pet_friendly|low_light,3,"Die Spiegelpeperomie hat glaenzende, lederartige, oval-runde Blaetter in tiefem Gruen. Sehr robust.",Helles indirektes Licht,16-26 °C,10
|
||||
constants/lexiconBatch2.ts,230,Raindrop-Peperomie,Peperomia polybotrya,easy|pet_friendly,2,Raindrop-Peperomie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7
|
||||
constants/lexiconBatch2.ts,134,Shiso,Perilla frutescens,easy|sun,2,Shiso ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch1.ts,29,Petersilie,Petroselinum crispum,easy,1,Petersilie ist eines der meistgenutzten Kuechenkraeuter mit frisch-aromatischem Geschmack. Reich an Vitaminen.,Helles Licht,10-25 °C,3
|
||||
constants/lexiconBatch1.ts,34,Petunie,Petunia hybrida,easy|pet_friendly|flowering|sun,4,Die Petunie ist eine der beliebtesten Balkonpflanzen mit trichterfoermigen Blueten in unzaehligen Farben.,Volles Sonnenlicht,15-25 °C,2
|
||||
constants/lexiconBatch1.ts,69,Schmetterlingsorchidee,Phalaenopsis amabilis,flowering|high_humidity,2,Die Schmetterlingsorchidee ist die bekannteste Zimmerorchidee. Sie bluet bei guter Pflege monatelang.,Helles indirektes Licht,18-28 °C,10
|
||||
constants/lexiconBatch2.ts,50,Philodendron bipinnatifidum,Philodendron bipinnatifidum,easy|large,2,"Philodendron bipinnatifidum hat grosse, tief gelappte Blaetter. Er entwickelt einen beeindruckenden, baumfoermigen Wuchs.",Helles indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch2.ts,51,Roter Philodendron,Philodendron erubescens,easy|hanging,2,"Der Rote Philodendron hat glaenzende, herzfoermige Blaetter, die jung roetrlich erscheinen. Sehr dekorativ.",Helles indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch2.ts,243,Philodendron Pink Princess,Philodendron erubescens Pink Princess,patterned|bright_light,2,Philodendron Pink Princess ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7
|
||||
constants/lexiconBatch2.ts,49,Philodendron gloriosum,Philodendron gloriosum,patterned|large|high_humidity,3,"Philodendron gloriosum hat grosse, samtige, herzfoermige Blaetter mit weissen Rippen. Eine atemberaubende Pflanze.",Helles indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch1.ts,15,Herzblatt-Philodendron,Philodendron hederaceum,easy|hanging|low_light,3,Der Herzblatt-Philodendron ist eine pflegeleichte Kletter- oder Haengepflanze mit herzfoermigen Blaettern.,Indirektes Licht,18-28 °C,7
|
||||
constants/lexiconBatch2.ts,242,Philodendron Brasil,Philodendron hederaceum Brasil,easy|hanging|low_light,3,Philodendron Brasil ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7
|
||||
constants/lexiconBatch2.ts,40,Blaues Kanaelfarn,Phlebodium aureum,high_humidity,1,"Der Blaue Kanaelfarn hat wachsartige, blaugruene Wedel und glaenzende Wurzelstaemme. Sehr dekorativ.",Helles indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch2.ts,165,Flammenblume,Phlox paniculata,flowering|sun,2,"Flammenblume ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,44,Zwergdattelpalme,Phoenix roebelenii,tree|bright_light,2,"Die Zwergdattelpalme ist eine zierliche Palme mit eleganten, gebogenen Fiederblaettern. Tropisches Flair.",Helles bis volles Licht,18-27 °C,7
|
||||
constants/lexiconBatch2.ts,8,Goldener Bambus,Phyllostachys aurea,easy|large,2,"Der Goldene Bambus hat elegante, goldgelbe Halme mit engstehenden Knoten. Sehr dekorativ als Sichtschutz.",Helles bis volles Licht,10-30 °C,5
|
||||
constants/lexiconBatch2.ts,207,Fichte,Picea abies,tree|large|sun,3,Fichte ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch2.ts,228,Aluminium-Pflanze,Pilea cadierei,easy|pet_friendly|patterned,3,Aluminium-Pflanze ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7
|
||||
constants/lexiconBatch1.ts,2,Ufopflanze,Pilea peperomioides,easy|pet_friendly,2,"Die Ufopflanze hat unverwechselbare, runde Blaetter auf langen Stielen. Bildet leicht Ableger zum Verschenken.",Helles indirektes Licht,13-30 °C,7
|
||||
constants/lexiconBatch2.ts,81,Fettkraut,Pinguicula grandiflora,flowering|high_humidity,2,"Das Fettkraut faengt Insekten mit klebrigen Blaettern. Es bluet mit violetten, sporenartigen Blueten.",Helles indirektes Licht,10-20 °C,5
|
||||
constants/lexiconBatch2.ts,206,Kiefer,Pinus sylvestris,tree|large|sun,3,Kiefer ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch2.ts,41,Geweihfarn,Platycerium bifurcatum,hanging|high_humidity,2,"Der Geweihfarn hat gespaltene Wedel, die einem Hirschgeweih aehneln. Er ist ein epiphytischer Farn fuer Holz.",Helles indirektes Licht,15-25 °C,7
|
||||
constants/lexiconBatch2.ts,152,Buntnessel,Plectranthus scutellarioides,patterned|bright_light,2,"Buntnessel ist eine farbstarke Zierpflanze, die vor allem fuer ihr dekoratives Laub beliebt ist.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,61,Bleiwurz,Plumbago auriculata,flowering|bright_light|sun,3,"Die Bleiwurz ist ein halbimmergruener Strauch mit himmelblauen Blueten, der fast das ganze Jahr bluet.",Volles Sonnenlicht,15-27 °C,5
|
||||
constants/lexiconBatch2.ts,118,Tempel-Baum,Plumeria rubra,flowering|tree|sun,3,"Der Tempel-Baum hat intensiv duftende, sternfoermige Blueten in Weiss, Gelb oder Rosa. Klassische Tropenblume.",Volles Sonnenlicht,20-30 °C,7
|
||||
constants/lexiconBatch2.ts,44,Tueipelfarn,Polypodium vulgare,easy,1,Der Tueipelfarn ist ein heimischer Farn mit gelappten Wedeln und runden Sporenhaeufchen auf der Unterseite.,Helles indirektes Licht,10-20 °C,7
|
||||
constants/lexiconBatch2.ts,27,Speckbaum,Portulacaria afra,easy|succulent|sun,3,"Der Speckbaum ist eine sukkulente Pflanze mit roten Stielen und kleinen, runden, glaenzenden Blaettern.",Helles bis volles Licht,15-30 °C,14
|
||||
constants/lexiconBatch1.ts,36,Primel,Primula vulgaris,flowering,1,"Die Primel ist einer der ersten Fruehjahrsboten mit lebhaften Blueten in Gelb, Pink, Rot und Lila.",Helles indirektes Licht,10-18 °C,4
|
||||
constants/lexiconBatch2.ts,71,Koenigs-Protea,Protea cynaroides,flowering|large|sun,3,"Die Koenigs-Protea ist die Nationalblume Suedafrikas mit riesigen, imposanten Bluetenkoepfen. Eine echte Besonderheit.",Volles Sonnenlicht,10-25 °C,7
|
||||
constants/lexiconBatch2.ts,218,Kirschlorbeer,Prunus laurocerasus,tree|sun,2,Kirschlorbeer ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch2.ts,89,Guave,Psidium guajava,tree|sun,2,Die Guave ist ein tropischer Obstbaum mit gelblich-weissen Fruechten. Sie ist reich an Vitamin C.,Volles Sonnenlicht,18-30 °C,7
|
||||
constants/lexiconBatch2.ts,88,Granatapfelbaum,Punica granatum,flowering|tree|sun,3,"Der Granatapfelbaum hat leuchtend rote Blueten und rote, essbare Fruechte mit rubinroten Kernen.",Volles Sonnenlicht,15-28 °C,7
|
||||
constants/lexiconBatch2.ts,205,Eiche,Quercus robur,tree|large|sun,3,Eiche ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch2.ts,162,Ranunkel,Ranunculus asiaticus,flowering|sun,2,"Ranunkel ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,98,Radieschen,Raphanus sativus,easy,1,"Das Radieschen ist ein schnellwachsendes Gemuese mit runden, roten Knollen. Es reift in nur 3-4 Wochen.",Helles bis volles Licht,10-22 °C,2
|
||||
constants/lexiconBatch2.ts,52,Mini-Monstera,Rhaphidophora tetrasperma,easy|hanging,2,"Die Mini-Monstera hat monsteraaehnliche, gelochte Blaetter auf einer kompakten, klettternden Pflanze. Sehr trendig.",Helles indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch1.ts,45,Stab-Palme,Rhapis excelsa,tree|low_light,2,"Die Stab-Palme ist eine elegante Zimmerpalme mit faecherfoermigen Blaettern auf duennen, bambusartigen Staemmen.",Helles indirektes Licht,15-25 °C,7
|
||||
constants/lexiconBatch1.ts,85,Korallenkaktus,Rhipsalis baccifera,succulent|hanging,2,"Der Korallenkaktus ist ein epiphytischer Kaktus mit duennen, haengenden Trieben und kleinen weissen Beeren.",Indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch2.ts,170,Rhododendron,Rhododendron catawbiense,flowering|tree|bright_light,3,"Rhododendron ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,91,Japanische Azalee,Rhododendron simsii,flowering,1,"Die Japanische Azalee bluet im Winter und Fruehling ueppig mit leuchtend roten, rosa oder weissen Blueten.",Helles indirektes Licht,10-18 °C,4
|
||||
constants/lexiconBatch2.ts,214,Robinie,Robinia pseudoacacia,tree|large|sun,3,Robinie ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch1.ts,66,Chinesische Rose,Rosa chinensis,flowering|sun,2,Die Chinesische Rose ist eine der Stammarten vieler Gartenrosen und bluet fast ununterbrochen.,Volles Sonnenlicht,15-25 °C,5
|
||||
constants/lexiconBatch2.ts,142,Rose,Rosa x hybrida,flowering|bright_light|sun,3,"Rose ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,24,Rosmarin,Rosmarinus officinalis,easy|medicinal|sun,3,Rosmarin ist ein aromatisches Kraut mit nadelartigen Blaettern und blauen Blueten. In der Kueche unverzichtbar.,Volles Sonnenlicht,10-25 °C,7
|
||||
constants/lexiconBatch2.ts,167,Rudbeckie,Rudbeckia hirta,flowering|sun,2,"Rudbeckie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,130,Sauerampfer,Rumex acetosa,easy|sun,2,Sauerampfer ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch1.ts,94,Afrikanisches Veilchen,Saintpaulia ionantha,easy|flowering,2,"Das Afrikanische Veilchen ist eine kleine, kompakte Bluehpflanze mit samtigen Blaettern und violetten Blueten.",Helles indirektes Licht,18-25 °C,7
|
||||
constants/lexiconBatch2.ts,113,Silber-Weide,Salix alba,tree|large|medicinal,3,"Die Silber-Weide hat silbrig-glaenzende Blaetter. Weidenrinde enthält Salicylsaeure, die Grundlage von Aspirin.",Helles bis volles Licht,10-25 °C,7
|
||||
constants/lexiconBatch2.ts,195,Mehlsalbei,Salvia farinacea,flowering|sun,2,"Mehlsalbei ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,103,Salbei,Salvia officinalis,easy|medicinal|sun,3,Salbei ist ein aromatisches Heilkraut mit silbrig-gruenen Blaettern. Er hat antibakterielle und entzuendungshemmende Wirkung.,Volles Sonnenlicht,10-25 °C,7
|
||||
constants/lexiconBatch2.ts,168,Feuersalbei,Salvia splendens,flowering|sun,2,"Feuersalbei ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,112,Schwarzer Holunder,Sambucus nigra,flowering|tree|medicinal,3,Der Schwarze Holunder hat weisse Doldenbluten und schwarze Beeren. Die Fruechte werden fuer Sirup und Saft verwendet.,Helles bis volles Licht,10-25 °C,7
|
||||
constants/lexiconBatch2.ts,17,Zylindrischer Bogenhanf,Sansevieria cylindrica,easy|succulent|sun,3,"Der Zylindrische Bogenhanf hat zylindrische, aufrechte Blaetter, die sich nach oben verjuengen. Sehr pflegeleicht.",Helles bis volles Licht,15-27 °C,14
|
||||
constants/lexiconBatch2.ts,78,Purpursonnentau,Sarracenia purpurea,high_humidity|sun,2,Der Purpursonnentau ist eine fleischfressende Kannenpflanze mit purpurroten Kannen. Faengt Insekten.,Volles Sonnenlicht,5-25 °C,3
|
||||
constants/lexiconBatch2.ts,123,Bohnenkraut,Satureja hortensis,easy|sun,2,Bohnenkraut ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch2.ts,11,Grosse Strahlenaralie,Schefflera actinophylla,easy|tree|large,3,"Die Grosse Strahlenaralie kann grosse, handfoermige Blaetter entwickeln. Sie ist ideal als Zimmerstrauch.",Helles indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch2.ts,10,Strahlenaralie,Schefflera arboricola,easy|tree|air_purifier,3,"Die Strahlenaralie hat fingerfoermig angeordnete, glaenzende Blaetter auf langen Stielen. Sehr robuste Zimmerpflanze.",Helles indirektes Licht,15-25 °C,7
|
||||
constants/lexiconBatch2.ts,235,Falsche Aralie,Schefflera elegantissima,tree|bright_light,2,Falsche Aralie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7
|
||||
constants/lexiconBatch1.ts,8,Weihnachtskaktus,Schlumbergera truncata,easy|flowering|succulent,3,"Der Weihnachtskaktus erfreut zur Weihnachtszeit mit leuchtenden Blueten in Rosa, Rot oder Weiss.",Helles indirektes Licht,15-21 °C,7
|
||||
constants/lexiconBatch1.ts,55,Satinpothos,Scindapsus pictus,easy|patterned|hanging,3,"Der Satinpothos hat samtig-glaenzende, silbrig gefleckte Blaetter auf langen, haengenden Ranken.",Helles indirektes Licht,18-28 °C,7
|
||||
constants/lexiconBatch1.ts,7,Eselschwanz,Sedum morganianum,easy|succulent|hanging|sun,4,"Der Eselschwanz ist eine haengende Sukkulente mit langen Trieben aus dichten, blaugruenen Blaettchen.",Volles Sonnenlicht,15-25 °C,14
|
||||
constants/lexiconBatch2.ts,45,Regenbogenmoos,Selaginella uncinata,patterned|high_humidity,2,"Das Regenbogenmoos hat schuppenfoermige Blaetter, die im Licht schillernd irisieren. Dekorativ fuer Terrarien.",Helles indirektes Licht,18-27 °C,5
|
||||
constants/lexiconBatch1.ts,100,Perlenschnur-Pflanze,Senecio rowleyanus,easy|succulent|hanging,3,"Die Perlenschnur-Pflanze hat haengende Ranken mit kugelfoermigen, perlenaehnlichen Blaettern. Einzigartige Sukkulente.",Helles bis volles Licht,15-27 °C,14
|
||||
constants/lexiconBatch2.ts,28,Blauer Kreuzkraut,Senecio serpens,easy|succulent|sun,3,"Der Blaue Kreuzkraut hat zylindrische, blaublaugruene Blaetter und einen kriechenden Wuchs. Sehr dekorativ.",Helles bis volles Licht,15-25 °C,14
|
||||
constants/lexiconBatch2.ts,91,Tomate,Solanum lycopersicum,easy,1,"Die Tomate ist eine beliebte Gemuese- und Balkonpflanze mit roten, saftigen Fruechten. Im Topf kultivierbar.",Volles Sonnenlicht,18-28 °C,3
|
||||
constants/lexiconBatch2.ts,93,Aubergine,Solanum melongena,bright_light|sun,2,"Die Aubergine ist eine Gemuesepflanze mit grossen, violetten Fruechten. Sie benoetigt viel Waerme und Sonne.",Volles Sonnenlicht,20-30 °C,5
|
||||
constants/lexiconBatch2.ts,238,Bubikopf,Soleirolia soleirolii,pet_friendly|high_humidity,2,Bubikopf ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,15-24 C,4
|
||||
constants/lexiconBatch2.ts,213,Eberesche,Sorbus aucuparia,tree|large|sun,3,Eberesche ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch2.ts,96,Spinat,Spinacia oleracea,easy,1,Spinat ist ein naehrstoffreiches Blattgemuese mit dunkelgruenen Blaettern. Reich an Eisen und Vitaminen.,Helles bis volles Licht,10-20 °C,3
|
||||
constants/lexiconBatch2.ts,222,Spierstrauch,Spiraea japonica,flowering|tree|sun,3,Spierstrauch ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch2.ts,25,Aasblume,Stapelia grandiflora,flowering|succulent|sun,3,"Die Aasblume hat fleischige, gruene Staengel und riesige, sternfoermige Blueten mit aasartigem Duft.",Helles bis volles Licht,18-30 °C,14
|
||||
constants/lexiconBatch1.ts,60,Madagaskar-Jasmin,Stephanotis floribunda,flowering,1,"Der Madagaskar-Jasmin hat dicke, glaenzende Blaetter und wachsweisse, intensiv duftende Blueten. Klassische Hochzeitsblume.",Helles indirektes Licht,18-25 °C,7
|
||||
constants/lexiconBatch2.ts,131,Stevia,Stevia rebaudiana,easy|sun,2,Stevia ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch2.ts,1,Weisse Strelitzie,Strelitzia nicolai,tree|large|bright_light,3,"Die Weisse Strelitzie ist ein beeindruckender Zimmerstrauch mit grossen, blaugruenen Blaettern und weiss-blauen Blueten.",Helles bis volles Licht,18-27 °C,7
|
||||
constants/lexiconBatch1.ts,3,Paradiesvogelblume,Strelitzia reginae,flowering|large|sun,3,"Die Paradiesvogelblume beeindruckt mit leuchtend orangefarbenen und blauen Blueten, die einem Vogel aehneln.",Volles Sonnenlicht,18-26 °C,7
|
||||
constants/lexiconBatch1.ts,95,Drehfrucht,Streptocarpus hybridus,flowering,1,"Die Drehfrucht ist ein Gesneriengewaechs mit langen, gerippten Blaettern und trichterfoermigen Blueten in Lila oder Rosa.",Helles indirektes Licht,15-22 °C,7
|
||||
constants/lexiconBatch1.ts,52,Stromanthe,Stromanthe sanguinea,patterned|high_humidity,2,Die Stromanthe hat dekorative Blaetter mit weissem Muster und leuchtend roter Unterseite. Familie der Marantaceen.,Helles indirektes Licht,18-25 °C,5
|
||||
constants/lexiconBatch2.ts,166,Herbstaster,Symphyotrichum novi-belgii,flowering|sun,2,"Herbstaster ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,56,Pfeilblatt,Syngonium podophyllum,easy|hanging,2,"Das Pfeilblatt hat charakteristisch pfeilfoermige Blaetter, die sich mit dem Alter weiterentwickeln.",Helles indirektes Licht,16-27 °C,7
|
||||
constants/lexiconBatch2.ts,149,Flieder,Syringa vulgaris,flowering|tree|sun,3,"Flieder ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,66,Studentenblume,Tagetes patula,easy|flowering|sun,3,Die Studentenblume ist eine robuste Sommerblume mit orangen oder gelben Blueten. Sie haelt Schadlinge fern.,Volles Sonnenlicht,15-28 °C,3
|
||||
constants/lexiconBatch2.ts,244,Philodendron Xanadu,Thaumatophyllum xanadu,bright_light,1,Philodendron Xanadu ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7
|
||||
constants/lexiconBatch1.ts,27,Thymian,Thymus vulgaris,easy|medicinal|sun,3,"Thymian ist ein kleiner, aromatischer Strauch mit winzigen Blaettern und rosa Blueten. Wichtiges Kuechenkraut.",Volles Sonnenlicht,10-25 °C,7
|
||||
constants/lexiconBatch2.ts,33,Luftpflanze,Tillandsia ionantha,easy,1,Die Luftpflanze ist eine kompakte Bromelie ohne Topferde. Sie nimmt Wasser und Naehrstoffe ueber die Blattschuppen auf.,Helles bis volles Licht,15-30 °C,3
|
||||
constants/lexiconBatch2.ts,32,Spanisches Moos,Tillandsia usneoides,easy|hanging,2,"Das Spanische Moos ist eine epiphytische Bromelie ohne Wurzeln, die in der Luft haengt. Es benoetigt nur Feuchtigkeitsbespruehing.",Helles bis volles Licht,15-30 °C,3
|
||||
constants/lexiconBatch2.ts,55,Weisse Tradescantia,Tradescantia fluminensis,easy|hanging,2,Die Weisse Tradescantia hat gruene Blaetter mit weisslichen Unterseiten. Sehr robust und schnellwachsend.,Helles indirektes Licht,15-25 °C,5
|
||||
constants/lexiconBatch2.ts,54,Lila Tradescantia,Tradescantia pallida,easy|hanging|sun,3,Die Lila Tradescantia hat leuchtend purpurrote Blaetter und ist sehr auffaellig. Sie liebt viel Licht.,Helles bis volles Licht,15-25 °C,5
|
||||
constants/lexiconBatch1.ts,17,Zebrakraut,Tradescantia zebrina,easy|patterned|hanging,3,Das Zebrakraut faellt durch seine silbrig-lila gestreiften Blaetter auf. Schnellwachsende Haengepflanze.,Helles indirektes Licht,15-25 °C,5
|
||||
constants/lexiconBatch2.ts,151,Kapuzinerkresse,Tropaeolum majus,flowering|sun,2,"Kapuzinerkresse ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,107,Tulpe,Tulipa gesneriana,easy|flowering,2,Die Tulpe ist eine der beliebtesten Fruehjahrsblueher mit kelchfoermigen Blueten in unzaehligen Farben.,Helles bis volles Licht,8-18 °C,5
|
||||
constants/lexiconBatch2.ts,111,Grosse Brennessel,Urtica dioica,medicinal,1,Die Grosse Brennessel ist eine Heilpflanze mit brennenden Haaren. Die Blaetter sind reich an Vitaminen und Mineralien.,Helles bis volles Licht,10-25 °C,7
|
||||
constants/lexiconBatch2.ts,82,Wasserschlauch,Utricularia gibba,high_humidity|sun,2,Der Wasserschlauch ist eine wasserbewohnende fleischfressende Pflanze mit Schlaeuchen als Insektenfallen.,Helles bis volles Licht,15-25 °C,2
|
||||
constants/lexiconBatch2.ts,104,Baldrian,Valeriana officinalis,flowering|medicinal,2,Baldrian ist ein bekanntes Heilkraut mit weissen bis roeslichen Blueten. Die Wurzeln werden zur Schlaffoerderung verwendet.,Helles bis volles Licht,15-25 °C,7
|
||||
constants/lexiconBatch1.ts,72,Vanda-Orchidee,Vanda coerulea,flowering|bright_light|high_humidity,3,Die Vanda-Orchidee ist bekannt fuer ihre seltene blaue Bluetenfarbe. Epiphytische Orchidee mit grossen Blueten.,Helles bis volles Licht,20-30 °C,3
|
||||
constants/lexiconBatch1.ts,76,Vanille,Vanilla planifolia,flowering|high_humidity,2,"Die Vanille ist eine kletternde Orchidee, aus deren Fruechten das beliebte Gewuerz gewonnen wird.",Helles indirektes Licht,20-30 °C,5
|
||||
constants/lexiconBatch2.ts,192,Koenigskerze,Verbascum thapsus,flowering|medicinal|sun,3,"Koenigskerze ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,164,Eisenkraut,Verbena bonariensis,flowering|sun,2,"Eisenkraut ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,198,Hornveilchen,Viola cornuta,flowering|sun,2,"Hornveilchen ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,35,Stiefmuetterchen,Viola wittrockiana,easy|flowering,2,Das Stiefmuetterchen ist ein bekannter Fruehjahrsblueher mit charakteristisch gezeichneten Blueten.,Helles bis volles Licht,5-18 °C,3
|
||||
constants/lexiconBatch2.ts,35,Flammen-Bromelie,Vriesea splendens,flowering|patterned|high_humidity,3,"Die Flammen-Bromelie hat gebänderte, dunkelgruene Blaetter und einen spektakulaeren, roten Bluetenstand.",Helles indirektes Licht,18-25 °C,7
|
||||
constants/lexiconBatch2.ts,5,Mexikanische Fächerpalme,Washingtonia robusta,tree|large|sun,3,"Die Mexikanische Fächerpalme ist eine schlanke, hohe Palme mit faecherfoermigen Blaettern. Sehr hitzetolerant.",Volles Sonnenlicht,15-35 °C,10
|
||||
constants/lexiconBatch2.ts,221,Weigelie,Weigela florida,flowering|tree|sun,3,Weigelie ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch1.ts,65,Chinesischer Blauregen,Wisteria sinensis,flowering|large|sun,3,"Der Chinesische Blauregen ist ein ueppiger Kletterkuenstler mit langen, duftenden Bluetentrauben in Lila.",Volles Sonnenlicht,10-25 °C,7
|
||||
constants/lexiconBatch2.ts,246,Yucca aloifolia,Yucca aloifolia,easy|tree|sun,3,Yucca aloifolia ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Volles Sonnenlicht,18-30 C,10
|
||||
constants/lexiconBatch1.ts,40,Yucca-Palme,Yucca elephantipes,easy|tree|sun,3,"Die Yucca-Palme ist eine robuste Zimmerpflanze mit starrem, immergruenem Blaetterschopf auf einem dicken Stamm.",Helles bis volles Licht,15-28 °C,14
|
||||
constants/lexiconBatch2.ts,70,Calla,Zantedeschia aethiopica,flowering|high_humidity,2,"Die Calla hat elegante, trichterfoermige weisse Hochblaetter und glaenzende, herzfoermige Blaetter. Sehr edel.",Helles indirektes Licht,15-24 °C,7
|
||||
constants/lexiconBatch2.ts,75,Ingwer,Zingiber officinale,medicinal|high_humidity,2,Ingwer ist eine tropische Gewuerzpflanze mit aromatischen Knollen. Die Blaetter sind schilfartig.,Helles indirektes Licht,20-30 °C,5
|
||||
constants/lexiconBatch2.ts,65,Zinnie,Zinnia elegans,easy|flowering|sun,3,"Die Zinnie ist eine leuchtende Sommerblume mit grossen, dahlienaehnlichen Blueten. Sehr robust und hitzetolerant.",Volles Sonnenlicht,18-30 °C,3
|
||||
|
|
|
@ -0,0 +1,71 @@
|
|||
{
|
||||
"expo": {
|
||||
"name": "GreenLens",
|
||||
"slug": "greenlens",
|
||||
"version": "2.1.4",
|
||||
"orientation": "portrait",
|
||||
"icon": "./assets/icon.png",
|
||||
"userInterfaceStyle": "automatic",
|
||||
"scheme": "greenlens",
|
||||
"splash": {
|
||||
"image": "./assets/transparent.png",
|
||||
"resizeMode": "contain",
|
||||
"backgroundColor": "#111813"
|
||||
},
|
||||
"assetBundlePatterns": [
|
||||
"**/*"
|
||||
],
|
||||
"ios": {
|
||||
"supportsTablet": true,
|
||||
"bundleIdentifier": "com.greenlens.app",
|
||||
"buildNumber": "35",
|
||||
"infoPlist": {
|
||||
"NSCameraUsageDescription": "GreenLens needs camera access to identify plants.",
|
||||
"NSPhotoLibraryUsageDescription": "GreenLens needs photo library access to identify plants from your gallery.",
|
||||
"ITSAppUsesNonExemptEncryption": false
|
||||
}
|
||||
},
|
||||
"android": {
|
||||
"adaptiveIcon": {
|
||||
"foregroundImage": "./assets/adaptive-icon.png",
|
||||
"backgroundColor": "#111813"
|
||||
},
|
||||
"package": "com.greenlens.app",
|
||||
"versionCode": 2,
|
||||
"permissions": [
|
||||
"android.permission.CAMERA",
|
||||
"android.permission.RECORD_AUDIO"
|
||||
]
|
||||
},
|
||||
"runtimeVersion": {
|
||||
"policy": "appVersion"
|
||||
},
|
||||
"updates": {
|
||||
"url": "https://u.expo.dev/f0c92b2e-a952-4cfe-9754-7d7222b76969"
|
||||
},
|
||||
"plugins": [
|
||||
"expo-dev-client",
|
||||
"expo-router",
|
||||
"expo-camera",
|
||||
"expo-image-picker",
|
||||
"expo-secure-store",
|
||||
"expo-asset",
|
||||
"expo-font",
|
||||
"expo-notifications",
|
||||
[
|
||||
"expo-splash-screen",
|
||||
{
|
||||
"image": "./assets/transparent.png",
|
||||
"imageWidth": 160,
|
||||
"backgroundColor": "#111813"
|
||||
}
|
||||
]
|
||||
],
|
||||
"extra": {
|
||||
"router": {},
|
||||
"eas": {
|
||||
"projectId": "f0c92b2e-a952-4cfe-9754-7d7222b76969"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
import { Tabs } from 'expo-router';
|
||||
import { Ionicons } from '@expo/vector-icons';
|
||||
import { useApp } from '../../context/AppContext';
|
||||
import { useColors } from '../../constants/Colors';
|
||||
|
||||
export default function TabLayout() {
|
||||
const { isDarkMode, colorPalette, t } = useApp();
|
||||
const colors = useColors(isDarkMode, colorPalette);
|
||||
|
||||
return (
|
||||
<Tabs
|
||||
screenOptions={{
|
||||
headerShown: false,
|
||||
tabBarActiveTintColor: colors.primary,
|
||||
tabBarInactiveTintColor: colors.textMuted,
|
||||
tabBarStyle: {
|
||||
backgroundColor: colors.tabBarBg,
|
||||
borderTopColor: colors.tabBarBorder,
|
||||
height: 85,
|
||||
paddingTop: 8,
|
||||
paddingBottom: 28,
|
||||
},
|
||||
tabBarLabelStyle: {
|
||||
fontSize: 10,
|
||||
fontWeight: '600',
|
||||
},
|
||||
}}
|
||||
>
|
||||
<Tabs.Screen
|
||||
name="index"
|
||||
options={{
|
||||
title: t.tabPlants,
|
||||
tabBarIcon: ({ color, size }) => (
|
||||
<Ionicons name="leaf-outline" size={size} color={color} />
|
||||
),
|
||||
}}
|
||||
/>
|
||||
<Tabs.Screen
|
||||
name="search"
|
||||
options={{
|
||||
title: t.tabSearch,
|
||||
tabBarIcon: ({ color, size }) => (
|
||||
<Ionicons name="search-outline" size={size} color={color} />
|
||||
),
|
||||
}}
|
||||
/>
|
||||
<Tabs.Screen
|
||||
name="profile"
|
||||
options={{
|
||||
title: t.tabProfile,
|
||||
tabBarIcon: ({ color, size }) => (
|
||||
<Ionicons name="person-outline" size={size} color={color} />
|
||||
),
|
||||
}}
|
||||
/>
|
||||
</Tabs>
|
||||
);
|
||||
}
|
||||
|
|
@ -0,0 +1,846 @@
|
|||
import React, { useMemo, useState, useRef, useEffect } from 'react';
|
||||
import {
|
||||
ActivityIndicator,
|
||||
Alert,
|
||||
Image,
|
||||
ScrollView,
|
||||
StyleSheet,
|
||||
Text,
|
||||
TouchableOpacity,
|
||||
View,
|
||||
Dimensions,
|
||||
} from 'react-native';
|
||||
import { SafeAreaView, useSafeAreaInsets } from 'react-native-safe-area-context';
|
||||
import { useRouter } from 'expo-router';
|
||||
import { Ionicons } from '@expo/vector-icons';
|
||||
import AsyncStorage from '@react-native-async-storage/async-storage';
|
||||
import { useApp } from '../../context/AppContext';
|
||||
import { useColors } from '../../constants/Colors';
|
||||
import { ThemeBackdrop } from '../../components/ThemeBackdrop';
|
||||
import { SafeImage } from '../../components/SafeImage';
|
||||
import { Plant } from '../../types';
|
||||
import { useCoachMarks } from '../../context/CoachMarksContext';
|
||||
|
||||
const { width: SCREEN_W, height: SCREEN_H } = Dimensions.get('window');
|
||||
|
||||
type FilterKey = 'all' | 'today' | 'week' | 'healthy' | 'dormant';
|
||||
|
||||
const DAY_MS = 24 * 60 * 60 * 1000;
|
||||
const CONTENT_BOTTOM_PADDING = 12;
|
||||
const FAB_BOTTOM_OFFSET = 16;
|
||||
|
||||
function OnboardingChecklist({ plantsCount, colors, router, t }: { plantsCount: number; colors: any; router: any; t: any }) {
|
||||
const checklist = [
|
||||
{ id: 'scan', label: t.stepScan, completed: plantsCount > 0, icon: 'camera-outline', route: '/scanner' },
|
||||
{ id: 'lexicon', label: t.stepLexicon, completed: false, icon: 'search-outline', route: '/lexicon' },
|
||||
{ id: 'theme', label: t.stepTheme, completed: false, icon: 'color-palette-outline', route: '/profile/preferences' },
|
||||
];
|
||||
|
||||
return (
|
||||
<View style={[styles.checklistCard, { backgroundColor: colors.surface, borderColor: colors.border }]}>
|
||||
<Text style={[styles.checklistTitle, { color: colors.text }]}>{t.nextStepsTitle}</Text>
|
||||
<View style={styles.checklistGrid}>
|
||||
{checklist.map((item) => (
|
||||
<TouchableOpacity
|
||||
key={item.id}
|
||||
style={styles.checklistItem}
|
||||
onPress={() => {
|
||||
if (item.id === 'theme') {
|
||||
router.push('/profile/preferences');
|
||||
} else if (item.id === 'scan') {
|
||||
router.push('/scanner');
|
||||
} else if (item.id === 'lexicon') {
|
||||
router.push('/lexicon');
|
||||
} else {
|
||||
router.push(item.route);
|
||||
}
|
||||
}}
|
||||
disabled={item.completed}
|
||||
>
|
||||
<View style={[styles.checkIcon, { backgroundColor: item.completed ? colors.successSoft : colors.surfaceMuted }]}>
|
||||
<Ionicons
|
||||
name={item.completed ? 'checkmark-circle' : item.icon as any}
|
||||
size={18}
|
||||
color={item.completed ? colors.success : colors.textMuted}
|
||||
/>
|
||||
</View>
|
||||
<Text
|
||||
style={[
|
||||
styles.checklistText,
|
||||
{
|
||||
color: item.completed ? colors.textMuted : colors.text,
|
||||
textDecorationLine: item.completed ? 'line-through' : 'none',
|
||||
},
|
||||
]}
|
||||
numberOfLines={1}
|
||||
>
|
||||
{item.label}
|
||||
</Text>
|
||||
{!item.completed && <Ionicons name="chevron-forward" size={12} color={colors.textMuted} />}
|
||||
</TouchableOpacity>
|
||||
))}
|
||||
</View>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
|
||||
const getDaysUntilWatering = (plant: Plant): number => {
|
||||
const lastWateredTs = new Date(plant.lastWatered).getTime();
|
||||
if (Number.isNaN(lastWateredTs)) return 0;
|
||||
|
||||
const dueTs = lastWateredTs + (plant.careInfo.waterIntervalDays * DAY_MS);
|
||||
const remainingMs = dueTs - Date.now();
|
||||
if (remainingMs <= 0) return 0;
|
||||
|
||||
return Math.ceil(remainingMs / DAY_MS);
|
||||
};
|
||||
|
||||
export default function HomeScreen() {
|
||||
const {
|
||||
plants,
|
||||
isLoadingPlants,
|
||||
profileImageUri,
|
||||
profileName,
|
||||
billingSummary,
|
||||
isLoadingBilling,
|
||||
language,
|
||||
t,
|
||||
isDarkMode,
|
||||
colorPalette,
|
||||
} = useApp();
|
||||
const colors = useColors(isDarkMode, colorPalette);
|
||||
const router = useRouter();
|
||||
const insets = useSafeAreaInsets();
|
||||
const [activeFilter, setActiveFilter] = useState<FilterKey>('all');
|
||||
const { registerLayout, startTour } = useCoachMarks();
|
||||
const fabRef = useRef<View>(null);
|
||||
|
||||
// Tour nach Registrierung starten
|
||||
useEffect(() => {
|
||||
const checkTour = async () => {
|
||||
const flag = await AsyncStorage.getItem('greenlens_show_tour');
|
||||
if (flag !== 'true') return;
|
||||
await AsyncStorage.removeItem('greenlens_show_tour');
|
||||
|
||||
// 1 Sekunde warten, dann Tour starten
|
||||
setTimeout(() => {
|
||||
// Tab-Positionen approximieren (gleichmäßig verteilt)
|
||||
const tabBarBottom = SCREEN_H - 85;
|
||||
const tabW = SCREEN_W / 3;
|
||||
registerLayout('tab_search', { x: tabW, y: tabBarBottom + 8, width: tabW, height: 52 });
|
||||
registerLayout('tab_profile', { x: tabW * 2, y: tabBarBottom + 8, width: tabW, height: 52 });
|
||||
|
||||
startTour([
|
||||
{
|
||||
elementKey: 'fab',
|
||||
title: t.tourFabTitle,
|
||||
description: t.tourFabDesc,
|
||||
tooltipSide: 'above',
|
||||
},
|
||||
{
|
||||
elementKey: 'tab_search',
|
||||
title: t.tourSearchTitle,
|
||||
description: t.tourSearchDesc,
|
||||
tooltipSide: 'above',
|
||||
},
|
||||
{
|
||||
elementKey: 'tab_profile',
|
||||
title: t.tourProfileTitle,
|
||||
description: t.tourProfileDesc,
|
||||
tooltipSide: 'above',
|
||||
},
|
||||
]);
|
||||
}, 1000);
|
||||
};
|
||||
checkTour();
|
||||
}, []);
|
||||
|
||||
const copy = t;
|
||||
const greetingText = useMemo(() => {
|
||||
const hour = new Date().getHours();
|
||||
if (hour < 12) return copy.greetingMorning;
|
||||
if (hour < 18) return copy.greetingAfternoon;
|
||||
return copy.greetingEvening;
|
||||
}, [copy.greetingAfternoon, copy.greetingEvening, copy.greetingMorning]);
|
||||
const creditsText = useMemo(() => {
|
||||
if (isLoadingBilling && !billingSummary) {
|
||||
return '...';
|
||||
}
|
||||
if (!billingSummary) {
|
||||
return `-- ${copy.creditsLabel}`;
|
||||
}
|
||||
return `${billingSummary.credits.available} ${copy.creditsLabel}`;
|
||||
}, [billingSummary, copy.creditsLabel, isLoadingBilling]);
|
||||
|
||||
const thirstyCount = useMemo(
|
||||
() => plants.filter(plant => getDaysUntilWatering(plant) === 0).length,
|
||||
[plants]
|
||||
);
|
||||
const dueTodayPlants = useMemo(
|
||||
() => plants.filter(plant => getDaysUntilWatering(plant) === 0),
|
||||
[plants]
|
||||
);
|
||||
|
||||
const filteredPlants = useMemo(() => {
|
||||
return plants.filter((plant) => {
|
||||
if (activeFilter === 'all') return true;
|
||||
|
||||
const daysUntil = getDaysUntilWatering(plant);
|
||||
|
||||
if (activeFilter === 'today') return daysUntil === 0;
|
||||
if (activeFilter === 'week') return daysUntil <= 7;
|
||||
if (activeFilter === 'healthy') return daysUntil >= 2;
|
||||
return plant.careInfo.waterIntervalDays >= 14;
|
||||
});
|
||||
}, [plants, activeFilter]);
|
||||
|
||||
const chips: Array<{ key: FilterKey; label: string }> = [
|
||||
{ key: 'all', label: copy.all },
|
||||
{ key: 'today', label: copy.today },
|
||||
{ key: 'week', label: copy.week },
|
||||
{ key: 'healthy', label: copy.healthy },
|
||||
{ key: 'dormant', label: copy.dormant },
|
||||
];
|
||||
|
||||
const handleBellPress = () => {
|
||||
setActiveFilter('today');
|
||||
|
||||
if (dueTodayPlants.length === 0) {
|
||||
Alert.alert(copy.reminderTitle, copy.reminderNone);
|
||||
return;
|
||||
}
|
||||
|
||||
const previewNames = dueTodayPlants
|
||||
.slice(0, 6)
|
||||
.map((plant) => `- ${plant.name}`)
|
||||
.join('\n');
|
||||
const remainingCount = dueTodayPlants.length - 6;
|
||||
const remainingText = remainingCount > 0
|
||||
? `\n+ ${remainingCount} ${copy.more}`
|
||||
: '';
|
||||
|
||||
Alert.alert(
|
||||
copy.reminderTitle,
|
||||
`${copy.reminderDue.replace('{0}', dueTodayPlants.length.toString())}\n\n${previewNames}${remainingText}`
|
||||
);
|
||||
};
|
||||
|
||||
if (isLoadingPlants) {
|
||||
return (
|
||||
<SafeAreaView style={[styles.loadingContainer, { backgroundColor: colors.background }]} edges={['top', 'left', 'right']}>
|
||||
<ThemeBackdrop colors={colors} />
|
||||
<ActivityIndicator size="large" color={colors.primary} />
|
||||
</SafeAreaView>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<SafeAreaView style={[styles.container, { backgroundColor: colors.background }]} edges={['top', 'left', 'right']}>
|
||||
<ThemeBackdrop colors={colors} />
|
||||
|
||||
<ScrollView
|
||||
contentContainerStyle={[
|
||||
styles.content,
|
||||
{ paddingBottom: Math.max(CONTENT_BOTTOM_PADDING, insets.bottom + CONTENT_BOTTOM_PADDING) },
|
||||
]}
|
||||
showsVerticalScrollIndicator={false}
|
||||
>
|
||||
<View style={styles.header}>
|
||||
<View style={styles.headerLeft}>
|
||||
<View style={[styles.avatarWrap, { backgroundColor: colors.primaryDark }]}>
|
||||
{profileImageUri ? (
|
||||
<Image source={{ uri: profileImageUri }} style={styles.avatarImage} />
|
||||
) : (
|
||||
<Ionicons name="leaf" size={20} color={colors.iconOnImage} />
|
||||
)}
|
||||
</View>
|
||||
<View style={styles.headerTextBlock}>
|
||||
<Text style={[styles.greetingText, { color: colors.textSecondary }]}>{greetingText}</Text>
|
||||
<View style={styles.nameRow}>
|
||||
<Text style={[styles.nameText, { color: colors.text }]} numberOfLines={1}>
|
||||
{profileName || ''}
|
||||
</Text>
|
||||
<View
|
||||
style={[
|
||||
styles.creditsPill,
|
||||
{
|
||||
backgroundColor: colors.cardBg,
|
||||
borderColor: colors.cardBorder,
|
||||
},
|
||||
]}
|
||||
>
|
||||
<Text style={[styles.creditsText, { color: colors.textSecondary }]} numberOfLines={1}>
|
||||
{creditsText}
|
||||
</Text>
|
||||
</View>
|
||||
</View>
|
||||
</View>
|
||||
</View>
|
||||
|
||||
<TouchableOpacity
|
||||
style={[
|
||||
styles.bellBtn,
|
||||
{
|
||||
backgroundColor: colors.cardBg,
|
||||
borderColor: colors.cardBorder,
|
||||
shadowColor: colors.cardShadow,
|
||||
},
|
||||
]}
|
||||
onPress={handleBellPress}
|
||||
activeOpacity={0.8}
|
||||
>
|
||||
<Ionicons name="notifications-outline" size={20} color={colors.text} />
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
|
||||
<View style={[styles.priorityCard, { backgroundColor: colors.primaryDark }]}>
|
||||
<View style={styles.priorityLabelRow}>
|
||||
<Ionicons name="water-outline" size={14} color={colors.heroButton} />
|
||||
<Text style={[styles.priorityLabel, { color: colors.heroButton }]}>{copy.needsWaterToday}</Text>
|
||||
</View>
|
||||
|
||||
<Text style={[styles.priorityTitle, { color: colors.iconOnImage }]}>
|
||||
{copy.plantsThirsty.replace('{0}', thirstyCount.toString())}
|
||||
</Text>
|
||||
|
||||
<TouchableOpacity
|
||||
style={[
|
||||
styles.priorityButton,
|
||||
{
|
||||
backgroundColor: colors.heroButton,
|
||||
borderColor: colors.heroButtonBorder,
|
||||
},
|
||||
]}
|
||||
onPress={handleBellPress}
|
||||
activeOpacity={0.85}
|
||||
>
|
||||
<Text style={[styles.priorityButtonText, { color: colors.text }]}>{copy.viewSchedule}</Text>
|
||||
<Ionicons name="arrow-forward" size={14} color={colors.text} />
|
||||
</TouchableOpacity>
|
||||
|
||||
<Ionicons
|
||||
name="water"
|
||||
size={124}
|
||||
color={colors.overlay}
|
||||
style={styles.priorityBgIcon}
|
||||
/>
|
||||
</View>
|
||||
|
||||
{plants.length === 0 && (
|
||||
<OnboardingChecklist plantsCount={plants.length} colors={colors} router={router} t={t} />
|
||||
)}
|
||||
|
||||
<ScrollView
|
||||
horizontal
|
||||
showsHorizontalScrollIndicator={false}
|
||||
contentContainerStyle={styles.filterRow}
|
||||
>
|
||||
{chips.map(chip => (
|
||||
<TouchableOpacity
|
||||
key={chip.key}
|
||||
style={[
|
||||
activeFilter === chip.key ? styles.filterChipActive : styles.filterChip,
|
||||
activeFilter === chip.key
|
||||
? { backgroundColor: colors.primary, shadowColor: colors.fabShadow }
|
||||
: { backgroundColor: colors.cardBg, borderColor: colors.cardBorder },
|
||||
]}
|
||||
onPress={() => setActiveFilter(chip.key)}
|
||||
activeOpacity={0.85}
|
||||
>
|
||||
<Text
|
||||
style={[
|
||||
activeFilter === chip.key ? styles.filterTextActive : styles.filterText,
|
||||
{ color: activeFilter === chip.key ? colors.onPrimary : colors.textSecondary },
|
||||
]}
|
||||
>
|
||||
{chip.label}
|
||||
</Text>
|
||||
</TouchableOpacity>
|
||||
))}
|
||||
</ScrollView>
|
||||
|
||||
<View style={styles.collectionHeader}>
|
||||
<Text style={[styles.collectionTitle, { color: colors.text }]}>{copy.collectionTitle}</Text>
|
||||
<View style={[styles.collectionCountPill, { backgroundColor: colors.cardBg, borderColor: colors.cardBorder }]}>
|
||||
<Text style={[styles.collectionCountText, { color: colors.textSecondary }]}>
|
||||
{copy.collectionCount.replace('{0}', filteredPlants.length.toString())}
|
||||
</Text>
|
||||
</View>
|
||||
</View>
|
||||
|
||||
{filteredPlants.length === 0 ? (
|
||||
<View style={[styles.emptyState, { backgroundColor: colors.cardBg, borderColor: colors.cardBorder }]}>
|
||||
<View style={[styles.emptyIconWrap, { backgroundColor: colors.surfaceMuted }]}>
|
||||
<Ionicons name="leaf-outline" size={28} color={colors.textMuted} />
|
||||
</View>
|
||||
<Text style={[styles.emptyTitle, { color: colors.text }]}>
|
||||
{plants.length === 0 ? copy.emptyCollectionTitle : copy.noneInFilter}
|
||||
</Text>
|
||||
<Text style={[styles.emptyText, { color: colors.textSecondary }]}>
|
||||
{plants.length === 0 ? copy.emptyCollectionHint : copy.noneInFilter}
|
||||
</Text>
|
||||
{plants.length === 0 && (
|
||||
<TouchableOpacity
|
||||
style={[styles.emptyCta, { backgroundColor: colors.primary, shadowColor: colors.fabShadow }]}
|
||||
onPress={() => router.push('/scanner')}
|
||||
activeOpacity={0.86}
|
||||
>
|
||||
<Ionicons name="scan-outline" size={15} color={colors.onPrimary} />
|
||||
<Text style={[styles.emptyCtaText, { color: colors.onPrimary }]}>{copy.scanFirstPlant}</Text>
|
||||
</TouchableOpacity>
|
||||
)}
|
||||
</View>
|
||||
) : (
|
||||
filteredPlants.map((plant) => {
|
||||
const daysUntil = getDaysUntilWatering(plant);
|
||||
const thirsty = daysUntil === 0;
|
||||
const nextWaterText = thirsty
|
||||
? copy.today
|
||||
: t.inXDays.replace('{0}', daysUntil.toString());
|
||||
|
||||
return (
|
||||
<TouchableOpacity
|
||||
key={plant.id}
|
||||
style={[
|
||||
styles.plantCard,
|
||||
{
|
||||
backgroundColor: colors.cardBg,
|
||||
borderColor: colors.cardBorder,
|
||||
shadowColor: colors.cardShadow,
|
||||
},
|
||||
]}
|
||||
activeOpacity={0.9}
|
||||
onPress={() => router.push(`/plant/${plant.id}`)}
|
||||
>
|
||||
<View style={[styles.plantImageWrap, { borderColor: colors.border }]}>
|
||||
<SafeImage uri={plant.imageUri} style={[styles.plantImage, { backgroundColor: colors.surfaceStrong }]} />
|
||||
</View>
|
||||
|
||||
<View style={styles.plantBody}>
|
||||
<View style={styles.plantHeadRow}>
|
||||
<View style={styles.plantTitleCol}>
|
||||
<Text style={[styles.plantName, { color: colors.text }]} numberOfLines={1}>
|
||||
{plant.name}
|
||||
</Text>
|
||||
<Text style={[styles.botanicalName, { color: colors.textSecondary }]} numberOfLines={1}>
|
||||
{plant.botanicalName}
|
||||
</Text>
|
||||
</View>
|
||||
<Ionicons name="chevron-forward" size={16} color={colors.textMuted} />
|
||||
</View>
|
||||
|
||||
<View style={styles.metaRow}>
|
||||
<View
|
||||
style={[
|
||||
thirsty ? styles.statusThirsty : styles.statusHealthy,
|
||||
{ backgroundColor: thirsty ? colors.dangerSoft : colors.successSoft },
|
||||
]}
|
||||
>
|
||||
<Text
|
||||
style={[
|
||||
thirsty ? styles.statusThirstyText : styles.statusHealthyText,
|
||||
{ color: thirsty ? colors.danger : colors.success },
|
||||
]}
|
||||
>
|
||||
{thirsty ? copy.thirsty : copy.healthyStatus}
|
||||
</Text>
|
||||
</View>
|
||||
<View style={[styles.nextWaterPill, { backgroundColor: colors.surfaceMuted, borderColor: colors.border }]}>
|
||||
<Ionicons name="water-outline" size={12} color={colors.textMuted} />
|
||||
<Text style={[styles.waterMeta, { color: colors.textMuted }]}>
|
||||
{copy.nextWaterLabel}: {nextWaterText}
|
||||
</Text>
|
||||
</View>
|
||||
</View>
|
||||
</View>
|
||||
</TouchableOpacity>
|
||||
);
|
||||
})
|
||||
)}
|
||||
</ScrollView>
|
||||
|
||||
<TouchableOpacity
|
||||
ref={fabRef}
|
||||
style={[
|
||||
styles.fab,
|
||||
{ bottom: Math.max(FAB_BOTTOM_OFFSET, insets.bottom + FAB_BOTTOM_OFFSET) },
|
||||
{
|
||||
backgroundColor: colors.fabBg,
|
||||
borderColor: colors.surface,
|
||||
shadowColor: colors.fabShadow,
|
||||
},
|
||||
]}
|
||||
activeOpacity={0.8}
|
||||
onPress={() => router.push('/scanner')}
|
||||
onLayout={() => {
|
||||
fabRef.current?.measureInWindow((x, y, width, height) => {
|
||||
registerLayout('fab', { x, y, width, height });
|
||||
});
|
||||
}}
|
||||
>
|
||||
<Ionicons name="add" size={30} color={colors.onPrimary} />
|
||||
</TouchableOpacity>
|
||||
</SafeAreaView>
|
||||
);
|
||||
}
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
container: {
|
||||
flex: 1,
|
||||
},
|
||||
loadingContainer: {
|
||||
flex: 1,
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
},
|
||||
content: {
|
||||
paddingHorizontal: 24,
|
||||
paddingTop: 14,
|
||||
},
|
||||
header: {
|
||||
flexDirection: 'row',
|
||||
justifyContent: 'space-between',
|
||||
alignItems: 'center',
|
||||
marginBottom: 26,
|
||||
},
|
||||
headerLeft: {
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
gap: 12,
|
||||
flex: 1,
|
||||
},
|
||||
headerTextBlock: {
|
||||
flex: 1,
|
||||
minWidth: 0,
|
||||
},
|
||||
avatarWrap: {
|
||||
width: 48,
|
||||
height: 48,
|
||||
borderRadius: 16,
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
overflow: 'hidden',
|
||||
},
|
||||
avatarImage: {
|
||||
width: '100%',
|
||||
height: '100%',
|
||||
},
|
||||
greetingText: {
|
||||
fontSize: 13,
|
||||
fontWeight: '600',
|
||||
},
|
||||
nameRow: {
|
||||
marginTop: 1,
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
gap: 8,
|
||||
minWidth: 0,
|
||||
},
|
||||
nameText: {
|
||||
fontSize: 21,
|
||||
fontWeight: '700',
|
||||
letterSpacing: 0.1,
|
||||
flexShrink: 1,
|
||||
},
|
||||
creditsPill: {
|
||||
borderRadius: 999,
|
||||
borderWidth: 1,
|
||||
paddingHorizontal: 8,
|
||||
paddingVertical: 3,
|
||||
},
|
||||
creditsText: {
|
||||
fontSize: 10,
|
||||
fontWeight: '700',
|
||||
letterSpacing: 0.3,
|
||||
textTransform: 'uppercase',
|
||||
},
|
||||
bellBtn: {
|
||||
width: 46,
|
||||
height: 46,
|
||||
borderRadius: 16,
|
||||
borderWidth: 1,
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
shadowOpacity: 0.08,
|
||||
shadowRadius: 8,
|
||||
shadowOffset: { width: 0, height: 2 },
|
||||
elevation: 2,
|
||||
},
|
||||
priorityCard: {
|
||||
borderRadius: 32,
|
||||
padding: 24,
|
||||
marginBottom: 20,
|
||||
overflow: 'hidden',
|
||||
},
|
||||
priorityLabelRow: {
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
gap: 6,
|
||||
marginBottom: 8,
|
||||
},
|
||||
priorityLabel: {
|
||||
fontSize: 10,
|
||||
fontWeight: '700',
|
||||
textTransform: 'uppercase',
|
||||
letterSpacing: 0.9,
|
||||
},
|
||||
priorityTitle: {
|
||||
fontSize: 29,
|
||||
fontWeight: '700',
|
||||
lineHeight: 36,
|
||||
maxWidth: 260,
|
||||
marginBottom: 14,
|
||||
},
|
||||
priorityButton: {
|
||||
alignSelf: 'flex-start',
|
||||
borderRadius: 16,
|
||||
borderWidth: 1,
|
||||
paddingHorizontal: 16,
|
||||
paddingVertical: 10,
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
gap: 6,
|
||||
},
|
||||
priorityButtonText: {
|
||||
fontSize: 13,
|
||||
fontWeight: '700',
|
||||
},
|
||||
priorityBgIcon: {
|
||||
position: 'absolute',
|
||||
right: -18,
|
||||
bottom: -22,
|
||||
},
|
||||
filterRow: {
|
||||
gap: 10,
|
||||
paddingVertical: 2,
|
||||
paddingRight: 4,
|
||||
marginBottom: 16,
|
||||
},
|
||||
collectionHeader: {
|
||||
flexDirection: 'row',
|
||||
justifyContent: 'space-between',
|
||||
alignItems: 'center',
|
||||
marginBottom: 12,
|
||||
},
|
||||
collectionTitle: {
|
||||
fontSize: 19,
|
||||
fontWeight: '700',
|
||||
letterSpacing: 0.2,
|
||||
},
|
||||
collectionCountPill: {
|
||||
borderRadius: 999,
|
||||
borderWidth: 1,
|
||||
paddingHorizontal: 10,
|
||||
paddingVertical: 4,
|
||||
},
|
||||
collectionCountText: {
|
||||
fontSize: 11,
|
||||
fontWeight: '700',
|
||||
textTransform: 'uppercase',
|
||||
letterSpacing: 0.4,
|
||||
},
|
||||
filterChip: {
|
||||
paddingHorizontal: 22,
|
||||
paddingVertical: 10,
|
||||
borderRadius: 16,
|
||||
borderWidth: 1,
|
||||
},
|
||||
filterChipActive: {
|
||||
paddingHorizontal: 22,
|
||||
paddingVertical: 10,
|
||||
borderRadius: 16,
|
||||
shadowOpacity: 0.24,
|
||||
shadowRadius: 10,
|
||||
shadowOffset: { width: 0, height: 3 },
|
||||
elevation: 3,
|
||||
},
|
||||
filterText: {
|
||||
fontSize: 13,
|
||||
fontWeight: '700',
|
||||
},
|
||||
filterTextActive: {
|
||||
fontSize: 13,
|
||||
fontWeight: '700',
|
||||
},
|
||||
plantCard: {
|
||||
borderRadius: 30,
|
||||
borderWidth: 1,
|
||||
padding: 15,
|
||||
flexDirection: 'row',
|
||||
alignItems: 'flex-start',
|
||||
gap: 14,
|
||||
marginBottom: 14,
|
||||
shadowOpacity: 0.1,
|
||||
shadowRadius: 12,
|
||||
shadowOffset: { width: 0, height: 4 },
|
||||
elevation: 3,
|
||||
},
|
||||
plantImageWrap: {
|
||||
borderWidth: 1,
|
||||
borderRadius: 20,
|
||||
overflow: 'hidden',
|
||||
},
|
||||
plantImage: {
|
||||
width: 98,
|
||||
height: 98,
|
||||
borderRadius: 20,
|
||||
},
|
||||
plantBody: {
|
||||
flex: 1,
|
||||
paddingTop: 2,
|
||||
},
|
||||
plantHeadRow: {
|
||||
flexDirection: 'row',
|
||||
alignItems: 'flex-start',
|
||||
justifyContent: 'space-between',
|
||||
marginBottom: 8,
|
||||
gap: 8,
|
||||
},
|
||||
plantTitleCol: {
|
||||
flex: 1,
|
||||
minWidth: 0,
|
||||
},
|
||||
plantName: {
|
||||
fontWeight: '700',
|
||||
fontSize: 19,
|
||||
letterSpacing: 0.15,
|
||||
},
|
||||
botanicalName: {
|
||||
fontSize: 12.5,
|
||||
fontStyle: 'italic',
|
||||
fontWeight: '500',
|
||||
marginTop: 2,
|
||||
opacity: 0.95,
|
||||
},
|
||||
metaRow: {
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
gap: 8,
|
||||
flexWrap: 'wrap',
|
||||
},
|
||||
statusThirsty: {
|
||||
borderRadius: 20,
|
||||
paddingHorizontal: 10,
|
||||
paddingVertical: 4,
|
||||
},
|
||||
statusHealthy: {
|
||||
borderRadius: 20,
|
||||
paddingHorizontal: 10,
|
||||
paddingVertical: 4,
|
||||
},
|
||||
statusThirstyText: {
|
||||
fontSize: 10,
|
||||
fontWeight: '800',
|
||||
textTransform: 'uppercase',
|
||||
letterSpacing: 0.4,
|
||||
},
|
||||
statusHealthyText: {
|
||||
fontSize: 10,
|
||||
fontWeight: '800',
|
||||
textTransform: 'uppercase',
|
||||
letterSpacing: 0.4,
|
||||
},
|
||||
waterMeta: {
|
||||
fontSize: 10,
|
||||
fontWeight: '700',
|
||||
textTransform: 'uppercase',
|
||||
letterSpacing: 0.4,
|
||||
},
|
||||
nextWaterPill: {
|
||||
borderRadius: 999,
|
||||
borderWidth: 1,
|
||||
paddingHorizontal: 9,
|
||||
paddingVertical: 4,
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
gap: 4,
|
||||
},
|
||||
emptyState: {
|
||||
borderRadius: 24,
|
||||
borderWidth: 1,
|
||||
paddingVertical: 32,
|
||||
paddingHorizontal: 22,
|
||||
alignItems: 'center',
|
||||
gap: 10,
|
||||
},
|
||||
emptyIconWrap: {
|
||||
width: 56,
|
||||
height: 56,
|
||||
borderRadius: 18,
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
},
|
||||
emptyTitle: {
|
||||
fontSize: 18,
|
||||
fontWeight: '700',
|
||||
textAlign: 'center',
|
||||
},
|
||||
emptyText: {
|
||||
fontSize: 13,
|
||||
fontWeight: '500',
|
||||
textAlign: 'center',
|
||||
lineHeight: 20,
|
||||
},
|
||||
emptyCta: {
|
||||
marginTop: 8,
|
||||
borderRadius: 999,
|
||||
paddingHorizontal: 16,
|
||||
paddingVertical: 10,
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
gap: 8,
|
||||
shadowOpacity: 0.3,
|
||||
shadowRadius: 10,
|
||||
shadowOffset: { width: 0, height: 4 },
|
||||
elevation: 4,
|
||||
},
|
||||
emptyCtaText: {
|
||||
fontSize: 13,
|
||||
fontWeight: '700',
|
||||
},
|
||||
fab: {
|
||||
position: 'absolute',
|
||||
right: 24,
|
||||
width: 66,
|
||||
height: 66,
|
||||
borderRadius: 33,
|
||||
borderWidth: 4,
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
shadowOpacity: 0.38,
|
||||
shadowRadius: 14,
|
||||
shadowOffset: { width: 0, height: 5 },
|
||||
elevation: 9,
|
||||
},
|
||||
checklistCard: {
|
||||
borderRadius: 24,
|
||||
borderWidth: 1,
|
||||
padding: 20,
|
||||
marginBottom: 20,
|
||||
},
|
||||
checklistTitle: {
|
||||
fontSize: 16,
|
||||
fontWeight: '700',
|
||||
marginBottom: 16,
|
||||
},
|
||||
checklistGrid: {
|
||||
gap: 12,
|
||||
},
|
||||
checklistItem: {
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
gap: 12,
|
||||
},
|
||||
checkIcon: {
|
||||
width: 32,
|
||||
height: 32,
|
||||
borderRadius: 16,
|
||||
justifyContent: 'center',
|
||||
alignItems: 'center',
|
||||
},
|
||||
checklistText: {
|
||||
flex: 1,
|
||||
fontSize: 14,
|
||||
fontWeight: '500',
|
||||
},
|
||||
});
|
||||
|
|
@ -0,0 +1,526 @@
|
|||
import React, { useState, useEffect, useMemo } from 'react';
|
||||
import {
|
||||
View,
|
||||
Text,
|
||||
StyleSheet,
|
||||
TouchableOpacity,
|
||||
ScrollView,
|
||||
Image,
|
||||
Alert,
|
||||
TextInput,
|
||||
Keyboard,
|
||||
} from 'react-native';
|
||||
import { SafeAreaView } from 'react-native-safe-area-context';
|
||||
import { Ionicons } from '@expo/vector-icons';
|
||||
import * as ImagePicker from 'expo-image-picker';
|
||||
import { useRouter } from 'expo-router';
|
||||
import { useApp } from '../../context/AppContext';
|
||||
import { useColors } from '../../constants/Colors';
|
||||
import { ThemeBackdrop } from '../../components/ThemeBackdrop';
|
||||
import { Language } from '../../types';
|
||||
|
||||
const DAY_MS = 24 * 60 * 60 * 1000;
|
||||
|
||||
const getDaysUntilWatering = (lastWatered: string, intervalDays: number): number => {
|
||||
const lastWateredTs = new Date(lastWatered).getTime();
|
||||
if (Number.isNaN(lastWateredTs)) return 0;
|
||||
const dueTs = lastWateredTs + (intervalDays * DAY_MS);
|
||||
const remainingMs = dueTs - Date.now();
|
||||
if (remainingMs <= 0) return 0;
|
||||
return Math.ceil(remainingMs / DAY_MS);
|
||||
};
|
||||
|
||||
const getProfileCopy = (language: Language) => {
|
||||
if (language === 'de') {
|
||||
return {
|
||||
overviewLabel: 'Überblick',
|
||||
statPlants: 'Pflanzen',
|
||||
statDueToday: 'Heute fällig',
|
||||
statReminders: 'Erinnerungen an',
|
||||
account: 'Account',
|
||||
changePhoto: 'Foto ändern',
|
||||
removePhoto: 'Foto entfernen',
|
||||
nameLabel: 'Name',
|
||||
namePlaceholder: 'Dein Name',
|
||||
saveName: 'Name speichern',
|
||||
photoErrorTitle: 'Fehler',
|
||||
photoErrorMessage: 'Profilfoto konnte nicht geladen werden.',
|
||||
nameErrorTitle: 'Name fehlt',
|
||||
nameErrorMessage: 'Bitte gib einen Namen ein.',
|
||||
menuSettings: 'Einstellungen',
|
||||
menuBilling: 'Abo & Credits',
|
||||
menuData: 'Daten & Datenschutz',
|
||||
logout: 'Abmelden',
|
||||
logoutConfirmTitle: 'Abmelden?',
|
||||
logoutConfirmMessage: 'Möchtest du dich wirklich abmelden?',
|
||||
logoutConfirmBtn: 'Abmelden',
|
||||
};
|
||||
}
|
||||
if (language === 'es') {
|
||||
return {
|
||||
overviewLabel: 'Resumen',
|
||||
statPlants: 'Plantas',
|
||||
statDueToday: 'Vencen hoy',
|
||||
statReminders: 'Recordatorios',
|
||||
account: 'Cuenta',
|
||||
changePhoto: 'Cambiar foto',
|
||||
removePhoto: 'Eliminar foto',
|
||||
nameLabel: 'Nombre',
|
||||
namePlaceholder: 'Tu nombre',
|
||||
saveName: 'Guardar nombre',
|
||||
photoErrorTitle: 'Error',
|
||||
photoErrorMessage: 'No se pudo cargar la foto.',
|
||||
nameErrorTitle: 'Falta nombre',
|
||||
nameErrorMessage: 'Por favor ingresa un nombre.',
|
||||
menuSettings: 'Ajustes',
|
||||
menuBilling: 'Suscripción y Créditos',
|
||||
menuData: 'Datos y Privacidad',
|
||||
logout: 'Cerrar sesión',
|
||||
logoutConfirmTitle: '¿Cerrar sesión?',
|
||||
logoutConfirmMessage: '¿Realmente quieres cerrar sesión?',
|
||||
logoutConfirmBtn: 'Cerrar sesión',
|
||||
};
|
||||
}
|
||||
return {
|
||||
overviewLabel: 'Overview',
|
||||
statPlants: 'Plants',
|
||||
statDueToday: 'Due today',
|
||||
statReminders: 'Reminders on',
|
||||
account: 'Account',
|
||||
changePhoto: 'Change photo',
|
||||
removePhoto: 'Remove photo',
|
||||
nameLabel: 'Name',
|
||||
namePlaceholder: 'Your name',
|
||||
saveName: 'Save name',
|
||||
photoErrorTitle: 'Error',
|
||||
photoErrorMessage: 'Could not load profile photo.',
|
||||
nameErrorTitle: 'Name missing',
|
||||
nameErrorMessage: 'Please enter a name.',
|
||||
menuSettings: 'Preferences',
|
||||
menuBilling: 'Billing & Credits',
|
||||
menuData: 'Data & Privacy',
|
||||
logout: 'Sign Out',
|
||||
logoutConfirmTitle: 'Sign out?',
|
||||
logoutConfirmMessage: 'Do you really want to sign out?',
|
||||
logoutConfirmBtn: 'Sign Out',
|
||||
};
|
||||
};
|
||||
|
||||
export default function ProfileScreen() {
|
||||
const {
|
||||
plants,
|
||||
language,
|
||||
t,
|
||||
isDarkMode,
|
||||
colorPalette,
|
||||
profileImageUri,
|
||||
setProfileImage,
|
||||
profileName,
|
||||
setProfileName,
|
||||
signOut,
|
||||
} = useApp();
|
||||
|
||||
const router = useRouter();
|
||||
const colors = useColors(isDarkMode, colorPalette);
|
||||
|
||||
const [isUpdatingImage, setIsUpdatingImage] = useState(false);
|
||||
const [isSavingName, setIsSavingName] = useState(false);
|
||||
const [draftName, setDraftName] = useState(profileName);
|
||||
|
||||
const copy = useMemo(() => getProfileCopy(language), [language]);
|
||||
|
||||
useEffect(() => {
|
||||
setDraftName(profileName);
|
||||
}, [profileName]);
|
||||
|
||||
const normalizedDraftName = draftName.trim();
|
||||
const canSaveName = normalizedDraftName.length > 0 && normalizedDraftName !== profileName;
|
||||
|
||||
const dueTodayCount = useMemo(
|
||||
() => plants.filter(plant => getDaysUntilWatering(plant.lastWatered, plant.careInfo.waterIntervalDays) === 0).length,
|
||||
[plants]
|
||||
);
|
||||
|
||||
const remindersEnabledCount = useMemo(
|
||||
() => plants.filter(plant => Boolean(plant.notificationsEnabled)).length,
|
||||
[plants]
|
||||
);
|
||||
|
||||
const handlePickProfileImage = async () => {
|
||||
if (isUpdatingImage) return;
|
||||
|
||||
setIsUpdatingImage(true);
|
||||
try {
|
||||
const result = await ImagePicker.launchImageLibraryAsync({
|
||||
mediaTypes: ['images'],
|
||||
quality: 0.85,
|
||||
base64: true,
|
||||
});
|
||||
|
||||
if (!result.canceled && result.assets[0]) {
|
||||
const asset = result.assets[0];
|
||||
const imageUri = asset.base64
|
||||
? `data:image/jpeg;base64,${asset.base64}`
|
||||
: asset.uri;
|
||||
await setProfileImage(imageUri);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Failed to pick profile image', error);
|
||||
Alert.alert(copy.photoErrorTitle, copy.photoErrorMessage);
|
||||
} finally {
|
||||
setIsUpdatingImage(false);
|
||||
}
|
||||
};
|
||||
|
||||
const handleRemovePhoto = async () => {
|
||||
await setProfileImage(null);
|
||||
};
|
||||
|
||||
const handleSaveName = async () => {
|
||||
if (!normalizedDraftName) {
|
||||
Alert.alert(copy.nameErrorTitle, copy.nameErrorMessage);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!canSaveName) {
|
||||
Keyboard.dismiss();
|
||||
return;
|
||||
}
|
||||
|
||||
setIsSavingName(true);
|
||||
try {
|
||||
await setProfileName(normalizedDraftName);
|
||||
Keyboard.dismiss();
|
||||
} finally {
|
||||
setIsSavingName(false);
|
||||
}
|
||||
};
|
||||
|
||||
const menuItems = [
|
||||
{ label: copy.menuSettings, icon: 'settings-outline', route: '/profile/preferences' as any },
|
||||
{ label: copy.menuBilling, icon: 'card-outline', route: '/profile/billing' as any },
|
||||
{ label: copy.menuData, icon: 'shield-checkmark-outline', route: '/profile/data' as any },
|
||||
];
|
||||
|
||||
return (
|
||||
<SafeAreaView edges={['top', 'left', 'right']} style={[styles.container, { backgroundColor: colors.background }]}>
|
||||
<ThemeBackdrop colors={colors} />
|
||||
|
||||
<ScrollView contentContainerStyle={styles.scrollContent} showsVerticalScrollIndicator={false}>
|
||||
<Text style={[styles.title, { color: colors.text }]}>{t.tabProfile}</Text>
|
||||
|
||||
<View style={[styles.card, { backgroundColor: colors.cardBg, borderColor: colors.cardBorder }]}>
|
||||
<Text style={[styles.cardTitle, { color: colors.text }]}>{copy.overviewLabel}</Text>
|
||||
<View style={styles.statsRow}>
|
||||
{[
|
||||
{ label: copy.statPlants, value: plants.length.toString() },
|
||||
{ label: copy.statDueToday, value: dueTodayCount.toString() },
|
||||
{ label: copy.statReminders, value: remindersEnabledCount.toString() },
|
||||
].map((item) => (
|
||||
<View
|
||||
key={item.label}
|
||||
style={[styles.statCard, { backgroundColor: colors.surfaceStrong, borderColor: colors.borderStrong }]}
|
||||
>
|
||||
<Text style={[styles.statValue, { color: colors.text }]}>{item.value}</Text>
|
||||
<Text style={[styles.statLabel, { color: colors.textSecondary }]}>{item.label}</Text>
|
||||
</View>
|
||||
))}
|
||||
</View>
|
||||
</View>
|
||||
|
||||
<View style={[styles.card, styles.accountCard, { backgroundColor: colors.cardBg, borderColor: colors.cardBorder }]}>
|
||||
<Text style={[styles.cardTitle, { color: colors.text }]}>{copy.account}</Text>
|
||||
|
||||
<View style={styles.accountRow}>
|
||||
<TouchableOpacity
|
||||
style={[styles.avatarFrame, { backgroundColor: colors.primaryDark }]}
|
||||
onPress={handlePickProfileImage}
|
||||
activeOpacity={0.9}
|
||||
>
|
||||
{profileImageUri ? (
|
||||
<Image source={{ uri: profileImageUri }} style={styles.avatarImage} />
|
||||
) : (
|
||||
<Ionicons name="person" size={34} color={colors.iconOnImage} />
|
||||
)}
|
||||
</TouchableOpacity>
|
||||
|
||||
<View style={styles.accountMeta}>
|
||||
<Text style={[styles.currentName, { color: colors.text }]}>{profileName}</Text>
|
||||
<Text style={[styles.plantsCount, { color: colors.textSecondary }]}>
|
||||
{plants.length} {copy.statPlants}
|
||||
</Text>
|
||||
</View>
|
||||
</View>
|
||||
|
||||
<View style={styles.photoButtons}>
|
||||
<TouchableOpacity
|
||||
style={[styles.photoActionBtn, { backgroundColor: colors.primary }]}
|
||||
onPress={handlePickProfileImage}
|
||||
activeOpacity={0.85}
|
||||
disabled={isUpdatingImage}
|
||||
>
|
||||
<Text style={[styles.photoActionText, { color: colors.onPrimary }]}>
|
||||
{isUpdatingImage ? '...' : copy.changePhoto}
|
||||
</Text>
|
||||
</TouchableOpacity>
|
||||
|
||||
{profileImageUri ? (
|
||||
<TouchableOpacity
|
||||
style={[styles.photoActionBtn, styles.photoSecondaryBtn, { borderColor: colors.borderStrong }]}
|
||||
onPress={handleRemovePhoto}
|
||||
activeOpacity={0.85}
|
||||
>
|
||||
<Text style={[styles.photoSecondaryText, { color: colors.textSecondary }]}>
|
||||
{copy.removePhoto}
|
||||
</Text>
|
||||
</TouchableOpacity>
|
||||
) : null}
|
||||
</View>
|
||||
|
||||
<Text style={[styles.fieldLabel, { color: colors.textSecondary }]}>{copy.nameLabel}</Text>
|
||||
<View style={styles.nameRow}>
|
||||
<TextInput
|
||||
style={[
|
||||
styles.nameInput,
|
||||
{
|
||||
color: colors.text,
|
||||
backgroundColor: colors.inputBg,
|
||||
borderColor: colors.inputBorder,
|
||||
},
|
||||
]}
|
||||
value={draftName}
|
||||
placeholder={copy.namePlaceholder}
|
||||
placeholderTextColor={colors.textMuted}
|
||||
onChangeText={setDraftName}
|
||||
maxLength={40}
|
||||
autoCapitalize="words"
|
||||
returnKeyType="done"
|
||||
onSubmitEditing={handleSaveName}
|
||||
/>
|
||||
<TouchableOpacity
|
||||
style={[
|
||||
styles.saveNameBtn,
|
||||
{
|
||||
backgroundColor: canSaveName ? colors.primary : colors.surfaceStrong,
|
||||
borderColor: canSaveName ? colors.primaryDark : colors.borderStrong,
|
||||
},
|
||||
]}
|
||||
onPress={handleSaveName}
|
||||
disabled={!canSaveName || isSavingName}
|
||||
activeOpacity={0.85}
|
||||
>
|
||||
<Text style={[styles.saveNameText, { color: canSaveName ? colors.onPrimary : colors.textMuted }]}>
|
||||
{isSavingName ? '...' : copy.saveName}
|
||||
</Text>
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
</View>
|
||||
|
||||
<View style={[styles.card, { backgroundColor: colors.cardBg, borderColor: colors.cardBorder, padding: 0, overflow: 'hidden' }]}>
|
||||
{menuItems.map((item, idx) => (
|
||||
<TouchableOpacity
|
||||
key={item.route}
|
||||
style={[
|
||||
styles.menuItem,
|
||||
idx !== menuItems.length - 1 && { borderBottomWidth: 1, borderBottomColor: colors.borderStrong }
|
||||
]}
|
||||
onPress={() => router.push(item.route)}
|
||||
activeOpacity={0.7}
|
||||
>
|
||||
<View style={styles.menuItemLeft}>
|
||||
<Ionicons name={item.icon as any} size={20} color={colors.text} />
|
||||
<Text style={[styles.menuItemText, { color: colors.text }]}>{item.label}</Text>
|
||||
</View>
|
||||
<Ionicons name="chevron-forward" size={20} color={colors.textMuted} />
|
||||
</TouchableOpacity>
|
||||
))}
|
||||
</View>
|
||||
{/* Logout */}
|
||||
<TouchableOpacity
|
||||
style={[styles.logoutBtn, { borderColor: colors.dangerSoft, backgroundColor: colors.dangerSoft }]}
|
||||
activeOpacity={0.78}
|
||||
onPress={() => {
|
||||
Alert.alert(copy.logoutConfirmTitle, copy.logoutConfirmMessage, [
|
||||
{ text: t.cancel, style: 'cancel' },
|
||||
{
|
||||
text: copy.logoutConfirmBtn,
|
||||
style: 'destructive',
|
||||
onPress: async () => {
|
||||
await signOut();
|
||||
router.replace('/auth/login');
|
||||
},
|
||||
},
|
||||
]);
|
||||
}}
|
||||
>
|
||||
<Ionicons name="log-out-outline" size={18} color={colors.danger} />
|
||||
<Text style={[styles.logoutText, { color: colors.danger }]}>{copy.logout}</Text>
|
||||
</TouchableOpacity>
|
||||
|
||||
<View style={{ height: 40 }} />
|
||||
</ScrollView>
|
||||
</SafeAreaView>
|
||||
);
|
||||
}
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
container: {
|
||||
flex: 1,
|
||||
paddingHorizontal: 20,
|
||||
},
|
||||
scrollContent: {
|
||||
paddingBottom: 20,
|
||||
},
|
||||
title: {
|
||||
marginTop: 14,
|
||||
marginBottom: 14,
|
||||
fontSize: 28,
|
||||
fontWeight: '700',
|
||||
},
|
||||
card: {
|
||||
borderWidth: 1,
|
||||
borderRadius: 18,
|
||||
padding: 14,
|
||||
marginBottom: 12,
|
||||
gap: 10,
|
||||
},
|
||||
accountCard: {
|
||||
marginBottom: 14,
|
||||
},
|
||||
logoutBtn: {
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
gap: 8,
|
||||
borderRadius: 14,
|
||||
borderWidth: 1,
|
||||
paddingVertical: 14,
|
||||
marginBottom: 12,
|
||||
},
|
||||
logoutText: {
|
||||
fontSize: 15,
|
||||
fontWeight: '600',
|
||||
},
|
||||
cardTitle: {
|
||||
fontSize: 15,
|
||||
fontWeight: '700',
|
||||
},
|
||||
statsRow: {
|
||||
flexDirection: 'row',
|
||||
gap: 8,
|
||||
},
|
||||
statCard: {
|
||||
flex: 1,
|
||||
borderWidth: 1,
|
||||
borderRadius: 12,
|
||||
paddingVertical: 12,
|
||||
paddingHorizontal: 8,
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
gap: 2,
|
||||
},
|
||||
statValue: {
|
||||
fontSize: 22,
|
||||
lineHeight: 24,
|
||||
fontWeight: '700',
|
||||
},
|
||||
statLabel: {
|
||||
fontSize: 11,
|
||||
fontWeight: '600',
|
||||
textAlign: 'center',
|
||||
},
|
||||
accountRow: {
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
gap: 12,
|
||||
},
|
||||
accountMeta: {
|
||||
flex: 1,
|
||||
gap: 3,
|
||||
},
|
||||
currentName: {
|
||||
fontSize: 18,
|
||||
fontWeight: '700',
|
||||
},
|
||||
plantsCount: {
|
||||
fontSize: 13,
|
||||
fontWeight: '600',
|
||||
},
|
||||
avatarFrame: {
|
||||
width: 74,
|
||||
height: 74,
|
||||
borderRadius: 22,
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
overflow: 'hidden',
|
||||
},
|
||||
avatarImage: {
|
||||
width: '100%',
|
||||
height: '100%',
|
||||
},
|
||||
photoButtons: {
|
||||
flexDirection: 'row',
|
||||
gap: 8,
|
||||
},
|
||||
photoActionBtn: {
|
||||
borderRadius: 10,
|
||||
paddingVertical: 10,
|
||||
paddingHorizontal: 12,
|
||||
},
|
||||
photoSecondaryBtn: {
|
||||
borderWidth: 1,
|
||||
},
|
||||
photoActionText: {
|
||||
fontSize: 12,
|
||||
fontWeight: '700',
|
||||
},
|
||||
photoSecondaryText: {
|
||||
fontSize: 12,
|
||||
fontWeight: '700',
|
||||
},
|
||||
fieldLabel: {
|
||||
marginTop: 2,
|
||||
fontSize: 12,
|
||||
fontWeight: '600',
|
||||
},
|
||||
nameRow: {
|
||||
flexDirection: 'row',
|
||||
gap: 8,
|
||||
alignItems: 'center',
|
||||
},
|
||||
nameInput: {
|
||||
flex: 1,
|
||||
borderWidth: 1,
|
||||
borderRadius: 12,
|
||||
paddingHorizontal: 12,
|
||||
paddingVertical: 10,
|
||||
fontSize: 14,
|
||||
fontWeight: '500',
|
||||
},
|
||||
saveNameBtn: {
|
||||
borderWidth: 1,
|
||||
borderRadius: 12,
|
||||
paddingHorizontal: 12,
|
||||
paddingVertical: 10,
|
||||
},
|
||||
saveNameText: {
|
||||
fontSize: 12,
|
||||
fontWeight: '700',
|
||||
},
|
||||
menuItem: {
|
||||
flexDirection: 'row',
|
||||
justifyContent: 'space-between',
|
||||
alignItems: 'center',
|
||||
paddingVertical: 16,
|
||||
paddingHorizontal: 14,
|
||||
},
|
||||
menuItemLeft: {
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
gap: 12,
|
||||
},
|
||||
menuItemText: {
|
||||
fontSize: 16,
|
||||
fontWeight: '500',
|
||||
}
|
||||
});
|
||||
|
|
@ -0,0 +1,613 @@
|
|||
import React, { useEffect, useMemo, useState } from 'react';
|
||||
import {
|
||||
Dimensions,
|
||||
FlatList,
|
||||
ScrollView,
|
||||
StyleSheet,
|
||||
Text,
|
||||
TextInput,
|
||||
TouchableOpacity,
|
||||
View,
|
||||
} from 'react-native';
|
||||
import { SafeAreaView } from 'react-native-safe-area-context';
|
||||
import { useRouter } from 'expo-router';
|
||||
import { Ionicons } from '@expo/vector-icons';
|
||||
import { useApp } from '../../context/AppContext';
|
||||
import { useColors } from '../../constants/Colors';
|
||||
import { Plant } from '../../types';
|
||||
import { PlantCard } from '../../components/PlantCard';
|
||||
import { ThemeBackdrop } from '../../components/ThemeBackdrop';
|
||||
import {
|
||||
DatabaseEntry,
|
||||
PlantDatabaseService,
|
||||
SemanticSearchStatus,
|
||||
} from '../../services/plantDatabaseService';
|
||||
import { normalizeSearchText, rankHybridEntries } from '../../utils/hybridSearch';
|
||||
|
||||
const { width } = Dimensions.get('window');
|
||||
const CARD_GAP = 12;
|
||||
const CARD_WIDTH = (width - 40 - CARD_GAP) / 2;
|
||||
const SEARCH_DEBOUNCE_MS = 250;
|
||||
const SEMANTIC_SEARCH_CREDIT_COST = 2;
|
||||
|
||||
const getBillingCopy = (language: 'de' | 'en' | 'es') => {
|
||||
if (language === 'de') {
|
||||
return {
|
||||
creditsLabel: 'Credits',
|
||||
deepSearchCost: `Deep Search kostet ${SEMANTIC_SEARCH_CREDIT_COST} Credits`,
|
||||
insufficientCredits: 'Nicht genug Credits fuer AI Deep Search.',
|
||||
managePlan: 'Plan verwalten',
|
||||
};
|
||||
}
|
||||
|
||||
if (language === 'es') {
|
||||
return {
|
||||
creditsLabel: 'Creditos',
|
||||
deepSearchCost: `Deep Search cuesta ${SEMANTIC_SEARCH_CREDIT_COST} creditos`,
|
||||
insufficientCredits: 'No tienes creditos suficientes para AI Deep Search.',
|
||||
managePlan: 'Gestionar plan',
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
creditsLabel: 'Credits',
|
||||
deepSearchCost: `Deep Search costs ${SEMANTIC_SEARCH_CREDIT_COST} credits`,
|
||||
insufficientCredits: 'Not enough credits for AI Deep Search.',
|
||||
managePlan: 'Manage plan',
|
||||
};
|
||||
};
|
||||
|
||||
const parseColor = (value: string) => {
|
||||
if (value.startsWith('#')) {
|
||||
const cleaned = value.replace('#', '');
|
||||
const normalized = cleaned.length === 3
|
||||
? cleaned.split('').map((c) => `${c}${c}`).join('')
|
||||
: cleaned;
|
||||
const int = Number.parseInt(normalized, 16);
|
||||
return {
|
||||
r: (int >> 16) & 255,
|
||||
g: (int >> 8) & 255,
|
||||
b: int & 255,
|
||||
};
|
||||
}
|
||||
|
||||
const match = value.match(/rgba?\(([^)]+)\)/i);
|
||||
if (!match) return { r: 255, g: 255, b: 255 };
|
||||
const parts = match[1].split(',').map((part) => part.trim());
|
||||
return {
|
||||
r: Number.parseFloat(parts[0]) || 255,
|
||||
g: Number.parseFloat(parts[1]) || 255,
|
||||
b: Number.parseFloat(parts[2]) || 255,
|
||||
};
|
||||
};
|
||||
|
||||
const blendColors = (baseColor: string, tintColor: string, tintWeight: number) => {
|
||||
const base = parseColor(baseColor);
|
||||
const tint = parseColor(tintColor);
|
||||
const weight = Math.max(0, Math.min(1, tintWeight));
|
||||
const r = Math.round(base.r + (tint.r - base.r) * weight);
|
||||
const g = Math.round(base.g + (tint.g - base.g) * weight);
|
||||
const b = Math.round(base.b + (tint.b - base.b) * weight);
|
||||
return `rgb(${r}, ${g}, ${b})`;
|
||||
};
|
||||
|
||||
const relativeLuminance = (value: string) => {
|
||||
const { r, g, b } = parseColor(value);
|
||||
const [nr, ng, nb] = [r, g, b].map((channel) => {
|
||||
const normalized = channel / 255;
|
||||
return normalized <= 0.03928
|
||||
? normalized / 12.92
|
||||
: ((normalized + 0.055) / 1.055) ** 2.4;
|
||||
});
|
||||
return 0.2126 * nr + 0.7152 * ng + 0.0722 * nb;
|
||||
};
|
||||
|
||||
const contrastRatio = (a: string, b: string) => {
|
||||
const l1 = relativeLuminance(a);
|
||||
const l2 = relativeLuminance(b);
|
||||
const lighter = Math.max(l1, l2);
|
||||
const darker = Math.min(l1, l2);
|
||||
return (lighter + 0.05) / (darker + 0.05);
|
||||
};
|
||||
|
||||
const pickBestTextColor = (bgColor: string, candidates: string[]) => {
|
||||
let best = candidates[0];
|
||||
let bestRatio = contrastRatio(bgColor, best);
|
||||
for (let i = 1; i < candidates.length; i += 1) {
|
||||
const ratio = contrastRatio(bgColor, candidates[i]);
|
||||
if (ratio > bestRatio) {
|
||||
best = candidates[i];
|
||||
bestRatio = ratio;
|
||||
}
|
||||
}
|
||||
return best;
|
||||
};
|
||||
|
||||
const chunkIntoRows = <T,>(items: T[], size = 2): T[][] => {
|
||||
const rows: T[][] = [];
|
||||
for (let i = 0; i < items.length; i += size) {
|
||||
rows.push(items.slice(i, i + size));
|
||||
}
|
||||
return rows;
|
||||
};
|
||||
|
||||
export default function SearchScreen() {
|
||||
const {
|
||||
plants,
|
||||
isDarkMode,
|
||||
colorPalette,
|
||||
t,
|
||||
language,
|
||||
billingSummary,
|
||||
refreshBillingSummary,
|
||||
} = useApp();
|
||||
const colors = useColors(isDarkMode, colorPalette);
|
||||
const router = useRouter();
|
||||
const billingCopy = getBillingCopy(language);
|
||||
const availableCredits = billingSummary?.credits.available ?? 0;
|
||||
|
||||
const [searchQuery, setSearchQuery] = useState('');
|
||||
const [debouncedQuery, setDebouncedQuery] = useState('');
|
||||
const [isDeepSearching, setIsDeepSearching] = useState(false);
|
||||
const [aiStatus, setAiStatus] = useState<SemanticSearchStatus | 'idle' | 'loading'>('idle');
|
||||
const [aiResults, setAiResults] = useState<DatabaseEntry[]>([]);
|
||||
|
||||
useEffect(() => {
|
||||
const timer = setTimeout(() => {
|
||||
setDebouncedQuery(searchQuery.trim());
|
||||
}, SEARCH_DEBOUNCE_MS);
|
||||
|
||||
return () => clearTimeout(timer);
|
||||
}, [searchQuery]);
|
||||
|
||||
useEffect(() => {
|
||||
setAiStatus('idle');
|
||||
setAiResults([]);
|
||||
}, [debouncedQuery, language]);
|
||||
|
||||
useEffect(() => {
|
||||
refreshBillingSummary();
|
||||
}, [refreshBillingSummary]);
|
||||
|
||||
const getCategoryBackground = (baseTint: string, accent: string) => {
|
||||
return isDarkMode ? baseTint : blendColors(baseTint, accent, 0.2);
|
||||
};
|
||||
|
||||
const getCategoryTextColor = (bgColor: string, accent: string) => {
|
||||
const tintedDark = blendColors(accent, '#000000', 0.58);
|
||||
const tintedLight = blendColors(accent, '#ffffff', 0.64);
|
||||
return pickBestTextColor(bgColor, [
|
||||
isDarkMode ? tintedLight : tintedDark,
|
||||
colors.text,
|
||||
colors.textOnImage,
|
||||
]);
|
||||
};
|
||||
|
||||
const categories = [
|
||||
{ id: 'easy', name: t.catCareEasy, bg: getCategoryBackground(colors.successTint, colors.success), accent: colors.success },
|
||||
{ id: 'low_light', name: t.catLowLight, bg: getCategoryBackground(colors.infoTint, colors.info), accent: colors.info },
|
||||
{ id: 'bright_light', name: t.catBrightLight, bg: getCategoryBackground(colors.primaryTint, colors.primaryDark), accent: colors.primaryDark },
|
||||
{ id: 'sun', name: t.catSun, bg: getCategoryBackground(colors.warningTint, colors.warning), accent: colors.warning },
|
||||
{ id: 'pet_friendly', name: t.catPetFriendly, bg: getCategoryBackground(colors.dangerTint, colors.danger), accent: colors.danger },
|
||||
{ id: 'air_purifier', name: t.catAirPurifier, bg: getCategoryBackground(colors.primaryTint, colors.primary), accent: colors.primary },
|
||||
{ id: 'high_humidity', name: t.catHighHumidity, bg: getCategoryBackground(colors.infoTint, colors.info), accent: colors.info },
|
||||
{ id: 'hanging', name: t.catHanging, bg: getCategoryBackground(colors.successTint, colors.success), accent: colors.success },
|
||||
{ id: 'patterned', name: t.catPatterned, bg: getCategoryBackground(colors.dangerTint, colors.primaryDark), accent: colors.primaryDark },
|
||||
{ id: 'flowering', name: t.catFlowering, bg: getCategoryBackground(colors.primaryTint, colors.primaryDark), accent: colors.primaryDark },
|
||||
{ id: 'succulent', name: t.catSucculents, bg: getCategoryBackground(colors.warningTint, colors.warning), accent: colors.warning },
|
||||
{ id: 'tree', name: t.catTree, bg: getCategoryBackground(colors.surfaceStrong, colors.textSecondary), accent: colors.textSecondary },
|
||||
{ id: 'large', name: t.catLarge, bg: getCategoryBackground(colors.surface, colors.textMuted), accent: colors.textMuted },
|
||||
{ id: 'medicinal', name: t.catMedicinal, bg: getCategoryBackground(colors.successTint, colors.success), accent: colors.success },
|
||||
];
|
||||
|
||||
const normalizedQuery = normalizeSearchText(debouncedQuery);
|
||||
const isResultMode = Boolean(normalizedQuery);
|
||||
|
||||
const localResults = useMemo(() => {
|
||||
if (!normalizedQuery) {
|
||||
return [] as Plant[];
|
||||
}
|
||||
|
||||
return rankHybridEntries(plants, normalizedQuery, 30)
|
||||
.map((entry) => entry.entry);
|
||||
}, [plants, normalizedQuery]);
|
||||
|
||||
const [lexiconResults, setLexiconResults] = useState<DatabaseEntry[]>([]);
|
||||
|
||||
useEffect(() => {
|
||||
if (!normalizedQuery) {
|
||||
setLexiconResults([]);
|
||||
return;
|
||||
}
|
||||
let isCancelled = false;
|
||||
PlantDatabaseService.searchPlants(normalizedQuery, language, {
|
||||
limit: 30,
|
||||
}).then((results) => {
|
||||
if (!isCancelled) setLexiconResults(results);
|
||||
}).catch(console.error);
|
||||
|
||||
return () => {
|
||||
isCancelled = true;
|
||||
};
|
||||
}, [normalizedQuery, language]);
|
||||
|
||||
const filteredAiResults = aiResults;
|
||||
|
||||
const showAiSection = aiStatus !== 'idle' || filteredAiResults.length > 0;
|
||||
const canRunDeepSearch = (
|
||||
searchQuery.trim().length >= 3 &&
|
||||
!isDeepSearching &&
|
||||
availableCredits >= SEMANTIC_SEARCH_CREDIT_COST
|
||||
);
|
||||
|
||||
const handleDeepSearch = async () => {
|
||||
const query = searchQuery.trim();
|
||||
if (query.length < 3) return;
|
||||
if (availableCredits < SEMANTIC_SEARCH_CREDIT_COST) {
|
||||
setAiStatus('insufficient_credits');
|
||||
setAiResults([]);
|
||||
return;
|
||||
}
|
||||
|
||||
setIsDeepSearching(true);
|
||||
setAiStatus('loading');
|
||||
setAiResults([]);
|
||||
|
||||
try {
|
||||
const response = await PlantDatabaseService.semanticSearchDetailed(query, language);
|
||||
setAiStatus(response.status);
|
||||
setAiResults(response.results);
|
||||
} catch (error) {
|
||||
console.error('Deep search failed', error);
|
||||
setAiStatus('provider_error');
|
||||
setAiResults([]);
|
||||
} finally {
|
||||
setIsDeepSearching(false);
|
||||
await refreshBillingSummary();
|
||||
}
|
||||
};
|
||||
|
||||
const openCategoryLexicon = (categoryId: string, categoryName: string) => {
|
||||
router.push({
|
||||
pathname: '/lexicon',
|
||||
params: {
|
||||
categoryId,
|
||||
categoryLabel: encodeURIComponent(categoryName),
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
const clearAll = () => {
|
||||
setSearchQuery('');
|
||||
setDebouncedQuery('');
|
||||
setAiStatus('idle');
|
||||
setAiResults([]);
|
||||
};
|
||||
|
||||
const openLexiconDetail = (entry: DatabaseEntry) => {
|
||||
router.push({
|
||||
pathname: '/lexicon',
|
||||
params: { detail: encodeURIComponent(JSON.stringify(entry)) },
|
||||
});
|
||||
};
|
||||
|
||||
const renderGrid = (
|
||||
items: Array<Plant | DatabaseEntry>,
|
||||
type: 'local' | 'lexicon' | 'ai',
|
||||
) => {
|
||||
const rows = chunkIntoRows(items, 2);
|
||||
|
||||
return (
|
||||
<View style={styles.grid}>
|
||||
{rows.map((row, rowIndex) => (
|
||||
<View key={`${type}-row-${rowIndex}`} style={styles.gridRow}>
|
||||
{row.map((item, itemIndex) => (
|
||||
<View key={`${type}-${item.name}-${itemIndex}`} style={styles.cardWrapper}>
|
||||
<PlantCard
|
||||
plant={item}
|
||||
width={CARD_WIDTH}
|
||||
onPress={() => {
|
||||
if (type === 'local' && 'id' in item) {
|
||||
router.push(`/plant/${item.id}`);
|
||||
return;
|
||||
}
|
||||
openLexiconDetail(item as DatabaseEntry);
|
||||
}}
|
||||
t={t}
|
||||
isDark={isDarkMode}
|
||||
colorPalette={colorPalette}
|
||||
/>
|
||||
</View>
|
||||
))}
|
||||
{row.length === 1 ? <View style={styles.cardSpacer} /> : null}
|
||||
</View>
|
||||
))}
|
||||
</View>
|
||||
);
|
||||
};
|
||||
|
||||
const aiStatusText = (() => {
|
||||
if (aiStatus === 'loading') return t.searchAiLoading;
|
||||
if (aiStatus === 'timeout') return t.searchAiUnavailable;
|
||||
if (aiStatus === 'provider_error') return t.searchAiUnavailable;
|
||||
if (aiStatus === 'insufficient_credits') return billingCopy.insufficientCredits;
|
||||
if (aiStatus === 'no_results') return t.searchAiNoResults;
|
||||
return null;
|
||||
})();
|
||||
|
||||
const SectionTitle = ({ label, count }: { label: string; count: number }) => (
|
||||
<View style={styles.sectionHeader}>
|
||||
<Text style={[styles.sectionTitle, { color: colors.text }]}>{label}</Text>
|
||||
<Text style={[styles.sectionCount, { color: colors.textSecondary }]}>{count}</Text>
|
||||
</View>
|
||||
);
|
||||
|
||||
return (
|
||||
<SafeAreaView style={[styles.container, { backgroundColor: colors.background }]}>
|
||||
<ThemeBackdrop colors={colors} />
|
||||
|
||||
<Text style={[styles.title, { color: colors.text }]}>{t.searchTitle}</Text>
|
||||
|
||||
<View style={[styles.searchBar, { backgroundColor: colors.cardBg, borderColor: colors.cardBorder, shadowColor: colors.cardShadow }]}>
|
||||
<Ionicons name="search" size={20} color={colors.textMuted} />
|
||||
<TextInput
|
||||
style={[styles.searchInput, { color: colors.text }]}
|
||||
placeholder={t.searchPlaceholder}
|
||||
placeholderTextColor={colors.textMuted}
|
||||
value={searchQuery}
|
||||
onChangeText={setSearchQuery}
|
||||
autoCorrect={false}
|
||||
autoCapitalize="none"
|
||||
returnKeyType="search"
|
||||
/>
|
||||
{searchQuery ? (
|
||||
<TouchableOpacity onPress={clearAll} hitSlop={8}>
|
||||
<Ionicons name="close" size={20} color={colors.textMuted} />
|
||||
</TouchableOpacity>
|
||||
) : null}
|
||||
</View>
|
||||
|
||||
<FlatList
|
||||
horizontal
|
||||
data={categories}
|
||||
keyExtractor={item => item.id}
|
||||
style={styles.chipsList}
|
||||
showsHorizontalScrollIndicator={false}
|
||||
contentContainerStyle={styles.chipsContent}
|
||||
renderItem={({ item }) => {
|
||||
return (
|
||||
<TouchableOpacity
|
||||
style={[
|
||||
styles.catChip,
|
||||
{
|
||||
backgroundColor: item.bg,
|
||||
borderColor: colors.chipBorder,
|
||||
},
|
||||
]}
|
||||
onPress={() => openCategoryLexicon(item.id, item.name)}
|
||||
activeOpacity={0.8}
|
||||
>
|
||||
<Text style={[styles.catChipText, { color: getCategoryTextColor(item.bg, item.accent) }]}>
|
||||
{item.name}
|
||||
</Text>
|
||||
</TouchableOpacity>
|
||||
);
|
||||
}}
|
||||
/>
|
||||
|
||||
{searchQuery.trim().length >= 3 ? (
|
||||
<View style={styles.deepSearchWrap}>
|
||||
<TouchableOpacity
|
||||
style={[
|
||||
styles.deepSearchBtn,
|
||||
{
|
||||
backgroundColor: canRunDeepSearch ? colors.primary : colors.surfaceStrong,
|
||||
borderColor: canRunDeepSearch ? colors.primaryDark : colors.borderStrong,
|
||||
shadowColor: canRunDeepSearch ? colors.fabShadow : colors.cardShadow,
|
||||
},
|
||||
]}
|
||||
onPress={handleDeepSearch}
|
||||
disabled={!canRunDeepSearch}
|
||||
activeOpacity={0.85}
|
||||
>
|
||||
<Ionicons
|
||||
name="sparkles"
|
||||
size={16}
|
||||
color={canRunDeepSearch ? colors.onPrimary : colors.textMuted}
|
||||
/>
|
||||
<Text style={[styles.deepSearchText, { color: canRunDeepSearch ? colors.onPrimary : colors.textMuted }]}>
|
||||
{isDeepSearching ? t.searchAiLoading : t.searchDeepAction}
|
||||
</Text>
|
||||
</TouchableOpacity>
|
||||
|
||||
<View style={styles.creditMetaRow}>
|
||||
<Text style={[styles.creditMetaText, { color: colors.textSecondary }]}>
|
||||
{billingCopy.creditsLabel}: {availableCredits}
|
||||
</Text>
|
||||
<Text style={[styles.creditMetaText, { color: colors.textMuted }]}>
|
||||
{billingCopy.deepSearchCost}
|
||||
</Text>
|
||||
</View>
|
||||
</View>
|
||||
) : null}
|
||||
|
||||
{isResultMode ? (
|
||||
<ScrollView style={styles.results} contentContainerStyle={styles.resultsContent} showsVerticalScrollIndicator={false}>
|
||||
<SectionTitle label={t.searchMyPlants} count={localResults.length} />
|
||||
{localResults.length > 0 ? (
|
||||
renderGrid(localResults, 'local')
|
||||
) : (
|
||||
<Text style={[styles.emptyText, { color: colors.textSecondary }]}>{t.searchNoLocalResults}</Text>
|
||||
)}
|
||||
|
||||
<SectionTitle label={t.searchLexicon} count={lexiconResults.length} />
|
||||
{lexiconResults.length > 0 ? (
|
||||
renderGrid(lexiconResults, 'lexicon')
|
||||
) : (
|
||||
<Text style={[styles.emptyText, { color: colors.textSecondary }]}>{t.searchNoLexiconResults}</Text>
|
||||
)}
|
||||
|
||||
{showAiSection ? (
|
||||
<View style={styles.aiSection}>
|
||||
<SectionTitle label={t.searchAiSection} count={filteredAiResults.length} />
|
||||
{aiStatus === 'loading' ? (
|
||||
<View style={styles.aiLoadingRow}>
|
||||
<Ionicons name="sparkles" size={14} color={colors.primary} />
|
||||
<Text style={[styles.aiStatusText, { color: colors.textSecondary }]}>{aiStatusText}</Text>
|
||||
</View>
|
||||
) : filteredAiResults.length > 0 ? (
|
||||
renderGrid(filteredAiResults, 'ai')
|
||||
) : aiStatusText ? (
|
||||
<View style={styles.aiStatusBlock}>
|
||||
<Text style={[styles.emptyText, { color: colors.textSecondary }]}>{aiStatusText}</Text>
|
||||
{aiStatus === 'insufficient_credits' ? (
|
||||
<TouchableOpacity
|
||||
style={[styles.managePlanBtn, { borderColor: colors.borderStrong, backgroundColor: colors.surfaceStrong }]}
|
||||
onPress={() => router.push('/(tabs)/profile')}
|
||||
activeOpacity={0.85}
|
||||
>
|
||||
<Text style={[styles.managePlanText, { color: colors.text }]}>{billingCopy.managePlan}</Text>
|
||||
</TouchableOpacity>
|
||||
) : null}
|
||||
</View>
|
||||
) : null}
|
||||
</View>
|
||||
) : null}
|
||||
</ScrollView>
|
||||
) : (
|
||||
<ScrollView
|
||||
style={styles.results}
|
||||
contentContainerStyle={styles.discoveryContent}
|
||||
showsVerticalScrollIndicator={false}
|
||||
>
|
||||
<TouchableOpacity
|
||||
style={[styles.lexiconBanner, { backgroundColor: colors.primaryDark }]}
|
||||
activeOpacity={0.85}
|
||||
onPress={() => router.push('/lexicon')}
|
||||
>
|
||||
<Ionicons name="book-outline" size={20} color={colors.iconOnImage} />
|
||||
<Text style={[styles.lexiconTitle, { color: colors.iconOnImage }]}>{t.lexiconTitle}</Text>
|
||||
<Text style={[styles.lexiconDesc, { color: colors.heroButton }]}>{t.lexiconDesc}</Text>
|
||||
<View style={[styles.lexiconBadge, { backgroundColor: colors.heroButtonBorder }]}>
|
||||
<Text style={[styles.lexiconBadgeText, { color: colors.iconOnImage }]}>{t.browseLexicon}</Text>
|
||||
</View>
|
||||
</TouchableOpacity>
|
||||
</ScrollView>
|
||||
)}
|
||||
</SafeAreaView>
|
||||
);
|
||||
}
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
container: { flex: 1, paddingHorizontal: 20 },
|
||||
title: { fontSize: 23, fontWeight: '700', letterSpacing: 0.2, marginTop: 12, marginBottom: 16 },
|
||||
searchBar: {
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
borderWidth: 1,
|
||||
borderRadius: 16,
|
||||
paddingHorizontal: 14,
|
||||
paddingVertical: 10,
|
||||
gap: 10,
|
||||
shadowOffset: { width: 0, height: 2 },
|
||||
shadowOpacity: 0.14,
|
||||
shadowRadius: 8,
|
||||
elevation: 2,
|
||||
},
|
||||
searchInput: { flex: 1, fontSize: 15 },
|
||||
chipsList: { marginTop: 10, height: 50, maxHeight: 50 },
|
||||
chipsContent: { gap: 8, paddingRight: 4, paddingVertical: 1, alignItems: 'center' },
|
||||
catChip: {
|
||||
height: 40,
|
||||
paddingHorizontal: 14,
|
||||
paddingVertical: 0,
|
||||
borderRadius: 20,
|
||||
justifyContent: 'center',
|
||||
alignItems: 'center',
|
||||
borderWidth: 1,
|
||||
},
|
||||
catChipText: {
|
||||
fontSize: 12.5,
|
||||
lineHeight: 18,
|
||||
fontWeight: '700',
|
||||
includeFontPadding: false,
|
||||
},
|
||||
deepSearchBtn: {
|
||||
marginTop: 12,
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
alignSelf: 'flex-start',
|
||||
gap: 8,
|
||||
paddingHorizontal: 11,
|
||||
paddingVertical: 6,
|
||||
borderRadius: 10,
|
||||
borderWidth: 1,
|
||||
shadowOffset: { width: 0, height: 2 },
|
||||
shadowOpacity: 0.16,
|
||||
shadowRadius: 6,
|
||||
elevation: 2,
|
||||
},
|
||||
deepSearchWrap: {
|
||||
marginTop: 12,
|
||||
gap: 6,
|
||||
alignSelf: 'flex-start',
|
||||
},
|
||||
deepSearchText: { fontSize: 12, fontWeight: '700' },
|
||||
creditMetaRow: {
|
||||
gap: 1,
|
||||
marginLeft: 2,
|
||||
},
|
||||
creditMetaText: {
|
||||
fontSize: 11,
|
||||
fontWeight: '600',
|
||||
},
|
||||
results: { marginTop: 14 },
|
||||
resultsContent: { paddingBottom: 110 },
|
||||
sectionHeader: {
|
||||
marginBottom: 10,
|
||||
flexDirection: 'row',
|
||||
justifyContent: 'space-between',
|
||||
alignItems: 'center',
|
||||
},
|
||||
sectionTitle: { fontSize: 15, fontWeight: '600' },
|
||||
sectionCount: { fontSize: 13, fontWeight: '500' },
|
||||
grid: { marginBottom: 18 },
|
||||
gridRow: {
|
||||
flexDirection: 'row',
|
||||
justifyContent: 'space-between',
|
||||
marginBottom: CARD_GAP,
|
||||
},
|
||||
cardWrapper: { width: CARD_WIDTH },
|
||||
cardSpacer: { width: CARD_WIDTH },
|
||||
emptyText: { marginBottom: 18, fontSize: 14, lineHeight: 20 },
|
||||
aiSection: { marginTop: 2 },
|
||||
aiStatusBlock: { marginBottom: 18 },
|
||||
aiLoadingRow: { flexDirection: 'row', alignItems: 'center', gap: 8, marginBottom: 18 },
|
||||
aiStatusText: { fontSize: 13, fontWeight: '500' },
|
||||
managePlanBtn: {
|
||||
alignSelf: 'flex-start',
|
||||
borderWidth: 1,
|
||||
borderRadius: 10,
|
||||
paddingHorizontal: 10,
|
||||
paddingVertical: 6,
|
||||
marginTop: -8,
|
||||
},
|
||||
managePlanText: { fontSize: 12, fontWeight: '700' },
|
||||
discoveryContent: { paddingTop: 16, paddingBottom: 120 },
|
||||
lexiconBanner: {
|
||||
marginTop: 8,
|
||||
padding: 18,
|
||||
borderRadius: 18,
|
||||
gap: 4,
|
||||
},
|
||||
lexiconTitle: { fontSize: 18, fontWeight: '700' },
|
||||
lexiconDesc: { fontSize: 12 },
|
||||
lexiconBadge: {
|
||||
marginTop: 8,
|
||||
paddingHorizontal: 12,
|
||||
paddingVertical: 5,
|
||||
borderRadius: 20,
|
||||
alignSelf: 'flex-start',
|
||||
},
|
||||
lexiconBadgeText: { fontSize: 11, fontWeight: '700' },
|
||||
});
|
||||
204
app/_layout.tsx
|
|
@ -1,28 +1,42 @@
|
|||
import { useEffect, useState } from 'react';
|
||||
import { Stack } from 'expo-router';
|
||||
import { useEffect, useRef, useState } from 'react';
|
||||
import { Animated, Easing, Image, StyleSheet, Text, View } from 'react-native';
|
||||
import { Redirect, Stack, usePathname } from 'expo-router';
|
||||
import { StatusBar } from 'expo-status-bar';
|
||||
import { StripeProvider } from '@stripe/stripe-react-native';
|
||||
import AsyncStorage from '@react-native-async-storage/async-storage';
|
||||
import Purchases, { LOG_LEVEL } from 'react-native-purchases';
|
||||
import { Platform } from 'react-native';
|
||||
import Constants from 'expo-constants';
|
||||
import { AppProvider, useApp } from '../context/AppContext';
|
||||
import { CoachMarksProvider } from '../context/CoachMarksContext';
|
||||
import { CoachMarksOverlay } from '../components/CoachMarksOverlay';
|
||||
import { useColors } from '../constants/Colors';
|
||||
import { AuthService } from '../services/authService';
|
||||
import { initDatabase, AppMetaDb } from '../services/database';
|
||||
import * as SecureStore from 'expo-secure-store';
|
||||
import * as SplashScreen from 'expo-splash-screen';
|
||||
import { AuthService } from '../services/authService';
|
||||
import { PostHogProvider, usePostHog } from 'posthog-react-native';
|
||||
|
||||
type InitialRoute = 'onboarding' | 'auth/login' | '(tabs)';
|
||||
const STRIPE_PUBLISHABLE_KEY = (process.env.EXPO_PUBLIC_STRIPE_PUBLISHABLE_KEY || 'pk_test_mock_key').trim();
|
||||
// Prevent the splash screen from auto-hiding before asset loading is complete.
|
||||
SplashScreen.preventAutoHideAsync().catch(() => { });
|
||||
|
||||
const POSTHOG_API_KEY = process.env.EXPO_PUBLIC_POSTHOG_API_KEY || 'phc_FX6HRgx9NSpS5moxjMF6xyc37yMwjoeu6TbWUqNNKlk';
|
||||
const SECURE_INSTALL_MARKER = 'greenlens_install_v1';
|
||||
|
||||
const ensureInstallConsistency = async (): Promise<boolean> => {
|
||||
try {
|
||||
const [sqliteMarker, secureMarker] = await Promise.all([
|
||||
Promise.resolve(AppMetaDb.get('install_marker_v2')),
|
||||
SecureStore.getItemAsync(SECURE_INSTALL_MARKER).catch(() => null),
|
||||
]);
|
||||
const sqliteMarker = AppMetaDb.get('install_marker_v2');
|
||||
const secureMarker = await SecureStore.getItemAsync(SECURE_INSTALL_MARKER).catch(() => null);
|
||||
|
||||
if (sqliteMarker && secureMarker) return false; // Kein Fresh Install
|
||||
if (sqliteMarker === '1' && secureMarker === '1') {
|
||||
return false; // Alles gut, keine Neuinstallation
|
||||
}
|
||||
|
||||
if (sqliteMarker === '1' || secureMarker === '1') {
|
||||
// Teilweise vorhanden -> heilen, nicht löschen
|
||||
AppMetaDb.set('install_marker_v2', '1');
|
||||
await SecureStore.setItemAsync(SECURE_INSTALL_MARKER, '1');
|
||||
return false;
|
||||
}
|
||||
|
||||
// Fresh Install: Alles zurücksetzen
|
||||
await AuthService.logout();
|
||||
|
|
@ -36,10 +50,45 @@ const ensureInstallConsistency = async (): Promise<boolean> => {
|
|||
}
|
||||
};
|
||||
|
||||
|
||||
import { AnimatedSplashScreen } from '../components/AnimatedSplashScreen';
|
||||
|
||||
function RootLayoutInner() {
|
||||
const { isDarkMode, colorPalette, signOut } = useApp();
|
||||
const { isDarkMode, colorPalette, signOut, session, isInitializing, isLoadingPlants } = useApp();
|
||||
const colors = useColors(isDarkMode, colorPalette);
|
||||
const [initialRoute, setInitialRoute] = useState<InitialRoute | null>(null);
|
||||
const pathname = usePathname();
|
||||
const [installCheckDone, setInstallCheckDone] = useState(false);
|
||||
const [splashAnimationComplete, setSplashAnimationComplete] = useState(false);
|
||||
const posthog = usePostHog();
|
||||
|
||||
useEffect(() => {
|
||||
// RevenueCat requires native store access — not available in Expo Go
|
||||
const isExpoGo = Constants.appOwnership === 'expo';
|
||||
if (isExpoGo) {
|
||||
console.log('[RevenueCat] Skipping configure: running in Expo Go');
|
||||
return;
|
||||
}
|
||||
|
||||
Purchases.setLogLevel(LOG_LEVEL.VERBOSE);
|
||||
const iosApiKey = process.env.EXPO_PUBLIC_REVENUECAT_IOS_API_KEY || 'appl_hrSpsuUuVstbHhYIDnOqYxPOnmR';
|
||||
const androidApiKey = process.env.EXPO_PUBLIC_REVENUECAT_ANDROID_API_KEY || 'goog_placeholder';
|
||||
if (Platform.OS === 'ios') {
|
||||
Purchases.configure({ apiKey: iosApiKey });
|
||||
} else if (Platform.OS === 'android') {
|
||||
Purchases.configure({ apiKey: androidApiKey });
|
||||
}
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
if (session?.serverUserId) {
|
||||
posthog.identify(session.serverUserId, {
|
||||
email: session.email,
|
||||
name: session.name,
|
||||
});
|
||||
} else if (session === null) {
|
||||
posthog.reset();
|
||||
}
|
||||
}, [session, posthog]);
|
||||
|
||||
useEffect(() => {
|
||||
(async () => {
|
||||
|
|
@ -47,55 +96,92 @@ function RootLayoutInner() {
|
|||
if (didResetSessionForFreshInstall) {
|
||||
await signOut();
|
||||
}
|
||||
const session = await AuthService.getSession();
|
||||
if (!session) {
|
||||
// Kein Benutzer → immer zum Onboarding (Landing + Register/Login)
|
||||
setInitialRoute('auth/login');
|
||||
return;
|
||||
}
|
||||
const validity = await AuthService.validateWithServer();
|
||||
if (validity === 'invalid') {
|
||||
await AuthService.logout();
|
||||
await signOut();
|
||||
setInitialRoute('auth/login');
|
||||
return;
|
||||
}
|
||||
// 'valid' or 'unreachable' (offline) → allow tab navigation
|
||||
setInitialRoute('(tabs)');
|
||||
setInstallCheckDone(true);
|
||||
})();
|
||||
}, [signOut]);
|
||||
|
||||
if (initialRoute === null) return null;
|
||||
const isAppReady = installCheckDone && !isInitializing && !isLoadingPlants;
|
||||
|
||||
let content = null;
|
||||
|
||||
if (isAppReady) {
|
||||
if (!session) {
|
||||
// Only redirect if we are not already on an auth-related page or the scanner
|
||||
const isAuthPage = pathname.includes('onboarding') || pathname.includes('auth/') || pathname.includes('scanner');
|
||||
if (!isAuthPage) {
|
||||
content = <Redirect href="/onboarding" />;
|
||||
} else {
|
||||
content = (
|
||||
<Stack
|
||||
screenOptions={{
|
||||
headerShown: false,
|
||||
contentStyle: { backgroundColor: colors.background },
|
||||
}}
|
||||
>
|
||||
<Stack.Screen name="onboarding" options={{ animation: 'none' }} />
|
||||
<Stack.Screen name="auth/login" options={{ animation: 'slide_from_right' }} />
|
||||
<Stack.Screen name="auth/signup" options={{ animation: 'slide_from_right' }} />
|
||||
<Stack.Screen
|
||||
name="scanner"
|
||||
options={{ presentation: 'fullScreenModal', animation: 'slide_from_bottom' }}
|
||||
/>
|
||||
</Stack>
|
||||
);
|
||||
}
|
||||
} else {
|
||||
content = (
|
||||
<>
|
||||
<Stack
|
||||
screenOptions={{
|
||||
headerShown: false,
|
||||
contentStyle: { backgroundColor: colors.background },
|
||||
}}
|
||||
>
|
||||
<Stack.Screen name="onboarding" options={{ animation: 'none' }} />
|
||||
<Stack.Screen name="auth/login" options={{ animation: 'slide_from_right' }} />
|
||||
<Stack.Screen name="auth/signup" options={{ animation: 'slide_from_right' }} />
|
||||
<Stack.Screen name="(tabs)" options={{ animation: 'none' }} />
|
||||
<Stack.Screen
|
||||
name="scanner"
|
||||
options={{ presentation: 'fullScreenModal', animation: 'slide_from_bottom' }}
|
||||
/>
|
||||
<Stack.Screen
|
||||
name="plant/[id]"
|
||||
options={{ presentation: 'card', animation: 'slide_from_right' }}
|
||||
/>
|
||||
<Stack.Screen
|
||||
name="lexicon"
|
||||
options={{ presentation: 'fullScreenModal', animation: 'slide_from_bottom' }}
|
||||
/>
|
||||
<Stack.Screen
|
||||
name="profile/preferences"
|
||||
options={{ presentation: 'card', animation: 'slide_from_right' }}
|
||||
/>
|
||||
<Stack.Screen
|
||||
name="profile/data"
|
||||
options={{ presentation: 'card', animation: 'slide_from_right' }}
|
||||
/>
|
||||
<Stack.Screen
|
||||
name="profile/billing"
|
||||
options={{ presentation: 'card', animation: 'slide_from_right' }}
|
||||
/>
|
||||
</Stack>
|
||||
<CoachMarksOverlay />
|
||||
</>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return (
|
||||
<>
|
||||
<StatusBar style={isDarkMode ? 'light' : 'dark'} />
|
||||
<Stack
|
||||
screenOptions={{
|
||||
headerShown: false,
|
||||
contentStyle: { backgroundColor: colors.background },
|
||||
}}
|
||||
initialRouteName={initialRoute}
|
||||
>
|
||||
<Stack.Screen name="onboarding" options={{ animation: 'none' }} />
|
||||
<Stack.Screen name="auth/login" options={{ animation: 'slide_from_right' }} />
|
||||
<Stack.Screen name="auth/signup" options={{ animation: 'slide_from_right' }} />
|
||||
<Stack.Screen name="(tabs)" options={{ animation: 'none' }} />
|
||||
<Stack.Screen
|
||||
name="scanner"
|
||||
options={{ presentation: 'fullScreenModal', animation: 'slide_from_bottom' }}
|
||||
{content}
|
||||
{!splashAnimationComplete && (
|
||||
<AnimatedSplashScreen
|
||||
isAppReady={isAppReady}
|
||||
onAnimationComplete={() => setSplashAnimationComplete(true)}
|
||||
/>
|
||||
<Stack.Screen
|
||||
name="plant/[id]"
|
||||
options={{ presentation: 'card', animation: 'slide_from_right' }}
|
||||
/>
|
||||
<Stack.Screen
|
||||
name="lexicon"
|
||||
options={{ presentation: 'fullScreenModal', animation: 'slide_from_bottom' }}
|
||||
/>
|
||||
</Stack>
|
||||
{/* Coach Marks rendern über allem */}
|
||||
<CoachMarksOverlay />
|
||||
)}
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
|
@ -104,15 +190,15 @@ export default function RootLayout() {
|
|||
initDatabase();
|
||||
|
||||
return (
|
||||
<StripeProvider
|
||||
publishableKey={STRIPE_PUBLISHABLE_KEY}
|
||||
merchantIdentifier="merchant.com.greenlens"
|
||||
>
|
||||
<PostHogProvider apiKey={POSTHOG_API_KEY} options={{
|
||||
host: 'https://us.i.posthog.com',
|
||||
enableSessionReplay: true,
|
||||
}}>
|
||||
<AppProvider>
|
||||
<CoachMarksProvider>
|
||||
<RootLayoutInner />
|
||||
</CoachMarksProvider>
|
||||
</AppProvider>
|
||||
</StripeProvider>
|
||||
</PostHogProvider>
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -160,7 +160,7 @@ export default function LoginScreen() {
|
|||
{/* Sign Up Link */}
|
||||
<TouchableOpacity
|
||||
style={[styles.secondaryBtn, { borderColor: colors.borderStrong, backgroundColor: colors.surface }]}
|
||||
onPress={() => router.push('/auth/signup')}
|
||||
onPress={() => router.replace('/auth/signup')}
|
||||
activeOpacity={0.82}
|
||||
>
|
||||
<Text style={[styles.secondaryBtnText, { color: colors.text }]}>
|
||||
|
|
@ -186,9 +186,9 @@ const styles = StyleSheet.create({
|
|||
marginBottom: 32,
|
||||
},
|
||||
logoIcon: {
|
||||
width: 88,
|
||||
height: 88,
|
||||
borderRadius: 20,
|
||||
width: 56,
|
||||
height: 56,
|
||||
borderRadius: 14,
|
||||
marginBottom: 16,
|
||||
},
|
||||
appName: {
|
||||
|
|
|
|||
|
|
@ -20,8 +20,9 @@ import { AuthService } from '../../services/authService';
|
|||
import AsyncStorage from '@react-native-async-storage/async-storage';
|
||||
|
||||
export default function SignupScreen() {
|
||||
const { isDarkMode, colorPalette, hydrateSession } = useApp();
|
||||
const { isDarkMode, colorPalette, hydrateSession, getPendingPlant } = useApp();
|
||||
const colors = useColors(isDarkMode, colorPalette);
|
||||
const pendingPlant = getPendingPlant();
|
||||
|
||||
const [name, setName] = useState('');
|
||||
const [email, setEmail] = useState('');
|
||||
|
|
@ -103,6 +104,16 @@ export default function SignupScreen() {
|
|||
</Text>
|
||||
</View>
|
||||
|
||||
{/* Pending Plant Hint */}
|
||||
{pendingPlant && (
|
||||
<View style={[styles.pendingHint, { backgroundColor: `${colors.primarySoft}40`, borderColor: `${colors.primaryDark}40` }]}>
|
||||
<Ionicons name="sparkles" size={18} color={colors.primaryDark} />
|
||||
<Text style={[styles.pendingHintText, { color: colors.primaryDark }]}>
|
||||
Deine gescannte Pflanze ({pendingPlant.result.name}) wird nach der Registrierung automatisch in deinem Profil gespeichert.
|
||||
</Text>
|
||||
</View>
|
||||
)}
|
||||
|
||||
{/* Card */}
|
||||
<View style={[styles.card, { backgroundColor: colors.surface, borderColor: colors.cardBorder, shadowColor: colors.cardShadow }]}>
|
||||
{/* Name */}
|
||||
|
|
@ -256,7 +267,7 @@ export default function SignupScreen() {
|
|||
</View>
|
||||
|
||||
{/* Login link */}
|
||||
<TouchableOpacity style={styles.loginLink} onPress={() => router.back()}>
|
||||
<TouchableOpacity style={styles.loginLink} onPress={() => router.replace('/auth/login')}>
|
||||
<Text style={[styles.loginLinkText, { color: colors.textSecondary }]}>
|
||||
Bereits ein Konto?{' '}
|
||||
<Text style={{ color: colors.primary, fontWeight: '600' }}>Anmelden</Text>
|
||||
|
|
@ -291,9 +302,9 @@ const styles = StyleSheet.create({
|
|||
alignItems: 'center',
|
||||
},
|
||||
logoIcon: {
|
||||
width: 88,
|
||||
height: 88,
|
||||
borderRadius: 20,
|
||||
width: 56,
|
||||
height: 56,
|
||||
borderRadius: 14,
|
||||
marginBottom: 16,
|
||||
},
|
||||
appName: {
|
||||
|
|
@ -391,4 +402,19 @@ const styles = StyleSheet.create({
|
|||
loginLinkText: {
|
||||
fontSize: 15,
|
||||
},
|
||||
pendingHint: {
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
padding: 16,
|
||||
borderRadius: 16,
|
||||
borderWidth: 1,
|
||||
marginBottom: 20,
|
||||
gap: 12,
|
||||
},
|
||||
pendingHintText: {
|
||||
flex: 1,
|
||||
fontSize: 13,
|
||||
fontWeight: '600',
|
||||
lineHeight: 18,
|
||||
},
|
||||
});
|
||||
|
|
|
|||
|
|
@ -0,0 +1,451 @@
|
|||
import React, { useState } from 'react';
|
||||
import {
|
||||
View, Text, StyleSheet, TextInput, FlatList, TouchableOpacity, Platform, StatusBar, ScrollView, ActivityIndicator,
|
||||
} from 'react-native';
|
||||
import { SafeAreaView, useSafeAreaInsets } from 'react-native-safe-area-context';
|
||||
import { useRouter, useLocalSearchParams } from 'expo-router';
|
||||
import { Ionicons } from '@expo/vector-icons';
|
||||
import { useApp } from '../context/AppContext';
|
||||
import { useColors } from '../constants/Colors';
|
||||
import { PlantDatabaseService } from '../services/plantDatabaseService';
|
||||
import { IdentificationResult } from '../types';
|
||||
import { DatabaseEntry } from '../services/plantDatabaseService';
|
||||
import { ResultCard } from '../components/ResultCard';
|
||||
import { ThemeBackdrop } from '../components/ThemeBackdrop';
|
||||
import { SafeImage } from '../components/SafeImage';
|
||||
import { resolveImageUri } from '../utils/imageUri';
|
||||
|
||||
export default function LexiconScreen() {
|
||||
const { isDarkMode, colorPalette, language, t, savePlant, getLexiconSearchHistory, saveLexiconSearchQuery, clearLexiconSearchHistory } = useApp();
|
||||
const colors = useColors(isDarkMode, colorPalette);
|
||||
const insets = useSafeAreaInsets();
|
||||
const router = useRouter();
|
||||
const params = useLocalSearchParams();
|
||||
const categoryIdParam = Array.isArray(params.categoryId) ? params.categoryId[0] : params.categoryId;
|
||||
const categoryLabelParam = Array.isArray(params.categoryLabel) ? params.categoryLabel[0] : params.categoryLabel;
|
||||
|
||||
const decodeParam = (value?: string | string[]) => {
|
||||
if (!value || typeof value !== 'string') return '';
|
||||
try {
|
||||
return decodeURIComponent(value);
|
||||
} catch {
|
||||
return value;
|
||||
}
|
||||
};
|
||||
|
||||
const initialCategoryId = typeof categoryIdParam === 'string' ? categoryIdParam : null;
|
||||
const initialCategoryLabel = decodeParam(categoryLabelParam);
|
||||
const topInsetFallback = Platform.OS === 'android' ? (StatusBar.currentHeight || 0) : 20;
|
||||
const topInset = insets.top > 0 ? insets.top : topInsetFallback;
|
||||
|
||||
const [searchQuery, setSearchQuery] = useState(initialCategoryLabel);
|
||||
const [activeCategoryId, setActiveCategoryId] = useState<string | null>(initialCategoryId);
|
||||
const [selectedItem, setSelectedItem] = useState<(IdentificationResult & { imageUri: string }) | null>(null);
|
||||
const [isAiSearching, setIsAiSearching] = useState(false);
|
||||
const [aiResults, setAiResults] = useState<DatabaseEntry[] | null>(null);
|
||||
const [searchErrorMessage, setSearchErrorMessage] = useState<string | null>(null);
|
||||
const [searchHistory, setSearchHistory] = useState<string[]>([]);
|
||||
|
||||
const detailParam = Array.isArray(params.detail) ? params.detail[0] : params.detail;
|
||||
const openedWithDetail = Boolean(detailParam);
|
||||
|
||||
React.useEffect(() => {
|
||||
if (detailParam) {
|
||||
try {
|
||||
const rawParam = detailParam;
|
||||
const decoded = decodeURIComponent(rawParam as string);
|
||||
const detail = JSON.parse(decoded);
|
||||
setSelectedItem(detail);
|
||||
} catch (e) {
|
||||
try {
|
||||
const fallbackRaw = detailParam;
|
||||
const detail = JSON.parse(fallbackRaw as string);
|
||||
setSelectedItem(detail);
|
||||
} catch (fallbackError) {
|
||||
console.error('Failed to parse plant detail', fallbackError);
|
||||
}
|
||||
}
|
||||
}
|
||||
}, [detailParam]);
|
||||
|
||||
React.useEffect(() => {
|
||||
setActiveCategoryId(initialCategoryId);
|
||||
setSearchQuery(initialCategoryLabel);
|
||||
}, [initialCategoryId, initialCategoryLabel]);
|
||||
|
||||
React.useEffect(() => {
|
||||
const loadHistory = async () => {
|
||||
const history = getLexiconSearchHistory();
|
||||
setSearchHistory(history);
|
||||
};
|
||||
loadHistory();
|
||||
}, []);
|
||||
|
||||
const handleResultClose = () => {
|
||||
if (openedWithDetail) {
|
||||
router.back();
|
||||
return;
|
||||
}
|
||||
setSelectedItem(null);
|
||||
};
|
||||
|
||||
const normalizeText = (value: string): string => (
|
||||
value
|
||||
.toLowerCase()
|
||||
.normalize('NFD')
|
||||
.replace(/[\u0300-\u036f]/g, '')
|
||||
.trim()
|
||||
.replace(/\s+/g, ' ')
|
||||
);
|
||||
|
||||
const effectiveSearchQuery = searchQuery;
|
||||
const [lexiconPlants, setLexiconPlants] = useState<DatabaseEntry[]>([]);
|
||||
|
||||
React.useEffect(() => {
|
||||
if (aiResults) {
|
||||
setLexiconPlants(aiResults);
|
||||
return;
|
||||
}
|
||||
|
||||
let isCancelled = false;
|
||||
PlantDatabaseService.searchPlants(effectiveSearchQuery, language, {
|
||||
category: activeCategoryId,
|
||||
limit: 500,
|
||||
}).then(results => {
|
||||
if (!isCancelled) setLexiconPlants(results);
|
||||
}).catch(console.error);
|
||||
|
||||
return () => {
|
||||
isCancelled = true;
|
||||
};
|
||||
}, [aiResults, effectiveSearchQuery, language, activeCategoryId]);
|
||||
|
||||
const handleAiSearch = async () => {
|
||||
const query = searchQuery.trim();
|
||||
if (!query) return;
|
||||
|
||||
setIsAiSearching(true);
|
||||
setAiResults(null);
|
||||
setSearchErrorMessage(null);
|
||||
try {
|
||||
const response = await PlantDatabaseService.semanticSearchDetailed(query, language);
|
||||
|
||||
if (response.status === 'success') {
|
||||
setAiResults(response.results);
|
||||
saveLexiconSearchQuery(query);
|
||||
setSearchHistory(getLexiconSearchHistory());
|
||||
} else if (response.status === 'insufficient_credits') {
|
||||
setSearchErrorMessage((t as any).errorNoCredits || 'Nicht genügend Guthaben für KI-Suche.');
|
||||
} else if (response.status === 'no_results') {
|
||||
setSearchErrorMessage((t as any).noResultsFound || 'Keine Ergebnisse gefunden.');
|
||||
setAiResults([]);
|
||||
} else {
|
||||
setSearchErrorMessage((t as any).errorTryAgain || 'Fehler bei der Suche. Bitte später erneut versuchen.');
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('AI Search failed', error);
|
||||
setSearchErrorMessage((t as any).errorGeneral || 'Etwas ist schiefgelaufen.');
|
||||
} finally {
|
||||
setIsAiSearching(false);
|
||||
}
|
||||
};
|
||||
|
||||
const handleSearchSubmit = async () => {
|
||||
const query = searchQuery.trim();
|
||||
if (!query) return;
|
||||
|
||||
saveLexiconSearchQuery(query);
|
||||
setSearchHistory(getLexiconSearchHistory());
|
||||
};
|
||||
|
||||
const handleHistorySelect = (query: string) => {
|
||||
setActiveCategoryId(null);
|
||||
setSearchQuery(query);
|
||||
};
|
||||
|
||||
const handleClearHistory = () => {
|
||||
clearLexiconSearchHistory();
|
||||
setSearchHistory([]);
|
||||
};
|
||||
|
||||
const showSearchHistory = searchQuery.trim().length === 0 && !activeCategoryId && searchHistory.length > 0;
|
||||
|
||||
if (selectedItem) {
|
||||
return (
|
||||
<ResultCard
|
||||
result={selectedItem}
|
||||
imageUri={selectedItem.imageUri}
|
||||
onSave={() => {
|
||||
savePlant(selectedItem, resolveImageUri(selectedItem.imageUri));
|
||||
router.back();
|
||||
}}
|
||||
onClose={handleResultClose}
|
||||
t={t}
|
||||
isDark={isDarkMode}
|
||||
colorPalette={colorPalette}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<SafeAreaView style={[styles.container, { backgroundColor: colors.background }]} edges={['left', 'right', 'bottom']}>
|
||||
<ThemeBackdrop colors={colors} />
|
||||
|
||||
{/* Header */}
|
||||
<View
|
||||
style={[
|
||||
styles.header,
|
||||
{
|
||||
backgroundColor: colors.cardBg,
|
||||
borderBottomColor: colors.cardBorder,
|
||||
paddingTop: topInset + 8,
|
||||
},
|
||||
]}
|
||||
>
|
||||
<TouchableOpacity onPress={() => router.back()} style={styles.backBtn}>
|
||||
<Ionicons name="arrow-back" size={24} color={colors.textSecondary} />
|
||||
</TouchableOpacity>
|
||||
<Text style={[styles.title, { color: colors.text }]}>{t.lexiconTitle}</Text>
|
||||
</View>
|
||||
|
||||
{/* Search */}
|
||||
<View style={{ paddingHorizontal: 20, paddingTop: 16 }}>
|
||||
<View
|
||||
style={[
|
||||
styles.searchBar,
|
||||
{ backgroundColor: colors.cardBg, borderColor: colors.inputBorder, shadowColor: colors.cardShadow },
|
||||
]}
|
||||
>
|
||||
<Ionicons name="search" size={20} color={colors.textMuted} />
|
||||
<TextInput
|
||||
style={[styles.searchInput, { color: colors.text }]}
|
||||
placeholder={t.lexiconSearchPlaceholder}
|
||||
placeholderTextColor={colors.textMuted}
|
||||
value={searchQuery}
|
||||
onChangeText={setSearchQuery}
|
||||
onSubmitEditing={handleSearchSubmit}
|
||||
returnKeyType="search"
|
||||
/>
|
||||
{(searchQuery || activeCategoryId) ? (
|
||||
<TouchableOpacity
|
||||
onPress={() => {
|
||||
setSearchQuery('');
|
||||
setActiveCategoryId(null);
|
||||
setAiResults(null);
|
||||
}}
|
||||
hitSlop={8}
|
||||
>
|
||||
<Ionicons name="close" size={18} color={colors.textMuted} />
|
||||
</TouchableOpacity>
|
||||
) : null}
|
||||
</View>
|
||||
</View>
|
||||
|
||||
{/* AI Search Trigger block removed */}
|
||||
|
||||
{searchErrorMessage && (
|
||||
<View style={{ paddingHorizontal: 20, paddingTop: 12 }}>
|
||||
<View style={[styles.errorBox, { backgroundColor: colors.danger + '20' }]}>
|
||||
<Ionicons name="alert-circle" size={18} color={colors.danger} />
|
||||
<Text style={[styles.errorText, { color: colors.danger }]}>{searchErrorMessage}</Text>
|
||||
</View>
|
||||
</View>
|
||||
)}
|
||||
|
||||
{aiResults && (
|
||||
<View style={{ paddingHorizontal: 20, paddingTop: 12 }}>
|
||||
<TouchableOpacity
|
||||
style={[styles.clearAiResultsBtn, { backgroundColor: colors.surface }]}
|
||||
onPress={() => {
|
||||
setAiResults(null);
|
||||
setSearchErrorMessage(null);
|
||||
}}
|
||||
>
|
||||
<Ionicons name="close-circle" size={18} color={colors.textSecondary} />
|
||||
<Text style={{ color: colors.textSecondary, fontSize: 13, fontWeight: '500' }}>
|
||||
{(t as any).clearAiResults || 'KI-Ergebnisse löschen'}
|
||||
</Text>
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
)}
|
||||
|
||||
{showSearchHistory ? (
|
||||
<View style={styles.historySection}>
|
||||
<View style={styles.historyHeader}>
|
||||
<Text style={[styles.historyTitle, { color: colors.textSecondary }]}>{t.searchHistory}</Text>
|
||||
<TouchableOpacity onPress={handleClearHistory} hitSlop={8}>
|
||||
<Text style={[styles.clearHistoryText, { color: colors.primaryDark }]}>{t.clearHistory}</Text>
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
|
||||
<ScrollView
|
||||
horizontal
|
||||
showsHorizontalScrollIndicator={false}
|
||||
contentContainerStyle={styles.historyContent}
|
||||
>
|
||||
{searchHistory.map((item, index) => (
|
||||
<TouchableOpacity
|
||||
key={`${item}-${index}`}
|
||||
style={[styles.historyChip, { backgroundColor: colors.chipBg, borderColor: colors.chipBorder }]}
|
||||
onPress={() => handleHistorySelect(item)}
|
||||
activeOpacity={0.8}
|
||||
>
|
||||
<Ionicons name="time-outline" size={14} color={colors.textMuted} />
|
||||
<Text style={[styles.historyChipText, { color: colors.text }]} numberOfLines={1}>
|
||||
{item}
|
||||
</Text>
|
||||
</TouchableOpacity>
|
||||
))}
|
||||
</ScrollView>
|
||||
</View>
|
||||
) : null}
|
||||
|
||||
{/* Grid */}
|
||||
<FlatList
|
||||
data={lexiconPlants}
|
||||
numColumns={3}
|
||||
keyExtractor={(_, i) => i.toString()}
|
||||
contentContainerStyle={styles.grid}
|
||||
columnWrapperStyle={styles.gridRow}
|
||||
showsVerticalScrollIndicator={false}
|
||||
initialNumToRender={12}
|
||||
maxToRenderPerBatch={6}
|
||||
windowSize={3}
|
||||
ListEmptyComponent={
|
||||
<View style={styles.empty}>
|
||||
<Text style={{ color: colors.textMuted }}>{t.noResults}</Text>
|
||||
</View>
|
||||
}
|
||||
renderItem={({ item }) => (
|
||||
<TouchableOpacity
|
||||
style={[styles.card, { backgroundColor: colors.cardBg, borderColor: colors.cardBorder, shadowColor: colors.cardShadow }]}
|
||||
activeOpacity={0.8}
|
||||
onPress={() => setSelectedItem(item as any)}
|
||||
>
|
||||
<SafeImage
|
||||
uri={item.imageUri}
|
||||
categories={item.categories}
|
||||
fallbackMode="category"
|
||||
placeholderLabel={item.name}
|
||||
style={styles.cardImage}
|
||||
/>
|
||||
<View style={styles.cardContent}>
|
||||
<Text style={[styles.cardName, { color: colors.text }]} numberOfLines={1}>
|
||||
{item.name}
|
||||
</Text>
|
||||
<Text style={[styles.cardBotanical, { color: colors.textMuted }]} numberOfLines={1}>
|
||||
{item.botanicalName}
|
||||
</Text>
|
||||
</View>
|
||||
</TouchableOpacity>
|
||||
)}
|
||||
/>
|
||||
</SafeAreaView>
|
||||
);
|
||||
}
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
container: { flex: 1, overflow: 'hidden' },
|
||||
header: {
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
paddingHorizontal: 20,
|
||||
paddingBottom: 16,
|
||||
borderBottomWidth: 1,
|
||||
gap: 14,
|
||||
},
|
||||
backBtn: { marginLeft: -8, padding: 4 },
|
||||
title: { fontSize: 19, fontWeight: '700', letterSpacing: 0.2 },
|
||||
searchBar: {
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
borderWidth: 1,
|
||||
borderRadius: 16,
|
||||
paddingHorizontal: 14,
|
||||
paddingVertical: 10,
|
||||
gap: 10,
|
||||
shadowOffset: { width: 0, height: 2 },
|
||||
shadowOpacity: 0.14,
|
||||
shadowRadius: 8,
|
||||
elevation: 2,
|
||||
},
|
||||
searchInput: { flex: 1, fontSize: 15 },
|
||||
historySection: { paddingHorizontal: 20, paddingTop: 12, paddingBottom: 8 },
|
||||
historyHeader: {
|
||||
flexDirection: 'row',
|
||||
justifyContent: 'space-between',
|
||||
alignItems: 'center',
|
||||
marginBottom: 8,
|
||||
},
|
||||
historyTitle: {
|
||||
fontSize: 11,
|
||||
fontWeight: '700',
|
||||
letterSpacing: 0.8,
|
||||
textTransform: 'uppercase',
|
||||
},
|
||||
clearHistoryText: { fontSize: 12, fontWeight: '700' },
|
||||
historyContent: { gap: 8, paddingRight: 20 },
|
||||
historyChip: {
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
gap: 6,
|
||||
borderWidth: 1,
|
||||
borderRadius: 16,
|
||||
paddingHorizontal: 10,
|
||||
paddingVertical: 8,
|
||||
},
|
||||
historyChipText: { fontSize: 12, fontWeight: '600' },
|
||||
grid: { padding: 20, paddingBottom: 40 },
|
||||
gridRow: { gap: 10, marginBottom: 10 },
|
||||
card: {
|
||||
flex: 1,
|
||||
borderRadius: 18,
|
||||
borderWidth: 1,
|
||||
overflow: 'hidden',
|
||||
shadowOffset: { width: 0, height: 2 },
|
||||
shadowOpacity: 0.14,
|
||||
shadowRadius: 6,
|
||||
elevation: 2,
|
||||
},
|
||||
cardImage: { width: '100%', aspectRatio: 1, resizeMode: 'cover' },
|
||||
cardContent: { padding: 8 },
|
||||
cardName: { fontSize: 12, fontWeight: '700' },
|
||||
cardBotanical: { fontSize: 9, fontStyle: 'italic' },
|
||||
empty: { paddingVertical: 40, alignItems: 'center' },
|
||||
aiSearchBtn: {
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
paddingVertical: 12,
|
||||
paddingHorizontal: 16,
|
||||
borderRadius: 14,
|
||||
borderWidth: 1,
|
||||
borderStyle: 'dashed',
|
||||
gap: 10,
|
||||
},
|
||||
aiSearchText: {
|
||||
fontSize: 14,
|
||||
fontWeight: '600',
|
||||
},
|
||||
errorBox: {
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
padding: 12,
|
||||
borderRadius: 12,
|
||||
gap: 10,
|
||||
},
|
||||
errorText: {
|
||||
fontSize: 14,
|
||||
fontWeight: '500',
|
||||
flex: 1,
|
||||
},
|
||||
clearAiResultsBtn: {
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
alignSelf: 'flex-start',
|
||||
paddingVertical: 6,
|
||||
paddingHorizontal: 12,
|
||||
borderRadius: 20,
|
||||
gap: 6,
|
||||
},
|
||||
});
|
||||
|
|
@ -0,0 +1,254 @@
|
|||
import React, { useEffect, useRef } from 'react';
|
||||
import {
|
||||
View,
|
||||
Text,
|
||||
StyleSheet,
|
||||
TouchableOpacity,
|
||||
Animated,
|
||||
Dimensions,
|
||||
Image,
|
||||
} from 'react-native';
|
||||
import { Ionicons } from '@expo/vector-icons';
|
||||
import { router } from 'expo-router';
|
||||
import { useApp } from '../context/AppContext';
|
||||
import { useColors } from '../constants/Colors';
|
||||
import { ThemeBackdrop } from '../components/ThemeBackdrop';
|
||||
|
||||
const { height: SCREEN_H, width: SCREEN_W } = Dimensions.get('window');
|
||||
|
||||
export default function OnboardingScreen() {
|
||||
const { isDarkMode, colorPalette, t } = useApp();
|
||||
const colors = useColors(isDarkMode, colorPalette);
|
||||
|
||||
const FEATURES = [
|
||||
{ icon: 'camera-outline' as const, label: t.onboardingFeatureScan },
|
||||
{ icon: 'notifications-outline' as const, label: t.onboardingFeatureReminder },
|
||||
{ icon: 'book-outline' as const, label: t.onboardingFeatureLexicon },
|
||||
];
|
||||
|
||||
// Entrance animations
|
||||
const logoAnim = useRef(new Animated.Value(0)).current;
|
||||
const logoScale = useRef(new Animated.Value(0.85)).current;
|
||||
const featuresAnim = useRef(new Animated.Value(0)).current;
|
||||
const buttonsAnim = useRef(new Animated.Value(0)).current;
|
||||
const featureAnims = useRef(FEATURES.map(() => new Animated.Value(0))).current;
|
||||
|
||||
useEffect(() => {
|
||||
Animated.sequence([
|
||||
Animated.parallel([
|
||||
Animated.timing(logoAnim, { toValue: 1, duration: 700, useNativeDriver: true }),
|
||||
Animated.spring(logoScale, { toValue: 1, tension: 50, friction: 8, useNativeDriver: true }),
|
||||
]),
|
||||
Animated.stagger(100, featureAnims.map(anim =>
|
||||
Animated.timing(anim, { toValue: 1, duration: 400, useNativeDriver: true })
|
||||
)),
|
||||
Animated.timing(buttonsAnim, { toValue: 1, duration: 400, useNativeDriver: true }),
|
||||
]).start();
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<View style={[styles.container, { backgroundColor: colors.background }]}>
|
||||
<ThemeBackdrop colors={colors} />
|
||||
|
||||
{/* Logo-Bereich */}
|
||||
<Animated.View
|
||||
style={[
|
||||
styles.heroSection,
|
||||
{ opacity: logoAnim, transform: [{ scale: logoScale }] },
|
||||
]}
|
||||
>
|
||||
<View style={[styles.iconContainer, { shadowColor: colors.primary }]}>
|
||||
<Image
|
||||
source={require('../assets/icon.png')}
|
||||
style={styles.appIcon}
|
||||
resizeMode="cover"
|
||||
/>
|
||||
</View>
|
||||
|
||||
<Text style={[styles.appName, { color: colors.text }]}>GreenLens</Text>
|
||||
<Text style={[styles.tagline, { color: colors.textSecondary }]}>
|
||||
{t.onboardingTagline}
|
||||
</Text>
|
||||
</Animated.View>
|
||||
|
||||
{/* Feature-Liste */}
|
||||
<View style={styles.featuresSection}>
|
||||
{FEATURES.map((feat, i) => (
|
||||
<Animated.View
|
||||
key={feat.label}
|
||||
style={[
|
||||
styles.featureRow,
|
||||
{
|
||||
backgroundColor: colors.surface + '88', // Semi-transparent for backdrop effect
|
||||
borderColor: colors.border,
|
||||
opacity: featureAnims[i],
|
||||
transform: [{
|
||||
translateY: featureAnims[i].interpolate({
|
||||
inputRange: [0, 1],
|
||||
outputRange: [20, 0],
|
||||
}),
|
||||
}],
|
||||
},
|
||||
]}
|
||||
>
|
||||
<View style={[styles.featureIcon, { backgroundColor: colors.primary + '15' }]}>
|
||||
<Ionicons name={feat.icon} size={22} color={colors.primary} />
|
||||
</View>
|
||||
<Text style={[styles.featureText, { color: colors.text }]}>{feat.label}</Text>
|
||||
</Animated.View>
|
||||
))}
|
||||
</View>
|
||||
|
||||
{/* Buttons */}
|
||||
<Animated.View style={[styles.buttonsSection, { opacity: buttonsAnim }]}>
|
||||
<TouchableOpacity
|
||||
style={[styles.primaryBtn, { backgroundColor: colors.primary }]}
|
||||
onPress={() => router.push('/scanner')}
|
||||
activeOpacity={0.85}
|
||||
>
|
||||
<Ionicons name="scan" size={20} color={colors.onPrimary} />
|
||||
<Text style={[styles.primaryBtnText, { color: colors.onPrimary }]}>
|
||||
{t.onboardingScanBtn}
|
||||
</Text>
|
||||
</TouchableOpacity>
|
||||
|
||||
<View style={styles.authActions}>
|
||||
<TouchableOpacity
|
||||
style={[styles.secondaryBtn, { borderColor: colors.primary, backgroundColor: colors.surface }]}
|
||||
onPress={() => router.push('/auth/signup')}
|
||||
activeOpacity={0.82}
|
||||
>
|
||||
<Text style={[styles.secondaryBtnText, { color: colors.primary }]}>
|
||||
{t.onboardingRegister}
|
||||
</Text>
|
||||
</TouchableOpacity>
|
||||
|
||||
<TouchableOpacity
|
||||
style={[styles.secondaryBtn, { borderColor: colors.borderStrong, backgroundColor: colors.surface }]}
|
||||
onPress={() => router.push('/auth/login')}
|
||||
activeOpacity={0.82}
|
||||
>
|
||||
<Text style={[styles.secondaryBtnText, { color: colors.text }]}>
|
||||
{t.onboardingLogin}
|
||||
</Text>
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
|
||||
<Text style={[styles.disclaimer, { color: colors.textMuted }]}>
|
||||
{t.onboardingDisclaimer}
|
||||
</Text>
|
||||
</Animated.View>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
container: {
|
||||
flex: 1,
|
||||
paddingHorizontal: 32,
|
||||
paddingTop: SCREEN_H * 0.12,
|
||||
paddingBottom: 40,
|
||||
},
|
||||
heroSection: {
|
||||
alignItems: 'center',
|
||||
marginBottom: 40,
|
||||
},
|
||||
iconContainer: {
|
||||
width: 120,
|
||||
height: 120,
|
||||
borderRadius: 28,
|
||||
backgroundColor: '#fff',
|
||||
elevation: 8,
|
||||
shadowOffset: { width: 0, height: 4 },
|
||||
shadowOpacity: 0.15,
|
||||
shadowRadius: 12,
|
||||
marginBottom: 24,
|
||||
overflow: 'hidden',
|
||||
},
|
||||
appIcon: {
|
||||
width: '100%',
|
||||
height: '100%',
|
||||
},
|
||||
appName: {
|
||||
fontSize: 40,
|
||||
fontWeight: '900',
|
||||
letterSpacing: -1.5,
|
||||
marginBottom: 4,
|
||||
},
|
||||
tagline: {
|
||||
fontSize: 17,
|
||||
fontWeight: '500',
|
||||
opacity: 0.8,
|
||||
},
|
||||
featuresSection: {
|
||||
gap: 12,
|
||||
flex: 1,
|
||||
justifyContent: 'center',
|
||||
},
|
||||
featureRow: {
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
gap: 16,
|
||||
paddingHorizontal: 20,
|
||||
paddingVertical: 16,
|
||||
borderRadius: 20,
|
||||
borderWidth: 1,
|
||||
},
|
||||
featureIcon: {
|
||||
width: 44,
|
||||
height: 44,
|
||||
borderRadius: 14,
|
||||
justifyContent: 'center',
|
||||
alignItems: 'center',
|
||||
},
|
||||
featureText: {
|
||||
flex: 1,
|
||||
fontSize: 15,
|
||||
fontWeight: '600',
|
||||
letterSpacing: 0.1,
|
||||
},
|
||||
buttonsSection: {
|
||||
gap: 16,
|
||||
marginTop: 20,
|
||||
},
|
||||
primaryBtn: {
|
||||
height: 58,
|
||||
borderRadius: 20,
|
||||
flexDirection: 'row',
|
||||
justifyContent: 'center',
|
||||
alignItems: 'center',
|
||||
gap: 12,
|
||||
elevation: 4,
|
||||
shadowColor: '#000',
|
||||
shadowOffset: { width: 0, height: 2 },
|
||||
shadowOpacity: 0.1,
|
||||
shadowRadius: 4,
|
||||
},
|
||||
primaryBtnText: {
|
||||
fontSize: 17,
|
||||
fontWeight: '700',
|
||||
},
|
||||
authActions: {
|
||||
flexDirection: 'row',
|
||||
gap: 12,
|
||||
},
|
||||
secondaryBtn: {
|
||||
flex: 1,
|
||||
height: 54,
|
||||
borderRadius: 20,
|
||||
borderWidth: 1.5,
|
||||
justifyContent: 'center',
|
||||
alignItems: 'center',
|
||||
},
|
||||
secondaryBtnText: {
|
||||
fontSize: 15,
|
||||
fontWeight: '600',
|
||||
},
|
||||
disclaimer: {
|
||||
fontSize: 12,
|
||||
textAlign: 'center',
|
||||
opacity: 0.6,
|
||||
marginTop: 8,
|
||||
},
|
||||
});
|
||||
|
||||
|
|
@ -0,0 +1,657 @@
|
|||
import React, { useState } from 'react';
|
||||
import { View, Text, TouchableOpacity, ScrollView, StyleSheet, Modal, ActivityIndicator, Alert, Platform } from 'react-native';
|
||||
import { SafeAreaView } from 'react-native-safe-area-context';
|
||||
import { Ionicons } from '@expo/vector-icons';
|
||||
import { useRouter } from 'expo-router';
|
||||
import RevenueCatUI, { PAYWALL_RESULT } from "react-native-purchases-ui";
|
||||
import { usePostHog } from 'posthog-react-native';
|
||||
import { useApp } from '../../context/AppContext';
|
||||
import { useColors } from '../../constants/Colors';
|
||||
import { ThemeBackdrop } from '../../components/ThemeBackdrop';
|
||||
import { Language } from '../../types';
|
||||
import { PurchaseProductId } from '../../services/backend/contracts';
|
||||
|
||||
const getBillingCopy = (language: Language) => {
|
||||
if (language === 'de') {
|
||||
return {
|
||||
title: 'Abo und Credits',
|
||||
planLabel: 'Aktueller Plan',
|
||||
planFree: 'Free',
|
||||
planPro: 'Pro',
|
||||
creditsAvailableLabel: 'Verfügbare Credits',
|
||||
manageSubscription: 'Abo verwalten',
|
||||
subscriptionTitle: 'Abos',
|
||||
subscriptionHint: 'Wähle ein Abo und schalte stärkere KI-Scans sowie mehr Credits frei.',
|
||||
freePlanName: 'Free',
|
||||
freePlanPrice: '0 EUR / Monat',
|
||||
proPlanName: 'Pro',
|
||||
proPlanPrice: '4.99 EUR / Monat',
|
||||
proBadgeText: 'EMPFOHLEN',
|
||||
proYearlyPlanName: 'Pro',
|
||||
proYearlyPlanPrice: '39.99 EUR / Jahr',
|
||||
proYearlyBadgeText: 'SPAREN',
|
||||
proBenefits: [
|
||||
'250 Credits jeden Monat',
|
||||
'Pro-Scans mit GPT-5.4',
|
||||
'Unbegrenzte Historie & Galerie',
|
||||
'KI-Pflanzendoktor inklusive',
|
||||
'Priorisierter Support'
|
||||
],
|
||||
topupTitle: 'Credits Aufladen',
|
||||
topupSmall: '25 Credits – 1,99 €',
|
||||
topupMedium: '120 Credits – 6,99 €',
|
||||
topupLarge: '300 Credits – 12,99 €',
|
||||
topupBestValue: 'BESTES ANGEBOT',
|
||||
cancelTitle: 'Schade, dass du gehst',
|
||||
cancelQuestion: 'Dürfen wir fragen, warum du kündigst?',
|
||||
reasonTooExpensive: 'Es ist mir zu teuer',
|
||||
reasonNotUsing: 'Ich nutze die App zu selten',
|
||||
reasonOther: 'Ein anderer Grund',
|
||||
offerTitle: 'Ein Geschenk für dich!',
|
||||
offerText: 'Bleib dabei und erhalte den nächsten Monat für nur 2,49 € (50% Rabatt).',
|
||||
offerAccept: 'Rabatt sichern',
|
||||
offerDecline: 'Nein, Kündigung fortsetzen',
|
||||
confirmCancelBtn: 'Jetzt kündigen',
|
||||
};
|
||||
} else if (language === 'es') {
|
||||
return {
|
||||
title: 'Suscripción y Créditos',
|
||||
planLabel: 'Plan Actual',
|
||||
planFree: 'Gratis',
|
||||
planPro: 'Pro',
|
||||
creditsAvailableLabel: 'Créditos Disponibles',
|
||||
manageSubscription: 'Administrar Suscripción',
|
||||
subscriptionTitle: 'Suscripciones',
|
||||
subscriptionHint: 'Elige un plan y desbloquea escaneos con IA más potentes y más créditos.',
|
||||
freePlanName: 'Gratis',
|
||||
freePlanPrice: '0 EUR / Mes',
|
||||
proPlanName: 'Pro',
|
||||
proPlanPrice: '4.99 EUR / Mes',
|
||||
proBadgeText: 'RECOMENDADO',
|
||||
proYearlyPlanName: 'Pro',
|
||||
proYearlyPlanPrice: '39.99 EUR / Año',
|
||||
proYearlyBadgeText: 'AHORRAR',
|
||||
proBenefits: [
|
||||
'250 créditos cada mes',
|
||||
'Escaneos Pro con GPT-5.4',
|
||||
'Historial y galería ilimitados',
|
||||
'Doctor de plantas de IA incluido',
|
||||
'Soporte prioritario'
|
||||
],
|
||||
topupTitle: 'Recargar Créditos',
|
||||
topupSmall: '25 Créditos – 1,99 €',
|
||||
topupMedium: '120 Créditos – 6,99 €',
|
||||
topupLarge: '300 Créditos – 12,99 €',
|
||||
topupBestValue: 'MEJOR OFERTA',
|
||||
cancelTitle: 'Lamentamos verte ir',
|
||||
cancelQuestion: '¿Podemos saber por qué cancelas?',
|
||||
reasonTooExpensive: 'Es muy caro',
|
||||
reasonNotUsing: 'No lo uso suficiente',
|
||||
reasonOther: 'Otra razón',
|
||||
offerTitle: '¡Un regalo para ti!',
|
||||
offerText: 'Quédate y obtén el próximo mes por solo 2,49 € (50% de descuento).',
|
||||
offerAccept: 'Aceptar descuento',
|
||||
offerDecline: 'No, continuar cancelando',
|
||||
confirmCancelBtn: 'Cancelar ahora',
|
||||
};
|
||||
}
|
||||
return {
|
||||
title: 'Billing & Credits',
|
||||
planLabel: 'Current Plan',
|
||||
planFree: 'Free',
|
||||
planPro: 'Pro',
|
||||
creditsAvailableLabel: 'Available Credits',
|
||||
manageSubscription: 'Manage Subscription',
|
||||
subscriptionTitle: 'Subscriptions',
|
||||
subscriptionHint: 'Choose a plan to unlock stronger AI scans and more credits.',
|
||||
freePlanName: 'Free',
|
||||
freePlanPrice: '0 EUR / Month',
|
||||
proPlanName: 'Pro',
|
||||
proPlanPrice: '4.99 EUR / Month',
|
||||
proBadgeText: 'RECOMMENDED',
|
||||
proYearlyPlanName: 'Pro',
|
||||
proYearlyPlanPrice: '39.99 EUR / Year',
|
||||
proYearlyBadgeText: 'SAVE',
|
||||
proBenefits: [
|
||||
'250 credits every month',
|
||||
'Pro scans with GPT-5.4',
|
||||
'Unlimited history & gallery',
|
||||
'AI Plant Doctor included',
|
||||
'Priority support'
|
||||
],
|
||||
topupTitle: 'Topup Credits',
|
||||
topupSmall: '25 Credits – €1.99',
|
||||
topupMedium: '120 Credits – €6.99',
|
||||
topupLarge: '300 Credits – €12.99',
|
||||
topupBestValue: 'BEST VALUE',
|
||||
cancelTitle: 'Sorry to see you go',
|
||||
cancelQuestion: 'May we ask why you are cancelling?',
|
||||
reasonTooExpensive: 'It is too expensive',
|
||||
reasonNotUsing: 'I don\'t use it enough',
|
||||
reasonOther: 'Other reason',
|
||||
offerTitle: 'A gift for you!',
|
||||
offerText: 'Stay with us and get your next month for just €2.49 (50% off).',
|
||||
offerAccept: 'Claim discount',
|
||||
offerDecline: 'No, continue cancelling',
|
||||
confirmCancelBtn: 'Cancel now',
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
||||
export default function BillingScreen() {
|
||||
const router = useRouter();
|
||||
const { isDarkMode, language, billingSummary, isLoadingBilling, simulatePurchase, simulateWebhookEvent, appearanceMode, colorPalette, session } = useApp();
|
||||
const colors = useColors(isDarkMode, colorPalette);
|
||||
const copy = getBillingCopy(language);
|
||||
const posthog = usePostHog();
|
||||
|
||||
const [subModalVisible, setSubModalVisible] = useState(false);
|
||||
const [isUpdating, setIsUpdating] = useState(false);
|
||||
|
||||
// Cancel Flow State
|
||||
const [cancelStep, setCancelStep] = useState<'none' | 'survey' | 'offer'>('none');
|
||||
const [cancelReason, setCancelReason] = useState<string | null>(null);
|
||||
|
||||
const planId = billingSummary?.entitlement?.plan || 'free';
|
||||
const credits = isLoadingBilling && !billingSummary ? '...' : (billingSummary?.credits?.available ?? '--');
|
||||
|
||||
const handlePurchase = async (productId: PurchaseProductId) => {
|
||||
setIsUpdating(true);
|
||||
try {
|
||||
const paywallResult: PAYWALL_RESULT = await RevenueCatUI.presentPaywall();
|
||||
switch (paywallResult) {
|
||||
case PAYWALL_RESULT.NOT_PRESENTED:
|
||||
case PAYWALL_RESULT.ERROR:
|
||||
case PAYWALL_RESULT.CANCELLED:
|
||||
break;
|
||||
case PAYWALL_RESULT.PURCHASED:
|
||||
case PAYWALL_RESULT.RESTORED:
|
||||
await simulatePurchase(productId);
|
||||
setSubModalVisible(false);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
} catch (e) {
|
||||
const msg = e instanceof Error ? e.message : String(e);
|
||||
console.error('Payment failed', e);
|
||||
if (__DEV__ && (msg.toLowerCase().includes('native') || msg.toLowerCase().includes('not found') || msg.toLowerCase().includes('undefined'))) {
|
||||
// Fallback for Expo Go since RevenueCat native module is not available
|
||||
console.log('Falling back to simulated purchase in Expo Go');
|
||||
await simulatePurchase(productId);
|
||||
setSubModalVisible(false);
|
||||
} else {
|
||||
Alert.alert('Unerwarteter Fehler', msg);
|
||||
}
|
||||
} finally {
|
||||
setIsUpdating(false);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
const handleSimulatePurchase = async (productId: PurchaseProductId) => {
|
||||
// Fallback for free option
|
||||
setIsUpdating(true);
|
||||
await simulatePurchase(productId);
|
||||
setIsUpdating(false);
|
||||
setSubModalVisible(false);
|
||||
};
|
||||
|
||||
const handleDowngrade = async () => {
|
||||
if (planId === 'free') return; // already on free plan
|
||||
setCancelStep('survey');
|
||||
};
|
||||
|
||||
const finalizeCancel = async () => {
|
||||
setIsUpdating(true);
|
||||
try {
|
||||
await simulateWebhookEvent('entitlement_revoked');
|
||||
setCancelStep('none');
|
||||
setSubModalVisible(false);
|
||||
} catch (e) {
|
||||
console.error('Downgrade failed', e);
|
||||
} finally {
|
||||
setIsUpdating(false);
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<View style={{ flex: 1, backgroundColor: colors.background }}>
|
||||
<ThemeBackdrop colors={colors} />
|
||||
<SafeAreaView style={styles.safeArea} edges={['top']}>
|
||||
<View style={styles.header}>
|
||||
<TouchableOpacity onPress={() => router.back()} style={styles.backButton}>
|
||||
<Ionicons name="arrow-back" size={24} color={colors.text} />
|
||||
</TouchableOpacity>
|
||||
<Text style={[styles.title, { color: colors.text }]}>{copy.title}</Text>
|
||||
<View style={{ width: 40 }} />
|
||||
</View>
|
||||
|
||||
<ScrollView contentContainerStyle={styles.scrollContent}>
|
||||
{isLoadingBilling ? (
|
||||
<ActivityIndicator size="large" color={colors.primary} style={{ marginTop: 40 }} />
|
||||
) : (
|
||||
<>
|
||||
<View style={[styles.card, { backgroundColor: colors.cardBg, borderColor: colors.border }]}>
|
||||
<Text style={[styles.sectionTitle, { color: colors.text }]}>{copy.planLabel}</Text>
|
||||
<View style={[styles.row, { marginBottom: 16 }]}>
|
||||
<Text style={[styles.value, { color: colors.text }]}>
|
||||
{planId === 'pro' ? copy.planPro : copy.planFree}
|
||||
</Text>
|
||||
<TouchableOpacity
|
||||
style={[styles.manageBtn, { backgroundColor: colors.primary }]}
|
||||
onPress={() => setSubModalVisible(true)}
|
||||
>
|
||||
<Text style={styles.manageBtnText}>{copy.manageSubscription}</Text>
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
|
||||
<Text style={[styles.sectionTitle, { color: colors.text }]}>{copy.creditsAvailableLabel}</Text>
|
||||
<Text style={[styles.creditsValue, { color: colors.text }]}>{credits}</Text>
|
||||
</View>
|
||||
|
||||
<View style={[styles.card, { backgroundColor: colors.cardBg, borderColor: colors.border }]}>
|
||||
<Text style={[styles.sectionTitle, { color: colors.text }]}>{copy.topupTitle}</Text>
|
||||
<View style={{ gap: 10, marginTop: 8 }}>
|
||||
{([
|
||||
{ id: 'topup_small' as PurchaseProductId, label: copy.topupSmall },
|
||||
{ id: 'topup_medium' as PurchaseProductId, label: copy.topupMedium, badge: copy.topupBestValue },
|
||||
{ id: 'topup_large' as PurchaseProductId, label: copy.topupLarge },
|
||||
] as { id: PurchaseProductId; label: string; badge?: string }[]).map((pack) => (
|
||||
<TouchableOpacity
|
||||
key={pack.id}
|
||||
style={[
|
||||
styles.topupBtn,
|
||||
{
|
||||
borderColor: pack.badge ? colors.primary : colors.border,
|
||||
backgroundColor: pack.badge ? colors.primary + '15' : 'transparent',
|
||||
flexDirection: 'row',
|
||||
justifyContent: 'space-between',
|
||||
alignItems: 'center',
|
||||
paddingHorizontal: 16,
|
||||
paddingVertical: 12,
|
||||
}
|
||||
]}
|
||||
onPress={() => handlePurchase(pack.id)}
|
||||
disabled={isUpdating}
|
||||
>
|
||||
<View style={{ flexDirection: 'row', alignItems: 'center', gap: 8 }}>
|
||||
<Ionicons name="flash" size={18} color={colors.primary} />
|
||||
<Text style={[styles.topupText, { color: colors.text }]}>
|
||||
{isUpdating ? '...' : pack.label}
|
||||
</Text>
|
||||
</View>
|
||||
{pack.badge && (
|
||||
<View style={{ backgroundColor: colors.primary, borderRadius: 4, paddingHorizontal: 6, paddingVertical: 2 }}>
|
||||
<Text style={{ color: '#fff', fontSize: 10, fontWeight: '700' }}>{pack.badge}</Text>
|
||||
</View>
|
||||
)}
|
||||
</TouchableOpacity>
|
||||
))}
|
||||
</View>
|
||||
</View>
|
||||
</>
|
||||
)}
|
||||
</ScrollView>
|
||||
</SafeAreaView>
|
||||
|
||||
<Modal visible={subModalVisible} transparent animationType="slide" onRequestClose={() => setSubModalVisible(false)}>
|
||||
<View style={styles.modalOverlay}>
|
||||
<View style={[styles.modalContent, { backgroundColor: colors.cardBg, borderColor: colors.border }]}>
|
||||
<View style={styles.modalHeader}>
|
||||
<Text style={[styles.modalTitle, { color: colors.text }]}>
|
||||
{cancelStep === 'survey' ? copy.cancelTitle : cancelStep === 'offer' ? copy.offerTitle : copy.subscriptionTitle}
|
||||
</Text>
|
||||
<TouchableOpacity onPress={() => {
|
||||
setSubModalVisible(false);
|
||||
setCancelStep('none');
|
||||
}}>
|
||||
<Ionicons name="close" size={24} color={colors.text} />
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
|
||||
{cancelStep === 'none' ? (
|
||||
<>
|
||||
<Text style={[styles.modalHint, { color: colors.text + '80' }]}>{copy.subscriptionHint}</Text>
|
||||
<View style={styles.plansContainer}>
|
||||
<TouchableOpacity
|
||||
style={[
|
||||
styles.planOption,
|
||||
{ borderColor: colors.border },
|
||||
planId === 'free' && { borderColor: colors.primary, backgroundColor: colors.primary + '10' }
|
||||
]}
|
||||
onPress={handleDowngrade}
|
||||
disabled={isUpdating}
|
||||
>
|
||||
<View>
|
||||
<Text style={[styles.planName, { color: colors.text }]}>{copy.freePlanName}</Text>
|
||||
<Text style={[styles.planPrice, { color: colors.text + '80' }]}>{copy.freePlanPrice}</Text>
|
||||
</View>
|
||||
{planId === 'free' && <Ionicons name="checkmark-circle" size={24} color={colors.primary} />}
|
||||
</TouchableOpacity>
|
||||
|
||||
<TouchableOpacity
|
||||
style={[
|
||||
styles.planOption,
|
||||
{ borderColor: colors.border },
|
||||
planId === 'pro' && { borderColor: colors.primary, backgroundColor: colors.primary + '10' }
|
||||
]}
|
||||
onPress={() => handlePurchase('monthly_pro')}
|
||||
disabled={isUpdating}
|
||||
>
|
||||
<View style={{ flex: 1 }}>
|
||||
<View style={styles.planHeaderRow}>
|
||||
<Text style={[styles.planName, { color: colors.text }]}>{copy.proPlanName}</Text>
|
||||
<View style={[styles.proBadge, { backgroundColor: colors.primary }]}>
|
||||
<Text style={styles.proBadgeText}>{copy.proBadgeText}</Text>
|
||||
</View>
|
||||
</View>
|
||||
<Text style={[styles.planPrice, { color: colors.text + '80' }]}>{copy.proPlanPrice}</Text>
|
||||
|
||||
<View style={styles.proBenefits}>
|
||||
{copy.proBenefits.map((b, i) => (
|
||||
<View key={i} style={styles.benefitRow}>
|
||||
<Ionicons name="checkmark" size={14} color={colors.primary} />
|
||||
<Text style={[styles.benefitText, { color: colors.textSecondary }]}>{b}</Text>
|
||||
</View>
|
||||
))}
|
||||
</View>
|
||||
</View>
|
||||
{planId === 'pro' && <Ionicons name="checkmark-circle" size={24} color={colors.primary} />}
|
||||
</TouchableOpacity>
|
||||
|
||||
<TouchableOpacity
|
||||
style={[
|
||||
styles.planOption,
|
||||
{ borderColor: colors.border },
|
||||
planId === 'pro' && { borderColor: colors.primary, backgroundColor: colors.primary + '10' }
|
||||
]}
|
||||
onPress={() => handlePurchase('yearly_pro')}
|
||||
disabled={isUpdating}
|
||||
>
|
||||
<View style={{ flex: 1 }}>
|
||||
<View style={styles.planHeaderRow}>
|
||||
<Text style={[styles.planName, { color: colors.text }]}>{copy.proYearlyPlanName}</Text>
|
||||
<View style={[styles.proBadge, { backgroundColor: colors.primary }]}>
|
||||
<Text style={styles.proBadgeText}>{copy.proYearlyBadgeText}</Text>
|
||||
</View>
|
||||
</View>
|
||||
<Text style={[styles.planPrice, { color: colors.text + '80' }]}>{copy.proYearlyPlanPrice}</Text>
|
||||
|
||||
<View style={styles.proBenefits}>
|
||||
{copy.proBenefits.map((b, i) => (
|
||||
<View key={i} style={styles.benefitRow}>
|
||||
<Ionicons name="checkmark" size={14} color={colors.primary} />
|
||||
<Text style={[styles.benefitText, { color: colors.textSecondary }]}>{b}</Text>
|
||||
</View>
|
||||
))}
|
||||
</View>
|
||||
</View>
|
||||
{planId === 'pro' && <Ionicons name="checkmark-circle" size={24} color={colors.primary} />}
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
</>
|
||||
) : cancelStep === 'survey' ? (
|
||||
<View style={styles.cancelFlowContainer}>
|
||||
<Text style={[styles.cancelHint, { color: colors.textSecondary }]}>{copy.cancelQuestion}</Text>
|
||||
<View style={styles.reasonList}>
|
||||
{[
|
||||
{ id: 'expensive', label: copy.reasonTooExpensive, icon: 'cash-outline' },
|
||||
{ id: 'not_using', label: copy.reasonNotUsing, icon: 'calendar-outline' },
|
||||
{ id: 'other', label: copy.reasonOther, icon: 'ellipsis-horizontal-outline' },
|
||||
].map((reason) => (
|
||||
<TouchableOpacity
|
||||
key={reason.id}
|
||||
style={[styles.reasonOption, { borderColor: colors.border }]}
|
||||
onPress={() => {
|
||||
setCancelReason(reason.id);
|
||||
setCancelStep('offer');
|
||||
}}
|
||||
>
|
||||
<View style={[styles.reasonIcon, { backgroundColor: colors.surfaceMuted }]}>
|
||||
<Ionicons name={reason.icon as any} size={20} color={colors.textSecondary} />
|
||||
</View>
|
||||
<Text style={[styles.reasonText, { color: colors.text }]}>{reason.label}</Text>
|
||||
<Ionicons name="chevron-forward" size={18} color={colors.borderStrong} />
|
||||
</TouchableOpacity>
|
||||
))}
|
||||
</View>
|
||||
</View>
|
||||
) : (
|
||||
<View style={styles.cancelFlowContainer}>
|
||||
<View style={[styles.offerCard, { backgroundColor: colors.primarySoft }]}>
|
||||
<View style={[styles.offerIconWrap, { backgroundColor: colors.primary }]}>
|
||||
<Ionicons name="gift" size={28} color="#fff" />
|
||||
</View>
|
||||
<Text style={[styles.offerText, { color: colors.text }]}>{copy.offerText}</Text>
|
||||
|
||||
<TouchableOpacity
|
||||
style={[styles.offerAcceptBtn, { backgroundColor: colors.primary }]}
|
||||
onPress={() => {
|
||||
// Handle applying discount here (future implementation)
|
||||
Alert.alert('Erfolg', 'Rabatt angewendet! (Mock)');
|
||||
setCancelStep('none');
|
||||
setSubModalVisible(false);
|
||||
}}
|
||||
>
|
||||
<Text style={styles.offerAcceptBtnText}>{copy.offerAccept}</Text>
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
|
||||
<TouchableOpacity
|
||||
style={styles.offerDeclineBtn}
|
||||
onPress={finalizeCancel}
|
||||
disabled={isUpdating}
|
||||
>
|
||||
<Text style={[styles.offerDeclineBtnText, { color: colors.textMuted }]}>{copy.offerDecline}</Text>
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
)}
|
||||
{isUpdating && cancelStep === 'none' && <ActivityIndicator color={colors.primary} style={{ marginTop: 16 }} />}
|
||||
</View>
|
||||
</View>
|
||||
</Modal>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
safeArea: { flex: 1 },
|
||||
header: { flexDirection: 'row', alignItems: 'center', padding: 16 },
|
||||
backButton: { width: 40, height: 40, justifyContent: 'center' },
|
||||
title: { flex: 1, fontSize: 20, fontWeight: '700', textAlign: 'center' },
|
||||
scrollContent: { padding: 16, gap: 16 },
|
||||
card: {
|
||||
padding: 16,
|
||||
borderRadius: 16,
|
||||
borderWidth: StyleSheet.hairlineWidth,
|
||||
},
|
||||
sectionTitle: {
|
||||
fontSize: 14,
|
||||
fontWeight: '600',
|
||||
textTransform: 'uppercase',
|
||||
letterSpacing: 0.5,
|
||||
marginBottom: 8,
|
||||
},
|
||||
row: {
|
||||
flexDirection: 'row',
|
||||
justifyContent: 'space-between',
|
||||
alignItems: 'center',
|
||||
},
|
||||
value: {
|
||||
fontSize: 18,
|
||||
fontWeight: '600',
|
||||
},
|
||||
manageBtn: {
|
||||
paddingHorizontal: 16,
|
||||
paddingVertical: 8,
|
||||
borderRadius: 20,
|
||||
},
|
||||
manageBtnText: {
|
||||
color: '#fff',
|
||||
fontSize: 14,
|
||||
fontWeight: '600',
|
||||
},
|
||||
creditsValue: {
|
||||
fontSize: 32,
|
||||
fontWeight: '700',
|
||||
},
|
||||
topupBtn: {
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
paddingVertical: 12,
|
||||
borderRadius: 12,
|
||||
borderWidth: 2,
|
||||
gap: 8,
|
||||
},
|
||||
topupText: {
|
||||
fontSize: 16,
|
||||
fontWeight: '600',
|
||||
},
|
||||
modalOverlay: {
|
||||
flex: 1,
|
||||
backgroundColor: '#00000080',
|
||||
justifyContent: 'flex-end',
|
||||
},
|
||||
modalContent: {
|
||||
borderTopLeftRadius: 24,
|
||||
borderTopRightRadius: 24,
|
||||
padding: 24,
|
||||
borderTopWidth: StyleSheet.hairlineWidth,
|
||||
paddingBottom: 40,
|
||||
},
|
||||
modalHeader: {
|
||||
flexDirection: 'row',
|
||||
justifyContent: 'space-between',
|
||||
alignItems: 'center',
|
||||
marginBottom: 8,
|
||||
},
|
||||
modalTitle: {
|
||||
fontSize: 20,
|
||||
fontWeight: '700',
|
||||
},
|
||||
modalHint: {
|
||||
fontSize: 14,
|
||||
marginBottom: 24,
|
||||
},
|
||||
plansContainer: {
|
||||
gap: 12,
|
||||
},
|
||||
planOption: {
|
||||
padding: 16,
|
||||
borderRadius: 12,
|
||||
borderWidth: 2,
|
||||
flexDirection: 'row',
|
||||
justifyContent: 'space-between',
|
||||
alignItems: 'center',
|
||||
},
|
||||
planName: {
|
||||
fontSize: 18,
|
||||
fontWeight: '600',
|
||||
},
|
||||
planPrice: {
|
||||
fontSize: 14,
|
||||
},
|
||||
planHeaderRow: {
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
gap: 8,
|
||||
marginBottom: 2,
|
||||
},
|
||||
proBadge: {
|
||||
paddingHorizontal: 8,
|
||||
paddingVertical: 2,
|
||||
borderRadius: 6,
|
||||
},
|
||||
proBadgeText: {
|
||||
color: '#fff',
|
||||
fontSize: 10,
|
||||
fontWeight: '800',
|
||||
},
|
||||
proBenefits: {
|
||||
marginTop: 12,
|
||||
gap: 6,
|
||||
},
|
||||
benefitRow: {
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
gap: 6,
|
||||
},
|
||||
benefitText: {
|
||||
fontSize: 12,
|
||||
fontWeight: '500',
|
||||
},
|
||||
cancelFlowContainer: {
|
||||
marginTop: 8,
|
||||
},
|
||||
cancelHint: {
|
||||
fontSize: 15,
|
||||
marginBottom: 16,
|
||||
},
|
||||
reasonList: {
|
||||
gap: 12,
|
||||
},
|
||||
reasonOption: {
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
padding: 16,
|
||||
borderWidth: 1,
|
||||
borderRadius: 12,
|
||||
},
|
||||
reasonIcon: {
|
||||
width: 36,
|
||||
height: 36,
|
||||
borderRadius: 18,
|
||||
justifyContent: 'center',
|
||||
alignItems: 'center',
|
||||
marginRight: 12,
|
||||
},
|
||||
reasonText: {
|
||||
flex: 1,
|
||||
fontSize: 16,
|
||||
fontWeight: '500',
|
||||
},
|
||||
offerCard: {
|
||||
borderRadius: 16,
|
||||
padding: 24,
|
||||
alignItems: 'center',
|
||||
marginBottom: 16,
|
||||
},
|
||||
offerIconWrap: {
|
||||
width: 56,
|
||||
height: 56,
|
||||
borderRadius: 28,
|
||||
justifyContent: 'center',
|
||||
alignItems: 'center',
|
||||
marginBottom: 16,
|
||||
},
|
||||
offerText: {
|
||||
fontSize: 16,
|
||||
textAlign: 'center',
|
||||
lineHeight: 24,
|
||||
marginBottom: 24,
|
||||
fontWeight: '500',
|
||||
},
|
||||
offerAcceptBtn: {
|
||||
paddingHorizontal: 24,
|
||||
paddingVertical: 14,
|
||||
borderRadius: 24,
|
||||
width: '100%',
|
||||
alignItems: 'center',
|
||||
},
|
||||
offerAcceptBtnText: {
|
||||
color: '#fff',
|
||||
fontSize: 16,
|
||||
fontWeight: '700',
|
||||
},
|
||||
offerDeclineBtn: {
|
||||
paddingVertical: 12,
|
||||
alignItems: 'center',
|
||||
},
|
||||
offerDeclineBtnText: {
|
||||
fontSize: 15,
|
||||
fontWeight: '500',
|
||||
},
|
||||
});
|
||||
|
|
@ -0,0 +1,226 @@
|
|||
import React from 'react';
|
||||
import { View, Text, TouchableOpacity, ScrollView, StyleSheet, Share, Alert } from 'react-native';
|
||||
import { SafeAreaView } from 'react-native-safe-area-context';
|
||||
import { Ionicons } from '@expo/vector-icons';
|
||||
import { useRouter } from 'expo-router';
|
||||
import { useApp } from '../../context/AppContext';
|
||||
import { useColors } from '../../constants/Colors';
|
||||
import { ThemeBackdrop } from '../../components/ThemeBackdrop';
|
||||
import { Language } from '../../types';
|
||||
|
||||
const getDataCopy = (language: Language) => {
|
||||
if (language === 'de') {
|
||||
return {
|
||||
title: 'Daten & Datenschutz',
|
||||
exportData: 'Daten exportieren',
|
||||
exportHint: 'Teilt deine Sammlung als JSON.',
|
||||
clearHistory: 'Lexikon-Verlauf loeschen',
|
||||
clearHistoryHint: 'Entfernt alle letzten Suchbegriffe.',
|
||||
clearHistoryDoneTitle: 'Verlauf geloescht',
|
||||
clearHistoryDoneMessage: 'Der Suchverlauf wurde entfernt.',
|
||||
logout: 'Abmelden',
|
||||
logoutHint: 'Zurueck zum Onboarding und Profil zuruecksetzen.',
|
||||
logoutConfirmTitle: 'Abmelden?',
|
||||
logoutConfirmMessage: 'Du wirst auf den Startbildschirm zurueckgesetzt.',
|
||||
deleteAccount: 'Konto unwiderruflich löschen',
|
||||
deleteAccountHint: 'Löscht alle deine Daten, Pflanzen und Abos permanent.',
|
||||
deleteConfirmTitle: 'Konto wirklich löschen?',
|
||||
deleteConfirmMessage: 'Achtung: Dieser Schritt kann nicht rückgängig gemacht werden. Alle deine Pflanzen, Scans und Credits gehen sofort verloren.',
|
||||
deleteActionBtn: 'Ja, dauerhaft löschen',
|
||||
genericErrorTitle: 'Fehler',
|
||||
genericErrorMessage: 'Aktion konnte nicht abgeschlossen werden.',
|
||||
};
|
||||
}
|
||||
|
||||
if (language === 'es') {
|
||||
return {
|
||||
title: 'Datos y Privacidad',
|
||||
exportData: 'Exportar Datos',
|
||||
exportHint: 'Comparte tu coleccion como JSON.',
|
||||
clearHistory: 'Borrar historial',
|
||||
clearHistoryHint: 'Elimina las busquedas recientes.',
|
||||
clearHistoryDoneTitle: 'Historial borrado',
|
||||
clearHistoryDoneMessage: 'El historial de busqueda ha sido eliminado.',
|
||||
logout: 'Cerrar sesion',
|
||||
logoutHint: 'Volver a la pantalla de inicio y reiniciar perfil.',
|
||||
logoutConfirmTitle: 'Cerrar sesion?',
|
||||
logoutConfirmMessage: 'Seras enviado a la pantalla de inicio.',
|
||||
deleteAccount: 'Eliminar cuenta permanentemente',
|
||||
deleteAccountHint: 'Elimina todos tus datos, plantas y suscripciones.',
|
||||
deleteConfirmTitle: '¿Seguro que quieres eliminar tu cuenta?',
|
||||
deleteConfirmMessage: 'Atención: Este paso no se puede deshacer. Todas tus plantas, escaneos y créditos se perderán inmediatamente.',
|
||||
deleteActionBtn: 'Sí, eliminar permanentemente',
|
||||
genericErrorTitle: 'Error',
|
||||
genericErrorMessage: 'La accion no pudo ser completada.',
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
title: 'Data & Privacy',
|
||||
exportData: 'Export Data',
|
||||
exportHint: 'Share your collection as JSON.',
|
||||
clearHistory: 'Clear Search History',
|
||||
clearHistoryHint: 'Removes recent search queries.',
|
||||
clearHistoryDoneTitle: 'History Cleared',
|
||||
clearHistoryDoneMessage: 'Search history has been removed.',
|
||||
logout: 'Log Out',
|
||||
logoutHint: 'Return to onboarding and reset profile.',
|
||||
logoutConfirmTitle: 'Log Out?',
|
||||
logoutConfirmMessage: 'You will be returned to the start screen.',
|
||||
deleteAccount: 'Delete Account Permanently',
|
||||
deleteAccountHint: 'Permanently deletes all your data, plants, and subscriptions.',
|
||||
deleteConfirmTitle: 'Are you sure?',
|
||||
deleteConfirmMessage: 'Warning: This cannot be undone. All your plants, scans, and credits will be lost immediately.',
|
||||
deleteActionBtn: 'Yes, delete permanently',
|
||||
genericErrorTitle: 'Error',
|
||||
genericErrorMessage: 'Action could not be completed.',
|
||||
};
|
||||
};
|
||||
|
||||
export default function DataScreen() {
|
||||
const router = useRouter();
|
||||
const { isDarkMode, language, plants, appearanceMode, colorPalette, clearLexiconSearchHistory, signOut } = useApp();
|
||||
const colors = useColors(isDarkMode, colorPalette);
|
||||
const copy = getDataCopy(language);
|
||||
|
||||
const handleExportData = async () => {
|
||||
try {
|
||||
const dataStr = JSON.stringify(plants, null, 2);
|
||||
await Share.share({
|
||||
message: dataStr,
|
||||
title: 'GreenLens_Export.json',
|
||||
});
|
||||
} catch {
|
||||
Alert.alert(copy.genericErrorTitle, copy.genericErrorMessage);
|
||||
}
|
||||
};
|
||||
|
||||
const handleClearHistory = () => {
|
||||
clearLexiconSearchHistory();
|
||||
Alert.alert(copy.clearHistoryDoneTitle, copy.clearHistoryDoneMessage);
|
||||
};
|
||||
|
||||
const handleLogout = () => {
|
||||
Alert.alert(copy.logoutConfirmTitle, copy.logoutConfirmMessage, [
|
||||
{ text: 'Cancel', style: 'cancel' },
|
||||
{
|
||||
text: copy.logout,
|
||||
style: 'destructive',
|
||||
onPress: async () => {
|
||||
await signOut();
|
||||
router.replace('/auth/login');
|
||||
},
|
||||
},
|
||||
]);
|
||||
};
|
||||
|
||||
const handleDeleteAccount = () => {
|
||||
Alert.alert(copy.deleteConfirmTitle, copy.deleteConfirmMessage, [
|
||||
{ text: 'Cancel', style: 'cancel' },
|
||||
{
|
||||
text: copy.deleteActionBtn,
|
||||
style: 'destructive',
|
||||
onPress: async () => {
|
||||
// Future implementation: call backend to wipe user data, cancel active Stripe subscriptions
|
||||
await signOut();
|
||||
router.replace('/onboarding');
|
||||
},
|
||||
},
|
||||
]);
|
||||
};
|
||||
|
||||
return (
|
||||
<View style={{ flex: 1, backgroundColor: colors.background }}>
|
||||
<ThemeBackdrop colors={colors} />
|
||||
<SafeAreaView style={styles.safeArea} edges={['top']}>
|
||||
<View style={styles.header}>
|
||||
<TouchableOpacity onPress={() => router.back()} style={styles.backButton}>
|
||||
<Ionicons name="arrow-back" size={24} color={colors.text} />
|
||||
</TouchableOpacity>
|
||||
<Text style={[styles.title, { color: colors.text }]}>{copy.title}</Text>
|
||||
<View style={{ width: 40 }} />
|
||||
</View>
|
||||
|
||||
<ScrollView contentContainerStyle={styles.scrollContent}>
|
||||
<TouchableOpacity style={[styles.actionRow, { backgroundColor: colors.cardBg, borderColor: colors.border }]} onPress={handleExportData}>
|
||||
<View style={styles.actionIcon}>
|
||||
<Ionicons name="download-outline" size={24} color={colors.text} />
|
||||
</View>
|
||||
<View style={styles.actionTextContainer}>
|
||||
<Text style={[styles.actionTitle, { color: colors.text }]}>{copy.exportData}</Text>
|
||||
<Text style={[styles.actionHint, { color: `${colors.text}80` }]}>{copy.exportHint}</Text>
|
||||
</View>
|
||||
</TouchableOpacity>
|
||||
|
||||
<TouchableOpacity style={[styles.actionRow, { backgroundColor: colors.cardBg, borderColor: colors.border }]} onPress={handleClearHistory}>
|
||||
<View style={styles.actionIcon}>
|
||||
<Ionicons name="time-outline" size={24} color={colors.text} />
|
||||
</View>
|
||||
<View style={styles.actionTextContainer}>
|
||||
<Text style={[styles.actionTitle, { color: colors.text }]}>{copy.clearHistory}</Text>
|
||||
<Text style={[styles.actionHint, { color: `${colors.text}80` }]}>{copy.clearHistoryHint}</Text>
|
||||
</View>
|
||||
</TouchableOpacity>
|
||||
|
||||
<TouchableOpacity style={[styles.actionRow, { backgroundColor: colors.cardBg, borderColor: colors.border }]} onPress={handleLogout}>
|
||||
<View style={styles.actionIcon}>
|
||||
<Ionicons name="log-out-outline" size={24} color={colors.text} />
|
||||
</View>
|
||||
<View style={styles.actionTextContainer}>
|
||||
<Text style={[styles.actionTitle, { color: colors.text }]}>{copy.logout}</Text>
|
||||
<Text style={[styles.actionHint, { color: `${colors.text}80` }]}>{copy.logoutHint}</Text>
|
||||
</View>
|
||||
</TouchableOpacity>
|
||||
|
||||
<View style={{ marginTop: 24 }}>
|
||||
<TouchableOpacity style={[styles.actionRow, { backgroundColor: '#FF3B3015', borderColor: '#FF3B3050', marginBottom: 0 }]} onPress={handleDeleteAccount}>
|
||||
<View style={[styles.actionIcon, { backgroundColor: '#FF3B3020' }]}>
|
||||
<Ionicons name="trash-bin-outline" size={24} color="#FF3B30" />
|
||||
</View>
|
||||
<View style={styles.actionTextContainer}>
|
||||
<Text style={[styles.actionTitle, { color: '#FF3B30' }]}>{copy.deleteAccount}</Text>
|
||||
<Text style={[styles.actionHint, { color: '#FF3B3080' }]}>{copy.deleteAccountHint}</Text>
|
||||
</View>
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
</ScrollView>
|
||||
</SafeAreaView>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
safeArea: { flex: 1 },
|
||||
header: { flexDirection: 'row', alignItems: 'center', padding: 16 },
|
||||
backButton: { width: 40, height: 40, justifyContent: 'center' },
|
||||
title: { flex: 1, fontSize: 20, fontWeight: '700', textAlign: 'center' },
|
||||
scrollContent: { padding: 16, gap: 16 },
|
||||
actionRow: {
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
padding: 16,
|
||||
borderRadius: 16,
|
||||
borderWidth: StyleSheet.hairlineWidth,
|
||||
marginBottom: 16,
|
||||
},
|
||||
actionIcon: {
|
||||
width: 40,
|
||||
height: 40,
|
||||
borderRadius: 20,
|
||||
backgroundColor: '#00000010',
|
||||
justifyContent: 'center',
|
||||
alignItems: 'center',
|
||||
marginRight: 16,
|
||||
},
|
||||
actionTextContainer: {
|
||||
flex: 1,
|
||||
},
|
||||
actionTitle: {
|
||||
fontSize: 16,
|
||||
fontWeight: '600',
|
||||
marginBottom: 4,
|
||||
},
|
||||
actionHint: {
|
||||
fontSize: 13,
|
||||
},
|
||||
});
|
||||
|
|
@ -0,0 +1,229 @@
|
|||
import React, { useState } from 'react';
|
||||
import { View, Text, TouchableOpacity, ScrollView, StyleSheet } from 'react-native';
|
||||
import { SafeAreaView } from 'react-native-safe-area-context';
|
||||
import { Ionicons } from '@expo/vector-icons';
|
||||
import { useRouter } from 'expo-router';
|
||||
import { useApp } from '../../context/AppContext';
|
||||
import { useColors } from '../../constants/Colors';
|
||||
import { ThemeBackdrop } from '../../components/ThemeBackdrop';
|
||||
import { AppearanceMode, ColorPalette, Language } from '../../types';
|
||||
|
||||
const PALETTE_SWATCHES: Record<ColorPalette, string[]> = {
|
||||
forest: ['#5fa779', '#3d7f57'],
|
||||
ocean: ['#5a90be', '#3d6f99'],
|
||||
sunset: ['#c98965', '#a36442'],
|
||||
mono: ['#7b8796', '#5b6574'],
|
||||
};
|
||||
|
||||
const getPreferencesCopy = (language: Language) => {
|
||||
if (language === 'de') {
|
||||
return {
|
||||
title: 'Einstellungen',
|
||||
appearanceMode: 'Modell',
|
||||
colorPalette: 'Farbpalette',
|
||||
languageLabel: 'Sprache',
|
||||
themeSystem: 'System',
|
||||
themeLight: 'Hell',
|
||||
themeDark: 'Dunkel',
|
||||
paletteForest: 'Forest',
|
||||
paletteOcean: 'Ocean',
|
||||
paletteSunset: 'Sunset',
|
||||
paletteMono: 'Mono',
|
||||
};
|
||||
} else if (language === 'es') {
|
||||
return {
|
||||
title: 'Ajustes',
|
||||
appearanceMode: 'Modo',
|
||||
colorPalette: 'Paleta',
|
||||
languageLabel: 'Idioma',
|
||||
themeSystem: 'Sistema',
|
||||
themeLight: 'Claro',
|
||||
themeDark: 'Oscuro',
|
||||
paletteForest: 'Forest',
|
||||
paletteOcean: 'Ocean',
|
||||
paletteSunset: 'Sunset',
|
||||
paletteMono: 'Mono',
|
||||
};
|
||||
}
|
||||
return {
|
||||
title: 'Preferences',
|
||||
appearanceMode: 'Appearance Mode',
|
||||
colorPalette: 'Color Palette',
|
||||
languageLabel: 'Language',
|
||||
themeSystem: 'System',
|
||||
themeLight: 'Light',
|
||||
themeDark: 'Dark',
|
||||
paletteForest: 'Forest',
|
||||
paletteOcean: 'Ocean',
|
||||
paletteSunset: 'Sunset',
|
||||
paletteMono: 'Mono',
|
||||
};
|
||||
};
|
||||
|
||||
export default function PreferencesScreen() {
|
||||
const router = useRouter();
|
||||
const { isDarkMode, appearanceMode, colorPalette, language, setAppearanceMode, setColorPalette, changeLanguage } = useApp();
|
||||
const colors = useColors(isDarkMode, colorPalette);
|
||||
const copy = getPreferencesCopy(language);
|
||||
|
||||
return (
|
||||
<View style={{ flex: 1, backgroundColor: colors.background }}>
|
||||
<ThemeBackdrop colors={colors} />
|
||||
<SafeAreaView style={styles.safeArea} edges={['top']}>
|
||||
<View style={styles.header}>
|
||||
<TouchableOpacity onPress={() => router.back()} style={styles.backButton}>
|
||||
<Ionicons name="arrow-back" size={24} color={colors.text} />
|
||||
</TouchableOpacity>
|
||||
<Text style={[styles.title, { color: colors.text }]}>{copy.title}</Text>
|
||||
<View style={{ width: 40 }} />
|
||||
</View>
|
||||
<ScrollView contentContainerStyle={styles.scrollContent}>
|
||||
|
||||
<View style={[styles.card, { backgroundColor: colors.cardBg, borderColor: colors.border }]}>
|
||||
<Text style={[styles.sectionTitle, { color: colors.text }]}>{copy.appearanceMode}</Text>
|
||||
<View style={styles.segmentedControl}>
|
||||
{(['system', 'light', 'dark'] as AppearanceMode[]).map((mode) => {
|
||||
const isActive = appearanceMode === mode;
|
||||
const label = mode === 'system' ? copy.themeSystem : mode === 'light' ? copy.themeLight : copy.themeDark;
|
||||
return (
|
||||
<TouchableOpacity
|
||||
key={mode}
|
||||
style={[
|
||||
styles.segmentBtn,
|
||||
isActive && { backgroundColor: colors.primary },
|
||||
]}
|
||||
onPress={() => setAppearanceMode(mode)}
|
||||
>
|
||||
<Text style={[
|
||||
styles.segmentText,
|
||||
{ color: isActive ? '#fff' : colors.text }
|
||||
]}>
|
||||
{label}
|
||||
</Text>
|
||||
</TouchableOpacity>
|
||||
);
|
||||
})}
|
||||
</View>
|
||||
</View>
|
||||
|
||||
<View style={[styles.card, { backgroundColor: colors.cardBg, borderColor: colors.border }]}>
|
||||
<Text style={[styles.sectionTitle, { color: colors.text }]}>{copy.colorPalette}</Text>
|
||||
<View style={styles.swatchContainer}>
|
||||
{(['forest', 'ocean', 'sunset', 'mono'] as ColorPalette[]).map((p) => {
|
||||
const isActive = colorPalette === p;
|
||||
const swatch = PALETTE_SWATCHES[p] || ['#ccc', '#999'];
|
||||
const label = p === 'forest' ? copy.paletteForest : p === 'ocean' ? copy.paletteOcean : p === 'sunset' ? copy.paletteSunset : copy.paletteMono;
|
||||
return (
|
||||
<TouchableOpacity
|
||||
key={p}
|
||||
style={[
|
||||
styles.swatchWrap,
|
||||
isActive && { borderColor: colors.primary, borderWidth: 2 }
|
||||
]}
|
||||
onPress={() => setColorPalette(p)}
|
||||
>
|
||||
<View style={[styles.swatch, { backgroundColor: swatch[0] }]} />
|
||||
<Text style={[styles.swatchLabel, { color: colors.text }]}>{label}</Text>
|
||||
</TouchableOpacity>
|
||||
);
|
||||
})}
|
||||
</View>
|
||||
</View>
|
||||
|
||||
<View style={[styles.card, { backgroundColor: colors.cardBg, borderColor: colors.border }]}>
|
||||
<Text style={[styles.sectionTitle, { color: colors.text }]}>{copy.languageLabel}</Text>
|
||||
<View style={styles.langRow}>
|
||||
{(['en', 'de', 'es'] as Language[]).map(lang => {
|
||||
const isActive = language === lang;
|
||||
const label = lang === 'en' ? 'English' : lang === 'de' ? 'Deutsch' : 'Español';
|
||||
return (
|
||||
<TouchableOpacity
|
||||
key={lang}
|
||||
style={[
|
||||
styles.langBtn,
|
||||
isActive && { backgroundColor: colors.primary }
|
||||
]}
|
||||
onPress={() => changeLanguage(lang)}
|
||||
>
|
||||
<Text style={isActive ? { color: '#fff', fontWeight: '600' } : { color: colors.text }}>
|
||||
{label}
|
||||
</Text>
|
||||
</TouchableOpacity>
|
||||
);
|
||||
})}
|
||||
</View>
|
||||
</View>
|
||||
|
||||
</ScrollView>
|
||||
</SafeAreaView>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
safeArea: { flex: 1 },
|
||||
header: { flexDirection: 'row', alignItems: 'center', padding: 16 },
|
||||
backButton: { width: 40, height: 40, justifyContent: 'center' },
|
||||
title: { flex: 1, fontSize: 20, fontWeight: '700', textAlign: 'center' },
|
||||
scrollContent: { padding: 16, gap: 16 },
|
||||
card: {
|
||||
padding: 16,
|
||||
borderRadius: 16,
|
||||
borderWidth: StyleSheet.hairlineWidth,
|
||||
},
|
||||
sectionTitle: {
|
||||
fontSize: 14,
|
||||
fontWeight: '600',
|
||||
textTransform: 'uppercase',
|
||||
letterSpacing: 0.5,
|
||||
marginBottom: 16,
|
||||
},
|
||||
segmentedControl: {
|
||||
flexDirection: 'row',
|
||||
backgroundColor: '#00000010',
|
||||
borderRadius: 12,
|
||||
padding: 4,
|
||||
},
|
||||
segmentBtn: {
|
||||
flex: 1,
|
||||
paddingVertical: 10,
|
||||
alignItems: 'center',
|
||||
borderRadius: 8,
|
||||
},
|
||||
segmentText: {
|
||||
fontSize: 14,
|
||||
fontWeight: '500',
|
||||
},
|
||||
swatchContainer: {
|
||||
flexDirection: 'row',
|
||||
justifyContent: 'space-between',
|
||||
},
|
||||
swatchWrap: {
|
||||
alignItems: 'center',
|
||||
padding: 4,
|
||||
borderRadius: 12,
|
||||
borderWidth: 2,
|
||||
borderColor: 'transparent',
|
||||
gap: 6,
|
||||
},
|
||||
swatch: {
|
||||
width: 48,
|
||||
height: 48,
|
||||
borderRadius: 24,
|
||||
},
|
||||
swatchLabel: {
|
||||
fontSize: 12,
|
||||
fontWeight: '500',
|
||||
},
|
||||
langRow: {
|
||||
flexDirection: 'row',
|
||||
flexWrap: 'wrap',
|
||||
gap: 12,
|
||||
},
|
||||
langBtn: {
|
||||
paddingHorizontal: 16,
|
||||
paddingVertical: 10,
|
||||
borderRadius: 12,
|
||||
backgroundColor: '#00000010',
|
||||
},
|
||||
});
|
||||
|
|
@ -0,0 +1,669 @@
|
|||
import React, { useEffect, useRef, useState } from 'react';
|
||||
import {
|
||||
View, Text, StyleSheet, TouchableOpacity, Image, Alert, Animated, Easing,
|
||||
} from 'react-native';
|
||||
import { useLocalSearchParams, useRouter } from 'expo-router';
|
||||
import { Ionicons } from '@expo/vector-icons';
|
||||
import { CameraView, useCameraPermissions } from 'expo-camera';
|
||||
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
||||
import * as ImagePicker from 'expo-image-picker';
|
||||
import * as Haptics from 'expo-haptics';
|
||||
import { usePostHog } from 'posthog-react-native';
|
||||
import { useApp } from '../context/AppContext';
|
||||
import { useColors } from '../constants/Colors';
|
||||
import { PlantRecognitionService } from '../services/plantRecognitionService';
|
||||
import { IdentificationResult } from '../types';
|
||||
import { ResultCard } from '../components/ResultCard';
|
||||
import { backendApiClient, isInsufficientCreditsError } from '../services/backend/backendApiClient';
|
||||
import { isBackendApiError } from '../services/backend/contracts';
|
||||
import { createIdempotencyKey } from '../utils/idempotency';
|
||||
|
||||
const HEALTH_CHECK_CREDIT_COST = 2;
|
||||
|
||||
const getBillingCopy = (language: 'de' | 'en' | 'es') => {
|
||||
if (language === 'de') {
|
||||
return {
|
||||
creditsLabel: 'Credits',
|
||||
noCreditsTitle: 'Keine Credits mehr',
|
||||
noCreditsMessage: 'Du hast keine Credits mehr fuer KI-Scans. Upgrade oder Top-up im Profil.',
|
||||
healthNoCreditsMessage: `Du brauchst ${HEALTH_CHECK_CREDIT_COST} Credits fuer den Health-Check.`,
|
||||
managePlan: 'Plan verwalten',
|
||||
dismiss: 'Schliessen',
|
||||
genericErrorTitle: 'Fehler',
|
||||
genericErrorMessage: 'Analyse fehlgeschlagen.',
|
||||
providerErrorMessage: 'KI-Scan gerade nicht verfuegbar. Bitte API-Key/Netzwerk pruefen.',
|
||||
healthProviderErrorMessage: 'KI-Health-Check gerade nicht verfuegbar. Bitte API-Key/Netzwerk pruefen.',
|
||||
healthTitle: 'Health Check',
|
||||
healthDoneTitle: 'Health Check abgeschlossen',
|
||||
healthDoneMessage: 'Neues Foto wurde geprueft und zur Galerie hinzugefuegt.',
|
||||
signupLabel: 'Registrieren',
|
||||
};
|
||||
}
|
||||
|
||||
if (language === 'es') {
|
||||
return {
|
||||
creditsLabel: 'Creditos',
|
||||
noCreditsTitle: 'Sin creditos',
|
||||
noCreditsMessage: 'No tienes creditos para escaneos AI. Actualiza o compra top-up en Perfil.',
|
||||
healthNoCreditsMessage: `Necesitas ${HEALTH_CHECK_CREDIT_COST} creditos para el health-check.`,
|
||||
managePlan: 'Gestionar plan',
|
||||
dismiss: 'Cerrar',
|
||||
genericErrorTitle: 'Error',
|
||||
genericErrorMessage: 'Analisis fallido.',
|
||||
providerErrorMessage: 'Escaneo IA no disponible ahora. Revisa API key y red.',
|
||||
healthProviderErrorMessage: 'Health-check IA no disponible ahora. Revisa API key y red.',
|
||||
healthTitle: 'Health Check',
|
||||
healthDoneTitle: 'Health-check completado',
|
||||
healthDoneMessage: 'La foto nueva fue analizada y guardada en la galeria.',
|
||||
signupLabel: 'Registrarse',
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
creditsLabel: 'Credits',
|
||||
noCreditsTitle: 'No credits left',
|
||||
noCreditsMessage: 'You have no AI scan credits left. Upgrade or buy a top-up in Profile.',
|
||||
healthNoCreditsMessage: `You need ${HEALTH_CHECK_CREDIT_COST} credits for the health check.`,
|
||||
managePlan: 'Manage plan',
|
||||
dismiss: 'Close',
|
||||
genericErrorTitle: 'Error',
|
||||
genericErrorMessage: 'Analysis failed.',
|
||||
providerErrorMessage: 'AI scan is unavailable right now. Check API key and network.',
|
||||
healthProviderErrorMessage: 'AI health check is unavailable right now. Check API key and network.',
|
||||
healthTitle: 'Health Check',
|
||||
healthDoneTitle: 'Health Check Complete',
|
||||
healthDoneMessage: 'The new photo was analyzed and added to gallery.',
|
||||
signupLabel: 'Sign Up',
|
||||
};
|
||||
};
|
||||
|
||||
export default function ScannerScreen() {
|
||||
const params = useLocalSearchParams<{ mode?: string; plantId?: string }>();
|
||||
const posthog = usePostHog();
|
||||
const {
|
||||
isDarkMode,
|
||||
colorPalette,
|
||||
language,
|
||||
t,
|
||||
savePlant,
|
||||
plants,
|
||||
updatePlant,
|
||||
billingSummary,
|
||||
refreshBillingSummary,
|
||||
isLoadingBilling,
|
||||
session,
|
||||
setPendingPlant,
|
||||
guestScanCount,
|
||||
incrementGuestScanCount,
|
||||
} = useApp();
|
||||
const colors = useColors(isDarkMode, colorPalette);
|
||||
const router = useRouter();
|
||||
const insets = useSafeAreaInsets();
|
||||
const billingCopy = getBillingCopy(language);
|
||||
const isHealthMode = params.mode === 'health';
|
||||
const healthPlantId = Array.isArray(params.plantId) ? params.plantId[0] : params.plantId;
|
||||
const healthPlant = isHealthMode && healthPlantId
|
||||
? plants.find((item) => item.id === healthPlantId)
|
||||
: null;
|
||||
const availableCredits = session
|
||||
? (billingSummary?.credits.available ?? 0)
|
||||
: Math.max(0, 5 - guestScanCount);
|
||||
|
||||
const [permission, requestPermission] = useCameraPermissions();
|
||||
const [selectedImage, setSelectedImage] = useState<string | null>(null);
|
||||
const [isAnalyzing, setIsAnalyzing] = useState(false);
|
||||
const [analysisProgress, setAnalysisProgress] = useState(0);
|
||||
const [analysisResult, setAnalysisResult] = useState<IdentificationResult | null>(null);
|
||||
const cameraRef = useRef<CameraView>(null);
|
||||
const scanLineProgress = useRef(new Animated.Value(0)).current;
|
||||
const scanPulse = useRef(new Animated.Value(0)).current;
|
||||
|
||||
useEffect(() => {
|
||||
if (!isAnalyzing) {
|
||||
scanLineProgress.stopAnimation();
|
||||
scanLineProgress.setValue(0);
|
||||
scanPulse.stopAnimation();
|
||||
scanPulse.setValue(0);
|
||||
return;
|
||||
}
|
||||
|
||||
const lineAnimation = Animated.loop(
|
||||
Animated.sequence([
|
||||
Animated.timing(scanLineProgress, {
|
||||
toValue: 1,
|
||||
duration: 1500,
|
||||
easing: Easing.inOut(Easing.quad),
|
||||
useNativeDriver: true,
|
||||
}),
|
||||
Animated.timing(scanLineProgress, {
|
||||
toValue: 0,
|
||||
duration: 1500,
|
||||
easing: Easing.inOut(Easing.quad),
|
||||
useNativeDriver: true,
|
||||
}),
|
||||
])
|
||||
);
|
||||
|
||||
const pulseAnimation = Animated.loop(
|
||||
Animated.sequence([
|
||||
Animated.timing(scanPulse, { toValue: 1, duration: 900, useNativeDriver: true }),
|
||||
Animated.timing(scanPulse, { toValue: 0, duration: 900, useNativeDriver: true }),
|
||||
])
|
||||
);
|
||||
|
||||
lineAnimation.start();
|
||||
pulseAnimation.start();
|
||||
|
||||
return () => {
|
||||
lineAnimation.stop();
|
||||
pulseAnimation.stop();
|
||||
};
|
||||
}, [isAnalyzing, scanLineProgress, scanPulse]);
|
||||
|
||||
const analyzeImage = async (imageUri: string, galleryImageUri?: string) => {
|
||||
if (isAnalyzing) return;
|
||||
|
||||
if (availableCredits <= 0) {
|
||||
Alert.alert(
|
||||
billingCopy.noCreditsTitle,
|
||||
isHealthMode ? billingCopy.healthNoCreditsMessage : billingCopy.noCreditsMessage,
|
||||
[
|
||||
{ text: billingCopy.dismiss, style: 'cancel' },
|
||||
{
|
||||
text: billingCopy.signupLabel,
|
||||
onPress: () => router.push('/auth/signup'),
|
||||
},
|
||||
],
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
setIsAnalyzing(true);
|
||||
setAnalysisProgress(0);
|
||||
setAnalysisResult(null);
|
||||
|
||||
const startTime = Date.now();
|
||||
|
||||
const progressInterval = setInterval(() => {
|
||||
setAnalysisProgress((prev) => {
|
||||
if (prev < 30) return prev + Math.random() * 8;
|
||||
if (prev < 70) return prev + Math.random() * 2;
|
||||
if (prev < 90) return prev + 0.5;
|
||||
return prev;
|
||||
});
|
||||
}, 150);
|
||||
|
||||
try {
|
||||
if (isHealthMode) {
|
||||
if (!healthPlant) {
|
||||
Alert.alert(billingCopy.genericErrorTitle, billingCopy.genericErrorMessage);
|
||||
setSelectedImage(null);
|
||||
setIsAnalyzing(false);
|
||||
return;
|
||||
}
|
||||
|
||||
const response = await backendApiClient.runHealthCheck({
|
||||
idempotencyKey: createIdempotencyKey('health-check', healthPlant.id),
|
||||
imageUri,
|
||||
language,
|
||||
plantContext: {
|
||||
name: healthPlant.name,
|
||||
botanicalName: healthPlant.botanicalName,
|
||||
careInfo: healthPlant.careInfo,
|
||||
description: healthPlant.description,
|
||||
},
|
||||
});
|
||||
|
||||
posthog.capture('llm_generation', {
|
||||
scan_type: 'health_check',
|
||||
success: true,
|
||||
latency_ms: Date.now() - startTime,
|
||||
});
|
||||
|
||||
if (!session) {
|
||||
incrementGuestScanCount();
|
||||
}
|
||||
|
||||
const currentGallery = healthPlant.gallery || [];
|
||||
const existingChecks = healthPlant.healthChecks || [];
|
||||
const updatedChecks = [response.healthCheck, ...existingChecks].slice(0, 6);
|
||||
const updatedPlant = {
|
||||
...healthPlant,
|
||||
gallery: galleryImageUri ? [...currentGallery, galleryImageUri] : currentGallery,
|
||||
healthChecks: updatedChecks,
|
||||
};
|
||||
await updatePlant(updatedPlant);
|
||||
} else {
|
||||
const result = await PlantRecognitionService.identify(imageUri, language, {
|
||||
idempotencyKey: createIdempotencyKey('scan-plant'),
|
||||
});
|
||||
|
||||
posthog.capture('llm_generation', {
|
||||
scan_type: 'identification',
|
||||
success: true,
|
||||
latency_ms: Date.now() - startTime,
|
||||
});
|
||||
|
||||
if (!session) {
|
||||
incrementGuestScanCount();
|
||||
}
|
||||
|
||||
setAnalysisResult(result);
|
||||
}
|
||||
setAnalysisProgress(100);
|
||||
await Haptics.notificationAsync(Haptics.NotificationFeedbackType.Success);
|
||||
await new Promise(resolve => setTimeout(resolve, 500));
|
||||
setIsAnalyzing(false);
|
||||
if (isHealthMode && healthPlant) {
|
||||
Alert.alert(billingCopy.healthDoneTitle, billingCopy.healthDoneMessage, [
|
||||
{ text: billingCopy.dismiss, onPress: () => router.replace(`/plant/${healthPlant.id}`) },
|
||||
]);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Analysis failed', error);
|
||||
|
||||
posthog.capture('llm_generation', {
|
||||
scan_type: isHealthMode ? 'health_check' : 'identification',
|
||||
success: false,
|
||||
error_type: isInsufficientCreditsError(error) ? 'insufficient_credits' : 'provider_error',
|
||||
latency_ms: Date.now() - startTime,
|
||||
});
|
||||
|
||||
if (isInsufficientCreditsError(error)) {
|
||||
Alert.alert(
|
||||
billingCopy.noCreditsTitle,
|
||||
isHealthMode ? billingCopy.healthNoCreditsMessage : billingCopy.noCreditsMessage,
|
||||
[
|
||||
{ text: billingCopy.dismiss, style: 'cancel' },
|
||||
{
|
||||
text: billingCopy.managePlan,
|
||||
onPress: () => router.replace('/(tabs)/profile'),
|
||||
},
|
||||
],
|
||||
);
|
||||
} else if (
|
||||
isBackendApiError(error) &&
|
||||
(error.code === 'PROVIDER_ERROR' || error.code === 'TIMEOUT')
|
||||
) {
|
||||
Alert.alert(
|
||||
billingCopy.genericErrorTitle,
|
||||
isHealthMode ? billingCopy.healthProviderErrorMessage : billingCopy.providerErrorMessage,
|
||||
);
|
||||
} else {
|
||||
Alert.alert(billingCopy.genericErrorTitle, billingCopy.genericErrorMessage);
|
||||
}
|
||||
setSelectedImage(null);
|
||||
setIsAnalyzing(false);
|
||||
} finally {
|
||||
clearInterval(progressInterval);
|
||||
await refreshBillingSummary();
|
||||
}
|
||||
};
|
||||
|
||||
const takePicture = async () => {
|
||||
if (!cameraRef.current || isAnalyzing) return;
|
||||
await Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Medium);
|
||||
const photo = await cameraRef.current.takePictureAsync({ base64: true, quality: 0.7 });
|
||||
if (photo) {
|
||||
const analysisUri = photo.base64
|
||||
? `data:image/jpeg;base64,${photo.base64}`
|
||||
: photo.uri;
|
||||
const galleryUri = photo.uri || analysisUri;
|
||||
setSelectedImage(analysisUri);
|
||||
analyzeImage(analysisUri, galleryUri);
|
||||
}
|
||||
};
|
||||
|
||||
const pickImage = async () => {
|
||||
if (isAnalyzing) return;
|
||||
|
||||
const result = await ImagePicker.launchImageLibraryAsync({
|
||||
mediaTypes: ['images'],
|
||||
quality: 0.7,
|
||||
base64: true,
|
||||
});
|
||||
if (!result.canceled && result.assets[0]) {
|
||||
const asset = result.assets[0];
|
||||
const uri = asset.base64
|
||||
? `data:image/jpeg;base64,${asset.base64}`
|
||||
: asset.uri;
|
||||
|
||||
setSelectedImage(uri);
|
||||
analyzeImage(uri, asset.uri || uri);
|
||||
}
|
||||
};
|
||||
|
||||
const handleSave = async () => {
|
||||
if (analysisResult && selectedImage) {
|
||||
if (!session) {
|
||||
// Guest mode: store result and go to signup
|
||||
setPendingPlant(analysisResult, selectedImage);
|
||||
router.replace('/auth/signup');
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
await savePlant(analysisResult, selectedImage);
|
||||
router.back();
|
||||
} catch (error) {
|
||||
console.error('Saving identified plant failed', error);
|
||||
Alert.alert(billingCopy.genericErrorTitle, billingCopy.genericErrorMessage);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const handleClose = () => {
|
||||
router.back();
|
||||
};
|
||||
|
||||
const controlsPaddingBottom = Math.max(20, insets.bottom + 10);
|
||||
const controlsPanelHeight = 28 + 80 + controlsPaddingBottom;
|
||||
const analysisBottomOffset = controlsPanelHeight + 12;
|
||||
const scanLineTranslateY = scanLineProgress.interpolate({
|
||||
inputRange: [0, 1],
|
||||
outputRange: [24, 280],
|
||||
});
|
||||
const scanPulseScale = scanPulse.interpolate({
|
||||
inputRange: [0, 1],
|
||||
outputRange: [0.98, 1.02],
|
||||
});
|
||||
const scanPulseOpacity = scanPulse.interpolate({
|
||||
inputRange: [0, 1],
|
||||
outputRange: [0.22, 0.55],
|
||||
});
|
||||
|
||||
// Show result
|
||||
if (!isHealthMode && analysisResult && selectedImage) {
|
||||
return (
|
||||
<ResultCard
|
||||
result={analysisResult}
|
||||
imageUri={selectedImage}
|
||||
onSave={handleSave}
|
||||
onClose={handleClose}
|
||||
t={t}
|
||||
isDark={isDarkMode}
|
||||
colorPalette={colorPalette}
|
||||
isGuest={!session}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
// Camera permission
|
||||
if (!permission?.granted) {
|
||||
return (
|
||||
<View style={[styles.permissionContainer, { backgroundColor: colors.surface }]}>
|
||||
<Ionicons name="camera-outline" size={48} color={colors.text} style={{ marginBottom: 16 }} />
|
||||
<Text style={[styles.permissionText, { color: colors.text }]}>Camera access is required to scan plants.</Text>
|
||||
<TouchableOpacity style={[styles.permissionBtn, { backgroundColor: colors.primary }]} onPress={requestPermission}>
|
||||
<Text style={[styles.permissionBtnText, { color: colors.onPrimary }]}>Grant Permission</Text>
|
||||
</TouchableOpacity>
|
||||
<TouchableOpacity style={{ marginTop: 16 }} onPress={handleClose}>
|
||||
<Text style={{ color: colors.textMuted }}>Cancel</Text>
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<View style={[styles.container, { backgroundColor: colors.surface }]}>
|
||||
{/* Header */}
|
||||
<View style={styles.header}>
|
||||
<TouchableOpacity onPress={handleClose}>
|
||||
<Ionicons name="close" size={28} color={colors.iconOnImage} />
|
||||
</TouchableOpacity>
|
||||
<Text style={[styles.headerTitle, { color: colors.iconOnImage }]}>
|
||||
{isHealthMode ? billingCopy.healthTitle : t.scanner}
|
||||
</Text>
|
||||
<View style={[styles.creditBadge, { backgroundColor: colors.heroButton, borderColor: colors.heroButtonBorder }]}>
|
||||
<Ionicons name="wallet-outline" size={12} color={colors.text} />
|
||||
<Text style={[styles.creditBadgeText, { color: colors.text }]}>
|
||||
{billingCopy.creditsLabel}: {availableCredits}
|
||||
</Text>
|
||||
</View>
|
||||
</View>
|
||||
|
||||
{/* Camera */}
|
||||
<View style={styles.cameraContainer}>
|
||||
{selectedImage ? (
|
||||
<Image source={{ uri: selectedImage }} style={StyleSheet.absoluteFillObject} blurRadius={4} />
|
||||
) : (
|
||||
<CameraView ref={cameraRef} style={StyleSheet.absoluteFillObject} facing="back" />
|
||||
)}
|
||||
|
||||
{/* Scan Frame */}
|
||||
<View style={[styles.scanFrame, { borderColor: colors.heroButtonBorder }]}>
|
||||
{selectedImage && (
|
||||
<Image source={{ uri: selectedImage }} style={StyleSheet.absoluteFillObject} resizeMode="cover" />
|
||||
)}
|
||||
{isAnalyzing && (
|
||||
<>
|
||||
<Animated.View
|
||||
pointerEvents="none"
|
||||
style={[
|
||||
styles.scanPulseFrame,
|
||||
{
|
||||
borderColor: colors.heroButton,
|
||||
transform: [{ scale: scanPulseScale }],
|
||||
opacity: scanPulseOpacity,
|
||||
},
|
||||
]}
|
||||
/>
|
||||
<Animated.View
|
||||
pointerEvents="none"
|
||||
style={[
|
||||
styles.scanLine,
|
||||
{
|
||||
backgroundColor: colors.heroButton,
|
||||
transform: [{ translateY: scanLineTranslateY }],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</>
|
||||
)}
|
||||
<View style={[styles.corner, styles.tl, { borderColor: colors.iconOnImage }]} />
|
||||
<View style={[styles.corner, styles.tr, { borderColor: colors.iconOnImage }]} />
|
||||
<View style={[styles.corner, styles.bl, { borderColor: colors.iconOnImage }]} />
|
||||
<View style={[styles.corner, styles.br, { borderColor: colors.iconOnImage }]} />
|
||||
</View>
|
||||
</View>
|
||||
|
||||
{/* Analyzing Overlay */}
|
||||
{isAnalyzing && (
|
||||
<View
|
||||
style={[
|
||||
styles.analysisSheet,
|
||||
{
|
||||
backgroundColor: colors.overlayStrong,
|
||||
borderColor: colors.heroButtonBorder,
|
||||
bottom: analysisBottomOffset,
|
||||
},
|
||||
]}
|
||||
>
|
||||
<View style={styles.analysisHeader}>
|
||||
<View style={[styles.analysisBadge, { backgroundColor: colors.surfaceMuted }]}>
|
||||
<Ionicons name="sparkles-outline" size={12} color={colors.text} />
|
||||
<Text style={[styles.analysisLabel, { color: colors.text }]}>
|
||||
{analysisProgress < 100 ? t.analyzing : t.result}
|
||||
</Text>
|
||||
</View>
|
||||
<Text style={[styles.analysisPercent, { color: colors.textSecondary }]}>
|
||||
{Math.round(analysisProgress)}%
|
||||
</Text>
|
||||
</View>
|
||||
<View style={[styles.progressBg, { backgroundColor: colors.surfaceMuted }]}>
|
||||
<View style={[styles.progressFill, { width: `${analysisProgress}%`, backgroundColor: colors.primary }]} />
|
||||
</View>
|
||||
<View style={styles.analysisFooter}>
|
||||
<View style={styles.analysisStatusRow}>
|
||||
<View style={[styles.statusDot, { backgroundColor: analysisProgress < 100 ? colors.warning : colors.success }]} />
|
||||
<Text style={[styles.analysisStage, { color: colors.textMuted }]}>{t.localProcessing}</Text>
|
||||
</View>
|
||||
<Text style={[styles.analysisStageDetail, { color: colors.textSecondary }]}>
|
||||
{analysisProgress < 30 ? t.scanStage1 : analysisProgress < 75 ? t.scanStage2 : t.scanStage3}
|
||||
</Text>
|
||||
</View>
|
||||
</View>
|
||||
)}
|
||||
|
||||
{/* Bottom Controls */}
|
||||
<View
|
||||
style={[
|
||||
styles.controls,
|
||||
{
|
||||
backgroundColor: colors.background,
|
||||
paddingBottom: controlsPaddingBottom,
|
||||
},
|
||||
]}
|
||||
>
|
||||
<TouchableOpacity style={[styles.controlBtn, isAnalyzing && styles.controlBtnDisabled]} onPress={pickImage} disabled={isAnalyzing}>
|
||||
<Ionicons name="images-outline" size={24} color={colors.textSecondary} />
|
||||
<Text style={[styles.controlLabel, { color: colors.textMuted }]}>{t.gallery}</Text>
|
||||
</TouchableOpacity>
|
||||
|
||||
<TouchableOpacity
|
||||
style={[
|
||||
styles.shutterBtn,
|
||||
{ backgroundColor: colors.primary, borderColor: colors.borderStrong },
|
||||
isAnalyzing && styles.shutterBtnDisabled,
|
||||
]}
|
||||
onPress={takePicture}
|
||||
disabled={isAnalyzing}
|
||||
activeOpacity={0.7}
|
||||
>
|
||||
<View style={[styles.shutterInner, { backgroundColor: colors.primarySoft }]} />
|
||||
</TouchableOpacity>
|
||||
|
||||
<TouchableOpacity style={[styles.controlBtn, isAnalyzing && styles.controlBtnDisabled]} disabled={isAnalyzing}>
|
||||
<Ionicons name="help-circle-outline" size={24} color={colors.textMuted} />
|
||||
<Text style={[styles.controlLabel, { color: colors.textMuted }]}>{t.help}</Text>
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
container: { flex: 1 },
|
||||
header: {
|
||||
position: 'absolute',
|
||||
top: 0,
|
||||
left: 0,
|
||||
right: 0,
|
||||
zIndex: 10,
|
||||
flexDirection: 'row',
|
||||
justifyContent: 'space-between',
|
||||
alignItems: 'center',
|
||||
paddingTop: 60,
|
||||
paddingHorizontal: 24,
|
||||
},
|
||||
headerTitle: { fontSize: 18, fontWeight: '600' },
|
||||
creditBadge: {
|
||||
borderWidth: 1,
|
||||
borderRadius: 14,
|
||||
paddingHorizontal: 8,
|
||||
paddingVertical: 4,
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
gap: 4,
|
||||
},
|
||||
creditBadgeText: { fontSize: 10, fontWeight: '700' },
|
||||
cameraContainer: {
|
||||
flex: 1,
|
||||
justifyContent: 'center',
|
||||
alignItems: 'center',
|
||||
},
|
||||
scanFrame: {
|
||||
width: 256,
|
||||
height: 320,
|
||||
borderWidth: 2.5,
|
||||
borderColor: '#ffffff50',
|
||||
borderRadius: 28,
|
||||
overflow: 'hidden',
|
||||
},
|
||||
scanPulseFrame: {
|
||||
...StyleSheet.absoluteFillObject,
|
||||
borderWidth: 1.5,
|
||||
borderRadius: 28,
|
||||
},
|
||||
scanLine: {
|
||||
position: 'absolute',
|
||||
left: 16,
|
||||
right: 16,
|
||||
height: 2,
|
||||
borderRadius: 999,
|
||||
shadowColor: '#ffffff',
|
||||
shadowOffset: { width: 0, height: 0 },
|
||||
shadowOpacity: 0.8,
|
||||
shadowRadius: 8,
|
||||
elevation: 6,
|
||||
},
|
||||
corner: { position: 'absolute', width: 24, height: 24 },
|
||||
tl: { top: 16, left: 16, borderTopWidth: 4, borderLeftWidth: 4, borderTopLeftRadius: 12 },
|
||||
tr: { top: 16, right: 16, borderTopWidth: 4, borderRightWidth: 4, borderTopRightRadius: 12 },
|
||||
bl: { bottom: 16, left: 16, borderBottomWidth: 4, borderLeftWidth: 4, borderBottomLeftRadius: 12 },
|
||||
br: { bottom: 16, right: 16, borderBottomWidth: 4, borderRightWidth: 4, borderBottomRightRadius: 12 },
|
||||
controls: {
|
||||
borderTopLeftRadius: 28,
|
||||
borderTopRightRadius: 28,
|
||||
paddingHorizontal: 32,
|
||||
paddingTop: 28,
|
||||
flexDirection: 'row',
|
||||
justifyContent: 'space-between',
|
||||
alignItems: 'center',
|
||||
},
|
||||
controlBtn: { alignItems: 'center', gap: 6 },
|
||||
controlBtnDisabled: { opacity: 0.5 },
|
||||
controlLabel: { fontSize: 11, fontWeight: '500' },
|
||||
shutterBtn: {
|
||||
width: 80,
|
||||
height: 80,
|
||||
borderRadius: 40,
|
||||
borderWidth: 4,
|
||||
justifyContent: 'center',
|
||||
alignItems: 'center',
|
||||
shadowColor: '#000',
|
||||
shadowOffset: { width: 0, height: 4 },
|
||||
shadowOpacity: 0.2,
|
||||
shadowRadius: 8,
|
||||
elevation: 8,
|
||||
},
|
||||
shutterInner: { width: 64, height: 64, borderRadius: 32 },
|
||||
shutterBtnDisabled: { opacity: 0.6 },
|
||||
analysisSheet: {
|
||||
position: 'absolute',
|
||||
left: 16,
|
||||
right: 16,
|
||||
borderRadius: 20,
|
||||
borderWidth: 1,
|
||||
paddingHorizontal: 16,
|
||||
paddingVertical: 14,
|
||||
zIndex: 20,
|
||||
shadowColor: '#000',
|
||||
shadowOffset: { width: 0, height: 4 },
|
||||
shadowOpacity: 0.28,
|
||||
shadowRadius: 14,
|
||||
elevation: 14,
|
||||
},
|
||||
analysisHeader: { flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center', marginBottom: 10 },
|
||||
analysisBadge: {
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
gap: 6,
|
||||
borderRadius: 999,
|
||||
paddingHorizontal: 10,
|
||||
paddingVertical: 5,
|
||||
},
|
||||
analysisLabel: { fontWeight: '700', fontSize: 12, letterSpacing: 0.2 },
|
||||
analysisPercent: { fontFamily: 'monospace', fontSize: 12, fontWeight: '700' },
|
||||
progressBg: { height: 9, borderRadius: 999, overflow: 'hidden', marginBottom: 10 },
|
||||
progressFill: { height: '100%', borderRadius: 4 },
|
||||
analysisFooter: { gap: 4 },
|
||||
analysisStatusRow: { flexDirection: 'row', alignItems: 'center', gap: 6 },
|
||||
statusDot: { width: 8, height: 8, borderRadius: 4 },
|
||||
analysisStage: { fontSize: 10, fontWeight: '700', textTransform: 'uppercase', letterSpacing: 1 },
|
||||
analysisStageDetail: { fontSize: 11, lineHeight: 16, fontWeight: '500' },
|
||||
permissionContainer: { flex: 1, justifyContent: 'center', alignItems: 'center', padding: 32 },
|
||||
permissionText: { fontSize: 16, textAlign: 'center', marginBottom: 20 },
|
||||
permissionBtn: { paddingHorizontal: 24, paddingVertical: 12, borderRadius: 12 },
|
||||
permissionBtnText: { fontWeight: '700', fontSize: 15 },
|
||||
});
|
||||
|
After Width: | Height: | Size: 491 KiB |
|
After Width: | Height: | Size: 439 KiB |
|
After Width: | Height: | Size: 2.1 MiB |
|
After Width: | Height: | Size: 123 B |
|
After Width: | Height: | Size: 746 KiB |
|
After Width: | Height: | Size: 439 KiB |
|
After Width: | Height: | Size: 3.4 MiB |
|
After Width: | Height: | Size: 3.4 MiB |
|
After Width: | Height: | Size: 439 KiB |
|
After Width: | Height: | Size: 491 KiB |
|
After Width: | Height: | Size: 2.0 MiB |
|
After Width: | Height: | Size: 1.8 MiB |
|
After Width: | Height: | Size: 67 B |
|
|
@ -0,0 +1,32 @@
|
|||
# Semantic Search Audit
|
||||
|
||||
Generated: 2026-03-12T14:15:29.567Z
|
||||
|
||||
Files:
|
||||
- `summary.json`: category counts and suggested audit order
|
||||
- `all-plants-categories.csv`: one row per plant with its full category list
|
||||
- `master.csv`: all category assignments with blank evidence columns
|
||||
- `suspicious.csv`: entries that require elevated review based on rule flags
|
||||
- `categories/*.csv`: per-category audit sheets
|
||||
|
||||
Suggested audit order:
|
||||
- pet_friendly (15)
|
||||
- air_purifier (12)
|
||||
- medicinal (32)
|
||||
- low_light (16)
|
||||
- bright_light (42)
|
||||
- sun (172)
|
||||
- easy (132)
|
||||
- high_humidity (51)
|
||||
- hanging (34)
|
||||
- tree (59)
|
||||
- large (35)
|
||||
- patterned (31)
|
||||
- flowering (157)
|
||||
- succulent (46)
|
||||
|
||||
Workflow:
|
||||
1. Review one category CSV at a time.
|
||||
2. Fill `audit_status`, `evidence_source`, `evidence_url`, and `notes`.
|
||||
3. Apply only high-confidence source-tag corrections to the lexicon batch files.
|
||||
4. Rebuild the server catalog from batches after source edits.
|
||||
|
|
@ -0,0 +1,359 @@
|
|||
source_file,source_index,name,botanical_name,all_categories,category_count,description,light,temp,water_interval_days
|
||||
constants/lexiconBatch2.ts,115,Faecherahorn,Acer palmatum,tree,1,"Der Faecherahorn ist ein japanischer Zierahorn mit feingeschnittenen, faecherfoermigen Blaettern in Gruen oder Rot.",Helles bis volles Licht,10-22 °C,5
|
||||
constants/lexiconBatch2.ts,212,Spitzahorn,Acer platanoides,tree|large|sun,3,Spitzahorn ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch2.ts,108,Schafgarbe,Achillea millefolium,flowering|medicinal|sun,3,Die Schafgarbe hat weisse oder rosafarbene Bluetenschirme und fein gefiederte Blaetter. Wichtige Heilpflanze.,Volles Sonnenlicht,10-25 °C,7
|
||||
constants/lexiconBatch1.ts,86,Wuestenrose,Adenium obesum,flowering|succulent|sun,3,Die Wuestenrose ist eine sukkulente Zimmerpflanze mit dickem Stamm und leuchtend pinken Blueten.,Volles Sonnenlicht,20-35 °C,10
|
||||
constants/lexiconBatch2.ts,117,Socotra-Wuestenrose,Adenium socotranum,flowering|succulent|sun,3,"Die Socotra-Wuestenrose ist eine seltene, endemische Art mit einem sehr dicken, knolligen Stamm und rosa Blueten.",Volles Sonnenlicht,20-35 °C,14
|
||||
constants/lexiconBatch2.ts,42,Frauenhaarfarn,Adiantum raddianum,high_humidity,1,"Der Frauenhaarfarn hat zarte, feingliedrige Wedel auf schwarzen, drahtaehnlichen Stielen. Liebt Feuchtigkeit.",Helles indirektes Licht,18-27 °C,3
|
||||
constants/lexiconBatch2.ts,31,Adromischus,Adromischus cristatus,easy|succulent|sun,3,Adromischus ist eine kompakte Sukkulente mit ungewoehnlich wellenrandigen Blaettern auf kurzen Staengeln.,Helles bis volles Licht,15-25 °C,14
|
||||
constants/lexiconBatch2.ts,34,Silbervase,Aechmea fasciata,flowering|patterned,2,Die Silbervase ist eine Bromelie mit silbrig gebänderten Blaettern und einem rosafarbenen Bluetenstand.,Helles indirektes Licht,18-25 °C,10
|
||||
constants/lexiconBatch1.ts,10,Schwarze Rose (Aeonium),Aeonium arboreum,succulent|sun,2,"Das Aeonium bildet dekorative, rosettenfoermige Sukkulenten an verzweigten Stielen.",Volles Sonnenlicht,10-25 °C,10
|
||||
constants/lexiconBatch1.ts,98,Lippenstiftpflanze,Aeschynanthus radicans,flowering|hanging|high_humidity,3,Die Lippenstiftpflanze hat haengende Triebe mit glaenzenden Blaettern und leuchtend roten Roehrenbluten.,Helles indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch1.ts,11,Agave,Agave americana,succulent|large|sun,3,"Die Agave ist eine imposante Sukkulente mit steifen, blaugruenen Blaettern mit Stacheln. Sie bluet nur einmal.",Volles Sonnenlicht,10-35 °C,21
|
||||
constants/lexiconBatch1.ts,50,Aglaoneme,Aglaonema commutatum,easy|patterned|low_light,3,Die Aglaoneme ist eine dekorative Zimmerpflanze mit silbrig-gruen gemusterten Blaettern. Tolerant gegenueber wenig Licht.,Wenig bis helles Licht,15-26 °C,7
|
||||
constants/lexiconBatch2.ts,155,Stockrose,Alcea rosea,flowering|sun,2,"Stockrose ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,30,Schnittlauch,Allium schoenoprasum,easy,1,Schnittlauch ist ein beliebtes Kuechenkraut mit roehrenfoermigen Blaettern und lila Blueten.,Helles bis volles Licht,10-25 °C,3
|
||||
constants/lexiconBatch2.ts,135,Schnittknoblauch,Allium tuberosum,easy|sun,2,Schnittknoblauch ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch1.ts,46,Amazona-Taro,Alocasia amazonica,patterned|large|high_humidity,3,"Der Amazona-Taro besticht mit dunkelgruenen, pfeilfoermigen Blaettern mit markant weissen Rippen.",Indirektes Licht,18-27 °C,5
|
||||
constants/lexiconBatch2.ts,225,Alocasia zebrina,Alocasia zebrina,bright_light|high_humidity,2,Alocasia zebrina ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5
|
||||
constants/lexiconBatch1.ts,89,Kap-Aloe,Aloe arborescens,easy|succulent|medicinal|sun,4,"Die Kap-Aloe ist eine strauchige Aloe mit schmalen, gezaehnten Blaettern und leuchtend roten Bluetenaehren im Winter.",Volles Sonnenlicht,10-30 °C,14
|
||||
constants/lexiconBatch2.ts,18,Kap-Aloe (ferox),Aloe ferox,succulent|large|medicinal|sun,4,"Aloe ferox ist eine grosse, imposante Aloe mit stachligen, blaugruenen Blaettern und leuchtend roten Bluetenaehren.",Volles Sonnenlicht,10-30 °C,14
|
||||
constants/lexiconBatch2.ts,128,Zitronenverbene,Aloysia citrodora,easy|sun,2,Zitronenverbene ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch2.ts,73,Muschelingwer,Alpinia zerumbet,flowering|large|high_humidity,3,"Der Muschelingwer hat lange, elegante Blaetter und haengende Bluetenrispen mit weiss-rosa Bluetchen.",Helles bis volles Licht,20-30 °C,5
|
||||
constants/lexiconBatch2.ts,194,Fuchsschwanz,Amaranthus caudatus,flowering|sun,2,"Fuchsschwanz ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,163,Anemone,Anemone coronaria,flowering|sun,2,"Anemone ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,140,Dill,Anethum graveolens,easy|sun,2,Dill ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch2.ts,125,Kerbel,Anthriscus cerefolium,easy|sun,2,Kerbel ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch2.ts,233,Samt-Anthurie,Anthurium clarinervium,patterned|high_humidity,2,Samt-Anthurie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5
|
||||
constants/lexiconBatch2.ts,234,Kristall-Anthurie,Anthurium crystallinum,patterned|high_humidity,2,Kristall-Anthurie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5
|
||||
constants/lexiconBatch2.ts,147,Loewenmaeulchen,Antirrhinum majus,flowering|sun,2,"Loewenmaeulchen ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,232,Norfolk-Tanne,Araucaria heterophylla,tree|bright_light,2,Norfolk-Tanne ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7
|
||||
constants/lexiconBatch2.ts,107,Arnika,Arnica montana,flowering|medicinal|sun,3,Arnika ist eine bekannte Heilpflanze aus den Alpen mit goldgelben Korbbluten. Sie wird fuer Muskeln und Gelenke verwendet.,Volles Sonnenlicht,10-20 °C,7
|
||||
constants/lexiconBatch2.ts,110,Wermut,Artemisia absinthium,medicinal|sun,2,"Wermut ist ein stark aromatisches Heilkraut mit silbrig-gruenen, tief eingeschnittenen Blaettern. Fuer Kraeuterlikoere.",Volles Sonnenlicht,10-25 °C,14
|
||||
constants/lexiconBatch2.ts,122,Estragon,Artemisia dracunculus,easy|sun,2,Estragon ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch2.ts,178,Seidenpflanze,Asclepias tuberosa,flowering|sun,2,"Seidenpflanze ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,16,Schusterpflanze,Aspidistra elatior,easy|low_light,2,"Die Schusterpflanze ist eine extrem robuste Zimmerpflanze mit langen, dunkelgruenen Blaettern. Vertraegt tiefe Temperaturen.",Wenig bis helles Licht,10-20 °C,14
|
||||
constants/lexiconBatch2.ts,43,Vogelnest-Farn,Asplenium nidus,easy|low_light|high_humidity,3,"Der Vogelnest-Farn hat ganzrandige, glaenzende Wedel, die eine Nestform bilden. Sehr dekorativ und robust.",Helles indirektes Licht,18-27 °C,5
|
||||
constants/lexiconBatch2.ts,13,Japanische Aucube,Aucuba japonica,easy|low_light,2,"Die Japanische Aucube hat glaenzende, gruene oder gelbgefleckte Blaetter. Sehr schattenvertraeglich.",Wenig bis helles Licht,10-20 °C,7
|
||||
constants/lexiconBatch1.ts,92,Indische Azalee,Azalea indica,flowering,1,"Die Indische Azalee ist ein beliebter Zierstrauch mit grossen, auffaelligen Blueten in Rosa- und Rottönen.",Helles indirektes Licht,10-20 °C,4
|
||||
constants/lexiconBatch2.ts,7,Bambusrohr,Bambusa vulgaris,easy|large,2,Das Bambusrohr ist eine schnell wachsende Bambusart mit gelbgruenen Halmen. Sehr dekorativ und vielseitig nutzbar.,Helles bis volles Licht,15-30 °C,5
|
||||
constants/lexiconBatch1.ts,41,Pferdeschwanzpalme,Beaucarnea recurvata,easy|succulent|tree|sun,4,"Die Pferdeschwanzpalme hat einen verdickten Stammbasis als Wasserspeicher und lange, schmale Blaetter.",Volles Sonnenlicht,15-30 °C,21
|
||||
constants/lexiconBatch2.ts,57,Forellen-Begonie,Begonia maculata,patterned|high_humidity,2,Die Forellen-Begonie hat olivgruene Blaetter mit silbernen Punkten und einer roten Unterseite. Atemberaubend.,Helles indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch1.ts,18,Koenigsbegonie,Begonia rex,patterned|high_humidity,2,"Die Koenigsbegonie beeindruckt mit prachtvoll gemusterten Blaettern in Silber, Rot und Gruen.",Indirektes Licht,18-25 °C,5
|
||||
constants/lexiconBatch2.ts,175,Eisbegonie,Begonia semperflorens-cultorum,flowering|bright_light,2,"Eisbegonie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,58,Knollen-Begonie,Begonia tuberhybrida,flowering|high_humidity,2,"Die Knollen-Begonie hat riesige, rosenaehnliche Blueten in leuchtendem Rot, Orange, Gelb oder Weiss.",Helles indirektes Licht,15-22 °C,5
|
||||
constants/lexiconBatch2.ts,145,Gaensebluemchen,Bellis perennis,flowering|sun,2,"Gaensebluemchen ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,97,Mangold,Beta vulgaris,easy,1,"Mangold ist ein farbenfrohes Blattgemuese mit bunten Stielen in Rot, Gelb, Orange und Weiss.",Helles bis volles Licht,10-25 °C,3
|
||||
constants/lexiconBatch2.ts,114,Hange-Birke,Betula pendula,tree|large|medicinal,3,Die Haenge-Birke hat charakteristisch weisse Rinde und haengende Zweige. Die Blaetter werden in der Heilkunde genutzt.,Volles Sonnenlicht,10-25 °C,7
|
||||
constants/lexiconBatch2.ts,38,Billbergia,Billbergia nutans,easy|flowering,2,"Die Billbergia ist eine robuste Bromelie mit schmalen, gruenen Blaettern und hängenden, blauen und gruenen Blueten.",Helles indirektes Licht,15-25 °C,7
|
||||
constants/lexiconBatch2.ts,129,Borretsch,Borago officinalis,easy|sun,2,Borretsch ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch1.ts,62,Bougainvillea,Bougainvillea spectabilis,flowering|bright_light|sun,3,"Die Bougainvillea ist eine rankenreiche Kletterpflanze mit leuchtend farbigen Hochblaettern in Rot, Orange oder Pink.",Volles Sonnenlicht,18-30 °C,5
|
||||
constants/lexiconBatch2.ts,223,Schmetterlingsflieder,Buddleja davidii,flowering|tree|sun,3,Schmetterlingsflieder ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch2.ts,202,Buchsbaum,Buxus sempervirens,tree|sun,2,Buchsbaum ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch1.ts,49,Buntblatt,Caladium bicolor,patterned|high_humidity,2,"Das Buntblatt beeindruckt mit transparenten, bunt gemusterten Blaettern in Pink, Rot, Weiss und Gruen.",Indirektes Licht,20-30 °C,5
|
||||
constants/lexiconBatch2.ts,187,Ringelblume,Calendula officinalis,flowering|medicinal|sun,3,"Ringelblume ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,63,Calibrachoa,Calibrachoa hybrida,easy|flowering|hanging|sun,4,"Calibrachoa ist eine petunienaehnliche Haengepflanze mit unzaehligen, kleinen Trichterbluten in allen Farben.",Volles Sonnenlicht,15-25 °C,2
|
||||
constants/lexiconBatch2.ts,56,Callisia,Callisia repens,easy|hanging,2,"Callisia repens ist ein kleines, kriechendes Kraut mit winzigen, gruenen Blaettern. Ideal fuer haengende Behaelter.",Helles indirektes Licht,15-25 °C,5
|
||||
constants/lexiconBatch1.ts,93,Kamelie,Camellia japonica,flowering,1,Die Kamelie ist ein eleganter Zierstrauch mit glaenzenden Blaettern und rosenaehnlichen Blueten von Januar bis April.,Helles indirektes Licht,7-18 °C,5
|
||||
constants/lexiconBatch2.ts,85,Teestrauch,Camellia sinensis,flowering,1,"Der Teestrauch ist die Pflanze, aus deren Blaettern Tee gewonnen wird. Er hat weisse Blueten und glaenzende Blaetter.",Helles indirektes Licht,15-22 °C,7
|
||||
constants/lexiconBatch2.ts,184,Trompetenwinde,Campsis radicans,flowering|bright_light,2,"Trompetenwinde ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,67,Blumenschilfrohr,Canna indica,flowering|large|sun,3,"Das Blumenschilfrohr hat grosse, tropisch wirkende Blaetter und auffaellige Blueten in Rot, Orange oder Gelb.",Volles Sonnenlicht,18-28 °C,5
|
||||
constants/lexiconBatch2.ts,92,Chili,Capsicum annuum,easy|medicinal|sun,3,"Chili ist eine beliebte Gemuese- und Zierpflanze mit leuchtenden, roten oder orangen Fruechten. Im Topf kultivierbar.",Volles Sonnenlicht,20-30 °C,4
|
||||
constants/lexiconBatch2.ts,90,Papaya,Carica papaya,large|sun,2,"Die Papaya ist eine tropische Fruchtpflanze mit grossen, gelappten Blaettern und orangen Fruechten.",Volles Sonnenlicht,20-35 °C,5
|
||||
constants/lexiconBatch2.ts,217,Trompetenbaum,Catalpa bignonioides,tree|large|sun,3,Trompetenbaum ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch1.ts,73,Cattleya-Orchidee,Cattleya labiata,flowering|high_humidity,2,"Die Cattleya ist die Koenigin der Orchideen mit ueppigen, duftenden Blueten in Lila, Rosa und Weiss.",Helles indirektes Licht,18-28 °C,7
|
||||
constants/lexiconBatch2.ts,208,Zeder,Cedrus libani,tree|large|sun,3,Zeder ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch2.ts,188,Kornblume,Centaurea cyanus,flowering|sun,2,"Kornblume ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,81,Peruanischer Fackelkaktus,Cereus peruvianus,easy|succulent|large|sun,4,"Der Peruanische Fackelkaktus ist ein saeulenfoermiger Kaktus, der im Innenraum bis zu 2 m hoch werden kann.",Volles Sonnenlicht,15-35 °C,21
|
||||
constants/lexiconBatch1.ts,99,Herzkette,Ceropegia woodii,easy|succulent|patterned|hanging,4,"Die Herzkette hat duenne, haengende Ranken mit herzfoermigen, silbergrau gemusterten Blaettchen.",Helles indirektes Licht,15-27 °C,14
|
||||
constants/lexiconBatch1.ts,43,Bergpalme,Chamaedorea elegans,easy|pet_friendly|tree|air_purifier|low_light,5,Die Bergpalme ist eine kompakte Zimmerpalme fuer schattigere Standorte. Ideal fuer dunkle Innenraeume.,Wenig bis helles Licht,15-25 °C,7
|
||||
constants/lexiconBatch2.ts,138,Roemische Kamille,Chamaemelum nobile,easy|medicinal|sun,3,Roemische Kamille ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch2.ts,101,Kamille,Chamomilla recutita,easy|medicinal|sun,3,"Die Kamille ist ein beliebtes Heilkraut mit kleinen, weiss-gelben Blueten. Das aetherische Oel wirkt beruhigend.",Volles Sonnenlicht,15-25 °C,5
|
||||
constants/lexiconBatch1.ts,67,Chrysantheme,Chrysanthemum indicum,flowering,1,"Die Chrysantheme ist die klassische Herbstblume mit ueppigen, dichten Blueten in vielen Farben.",Helles bis volles Licht,12-22 °C,4
|
||||
constants/lexiconBatch2.ts,86,Zitronenbaum,Citrus limon,tree|sun,2,"Der Zitronenbaum ist ein kleiner, immergruener Baum mit weissen, duftenden Blueten und gelben Fruechten.",Volles Sonnenlicht,18-28 °C,5
|
||||
constants/lexiconBatch2.ts,87,Orangenbaum,Citrus sinensis,tree|sun,2,"Der Orangenbaum ist ein kleiner, immergruener Baum mit weissen Blueten und orangen Fruechten.",Volles Sonnenlicht,18-28 °C,5
|
||||
constants/lexiconBatch2.ts,157,Clematis,Clematis viticella,flowering|bright_light,2,"Clematis ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,104,Riemenblatt,Clivia miniata,flowering,1,Das Riemenblatt ist eine dekorative Zimmerpflanze mit leuchtend orangefarbenen Blueten im Fruehling.,Helles indirektes Licht,15-24 °C,10
|
||||
constants/lexiconBatch2.ts,224,Kroton,Codiaeum variegatum,patterned|bright_light,2,Kroton ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7
|
||||
constants/lexiconBatch2.ts,84,Kaffeestrauch,Coffea arabica,easy,1,"Der Kaffeestrauch hat glaenzende, dunkelgruene Blaetter und entwickelt rote Kaffeekirschen. Kann im Topf gehalten werden.",Helles indirektes Licht,18-25 °C,7
|
||||
constants/lexiconBatch2.ts,245,Kaffeepflanze arabica nana,Coffea arabica Nana,bright_light,1,Kaffeepflanze arabica nana ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7
|
||||
constants/lexiconBatch1.ts,47,Taro,Colocasia esculenta,large|high_humidity,2,"Der Taro ist eine tropische Pflanze mit grossen, herzfoermigen Blaettern. Die Knollen sind Nahrungsquelle.",Helles indirektes Licht,18-30 °C,3
|
||||
constants/lexiconBatch1.ts,97,Columnea,Columnea gloriosa,flowering|hanging|high_humidity,3,"Die Columnea ist eine haengende Zimmerpflanze mit kleinen, behaarten Blaettern und leuchtend roten, roehrenfoermigen Blueten.",Helles indirektes Licht,18-25 °C,7
|
||||
constants/lexiconBatch2.ts,24,Konophytum,Conophytum calculus,succulent|sun,2,"Das Konophytum ist eine sehr kompakte Sukkulente, die zwei Blaetter zu einer kugelfoermigen Form verschmilzt.",Volles Sonnenlicht,10-25 °C,21
|
||||
constants/lexiconBatch2.ts,160,Maigloeckchen,Convallaria majalis,flowering|medicinal,2,"Maigloeckchen ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,14,Keulenlilie,Cordyline australis,easy|tree|sun,3,"Die Keulenlilie hat lange, schmale, gruene oder rotbraune Blaetter in einem dekorativen Schopf.",Helles bis volles Licht,10-25 °C,7
|
||||
constants/lexiconBatch2.ts,15,Tiroler Keulenlilie,Cordyline fruticosa,easy,1,"Die Tiroler Keulenlilie hat leuchtend rote, gruene oder buntlaubige Blaetter. Eine exotische Zimmerpflanze.",Helles indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch2.ts,181,Maedchenauge,Coreopsis tinctoria,flowering|sun,2,"Maedchenauge ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,139,Koriander,Coriandrum sativum,easy|sun,2,Koriander ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch2.ts,150,Kosmee,Cosmos bipinnatus,flowering|sun,2,"Kosmee ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,29,Kotyledon,Cotyledon orbiculata,easy|succulent|sun,3,"Kotyledon hat dickfleischige, runde Blaetter mit einem mehligen, weisslichen Belag. Sehr trockenheitsresistent.",Helles bis volles Licht,15-25 °C,14
|
||||
constants/lexiconBatch2.ts,26,Moos-Crassula,Crassula muscosa,easy|succulent|sun,3,"Die Moos-Crassula hat dicht aneinandergereihte, winzige gruene Blaetter auf unverzweigten Trieben. Sieht aus wie Moos.",Helles bis volles Licht,15-25 °C,14
|
||||
constants/lexiconBatch1.ts,5,Jadepflanze,Crassula ovata,easy|succulent|sun,3,"Die Jadepflanze ist eine langlebige Sukkulente mit dicken, ovalen Blaettern. In Japan gilt sie als Gluecksbringer.",Helles bis volles Licht,15-24 °C,14
|
||||
constants/lexiconBatch1.ts,110,Krokus,Crocus vernus,easy|flowering,2,"Der Krokus ist einer der ersten Fruehjahrsboten mit kelchfoermigen Blueten in Lila, Weiss und Gelb.",Helles bis volles Licht,5-15 °C,7
|
||||
constants/lexiconBatch2.ts,39,Cryptanthus,Cryptanthus bivittatus,patterned|high_humidity,2,Cryptanthus ist eine niedrig wachsende Bromelie mit sternfoermigen Rosetten und gemusterten Blaettern. Fuer Terrarien.,Helles indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch1.ts,53,Ctenanthe,Ctenanthe burle-marxii,patterned|high_humidity,2,Die Ctenanthe hat faszinierend gemusterte Blaetter mit dunkelgruunem Fischgraetenmuster auf hellgruunem Hintergrund.,Indirektes Licht,18-25 °C,5
|
||||
constants/lexiconBatch2.ts,94,Gurke,Cucumis sativus,easy|sun,2,"Die Gurke ist eine rankende Gemuesepflanze mit gruenen, erfrischenden Fruechten. Im Balkonkasten kultivierbar.",Volles Sonnenlicht,18-28 °C,3
|
||||
constants/lexiconBatch2.ts,209,Zypresse,Cupressus sempervirens,tree|large|sun,3,Zypresse ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch2.ts,74,Kurkuma,Curcuma longa,medicinal|high_humidity,2,Kurkuma ist eine tropische Gewuerzpflanze mit breiten Blaettern und leuchtend gelber Wurzel. Wichtiges Heilgewuerz.,Helles bis volles Licht,20-30 °C,7
|
||||
constants/lexiconBatch2.ts,236,String of Bananas,Curio radicans,succulent|hanging|sun,3,String of Bananas ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles bis volles Licht,18-30 C,10
|
||||
constants/lexiconBatch2.ts,237,String of Dolphins,Curio x peregrinus,succulent|hanging|sun,3,String of Dolphins ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles bis volles Licht,18-30 C,10
|
||||
constants/lexiconBatch2.ts,239,Palmfarn,Cycas revoluta,tree|large|sun,3,Palmfarn ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles bis volles Licht,18-30 C,10
|
||||
constants/lexiconBatch1.ts,19,Alpenveilchen,Cyclamen persicum,flowering,1,"Das Alpenveilchen bluet im Herbst und Winter mit eleganten Blueten in Rosa, Rot oder Weiss.",Helles indirektes Licht,12-18 °C,5
|
||||
constants/lexiconBatch1.ts,71,Zymbidium,Cymbidium lowianum,flowering,1,"Das Zymbidium ist eine robuste Orchidee mit langen, grassartigen Blaettern und eleganten Bluetenrispen.",Helles Licht,12-24 °C,7
|
||||
constants/lexiconBatch2.ts,127,Zitronengras,Cymbopogon citratus,easy|sun,2,Zitronengras ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch2.ts,9,Paragraphenpflanze,Cyperus alternifolius,high_humidity,1,"Die Paragraphenpflanze hat lange, grasartige Blaetter, die sternfoermig vom Stiel abstehen. Sie liebt viel Wasser.",Helles bis volles Licht,18-27 °C,3
|
||||
constants/lexiconBatch2.ts,68,Dahlie,Dahlia pinnata,flowering|sun,2,Die Dahlie ist eine prachtvolle Sommerblume mit Blueten in allen Groessen und Formen. Sie wird aus Knollen gezogen.,Volles Sonnenlicht,15-25 °C,5
|
||||
constants/lexiconBatch2.ts,99,Karotte,Daucus carota,easy,1,Die Karotte ist eine beliebte Gemuesepflanze mit orangefarbenen Wurzeln. Im tiefen Topf kultivierbar.,Helles bis volles Licht,15-22 °C,5
|
||||
constants/lexiconBatch2.ts,215,Flammenbaum,Delonix regia,flowering|tree|large,3,Flammenbaum ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch2.ts,153,Rittersporn,Delphinium elatum,flowering|sun,2,"Rittersporn ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,70,Dendrobium,Dendrobium nobile,flowering|high_humidity,2,"Das Dendrobium ist eine beliebte Zimmerorchidee mit langen Pseudobulben, die im Winter mit Blueten besetzt werden.",Helles indirektes Licht,15-28 °C,10
|
||||
constants/lexiconBatch2.ts,189,Bartnelke,Dianthus barbatus,flowering|sun,2,"Bartnelke ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,146,Nelke,Dianthus caryophyllus,flowering|sun,2,"Nelke ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,48,Dieffenbachie,Dieffenbachia seguine,easy|air_purifier|low_light,3,"Die Dieffenbachie ist eine tropische Blattschmuckpflanze mit grossen, gruen-weiss gefleckten Blaettern.",Helles indirektes Licht,18-26 °C,7
|
||||
constants/lexiconBatch2.ts,109,Roter Fingerhut,Digitalis purpurea,flowering|medicinal,2,"Der Rote Fingerhut hat hohe Bluetenstaende mit roehrenfoermigen, gepunkteten Blueten in Rosa. Wichtige Arzneipflanze.",Helles bis volles Licht,10-20 °C,7
|
||||
constants/lexiconBatch2.ts,77,Venusfliegenfalle,Dionaea muscipula,sun,1,Die Venusfliegenfalle ist eine fleischfressende Pflanze mit klappfallartigen Blaettern. Faengt Insekten.,Volles Sonnenlicht,15-30 °C,5
|
||||
constants/lexiconBatch1.ts,101,Dischidia,Dischidia ruscifolia,succulent|hanging,2,"Die Dischidia ist eine epiphytische Haengepflanze mit kleinen, runden Blaettern entlang duenner Ranken.",Helles indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch1.ts,14,Maisstrauch,Dracaena fragrans,easy|tree|air_purifier|low_light,4,"Der Maisstrauch ist eine robuste Zimmerpflanze mit breiten, gestreiften Blaettern. Gedeiht auch bei wenig Licht.",Helles indirektes Licht,15-25 °C,10
|
||||
constants/lexiconBatch1.ts,13,Drachenbaum,Dracaena marginata,easy|tree|air_purifier,3,"Der Drachenbaum ist eine schlanke Zimmerpflanze mit roten, schmalen Blaettern auf langen Staemmen.",Helles indirektes Licht,15-25 °C,10
|
||||
constants/lexiconBatch2.ts,80,Sonnentau,Drosera capensis,high_humidity|sun,2,Der Sonnentau faengt Insekten mit klebrigen Tropfen auf seinen Blaettern. Eine faszinierende fleischfressende Pflanze.,Volles Sonnenlicht,15-25 °C,5
|
||||
constants/lexiconBatch2.ts,30,Dudleya,Dudleya brittonii,easy|succulent|sun,3,"Dudleya ist eine rosettenbildende Sukkulente mit silbrig-weissen, mehligen Blaettern. Sehr elegant.",Volles Sonnenlicht,10-25 °C,14
|
||||
constants/lexiconBatch1.ts,42,Goldfruchtpalme,Dypsis lutescens,pet_friendly|tree|air_purifier,3,Die Goldfruchtpalme ist eine elegante Zimmerpalme mit gelblich-gruenen Stielen und gefiederten Wedeln.,Helles indirektes Licht,18-27 °C,5
|
||||
constants/lexiconBatch1.ts,4,Echeverie,Echeveria elegans,easy|succulent|sun,3,"Die Echeverie bildet symmetrische, rosettenfoermige Sukkulenten mit blaugruenen Blaettern. Pflegeleicht.",Volles Sonnenlicht,15-25 °C,14
|
||||
constants/lexiconBatch2.ts,106,Sonnenhut,Echinacea purpurea,flowering|medicinal|sun,3,"Der Sonnenhut ist eine beliebte Heilpflanze mit grossen, pinkfarbenen Blueten. Er staerkt das Immunsystem.",Helles bis volles Licht,15-25 °C,7
|
||||
constants/lexiconBatch1.ts,77,Goldene Tonne,Echinocactus grusonii,easy|succulent|sun,3,Die Goldene Tonne ist ein ikonischer kugelfoermiger Kaktus mit goldgelben Stacheln. Waechst langsam aber imposant.,Volles Sonnenlicht,15-35 °C,21
|
||||
constants/lexiconBatch1.ts,83,San-Pedro-Kaktus,Echinopsis pachanoi,easy|succulent|sun,3,"Der San-Pedro-Kaktus ist ein schnell wachsender, saeulenfoermiger Kaktus aus den Anden.",Volles Sonnenlicht,10-35 °C,14
|
||||
constants/lexiconBatch1.ts,84,Koenigin der Nacht,Epiphyllum oxypetalum,flowering|succulent,2,"Die Koenigin der Nacht bluet nur eine einzige Nacht lang mit riesigen, intensiv duftenden weissen Blueten.",Indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch1.ts,16,Marmor-Efeutute,Epipremnum aureum Marble Queen,easy|hanging|air_purifier,3,Die Marmor-Efeutute hat cremeweiss-gruen marmorierte Blaetter. Eine dekorative Variante der klassischen Efeutute.,Helles indirektes Licht,15-30 °C,7
|
||||
constants/lexiconBatch2.ts,53,Neon-Efeutute,Epipremnum pinnatum Neon,easy|hanging|air_purifier,3,Die Neon-Efeutute hat leuchtend limonengruene Blaetter. Sehr auffaellig und pflegeleicht.,Helles indirektes Licht,15-30 °C,7
|
||||
constants/lexiconBatch2.ts,186,Kalifornischer Mohn,Eschscholzia californica,flowering|sun,2,"Kalifornischer Mohn ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,210,Eukalyptus,Eucalyptus globulus,tree|medicinal|sun,3,Eukalyptus ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch2.ts,19,Christusdorn,Euphorbia milii,easy|flowering|succulent|sun,4,Der Christusdorn ist eine sukkulente Wolfsmilch mit stacheligen Zweigen und kleinen roten oder gelben Hochblaettern.,Helles bis volles Licht,15-28 °C,10
|
||||
constants/lexiconBatch2.ts,20,Weihnachtsstern,Euphorbia pulcherrima,flowering,1,Der Weihnachtsstern ist die klassische Winterpflanze mit leuchtend roten Hochblaettern. Er steht symbolisch fuer Weihnachten.,Helles indirektes Licht,15-22 °C,7
|
||||
constants/lexiconBatch1.ts,12,Bleistiftkaktus,Euphorbia tirucalli,easy|succulent|sun,3,"Der Bleistiftkaktus ist eine sukkulente Wolfsmilch mit duennen, zylindrischen Zweigen ohne Blaetter.",Volles Sonnenlicht,18-30 °C,14
|
||||
constants/lexiconBatch2.ts,137,Wasabi,Eutrema japonicum,bright_light|high_humidity,2,"Wasabi ist ein seltenes Wuerzkraut, das gleichmaessige Feuchte und eher kuehle Bedingungen bevorzugt.",Helles indirektes Licht,8-20 C,4
|
||||
constants/lexiconBatch2.ts,12,Fatsia,Fatsia japonica,easy|low_light,2,"Die Fatsia ist ein dekorativer Zimmerstrauch mit grossen, handfoermigen, glaenzenden Blaettern. Sehr robust.",Helles indirektes Licht,10-20 °C,7
|
||||
constants/lexiconBatch1.ts,78,Fass-Kaktus,Ferocactus cylindraceus,easy|succulent|sun,3,"Der Fass-Kaktus ist ein zylindrischer Wuestenkaktus mit langen, roten Stacheln. Sehr langlebig.",Volles Sonnenlicht,15-35 °C,21
|
||||
constants/lexiconBatch2.ts,248,Ficus altissima,Ficus altissima,tree|bright_light,2,Ficus altissima ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7
|
||||
constants/lexiconBatch1.ts,1,Birkenfeige,Ficus benjamina,tree|air_purifier,2,"Die Birkenfeige ist ein eleganter Zimmerstrauch mit haengenden Aesten und kleinen, glaenzenden Blaettern.",Helles indirektes Licht,16-24 °C,7
|
||||
constants/lexiconBatch1.ts,38,Gummibaum,Ficus elastica,easy|tree|air_purifier,3,"Der Gummibaum ist eine imposante Zimmerpflanze mit grossen, glaenzenden, lederartigen Blaettern. Reinigt die Luft.",Helles indirektes Licht,16-24 °C,10
|
||||
constants/lexiconBatch1.ts,39,Geigenfeige,Ficus lyrata,tree|large|bright_light,3,"Die Geigenfeige ist ein Trendbaum mit grossen, geigenfoermigen Blaettern. Benoetigt viel Licht.",Helles indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch2.ts,247,Ficus microcarpa,Ficus microcarpa,easy|tree|bright_light,3,Ficus microcarpa ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7
|
||||
constants/lexiconBatch2.ts,116,Bonsai-Feige,Ficus retusa,tree,1,"Die Bonsai-Feige ist eine klassische Bonsai-Art mit kleinen, elliptischen Blaettern. Sehr formbar.",Helles indirektes Licht,16-24 °C,7
|
||||
constants/lexiconBatch2.ts,226,Nervenpflanze,Fittonia albivenis,patterned|high_humidity,2,Nervenpflanze ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5
|
||||
constants/lexiconBatch2.ts,219,Forsythie,Forsythia x intermedia,flowering|tree|sun,3,Forsythie ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch2.ts,100,Erdbeere,Fragaria ananassa,easy|pet_friendly|sun,3,"Die Erdbeere ist ein beliebtes Obst fuer Balkon und Terrasse mit aromatischen, roten Fruechten.",Helles bis volles Licht,15-25 °C,3
|
||||
constants/lexiconBatch2.ts,169,Freesie,Freesia refracta,flowering|sun,2,"Freesie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,33,Fuchsie,Fuchsia hybrida,flowering|hanging,2,"Die Fuchsie haengt mit eleganten, zweifarbigen Blueten wie kleine Ohrringe herab. Ideal fuer Ampeln.",Helles indirektes Licht,14-22 °C,3
|
||||
constants/lexiconBatch2.ts,60,Triphylla-Fuchsie,Fuchsia triphylla,flowering|hanging,2,"Die Triphylla-Fuchsie hat lange, roehrenfoermige, orangefarbe Blueten in haengenden Trauben. Sehr exotisch.",Helles indirektes Licht,15-22 °C,3
|
||||
constants/lexiconBatch2.ts,196,Kokardenblume,Gaillardia aristata,flowering|sun,2,"Kokardenblume ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,22,Gardenie,Gardenia jasminoides,flowering|high_humidity,2,"Die Gardenie fasziniert mit cremefarbenen, intensiv duftenden Blueten. Anspruchsvoll in der Pflege.",Helles indirektes Licht,18-23 °C,5
|
||||
constants/lexiconBatch1.ts,90,Gasteria,Gasteria carinata,easy|succulent|low_light,3,"Die Gasteria ist eine kleine Sukkulente mit zweireihig angeordneten, zungenfoermigen, gefleckten Blaettern.",Helles indirektes Licht,15-25 °C,14
|
||||
constants/lexiconBatch2.ts,190,Mittagsgold,Gazania rigens,flowering|sun,2,"Mittagsgold ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,32,Blutroter Storchschnabel,Geranium sanguineum,easy|flowering,2,Der Blutrote Storchschnabel ist ein zierlicher Storchschnabel mit intensiv magentafarbenen Blueten.,Helles bis volles Licht,10-25 °C,7
|
||||
constants/lexiconBatch1.ts,68,Gerbera,Gerbera jamesonii,flowering|air_purifier|bright_light,3,"Die Gerbera ist eine farbenfrohe Schnittblume mit grossen, sonnenblumenaehnlichen Blueten. Sehr beliebt.",Helles bis volles Licht,15-25 °C,5
|
||||
constants/lexiconBatch2.ts,216,Ginkgo,Ginkgo biloba,tree|medicinal|sun,3,Ginkgo ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch2.ts,161,Gladiole,Gladiolus hortulanus,flowering|sun,2,"Gladiole ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,96,Gloxinie,Gloxinia speciosa,flowering|high_humidity,2,"Die Gloxinie hat grosse, samtartige Blueten in Violett, Rosa oder Weiss mit farbigen Raendern.",Helles indirektes Licht,18-25 °C,5
|
||||
constants/lexiconBatch2.ts,240,Calathea lancifolia,Goeppertia insignis,pet_friendly|patterned|high_humidity,3,Calathea lancifolia ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5
|
||||
constants/lexiconBatch2.ts,241,Calathea ornata,Goeppertia ornata,pet_friendly|patterned|high_humidity,3,Calathea ornata ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5
|
||||
constants/lexiconBatch1.ts,87,Geisterpflanze,Graptopetalum paraguayense,easy|succulent|sun,3,"Die Geisterpflanze hat zartgraue bis perlmutt-rosafarbene, rosettenfoermige Blaetter. Sehr robuste Sukkulente.",Volles Sonnenlicht,15-25 °C,14
|
||||
constants/lexiconBatch2.ts,36,Guzmania,Guzmania lingulata,flowering|high_humidity,2,"Die Guzmania ist eine Bromelie mit glänzenden, gruenen Blaettern und einem leuchtend roten, sternfoermigen Bluetenstand.",Helles indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch1.ts,80,Mond-Kaktus,Gymnocalycium mihanovichii,easy|succulent,2,Der Mond-Kaktus ist eine farbenfrohe Veredelung eines chlorophylllosen Kaktus auf einem gruenen Unterlagekaktus.,Indirektes Licht,15-30 °C,14
|
||||
constants/lexiconBatch2.ts,119,Zaubernuss,Hamamelis mollis,flowering|medicinal,2,"Die Zaubernuss bluet im Winter mit fadendunnen, gelben Bluetenkranzeln, die bis -10 Grad standhalten.",Helles bis volles Licht,10-20 °C,10
|
||||
constants/lexiconBatch1.ts,6,Zebra-Haworthie,Haworthia fasciata,easy|succulent|low_light,3,Die Zebra-Haworthie ist eine kompakte Sukkulente mit weissen Querstreifen auf dunkelgruenen Blaettern.,Helles indirektes Licht,15-25 °C,14
|
||||
constants/lexiconBatch1.ts,37,Efeu,Hedera helix,easy|hanging|air_purifier|low_light,4,"Efeu ist eine robuste Kletter- und Haengepflanze mit charakteristischen, dreilappigen Blaettern. Sehr langlebig.",Wenig bis helles Licht,10-20 °C,7
|
||||
constants/lexiconBatch2.ts,83,Heliamphora,Heliamphora nutans,high_humidity,1,Heliamphora ist eine urtuemliche Kannenpflanze aus den Tafelbergen Venezuelas. Sehr dekorativ und selten.,Helles indirektes Licht,15-25 °C,5
|
||||
constants/lexiconBatch2.ts,141,Sonnenblume,Helianthus annuus,flowering|sun,2,"Sonnenblume ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,133,Currykraut,Helichrysum italicum,easy|sun,2,Currykraut ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch2.ts,72,Heliconia,Heliconia psittacorum,flowering|bright_light|high_humidity,3,"Die Heliconia hat leuchtend orangefarbe oder rote, bootsfoermige Hochblaetter. Eine exotische Tropenpflanze.",Helles bis volles Licht,20-30 °C,5
|
||||
constants/lexiconBatch2.ts,191,Heliotrop,Heliotropium arborescens,flowering|sun,2,"Heliotrop ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,183,Lenzrose,Helleborus orientalis,flowering,1,"Lenzrose ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,182,Taglilie,Hemerocallis fulva,flowering|sun,2,"Taglilie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,21,Hibiskus,Hibiscus rosa-sinensis,flowering|bright_light|sun,3,"Der Hibiskus begeistert mit grossen, trompetenfoermigen Blueten in Rot, Orange und Rosa.",Volles Sonnenlicht,18-28 °C,3
|
||||
constants/lexiconBatch2.ts,220,Gartenhibiskus,Hibiscus syriacus,flowering|tree|sun,3,Gartenhibiskus ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch1.ts,105,Ritterstern,Hippeastrum hybrid,flowering|bright_light,2,"Der Ritterstern beeindruckt im Winter mit riesigen, trompetenfoermigen Blueten in Rot, Pink oder Weiss.",Helles bis volles Licht,18-25 °C,7
|
||||
constants/lexiconBatch2.ts,3,Kentia-Palme,Howea forsteriana,pet_friendly|tree|low_light,3,"Die Kentia-Palme ist eine der elegantesten Zimmerpalmen mit langen, herabhängenden Fiederblaettern.",Helles indirektes Licht,18-25 °C,7
|
||||
constants/lexiconBatch1.ts,58,Kleine Wachsblume,Hoya bella,flowering|succulent|hanging,3,"Die Kleine Wachsblume traegt zierliche, sternfoermige weisse Blueten mit rosa Mitte. Haengende Sukkulente.",Helles indirektes Licht,18-27 °C,10
|
||||
constants/lexiconBatch1.ts,57,Wachsblume,Hoya carnosa,easy|flowering|succulent|hanging,4,"Die Wachsblume ist eine Kletterpflanze mit dicken, wachsartigen Blaettern und sternfoermigen, duftenden Blueten.",Helles indirektes Licht,16-27 °C,10
|
||||
constants/lexiconBatch2.ts,159,Hasengloeckchen,Hyacinthoides non-scripta,flowering|sun,2,"Hasengloeckchen ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,108,Hyazinthe,Hyacinthus orientalis,easy|flowering,2,"Die Hyazinthe bezaubert mit dichten Bluetenrispen und intensivem Duft in Blau, Rosa, Weiss oder Gelb.",Helles bis volles Licht,10-18 °C,5
|
||||
constants/lexiconBatch2.ts,148,Hortensie,Hydrangea macrophylla,flowering|bright_light,2,"Hortensie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Helles bis halbschattiges Licht,8-24 C,4
|
||||
constants/lexiconBatch2.ts,105,Johanniskraut,Hypericum perforatum,flowering|medicinal|sun,3,Das Johanniskraut hat leuchtend gelbe Blueten und ist ein wichtiges Heilkraut gegen Depressionen und Stimmungstiefs.,Volles Sonnenlicht,10-25 °C,7
|
||||
constants/lexiconBatch2.ts,227,Punktblatt,Hypoestes phyllostachya,patterned|bright_light,2,Punktblatt ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7
|
||||
constants/lexiconBatch2.ts,136,Ysop,Hyssopus officinalis,easy|sun,2,Ysop ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch2.ts,203,Stechpalme,Ilex aquifolium,tree|sun,2,Stechpalme ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch2.ts,176,Gartenbalsamine,Impatiens balsamina,flowering|bright_light,2,"Gartenbalsamine ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,59,Neuguinea-Balsamine,Impatiens hawkeri,easy|flowering,2,"Die Neuguinea-Balsamine hat grosse, leuchtende Blueten und ist sehr bluehfreudig. Ideal fuer Terrassen.",Helles indirektes Licht,18-27 °C,3
|
||||
constants/lexiconBatch1.ts,20,Fleissiges Lieschen,Impatiens walleriana,easy|flowering,2,Das Fleissige Lieschen bluet von Fruehling bis Herbst unermudlich in vielen Farben.,Helles indirektes Licht,16-24 °C,2
|
||||
constants/lexiconBatch1.ts,64,Suesskartoffel,Ipomoea batatas,easy|hanging|sun,3,"Die Suesskartoffel-Zierpflanze hat dekorative, herzfoermige Blaetter in gruen oder dunkelviolett. Ideal als Haengepflanze.",Volles Sonnenlicht,20-30 °C,5
|
||||
constants/lexiconBatch2.ts,156,Prunkwinde,Ipomoea purpurea,flowering|sun,2,"Prunkwinde ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,144,Bart-Iris,Iris germanica,flowering|sun,2,"Bart-Iris ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,211,Jacaranda,Jacaranda mimosifolia,flowering|tree|large,3,Jacaranda ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch1.ts,59,Jasmin,Jasminum polyanthum,flowering,1,"Der Jasmin ist eine Kletterpflanze mit intensiv duftenden, weissen Blueten. Er bluet im Winter und Fruehling.",Helles bis volles Licht,10-22 °C,5
|
||||
constants/lexiconBatch2.ts,172,Arabischer Jasmin,Jasminum sambac,flowering|bright_light,2,"Arabischer Jasmin ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,9,Kalanchoe,Kalanchoe blossfeldiana,easy|flowering|succulent|sun,4,"Die Kalanchoe ist eine beliebte Bluehpflanze mit leuchtenden Blueten in Rot, Orange, Gelb oder Rosa.",Helles bis volles Licht,15-25 °C,10
|
||||
constants/lexiconBatch2.ts,22,Brutblatt,Kalanchoe daigremontiana,easy|succulent|sun,3,Das Brutblatt bildet entlang des Blattrandes zahlreiche kleine Jungpflanzen. Eine faszinierende Sukkulente.,Helles bis volles Licht,15-25 °C,14
|
||||
constants/lexiconBatch2.ts,21,Kaninchen-Ohren,Kalanchoe tomentosa,easy|succulent|sun,3,"Kaninchen-Ohren haben weisslich-filzige Blaetter mit braunen Raendern, die Kaninchenohren aehneln. Sehr dekorativ.",Helles bis volles Licht,15-25 °C,14
|
||||
constants/lexiconBatch2.ts,95,Salat,Lactuca sativa,easy,1,Salat ist eine schnell wachsende Blattgemuesepflanze. Im Topf und Balkonkasten sehr gut zu kultivieren.,Helles bis volles Licht,10-22 °C,3
|
||||
constants/lexiconBatch2.ts,197,Traenendes Herz,Lamprocapnos spectabilis,flowering|bright_light,2,"Traenendes Herz ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,64,Wandelroeschen,Lantana camara,flowering|bright_light|sun,3,"Das Wandelroeschen hat kugelige Bluetenkoepfe, die die Farbe von Gelb ueber Orange zu Rot wechseln. Sehr attraktiv.",Volles Sonnenlicht,18-28 °C,5
|
||||
constants/lexiconBatch2.ts,158,Duftwicke,Lathyrus odoratus,flowering|sun,2,"Duftwicke ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,121,Lorbeer,Laurus nobilis,easy|sun,2,Lorbeer ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch1.ts,23,Echter Lavendel,Lavandula angustifolia,medicinal|bright_light|sun,3,Der Echte Lavendel ist ein aromatischer Halbstrauch mit lilafarbenen Bluetenaehren. Herrlicher Duft.,Volles Sonnenlicht,10-25 °C,10
|
||||
constants/lexiconBatch2.ts,180,Bechermalve,Lavatera trimestris,flowering|sun,2,"Bechermalve ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,173,Margerite,Leucanthemum vulgare,flowering|sun,2,"Margerite ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,201,Shasta-Margerite,Leucanthemum x superbum,flowering|sun,2,"Shasta-Margerite ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,126,Liebstoeckel,Levisticum officinale,easy|sun,2,Liebstoeckel ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch2.ts,69,Ostertrompete,Lilium longiflorum,flowering|bright_light,2,"Die Ostertrompete hat grosse, weisse, trichterfoermige Blueten mit intensivem Duft. Klassische Osterblume.",Helles bis volles Licht,15-25 °C,5
|
||||
constants/lexiconBatch2.ts,23,Lebende Steine,Lithops julii,succulent|sun,2,"Lebende Steine sind faszinierende Mimikry-Sukkulenten, die Kieselsteinen taeuschen aehnlich sehen. Sehr trockenheitsresistent.",Volles Sonnenlicht,10-30 °C,21
|
||||
constants/lexiconBatch2.ts,4,Chinesische Fächerpalme,Livistona chinensis,tree|bright_light,2,"Die Chinesische Fächerpalme hat grosse, faecherfoermige Blaetter auf einem einzelnen Stamm. Sehr dekorativ.",Helles bis volles Licht,15-25 °C,7
|
||||
constants/lexiconBatch2.ts,62,Duftsteinrich,Lobularia maritima,easy|flowering,2,"Der Duftsteinrich ist ein niedrig wachsendes Pflanzchen mit winzigen, weissen oder lilafarbenen Blueten und suessem Duft.",Helles bis volles Licht,10-22 °C,3
|
||||
constants/lexiconBatch2.ts,171,Geissblatt,Lonicera japonica,flowering|bright_light,2,"Geissblatt ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,154,Lupine,Lupinus polyphyllus,flowering|sun,2,"Lupine ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,204,Magnolie,Magnolia grandiflora,flowering|tree|large,3,Magnolie ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch1.ts,79,Mammillaria,Mammillaria zeilmanniana,easy|flowering|succulent|sun,4,"Die Mammillaria ist ein kompakter, kugelfoermiger Kaktus, der im Fruehling einen Kranz aus rosa Blueten traegt.",Volles Sonnenlicht,15-35 °C,14
|
||||
constants/lexiconBatch1.ts,51,Gebet-Pflanze,Maranta leuconeura,pet_friendly|patterned|high_humidity,3,Die Gebet-Pflanze faltet ihre gemusterten Blaetter nachts wie Haende zusammen. Faszinierende rote und gruene Muster.,Indirektes Licht,18-27 °C,5
|
||||
constants/lexiconBatch2.ts,102,Zitronenmelisse,Melissa officinalis,easy|medicinal,2,Die Zitronenmelisse ist ein zitronig duftendes Heilkraut. Sie beruhigt die Nerven und foerdert den Schlaf.,Helles bis volles Licht,15-25 °C,5
|
||||
constants/lexiconBatch1.ts,26,Gruene Minze,Mentha spicata,easy,1,"Die Gruene Minze ist ein wuchsfreudiges Kuechenkraut mit frischem, minzigem Duft. Fuer Tee und Cocktails.",Helles bis volles Licht,15-25 °C,3
|
||||
constants/lexiconBatch2.ts,46,Tueipelfarn (Microsorum),Microsorum punctatum,high_humidity,1,"Microsorum punctatum ist ein tropischer Farn mit langen, ungeteilten, glaenzenden Wedeln. Fuer feuchte Standorte.",Helles indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch1.ts,75,Stiefmuetterchen-Orchidee,Miltoniopsis roezlii,flowering|high_humidity,2,"Die Stiefmuetterchen-Orchidee hat grosse, flache Blueten. Bevorzugt kuehle Temperaturen und hohe Luftfeuchtigkeit.",Indirektes Licht,15-22 °C,5
|
||||
constants/lexiconBatch2.ts,76,Schamkraut,Mimosa pudica,flowering|bright_light,2,"Das Schamkraut faltet seine Blaettchen blitzschnell zusammen, wenn man sie beruehrt. Ein faszinierendes Erlebnis.",Helles bis volles Licht,20-28 °C,5
|
||||
constants/lexiconBatch2.ts,179,Indianernessel,Monarda didyma,flowering|sun,2,"Indianernessel ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,47,Monstera adansonii,Monstera adansonii,easy|hanging,2,Monstera adansonii hat herzfoermige Blaetter mit zahlreichen runden Lochern. Eine rankende Zimmerpflanze.,Helles indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch2.ts,48,Monstera obliqua,Monstera obliqua,patterned|hanging,2,"Monstera obliqua ist eine seltene Monstera-Art mit filigranen Blaettern, die hauptsaechlich aus Lochern bestehen.",Helles indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch2.ts,2,Bananenpflanze,Musa acuminata,large|high_humidity,2,"Die Bananenpflanze ist eine tropische Staude mit riesigen, glaenzenden Blaettern. Im Zimmer selten fruechttragend.",Helles bis volles Licht,20-30 °C,5
|
||||
constants/lexiconBatch1.ts,109,Traubenhyazinthe,Muscari armeniacum,easy|flowering,2,"Die Traubenhyazinthe bildet dichte Trauben aus kleinen, blauen bis violetten Gloeckchen. Zuverlaessige Fruejahrszwiebel.",Helles bis volles Licht,8-18 °C,7
|
||||
constants/lexiconBatch2.ts,177,Vergissmeinnicht,Myosotis sylvatica,flowering|sun,2,"Vergissmeinnicht ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,106,Osterglocke,Narcissus pseudonarcissus,flowering,1,"Die Osterglocke ist der klassische Fruehjahrsblueher mit leuchtend gelben, trompetenfoermigen Blueten.",Helles bis volles Licht,10-18 °C,5
|
||||
constants/lexiconBatch2.ts,199,Nemesie,Nemesia strumosa,flowering|sun,2,"Nemesie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,37,Neoregelia,Neoregelia carolinae,flowering|patterned|bright_light,3,"Die Neoregelia ist eine Bromelie, bei der das Herzblatt zur Bluetzeit leuchtend rot wird. Sehr dekorativ.",Helles bis volles Licht,18-27 °C,7
|
||||
constants/lexiconBatch2.ts,79,Kannenpflanze,Nepenthes alata,hanging|high_humidity,2,"Die Kannenpflanze bildet grosse, gefuellte Kannen als Insektenfallen. Eine faszinierende, tropische Pflanze.",Helles indirektes Licht,20-30 °C,5
|
||||
constants/lexiconBatch2.ts,132,Katzenminze,Nepeta cataria,easy|sun,2,Katzenminze ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch2.ts,120,Oleander,Nerium oleander,flowering|bright_light|sun,3,"Der Oleander ist ein mediteraner Strauch mit leuchtend roten, rosa oder weissen Blueten. Sehr hitzetolerant.",Volles Sonnenlicht,15-28 °C,7
|
||||
constants/lexiconBatch2.ts,193,Ziertabak,Nicotiana alata,flowering|sun,2,"Ziertabak ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,25,Basilikum,Ocimum basilicum,easy|medicinal|sun,3,"Basilikum ist das beliebteste Kuechenkraut mit intensiv aromatischen, gruenen Blaettern. Fuer Pesto verwendet.",Volles Sonnenlicht,18-30 °C,2
|
||||
constants/lexiconBatch1.ts,74,Tanzerinnen-Orchidee,Oncidium sphacelatum,flowering|high_humidity,2,"Die Tanzerinnen-Orchidee traegt lange Rispen mit Hunderten kleiner, gelb-brauner Blueten. Sehr reichliche Bluetracht.",Helles indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch1.ts,82,Hasenohren-Kaktus,Opuntia microdasys,easy|succulent|sun,3,"Der Hasenohren-Kaktus hat flache, ovale Triebe mit dichten weissen Glochiden. Klassischer Zimmerkaktus.",Volles Sonnenlicht,10-35 °C,21
|
||||
constants/lexiconBatch2.ts,124,Majoran,Origanum majorana,easy|sun,2,Majoran ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch1.ts,28,Oregano,Origanum vulgare,easy|medicinal|sun,3,"Oregano ist ein aromatisches Kuechenkraut mit runden, behaarten Blaettern. In mediterraner Kueche beliebt.",Volles Sonnenlicht,15-25 °C,7
|
||||
constants/lexiconBatch2.ts,200,Kapmargerite,Osteospermum ecklonis,flowering|sun,2,"Kapmargerite ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,54,Kleeblume,Oxalis triangularis,flowering|patterned,2,"Die Kleeblume hat tiefviolette, dreieckige Blaetter und zarte rosa Blueten. Sie faltet die Blaetter bei Dunkelheit.",Helles indirektes Licht,15-24 °C,7
|
||||
constants/lexiconBatch2.ts,231,Glueckskastanie,Pachira aquatica,easy|tree|bright_light,3,Glueckskastanie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7
|
||||
constants/lexiconBatch1.ts,88,Mondstein-Pflanze,Pachyphytum oviferum,easy|succulent|sun,3,"Die Mondstein-Pflanze hat dicke, ovale Blaetter mit einem pastellrosafarbenen, mehligen Ueberzug.",Volles Sonnenlicht,15-25 °C,14
|
||||
constants/lexiconBatch2.ts,143,Pfingstrose,Paeonia lactiflora,flowering|sun,2,"Pfingstrose ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,6,Schraubenbaum,Pandanus veitchii,patterned|bright_light,2,"Der Schraubenbaum hat spiralfoermig angeordnete, gruenweiss gestreifte Blaetter. Sehr dekorativ und exotisch.",Helles bis volles Licht,18-27 °C,7
|
||||
constants/lexiconBatch2.ts,185,Mohn,Papaver rhoeas,flowering|sun,2,"Mohn ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,63,Passionsblume,Passiflora caerulea,flowering,1,"Die Passionsblume ist eine faszinierende Kletterpflanze mit komplex strukturierten, blau-weissen Blueten.",Helles bis volles Licht,15-27 °C,5
|
||||
constants/lexiconBatch1.ts,31,Rosengeranie,Pelargonium graveolens,easy|medicinal|sun,3,Die Rosengeranie ist eine Duftpflanze mit tief eingeschnittenen Blaettern und rosaenlichem Aroma.,Volles Sonnenlicht,15-25 °C,7
|
||||
constants/lexiconBatch2.ts,61,Efeu-Geranie,Pelargonium peltatum,easy|flowering|hanging|sun,4,"Die Efeu-Geranie hat efeufoermige, glaenzende Blaetter und bluet den ganzen Sommer in leuchtenden Farben.",Helles bis volles Licht,15-25 °C,5
|
||||
constants/lexiconBatch2.ts,174,Stehende Geranie,Pelargonium zonale,flowering|sun,2,"Stehende Geranie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,229,Wassermelonen-Peperomie,Peperomia argyreia,pet_friendly|patterned,2,Wassermelonen-Peperomie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7
|
||||
constants/lexiconBatch1.ts,102,Rippenpeperomie,Peperomia caperata,easy|pet_friendly,2,"Die Rippenpeperomie hat tief gerippte, dunkelgruene bis violette Blaetter mit einer samtigen Textur.",Helles indirektes Licht,18-26 °C,10
|
||||
constants/lexiconBatch1.ts,103,Spiegelpeperomie,Peperomia obtusifolia,easy|pet_friendly|low_light,3,"Die Spiegelpeperomie hat glaenzende, lederartige, oval-runde Blaetter in tiefem Gruen. Sehr robust.",Helles indirektes Licht,16-26 °C,10
|
||||
constants/lexiconBatch2.ts,230,Raindrop-Peperomie,Peperomia polybotrya,easy|pet_friendly,2,Raindrop-Peperomie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7
|
||||
constants/lexiconBatch2.ts,134,Shiso,Perilla frutescens,easy|sun,2,Shiso ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch1.ts,29,Petersilie,Petroselinum crispum,easy,1,Petersilie ist eines der meistgenutzten Kuechenkraeuter mit frisch-aromatischem Geschmack. Reich an Vitaminen.,Helles Licht,10-25 °C,3
|
||||
constants/lexiconBatch1.ts,34,Petunie,Petunia hybrida,easy|pet_friendly|flowering|sun,4,Die Petunie ist eine der beliebtesten Balkonpflanzen mit trichterfoermigen Blueten in unzaehligen Farben.,Volles Sonnenlicht,15-25 °C,2
|
||||
constants/lexiconBatch1.ts,69,Schmetterlingsorchidee,Phalaenopsis amabilis,flowering|high_humidity,2,Die Schmetterlingsorchidee ist die bekannteste Zimmerorchidee. Sie bluet bei guter Pflege monatelang.,Helles indirektes Licht,18-28 °C,10
|
||||
constants/lexiconBatch2.ts,50,Philodendron bipinnatifidum,Philodendron bipinnatifidum,easy|large,2,"Philodendron bipinnatifidum hat grosse, tief gelappte Blaetter. Er entwickelt einen beeindruckenden, baumfoermigen Wuchs.",Helles indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch2.ts,51,Roter Philodendron,Philodendron erubescens,easy|hanging,2,"Der Rote Philodendron hat glaenzende, herzfoermige Blaetter, die jung roetrlich erscheinen. Sehr dekorativ.",Helles indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch2.ts,243,Philodendron Pink Princess,Philodendron erubescens Pink Princess,patterned|bright_light,2,Philodendron Pink Princess ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7
|
||||
constants/lexiconBatch2.ts,49,Philodendron gloriosum,Philodendron gloriosum,patterned|large|high_humidity,3,"Philodendron gloriosum hat grosse, samtige, herzfoermige Blaetter mit weissen Rippen. Eine atemberaubende Pflanze.",Helles indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch1.ts,15,Herzblatt-Philodendron,Philodendron hederaceum,easy|hanging|low_light,3,Der Herzblatt-Philodendron ist eine pflegeleichte Kletter- oder Haengepflanze mit herzfoermigen Blaettern.,Indirektes Licht,18-28 °C,7
|
||||
constants/lexiconBatch2.ts,242,Philodendron Brasil,Philodendron hederaceum Brasil,easy|hanging|low_light,3,Philodendron Brasil ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7
|
||||
constants/lexiconBatch2.ts,40,Blaues Kanaelfarn,Phlebodium aureum,high_humidity,1,"Der Blaue Kanaelfarn hat wachsartige, blaugruene Wedel und glaenzende Wurzelstaemme. Sehr dekorativ.",Helles indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch2.ts,165,Flammenblume,Phlox paniculata,flowering|sun,2,"Flammenblume ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,44,Zwergdattelpalme,Phoenix roebelenii,tree|bright_light,2,"Die Zwergdattelpalme ist eine zierliche Palme mit eleganten, gebogenen Fiederblaettern. Tropisches Flair.",Helles bis volles Licht,18-27 °C,7
|
||||
constants/lexiconBatch2.ts,8,Goldener Bambus,Phyllostachys aurea,easy|large,2,"Der Goldene Bambus hat elegante, goldgelbe Halme mit engstehenden Knoten. Sehr dekorativ als Sichtschutz.",Helles bis volles Licht,10-30 °C,5
|
||||
constants/lexiconBatch2.ts,207,Fichte,Picea abies,tree|large|sun,3,Fichte ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch2.ts,228,Aluminium-Pflanze,Pilea cadierei,easy|pet_friendly|patterned,3,Aluminium-Pflanze ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7
|
||||
constants/lexiconBatch1.ts,2,Ufopflanze,Pilea peperomioides,easy|pet_friendly,2,"Die Ufopflanze hat unverwechselbare, runde Blaetter auf langen Stielen. Bildet leicht Ableger zum Verschenken.",Helles indirektes Licht,13-30 °C,7
|
||||
constants/lexiconBatch2.ts,81,Fettkraut,Pinguicula grandiflora,flowering|high_humidity,2,"Das Fettkraut faengt Insekten mit klebrigen Blaettern. Es bluet mit violetten, sporenartigen Blueten.",Helles indirektes Licht,10-20 °C,5
|
||||
constants/lexiconBatch2.ts,206,Kiefer,Pinus sylvestris,tree|large|sun,3,Kiefer ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch2.ts,41,Geweihfarn,Platycerium bifurcatum,hanging|high_humidity,2,"Der Geweihfarn hat gespaltene Wedel, die einem Hirschgeweih aehneln. Er ist ein epiphytischer Farn fuer Holz.",Helles indirektes Licht,15-25 °C,7
|
||||
constants/lexiconBatch2.ts,152,Buntnessel,Plectranthus scutellarioides,patterned|bright_light,2,"Buntnessel ist eine farbstarke Zierpflanze, die vor allem fuer ihr dekoratives Laub beliebt ist.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,61,Bleiwurz,Plumbago auriculata,flowering|bright_light|sun,3,"Die Bleiwurz ist ein halbimmergruener Strauch mit himmelblauen Blueten, der fast das ganze Jahr bluet.",Volles Sonnenlicht,15-27 °C,5
|
||||
constants/lexiconBatch2.ts,118,Tempel-Baum,Plumeria rubra,flowering|tree|sun,3,"Der Tempel-Baum hat intensiv duftende, sternfoermige Blueten in Weiss, Gelb oder Rosa. Klassische Tropenblume.",Volles Sonnenlicht,20-30 °C,7
|
||||
constants/lexiconBatch2.ts,44,Tueipelfarn,Polypodium vulgare,easy,1,Der Tueipelfarn ist ein heimischer Farn mit gelappten Wedeln und runden Sporenhaeufchen auf der Unterseite.,Helles indirektes Licht,10-20 °C,7
|
||||
constants/lexiconBatch2.ts,27,Speckbaum,Portulacaria afra,easy|succulent|sun,3,"Der Speckbaum ist eine sukkulente Pflanze mit roten Stielen und kleinen, runden, glaenzenden Blaettern.",Helles bis volles Licht,15-30 °C,14
|
||||
constants/lexiconBatch1.ts,36,Primel,Primula vulgaris,flowering,1,"Die Primel ist einer der ersten Fruehjahrsboten mit lebhaften Blueten in Gelb, Pink, Rot und Lila.",Helles indirektes Licht,10-18 °C,4
|
||||
constants/lexiconBatch2.ts,71,Koenigs-Protea,Protea cynaroides,flowering|large|sun,3,"Die Koenigs-Protea ist die Nationalblume Suedafrikas mit riesigen, imposanten Bluetenkoepfen. Eine echte Besonderheit.",Volles Sonnenlicht,10-25 °C,7
|
||||
constants/lexiconBatch2.ts,218,Kirschlorbeer,Prunus laurocerasus,tree|sun,2,Kirschlorbeer ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch2.ts,89,Guave,Psidium guajava,tree|sun,2,Die Guave ist ein tropischer Obstbaum mit gelblich-weissen Fruechten. Sie ist reich an Vitamin C.,Volles Sonnenlicht,18-30 °C,7
|
||||
constants/lexiconBatch2.ts,88,Granatapfelbaum,Punica granatum,flowering|tree|sun,3,"Der Granatapfelbaum hat leuchtend rote Blueten und rote, essbare Fruechte mit rubinroten Kernen.",Volles Sonnenlicht,15-28 °C,7
|
||||
constants/lexiconBatch2.ts,205,Eiche,Quercus robur,tree|large|sun,3,Eiche ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch2.ts,162,Ranunkel,Ranunculus asiaticus,flowering|sun,2,"Ranunkel ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,98,Radieschen,Raphanus sativus,easy,1,"Das Radieschen ist ein schnellwachsendes Gemuese mit runden, roten Knollen. Es reift in nur 3-4 Wochen.",Helles bis volles Licht,10-22 °C,2
|
||||
constants/lexiconBatch2.ts,52,Mini-Monstera,Rhaphidophora tetrasperma,easy|hanging,2,"Die Mini-Monstera hat monsteraaehnliche, gelochte Blaetter auf einer kompakten, klettternden Pflanze. Sehr trendig.",Helles indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch1.ts,45,Stab-Palme,Rhapis excelsa,tree|low_light,2,"Die Stab-Palme ist eine elegante Zimmerpalme mit faecherfoermigen Blaettern auf duennen, bambusartigen Staemmen.",Helles indirektes Licht,15-25 °C,7
|
||||
constants/lexiconBatch1.ts,85,Korallenkaktus,Rhipsalis baccifera,succulent|hanging,2,"Der Korallenkaktus ist ein epiphytischer Kaktus mit duennen, haengenden Trieben und kleinen weissen Beeren.",Indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch2.ts,170,Rhododendron,Rhododendron catawbiense,flowering|tree|bright_light,3,"Rhododendron ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,91,Japanische Azalee,Rhododendron simsii,flowering,1,"Die Japanische Azalee bluet im Winter und Fruehling ueppig mit leuchtend roten, rosa oder weissen Blueten.",Helles indirektes Licht,10-18 °C,4
|
||||
constants/lexiconBatch2.ts,214,Robinie,Robinia pseudoacacia,tree|large|sun,3,Robinie ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch1.ts,66,Chinesische Rose,Rosa chinensis,flowering|sun,2,Die Chinesische Rose ist eine der Stammarten vieler Gartenrosen und bluet fast ununterbrochen.,Volles Sonnenlicht,15-25 °C,5
|
||||
constants/lexiconBatch2.ts,142,Rose,Rosa x hybrida,flowering|bright_light|sun,3,"Rose ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,24,Rosmarin,Rosmarinus officinalis,easy|medicinal|sun,3,Rosmarin ist ein aromatisches Kraut mit nadelartigen Blaettern und blauen Blueten. In der Kueche unverzichtbar.,Volles Sonnenlicht,10-25 °C,7
|
||||
constants/lexiconBatch2.ts,167,Rudbeckie,Rudbeckia hirta,flowering|sun,2,"Rudbeckie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,130,Sauerampfer,Rumex acetosa,easy|sun,2,Sauerampfer ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch1.ts,94,Afrikanisches Veilchen,Saintpaulia ionantha,easy|flowering,2,"Das Afrikanische Veilchen ist eine kleine, kompakte Bluehpflanze mit samtigen Blaettern und violetten Blueten.",Helles indirektes Licht,18-25 °C,7
|
||||
constants/lexiconBatch2.ts,113,Silber-Weide,Salix alba,tree|large|medicinal,3,"Die Silber-Weide hat silbrig-glaenzende Blaetter. Weidenrinde enthält Salicylsaeure, die Grundlage von Aspirin.",Helles bis volles Licht,10-25 °C,7
|
||||
constants/lexiconBatch2.ts,195,Mehlsalbei,Salvia farinacea,flowering|sun,2,"Mehlsalbei ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,103,Salbei,Salvia officinalis,easy|medicinal|sun,3,Salbei ist ein aromatisches Heilkraut mit silbrig-gruenen Blaettern. Er hat antibakterielle und entzuendungshemmende Wirkung.,Volles Sonnenlicht,10-25 °C,7
|
||||
constants/lexiconBatch2.ts,168,Feuersalbei,Salvia splendens,flowering|sun,2,"Feuersalbei ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,112,Schwarzer Holunder,Sambucus nigra,flowering|tree|medicinal,3,Der Schwarze Holunder hat weisse Doldenbluten und schwarze Beeren. Die Fruechte werden fuer Sirup und Saft verwendet.,Helles bis volles Licht,10-25 °C,7
|
||||
constants/lexiconBatch2.ts,17,Zylindrischer Bogenhanf,Sansevieria cylindrica,easy|succulent|sun,3,"Der Zylindrische Bogenhanf hat zylindrische, aufrechte Blaetter, die sich nach oben verjuengen. Sehr pflegeleicht.",Helles bis volles Licht,15-27 °C,14
|
||||
constants/lexiconBatch2.ts,78,Purpursonnentau,Sarracenia purpurea,high_humidity|sun,2,Der Purpursonnentau ist eine fleischfressende Kannenpflanze mit purpurroten Kannen. Faengt Insekten.,Volles Sonnenlicht,5-25 °C,3
|
||||
constants/lexiconBatch2.ts,123,Bohnenkraut,Satureja hortensis,easy|sun,2,Bohnenkraut ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch2.ts,11,Grosse Strahlenaralie,Schefflera actinophylla,easy|tree|large,3,"Die Grosse Strahlenaralie kann grosse, handfoermige Blaetter entwickeln. Sie ist ideal als Zimmerstrauch.",Helles indirektes Licht,18-27 °C,7
|
||||
constants/lexiconBatch2.ts,10,Strahlenaralie,Schefflera arboricola,easy|tree|air_purifier,3,"Die Strahlenaralie hat fingerfoermig angeordnete, glaenzende Blaetter auf langen Stielen. Sehr robuste Zimmerpflanze.",Helles indirektes Licht,15-25 °C,7
|
||||
constants/lexiconBatch2.ts,235,Falsche Aralie,Schefflera elegantissima,tree|bright_light,2,Falsche Aralie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7
|
||||
constants/lexiconBatch1.ts,8,Weihnachtskaktus,Schlumbergera truncata,easy|flowering|succulent,3,"Der Weihnachtskaktus erfreut zur Weihnachtszeit mit leuchtenden Blueten in Rosa, Rot oder Weiss.",Helles indirektes Licht,15-21 °C,7
|
||||
constants/lexiconBatch1.ts,55,Satinpothos,Scindapsus pictus,easy|patterned|hanging,3,"Der Satinpothos hat samtig-glaenzende, silbrig gefleckte Blaetter auf langen, haengenden Ranken.",Helles indirektes Licht,18-28 °C,7
|
||||
constants/lexiconBatch1.ts,7,Eselschwanz,Sedum morganianum,easy|succulent|hanging|sun,4,"Der Eselschwanz ist eine haengende Sukkulente mit langen Trieben aus dichten, blaugruenen Blaettchen.",Volles Sonnenlicht,15-25 °C,14
|
||||
constants/lexiconBatch2.ts,45,Regenbogenmoos,Selaginella uncinata,patterned|high_humidity,2,"Das Regenbogenmoos hat schuppenfoermige Blaetter, die im Licht schillernd irisieren. Dekorativ fuer Terrarien.",Helles indirektes Licht,18-27 °C,5
|
||||
constants/lexiconBatch1.ts,100,Perlenschnur-Pflanze,Senecio rowleyanus,easy|succulent|hanging,3,"Die Perlenschnur-Pflanze hat haengende Ranken mit kugelfoermigen, perlenaehnlichen Blaettern. Einzigartige Sukkulente.",Helles bis volles Licht,15-27 °C,14
|
||||
constants/lexiconBatch2.ts,28,Blauer Kreuzkraut,Senecio serpens,easy|succulent|sun,3,"Der Blaue Kreuzkraut hat zylindrische, blaublaugruene Blaetter und einen kriechenden Wuchs. Sehr dekorativ.",Helles bis volles Licht,15-25 °C,14
|
||||
constants/lexiconBatch2.ts,91,Tomate,Solanum lycopersicum,easy,1,"Die Tomate ist eine beliebte Gemuese- und Balkonpflanze mit roten, saftigen Fruechten. Im Topf kultivierbar.",Volles Sonnenlicht,18-28 °C,3
|
||||
constants/lexiconBatch2.ts,93,Aubergine,Solanum melongena,bright_light|sun,2,"Die Aubergine ist eine Gemuesepflanze mit grossen, violetten Fruechten. Sie benoetigt viel Waerme und Sonne.",Volles Sonnenlicht,20-30 °C,5
|
||||
constants/lexiconBatch2.ts,238,Bubikopf,Soleirolia soleirolii,pet_friendly|high_humidity,2,Bubikopf ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,15-24 C,4
|
||||
constants/lexiconBatch2.ts,213,Eberesche,Sorbus aucuparia,tree|large|sun,3,Eberesche ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch2.ts,96,Spinat,Spinacia oleracea,easy,1,Spinat ist ein naehrstoffreiches Blattgemuese mit dunkelgruenen Blaettern. Reich an Eisen und Vitaminen.,Helles bis volles Licht,10-20 °C,3
|
||||
constants/lexiconBatch2.ts,222,Spierstrauch,Spiraea japonica,flowering|tree|sun,3,Spierstrauch ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch2.ts,25,Aasblume,Stapelia grandiflora,flowering|succulent|sun,3,"Die Aasblume hat fleischige, gruene Staengel und riesige, sternfoermige Blueten mit aasartigem Duft.",Helles bis volles Licht,18-30 °C,14
|
||||
constants/lexiconBatch1.ts,60,Madagaskar-Jasmin,Stephanotis floribunda,flowering,1,"Der Madagaskar-Jasmin hat dicke, glaenzende Blaetter und wachsweisse, intensiv duftende Blueten. Klassische Hochzeitsblume.",Helles indirektes Licht,18-25 °C,7
|
||||
constants/lexiconBatch2.ts,131,Stevia,Stevia rebaudiana,easy|sun,2,Stevia ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5
|
||||
constants/lexiconBatch2.ts,1,Weisse Strelitzie,Strelitzia nicolai,tree|large|bright_light,3,"Die Weisse Strelitzie ist ein beeindruckender Zimmerstrauch mit grossen, blaugruenen Blaettern und weiss-blauen Blueten.",Helles bis volles Licht,18-27 °C,7
|
||||
constants/lexiconBatch1.ts,3,Paradiesvogelblume,Strelitzia reginae,flowering|large|sun,3,"Die Paradiesvogelblume beeindruckt mit leuchtend orangefarbenen und blauen Blueten, die einem Vogel aehneln.",Volles Sonnenlicht,18-26 °C,7
|
||||
constants/lexiconBatch1.ts,95,Drehfrucht,Streptocarpus hybridus,flowering,1,"Die Drehfrucht ist ein Gesneriengewaechs mit langen, gerippten Blaettern und trichterfoermigen Blueten in Lila oder Rosa.",Helles indirektes Licht,15-22 °C,7
|
||||
constants/lexiconBatch1.ts,52,Stromanthe,Stromanthe sanguinea,patterned|high_humidity,2,Die Stromanthe hat dekorative Blaetter mit weissem Muster und leuchtend roter Unterseite. Familie der Marantaceen.,Helles indirektes Licht,18-25 °C,5
|
||||
constants/lexiconBatch2.ts,166,Herbstaster,Symphyotrichum novi-belgii,flowering|sun,2,"Herbstaster ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,56,Pfeilblatt,Syngonium podophyllum,easy|hanging,2,"Das Pfeilblatt hat charakteristisch pfeilfoermige Blaetter, die sich mit dem Alter weiterentwickeln.",Helles indirektes Licht,16-27 °C,7
|
||||
constants/lexiconBatch2.ts,149,Flieder,Syringa vulgaris,flowering|tree|sun,3,"Flieder ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,66,Studentenblume,Tagetes patula,easy|flowering|sun,3,Die Studentenblume ist eine robuste Sommerblume mit orangen oder gelben Blueten. Sie haelt Schadlinge fern.,Volles Sonnenlicht,15-28 °C,3
|
||||
constants/lexiconBatch2.ts,244,Philodendron Xanadu,Thaumatophyllum xanadu,bright_light,1,Philodendron Xanadu ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7
|
||||
constants/lexiconBatch1.ts,27,Thymian,Thymus vulgaris,easy|medicinal|sun,3,"Thymian ist ein kleiner, aromatischer Strauch mit winzigen Blaettern und rosa Blueten. Wichtiges Kuechenkraut.",Volles Sonnenlicht,10-25 °C,7
|
||||
constants/lexiconBatch2.ts,33,Luftpflanze,Tillandsia ionantha,easy,1,Die Luftpflanze ist eine kompakte Bromelie ohne Topferde. Sie nimmt Wasser und Naehrstoffe ueber die Blattschuppen auf.,Helles bis volles Licht,15-30 °C,3
|
||||
constants/lexiconBatch2.ts,32,Spanisches Moos,Tillandsia usneoides,easy|hanging,2,"Das Spanische Moos ist eine epiphytische Bromelie ohne Wurzeln, die in der Luft haengt. Es benoetigt nur Feuchtigkeitsbespruehing.",Helles bis volles Licht,15-30 °C,3
|
||||
constants/lexiconBatch2.ts,55,Weisse Tradescantia,Tradescantia fluminensis,easy|hanging,2,Die Weisse Tradescantia hat gruene Blaetter mit weisslichen Unterseiten. Sehr robust und schnellwachsend.,Helles indirektes Licht,15-25 °C,5
|
||||
constants/lexiconBatch2.ts,54,Lila Tradescantia,Tradescantia pallida,easy|hanging|sun,3,Die Lila Tradescantia hat leuchtend purpurrote Blaetter und ist sehr auffaellig. Sie liebt viel Licht.,Helles bis volles Licht,15-25 °C,5
|
||||
constants/lexiconBatch1.ts,17,Zebrakraut,Tradescantia zebrina,easy|patterned|hanging,3,Das Zebrakraut faellt durch seine silbrig-lila gestreiften Blaetter auf. Schnellwachsende Haengepflanze.,Helles indirektes Licht,15-25 °C,5
|
||||
constants/lexiconBatch2.ts,151,Kapuzinerkresse,Tropaeolum majus,flowering|sun,2,"Kapuzinerkresse ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,107,Tulpe,Tulipa gesneriana,easy|flowering,2,Die Tulpe ist eine der beliebtesten Fruehjahrsblueher mit kelchfoermigen Blueten in unzaehligen Farben.,Helles bis volles Licht,8-18 °C,5
|
||||
constants/lexiconBatch2.ts,111,Grosse Brennessel,Urtica dioica,medicinal,1,Die Grosse Brennessel ist eine Heilpflanze mit brennenden Haaren. Die Blaetter sind reich an Vitaminen und Mineralien.,Helles bis volles Licht,10-25 °C,7
|
||||
constants/lexiconBatch2.ts,82,Wasserschlauch,Utricularia gibba,high_humidity|sun,2,Der Wasserschlauch ist eine wasserbewohnende fleischfressende Pflanze mit Schlaeuchen als Insektenfallen.,Helles bis volles Licht,15-25 °C,2
|
||||
constants/lexiconBatch2.ts,104,Baldrian,Valeriana officinalis,flowering|medicinal,2,Baldrian ist ein bekanntes Heilkraut mit weissen bis roeslichen Blueten. Die Wurzeln werden zur Schlaffoerderung verwendet.,Helles bis volles Licht,15-25 °C,7
|
||||
constants/lexiconBatch1.ts,72,Vanda-Orchidee,Vanda coerulea,flowering|bright_light|high_humidity,3,Die Vanda-Orchidee ist bekannt fuer ihre seltene blaue Bluetenfarbe. Epiphytische Orchidee mit grossen Blueten.,Helles bis volles Licht,20-30 °C,3
|
||||
constants/lexiconBatch1.ts,76,Vanille,Vanilla planifolia,flowering|high_humidity,2,"Die Vanille ist eine kletternde Orchidee, aus deren Fruechten das beliebte Gewuerz gewonnen wird.",Helles indirektes Licht,20-30 °C,5
|
||||
constants/lexiconBatch2.ts,192,Koenigskerze,Verbascum thapsus,flowering|medicinal|sun,3,"Koenigskerze ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,164,Eisenkraut,Verbena bonariensis,flowering|sun,2,"Eisenkraut ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch2.ts,198,Hornveilchen,Viola cornuta,flowering|sun,2,"Hornveilchen ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4
|
||||
constants/lexiconBatch1.ts,35,Stiefmuetterchen,Viola wittrockiana,easy|flowering,2,Das Stiefmuetterchen ist ein bekannter Fruehjahrsblueher mit charakteristisch gezeichneten Blueten.,Helles bis volles Licht,5-18 °C,3
|
||||
constants/lexiconBatch2.ts,35,Flammen-Bromelie,Vriesea splendens,flowering|patterned|high_humidity,3,"Die Flammen-Bromelie hat gebänderte, dunkelgruene Blaetter und einen spektakulaeren, roten Bluetenstand.",Helles indirektes Licht,18-25 °C,7
|
||||
constants/lexiconBatch2.ts,5,Mexikanische Fächerpalme,Washingtonia robusta,tree|large|sun,3,"Die Mexikanische Fächerpalme ist eine schlanke, hohe Palme mit faecherfoermigen Blaettern. Sehr hitzetolerant.",Volles Sonnenlicht,15-35 °C,10
|
||||
constants/lexiconBatch2.ts,221,Weigelie,Weigela florida,flowering|tree|sun,3,Weigelie ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7
|
||||
constants/lexiconBatch1.ts,65,Chinesischer Blauregen,Wisteria sinensis,flowering|large|sun,3,"Der Chinesische Blauregen ist ein ueppiger Kletterkuenstler mit langen, duftenden Bluetentrauben in Lila.",Volles Sonnenlicht,10-25 °C,7
|
||||
constants/lexiconBatch2.ts,246,Yucca aloifolia,Yucca aloifolia,easy|tree|sun,3,Yucca aloifolia ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Volles Sonnenlicht,18-30 C,10
|
||||
constants/lexiconBatch1.ts,40,Yucca-Palme,Yucca elephantipes,easy|tree|sun,3,"Die Yucca-Palme ist eine robuste Zimmerpflanze mit starrem, immergruenem Blaetterschopf auf einem dicken Stamm.",Helles bis volles Licht,15-28 °C,14
|
||||
constants/lexiconBatch2.ts,70,Calla,Zantedeschia aethiopica,flowering|high_humidity,2,"Die Calla hat elegante, trichterfoermige weisse Hochblaetter und glaenzende, herzfoermige Blaetter. Sehr edel.",Helles indirektes Licht,15-24 °C,7
|
||||
constants/lexiconBatch2.ts,75,Ingwer,Zingiber officinale,medicinal|high_humidity,2,Ingwer ist eine tropische Gewuerzpflanze mit aromatischen Knollen. Die Blaetter sind schilfartig.,Helles indirektes Licht,20-30 °C,5
|
||||
constants/lexiconBatch2.ts,65,Zinnie,Zinnia elegans,easy|flowering|sun,3,"Die Zinnie ist eine leuchtende Sommerblume mit grossen, dahlienaehnlichen Blueten. Sehr robust und hitzetolerant.",Volles Sonnenlicht,18-30 °C,3
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
category,source_file,source_index,name,botanical_name,description,light,temp,water_interval_days,all_categories,risk_flags,audit_status,evidence_source,evidence_url,notes
|
||||
air_purifier,constants/lexiconBatch1.ts,43,Bergpalme,Chamaedorea elegans,Die Bergpalme ist eine kompakte Zimmerpalme fuer schattigere Standorte. Ideal fuer dunkle Innenraeume.,Wenig bis helles Licht,15-25 °C,7,easy|pet_friendly|tree|air_purifier|low_light,air_purifier_requires_external_evidence|pet_friendly_requires_external_evidence,,,,
|
||||
air_purifier,constants/lexiconBatch1.ts,48,Dieffenbachie,Dieffenbachia seguine,"Die Dieffenbachie ist eine tropische Blattschmuckpflanze mit grossen, gruen-weiss gefleckten Blaettern.",Helles indirektes Licht,18-26 °C,7,easy|air_purifier|low_light,air_purifier_requires_external_evidence,,,,
|
||||
air_purifier,constants/lexiconBatch1.ts,14,Maisstrauch,Dracaena fragrans,"Der Maisstrauch ist eine robuste Zimmerpflanze mit breiten, gestreiften Blaettern. Gedeiht auch bei wenig Licht.",Helles indirektes Licht,15-25 °C,10,easy|tree|air_purifier|low_light,air_purifier_requires_external_evidence,,,,
|
||||
air_purifier,constants/lexiconBatch1.ts,13,Drachenbaum,Dracaena marginata,"Der Drachenbaum ist eine schlanke Zimmerpflanze mit roten, schmalen Blaettern auf langen Staemmen.",Helles indirektes Licht,15-25 °C,10,easy|tree|air_purifier,air_purifier_requires_external_evidence,,,,
|
||||
air_purifier,constants/lexiconBatch1.ts,42,Goldfruchtpalme,Dypsis lutescens,Die Goldfruchtpalme ist eine elegante Zimmerpalme mit gelblich-gruenen Stielen und gefiederten Wedeln.,Helles indirektes Licht,18-27 °C,5,pet_friendly|tree|air_purifier,air_purifier_requires_external_evidence|pet_friendly_requires_external_evidence,,,,
|
||||
air_purifier,constants/lexiconBatch1.ts,16,Marmor-Efeutute,Epipremnum aureum Marble Queen,Die Marmor-Efeutute hat cremeweiss-gruen marmorierte Blaetter. Eine dekorative Variante der klassischen Efeutute.,Helles indirektes Licht,15-30 °C,7,easy|hanging|air_purifier,air_purifier_requires_external_evidence,,,,
|
||||
air_purifier,constants/lexiconBatch2.ts,53,Neon-Efeutute,Epipremnum pinnatum Neon,Die Neon-Efeutute hat leuchtend limonengruene Blaetter. Sehr auffaellig und pflegeleicht.,Helles indirektes Licht,15-30 °C,7,easy|hanging|air_purifier,air_purifier_requires_external_evidence,,,,
|
||||
air_purifier,constants/lexiconBatch1.ts,1,Birkenfeige,Ficus benjamina,"Die Birkenfeige ist ein eleganter Zimmerstrauch mit haengenden Aesten und kleinen, glaenzenden Blaettern.",Helles indirektes Licht,16-24 °C,7,tree|air_purifier,air_purifier_requires_external_evidence,,,,
|
||||
air_purifier,constants/lexiconBatch1.ts,38,Gummibaum,Ficus elastica,"Der Gummibaum ist eine imposante Zimmerpflanze mit grossen, glaenzenden, lederartigen Blaettern. Reinigt die Luft.",Helles indirektes Licht,16-24 °C,10,easy|tree|air_purifier,air_purifier_requires_external_evidence,,,,
|
||||
air_purifier,constants/lexiconBatch1.ts,68,Gerbera,Gerbera jamesonii,"Die Gerbera ist eine farbenfrohe Schnittblume mit grossen, sonnenblumenaehnlichen Blueten. Sehr beliebt.",Helles bis volles Licht,15-25 °C,5,flowering|air_purifier|bright_light,air_purifier_requires_external_evidence,,,,
|
||||
air_purifier,constants/lexiconBatch1.ts,37,Efeu,Hedera helix,"Efeu ist eine robuste Kletter- und Haengepflanze mit charakteristischen, dreilappigen Blaettern. Sehr langlebig.",Wenig bis helles Licht,10-20 °C,7,easy|hanging|air_purifier|low_light,air_purifier_requires_external_evidence,,,,
|
||||
air_purifier,constants/lexiconBatch2.ts,10,Strahlenaralie,Schefflera arboricola,"Die Strahlenaralie hat fingerfoermig angeordnete, glaenzende Blaetter auf langen Stielen. Sehr robuste Zimmerpflanze.",Helles indirektes Licht,15-25 °C,7,easy|tree|air_purifier,air_purifier_requires_external_evidence,,,,
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
category,source_file,source_index,name,botanical_name,description,light,temp,water_interval_days,all_categories,risk_flags,audit_status,evidence_source,evidence_url,notes
|
||||
bright_light,constants/lexiconBatch2.ts,225,Alocasia zebrina,Alocasia zebrina,Alocasia zebrina ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5,bright_light|high_humidity,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,232,Norfolk-Tanne,Araucaria heterophylla,Norfolk-Tanne ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,tree|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,175,Eisbegonie,Begonia semperflorens-cultorum,"Eisbegonie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch1.ts,62,Bougainvillea,Bougainvillea spectabilis,"Die Bougainvillea ist eine rankenreiche Kletterpflanze mit leuchtend farbigen Hochblaettern in Rot, Orange oder Pink.",Volles Sonnenlicht,18-30 °C,5,flowering|bright_light|sun,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,184,Trompetenwinde,Campsis radicans,"Trompetenwinde ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,157,Clematis,Clematis viticella,"Clematis ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,224,Kroton,Codiaeum variegatum,Kroton ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,patterned|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,245,Kaffeepflanze arabica nana,Coffea arabica Nana,Kaffeepflanze arabica nana ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,137,Wasabi,Eutrema japonicum,"Wasabi ist ein seltenes Wuerzkraut, das gleichmaessige Feuchte und eher kuehle Bedingungen bevorzugt.",Helles indirektes Licht,8-20 C,4,bright_light|high_humidity,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,248,Ficus altissima,Ficus altissima,Ficus altissima ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,tree|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch1.ts,39,Geigenfeige,Ficus lyrata,"Die Geigenfeige ist ein Trendbaum mit grossen, geigenfoermigen Blaettern. Benoetigt viel Licht.",Helles indirektes Licht,18-27 °C,7,tree|large|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,247,Ficus microcarpa,Ficus microcarpa,Ficus microcarpa ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,easy|tree|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch1.ts,68,Gerbera,Gerbera jamesonii,"Die Gerbera ist eine farbenfrohe Schnittblume mit grossen, sonnenblumenaehnlichen Blueten. Sehr beliebt.",Helles bis volles Licht,15-25 °C,5,flowering|air_purifier|bright_light,air_purifier_requires_external_evidence,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,72,Heliconia,Heliconia psittacorum,"Die Heliconia hat leuchtend orangefarbe oder rote, bootsfoermige Hochblaetter. Eine exotische Tropenpflanze.",Helles bis volles Licht,20-30 °C,5,flowering|bright_light|high_humidity,,,,,
|
||||
bright_light,constants/lexiconBatch1.ts,21,Hibiskus,Hibiscus rosa-sinensis,"Der Hibiskus begeistert mit grossen, trompetenfoermigen Blueten in Rot, Orange und Rosa.",Volles Sonnenlicht,18-28 °C,3,flowering|bright_light|sun,,,,,
|
||||
bright_light,constants/lexiconBatch1.ts,105,Ritterstern,Hippeastrum hybrid,"Der Ritterstern beeindruckt im Winter mit riesigen, trompetenfoermigen Blueten in Rot, Pink oder Weiss.",Helles bis volles Licht,18-25 °C,7,flowering|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,148,Hortensie,Hydrangea macrophylla,"Hortensie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Helles bis halbschattiges Licht,8-24 C,4,flowering|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,227,Punktblatt,Hypoestes phyllostachya,Punktblatt ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,patterned|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,176,Gartenbalsamine,Impatiens balsamina,"Gartenbalsamine ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,172,Arabischer Jasmin,Jasminum sambac,"Arabischer Jasmin ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,197,Traenendes Herz,Lamprocapnos spectabilis,"Traenendes Herz ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,64,Wandelroeschen,Lantana camara,"Das Wandelroeschen hat kugelige Bluetenkoepfe, die die Farbe von Gelb ueber Orange zu Rot wechseln. Sehr attraktiv.",Volles Sonnenlicht,18-28 °C,5,flowering|bright_light|sun,,,,,
|
||||
bright_light,constants/lexiconBatch1.ts,23,Echter Lavendel,Lavandula angustifolia,Der Echte Lavendel ist ein aromatischer Halbstrauch mit lilafarbenen Bluetenaehren. Herrlicher Duft.,Volles Sonnenlicht,10-25 °C,10,medicinal|bright_light|sun,medicinal_requires_external_evidence,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,69,Ostertrompete,Lilium longiflorum,"Die Ostertrompete hat grosse, weisse, trichterfoermige Blueten mit intensivem Duft. Klassische Osterblume.",Helles bis volles Licht,15-25 °C,5,flowering|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,4,Chinesische Fächerpalme,Livistona chinensis,"Die Chinesische Fächerpalme hat grosse, faecherfoermige Blaetter auf einem einzelnen Stamm. Sehr dekorativ.",Helles bis volles Licht,15-25 °C,7,tree|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,171,Geissblatt,Lonicera japonica,"Geissblatt ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,76,Schamkraut,Mimosa pudica,"Das Schamkraut faltet seine Blaettchen blitzschnell zusammen, wenn man sie beruehrt. Ein faszinierendes Erlebnis.",Helles bis volles Licht,20-28 °C,5,flowering|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,37,Neoregelia,Neoregelia carolinae,"Die Neoregelia ist eine Bromelie, bei der das Herzblatt zur Bluetzeit leuchtend rot wird. Sehr dekorativ.",Helles bis volles Licht,18-27 °C,7,flowering|patterned|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,120,Oleander,Nerium oleander,"Der Oleander ist ein mediteraner Strauch mit leuchtend roten, rosa oder weissen Blueten. Sehr hitzetolerant.",Volles Sonnenlicht,15-28 °C,7,flowering|bright_light|sun,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,231,Glueckskastanie,Pachira aquatica,Glueckskastanie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,easy|tree|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,6,Schraubenbaum,Pandanus veitchii,"Der Schraubenbaum hat spiralfoermig angeordnete, gruenweiss gestreifte Blaetter. Sehr dekorativ und exotisch.",Helles bis volles Licht,18-27 °C,7,patterned|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,243,Philodendron Pink Princess,Philodendron erubescens Pink Princess,Philodendron Pink Princess ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,patterned|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch1.ts,44,Zwergdattelpalme,Phoenix roebelenii,"Die Zwergdattelpalme ist eine zierliche Palme mit eleganten, gebogenen Fiederblaettern. Tropisches Flair.",Helles bis volles Licht,18-27 °C,7,tree|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,152,Buntnessel,Plectranthus scutellarioides,"Buntnessel ist eine farbstarke Zierpflanze, die vor allem fuer ihr dekoratives Laub beliebt ist.",Volles bis helles Licht,10-24 C,4,patterned|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch1.ts,61,Bleiwurz,Plumbago auriculata,"Die Bleiwurz ist ein halbimmergruener Strauch mit himmelblauen Blueten, der fast das ganze Jahr bluet.",Volles Sonnenlicht,15-27 °C,5,flowering|bright_light|sun,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,170,Rhododendron,Rhododendron catawbiense,"Rhododendron ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|tree|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,142,Rose,Rosa x hybrida,"Rose ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|bright_light|sun,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,235,Falsche Aralie,Schefflera elegantissima,Falsche Aralie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,tree|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,93,Aubergine,Solanum melongena,"Die Aubergine ist eine Gemuesepflanze mit grossen, violetten Fruechten. Sie benoetigt viel Waerme und Sonne.",Volles Sonnenlicht,20-30 °C,5,bright_light|sun,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,1,Weisse Strelitzie,Strelitzia nicolai,"Die Weisse Strelitzie ist ein beeindruckender Zimmerstrauch mit grossen, blaugruenen Blaettern und weiss-blauen Blueten.",Helles bis volles Licht,18-27 °C,7,tree|large|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,244,Philodendron Xanadu,Thaumatophyllum xanadu,Philodendron Xanadu ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch1.ts,72,Vanda-Orchidee,Vanda coerulea,Die Vanda-Orchidee ist bekannt fuer ihre seltene blaue Bluetenfarbe. Epiphytische Orchidee mit grossen Blueten.,Helles bis volles Licht,20-30 °C,3,flowering|bright_light|high_humidity,,,,,
|
||||
|
|
|
@ -0,0 +1,133 @@
|
|||
category,source_file,source_index,name,botanical_name,description,light,temp,water_interval_days,all_categories,risk_flags,audit_status,evidence_source,evidence_url,notes
|
||||
easy,constants/lexiconBatch2.ts,31,Adromischus,Adromischus cristatus,Adromischus ist eine kompakte Sukkulente mit ungewoehnlich wellenrandigen Blaettern auf kurzen Staengeln.,Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,50,Aglaoneme,Aglaonema commutatum,Die Aglaoneme ist eine dekorative Zimmerpflanze mit silbrig-gruen gemusterten Blaettern. Tolerant gegenueber wenig Licht.,Wenig bis helles Licht,15-26 °C,7,easy|patterned|low_light,,,,,
|
||||
easy,constants/lexiconBatch1.ts,30,Schnittlauch,Allium schoenoprasum,Schnittlauch ist ein beliebtes Kuechenkraut mit roehrenfoermigen Blaettern und lila Blueten.,Helles bis volles Licht,10-25 °C,3,easy,,,,,
|
||||
easy,constants/lexiconBatch2.ts,135,Schnittknoblauch,Allium tuberosum,Schnittknoblauch ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,89,Kap-Aloe,Aloe arborescens,"Die Kap-Aloe ist eine strauchige Aloe mit schmalen, gezaehnten Blaettern und leuchtend roten Bluetenaehren im Winter.",Volles Sonnenlicht,10-30 °C,14,easy|succulent|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,128,Zitronenverbene,Aloysia citrodora,Zitronenverbene ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,140,Dill,Anethum graveolens,Dill ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,125,Kerbel,Anthriscus cerefolium,Kerbel ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,122,Estragon,Artemisia dracunculus,Estragon ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,16,Schusterpflanze,Aspidistra elatior,"Die Schusterpflanze ist eine extrem robuste Zimmerpflanze mit langen, dunkelgruenen Blaettern. Vertraegt tiefe Temperaturen.",Wenig bis helles Licht,10-20 °C,14,easy|low_light,,,,,
|
||||
easy,constants/lexiconBatch2.ts,43,Vogelnest-Farn,Asplenium nidus,"Der Vogelnest-Farn hat ganzrandige, glaenzende Wedel, die eine Nestform bilden. Sehr dekorativ und robust.",Helles indirektes Licht,18-27 °C,5,easy|low_light|high_humidity,,,,,
|
||||
easy,constants/lexiconBatch2.ts,13,Japanische Aucube,Aucuba japonica,"Die Japanische Aucube hat glaenzende, gruene oder gelbgefleckte Blaetter. Sehr schattenvertraeglich.",Wenig bis helles Licht,10-20 °C,7,easy|low_light,,,,,
|
||||
easy,constants/lexiconBatch2.ts,7,Bambusrohr,Bambusa vulgaris,Das Bambusrohr ist eine schnell wachsende Bambusart mit gelbgruenen Halmen. Sehr dekorativ und vielseitig nutzbar.,Helles bis volles Licht,15-30 °C,5,easy|large,,,,,
|
||||
easy,constants/lexiconBatch1.ts,41,Pferdeschwanzpalme,Beaucarnea recurvata,"Die Pferdeschwanzpalme hat einen verdickten Stammbasis als Wasserspeicher und lange, schmale Blaetter.",Volles Sonnenlicht,15-30 °C,21,easy|succulent|tree|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,97,Mangold,Beta vulgaris,"Mangold ist ein farbenfrohes Blattgemuese mit bunten Stielen in Rot, Gelb, Orange und Weiss.",Helles bis volles Licht,10-25 °C,3,easy,,,,,
|
||||
easy,constants/lexiconBatch2.ts,38,Billbergia,Billbergia nutans,"Die Billbergia ist eine robuste Bromelie mit schmalen, gruenen Blaettern und hängenden, blauen und gruenen Blueten.",Helles indirektes Licht,15-25 °C,7,easy|flowering,,,,,
|
||||
easy,constants/lexiconBatch2.ts,129,Borretsch,Borago officinalis,Borretsch ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,63,Calibrachoa,Calibrachoa hybrida,"Calibrachoa ist eine petunienaehnliche Haengepflanze mit unzaehligen, kleinen Trichterbluten in allen Farben.",Volles Sonnenlicht,15-25 °C,2,easy|flowering|hanging|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,56,Callisia,Callisia repens,"Callisia repens ist ein kleines, kriechendes Kraut mit winzigen, gruenen Blaettern. Ideal fuer haengende Behaelter.",Helles indirektes Licht,15-25 °C,5,easy|hanging,,,,,
|
||||
easy,constants/lexiconBatch2.ts,92,Chili,Capsicum annuum,"Chili ist eine beliebte Gemuese- und Zierpflanze mit leuchtenden, roten oder orangen Fruechten. Im Topf kultivierbar.",Volles Sonnenlicht,20-30 °C,4,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch1.ts,81,Peruanischer Fackelkaktus,Cereus peruvianus,"Der Peruanische Fackelkaktus ist ein saeulenfoermiger Kaktus, der im Innenraum bis zu 2 m hoch werden kann.",Volles Sonnenlicht,15-35 °C,21,easy|succulent|large|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,99,Herzkette,Ceropegia woodii,"Die Herzkette hat duenne, haengende Ranken mit herzfoermigen, silbergrau gemusterten Blaettchen.",Helles indirektes Licht,15-27 °C,14,easy|succulent|patterned|hanging,,,,,
|
||||
easy,constants/lexiconBatch1.ts,43,Bergpalme,Chamaedorea elegans,Die Bergpalme ist eine kompakte Zimmerpalme fuer schattigere Standorte. Ideal fuer dunkle Innenraeume.,Wenig bis helles Licht,15-25 °C,7,easy|pet_friendly|tree|air_purifier|low_light,air_purifier_requires_external_evidence|pet_friendly_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,138,Roemische Kamille,Chamaemelum nobile,Roemische Kamille ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,101,Kamille,Chamomilla recutita,"Die Kamille ist ein beliebtes Heilkraut mit kleinen, weiss-gelben Blueten. Das aetherische Oel wirkt beruhigend.",Volles Sonnenlicht,15-25 °C,5,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,84,Kaffeestrauch,Coffea arabica,"Der Kaffeestrauch hat glaenzende, dunkelgruene Blaetter und entwickelt rote Kaffeekirschen. Kann im Topf gehalten werden.",Helles indirektes Licht,18-25 °C,7,easy,,,,,
|
||||
easy,constants/lexiconBatch2.ts,14,Keulenlilie,Cordyline australis,"Die Keulenlilie hat lange, schmale, gruene oder rotbraune Blaetter in einem dekorativen Schopf.",Helles bis volles Licht,10-25 °C,7,easy|tree|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,15,Tiroler Keulenlilie,Cordyline fruticosa,"Die Tiroler Keulenlilie hat leuchtend rote, gruene oder buntlaubige Blaetter. Eine exotische Zimmerpflanze.",Helles indirektes Licht,18-27 °C,7,easy,,,,,
|
||||
easy,constants/lexiconBatch2.ts,139,Koriander,Coriandrum sativum,Koriander ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,29,Kotyledon,Cotyledon orbiculata,"Kotyledon hat dickfleischige, runde Blaetter mit einem mehligen, weisslichen Belag. Sehr trockenheitsresistent.",Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,26,Moos-Crassula,Crassula muscosa,"Die Moos-Crassula hat dicht aneinandergereihte, winzige gruene Blaetter auf unverzweigten Trieben. Sieht aus wie Moos.",Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,5,Jadepflanze,Crassula ovata,"Die Jadepflanze ist eine langlebige Sukkulente mit dicken, ovalen Blaettern. In Japan gilt sie als Gluecksbringer.",Helles bis volles Licht,15-24 °C,14,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,110,Krokus,Crocus vernus,"Der Krokus ist einer der ersten Fruehjahrsboten mit kelchfoermigen Blueten in Lila, Weiss und Gelb.",Helles bis volles Licht,5-15 °C,7,easy|flowering,,,,,
|
||||
easy,constants/lexiconBatch2.ts,94,Gurke,Cucumis sativus,"Die Gurke ist eine rankende Gemuesepflanze mit gruenen, erfrischenden Fruechten. Im Balkonkasten kultivierbar.",Volles Sonnenlicht,18-28 °C,3,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,127,Zitronengras,Cymbopogon citratus,Zitronengras ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,99,Karotte,Daucus carota,Die Karotte ist eine beliebte Gemuesepflanze mit orangefarbenen Wurzeln. Im tiefen Topf kultivierbar.,Helles bis volles Licht,15-22 °C,5,easy,,,,,
|
||||
easy,constants/lexiconBatch1.ts,48,Dieffenbachie,Dieffenbachia seguine,"Die Dieffenbachie ist eine tropische Blattschmuckpflanze mit grossen, gruen-weiss gefleckten Blaettern.",Helles indirektes Licht,18-26 °C,7,easy|air_purifier|low_light,air_purifier_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch1.ts,14,Maisstrauch,Dracaena fragrans,"Der Maisstrauch ist eine robuste Zimmerpflanze mit breiten, gestreiften Blaettern. Gedeiht auch bei wenig Licht.",Helles indirektes Licht,15-25 °C,10,easy|tree|air_purifier|low_light,air_purifier_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch1.ts,13,Drachenbaum,Dracaena marginata,"Der Drachenbaum ist eine schlanke Zimmerpflanze mit roten, schmalen Blaettern auf langen Staemmen.",Helles indirektes Licht,15-25 °C,10,easy|tree|air_purifier,air_purifier_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,30,Dudleya,Dudleya brittonii,"Dudleya ist eine rosettenbildende Sukkulente mit silbrig-weissen, mehligen Blaettern. Sehr elegant.",Volles Sonnenlicht,10-25 °C,14,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,4,Echeverie,Echeveria elegans,"Die Echeverie bildet symmetrische, rosettenfoermige Sukkulenten mit blaugruenen Blaettern. Pflegeleicht.",Volles Sonnenlicht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,77,Goldene Tonne,Echinocactus grusonii,Die Goldene Tonne ist ein ikonischer kugelfoermiger Kaktus mit goldgelben Stacheln. Waechst langsam aber imposant.,Volles Sonnenlicht,15-35 °C,21,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,83,San-Pedro-Kaktus,Echinopsis pachanoi,"Der San-Pedro-Kaktus ist ein schnell wachsender, saeulenfoermiger Kaktus aus den Anden.",Volles Sonnenlicht,10-35 °C,14,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,16,Marmor-Efeutute,Epipremnum aureum Marble Queen,Die Marmor-Efeutute hat cremeweiss-gruen marmorierte Blaetter. Eine dekorative Variante der klassischen Efeutute.,Helles indirektes Licht,15-30 °C,7,easy|hanging|air_purifier,air_purifier_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,53,Neon-Efeutute,Epipremnum pinnatum Neon,Die Neon-Efeutute hat leuchtend limonengruene Blaetter. Sehr auffaellig und pflegeleicht.,Helles indirektes Licht,15-30 °C,7,easy|hanging|air_purifier,air_purifier_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,19,Christusdorn,Euphorbia milii,Der Christusdorn ist eine sukkulente Wolfsmilch mit stacheligen Zweigen und kleinen roten oder gelben Hochblaettern.,Helles bis volles Licht,15-28 °C,10,easy|flowering|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,12,Bleistiftkaktus,Euphorbia tirucalli,"Der Bleistiftkaktus ist eine sukkulente Wolfsmilch mit duennen, zylindrischen Zweigen ohne Blaetter.",Volles Sonnenlicht,18-30 °C,14,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,12,Fatsia,Fatsia japonica,"Die Fatsia ist ein dekorativer Zimmerstrauch mit grossen, handfoermigen, glaenzenden Blaettern. Sehr robust.",Helles indirektes Licht,10-20 °C,7,easy|low_light,,,,,
|
||||
easy,constants/lexiconBatch1.ts,78,Fass-Kaktus,Ferocactus cylindraceus,"Der Fass-Kaktus ist ein zylindrischer Wuestenkaktus mit langen, roten Stacheln. Sehr langlebig.",Volles Sonnenlicht,15-35 °C,21,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,38,Gummibaum,Ficus elastica,"Der Gummibaum ist eine imposante Zimmerpflanze mit grossen, glaenzenden, lederartigen Blaettern. Reinigt die Luft.",Helles indirektes Licht,16-24 °C,10,easy|tree|air_purifier,air_purifier_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,247,Ficus microcarpa,Ficus microcarpa,Ficus microcarpa ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,easy|tree|bright_light,,,,,
|
||||
easy,constants/lexiconBatch2.ts,100,Erdbeere,Fragaria ananassa,"Die Erdbeere ist ein beliebtes Obst fuer Balkon und Terrasse mit aromatischen, roten Fruechten.",Helles bis volles Licht,15-25 °C,3,easy|pet_friendly|sun,pet_friendly_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch1.ts,90,Gasteria,Gasteria carinata,"Die Gasteria ist eine kleine Sukkulente mit zweireihig angeordneten, zungenfoermigen, gefleckten Blaettern.",Helles indirektes Licht,15-25 °C,14,easy|succulent|low_light,,,,,
|
||||
easy,constants/lexiconBatch1.ts,32,Blutroter Storchschnabel,Geranium sanguineum,Der Blutrote Storchschnabel ist ein zierlicher Storchschnabel mit intensiv magentafarbenen Blueten.,Helles bis volles Licht,10-25 °C,7,easy|flowering,,,,,
|
||||
easy,constants/lexiconBatch1.ts,87,Geisterpflanze,Graptopetalum paraguayense,"Die Geisterpflanze hat zartgraue bis perlmutt-rosafarbene, rosettenfoermige Blaetter. Sehr robuste Sukkulente.",Volles Sonnenlicht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,80,Mond-Kaktus,Gymnocalycium mihanovichii,Der Mond-Kaktus ist eine farbenfrohe Veredelung eines chlorophylllosen Kaktus auf einem gruenen Unterlagekaktus.,Indirektes Licht,15-30 °C,14,easy|succulent,,,,,
|
||||
easy,constants/lexiconBatch1.ts,6,Zebra-Haworthie,Haworthia fasciata,Die Zebra-Haworthie ist eine kompakte Sukkulente mit weissen Querstreifen auf dunkelgruenen Blaettern.,Helles indirektes Licht,15-25 °C,14,easy|succulent|low_light,,,,,
|
||||
easy,constants/lexiconBatch1.ts,37,Efeu,Hedera helix,"Efeu ist eine robuste Kletter- und Haengepflanze mit charakteristischen, dreilappigen Blaettern. Sehr langlebig.",Wenig bis helles Licht,10-20 °C,7,easy|hanging|air_purifier|low_light,air_purifier_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,133,Currykraut,Helichrysum italicum,Currykraut ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,57,Wachsblume,Hoya carnosa,"Die Wachsblume ist eine Kletterpflanze mit dicken, wachsartigen Blaettern und sternfoermigen, duftenden Blueten.",Helles indirektes Licht,16-27 °C,10,easy|flowering|succulent|hanging,,,,,
|
||||
easy,constants/lexiconBatch1.ts,108,Hyazinthe,Hyacinthus orientalis,"Die Hyazinthe bezaubert mit dichten Bluetenrispen und intensivem Duft in Blau, Rosa, Weiss oder Gelb.",Helles bis volles Licht,10-18 °C,5,easy|flowering,,,,,
|
||||
easy,constants/lexiconBatch2.ts,136,Ysop,Hyssopus officinalis,Ysop ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,59,Neuguinea-Balsamine,Impatiens hawkeri,"Die Neuguinea-Balsamine hat grosse, leuchtende Blueten und ist sehr bluehfreudig. Ideal fuer Terrassen.",Helles indirektes Licht,18-27 °C,3,easy|flowering,,,,,
|
||||
easy,constants/lexiconBatch1.ts,20,Fleissiges Lieschen,Impatiens walleriana,Das Fleissige Lieschen bluet von Fruehling bis Herbst unermudlich in vielen Farben.,Helles indirektes Licht,16-24 °C,2,easy|flowering,,,,,
|
||||
easy,constants/lexiconBatch1.ts,64,Suesskartoffel,Ipomoea batatas,"Die Suesskartoffel-Zierpflanze hat dekorative, herzfoermige Blaetter in gruen oder dunkelviolett. Ideal als Haengepflanze.",Volles Sonnenlicht,20-30 °C,5,easy|hanging|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,9,Kalanchoe,Kalanchoe blossfeldiana,"Die Kalanchoe ist eine beliebte Bluehpflanze mit leuchtenden Blueten in Rot, Orange, Gelb oder Rosa.",Helles bis volles Licht,15-25 °C,10,easy|flowering|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,22,Brutblatt,Kalanchoe daigremontiana,Das Brutblatt bildet entlang des Blattrandes zahlreiche kleine Jungpflanzen. Eine faszinierende Sukkulente.,Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,21,Kaninchen-Ohren,Kalanchoe tomentosa,"Kaninchen-Ohren haben weisslich-filzige Blaetter mit braunen Raendern, die Kaninchenohren aehneln. Sehr dekorativ.",Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,95,Salat,Lactuca sativa,Salat ist eine schnell wachsende Blattgemuesepflanze. Im Topf und Balkonkasten sehr gut zu kultivieren.,Helles bis volles Licht,10-22 °C,3,easy,,,,,
|
||||
easy,constants/lexiconBatch2.ts,121,Lorbeer,Laurus nobilis,Lorbeer ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,126,Liebstoeckel,Levisticum officinale,Liebstoeckel ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,62,Duftsteinrich,Lobularia maritima,"Der Duftsteinrich ist ein niedrig wachsendes Pflanzchen mit winzigen, weissen oder lilafarbenen Blueten und suessem Duft.",Helles bis volles Licht,10-22 °C,3,easy|flowering,,,,,
|
||||
easy,constants/lexiconBatch1.ts,79,Mammillaria,Mammillaria zeilmanniana,"Die Mammillaria ist ein kompakter, kugelfoermiger Kaktus, der im Fruehling einen Kranz aus rosa Blueten traegt.",Volles Sonnenlicht,15-35 °C,14,easy|flowering|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,102,Zitronenmelisse,Melissa officinalis,Die Zitronenmelisse ist ein zitronig duftendes Heilkraut. Sie beruhigt die Nerven und foerdert den Schlaf.,Helles bis volles Licht,15-25 °C,5,easy|medicinal,medicinal_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch1.ts,26,Gruene Minze,Mentha spicata,"Die Gruene Minze ist ein wuchsfreudiges Kuechenkraut mit frischem, minzigem Duft. Fuer Tee und Cocktails.",Helles bis volles Licht,15-25 °C,3,easy,,,,,
|
||||
easy,constants/lexiconBatch2.ts,47,Monstera adansonii,Monstera adansonii,Monstera adansonii hat herzfoermige Blaetter mit zahlreichen runden Lochern. Eine rankende Zimmerpflanze.,Helles indirektes Licht,18-27 °C,7,easy|hanging,,,,,
|
||||
easy,constants/lexiconBatch1.ts,109,Traubenhyazinthe,Muscari armeniacum,"Die Traubenhyazinthe bildet dichte Trauben aus kleinen, blauen bis violetten Gloeckchen. Zuverlaessige Fruejahrszwiebel.",Helles bis volles Licht,8-18 °C,7,easy|flowering,,,,,
|
||||
easy,constants/lexiconBatch2.ts,132,Katzenminze,Nepeta cataria,Katzenminze ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,25,Basilikum,Ocimum basilicum,"Basilikum ist das beliebteste Kuechenkraut mit intensiv aromatischen, gruenen Blaettern. Fuer Pesto verwendet.",Volles Sonnenlicht,18-30 °C,2,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch1.ts,82,Hasenohren-Kaktus,Opuntia microdasys,"Der Hasenohren-Kaktus hat flache, ovale Triebe mit dichten weissen Glochiden. Klassischer Zimmerkaktus.",Volles Sonnenlicht,10-35 °C,21,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,124,Majoran,Origanum majorana,Majoran ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,28,Oregano,Origanum vulgare,"Oregano ist ein aromatisches Kuechenkraut mit runden, behaarten Blaettern. In mediterraner Kueche beliebt.",Volles Sonnenlicht,15-25 °C,7,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,231,Glueckskastanie,Pachira aquatica,Glueckskastanie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,easy|tree|bright_light,,,,,
|
||||
easy,constants/lexiconBatch1.ts,88,Mondstein-Pflanze,Pachyphytum oviferum,"Die Mondstein-Pflanze hat dicke, ovale Blaetter mit einem pastellrosafarbenen, mehligen Ueberzug.",Volles Sonnenlicht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,31,Rosengeranie,Pelargonium graveolens,Die Rosengeranie ist eine Duftpflanze mit tief eingeschnittenen Blaettern und rosaenlichem Aroma.,Volles Sonnenlicht,15-25 °C,7,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,61,Efeu-Geranie,Pelargonium peltatum,"Die Efeu-Geranie hat efeufoermige, glaenzende Blaetter und bluet den ganzen Sommer in leuchtenden Farben.",Helles bis volles Licht,15-25 °C,5,easy|flowering|hanging|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,102,Rippenpeperomie,Peperomia caperata,"Die Rippenpeperomie hat tief gerippte, dunkelgruene bis violette Blaetter mit einer samtigen Textur.",Helles indirektes Licht,18-26 °C,10,easy|pet_friendly,pet_friendly_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch1.ts,103,Spiegelpeperomie,Peperomia obtusifolia,"Die Spiegelpeperomie hat glaenzende, lederartige, oval-runde Blaetter in tiefem Gruen. Sehr robust.",Helles indirektes Licht,16-26 °C,10,easy|pet_friendly|low_light,pet_friendly_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,230,Raindrop-Peperomie,Peperomia polybotrya,Raindrop-Peperomie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,easy|pet_friendly,pet_friendly_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,134,Shiso,Perilla frutescens,Shiso ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,29,Petersilie,Petroselinum crispum,Petersilie ist eines der meistgenutzten Kuechenkraeuter mit frisch-aromatischem Geschmack. Reich an Vitaminen.,Helles Licht,10-25 °C,3,easy,,,,,
|
||||
easy,constants/lexiconBatch1.ts,34,Petunie,Petunia hybrida,Die Petunie ist eine der beliebtesten Balkonpflanzen mit trichterfoermigen Blueten in unzaehligen Farben.,Volles Sonnenlicht,15-25 °C,2,easy|pet_friendly|flowering|sun,pet_friendly_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,50,Philodendron bipinnatifidum,Philodendron bipinnatifidum,"Philodendron bipinnatifidum hat grosse, tief gelappte Blaetter. Er entwickelt einen beeindruckenden, baumfoermigen Wuchs.",Helles indirektes Licht,18-27 °C,7,easy|large,,,,,
|
||||
easy,constants/lexiconBatch2.ts,51,Roter Philodendron,Philodendron erubescens,"Der Rote Philodendron hat glaenzende, herzfoermige Blaetter, die jung roetrlich erscheinen. Sehr dekorativ.",Helles indirektes Licht,18-27 °C,7,easy|hanging,,,,,
|
||||
easy,constants/lexiconBatch1.ts,15,Herzblatt-Philodendron,Philodendron hederaceum,Der Herzblatt-Philodendron ist eine pflegeleichte Kletter- oder Haengepflanze mit herzfoermigen Blaettern.,Indirektes Licht,18-28 °C,7,easy|hanging|low_light,,,,,
|
||||
easy,constants/lexiconBatch2.ts,242,Philodendron Brasil,Philodendron hederaceum Brasil,Philodendron Brasil ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,easy|hanging|low_light,,,,,
|
||||
easy,constants/lexiconBatch2.ts,8,Goldener Bambus,Phyllostachys aurea,"Der Goldene Bambus hat elegante, goldgelbe Halme mit engstehenden Knoten. Sehr dekorativ als Sichtschutz.",Helles bis volles Licht,10-30 °C,5,easy|large,,,,,
|
||||
easy,constants/lexiconBatch2.ts,228,Aluminium-Pflanze,Pilea cadierei,Aluminium-Pflanze ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,easy|pet_friendly|patterned,pet_friendly_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch1.ts,2,Ufopflanze,Pilea peperomioides,"Die Ufopflanze hat unverwechselbare, runde Blaetter auf langen Stielen. Bildet leicht Ableger zum Verschenken.",Helles indirektes Licht,13-30 °C,7,easy|pet_friendly,pet_friendly_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,44,Tueipelfarn,Polypodium vulgare,Der Tueipelfarn ist ein heimischer Farn mit gelappten Wedeln und runden Sporenhaeufchen auf der Unterseite.,Helles indirektes Licht,10-20 °C,7,easy,,,,,
|
||||
easy,constants/lexiconBatch2.ts,27,Speckbaum,Portulacaria afra,"Der Speckbaum ist eine sukkulente Pflanze mit roten Stielen und kleinen, runden, glaenzenden Blaettern.",Helles bis volles Licht,15-30 °C,14,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,98,Radieschen,Raphanus sativus,"Das Radieschen ist ein schnellwachsendes Gemuese mit runden, roten Knollen. Es reift in nur 3-4 Wochen.",Helles bis volles Licht,10-22 °C,2,easy,,,,,
|
||||
easy,constants/lexiconBatch2.ts,52,Mini-Monstera,Rhaphidophora tetrasperma,"Die Mini-Monstera hat monsteraaehnliche, gelochte Blaetter auf einer kompakten, klettternden Pflanze. Sehr trendig.",Helles indirektes Licht,18-27 °C,7,easy|hanging,,,,,
|
||||
easy,constants/lexiconBatch1.ts,24,Rosmarin,Rosmarinus officinalis,Rosmarin ist ein aromatisches Kraut mit nadelartigen Blaettern und blauen Blueten. In der Kueche unverzichtbar.,Volles Sonnenlicht,10-25 °C,7,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,130,Sauerampfer,Rumex acetosa,Sauerampfer ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,94,Afrikanisches Veilchen,Saintpaulia ionantha,"Das Afrikanische Veilchen ist eine kleine, kompakte Bluehpflanze mit samtigen Blaettern und violetten Blueten.",Helles indirektes Licht,18-25 °C,7,easy|flowering,,,,,
|
||||
easy,constants/lexiconBatch2.ts,103,Salbei,Salvia officinalis,Salbei ist ein aromatisches Heilkraut mit silbrig-gruenen Blaettern. Er hat antibakterielle und entzuendungshemmende Wirkung.,Volles Sonnenlicht,10-25 °C,7,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,17,Zylindrischer Bogenhanf,Sansevieria cylindrica,"Der Zylindrische Bogenhanf hat zylindrische, aufrechte Blaetter, die sich nach oben verjuengen. Sehr pflegeleicht.",Helles bis volles Licht,15-27 °C,14,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,123,Bohnenkraut,Satureja hortensis,Bohnenkraut ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,11,Grosse Strahlenaralie,Schefflera actinophylla,"Die Grosse Strahlenaralie kann grosse, handfoermige Blaetter entwickeln. Sie ist ideal als Zimmerstrauch.",Helles indirektes Licht,18-27 °C,7,easy|tree|large,,,,,
|
||||
easy,constants/lexiconBatch2.ts,10,Strahlenaralie,Schefflera arboricola,"Die Strahlenaralie hat fingerfoermig angeordnete, glaenzende Blaetter auf langen Stielen. Sehr robuste Zimmerpflanze.",Helles indirektes Licht,15-25 °C,7,easy|tree|air_purifier,air_purifier_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch1.ts,8,Weihnachtskaktus,Schlumbergera truncata,"Der Weihnachtskaktus erfreut zur Weihnachtszeit mit leuchtenden Blueten in Rosa, Rot oder Weiss.",Helles indirektes Licht,15-21 °C,7,easy|flowering|succulent,,,,,
|
||||
easy,constants/lexiconBatch1.ts,55,Satinpothos,Scindapsus pictus,"Der Satinpothos hat samtig-glaenzende, silbrig gefleckte Blaetter auf langen, haengenden Ranken.",Helles indirektes Licht,18-28 °C,7,easy|patterned|hanging,,,,,
|
||||
easy,constants/lexiconBatch1.ts,7,Eselschwanz,Sedum morganianum,"Der Eselschwanz ist eine haengende Sukkulente mit langen Trieben aus dichten, blaugruenen Blaettchen.",Volles Sonnenlicht,15-25 °C,14,easy|succulent|hanging|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,100,Perlenschnur-Pflanze,Senecio rowleyanus,"Die Perlenschnur-Pflanze hat haengende Ranken mit kugelfoermigen, perlenaehnlichen Blaettern. Einzigartige Sukkulente.",Helles bis volles Licht,15-27 °C,14,easy|succulent|hanging,,,,,
|
||||
easy,constants/lexiconBatch2.ts,28,Blauer Kreuzkraut,Senecio serpens,"Der Blaue Kreuzkraut hat zylindrische, blaublaugruene Blaetter und einen kriechenden Wuchs. Sehr dekorativ.",Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,91,Tomate,Solanum lycopersicum,"Die Tomate ist eine beliebte Gemuese- und Balkonpflanze mit roten, saftigen Fruechten. Im Topf kultivierbar.",Volles Sonnenlicht,18-28 °C,3,easy,,,,,
|
||||
easy,constants/lexiconBatch2.ts,96,Spinat,Spinacia oleracea,Spinat ist ein naehrstoffreiches Blattgemuese mit dunkelgruenen Blaettern. Reich an Eisen und Vitaminen.,Helles bis volles Licht,10-20 °C,3,easy,,,,,
|
||||
easy,constants/lexiconBatch2.ts,131,Stevia,Stevia rebaudiana,Stevia ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,56,Pfeilblatt,Syngonium podophyllum,"Das Pfeilblatt hat charakteristisch pfeilfoermige Blaetter, die sich mit dem Alter weiterentwickeln.",Helles indirektes Licht,16-27 °C,7,easy|hanging,,,,,
|
||||
easy,constants/lexiconBatch2.ts,66,Studentenblume,Tagetes patula,Die Studentenblume ist eine robuste Sommerblume mit orangen oder gelben Blueten. Sie haelt Schadlinge fern.,Volles Sonnenlicht,15-28 °C,3,easy|flowering|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,27,Thymian,Thymus vulgaris,"Thymian ist ein kleiner, aromatischer Strauch mit winzigen Blaettern und rosa Blueten. Wichtiges Kuechenkraut.",Volles Sonnenlicht,10-25 °C,7,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,33,Luftpflanze,Tillandsia ionantha,Die Luftpflanze ist eine kompakte Bromelie ohne Topferde. Sie nimmt Wasser und Naehrstoffe ueber die Blattschuppen auf.,Helles bis volles Licht,15-30 °C,3,easy,,,,,
|
||||
easy,constants/lexiconBatch2.ts,32,Spanisches Moos,Tillandsia usneoides,"Das Spanische Moos ist eine epiphytische Bromelie ohne Wurzeln, die in der Luft haengt. Es benoetigt nur Feuchtigkeitsbespruehing.",Helles bis volles Licht,15-30 °C,3,easy|hanging,,,,,
|
||||
easy,constants/lexiconBatch2.ts,55,Weisse Tradescantia,Tradescantia fluminensis,Die Weisse Tradescantia hat gruene Blaetter mit weisslichen Unterseiten. Sehr robust und schnellwachsend.,Helles indirektes Licht,15-25 °C,5,easy|hanging,,,,,
|
||||
easy,constants/lexiconBatch2.ts,54,Lila Tradescantia,Tradescantia pallida,Die Lila Tradescantia hat leuchtend purpurrote Blaetter und ist sehr auffaellig. Sie liebt viel Licht.,Helles bis volles Licht,15-25 °C,5,easy|hanging|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,17,Zebrakraut,Tradescantia zebrina,Das Zebrakraut faellt durch seine silbrig-lila gestreiften Blaetter auf. Schnellwachsende Haengepflanze.,Helles indirektes Licht,15-25 °C,5,easy|patterned|hanging,,,,,
|
||||
easy,constants/lexiconBatch1.ts,107,Tulpe,Tulipa gesneriana,Die Tulpe ist eine der beliebtesten Fruehjahrsblueher mit kelchfoermigen Blueten in unzaehligen Farben.,Helles bis volles Licht,8-18 °C,5,easy|flowering,,,,,
|
||||
easy,constants/lexiconBatch1.ts,35,Stiefmuetterchen,Viola wittrockiana,Das Stiefmuetterchen ist ein bekannter Fruehjahrsblueher mit charakteristisch gezeichneten Blueten.,Helles bis volles Licht,5-18 °C,3,easy|flowering,,,,,
|
||||
easy,constants/lexiconBatch2.ts,246,Yucca aloifolia,Yucca aloifolia,Yucca aloifolia ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Volles Sonnenlicht,18-30 C,10,easy|tree|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,40,Yucca-Palme,Yucca elephantipes,"Die Yucca-Palme ist eine robuste Zimmerpflanze mit starrem, immergruenem Blaetterschopf auf einem dicken Stamm.",Helles bis volles Licht,15-28 °C,14,easy|tree|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,65,Zinnie,Zinnia elegans,"Die Zinnie ist eine leuchtende Sommerblume mit grossen, dahlienaehnlichen Blueten. Sehr robust und hitzetolerant.",Volles Sonnenlicht,18-30 °C,3,easy|flowering|sun,,,,,
|
||||
|
|
|
@ -0,0 +1,158 @@
|
|||
category,source_file,source_index,name,botanical_name,description,light,temp,water_interval_days,all_categories,risk_flags,audit_status,evidence_source,evidence_url,notes
|
||||
flowering,constants/lexiconBatch2.ts,108,Schafgarbe,Achillea millefolium,Die Schafgarbe hat weisse oder rosafarbene Bluetenschirme und fein gefiederte Blaetter. Wichtige Heilpflanze.,Volles Sonnenlicht,10-25 °C,7,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
flowering,constants/lexiconBatch1.ts,86,Wuestenrose,Adenium obesum,Die Wuestenrose ist eine sukkulente Zimmerpflanze mit dickem Stamm und leuchtend pinken Blueten.,Volles Sonnenlicht,20-35 °C,10,flowering|succulent|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,117,Socotra-Wuestenrose,Adenium socotranum,"Die Socotra-Wuestenrose ist eine seltene, endemische Art mit einem sehr dicken, knolligen Stamm und rosa Blueten.",Volles Sonnenlicht,20-35 °C,14,flowering|succulent|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,34,Silbervase,Aechmea fasciata,Die Silbervase ist eine Bromelie mit silbrig gebänderten Blaettern und einem rosafarbenen Bluetenstand.,Helles indirektes Licht,18-25 °C,10,flowering|patterned,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,98,Lippenstiftpflanze,Aeschynanthus radicans,Die Lippenstiftpflanze hat haengende Triebe mit glaenzenden Blaettern und leuchtend roten Roehrenbluten.,Helles indirektes Licht,18-27 °C,7,flowering|hanging|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,155,Stockrose,Alcea rosea,"Stockrose ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,73,Muschelingwer,Alpinia zerumbet,"Der Muschelingwer hat lange, elegante Blaetter und haengende Bluetenrispen mit weiss-rosa Bluetchen.",Helles bis volles Licht,20-30 °C,5,flowering|large|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,194,Fuchsschwanz,Amaranthus caudatus,"Fuchsschwanz ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,163,Anemone,Anemone coronaria,"Anemone ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,147,Loewenmaeulchen,Antirrhinum majus,"Loewenmaeulchen ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,107,Arnika,Arnica montana,Arnika ist eine bekannte Heilpflanze aus den Alpen mit goldgelben Korbbluten. Sie wird fuer Muskeln und Gelenke verwendet.,Volles Sonnenlicht,10-20 °C,7,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
flowering,constants/lexiconBatch2.ts,178,Seidenpflanze,Asclepias tuberosa,"Seidenpflanze ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,92,Indische Azalee,Azalea indica,"Die Indische Azalee ist ein beliebter Zierstrauch mit grossen, auffaelligen Blueten in Rosa- und Rottönen.",Helles indirektes Licht,10-20 °C,4,flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,175,Eisbegonie,Begonia semperflorens-cultorum,"Eisbegonie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|bright_light,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,58,Knollen-Begonie,Begonia tuberhybrida,"Die Knollen-Begonie hat riesige, rosenaehnliche Blueten in leuchtendem Rot, Orange, Gelb oder Weiss.",Helles indirektes Licht,15-22 °C,5,flowering|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,145,Gaensebluemchen,Bellis perennis,"Gaensebluemchen ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,38,Billbergia,Billbergia nutans,"Die Billbergia ist eine robuste Bromelie mit schmalen, gruenen Blaettern und hängenden, blauen und gruenen Blueten.",Helles indirektes Licht,15-25 °C,7,easy|flowering,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,62,Bougainvillea,Bougainvillea spectabilis,"Die Bougainvillea ist eine rankenreiche Kletterpflanze mit leuchtend farbigen Hochblaettern in Rot, Orange oder Pink.",Volles Sonnenlicht,18-30 °C,5,flowering|bright_light|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,223,Schmetterlingsflieder,Buddleja davidii,Schmetterlingsflieder ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,187,Ringelblume,Calendula officinalis,"Ringelblume ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
flowering,constants/lexiconBatch2.ts,63,Calibrachoa,Calibrachoa hybrida,"Calibrachoa ist eine petunienaehnliche Haengepflanze mit unzaehligen, kleinen Trichterbluten in allen Farben.",Volles Sonnenlicht,15-25 °C,2,easy|flowering|hanging|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,93,Kamelie,Camellia japonica,Die Kamelie ist ein eleganter Zierstrauch mit glaenzenden Blaettern und rosenaehnlichen Blueten von Januar bis April.,Helles indirektes Licht,7-18 °C,5,flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,85,Teestrauch,Camellia sinensis,"Der Teestrauch ist die Pflanze, aus deren Blaettern Tee gewonnen wird. Er hat weisse Blueten und glaenzende Blaetter.",Helles indirektes Licht,15-22 °C,7,flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,184,Trompetenwinde,Campsis radicans,"Trompetenwinde ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|bright_light,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,67,Blumenschilfrohr,Canna indica,"Das Blumenschilfrohr hat grosse, tropisch wirkende Blaetter und auffaellige Blueten in Rot, Orange oder Gelb.",Volles Sonnenlicht,18-28 °C,5,flowering|large|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,73,Cattleya-Orchidee,Cattleya labiata,"Die Cattleya ist die Koenigin der Orchideen mit ueppigen, duftenden Blueten in Lila, Rosa und Weiss.",Helles indirektes Licht,18-28 °C,7,flowering|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,188,Kornblume,Centaurea cyanus,"Kornblume ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,67,Chrysantheme,Chrysanthemum indicum,"Die Chrysantheme ist die klassische Herbstblume mit ueppigen, dichten Blueten in vielen Farben.",Helles bis volles Licht,12-22 °C,4,flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,157,Clematis,Clematis viticella,"Clematis ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|bright_light,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,104,Riemenblatt,Clivia miniata,Das Riemenblatt ist eine dekorative Zimmerpflanze mit leuchtend orangefarbenen Blueten im Fruehling.,Helles indirektes Licht,15-24 °C,10,flowering,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,97,Columnea,Columnea gloriosa,"Die Columnea ist eine haengende Zimmerpflanze mit kleinen, behaarten Blaettern und leuchtend roten, roehrenfoermigen Blueten.",Helles indirektes Licht,18-25 °C,7,flowering|hanging|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,160,Maigloeckchen,Convallaria majalis,"Maigloeckchen ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|medicinal,medicinal_requires_external_evidence,,,,
|
||||
flowering,constants/lexiconBatch2.ts,181,Maedchenauge,Coreopsis tinctoria,"Maedchenauge ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,150,Kosmee,Cosmos bipinnatus,"Kosmee ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,110,Krokus,Crocus vernus,"Der Krokus ist einer der ersten Fruehjahrsboten mit kelchfoermigen Blueten in Lila, Weiss und Gelb.",Helles bis volles Licht,5-15 °C,7,easy|flowering,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,19,Alpenveilchen,Cyclamen persicum,"Das Alpenveilchen bluet im Herbst und Winter mit eleganten Blueten in Rosa, Rot oder Weiss.",Helles indirektes Licht,12-18 °C,5,flowering,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,71,Zymbidium,Cymbidium lowianum,"Das Zymbidium ist eine robuste Orchidee mit langen, grassartigen Blaettern und eleganten Bluetenrispen.",Helles Licht,12-24 °C,7,flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,68,Dahlie,Dahlia pinnata,Die Dahlie ist eine prachtvolle Sommerblume mit Blueten in allen Groessen und Formen. Sie wird aus Knollen gezogen.,Volles Sonnenlicht,15-25 °C,5,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,215,Flammenbaum,Delonix regia,Flammenbaum ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|large,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,153,Rittersporn,Delphinium elatum,"Rittersporn ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,70,Dendrobium,Dendrobium nobile,"Das Dendrobium ist eine beliebte Zimmerorchidee mit langen Pseudobulben, die im Winter mit Blueten besetzt werden.",Helles indirektes Licht,15-28 °C,10,flowering|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,189,Bartnelke,Dianthus barbatus,"Bartnelke ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,146,Nelke,Dianthus caryophyllus,"Nelke ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,109,Roter Fingerhut,Digitalis purpurea,"Der Rote Fingerhut hat hohe Bluetenstaende mit roehrenfoermigen, gepunkteten Blueten in Rosa. Wichtige Arzneipflanze.",Helles bis volles Licht,10-20 °C,7,flowering|medicinal,medicinal_requires_external_evidence,,,,
|
||||
flowering,constants/lexiconBatch2.ts,106,Sonnenhut,Echinacea purpurea,"Der Sonnenhut ist eine beliebte Heilpflanze mit grossen, pinkfarbenen Blueten. Er staerkt das Immunsystem.",Helles bis volles Licht,15-25 °C,7,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
flowering,constants/lexiconBatch1.ts,84,Koenigin der Nacht,Epiphyllum oxypetalum,"Die Koenigin der Nacht bluet nur eine einzige Nacht lang mit riesigen, intensiv duftenden weissen Blueten.",Indirektes Licht,18-27 °C,7,flowering|succulent,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,186,Kalifornischer Mohn,Eschscholzia californica,"Kalifornischer Mohn ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,19,Christusdorn,Euphorbia milii,Der Christusdorn ist eine sukkulente Wolfsmilch mit stacheligen Zweigen und kleinen roten oder gelben Hochblaettern.,Helles bis volles Licht,15-28 °C,10,easy|flowering|succulent|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,20,Weihnachtsstern,Euphorbia pulcherrima,Der Weihnachtsstern ist die klassische Winterpflanze mit leuchtend roten Hochblaettern. Er steht symbolisch fuer Weihnachten.,Helles indirektes Licht,15-22 °C,7,flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,219,Forsythie,Forsythia x intermedia,Forsythie ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,169,Freesie,Freesia refracta,"Freesie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,33,Fuchsie,Fuchsia hybrida,"Die Fuchsie haengt mit eleganten, zweifarbigen Blueten wie kleine Ohrringe herab. Ideal fuer Ampeln.",Helles indirektes Licht,14-22 °C,3,flowering|hanging,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,60,Triphylla-Fuchsie,Fuchsia triphylla,"Die Triphylla-Fuchsie hat lange, roehrenfoermige, orangefarbe Blueten in haengenden Trauben. Sehr exotisch.",Helles indirektes Licht,15-22 °C,3,flowering|hanging,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,196,Kokardenblume,Gaillardia aristata,"Kokardenblume ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,22,Gardenie,Gardenia jasminoides,"Die Gardenie fasziniert mit cremefarbenen, intensiv duftenden Blueten. Anspruchsvoll in der Pflege.",Helles indirektes Licht,18-23 °C,5,flowering|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,190,Mittagsgold,Gazania rigens,"Mittagsgold ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,32,Blutroter Storchschnabel,Geranium sanguineum,Der Blutrote Storchschnabel ist ein zierlicher Storchschnabel mit intensiv magentafarbenen Blueten.,Helles bis volles Licht,10-25 °C,7,easy|flowering,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,68,Gerbera,Gerbera jamesonii,"Die Gerbera ist eine farbenfrohe Schnittblume mit grossen, sonnenblumenaehnlichen Blueten. Sehr beliebt.",Helles bis volles Licht,15-25 °C,5,flowering|air_purifier|bright_light,air_purifier_requires_external_evidence,,,,
|
||||
flowering,constants/lexiconBatch2.ts,161,Gladiole,Gladiolus hortulanus,"Gladiole ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,96,Gloxinie,Gloxinia speciosa,"Die Gloxinie hat grosse, samtartige Blueten in Violett, Rosa oder Weiss mit farbigen Raendern.",Helles indirektes Licht,18-25 °C,5,flowering|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,36,Guzmania,Guzmania lingulata,"Die Guzmania ist eine Bromelie mit glänzenden, gruenen Blaettern und einem leuchtend roten, sternfoermigen Bluetenstand.",Helles indirektes Licht,18-27 °C,7,flowering|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,119,Zaubernuss,Hamamelis mollis,"Die Zaubernuss bluet im Winter mit fadendunnen, gelben Bluetenkranzeln, die bis -10 Grad standhalten.",Helles bis volles Licht,10-20 °C,10,flowering|medicinal,medicinal_requires_external_evidence,,,,
|
||||
flowering,constants/lexiconBatch2.ts,141,Sonnenblume,Helianthus annuus,"Sonnenblume ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,72,Heliconia,Heliconia psittacorum,"Die Heliconia hat leuchtend orangefarbe oder rote, bootsfoermige Hochblaetter. Eine exotische Tropenpflanze.",Helles bis volles Licht,20-30 °C,5,flowering|bright_light|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,191,Heliotrop,Heliotropium arborescens,"Heliotrop ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,183,Lenzrose,Helleborus orientalis,"Lenzrose ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,182,Taglilie,Hemerocallis fulva,"Taglilie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,21,Hibiskus,Hibiscus rosa-sinensis,"Der Hibiskus begeistert mit grossen, trompetenfoermigen Blueten in Rot, Orange und Rosa.",Volles Sonnenlicht,18-28 °C,3,flowering|bright_light|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,220,Gartenhibiskus,Hibiscus syriacus,Gartenhibiskus ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,105,Ritterstern,Hippeastrum hybrid,"Der Ritterstern beeindruckt im Winter mit riesigen, trompetenfoermigen Blueten in Rot, Pink oder Weiss.",Helles bis volles Licht,18-25 °C,7,flowering|bright_light,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,58,Kleine Wachsblume,Hoya bella,"Die Kleine Wachsblume traegt zierliche, sternfoermige weisse Blueten mit rosa Mitte. Haengende Sukkulente.",Helles indirektes Licht,18-27 °C,10,flowering|succulent|hanging,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,57,Wachsblume,Hoya carnosa,"Die Wachsblume ist eine Kletterpflanze mit dicken, wachsartigen Blaettern und sternfoermigen, duftenden Blueten.",Helles indirektes Licht,16-27 °C,10,easy|flowering|succulent|hanging,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,159,Hasengloeckchen,Hyacinthoides non-scripta,"Hasengloeckchen ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,108,Hyazinthe,Hyacinthus orientalis,"Die Hyazinthe bezaubert mit dichten Bluetenrispen und intensivem Duft in Blau, Rosa, Weiss oder Gelb.",Helles bis volles Licht,10-18 °C,5,easy|flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,148,Hortensie,Hydrangea macrophylla,"Hortensie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Helles bis halbschattiges Licht,8-24 C,4,flowering|bright_light,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,105,Johanniskraut,Hypericum perforatum,Das Johanniskraut hat leuchtend gelbe Blueten und ist ein wichtiges Heilkraut gegen Depressionen und Stimmungstiefs.,Volles Sonnenlicht,10-25 °C,7,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
flowering,constants/lexiconBatch2.ts,176,Gartenbalsamine,Impatiens balsamina,"Gartenbalsamine ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|bright_light,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,59,Neuguinea-Balsamine,Impatiens hawkeri,"Die Neuguinea-Balsamine hat grosse, leuchtende Blueten und ist sehr bluehfreudig. Ideal fuer Terrassen.",Helles indirektes Licht,18-27 °C,3,easy|flowering,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,20,Fleissiges Lieschen,Impatiens walleriana,Das Fleissige Lieschen bluet von Fruehling bis Herbst unermudlich in vielen Farben.,Helles indirektes Licht,16-24 °C,2,easy|flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,156,Prunkwinde,Ipomoea purpurea,"Prunkwinde ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,144,Bart-Iris,Iris germanica,"Bart-Iris ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,211,Jacaranda,Jacaranda mimosifolia,Jacaranda ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|large,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,59,Jasmin,Jasminum polyanthum,"Der Jasmin ist eine Kletterpflanze mit intensiv duftenden, weissen Blueten. Er bluet im Winter und Fruehling.",Helles bis volles Licht,10-22 °C,5,flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,172,Arabischer Jasmin,Jasminum sambac,"Arabischer Jasmin ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|bright_light,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,9,Kalanchoe,Kalanchoe blossfeldiana,"Die Kalanchoe ist eine beliebte Bluehpflanze mit leuchtenden Blueten in Rot, Orange, Gelb oder Rosa.",Helles bis volles Licht,15-25 °C,10,easy|flowering|succulent|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,197,Traenendes Herz,Lamprocapnos spectabilis,"Traenendes Herz ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|bright_light,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,64,Wandelroeschen,Lantana camara,"Das Wandelroeschen hat kugelige Bluetenkoepfe, die die Farbe von Gelb ueber Orange zu Rot wechseln. Sehr attraktiv.",Volles Sonnenlicht,18-28 °C,5,flowering|bright_light|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,158,Duftwicke,Lathyrus odoratus,"Duftwicke ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,180,Bechermalve,Lavatera trimestris,"Bechermalve ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,173,Margerite,Leucanthemum vulgare,"Margerite ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,201,Shasta-Margerite,Leucanthemum x superbum,"Shasta-Margerite ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,69,Ostertrompete,Lilium longiflorum,"Die Ostertrompete hat grosse, weisse, trichterfoermige Blueten mit intensivem Duft. Klassische Osterblume.",Helles bis volles Licht,15-25 °C,5,flowering|bright_light,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,62,Duftsteinrich,Lobularia maritima,"Der Duftsteinrich ist ein niedrig wachsendes Pflanzchen mit winzigen, weissen oder lilafarbenen Blueten und suessem Duft.",Helles bis volles Licht,10-22 °C,3,easy|flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,171,Geissblatt,Lonicera japonica,"Geissblatt ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|bright_light,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,154,Lupine,Lupinus polyphyllus,"Lupine ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,204,Magnolie,Magnolia grandiflora,Magnolie ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|large,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,79,Mammillaria,Mammillaria zeilmanniana,"Die Mammillaria ist ein kompakter, kugelfoermiger Kaktus, der im Fruehling einen Kranz aus rosa Blueten traegt.",Volles Sonnenlicht,15-35 °C,14,easy|flowering|succulent|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,75,Stiefmuetterchen-Orchidee,Miltoniopsis roezlii,"Die Stiefmuetterchen-Orchidee hat grosse, flache Blueten. Bevorzugt kuehle Temperaturen und hohe Luftfeuchtigkeit.",Indirektes Licht,15-22 °C,5,flowering|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,76,Schamkraut,Mimosa pudica,"Das Schamkraut faltet seine Blaettchen blitzschnell zusammen, wenn man sie beruehrt. Ein faszinierendes Erlebnis.",Helles bis volles Licht,20-28 °C,5,flowering|bright_light,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,179,Indianernessel,Monarda didyma,"Indianernessel ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,109,Traubenhyazinthe,Muscari armeniacum,"Die Traubenhyazinthe bildet dichte Trauben aus kleinen, blauen bis violetten Gloeckchen. Zuverlaessige Fruejahrszwiebel.",Helles bis volles Licht,8-18 °C,7,easy|flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,177,Vergissmeinnicht,Myosotis sylvatica,"Vergissmeinnicht ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,106,Osterglocke,Narcissus pseudonarcissus,"Die Osterglocke ist der klassische Fruehjahrsblueher mit leuchtend gelben, trompetenfoermigen Blueten.",Helles bis volles Licht,10-18 °C,5,flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,199,Nemesie,Nemesia strumosa,"Nemesie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,37,Neoregelia,Neoregelia carolinae,"Die Neoregelia ist eine Bromelie, bei der das Herzblatt zur Bluetzeit leuchtend rot wird. Sehr dekorativ.",Helles bis volles Licht,18-27 °C,7,flowering|patterned|bright_light,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,120,Oleander,Nerium oleander,"Der Oleander ist ein mediteraner Strauch mit leuchtend roten, rosa oder weissen Blueten. Sehr hitzetolerant.",Volles Sonnenlicht,15-28 °C,7,flowering|bright_light|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,193,Ziertabak,Nicotiana alata,"Ziertabak ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,74,Tanzerinnen-Orchidee,Oncidium sphacelatum,"Die Tanzerinnen-Orchidee traegt lange Rispen mit Hunderten kleiner, gelb-brauner Blueten. Sehr reichliche Bluetracht.",Helles indirektes Licht,18-27 °C,7,flowering|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,200,Kapmargerite,Osteospermum ecklonis,"Kapmargerite ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,54,Kleeblume,Oxalis triangularis,"Die Kleeblume hat tiefviolette, dreieckige Blaetter und zarte rosa Blueten. Sie faltet die Blaetter bei Dunkelheit.",Helles indirektes Licht,15-24 °C,7,flowering|patterned,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,143,Pfingstrose,Paeonia lactiflora,"Pfingstrose ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,185,Mohn,Papaver rhoeas,"Mohn ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,63,Passionsblume,Passiflora caerulea,"Die Passionsblume ist eine faszinierende Kletterpflanze mit komplex strukturierten, blau-weissen Blueten.",Helles bis volles Licht,15-27 °C,5,flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,61,Efeu-Geranie,Pelargonium peltatum,"Die Efeu-Geranie hat efeufoermige, glaenzende Blaetter und bluet den ganzen Sommer in leuchtenden Farben.",Helles bis volles Licht,15-25 °C,5,easy|flowering|hanging|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,174,Stehende Geranie,Pelargonium zonale,"Stehende Geranie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,34,Petunie,Petunia hybrida,Die Petunie ist eine der beliebtesten Balkonpflanzen mit trichterfoermigen Blueten in unzaehligen Farben.,Volles Sonnenlicht,15-25 °C,2,easy|pet_friendly|flowering|sun,pet_friendly_requires_external_evidence,,,,
|
||||
flowering,constants/lexiconBatch1.ts,69,Schmetterlingsorchidee,Phalaenopsis amabilis,Die Schmetterlingsorchidee ist die bekannteste Zimmerorchidee. Sie bluet bei guter Pflege monatelang.,Helles indirektes Licht,18-28 °C,10,flowering|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,165,Flammenblume,Phlox paniculata,"Flammenblume ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,81,Fettkraut,Pinguicula grandiflora,"Das Fettkraut faengt Insekten mit klebrigen Blaettern. Es bluet mit violetten, sporenartigen Blueten.",Helles indirektes Licht,10-20 °C,5,flowering|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,61,Bleiwurz,Plumbago auriculata,"Die Bleiwurz ist ein halbimmergruener Strauch mit himmelblauen Blueten, der fast das ganze Jahr bluet.",Volles Sonnenlicht,15-27 °C,5,flowering|bright_light|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,118,Tempel-Baum,Plumeria rubra,"Der Tempel-Baum hat intensiv duftende, sternfoermige Blueten in Weiss, Gelb oder Rosa. Klassische Tropenblume.",Volles Sonnenlicht,20-30 °C,7,flowering|tree|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,36,Primel,Primula vulgaris,"Die Primel ist einer der ersten Fruehjahrsboten mit lebhaften Blueten in Gelb, Pink, Rot und Lila.",Helles indirektes Licht,10-18 °C,4,flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,71,Koenigs-Protea,Protea cynaroides,"Die Koenigs-Protea ist die Nationalblume Suedafrikas mit riesigen, imposanten Bluetenkoepfen. Eine echte Besonderheit.",Volles Sonnenlicht,10-25 °C,7,flowering|large|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,88,Granatapfelbaum,Punica granatum,"Der Granatapfelbaum hat leuchtend rote Blueten und rote, essbare Fruechte mit rubinroten Kernen.",Volles Sonnenlicht,15-28 °C,7,flowering|tree|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,162,Ranunkel,Ranunculus asiaticus,"Ranunkel ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,170,Rhododendron,Rhododendron catawbiense,"Rhododendron ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|tree|bright_light,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,91,Japanische Azalee,Rhododendron simsii,"Die Japanische Azalee bluet im Winter und Fruehling ueppig mit leuchtend roten, rosa oder weissen Blueten.",Helles indirektes Licht,10-18 °C,4,flowering,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,66,Chinesische Rose,Rosa chinensis,Die Chinesische Rose ist eine der Stammarten vieler Gartenrosen und bluet fast ununterbrochen.,Volles Sonnenlicht,15-25 °C,5,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,142,Rose,Rosa x hybrida,"Rose ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|bright_light|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,167,Rudbeckie,Rudbeckia hirta,"Rudbeckie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,94,Afrikanisches Veilchen,Saintpaulia ionantha,"Das Afrikanische Veilchen ist eine kleine, kompakte Bluehpflanze mit samtigen Blaettern und violetten Blueten.",Helles indirektes Licht,18-25 °C,7,easy|flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,195,Mehlsalbei,Salvia farinacea,"Mehlsalbei ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,168,Feuersalbei,Salvia splendens,"Feuersalbei ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,112,Schwarzer Holunder,Sambucus nigra,Der Schwarze Holunder hat weisse Doldenbluten und schwarze Beeren. Die Fruechte werden fuer Sirup und Saft verwendet.,Helles bis volles Licht,10-25 °C,7,flowering|tree|medicinal,medicinal_requires_external_evidence,,,,
|
||||
flowering,constants/lexiconBatch1.ts,8,Weihnachtskaktus,Schlumbergera truncata,"Der Weihnachtskaktus erfreut zur Weihnachtszeit mit leuchtenden Blueten in Rosa, Rot oder Weiss.",Helles indirektes Licht,15-21 °C,7,easy|flowering|succulent,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,222,Spierstrauch,Spiraea japonica,Spierstrauch ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,25,Aasblume,Stapelia grandiflora,"Die Aasblume hat fleischige, gruene Staengel und riesige, sternfoermige Blueten mit aasartigem Duft.",Helles bis volles Licht,18-30 °C,14,flowering|succulent|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,60,Madagaskar-Jasmin,Stephanotis floribunda,"Der Madagaskar-Jasmin hat dicke, glaenzende Blaetter und wachsweisse, intensiv duftende Blueten. Klassische Hochzeitsblume.",Helles indirektes Licht,18-25 °C,7,flowering,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,3,Paradiesvogelblume,Strelitzia reginae,"Die Paradiesvogelblume beeindruckt mit leuchtend orangefarbenen und blauen Blueten, die einem Vogel aehneln.",Volles Sonnenlicht,18-26 °C,7,flowering|large|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,95,Drehfrucht,Streptocarpus hybridus,"Die Drehfrucht ist ein Gesneriengewaechs mit langen, gerippten Blaettern und trichterfoermigen Blueten in Lila oder Rosa.",Helles indirektes Licht,15-22 °C,7,flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,166,Herbstaster,Symphyotrichum novi-belgii,"Herbstaster ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,149,Flieder,Syringa vulgaris,"Flieder ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|tree|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,66,Studentenblume,Tagetes patula,Die Studentenblume ist eine robuste Sommerblume mit orangen oder gelben Blueten. Sie haelt Schadlinge fern.,Volles Sonnenlicht,15-28 °C,3,easy|flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,151,Kapuzinerkresse,Tropaeolum majus,"Kapuzinerkresse ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,107,Tulpe,Tulipa gesneriana,Die Tulpe ist eine der beliebtesten Fruehjahrsblueher mit kelchfoermigen Blueten in unzaehligen Farben.,Helles bis volles Licht,8-18 °C,5,easy|flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,104,Baldrian,Valeriana officinalis,Baldrian ist ein bekanntes Heilkraut mit weissen bis roeslichen Blueten. Die Wurzeln werden zur Schlaffoerderung verwendet.,Helles bis volles Licht,15-25 °C,7,flowering|medicinal,medicinal_requires_external_evidence,,,,
|
||||
flowering,constants/lexiconBatch1.ts,72,Vanda-Orchidee,Vanda coerulea,Die Vanda-Orchidee ist bekannt fuer ihre seltene blaue Bluetenfarbe. Epiphytische Orchidee mit grossen Blueten.,Helles bis volles Licht,20-30 °C,3,flowering|bright_light|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,76,Vanille,Vanilla planifolia,"Die Vanille ist eine kletternde Orchidee, aus deren Fruechten das beliebte Gewuerz gewonnen wird.",Helles indirektes Licht,20-30 °C,5,flowering|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,192,Koenigskerze,Verbascum thapsus,"Koenigskerze ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
flowering,constants/lexiconBatch2.ts,164,Eisenkraut,Verbena bonariensis,"Eisenkraut ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,198,Hornveilchen,Viola cornuta,"Hornveilchen ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,35,Stiefmuetterchen,Viola wittrockiana,Das Stiefmuetterchen ist ein bekannter Fruehjahrsblueher mit charakteristisch gezeichneten Blueten.,Helles bis volles Licht,5-18 °C,3,easy|flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,35,Flammen-Bromelie,Vriesea splendens,"Die Flammen-Bromelie hat gebänderte, dunkelgruene Blaetter und einen spektakulaeren, roten Bluetenstand.",Helles indirektes Licht,18-25 °C,7,flowering|patterned|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,221,Weigelie,Weigela florida,Weigelie ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,65,Chinesischer Blauregen,Wisteria sinensis,"Der Chinesische Blauregen ist ein ueppiger Kletterkuenstler mit langen, duftenden Bluetentrauben in Lila.",Volles Sonnenlicht,10-25 °C,7,flowering|large|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,70,Calla,Zantedeschia aethiopica,"Die Calla hat elegante, trichterfoermige weisse Hochblaetter und glaenzende, herzfoermige Blaetter. Sehr edel.",Helles indirektes Licht,15-24 °C,7,flowering|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,65,Zinnie,Zinnia elegans,"Die Zinnie ist eine leuchtende Sommerblume mit grossen, dahlienaehnlichen Blueten. Sehr robust und hitzetolerant.",Volles Sonnenlicht,18-30 °C,3,easy|flowering|sun,,,,,
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
category,source_file,source_index,name,botanical_name,description,light,temp,water_interval_days,all_categories,risk_flags,audit_status,evidence_source,evidence_url,notes
|
||||
hanging,constants/lexiconBatch1.ts,98,Lippenstiftpflanze,Aeschynanthus radicans,Die Lippenstiftpflanze hat haengende Triebe mit glaenzenden Blaettern und leuchtend roten Roehrenbluten.,Helles indirektes Licht,18-27 °C,7,flowering|hanging|high_humidity,,,,,
|
||||
hanging,constants/lexiconBatch2.ts,63,Calibrachoa,Calibrachoa hybrida,"Calibrachoa ist eine petunienaehnliche Haengepflanze mit unzaehligen, kleinen Trichterbluten in allen Farben.",Volles Sonnenlicht,15-25 °C,2,easy|flowering|hanging|sun,,,,,
|
||||
hanging,constants/lexiconBatch2.ts,56,Callisia,Callisia repens,"Callisia repens ist ein kleines, kriechendes Kraut mit winzigen, gruenen Blaettern. Ideal fuer haengende Behaelter.",Helles indirektes Licht,15-25 °C,5,easy|hanging,,,,,
|
||||
hanging,constants/lexiconBatch1.ts,99,Herzkette,Ceropegia woodii,"Die Herzkette hat duenne, haengende Ranken mit herzfoermigen, silbergrau gemusterten Blaettchen.",Helles indirektes Licht,15-27 °C,14,easy|succulent|patterned|hanging,,,,,
|
||||
hanging,constants/lexiconBatch1.ts,97,Columnea,Columnea gloriosa,"Die Columnea ist eine haengende Zimmerpflanze mit kleinen, behaarten Blaettern und leuchtend roten, roehrenfoermigen Blueten.",Helles indirektes Licht,18-25 °C,7,flowering|hanging|high_humidity,,,,,
|
||||
hanging,constants/lexiconBatch2.ts,236,String of Bananas,Curio radicans,String of Bananas ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles bis volles Licht,18-30 C,10,succulent|hanging|sun,,,,,
|
||||
hanging,constants/lexiconBatch2.ts,237,String of Dolphins,Curio x peregrinus,String of Dolphins ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles bis volles Licht,18-30 C,10,succulent|hanging|sun,,,,,
|
||||
hanging,constants/lexiconBatch1.ts,101,Dischidia,Dischidia ruscifolia,"Die Dischidia ist eine epiphytische Haengepflanze mit kleinen, runden Blaettern entlang duenner Ranken.",Helles indirektes Licht,18-27 °C,7,succulent|hanging,,,,,
|
||||
hanging,constants/lexiconBatch1.ts,16,Marmor-Efeutute,Epipremnum aureum Marble Queen,Die Marmor-Efeutute hat cremeweiss-gruen marmorierte Blaetter. Eine dekorative Variante der klassischen Efeutute.,Helles indirektes Licht,15-30 °C,7,easy|hanging|air_purifier,air_purifier_requires_external_evidence,,,,
|
||||
hanging,constants/lexiconBatch2.ts,53,Neon-Efeutute,Epipremnum pinnatum Neon,Die Neon-Efeutute hat leuchtend limonengruene Blaetter. Sehr auffaellig und pflegeleicht.,Helles indirektes Licht,15-30 °C,7,easy|hanging|air_purifier,air_purifier_requires_external_evidence,,,,
|
||||
hanging,constants/lexiconBatch1.ts,33,Fuchsie,Fuchsia hybrida,"Die Fuchsie haengt mit eleganten, zweifarbigen Blueten wie kleine Ohrringe herab. Ideal fuer Ampeln.",Helles indirektes Licht,14-22 °C,3,flowering|hanging,,,,,
|
||||
hanging,constants/lexiconBatch2.ts,60,Triphylla-Fuchsie,Fuchsia triphylla,"Die Triphylla-Fuchsie hat lange, roehrenfoermige, orangefarbe Blueten in haengenden Trauben. Sehr exotisch.",Helles indirektes Licht,15-22 °C,3,flowering|hanging,,,,,
|
||||
hanging,constants/lexiconBatch1.ts,37,Efeu,Hedera helix,"Efeu ist eine robuste Kletter- und Haengepflanze mit charakteristischen, dreilappigen Blaettern. Sehr langlebig.",Wenig bis helles Licht,10-20 °C,7,easy|hanging|air_purifier|low_light,air_purifier_requires_external_evidence,,,,
|
||||
hanging,constants/lexiconBatch1.ts,58,Kleine Wachsblume,Hoya bella,"Die Kleine Wachsblume traegt zierliche, sternfoermige weisse Blueten mit rosa Mitte. Haengende Sukkulente.",Helles indirektes Licht,18-27 °C,10,flowering|succulent|hanging,,,,,
|
||||
hanging,constants/lexiconBatch1.ts,57,Wachsblume,Hoya carnosa,"Die Wachsblume ist eine Kletterpflanze mit dicken, wachsartigen Blaettern und sternfoermigen, duftenden Blueten.",Helles indirektes Licht,16-27 °C,10,easy|flowering|succulent|hanging,,,,,
|
||||
hanging,constants/lexiconBatch1.ts,64,Suesskartoffel,Ipomoea batatas,"Die Suesskartoffel-Zierpflanze hat dekorative, herzfoermige Blaetter in gruen oder dunkelviolett. Ideal als Haengepflanze.",Volles Sonnenlicht,20-30 °C,5,easy|hanging|sun,,,,,
|
||||
hanging,constants/lexiconBatch2.ts,47,Monstera adansonii,Monstera adansonii,Monstera adansonii hat herzfoermige Blaetter mit zahlreichen runden Lochern. Eine rankende Zimmerpflanze.,Helles indirektes Licht,18-27 °C,7,easy|hanging,,,,,
|
||||
hanging,constants/lexiconBatch2.ts,48,Monstera obliqua,Monstera obliqua,"Monstera obliqua ist eine seltene Monstera-Art mit filigranen Blaettern, die hauptsaechlich aus Lochern bestehen.",Helles indirektes Licht,18-27 °C,7,patterned|hanging,,,,,
|
||||
hanging,constants/lexiconBatch2.ts,79,Kannenpflanze,Nepenthes alata,"Die Kannenpflanze bildet grosse, gefuellte Kannen als Insektenfallen. Eine faszinierende, tropische Pflanze.",Helles indirektes Licht,20-30 °C,5,hanging|high_humidity,,,,,
|
||||
hanging,constants/lexiconBatch2.ts,61,Efeu-Geranie,Pelargonium peltatum,"Die Efeu-Geranie hat efeufoermige, glaenzende Blaetter und bluet den ganzen Sommer in leuchtenden Farben.",Helles bis volles Licht,15-25 °C,5,easy|flowering|hanging|sun,,,,,
|
||||
hanging,constants/lexiconBatch2.ts,51,Roter Philodendron,Philodendron erubescens,"Der Rote Philodendron hat glaenzende, herzfoermige Blaetter, die jung roetrlich erscheinen. Sehr dekorativ.",Helles indirektes Licht,18-27 °C,7,easy|hanging,,,,,
|
||||
hanging,constants/lexiconBatch1.ts,15,Herzblatt-Philodendron,Philodendron hederaceum,Der Herzblatt-Philodendron ist eine pflegeleichte Kletter- oder Haengepflanze mit herzfoermigen Blaettern.,Indirektes Licht,18-28 °C,7,easy|hanging|low_light,,,,,
|
||||
hanging,constants/lexiconBatch2.ts,242,Philodendron Brasil,Philodendron hederaceum Brasil,Philodendron Brasil ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,easy|hanging|low_light,,,,,
|
||||
hanging,constants/lexiconBatch2.ts,41,Geweihfarn,Platycerium bifurcatum,"Der Geweihfarn hat gespaltene Wedel, die einem Hirschgeweih aehneln. Er ist ein epiphytischer Farn fuer Holz.",Helles indirektes Licht,15-25 °C,7,hanging|high_humidity,,,,,
|
||||
hanging,constants/lexiconBatch2.ts,52,Mini-Monstera,Rhaphidophora tetrasperma,"Die Mini-Monstera hat monsteraaehnliche, gelochte Blaetter auf einer kompakten, klettternden Pflanze. Sehr trendig.",Helles indirektes Licht,18-27 °C,7,easy|hanging,,,,,
|
||||
hanging,constants/lexiconBatch1.ts,85,Korallenkaktus,Rhipsalis baccifera,"Der Korallenkaktus ist ein epiphytischer Kaktus mit duennen, haengenden Trieben und kleinen weissen Beeren.",Indirektes Licht,18-27 °C,7,succulent|hanging,,,,,
|
||||
hanging,constants/lexiconBatch1.ts,55,Satinpothos,Scindapsus pictus,"Der Satinpothos hat samtig-glaenzende, silbrig gefleckte Blaetter auf langen, haengenden Ranken.",Helles indirektes Licht,18-28 °C,7,easy|patterned|hanging,,,,,
|
||||
hanging,constants/lexiconBatch1.ts,7,Eselschwanz,Sedum morganianum,"Der Eselschwanz ist eine haengende Sukkulente mit langen Trieben aus dichten, blaugruenen Blaettchen.",Volles Sonnenlicht,15-25 °C,14,easy|succulent|hanging|sun,,,,,
|
||||
hanging,constants/lexiconBatch1.ts,100,Perlenschnur-Pflanze,Senecio rowleyanus,"Die Perlenschnur-Pflanze hat haengende Ranken mit kugelfoermigen, perlenaehnlichen Blaettern. Einzigartige Sukkulente.",Helles bis volles Licht,15-27 °C,14,easy|succulent|hanging,,,,,
|
||||
hanging,constants/lexiconBatch1.ts,56,Pfeilblatt,Syngonium podophyllum,"Das Pfeilblatt hat charakteristisch pfeilfoermige Blaetter, die sich mit dem Alter weiterentwickeln.",Helles indirektes Licht,16-27 °C,7,easy|hanging,,,,,
|
||||
hanging,constants/lexiconBatch2.ts,32,Spanisches Moos,Tillandsia usneoides,"Das Spanische Moos ist eine epiphytische Bromelie ohne Wurzeln, die in der Luft haengt. Es benoetigt nur Feuchtigkeitsbespruehing.",Helles bis volles Licht,15-30 °C,3,easy|hanging,,,,,
|
||||
hanging,constants/lexiconBatch2.ts,55,Weisse Tradescantia,Tradescantia fluminensis,Die Weisse Tradescantia hat gruene Blaetter mit weisslichen Unterseiten. Sehr robust und schnellwachsend.,Helles indirektes Licht,15-25 °C,5,easy|hanging,,,,,
|
||||
hanging,constants/lexiconBatch2.ts,54,Lila Tradescantia,Tradescantia pallida,Die Lila Tradescantia hat leuchtend purpurrote Blaetter und ist sehr auffaellig. Sie liebt viel Licht.,Helles bis volles Licht,15-25 °C,5,easy|hanging|sun,,,,,
|
||||
hanging,constants/lexiconBatch1.ts,17,Zebrakraut,Tradescantia zebrina,Das Zebrakraut faellt durch seine silbrig-lila gestreiften Blaetter auf. Schnellwachsende Haengepflanze.,Helles indirektes Licht,15-25 °C,5,easy|patterned|hanging,,,,,
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
category,source_file,source_index,name,botanical_name,description,light,temp,water_interval_days,all_categories,risk_flags,audit_status,evidence_source,evidence_url,notes
|
||||
high_humidity,constants/lexiconBatch2.ts,42,Frauenhaarfarn,Adiantum raddianum,"Der Frauenhaarfarn hat zarte, feingliedrige Wedel auf schwarzen, drahtaehnlichen Stielen. Liebt Feuchtigkeit.",Helles indirektes Licht,18-27 °C,3,high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,98,Lippenstiftpflanze,Aeschynanthus radicans,Die Lippenstiftpflanze hat haengende Triebe mit glaenzenden Blaettern und leuchtend roten Roehrenbluten.,Helles indirektes Licht,18-27 °C,7,flowering|hanging|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,46,Amazona-Taro,Alocasia amazonica,"Der Amazona-Taro besticht mit dunkelgruenen, pfeilfoermigen Blaettern mit markant weissen Rippen.",Indirektes Licht,18-27 °C,5,patterned|large|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,225,Alocasia zebrina,Alocasia zebrina,Alocasia zebrina ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5,bright_light|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,73,Muschelingwer,Alpinia zerumbet,"Der Muschelingwer hat lange, elegante Blaetter und haengende Bluetenrispen mit weiss-rosa Bluetchen.",Helles bis volles Licht,20-30 °C,5,flowering|large|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,233,Samt-Anthurie,Anthurium clarinervium,Samt-Anthurie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5,patterned|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,234,Kristall-Anthurie,Anthurium crystallinum,Kristall-Anthurie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5,patterned|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,43,Vogelnest-Farn,Asplenium nidus,"Der Vogelnest-Farn hat ganzrandige, glaenzende Wedel, die eine Nestform bilden. Sehr dekorativ und robust.",Helles indirektes Licht,18-27 °C,5,easy|low_light|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,57,Forellen-Begonie,Begonia maculata,Die Forellen-Begonie hat olivgruene Blaetter mit silbernen Punkten und einer roten Unterseite. Atemberaubend.,Helles indirektes Licht,18-27 °C,7,patterned|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,18,Koenigsbegonie,Begonia rex,"Die Koenigsbegonie beeindruckt mit prachtvoll gemusterten Blaettern in Silber, Rot und Gruen.",Indirektes Licht,18-25 °C,5,patterned|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,58,Knollen-Begonie,Begonia tuberhybrida,"Die Knollen-Begonie hat riesige, rosenaehnliche Blueten in leuchtendem Rot, Orange, Gelb oder Weiss.",Helles indirektes Licht,15-22 °C,5,flowering|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,49,Buntblatt,Caladium bicolor,"Das Buntblatt beeindruckt mit transparenten, bunt gemusterten Blaettern in Pink, Rot, Weiss und Gruen.",Indirektes Licht,20-30 °C,5,patterned|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,73,Cattleya-Orchidee,Cattleya labiata,"Die Cattleya ist die Koenigin der Orchideen mit ueppigen, duftenden Blueten in Lila, Rosa und Weiss.",Helles indirektes Licht,18-28 °C,7,flowering|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,47,Taro,Colocasia esculenta,"Der Taro ist eine tropische Pflanze mit grossen, herzfoermigen Blaettern. Die Knollen sind Nahrungsquelle.",Helles indirektes Licht,18-30 °C,3,large|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,97,Columnea,Columnea gloriosa,"Die Columnea ist eine haengende Zimmerpflanze mit kleinen, behaarten Blaettern und leuchtend roten, roehrenfoermigen Blueten.",Helles indirektes Licht,18-25 °C,7,flowering|hanging|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,39,Cryptanthus,Cryptanthus bivittatus,Cryptanthus ist eine niedrig wachsende Bromelie mit sternfoermigen Rosetten und gemusterten Blaettern. Fuer Terrarien.,Helles indirektes Licht,18-27 °C,7,patterned|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,53,Ctenanthe,Ctenanthe burle-marxii,Die Ctenanthe hat faszinierend gemusterte Blaetter mit dunkelgruunem Fischgraetenmuster auf hellgruunem Hintergrund.,Indirektes Licht,18-25 °C,5,patterned|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,74,Kurkuma,Curcuma longa,Kurkuma ist eine tropische Gewuerzpflanze mit breiten Blaettern und leuchtend gelber Wurzel. Wichtiges Heilgewuerz.,Helles bis volles Licht,20-30 °C,7,medicinal|high_humidity,medicinal_requires_external_evidence,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,9,Paragraphenpflanze,Cyperus alternifolius,"Die Paragraphenpflanze hat lange, grasartige Blaetter, die sternfoermig vom Stiel abstehen. Sie liebt viel Wasser.",Helles bis volles Licht,18-27 °C,3,high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,70,Dendrobium,Dendrobium nobile,"Das Dendrobium ist eine beliebte Zimmerorchidee mit langen Pseudobulben, die im Winter mit Blueten besetzt werden.",Helles indirektes Licht,15-28 °C,10,flowering|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,80,Sonnentau,Drosera capensis,Der Sonnentau faengt Insekten mit klebrigen Tropfen auf seinen Blaettern. Eine faszinierende fleischfressende Pflanze.,Volles Sonnenlicht,15-25 °C,5,high_humidity|sun,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,137,Wasabi,Eutrema japonicum,"Wasabi ist ein seltenes Wuerzkraut, das gleichmaessige Feuchte und eher kuehle Bedingungen bevorzugt.",Helles indirektes Licht,8-20 C,4,bright_light|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,226,Nervenpflanze,Fittonia albivenis,Nervenpflanze ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5,patterned|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,22,Gardenie,Gardenia jasminoides,"Die Gardenie fasziniert mit cremefarbenen, intensiv duftenden Blueten. Anspruchsvoll in der Pflege.",Helles indirektes Licht,18-23 °C,5,flowering|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,96,Gloxinie,Gloxinia speciosa,"Die Gloxinie hat grosse, samtartige Blueten in Violett, Rosa oder Weiss mit farbigen Raendern.",Helles indirektes Licht,18-25 °C,5,flowering|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,240,Calathea lancifolia,Goeppertia insignis,Calathea lancifolia ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5,pet_friendly|patterned|high_humidity,pet_friendly_requires_external_evidence,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,241,Calathea ornata,Goeppertia ornata,Calathea ornata ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5,pet_friendly|patterned|high_humidity,pet_friendly_requires_external_evidence,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,36,Guzmania,Guzmania lingulata,"Die Guzmania ist eine Bromelie mit glänzenden, gruenen Blaettern und einem leuchtend roten, sternfoermigen Bluetenstand.",Helles indirektes Licht,18-27 °C,7,flowering|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,83,Heliamphora,Heliamphora nutans,Heliamphora ist eine urtuemliche Kannenpflanze aus den Tafelbergen Venezuelas. Sehr dekorativ und selten.,Helles indirektes Licht,15-25 °C,5,high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,72,Heliconia,Heliconia psittacorum,"Die Heliconia hat leuchtend orangefarbe oder rote, bootsfoermige Hochblaetter. Eine exotische Tropenpflanze.",Helles bis volles Licht,20-30 °C,5,flowering|bright_light|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,51,Gebet-Pflanze,Maranta leuconeura,Die Gebet-Pflanze faltet ihre gemusterten Blaetter nachts wie Haende zusammen. Faszinierende rote und gruene Muster.,Indirektes Licht,18-27 °C,5,pet_friendly|patterned|high_humidity,pet_friendly_requires_external_evidence,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,46,Tueipelfarn (Microsorum),Microsorum punctatum,"Microsorum punctatum ist ein tropischer Farn mit langen, ungeteilten, glaenzenden Wedeln. Fuer feuchte Standorte.",Helles indirektes Licht,18-27 °C,7,high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,75,Stiefmuetterchen-Orchidee,Miltoniopsis roezlii,"Die Stiefmuetterchen-Orchidee hat grosse, flache Blueten. Bevorzugt kuehle Temperaturen und hohe Luftfeuchtigkeit.",Indirektes Licht,15-22 °C,5,flowering|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,2,Bananenpflanze,Musa acuminata,"Die Bananenpflanze ist eine tropische Staude mit riesigen, glaenzenden Blaettern. Im Zimmer selten fruechttragend.",Helles bis volles Licht,20-30 °C,5,large|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,79,Kannenpflanze,Nepenthes alata,"Die Kannenpflanze bildet grosse, gefuellte Kannen als Insektenfallen. Eine faszinierende, tropische Pflanze.",Helles indirektes Licht,20-30 °C,5,hanging|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,74,Tanzerinnen-Orchidee,Oncidium sphacelatum,"Die Tanzerinnen-Orchidee traegt lange Rispen mit Hunderten kleiner, gelb-brauner Blueten. Sehr reichliche Bluetracht.",Helles indirektes Licht,18-27 °C,7,flowering|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,69,Schmetterlingsorchidee,Phalaenopsis amabilis,Die Schmetterlingsorchidee ist die bekannteste Zimmerorchidee. Sie bluet bei guter Pflege monatelang.,Helles indirektes Licht,18-28 °C,10,flowering|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,49,Philodendron gloriosum,Philodendron gloriosum,"Philodendron gloriosum hat grosse, samtige, herzfoermige Blaetter mit weissen Rippen. Eine atemberaubende Pflanze.",Helles indirektes Licht,18-27 °C,7,patterned|large|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,40,Blaues Kanaelfarn,Phlebodium aureum,"Der Blaue Kanaelfarn hat wachsartige, blaugruene Wedel und glaenzende Wurzelstaemme. Sehr dekorativ.",Helles indirektes Licht,18-27 °C,7,high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,81,Fettkraut,Pinguicula grandiflora,"Das Fettkraut faengt Insekten mit klebrigen Blaettern. Es bluet mit violetten, sporenartigen Blueten.",Helles indirektes Licht,10-20 °C,5,flowering|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,41,Geweihfarn,Platycerium bifurcatum,"Der Geweihfarn hat gespaltene Wedel, die einem Hirschgeweih aehneln. Er ist ein epiphytischer Farn fuer Holz.",Helles indirektes Licht,15-25 °C,7,hanging|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,78,Purpursonnentau,Sarracenia purpurea,Der Purpursonnentau ist eine fleischfressende Kannenpflanze mit purpurroten Kannen. Faengt Insekten.,Volles Sonnenlicht,5-25 °C,3,high_humidity|sun,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,45,Regenbogenmoos,Selaginella uncinata,"Das Regenbogenmoos hat schuppenfoermige Blaetter, die im Licht schillernd irisieren. Dekorativ fuer Terrarien.",Helles indirektes Licht,18-27 °C,5,patterned|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,238,Bubikopf,Soleirolia soleirolii,Bubikopf ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,15-24 C,4,pet_friendly|high_humidity,pet_friendly_requires_external_evidence,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,52,Stromanthe,Stromanthe sanguinea,Die Stromanthe hat dekorative Blaetter mit weissem Muster und leuchtend roter Unterseite. Familie der Marantaceen.,Helles indirektes Licht,18-25 °C,5,patterned|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,82,Wasserschlauch,Utricularia gibba,Der Wasserschlauch ist eine wasserbewohnende fleischfressende Pflanze mit Schlaeuchen als Insektenfallen.,Helles bis volles Licht,15-25 °C,2,high_humidity|sun,,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,72,Vanda-Orchidee,Vanda coerulea,Die Vanda-Orchidee ist bekannt fuer ihre seltene blaue Bluetenfarbe. Epiphytische Orchidee mit grossen Blueten.,Helles bis volles Licht,20-30 °C,3,flowering|bright_light|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,76,Vanille,Vanilla planifolia,"Die Vanille ist eine kletternde Orchidee, aus deren Fruechten das beliebte Gewuerz gewonnen wird.",Helles indirektes Licht,20-30 °C,5,flowering|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,35,Flammen-Bromelie,Vriesea splendens,"Die Flammen-Bromelie hat gebänderte, dunkelgruene Blaetter und einen spektakulaeren, roten Bluetenstand.",Helles indirektes Licht,18-25 °C,7,flowering|patterned|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,70,Calla,Zantedeschia aethiopica,"Die Calla hat elegante, trichterfoermige weisse Hochblaetter und glaenzende, herzfoermige Blaetter. Sehr edel.",Helles indirektes Licht,15-24 °C,7,flowering|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,75,Ingwer,Zingiber officinale,Ingwer ist eine tropische Gewuerzpflanze mit aromatischen Knollen. Die Blaetter sind schilfartig.,Helles indirektes Licht,20-30 °C,5,medicinal|high_humidity,medicinal_requires_external_evidence,,,,
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
category,source_file,source_index,name,botanical_name,description,light,temp,water_interval_days,all_categories,risk_flags,audit_status,evidence_source,evidence_url,notes
|
||||
large,constants/lexiconBatch2.ts,212,Spitzahorn,Acer platanoides,Spitzahorn ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
large,constants/lexiconBatch1.ts,11,Agave,Agave americana,"Die Agave ist eine imposante Sukkulente mit steifen, blaugruenen Blaettern mit Stacheln. Sie bluet nur einmal.",Volles Sonnenlicht,10-35 °C,21,succulent|large|sun,,,,,
|
||||
large,constants/lexiconBatch1.ts,46,Amazona-Taro,Alocasia amazonica,"Der Amazona-Taro besticht mit dunkelgruenen, pfeilfoermigen Blaettern mit markant weissen Rippen.",Indirektes Licht,18-27 °C,5,patterned|large|high_humidity,,,,,
|
||||
large,constants/lexiconBatch2.ts,18,Kap-Aloe (ferox),Aloe ferox,"Aloe ferox ist eine grosse, imposante Aloe mit stachligen, blaugruenen Blaettern und leuchtend roten Bluetenaehren.",Volles Sonnenlicht,10-30 °C,14,succulent|large|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
large,constants/lexiconBatch2.ts,73,Muschelingwer,Alpinia zerumbet,"Der Muschelingwer hat lange, elegante Blaetter und haengende Bluetenrispen mit weiss-rosa Bluetchen.",Helles bis volles Licht,20-30 °C,5,flowering|large|high_humidity,,,,,
|
||||
large,constants/lexiconBatch2.ts,7,Bambusrohr,Bambusa vulgaris,Das Bambusrohr ist eine schnell wachsende Bambusart mit gelbgruenen Halmen. Sehr dekorativ und vielseitig nutzbar.,Helles bis volles Licht,15-30 °C,5,easy|large,,,,,
|
||||
large,constants/lexiconBatch2.ts,114,Hange-Birke,Betula pendula,Die Haenge-Birke hat charakteristisch weisse Rinde und haengende Zweige. Die Blaetter werden in der Heilkunde genutzt.,Volles Sonnenlicht,10-25 °C,7,tree|large|medicinal,medicinal_requires_external_evidence,,,,
|
||||
large,constants/lexiconBatch2.ts,67,Blumenschilfrohr,Canna indica,"Das Blumenschilfrohr hat grosse, tropisch wirkende Blaetter und auffaellige Blueten in Rot, Orange oder Gelb.",Volles Sonnenlicht,18-28 °C,5,flowering|large|sun,,,,,
|
||||
large,constants/lexiconBatch2.ts,90,Papaya,Carica papaya,"Die Papaya ist eine tropische Fruchtpflanze mit grossen, gelappten Blaettern und orangen Fruechten.",Volles Sonnenlicht,20-35 °C,5,large|sun,,,,,
|
||||
large,constants/lexiconBatch2.ts,217,Trompetenbaum,Catalpa bignonioides,Trompetenbaum ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
large,constants/lexiconBatch2.ts,208,Zeder,Cedrus libani,Zeder ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
large,constants/lexiconBatch1.ts,81,Peruanischer Fackelkaktus,Cereus peruvianus,"Der Peruanische Fackelkaktus ist ein saeulenfoermiger Kaktus, der im Innenraum bis zu 2 m hoch werden kann.",Volles Sonnenlicht,15-35 °C,21,easy|succulent|large|sun,,,,,
|
||||
large,constants/lexiconBatch1.ts,47,Taro,Colocasia esculenta,"Der Taro ist eine tropische Pflanze mit grossen, herzfoermigen Blaettern. Die Knollen sind Nahrungsquelle.",Helles indirektes Licht,18-30 °C,3,large|high_humidity,,,,,
|
||||
large,constants/lexiconBatch2.ts,209,Zypresse,Cupressus sempervirens,Zypresse ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
large,constants/lexiconBatch2.ts,239,Palmfarn,Cycas revoluta,Palmfarn ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles bis volles Licht,18-30 C,10,tree|large|sun,,,,,
|
||||
large,constants/lexiconBatch2.ts,215,Flammenbaum,Delonix regia,Flammenbaum ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|large,,,,,
|
||||
large,constants/lexiconBatch1.ts,39,Geigenfeige,Ficus lyrata,"Die Geigenfeige ist ein Trendbaum mit grossen, geigenfoermigen Blaettern. Benoetigt viel Licht.",Helles indirektes Licht,18-27 °C,7,tree|large|bright_light,,,,,
|
||||
large,constants/lexiconBatch2.ts,211,Jacaranda,Jacaranda mimosifolia,Jacaranda ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|large,,,,,
|
||||
large,constants/lexiconBatch2.ts,204,Magnolie,Magnolia grandiflora,Magnolie ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|large,,,,,
|
||||
large,constants/lexiconBatch2.ts,2,Bananenpflanze,Musa acuminata,"Die Bananenpflanze ist eine tropische Staude mit riesigen, glaenzenden Blaettern. Im Zimmer selten fruechttragend.",Helles bis volles Licht,20-30 °C,5,large|high_humidity,,,,,
|
||||
large,constants/lexiconBatch2.ts,50,Philodendron bipinnatifidum,Philodendron bipinnatifidum,"Philodendron bipinnatifidum hat grosse, tief gelappte Blaetter. Er entwickelt einen beeindruckenden, baumfoermigen Wuchs.",Helles indirektes Licht,18-27 °C,7,easy|large,,,,,
|
||||
large,constants/lexiconBatch2.ts,49,Philodendron gloriosum,Philodendron gloriosum,"Philodendron gloriosum hat grosse, samtige, herzfoermige Blaetter mit weissen Rippen. Eine atemberaubende Pflanze.",Helles indirektes Licht,18-27 °C,7,patterned|large|high_humidity,,,,,
|
||||
large,constants/lexiconBatch2.ts,8,Goldener Bambus,Phyllostachys aurea,"Der Goldene Bambus hat elegante, goldgelbe Halme mit engstehenden Knoten. Sehr dekorativ als Sichtschutz.",Helles bis volles Licht,10-30 °C,5,easy|large,,,,,
|
||||
large,constants/lexiconBatch2.ts,207,Fichte,Picea abies,Fichte ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
large,constants/lexiconBatch2.ts,206,Kiefer,Pinus sylvestris,Kiefer ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
large,constants/lexiconBatch2.ts,71,Koenigs-Protea,Protea cynaroides,"Die Koenigs-Protea ist die Nationalblume Suedafrikas mit riesigen, imposanten Bluetenkoepfen. Eine echte Besonderheit.",Volles Sonnenlicht,10-25 °C,7,flowering|large|sun,,,,,
|
||||
large,constants/lexiconBatch2.ts,205,Eiche,Quercus robur,Eiche ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
large,constants/lexiconBatch2.ts,214,Robinie,Robinia pseudoacacia,Robinie ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
large,constants/lexiconBatch2.ts,113,Silber-Weide,Salix alba,"Die Silber-Weide hat silbrig-glaenzende Blaetter. Weidenrinde enthält Salicylsaeure, die Grundlage von Aspirin.",Helles bis volles Licht,10-25 °C,7,tree|large|medicinal,medicinal_requires_external_evidence,,,,
|
||||
large,constants/lexiconBatch2.ts,11,Grosse Strahlenaralie,Schefflera actinophylla,"Die Grosse Strahlenaralie kann grosse, handfoermige Blaetter entwickeln. Sie ist ideal als Zimmerstrauch.",Helles indirektes Licht,18-27 °C,7,easy|tree|large,,,,,
|
||||
large,constants/lexiconBatch2.ts,213,Eberesche,Sorbus aucuparia,Eberesche ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
large,constants/lexiconBatch2.ts,1,Weisse Strelitzie,Strelitzia nicolai,"Die Weisse Strelitzie ist ein beeindruckender Zimmerstrauch mit grossen, blaugruenen Blaettern und weiss-blauen Blueten.",Helles bis volles Licht,18-27 °C,7,tree|large|bright_light,,,,,
|
||||
large,constants/lexiconBatch1.ts,3,Paradiesvogelblume,Strelitzia reginae,"Die Paradiesvogelblume beeindruckt mit leuchtend orangefarbenen und blauen Blueten, die einem Vogel aehneln.",Volles Sonnenlicht,18-26 °C,7,flowering|large|sun,,,,,
|
||||
large,constants/lexiconBatch2.ts,5,Mexikanische Fächerpalme,Washingtonia robusta,"Die Mexikanische Fächerpalme ist eine schlanke, hohe Palme mit faecherfoermigen Blaettern. Sehr hitzetolerant.",Volles Sonnenlicht,15-35 °C,10,tree|large|sun,,,,,
|
||||
large,constants/lexiconBatch1.ts,65,Chinesischer Blauregen,Wisteria sinensis,"Der Chinesische Blauregen ist ein ueppiger Kletterkuenstler mit langen, duftenden Bluetentrauben in Lila.",Volles Sonnenlicht,10-25 °C,7,flowering|large|sun,,,,,
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
category,source_file,source_index,name,botanical_name,description,light,temp,water_interval_days,all_categories,risk_flags,audit_status,evidence_source,evidence_url,notes
|
||||
low_light,constants/lexiconBatch1.ts,50,Aglaoneme,Aglaonema commutatum,Die Aglaoneme ist eine dekorative Zimmerpflanze mit silbrig-gruen gemusterten Blaettern. Tolerant gegenueber wenig Licht.,Wenig bis helles Licht,15-26 °C,7,easy|patterned|low_light,,,,,
|
||||
low_light,constants/lexiconBatch2.ts,16,Schusterpflanze,Aspidistra elatior,"Die Schusterpflanze ist eine extrem robuste Zimmerpflanze mit langen, dunkelgruenen Blaettern. Vertraegt tiefe Temperaturen.",Wenig bis helles Licht,10-20 °C,14,easy|low_light,,,,,
|
||||
low_light,constants/lexiconBatch2.ts,43,Vogelnest-Farn,Asplenium nidus,"Der Vogelnest-Farn hat ganzrandige, glaenzende Wedel, die eine Nestform bilden. Sehr dekorativ und robust.",Helles indirektes Licht,18-27 °C,5,easy|low_light|high_humidity,,,,,
|
||||
low_light,constants/lexiconBatch2.ts,13,Japanische Aucube,Aucuba japonica,"Die Japanische Aucube hat glaenzende, gruene oder gelbgefleckte Blaetter. Sehr schattenvertraeglich.",Wenig bis helles Licht,10-20 °C,7,easy|low_light,,,,,
|
||||
low_light,constants/lexiconBatch1.ts,43,Bergpalme,Chamaedorea elegans,Die Bergpalme ist eine kompakte Zimmerpalme fuer schattigere Standorte. Ideal fuer dunkle Innenraeume.,Wenig bis helles Licht,15-25 °C,7,easy|pet_friendly|tree|air_purifier|low_light,air_purifier_requires_external_evidence|pet_friendly_requires_external_evidence,,,,
|
||||
low_light,constants/lexiconBatch1.ts,48,Dieffenbachie,Dieffenbachia seguine,"Die Dieffenbachie ist eine tropische Blattschmuckpflanze mit grossen, gruen-weiss gefleckten Blaettern.",Helles indirektes Licht,18-26 °C,7,easy|air_purifier|low_light,air_purifier_requires_external_evidence,,,,
|
||||
low_light,constants/lexiconBatch1.ts,14,Maisstrauch,Dracaena fragrans,"Der Maisstrauch ist eine robuste Zimmerpflanze mit breiten, gestreiften Blaettern. Gedeiht auch bei wenig Licht.",Helles indirektes Licht,15-25 °C,10,easy|tree|air_purifier|low_light,air_purifier_requires_external_evidence,,,,
|
||||
low_light,constants/lexiconBatch2.ts,12,Fatsia,Fatsia japonica,"Die Fatsia ist ein dekorativer Zimmerstrauch mit grossen, handfoermigen, glaenzenden Blaettern. Sehr robust.",Helles indirektes Licht,10-20 °C,7,easy|low_light,,,,,
|
||||
low_light,constants/lexiconBatch1.ts,90,Gasteria,Gasteria carinata,"Die Gasteria ist eine kleine Sukkulente mit zweireihig angeordneten, zungenfoermigen, gefleckten Blaettern.",Helles indirektes Licht,15-25 °C,14,easy|succulent|low_light,,,,,
|
||||
low_light,constants/lexiconBatch1.ts,6,Zebra-Haworthie,Haworthia fasciata,Die Zebra-Haworthie ist eine kompakte Sukkulente mit weissen Querstreifen auf dunkelgruenen Blaettern.,Helles indirektes Licht,15-25 °C,14,easy|succulent|low_light,,,,,
|
||||
low_light,constants/lexiconBatch1.ts,37,Efeu,Hedera helix,"Efeu ist eine robuste Kletter- und Haengepflanze mit charakteristischen, dreilappigen Blaettern. Sehr langlebig.",Wenig bis helles Licht,10-20 °C,7,easy|hanging|air_purifier|low_light,air_purifier_requires_external_evidence,,,,
|
||||
low_light,constants/lexiconBatch2.ts,3,Kentia-Palme,Howea forsteriana,"Die Kentia-Palme ist eine der elegantesten Zimmerpalmen mit langen, herabhängenden Fiederblaettern.",Helles indirektes Licht,18-25 °C,7,pet_friendly|tree|low_light,pet_friendly_requires_external_evidence,,,,
|
||||
low_light,constants/lexiconBatch1.ts,103,Spiegelpeperomie,Peperomia obtusifolia,"Die Spiegelpeperomie hat glaenzende, lederartige, oval-runde Blaetter in tiefem Gruen. Sehr robust.",Helles indirektes Licht,16-26 °C,10,easy|pet_friendly|low_light,pet_friendly_requires_external_evidence,,,,
|
||||
low_light,constants/lexiconBatch1.ts,15,Herzblatt-Philodendron,Philodendron hederaceum,Der Herzblatt-Philodendron ist eine pflegeleichte Kletter- oder Haengepflanze mit herzfoermigen Blaettern.,Indirektes Licht,18-28 °C,7,easy|hanging|low_light,,,,,
|
||||
low_light,constants/lexiconBatch2.ts,242,Philodendron Brasil,Philodendron hederaceum Brasil,Philodendron Brasil ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,easy|hanging|low_light,,,,,
|
||||
low_light,constants/lexiconBatch1.ts,45,Stab-Palme,Rhapis excelsa,"Die Stab-Palme ist eine elegante Zimmerpalme mit faecherfoermigen Blaettern auf duennen, bambusartigen Staemmen.",Helles indirektes Licht,15-25 °C,7,tree|low_light,,,,,
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
category,source_file,source_index,name,botanical_name,description,light,temp,water_interval_days,all_categories,risk_flags,audit_status,evidence_source,evidence_url,notes
|
||||
medicinal,constants/lexiconBatch2.ts,108,Schafgarbe,Achillea millefolium,Die Schafgarbe hat weisse oder rosafarbene Bluetenschirme und fein gefiederte Blaetter. Wichtige Heilpflanze.,Volles Sonnenlicht,10-25 °C,7,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch1.ts,89,Kap-Aloe,Aloe arborescens,"Die Kap-Aloe ist eine strauchige Aloe mit schmalen, gezaehnten Blaettern und leuchtend roten Bluetenaehren im Winter.",Volles Sonnenlicht,10-30 °C,14,easy|succulent|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,18,Kap-Aloe (ferox),Aloe ferox,"Aloe ferox ist eine grosse, imposante Aloe mit stachligen, blaugruenen Blaettern und leuchtend roten Bluetenaehren.",Volles Sonnenlicht,10-30 °C,14,succulent|large|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,107,Arnika,Arnica montana,Arnika ist eine bekannte Heilpflanze aus den Alpen mit goldgelben Korbbluten. Sie wird fuer Muskeln und Gelenke verwendet.,Volles Sonnenlicht,10-20 °C,7,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,110,Wermut,Artemisia absinthium,"Wermut ist ein stark aromatisches Heilkraut mit silbrig-gruenen, tief eingeschnittenen Blaettern. Fuer Kraeuterlikoere.",Volles Sonnenlicht,10-25 °C,14,medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,114,Hange-Birke,Betula pendula,Die Haenge-Birke hat charakteristisch weisse Rinde und haengende Zweige. Die Blaetter werden in der Heilkunde genutzt.,Volles Sonnenlicht,10-25 °C,7,tree|large|medicinal,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,187,Ringelblume,Calendula officinalis,"Ringelblume ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,92,Chili,Capsicum annuum,"Chili ist eine beliebte Gemuese- und Zierpflanze mit leuchtenden, roten oder orangen Fruechten. Im Topf kultivierbar.",Volles Sonnenlicht,20-30 °C,4,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,138,Roemische Kamille,Chamaemelum nobile,Roemische Kamille ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,101,Kamille,Chamomilla recutita,"Die Kamille ist ein beliebtes Heilkraut mit kleinen, weiss-gelben Blueten. Das aetherische Oel wirkt beruhigend.",Volles Sonnenlicht,15-25 °C,5,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,160,Maigloeckchen,Convallaria majalis,"Maigloeckchen ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|medicinal,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,74,Kurkuma,Curcuma longa,Kurkuma ist eine tropische Gewuerzpflanze mit breiten Blaettern und leuchtend gelber Wurzel. Wichtiges Heilgewuerz.,Helles bis volles Licht,20-30 °C,7,medicinal|high_humidity,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,109,Roter Fingerhut,Digitalis purpurea,"Der Rote Fingerhut hat hohe Bluetenstaende mit roehrenfoermigen, gepunkteten Blueten in Rosa. Wichtige Arzneipflanze.",Helles bis volles Licht,10-20 °C,7,flowering|medicinal,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,106,Sonnenhut,Echinacea purpurea,"Der Sonnenhut ist eine beliebte Heilpflanze mit grossen, pinkfarbenen Blueten. Er staerkt das Immunsystem.",Helles bis volles Licht,15-25 °C,7,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,210,Eukalyptus,Eucalyptus globulus,Eukalyptus ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,216,Ginkgo,Ginkgo biloba,Ginkgo ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,119,Zaubernuss,Hamamelis mollis,"Die Zaubernuss bluet im Winter mit fadendunnen, gelben Bluetenkranzeln, die bis -10 Grad standhalten.",Helles bis volles Licht,10-20 °C,10,flowering|medicinal,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,105,Johanniskraut,Hypericum perforatum,Das Johanniskraut hat leuchtend gelbe Blueten und ist ein wichtiges Heilkraut gegen Depressionen und Stimmungstiefs.,Volles Sonnenlicht,10-25 °C,7,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch1.ts,23,Echter Lavendel,Lavandula angustifolia,Der Echte Lavendel ist ein aromatischer Halbstrauch mit lilafarbenen Bluetenaehren. Herrlicher Duft.,Volles Sonnenlicht,10-25 °C,10,medicinal|bright_light|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,102,Zitronenmelisse,Melissa officinalis,Die Zitronenmelisse ist ein zitronig duftendes Heilkraut. Sie beruhigt die Nerven und foerdert den Schlaf.,Helles bis volles Licht,15-25 °C,5,easy|medicinal,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch1.ts,25,Basilikum,Ocimum basilicum,"Basilikum ist das beliebteste Kuechenkraut mit intensiv aromatischen, gruenen Blaettern. Fuer Pesto verwendet.",Volles Sonnenlicht,18-30 °C,2,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch1.ts,28,Oregano,Origanum vulgare,"Oregano ist ein aromatisches Kuechenkraut mit runden, behaarten Blaettern. In mediterraner Kueche beliebt.",Volles Sonnenlicht,15-25 °C,7,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch1.ts,31,Rosengeranie,Pelargonium graveolens,Die Rosengeranie ist eine Duftpflanze mit tief eingeschnittenen Blaettern und rosaenlichem Aroma.,Volles Sonnenlicht,15-25 °C,7,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch1.ts,24,Rosmarin,Rosmarinus officinalis,Rosmarin ist ein aromatisches Kraut mit nadelartigen Blaettern und blauen Blueten. In der Kueche unverzichtbar.,Volles Sonnenlicht,10-25 °C,7,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,113,Silber-Weide,Salix alba,"Die Silber-Weide hat silbrig-glaenzende Blaetter. Weidenrinde enthält Salicylsaeure, die Grundlage von Aspirin.",Helles bis volles Licht,10-25 °C,7,tree|large|medicinal,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,103,Salbei,Salvia officinalis,Salbei ist ein aromatisches Heilkraut mit silbrig-gruenen Blaettern. Er hat antibakterielle und entzuendungshemmende Wirkung.,Volles Sonnenlicht,10-25 °C,7,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,112,Schwarzer Holunder,Sambucus nigra,Der Schwarze Holunder hat weisse Doldenbluten und schwarze Beeren. Die Fruechte werden fuer Sirup und Saft verwendet.,Helles bis volles Licht,10-25 °C,7,flowering|tree|medicinal,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch1.ts,27,Thymian,Thymus vulgaris,"Thymian ist ein kleiner, aromatischer Strauch mit winzigen Blaettern und rosa Blueten. Wichtiges Kuechenkraut.",Volles Sonnenlicht,10-25 °C,7,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,111,Grosse Brennessel,Urtica dioica,Die Grosse Brennessel ist eine Heilpflanze mit brennenden Haaren. Die Blaetter sind reich an Vitaminen und Mineralien.,Helles bis volles Licht,10-25 °C,7,medicinal,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,104,Baldrian,Valeriana officinalis,Baldrian ist ein bekanntes Heilkraut mit weissen bis roeslichen Blueten. Die Wurzeln werden zur Schlaffoerderung verwendet.,Helles bis volles Licht,15-25 °C,7,flowering|medicinal,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,192,Koenigskerze,Verbascum thapsus,"Koenigskerze ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,75,Ingwer,Zingiber officinale,Ingwer ist eine tropische Gewuerzpflanze mit aromatischen Knollen. Die Blaetter sind schilfartig.,Helles indirektes Licht,20-30 °C,5,medicinal|high_humidity,medicinal_requires_external_evidence,,,,
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
category,source_file,source_index,name,botanical_name,description,light,temp,water_interval_days,all_categories,risk_flags,audit_status,evidence_source,evidence_url,notes
|
||||
patterned,constants/lexiconBatch2.ts,34,Silbervase,Aechmea fasciata,Die Silbervase ist eine Bromelie mit silbrig gebänderten Blaettern und einem rosafarbenen Bluetenstand.,Helles indirektes Licht,18-25 °C,10,flowering|patterned,,,,,
|
||||
patterned,constants/lexiconBatch1.ts,50,Aglaoneme,Aglaonema commutatum,Die Aglaoneme ist eine dekorative Zimmerpflanze mit silbrig-gruen gemusterten Blaettern. Tolerant gegenueber wenig Licht.,Wenig bis helles Licht,15-26 °C,7,easy|patterned|low_light,,,,,
|
||||
patterned,constants/lexiconBatch1.ts,46,Amazona-Taro,Alocasia amazonica,"Der Amazona-Taro besticht mit dunkelgruenen, pfeilfoermigen Blaettern mit markant weissen Rippen.",Indirektes Licht,18-27 °C,5,patterned|large|high_humidity,,,,,
|
||||
patterned,constants/lexiconBatch2.ts,233,Samt-Anthurie,Anthurium clarinervium,Samt-Anthurie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5,patterned|high_humidity,,,,,
|
||||
patterned,constants/lexiconBatch2.ts,234,Kristall-Anthurie,Anthurium crystallinum,Kristall-Anthurie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5,patterned|high_humidity,,,,,
|
||||
patterned,constants/lexiconBatch2.ts,57,Forellen-Begonie,Begonia maculata,Die Forellen-Begonie hat olivgruene Blaetter mit silbernen Punkten und einer roten Unterseite. Atemberaubend.,Helles indirektes Licht,18-27 °C,7,patterned|high_humidity,,,,,
|
||||
patterned,constants/lexiconBatch1.ts,18,Koenigsbegonie,Begonia rex,"Die Koenigsbegonie beeindruckt mit prachtvoll gemusterten Blaettern in Silber, Rot und Gruen.",Indirektes Licht,18-25 °C,5,patterned|high_humidity,,,,,
|
||||
patterned,constants/lexiconBatch1.ts,49,Buntblatt,Caladium bicolor,"Das Buntblatt beeindruckt mit transparenten, bunt gemusterten Blaettern in Pink, Rot, Weiss und Gruen.",Indirektes Licht,20-30 °C,5,patterned|high_humidity,,,,,
|
||||
patterned,constants/lexiconBatch1.ts,99,Herzkette,Ceropegia woodii,"Die Herzkette hat duenne, haengende Ranken mit herzfoermigen, silbergrau gemusterten Blaettchen.",Helles indirektes Licht,15-27 °C,14,easy|succulent|patterned|hanging,,,,,
|
||||
patterned,constants/lexiconBatch2.ts,224,Kroton,Codiaeum variegatum,Kroton ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,patterned|bright_light,,,,,
|
||||
patterned,constants/lexiconBatch2.ts,39,Cryptanthus,Cryptanthus bivittatus,Cryptanthus ist eine niedrig wachsende Bromelie mit sternfoermigen Rosetten und gemusterten Blaettern. Fuer Terrarien.,Helles indirektes Licht,18-27 °C,7,patterned|high_humidity,,,,,
|
||||
patterned,constants/lexiconBatch1.ts,53,Ctenanthe,Ctenanthe burle-marxii,Die Ctenanthe hat faszinierend gemusterte Blaetter mit dunkelgruunem Fischgraetenmuster auf hellgruunem Hintergrund.,Indirektes Licht,18-25 °C,5,patterned|high_humidity,,,,,
|
||||
patterned,constants/lexiconBatch2.ts,226,Nervenpflanze,Fittonia albivenis,Nervenpflanze ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5,patterned|high_humidity,,,,,
|
||||
patterned,constants/lexiconBatch2.ts,240,Calathea lancifolia,Goeppertia insignis,Calathea lancifolia ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5,pet_friendly|patterned|high_humidity,pet_friendly_requires_external_evidence,,,,
|
||||
patterned,constants/lexiconBatch2.ts,241,Calathea ornata,Goeppertia ornata,Calathea ornata ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5,pet_friendly|patterned|high_humidity,pet_friendly_requires_external_evidence,,,,
|
||||
patterned,constants/lexiconBatch2.ts,227,Punktblatt,Hypoestes phyllostachya,Punktblatt ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,patterned|bright_light,,,,,
|
||||
patterned,constants/lexiconBatch1.ts,51,Gebet-Pflanze,Maranta leuconeura,Die Gebet-Pflanze faltet ihre gemusterten Blaetter nachts wie Haende zusammen. Faszinierende rote und gruene Muster.,Indirektes Licht,18-27 °C,5,pet_friendly|patterned|high_humidity,pet_friendly_requires_external_evidence,,,,
|
||||
patterned,constants/lexiconBatch2.ts,48,Monstera obliqua,Monstera obliqua,"Monstera obliqua ist eine seltene Monstera-Art mit filigranen Blaettern, die hauptsaechlich aus Lochern bestehen.",Helles indirektes Licht,18-27 °C,7,patterned|hanging,,,,,
|
||||
patterned,constants/lexiconBatch2.ts,37,Neoregelia,Neoregelia carolinae,"Die Neoregelia ist eine Bromelie, bei der das Herzblatt zur Bluetzeit leuchtend rot wird. Sehr dekorativ.",Helles bis volles Licht,18-27 °C,7,flowering|patterned|bright_light,,,,,
|
||||
patterned,constants/lexiconBatch1.ts,54,Kleeblume,Oxalis triangularis,"Die Kleeblume hat tiefviolette, dreieckige Blaetter und zarte rosa Blueten. Sie faltet die Blaetter bei Dunkelheit.",Helles indirektes Licht,15-24 °C,7,flowering|patterned,,,,,
|
||||
patterned,constants/lexiconBatch2.ts,6,Schraubenbaum,Pandanus veitchii,"Der Schraubenbaum hat spiralfoermig angeordnete, gruenweiss gestreifte Blaetter. Sehr dekorativ und exotisch.",Helles bis volles Licht,18-27 °C,7,patterned|bright_light,,,,,
|
||||
patterned,constants/lexiconBatch2.ts,229,Wassermelonen-Peperomie,Peperomia argyreia,Wassermelonen-Peperomie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,pet_friendly|patterned,pet_friendly_requires_external_evidence,,,,
|
||||
patterned,constants/lexiconBatch2.ts,243,Philodendron Pink Princess,Philodendron erubescens Pink Princess,Philodendron Pink Princess ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,patterned|bright_light,,,,,
|
||||
patterned,constants/lexiconBatch2.ts,49,Philodendron gloriosum,Philodendron gloriosum,"Philodendron gloriosum hat grosse, samtige, herzfoermige Blaetter mit weissen Rippen. Eine atemberaubende Pflanze.",Helles indirektes Licht,18-27 °C,7,patterned|large|high_humidity,,,,,
|
||||
patterned,constants/lexiconBatch2.ts,228,Aluminium-Pflanze,Pilea cadierei,Aluminium-Pflanze ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,easy|pet_friendly|patterned,pet_friendly_requires_external_evidence,,,,
|
||||
patterned,constants/lexiconBatch2.ts,152,Buntnessel,Plectranthus scutellarioides,"Buntnessel ist eine farbstarke Zierpflanze, die vor allem fuer ihr dekoratives Laub beliebt ist.",Volles bis helles Licht,10-24 C,4,patterned|bright_light,,,,,
|
||||
patterned,constants/lexiconBatch1.ts,55,Satinpothos,Scindapsus pictus,"Der Satinpothos hat samtig-glaenzende, silbrig gefleckte Blaetter auf langen, haengenden Ranken.",Helles indirektes Licht,18-28 °C,7,easy|patterned|hanging,,,,,
|
||||
patterned,constants/lexiconBatch2.ts,45,Regenbogenmoos,Selaginella uncinata,"Das Regenbogenmoos hat schuppenfoermige Blaetter, die im Licht schillernd irisieren. Dekorativ fuer Terrarien.",Helles indirektes Licht,18-27 °C,5,patterned|high_humidity,,,,,
|
||||
patterned,constants/lexiconBatch1.ts,52,Stromanthe,Stromanthe sanguinea,Die Stromanthe hat dekorative Blaetter mit weissem Muster und leuchtend roter Unterseite. Familie der Marantaceen.,Helles indirektes Licht,18-25 °C,5,patterned|high_humidity,,,,,
|
||||
patterned,constants/lexiconBatch1.ts,17,Zebrakraut,Tradescantia zebrina,Das Zebrakraut faellt durch seine silbrig-lila gestreiften Blaetter auf. Schnellwachsende Haengepflanze.,Helles indirektes Licht,15-25 °C,5,easy|patterned|hanging,,,,,
|
||||
patterned,constants/lexiconBatch2.ts,35,Flammen-Bromelie,Vriesea splendens,"Die Flammen-Bromelie hat gebänderte, dunkelgruene Blaetter und einen spektakulaeren, roten Bluetenstand.",Helles indirektes Licht,18-25 °C,7,flowering|patterned|high_humidity,,,,,
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
category,source_file,source_index,name,botanical_name,description,light,temp,water_interval_days,all_categories,risk_flags,audit_status,evidence_source,evidence_url,notes
|
||||
pet_friendly,constants/lexiconBatch1.ts,43,Bergpalme,Chamaedorea elegans,Die Bergpalme ist eine kompakte Zimmerpalme fuer schattigere Standorte. Ideal fuer dunkle Innenraeume.,Wenig bis helles Licht,15-25 °C,7,easy|pet_friendly|tree|air_purifier|low_light,air_purifier_requires_external_evidence|pet_friendly_requires_external_evidence,,,,
|
||||
pet_friendly,constants/lexiconBatch1.ts,42,Goldfruchtpalme,Dypsis lutescens,Die Goldfruchtpalme ist eine elegante Zimmerpalme mit gelblich-gruenen Stielen und gefiederten Wedeln.,Helles indirektes Licht,18-27 °C,5,pet_friendly|tree|air_purifier,air_purifier_requires_external_evidence|pet_friendly_requires_external_evidence,,,,
|
||||
pet_friendly,constants/lexiconBatch2.ts,100,Erdbeere,Fragaria ananassa,"Die Erdbeere ist ein beliebtes Obst fuer Balkon und Terrasse mit aromatischen, roten Fruechten.",Helles bis volles Licht,15-25 °C,3,easy|pet_friendly|sun,pet_friendly_requires_external_evidence,,,,
|
||||
pet_friendly,constants/lexiconBatch2.ts,240,Calathea lancifolia,Goeppertia insignis,Calathea lancifolia ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5,pet_friendly|patterned|high_humidity,pet_friendly_requires_external_evidence,,,,
|
||||
pet_friendly,constants/lexiconBatch2.ts,241,Calathea ornata,Goeppertia ornata,Calathea ornata ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5,pet_friendly|patterned|high_humidity,pet_friendly_requires_external_evidence,,,,
|
||||
pet_friendly,constants/lexiconBatch2.ts,3,Kentia-Palme,Howea forsteriana,"Die Kentia-Palme ist eine der elegantesten Zimmerpalmen mit langen, herabhängenden Fiederblaettern.",Helles indirektes Licht,18-25 °C,7,pet_friendly|tree|low_light,pet_friendly_requires_external_evidence,,,,
|
||||
pet_friendly,constants/lexiconBatch1.ts,51,Gebet-Pflanze,Maranta leuconeura,Die Gebet-Pflanze faltet ihre gemusterten Blaetter nachts wie Haende zusammen. Faszinierende rote und gruene Muster.,Indirektes Licht,18-27 °C,5,pet_friendly|patterned|high_humidity,pet_friendly_requires_external_evidence,,,,
|
||||
pet_friendly,constants/lexiconBatch2.ts,229,Wassermelonen-Peperomie,Peperomia argyreia,Wassermelonen-Peperomie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,pet_friendly|patterned,pet_friendly_requires_external_evidence,,,,
|
||||
pet_friendly,constants/lexiconBatch1.ts,102,Rippenpeperomie,Peperomia caperata,"Die Rippenpeperomie hat tief gerippte, dunkelgruene bis violette Blaetter mit einer samtigen Textur.",Helles indirektes Licht,18-26 °C,10,easy|pet_friendly,pet_friendly_requires_external_evidence,,,,
|
||||
pet_friendly,constants/lexiconBatch1.ts,103,Spiegelpeperomie,Peperomia obtusifolia,"Die Spiegelpeperomie hat glaenzende, lederartige, oval-runde Blaetter in tiefem Gruen. Sehr robust.",Helles indirektes Licht,16-26 °C,10,easy|pet_friendly|low_light,pet_friendly_requires_external_evidence,,,,
|
||||
pet_friendly,constants/lexiconBatch2.ts,230,Raindrop-Peperomie,Peperomia polybotrya,Raindrop-Peperomie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,easy|pet_friendly,pet_friendly_requires_external_evidence,,,,
|
||||
pet_friendly,constants/lexiconBatch1.ts,34,Petunie,Petunia hybrida,Die Petunie ist eine der beliebtesten Balkonpflanzen mit trichterfoermigen Blueten in unzaehligen Farben.,Volles Sonnenlicht,15-25 °C,2,easy|pet_friendly|flowering|sun,pet_friendly_requires_external_evidence,,,,
|
||||
pet_friendly,constants/lexiconBatch2.ts,228,Aluminium-Pflanze,Pilea cadierei,Aluminium-Pflanze ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,easy|pet_friendly|patterned,pet_friendly_requires_external_evidence,,,,
|
||||
pet_friendly,constants/lexiconBatch1.ts,2,Ufopflanze,Pilea peperomioides,"Die Ufopflanze hat unverwechselbare, runde Blaetter auf langen Stielen. Bildet leicht Ableger zum Verschenken.",Helles indirektes Licht,13-30 °C,7,easy|pet_friendly,pet_friendly_requires_external_evidence,,,,
|
||||
pet_friendly,constants/lexiconBatch2.ts,238,Bubikopf,Soleirolia soleirolii,Bubikopf ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,15-24 C,4,pet_friendly|high_humidity,pet_friendly_requires_external_evidence,,,,
|
||||
|
|
|
@ -0,0 +1,47 @@
|
|||
category,source_file,source_index,name,botanical_name,description,light,temp,water_interval_days,all_categories,risk_flags,audit_status,evidence_source,evidence_url,notes
|
||||
succulent,constants/lexiconBatch1.ts,86,Wuestenrose,Adenium obesum,Die Wuestenrose ist eine sukkulente Zimmerpflanze mit dickem Stamm und leuchtend pinken Blueten.,Volles Sonnenlicht,20-35 °C,10,flowering|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch2.ts,117,Socotra-Wuestenrose,Adenium socotranum,"Die Socotra-Wuestenrose ist eine seltene, endemische Art mit einem sehr dicken, knolligen Stamm und rosa Blueten.",Volles Sonnenlicht,20-35 °C,14,flowering|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch2.ts,31,Adromischus,Adromischus cristatus,Adromischus ist eine kompakte Sukkulente mit ungewoehnlich wellenrandigen Blaettern auf kurzen Staengeln.,Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,10,Schwarze Rose (Aeonium),Aeonium arboreum,"Das Aeonium bildet dekorative, rosettenfoermige Sukkulenten an verzweigten Stielen.",Volles Sonnenlicht,10-25 °C,10,succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,11,Agave,Agave americana,"Die Agave ist eine imposante Sukkulente mit steifen, blaugruenen Blaettern mit Stacheln. Sie bluet nur einmal.",Volles Sonnenlicht,10-35 °C,21,succulent|large|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,89,Kap-Aloe,Aloe arborescens,"Die Kap-Aloe ist eine strauchige Aloe mit schmalen, gezaehnten Blaettern und leuchtend roten Bluetenaehren im Winter.",Volles Sonnenlicht,10-30 °C,14,easy|succulent|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
succulent,constants/lexiconBatch2.ts,18,Kap-Aloe (ferox),Aloe ferox,"Aloe ferox ist eine grosse, imposante Aloe mit stachligen, blaugruenen Blaettern und leuchtend roten Bluetenaehren.",Volles Sonnenlicht,10-30 °C,14,succulent|large|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
succulent,constants/lexiconBatch1.ts,41,Pferdeschwanzpalme,Beaucarnea recurvata,"Die Pferdeschwanzpalme hat einen verdickten Stammbasis als Wasserspeicher und lange, schmale Blaetter.",Volles Sonnenlicht,15-30 °C,21,easy|succulent|tree|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,81,Peruanischer Fackelkaktus,Cereus peruvianus,"Der Peruanische Fackelkaktus ist ein saeulenfoermiger Kaktus, der im Innenraum bis zu 2 m hoch werden kann.",Volles Sonnenlicht,15-35 °C,21,easy|succulent|large|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,99,Herzkette,Ceropegia woodii,"Die Herzkette hat duenne, haengende Ranken mit herzfoermigen, silbergrau gemusterten Blaettchen.",Helles indirektes Licht,15-27 °C,14,easy|succulent|patterned|hanging,,,,,
|
||||
succulent,constants/lexiconBatch2.ts,24,Konophytum,Conophytum calculus,"Das Konophytum ist eine sehr kompakte Sukkulente, die zwei Blaetter zu einer kugelfoermigen Form verschmilzt.",Volles Sonnenlicht,10-25 °C,21,succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch2.ts,29,Kotyledon,Cotyledon orbiculata,"Kotyledon hat dickfleischige, runde Blaetter mit einem mehligen, weisslichen Belag. Sehr trockenheitsresistent.",Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch2.ts,26,Moos-Crassula,Crassula muscosa,"Die Moos-Crassula hat dicht aneinandergereihte, winzige gruene Blaetter auf unverzweigten Trieben. Sieht aus wie Moos.",Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,5,Jadepflanze,Crassula ovata,"Die Jadepflanze ist eine langlebige Sukkulente mit dicken, ovalen Blaettern. In Japan gilt sie als Gluecksbringer.",Helles bis volles Licht,15-24 °C,14,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch2.ts,236,String of Bananas,Curio radicans,String of Bananas ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles bis volles Licht,18-30 C,10,succulent|hanging|sun,,,,,
|
||||
succulent,constants/lexiconBatch2.ts,237,String of Dolphins,Curio x peregrinus,String of Dolphins ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles bis volles Licht,18-30 C,10,succulent|hanging|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,101,Dischidia,Dischidia ruscifolia,"Die Dischidia ist eine epiphytische Haengepflanze mit kleinen, runden Blaettern entlang duenner Ranken.",Helles indirektes Licht,18-27 °C,7,succulent|hanging,,,,,
|
||||
succulent,constants/lexiconBatch2.ts,30,Dudleya,Dudleya brittonii,"Dudleya ist eine rosettenbildende Sukkulente mit silbrig-weissen, mehligen Blaettern. Sehr elegant.",Volles Sonnenlicht,10-25 °C,14,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,4,Echeverie,Echeveria elegans,"Die Echeverie bildet symmetrische, rosettenfoermige Sukkulenten mit blaugruenen Blaettern. Pflegeleicht.",Volles Sonnenlicht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,77,Goldene Tonne,Echinocactus grusonii,Die Goldene Tonne ist ein ikonischer kugelfoermiger Kaktus mit goldgelben Stacheln. Waechst langsam aber imposant.,Volles Sonnenlicht,15-35 °C,21,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,83,San-Pedro-Kaktus,Echinopsis pachanoi,"Der San-Pedro-Kaktus ist ein schnell wachsender, saeulenfoermiger Kaktus aus den Anden.",Volles Sonnenlicht,10-35 °C,14,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,84,Koenigin der Nacht,Epiphyllum oxypetalum,"Die Koenigin der Nacht bluet nur eine einzige Nacht lang mit riesigen, intensiv duftenden weissen Blueten.",Indirektes Licht,18-27 °C,7,flowering|succulent,,,,,
|
||||
succulent,constants/lexiconBatch2.ts,19,Christusdorn,Euphorbia milii,Der Christusdorn ist eine sukkulente Wolfsmilch mit stacheligen Zweigen und kleinen roten oder gelben Hochblaettern.,Helles bis volles Licht,15-28 °C,10,easy|flowering|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,12,Bleistiftkaktus,Euphorbia tirucalli,"Der Bleistiftkaktus ist eine sukkulente Wolfsmilch mit duennen, zylindrischen Zweigen ohne Blaetter.",Volles Sonnenlicht,18-30 °C,14,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,78,Fass-Kaktus,Ferocactus cylindraceus,"Der Fass-Kaktus ist ein zylindrischer Wuestenkaktus mit langen, roten Stacheln. Sehr langlebig.",Volles Sonnenlicht,15-35 °C,21,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,90,Gasteria,Gasteria carinata,"Die Gasteria ist eine kleine Sukkulente mit zweireihig angeordneten, zungenfoermigen, gefleckten Blaettern.",Helles indirektes Licht,15-25 °C,14,easy|succulent|low_light,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,87,Geisterpflanze,Graptopetalum paraguayense,"Die Geisterpflanze hat zartgraue bis perlmutt-rosafarbene, rosettenfoermige Blaetter. Sehr robuste Sukkulente.",Volles Sonnenlicht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,80,Mond-Kaktus,Gymnocalycium mihanovichii,Der Mond-Kaktus ist eine farbenfrohe Veredelung eines chlorophylllosen Kaktus auf einem gruenen Unterlagekaktus.,Indirektes Licht,15-30 °C,14,easy|succulent,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,6,Zebra-Haworthie,Haworthia fasciata,Die Zebra-Haworthie ist eine kompakte Sukkulente mit weissen Querstreifen auf dunkelgruenen Blaettern.,Helles indirektes Licht,15-25 °C,14,easy|succulent|low_light,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,58,Kleine Wachsblume,Hoya bella,"Die Kleine Wachsblume traegt zierliche, sternfoermige weisse Blueten mit rosa Mitte. Haengende Sukkulente.",Helles indirektes Licht,18-27 °C,10,flowering|succulent|hanging,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,57,Wachsblume,Hoya carnosa,"Die Wachsblume ist eine Kletterpflanze mit dicken, wachsartigen Blaettern und sternfoermigen, duftenden Blueten.",Helles indirektes Licht,16-27 °C,10,easy|flowering|succulent|hanging,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,9,Kalanchoe,Kalanchoe blossfeldiana,"Die Kalanchoe ist eine beliebte Bluehpflanze mit leuchtenden Blueten in Rot, Orange, Gelb oder Rosa.",Helles bis volles Licht,15-25 °C,10,easy|flowering|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch2.ts,22,Brutblatt,Kalanchoe daigremontiana,Das Brutblatt bildet entlang des Blattrandes zahlreiche kleine Jungpflanzen. Eine faszinierende Sukkulente.,Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch2.ts,21,Kaninchen-Ohren,Kalanchoe tomentosa,"Kaninchen-Ohren haben weisslich-filzige Blaetter mit braunen Raendern, die Kaninchenohren aehneln. Sehr dekorativ.",Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch2.ts,23,Lebende Steine,Lithops julii,"Lebende Steine sind faszinierende Mimikry-Sukkulenten, die Kieselsteinen taeuschen aehnlich sehen. Sehr trockenheitsresistent.",Volles Sonnenlicht,10-30 °C,21,succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,79,Mammillaria,Mammillaria zeilmanniana,"Die Mammillaria ist ein kompakter, kugelfoermiger Kaktus, der im Fruehling einen Kranz aus rosa Blueten traegt.",Volles Sonnenlicht,15-35 °C,14,easy|flowering|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,82,Hasenohren-Kaktus,Opuntia microdasys,"Der Hasenohren-Kaktus hat flache, ovale Triebe mit dichten weissen Glochiden. Klassischer Zimmerkaktus.",Volles Sonnenlicht,10-35 °C,21,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,88,Mondstein-Pflanze,Pachyphytum oviferum,"Die Mondstein-Pflanze hat dicke, ovale Blaetter mit einem pastellrosafarbenen, mehligen Ueberzug.",Volles Sonnenlicht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch2.ts,27,Speckbaum,Portulacaria afra,"Der Speckbaum ist eine sukkulente Pflanze mit roten Stielen und kleinen, runden, glaenzenden Blaettern.",Helles bis volles Licht,15-30 °C,14,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,85,Korallenkaktus,Rhipsalis baccifera,"Der Korallenkaktus ist ein epiphytischer Kaktus mit duennen, haengenden Trieben und kleinen weissen Beeren.",Indirektes Licht,18-27 °C,7,succulent|hanging,,,,,
|
||||
succulent,constants/lexiconBatch2.ts,17,Zylindrischer Bogenhanf,Sansevieria cylindrica,"Der Zylindrische Bogenhanf hat zylindrische, aufrechte Blaetter, die sich nach oben verjuengen. Sehr pflegeleicht.",Helles bis volles Licht,15-27 °C,14,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,8,Weihnachtskaktus,Schlumbergera truncata,"Der Weihnachtskaktus erfreut zur Weihnachtszeit mit leuchtenden Blueten in Rosa, Rot oder Weiss.",Helles indirektes Licht,15-21 °C,7,easy|flowering|succulent,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,7,Eselschwanz,Sedum morganianum,"Der Eselschwanz ist eine haengende Sukkulente mit langen Trieben aus dichten, blaugruenen Blaettchen.",Volles Sonnenlicht,15-25 °C,14,easy|succulent|hanging|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,100,Perlenschnur-Pflanze,Senecio rowleyanus,"Die Perlenschnur-Pflanze hat haengende Ranken mit kugelfoermigen, perlenaehnlichen Blaettern. Einzigartige Sukkulente.",Helles bis volles Licht,15-27 °C,14,easy|succulent|hanging,,,,,
|
||||
succulent,constants/lexiconBatch2.ts,28,Blauer Kreuzkraut,Senecio serpens,"Der Blaue Kreuzkraut hat zylindrische, blaublaugruene Blaetter und einen kriechenden Wuchs. Sehr dekorativ.",Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch2.ts,25,Aasblume,Stapelia grandiflora,"Die Aasblume hat fleischige, gruene Staengel und riesige, sternfoermige Blueten mit aasartigem Duft.",Helles bis volles Licht,18-30 °C,14,flowering|succulent|sun,,,,,
|
||||
|
|
|
@ -0,0 +1,173 @@
|
|||
category,source_file,source_index,name,botanical_name,description,light,temp,water_interval_days,all_categories,risk_flags,audit_status,evidence_source,evidence_url,notes
|
||||
sun,constants/lexiconBatch2.ts,212,Spitzahorn,Acer platanoides,Spitzahorn ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,108,Schafgarbe,Achillea millefolium,Die Schafgarbe hat weisse oder rosafarbene Bluetenschirme und fein gefiederte Blaetter. Wichtige Heilpflanze.,Volles Sonnenlicht,10-25 °C,7,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch1.ts,86,Wuestenrose,Adenium obesum,Die Wuestenrose ist eine sukkulente Zimmerpflanze mit dickem Stamm und leuchtend pinken Blueten.,Volles Sonnenlicht,20-35 °C,10,flowering|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,117,Socotra-Wuestenrose,Adenium socotranum,"Die Socotra-Wuestenrose ist eine seltene, endemische Art mit einem sehr dicken, knolligen Stamm und rosa Blueten.",Volles Sonnenlicht,20-35 °C,14,flowering|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,31,Adromischus,Adromischus cristatus,Adromischus ist eine kompakte Sukkulente mit ungewoehnlich wellenrandigen Blaettern auf kurzen Staengeln.,Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,10,Schwarze Rose (Aeonium),Aeonium arboreum,"Das Aeonium bildet dekorative, rosettenfoermige Sukkulenten an verzweigten Stielen.",Volles Sonnenlicht,10-25 °C,10,succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,11,Agave,Agave americana,"Die Agave ist eine imposante Sukkulente mit steifen, blaugruenen Blaettern mit Stacheln. Sie bluet nur einmal.",Volles Sonnenlicht,10-35 °C,21,succulent|large|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,155,Stockrose,Alcea rosea,"Stockrose ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,135,Schnittknoblauch,Allium tuberosum,Schnittknoblauch ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,89,Kap-Aloe,Aloe arborescens,"Die Kap-Aloe ist eine strauchige Aloe mit schmalen, gezaehnten Blaettern und leuchtend roten Bluetenaehren im Winter.",Volles Sonnenlicht,10-30 °C,14,easy|succulent|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,18,Kap-Aloe (ferox),Aloe ferox,"Aloe ferox ist eine grosse, imposante Aloe mit stachligen, blaugruenen Blaettern und leuchtend roten Bluetenaehren.",Volles Sonnenlicht,10-30 °C,14,succulent|large|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,128,Zitronenverbene,Aloysia citrodora,Zitronenverbene ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,194,Fuchsschwanz,Amaranthus caudatus,"Fuchsschwanz ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,163,Anemone,Anemone coronaria,"Anemone ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,140,Dill,Anethum graveolens,Dill ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,125,Kerbel,Anthriscus cerefolium,Kerbel ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,147,Loewenmaeulchen,Antirrhinum majus,"Loewenmaeulchen ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,107,Arnika,Arnica montana,Arnika ist eine bekannte Heilpflanze aus den Alpen mit goldgelben Korbbluten. Sie wird fuer Muskeln und Gelenke verwendet.,Volles Sonnenlicht,10-20 °C,7,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,110,Wermut,Artemisia absinthium,"Wermut ist ein stark aromatisches Heilkraut mit silbrig-gruenen, tief eingeschnittenen Blaettern. Fuer Kraeuterlikoere.",Volles Sonnenlicht,10-25 °C,14,medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,122,Estragon,Artemisia dracunculus,Estragon ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,178,Seidenpflanze,Asclepias tuberosa,"Seidenpflanze ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,41,Pferdeschwanzpalme,Beaucarnea recurvata,"Die Pferdeschwanzpalme hat einen verdickten Stammbasis als Wasserspeicher und lange, schmale Blaetter.",Volles Sonnenlicht,15-30 °C,21,easy|succulent|tree|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,145,Gaensebluemchen,Bellis perennis,"Gaensebluemchen ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,129,Borretsch,Borago officinalis,Borretsch ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,62,Bougainvillea,Bougainvillea spectabilis,"Die Bougainvillea ist eine rankenreiche Kletterpflanze mit leuchtend farbigen Hochblaettern in Rot, Orange oder Pink.",Volles Sonnenlicht,18-30 °C,5,flowering|bright_light|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,223,Schmetterlingsflieder,Buddleja davidii,Schmetterlingsflieder ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,202,Buchsbaum,Buxus sempervirens,Buchsbaum ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,187,Ringelblume,Calendula officinalis,"Ringelblume ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,63,Calibrachoa,Calibrachoa hybrida,"Calibrachoa ist eine petunienaehnliche Haengepflanze mit unzaehligen, kleinen Trichterbluten in allen Farben.",Volles Sonnenlicht,15-25 °C,2,easy|flowering|hanging|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,67,Blumenschilfrohr,Canna indica,"Das Blumenschilfrohr hat grosse, tropisch wirkende Blaetter und auffaellige Blueten in Rot, Orange oder Gelb.",Volles Sonnenlicht,18-28 °C,5,flowering|large|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,92,Chili,Capsicum annuum,"Chili ist eine beliebte Gemuese- und Zierpflanze mit leuchtenden, roten oder orangen Fruechten. Im Topf kultivierbar.",Volles Sonnenlicht,20-30 °C,4,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,90,Papaya,Carica papaya,"Die Papaya ist eine tropische Fruchtpflanze mit grossen, gelappten Blaettern und orangen Fruechten.",Volles Sonnenlicht,20-35 °C,5,large|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,217,Trompetenbaum,Catalpa bignonioides,Trompetenbaum ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,208,Zeder,Cedrus libani,Zeder ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,188,Kornblume,Centaurea cyanus,"Kornblume ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,81,Peruanischer Fackelkaktus,Cereus peruvianus,"Der Peruanische Fackelkaktus ist ein saeulenfoermiger Kaktus, der im Innenraum bis zu 2 m hoch werden kann.",Volles Sonnenlicht,15-35 °C,21,easy|succulent|large|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,138,Roemische Kamille,Chamaemelum nobile,Roemische Kamille ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,101,Kamille,Chamomilla recutita,"Die Kamille ist ein beliebtes Heilkraut mit kleinen, weiss-gelben Blueten. Das aetherische Oel wirkt beruhigend.",Volles Sonnenlicht,15-25 °C,5,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,86,Zitronenbaum,Citrus limon,"Der Zitronenbaum ist ein kleiner, immergruener Baum mit weissen, duftenden Blueten und gelben Fruechten.",Volles Sonnenlicht,18-28 °C,5,tree|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,87,Orangenbaum,Citrus sinensis,"Der Orangenbaum ist ein kleiner, immergruener Baum mit weissen Blueten und orangen Fruechten.",Volles Sonnenlicht,18-28 °C,5,tree|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,24,Konophytum,Conophytum calculus,"Das Konophytum ist eine sehr kompakte Sukkulente, die zwei Blaetter zu einer kugelfoermigen Form verschmilzt.",Volles Sonnenlicht,10-25 °C,21,succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,14,Keulenlilie,Cordyline australis,"Die Keulenlilie hat lange, schmale, gruene oder rotbraune Blaetter in einem dekorativen Schopf.",Helles bis volles Licht,10-25 °C,7,easy|tree|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,181,Maedchenauge,Coreopsis tinctoria,"Maedchenauge ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,139,Koriander,Coriandrum sativum,Koriander ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,150,Kosmee,Cosmos bipinnatus,"Kosmee ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,29,Kotyledon,Cotyledon orbiculata,"Kotyledon hat dickfleischige, runde Blaetter mit einem mehligen, weisslichen Belag. Sehr trockenheitsresistent.",Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,26,Moos-Crassula,Crassula muscosa,"Die Moos-Crassula hat dicht aneinandergereihte, winzige gruene Blaetter auf unverzweigten Trieben. Sieht aus wie Moos.",Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,5,Jadepflanze,Crassula ovata,"Die Jadepflanze ist eine langlebige Sukkulente mit dicken, ovalen Blaettern. In Japan gilt sie als Gluecksbringer.",Helles bis volles Licht,15-24 °C,14,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,94,Gurke,Cucumis sativus,"Die Gurke ist eine rankende Gemuesepflanze mit gruenen, erfrischenden Fruechten. Im Balkonkasten kultivierbar.",Volles Sonnenlicht,18-28 °C,3,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,209,Zypresse,Cupressus sempervirens,Zypresse ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,236,String of Bananas,Curio radicans,String of Bananas ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles bis volles Licht,18-30 C,10,succulent|hanging|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,237,String of Dolphins,Curio x peregrinus,String of Dolphins ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles bis volles Licht,18-30 C,10,succulent|hanging|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,239,Palmfarn,Cycas revoluta,Palmfarn ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles bis volles Licht,18-30 C,10,tree|large|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,127,Zitronengras,Cymbopogon citratus,Zitronengras ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,68,Dahlie,Dahlia pinnata,Die Dahlie ist eine prachtvolle Sommerblume mit Blueten in allen Groessen und Formen. Sie wird aus Knollen gezogen.,Volles Sonnenlicht,15-25 °C,5,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,153,Rittersporn,Delphinium elatum,"Rittersporn ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,189,Bartnelke,Dianthus barbatus,"Bartnelke ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,146,Nelke,Dianthus caryophyllus,"Nelke ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,77,Venusfliegenfalle,Dionaea muscipula,Die Venusfliegenfalle ist eine fleischfressende Pflanze mit klappfallartigen Blaettern. Faengt Insekten.,Volles Sonnenlicht,15-30 °C,5,sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,80,Sonnentau,Drosera capensis,Der Sonnentau faengt Insekten mit klebrigen Tropfen auf seinen Blaettern. Eine faszinierende fleischfressende Pflanze.,Volles Sonnenlicht,15-25 °C,5,high_humidity|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,30,Dudleya,Dudleya brittonii,"Dudleya ist eine rosettenbildende Sukkulente mit silbrig-weissen, mehligen Blaettern. Sehr elegant.",Volles Sonnenlicht,10-25 °C,14,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,4,Echeverie,Echeveria elegans,"Die Echeverie bildet symmetrische, rosettenfoermige Sukkulenten mit blaugruenen Blaettern. Pflegeleicht.",Volles Sonnenlicht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,106,Sonnenhut,Echinacea purpurea,"Der Sonnenhut ist eine beliebte Heilpflanze mit grossen, pinkfarbenen Blueten. Er staerkt das Immunsystem.",Helles bis volles Licht,15-25 °C,7,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch1.ts,77,Goldene Tonne,Echinocactus grusonii,Die Goldene Tonne ist ein ikonischer kugelfoermiger Kaktus mit goldgelben Stacheln. Waechst langsam aber imposant.,Volles Sonnenlicht,15-35 °C,21,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,83,San-Pedro-Kaktus,Echinopsis pachanoi,"Der San-Pedro-Kaktus ist ein schnell wachsender, saeulenfoermiger Kaktus aus den Anden.",Volles Sonnenlicht,10-35 °C,14,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,186,Kalifornischer Mohn,Eschscholzia californica,"Kalifornischer Mohn ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,210,Eukalyptus,Eucalyptus globulus,Eukalyptus ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,19,Christusdorn,Euphorbia milii,Der Christusdorn ist eine sukkulente Wolfsmilch mit stacheligen Zweigen und kleinen roten oder gelben Hochblaettern.,Helles bis volles Licht,15-28 °C,10,easy|flowering|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,12,Bleistiftkaktus,Euphorbia tirucalli,"Der Bleistiftkaktus ist eine sukkulente Wolfsmilch mit duennen, zylindrischen Zweigen ohne Blaetter.",Volles Sonnenlicht,18-30 °C,14,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,78,Fass-Kaktus,Ferocactus cylindraceus,"Der Fass-Kaktus ist ein zylindrischer Wuestenkaktus mit langen, roten Stacheln. Sehr langlebig.",Volles Sonnenlicht,15-35 °C,21,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,219,Forsythie,Forsythia x intermedia,Forsythie ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,100,Erdbeere,Fragaria ananassa,"Die Erdbeere ist ein beliebtes Obst fuer Balkon und Terrasse mit aromatischen, roten Fruechten.",Helles bis volles Licht,15-25 °C,3,easy|pet_friendly|sun,pet_friendly_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,169,Freesie,Freesia refracta,"Freesie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,196,Kokardenblume,Gaillardia aristata,"Kokardenblume ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,190,Mittagsgold,Gazania rigens,"Mittagsgold ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,216,Ginkgo,Ginkgo biloba,Ginkgo ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,161,Gladiole,Gladiolus hortulanus,"Gladiole ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,87,Geisterpflanze,Graptopetalum paraguayense,"Die Geisterpflanze hat zartgraue bis perlmutt-rosafarbene, rosettenfoermige Blaetter. Sehr robuste Sukkulente.",Volles Sonnenlicht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,141,Sonnenblume,Helianthus annuus,"Sonnenblume ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,133,Currykraut,Helichrysum italicum,Currykraut ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,191,Heliotrop,Heliotropium arborescens,"Heliotrop ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,182,Taglilie,Hemerocallis fulva,"Taglilie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,21,Hibiskus,Hibiscus rosa-sinensis,"Der Hibiskus begeistert mit grossen, trompetenfoermigen Blueten in Rot, Orange und Rosa.",Volles Sonnenlicht,18-28 °C,3,flowering|bright_light|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,220,Gartenhibiskus,Hibiscus syriacus,Gartenhibiskus ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,159,Hasengloeckchen,Hyacinthoides non-scripta,"Hasengloeckchen ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,105,Johanniskraut,Hypericum perforatum,Das Johanniskraut hat leuchtend gelbe Blueten und ist ein wichtiges Heilkraut gegen Depressionen und Stimmungstiefs.,Volles Sonnenlicht,10-25 °C,7,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,136,Ysop,Hyssopus officinalis,Ysop ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,203,Stechpalme,Ilex aquifolium,Stechpalme ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,64,Suesskartoffel,Ipomoea batatas,"Die Suesskartoffel-Zierpflanze hat dekorative, herzfoermige Blaetter in gruen oder dunkelviolett. Ideal als Haengepflanze.",Volles Sonnenlicht,20-30 °C,5,easy|hanging|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,156,Prunkwinde,Ipomoea purpurea,"Prunkwinde ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,144,Bart-Iris,Iris germanica,"Bart-Iris ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,9,Kalanchoe,Kalanchoe blossfeldiana,"Die Kalanchoe ist eine beliebte Bluehpflanze mit leuchtenden Blueten in Rot, Orange, Gelb oder Rosa.",Helles bis volles Licht,15-25 °C,10,easy|flowering|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,22,Brutblatt,Kalanchoe daigremontiana,Das Brutblatt bildet entlang des Blattrandes zahlreiche kleine Jungpflanzen. Eine faszinierende Sukkulente.,Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,21,Kaninchen-Ohren,Kalanchoe tomentosa,"Kaninchen-Ohren haben weisslich-filzige Blaetter mit braunen Raendern, die Kaninchenohren aehneln. Sehr dekorativ.",Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,64,Wandelroeschen,Lantana camara,"Das Wandelroeschen hat kugelige Bluetenkoepfe, die die Farbe von Gelb ueber Orange zu Rot wechseln. Sehr attraktiv.",Volles Sonnenlicht,18-28 °C,5,flowering|bright_light|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,158,Duftwicke,Lathyrus odoratus,"Duftwicke ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,121,Lorbeer,Laurus nobilis,Lorbeer ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,23,Echter Lavendel,Lavandula angustifolia,Der Echte Lavendel ist ein aromatischer Halbstrauch mit lilafarbenen Bluetenaehren. Herrlicher Duft.,Volles Sonnenlicht,10-25 °C,10,medicinal|bright_light|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,180,Bechermalve,Lavatera trimestris,"Bechermalve ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,173,Margerite,Leucanthemum vulgare,"Margerite ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,201,Shasta-Margerite,Leucanthemum x superbum,"Shasta-Margerite ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,126,Liebstoeckel,Levisticum officinale,Liebstoeckel ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,23,Lebende Steine,Lithops julii,"Lebende Steine sind faszinierende Mimikry-Sukkulenten, die Kieselsteinen taeuschen aehnlich sehen. Sehr trockenheitsresistent.",Volles Sonnenlicht,10-30 °C,21,succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,154,Lupine,Lupinus polyphyllus,"Lupine ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,79,Mammillaria,Mammillaria zeilmanniana,"Die Mammillaria ist ein kompakter, kugelfoermiger Kaktus, der im Fruehling einen Kranz aus rosa Blueten traegt.",Volles Sonnenlicht,15-35 °C,14,easy|flowering|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,179,Indianernessel,Monarda didyma,"Indianernessel ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,177,Vergissmeinnicht,Myosotis sylvatica,"Vergissmeinnicht ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,199,Nemesie,Nemesia strumosa,"Nemesie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,132,Katzenminze,Nepeta cataria,Katzenminze ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,120,Oleander,Nerium oleander,"Der Oleander ist ein mediteraner Strauch mit leuchtend roten, rosa oder weissen Blueten. Sehr hitzetolerant.",Volles Sonnenlicht,15-28 °C,7,flowering|bright_light|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,193,Ziertabak,Nicotiana alata,"Ziertabak ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,25,Basilikum,Ocimum basilicum,"Basilikum ist das beliebteste Kuechenkraut mit intensiv aromatischen, gruenen Blaettern. Fuer Pesto verwendet.",Volles Sonnenlicht,18-30 °C,2,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch1.ts,82,Hasenohren-Kaktus,Opuntia microdasys,"Der Hasenohren-Kaktus hat flache, ovale Triebe mit dichten weissen Glochiden. Klassischer Zimmerkaktus.",Volles Sonnenlicht,10-35 °C,21,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,124,Majoran,Origanum majorana,Majoran ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,28,Oregano,Origanum vulgare,"Oregano ist ein aromatisches Kuechenkraut mit runden, behaarten Blaettern. In mediterraner Kueche beliebt.",Volles Sonnenlicht,15-25 °C,7,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,200,Kapmargerite,Osteospermum ecklonis,"Kapmargerite ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,88,Mondstein-Pflanze,Pachyphytum oviferum,"Die Mondstein-Pflanze hat dicke, ovale Blaetter mit einem pastellrosafarbenen, mehligen Ueberzug.",Volles Sonnenlicht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,143,Pfingstrose,Paeonia lactiflora,"Pfingstrose ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,185,Mohn,Papaver rhoeas,"Mohn ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,31,Rosengeranie,Pelargonium graveolens,Die Rosengeranie ist eine Duftpflanze mit tief eingeschnittenen Blaettern und rosaenlichem Aroma.,Volles Sonnenlicht,15-25 °C,7,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,61,Efeu-Geranie,Pelargonium peltatum,"Die Efeu-Geranie hat efeufoermige, glaenzende Blaetter und bluet den ganzen Sommer in leuchtenden Farben.",Helles bis volles Licht,15-25 °C,5,easy|flowering|hanging|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,174,Stehende Geranie,Pelargonium zonale,"Stehende Geranie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,134,Shiso,Perilla frutescens,Shiso ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,34,Petunie,Petunia hybrida,Die Petunie ist eine der beliebtesten Balkonpflanzen mit trichterfoermigen Blueten in unzaehligen Farben.,Volles Sonnenlicht,15-25 °C,2,easy|pet_friendly|flowering|sun,pet_friendly_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,165,Flammenblume,Phlox paniculata,"Flammenblume ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,207,Fichte,Picea abies,Fichte ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,206,Kiefer,Pinus sylvestris,Kiefer ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,61,Bleiwurz,Plumbago auriculata,"Die Bleiwurz ist ein halbimmergruener Strauch mit himmelblauen Blueten, der fast das ganze Jahr bluet.",Volles Sonnenlicht,15-27 °C,5,flowering|bright_light|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,118,Tempel-Baum,Plumeria rubra,"Der Tempel-Baum hat intensiv duftende, sternfoermige Blueten in Weiss, Gelb oder Rosa. Klassische Tropenblume.",Volles Sonnenlicht,20-30 °C,7,flowering|tree|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,27,Speckbaum,Portulacaria afra,"Der Speckbaum ist eine sukkulente Pflanze mit roten Stielen und kleinen, runden, glaenzenden Blaettern.",Helles bis volles Licht,15-30 °C,14,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,71,Koenigs-Protea,Protea cynaroides,"Die Koenigs-Protea ist die Nationalblume Suedafrikas mit riesigen, imposanten Bluetenkoepfen. Eine echte Besonderheit.",Volles Sonnenlicht,10-25 °C,7,flowering|large|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,218,Kirschlorbeer,Prunus laurocerasus,Kirschlorbeer ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,89,Guave,Psidium guajava,Die Guave ist ein tropischer Obstbaum mit gelblich-weissen Fruechten. Sie ist reich an Vitamin C.,Volles Sonnenlicht,18-30 °C,7,tree|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,88,Granatapfelbaum,Punica granatum,"Der Granatapfelbaum hat leuchtend rote Blueten und rote, essbare Fruechte mit rubinroten Kernen.",Volles Sonnenlicht,15-28 °C,7,flowering|tree|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,205,Eiche,Quercus robur,Eiche ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,162,Ranunkel,Ranunculus asiaticus,"Ranunkel ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,214,Robinie,Robinia pseudoacacia,Robinie ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,66,Chinesische Rose,Rosa chinensis,Die Chinesische Rose ist eine der Stammarten vieler Gartenrosen und bluet fast ununterbrochen.,Volles Sonnenlicht,15-25 °C,5,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,142,Rose,Rosa x hybrida,"Rose ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|bright_light|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,24,Rosmarin,Rosmarinus officinalis,Rosmarin ist ein aromatisches Kraut mit nadelartigen Blaettern und blauen Blueten. In der Kueche unverzichtbar.,Volles Sonnenlicht,10-25 °C,7,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,167,Rudbeckie,Rudbeckia hirta,"Rudbeckie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,130,Sauerampfer,Rumex acetosa,Sauerampfer ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,195,Mehlsalbei,Salvia farinacea,"Mehlsalbei ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,103,Salbei,Salvia officinalis,Salbei ist ein aromatisches Heilkraut mit silbrig-gruenen Blaettern. Er hat antibakterielle und entzuendungshemmende Wirkung.,Volles Sonnenlicht,10-25 °C,7,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,168,Feuersalbei,Salvia splendens,"Feuersalbei ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,17,Zylindrischer Bogenhanf,Sansevieria cylindrica,"Der Zylindrische Bogenhanf hat zylindrische, aufrechte Blaetter, die sich nach oben verjuengen. Sehr pflegeleicht.",Helles bis volles Licht,15-27 °C,14,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,78,Purpursonnentau,Sarracenia purpurea,Der Purpursonnentau ist eine fleischfressende Kannenpflanze mit purpurroten Kannen. Faengt Insekten.,Volles Sonnenlicht,5-25 °C,3,high_humidity|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,123,Bohnenkraut,Satureja hortensis,Bohnenkraut ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,7,Eselschwanz,Sedum morganianum,"Der Eselschwanz ist eine haengende Sukkulente mit langen Trieben aus dichten, blaugruenen Blaettchen.",Volles Sonnenlicht,15-25 °C,14,easy|succulent|hanging|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,28,Blauer Kreuzkraut,Senecio serpens,"Der Blaue Kreuzkraut hat zylindrische, blaublaugruene Blaetter und einen kriechenden Wuchs. Sehr dekorativ.",Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,93,Aubergine,Solanum melongena,"Die Aubergine ist eine Gemuesepflanze mit grossen, violetten Fruechten. Sie benoetigt viel Waerme und Sonne.",Volles Sonnenlicht,20-30 °C,5,bright_light|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,213,Eberesche,Sorbus aucuparia,Eberesche ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,222,Spierstrauch,Spiraea japonica,Spierstrauch ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,25,Aasblume,Stapelia grandiflora,"Die Aasblume hat fleischige, gruene Staengel und riesige, sternfoermige Blueten mit aasartigem Duft.",Helles bis volles Licht,18-30 °C,14,flowering|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,131,Stevia,Stevia rebaudiana,Stevia ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,3,Paradiesvogelblume,Strelitzia reginae,"Die Paradiesvogelblume beeindruckt mit leuchtend orangefarbenen und blauen Blueten, die einem Vogel aehneln.",Volles Sonnenlicht,18-26 °C,7,flowering|large|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,166,Herbstaster,Symphyotrichum novi-belgii,"Herbstaster ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,149,Flieder,Syringa vulgaris,"Flieder ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|tree|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,66,Studentenblume,Tagetes patula,Die Studentenblume ist eine robuste Sommerblume mit orangen oder gelben Blueten. Sie haelt Schadlinge fern.,Volles Sonnenlicht,15-28 °C,3,easy|flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,27,Thymian,Thymus vulgaris,"Thymian ist ein kleiner, aromatischer Strauch mit winzigen Blaettern und rosa Blueten. Wichtiges Kuechenkraut.",Volles Sonnenlicht,10-25 °C,7,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,54,Lila Tradescantia,Tradescantia pallida,Die Lila Tradescantia hat leuchtend purpurrote Blaetter und ist sehr auffaellig. Sie liebt viel Licht.,Helles bis volles Licht,15-25 °C,5,easy|hanging|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,151,Kapuzinerkresse,Tropaeolum majus,"Kapuzinerkresse ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,82,Wasserschlauch,Utricularia gibba,Der Wasserschlauch ist eine wasserbewohnende fleischfressende Pflanze mit Schlaeuchen als Insektenfallen.,Helles bis volles Licht,15-25 °C,2,high_humidity|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,192,Koenigskerze,Verbascum thapsus,"Koenigskerze ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,164,Eisenkraut,Verbena bonariensis,"Eisenkraut ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,198,Hornveilchen,Viola cornuta,"Hornveilchen ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,5,Mexikanische Fächerpalme,Washingtonia robusta,"Die Mexikanische Fächerpalme ist eine schlanke, hohe Palme mit faecherfoermigen Blaettern. Sehr hitzetolerant.",Volles Sonnenlicht,15-35 °C,10,tree|large|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,221,Weigelie,Weigela florida,Weigelie ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,65,Chinesischer Blauregen,Wisteria sinensis,"Der Chinesische Blauregen ist ein ueppiger Kletterkuenstler mit langen, duftenden Bluetentrauben in Lila.",Volles Sonnenlicht,10-25 °C,7,flowering|large|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,246,Yucca aloifolia,Yucca aloifolia,Yucca aloifolia ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Volles Sonnenlicht,18-30 C,10,easy|tree|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,40,Yucca-Palme,Yucca elephantipes,"Die Yucca-Palme ist eine robuste Zimmerpflanze mit starrem, immergruenem Blaetterschopf auf einem dicken Stamm.",Helles bis volles Licht,15-28 °C,14,easy|tree|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,65,Zinnie,Zinnia elegans,"Die Zinnie ist eine leuchtende Sommerblume mit grossen, dahlienaehnlichen Blueten. Sehr robust und hitzetolerant.",Volles Sonnenlicht,18-30 °C,3,easy|flowering|sun,,,,,
|
||||
|
|
|
@ -0,0 +1,60 @@
|
|||
category,source_file,source_index,name,botanical_name,description,light,temp,water_interval_days,all_categories,risk_flags,audit_status,evidence_source,evidence_url,notes
|
||||
tree,constants/lexiconBatch2.ts,115,Faecherahorn,Acer palmatum,"Der Faecherahorn ist ein japanischer Zierahorn mit feingeschnittenen, faecherfoermigen Blaettern in Gruen oder Rot.",Helles bis volles Licht,10-22 °C,5,tree,,,,,
|
||||
tree,constants/lexiconBatch2.ts,212,Spitzahorn,Acer platanoides,Spitzahorn ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,232,Norfolk-Tanne,Araucaria heterophylla,Norfolk-Tanne ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,tree|bright_light,,,,,
|
||||
tree,constants/lexiconBatch1.ts,41,Pferdeschwanzpalme,Beaucarnea recurvata,"Die Pferdeschwanzpalme hat einen verdickten Stammbasis als Wasserspeicher und lange, schmale Blaetter.",Volles Sonnenlicht,15-30 °C,21,easy|succulent|tree|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,114,Hange-Birke,Betula pendula,Die Haenge-Birke hat charakteristisch weisse Rinde und haengende Zweige. Die Blaetter werden in der Heilkunde genutzt.,Volles Sonnenlicht,10-25 °C,7,tree|large|medicinal,medicinal_requires_external_evidence,,,,
|
||||
tree,constants/lexiconBatch2.ts,223,Schmetterlingsflieder,Buddleja davidii,Schmetterlingsflieder ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,202,Buchsbaum,Buxus sempervirens,Buchsbaum ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,217,Trompetenbaum,Catalpa bignonioides,Trompetenbaum ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,208,Zeder,Cedrus libani,Zeder ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
tree,constants/lexiconBatch1.ts,43,Bergpalme,Chamaedorea elegans,Die Bergpalme ist eine kompakte Zimmerpalme fuer schattigere Standorte. Ideal fuer dunkle Innenraeume.,Wenig bis helles Licht,15-25 °C,7,easy|pet_friendly|tree|air_purifier|low_light,air_purifier_requires_external_evidence|pet_friendly_requires_external_evidence,,,,
|
||||
tree,constants/lexiconBatch2.ts,86,Zitronenbaum,Citrus limon,"Der Zitronenbaum ist ein kleiner, immergruener Baum mit weissen, duftenden Blueten und gelben Fruechten.",Volles Sonnenlicht,18-28 °C,5,tree|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,87,Orangenbaum,Citrus sinensis,"Der Orangenbaum ist ein kleiner, immergruener Baum mit weissen Blueten und orangen Fruechten.",Volles Sonnenlicht,18-28 °C,5,tree|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,14,Keulenlilie,Cordyline australis,"Die Keulenlilie hat lange, schmale, gruene oder rotbraune Blaetter in einem dekorativen Schopf.",Helles bis volles Licht,10-25 °C,7,easy|tree|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,209,Zypresse,Cupressus sempervirens,Zypresse ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,239,Palmfarn,Cycas revoluta,Palmfarn ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles bis volles Licht,18-30 C,10,tree|large|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,215,Flammenbaum,Delonix regia,Flammenbaum ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|large,,,,,
|
||||
tree,constants/lexiconBatch1.ts,14,Maisstrauch,Dracaena fragrans,"Der Maisstrauch ist eine robuste Zimmerpflanze mit breiten, gestreiften Blaettern. Gedeiht auch bei wenig Licht.",Helles indirektes Licht,15-25 °C,10,easy|tree|air_purifier|low_light,air_purifier_requires_external_evidence,,,,
|
||||
tree,constants/lexiconBatch1.ts,13,Drachenbaum,Dracaena marginata,"Der Drachenbaum ist eine schlanke Zimmerpflanze mit roten, schmalen Blaettern auf langen Staemmen.",Helles indirektes Licht,15-25 °C,10,easy|tree|air_purifier,air_purifier_requires_external_evidence,,,,
|
||||
tree,constants/lexiconBatch1.ts,42,Goldfruchtpalme,Dypsis lutescens,Die Goldfruchtpalme ist eine elegante Zimmerpalme mit gelblich-gruenen Stielen und gefiederten Wedeln.,Helles indirektes Licht,18-27 °C,5,pet_friendly|tree|air_purifier,air_purifier_requires_external_evidence|pet_friendly_requires_external_evidence,,,,
|
||||
tree,constants/lexiconBatch2.ts,210,Eukalyptus,Eucalyptus globulus,Eukalyptus ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
tree,constants/lexiconBatch2.ts,248,Ficus altissima,Ficus altissima,Ficus altissima ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,tree|bright_light,,,,,
|
||||
tree,constants/lexiconBatch1.ts,1,Birkenfeige,Ficus benjamina,"Die Birkenfeige ist ein eleganter Zimmerstrauch mit haengenden Aesten und kleinen, glaenzenden Blaettern.",Helles indirektes Licht,16-24 °C,7,tree|air_purifier,air_purifier_requires_external_evidence,,,,
|
||||
tree,constants/lexiconBatch1.ts,38,Gummibaum,Ficus elastica,"Der Gummibaum ist eine imposante Zimmerpflanze mit grossen, glaenzenden, lederartigen Blaettern. Reinigt die Luft.",Helles indirektes Licht,16-24 °C,10,easy|tree|air_purifier,air_purifier_requires_external_evidence,,,,
|
||||
tree,constants/lexiconBatch1.ts,39,Geigenfeige,Ficus lyrata,"Die Geigenfeige ist ein Trendbaum mit grossen, geigenfoermigen Blaettern. Benoetigt viel Licht.",Helles indirektes Licht,18-27 °C,7,tree|large|bright_light,,,,,
|
||||
tree,constants/lexiconBatch2.ts,247,Ficus microcarpa,Ficus microcarpa,Ficus microcarpa ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,easy|tree|bright_light,,,,,
|
||||
tree,constants/lexiconBatch2.ts,116,Bonsai-Feige,Ficus retusa,"Die Bonsai-Feige ist eine klassische Bonsai-Art mit kleinen, elliptischen Blaettern. Sehr formbar.",Helles indirektes Licht,16-24 °C,7,tree,,,,,
|
||||
tree,constants/lexiconBatch2.ts,219,Forsythie,Forsythia x intermedia,Forsythie ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,216,Ginkgo,Ginkgo biloba,Ginkgo ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
tree,constants/lexiconBatch2.ts,220,Gartenhibiskus,Hibiscus syriacus,Gartenhibiskus ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,3,Kentia-Palme,Howea forsteriana,"Die Kentia-Palme ist eine der elegantesten Zimmerpalmen mit langen, herabhängenden Fiederblaettern.",Helles indirektes Licht,18-25 °C,7,pet_friendly|tree|low_light,pet_friendly_requires_external_evidence,,,,
|
||||
tree,constants/lexiconBatch2.ts,203,Stechpalme,Ilex aquifolium,Stechpalme ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,211,Jacaranda,Jacaranda mimosifolia,Jacaranda ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|large,,,,,
|
||||
tree,constants/lexiconBatch2.ts,4,Chinesische Fächerpalme,Livistona chinensis,"Die Chinesische Fächerpalme hat grosse, faecherfoermige Blaetter auf einem einzelnen Stamm. Sehr dekorativ.",Helles bis volles Licht,15-25 °C,7,tree|bright_light,,,,,
|
||||
tree,constants/lexiconBatch2.ts,204,Magnolie,Magnolia grandiflora,Magnolie ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|large,,,,,
|
||||
tree,constants/lexiconBatch2.ts,231,Glueckskastanie,Pachira aquatica,Glueckskastanie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,easy|tree|bright_light,,,,,
|
||||
tree,constants/lexiconBatch1.ts,44,Zwergdattelpalme,Phoenix roebelenii,"Die Zwergdattelpalme ist eine zierliche Palme mit eleganten, gebogenen Fiederblaettern. Tropisches Flair.",Helles bis volles Licht,18-27 °C,7,tree|bright_light,,,,,
|
||||
tree,constants/lexiconBatch2.ts,207,Fichte,Picea abies,Fichte ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,206,Kiefer,Pinus sylvestris,Kiefer ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,118,Tempel-Baum,Plumeria rubra,"Der Tempel-Baum hat intensiv duftende, sternfoermige Blueten in Weiss, Gelb oder Rosa. Klassische Tropenblume.",Volles Sonnenlicht,20-30 °C,7,flowering|tree|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,218,Kirschlorbeer,Prunus laurocerasus,Kirschlorbeer ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,89,Guave,Psidium guajava,Die Guave ist ein tropischer Obstbaum mit gelblich-weissen Fruechten. Sie ist reich an Vitamin C.,Volles Sonnenlicht,18-30 °C,7,tree|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,88,Granatapfelbaum,Punica granatum,"Der Granatapfelbaum hat leuchtend rote Blueten und rote, essbare Fruechte mit rubinroten Kernen.",Volles Sonnenlicht,15-28 °C,7,flowering|tree|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,205,Eiche,Quercus robur,Eiche ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
tree,constants/lexiconBatch1.ts,45,Stab-Palme,Rhapis excelsa,"Die Stab-Palme ist eine elegante Zimmerpalme mit faecherfoermigen Blaettern auf duennen, bambusartigen Staemmen.",Helles indirektes Licht,15-25 °C,7,tree|low_light,,,,,
|
||||
tree,constants/lexiconBatch2.ts,170,Rhododendron,Rhododendron catawbiense,"Rhododendron ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|tree|bright_light,,,,,
|
||||
tree,constants/lexiconBatch2.ts,214,Robinie,Robinia pseudoacacia,Robinie ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,113,Silber-Weide,Salix alba,"Die Silber-Weide hat silbrig-glaenzende Blaetter. Weidenrinde enthält Salicylsaeure, die Grundlage von Aspirin.",Helles bis volles Licht,10-25 °C,7,tree|large|medicinal,medicinal_requires_external_evidence,,,,
|
||||
tree,constants/lexiconBatch2.ts,112,Schwarzer Holunder,Sambucus nigra,Der Schwarze Holunder hat weisse Doldenbluten und schwarze Beeren. Die Fruechte werden fuer Sirup und Saft verwendet.,Helles bis volles Licht,10-25 °C,7,flowering|tree|medicinal,medicinal_requires_external_evidence,,,,
|
||||
tree,constants/lexiconBatch2.ts,11,Grosse Strahlenaralie,Schefflera actinophylla,"Die Grosse Strahlenaralie kann grosse, handfoermige Blaetter entwickeln. Sie ist ideal als Zimmerstrauch.",Helles indirektes Licht,18-27 °C,7,easy|tree|large,,,,,
|
||||
tree,constants/lexiconBatch2.ts,10,Strahlenaralie,Schefflera arboricola,"Die Strahlenaralie hat fingerfoermig angeordnete, glaenzende Blaetter auf langen Stielen. Sehr robuste Zimmerpflanze.",Helles indirektes Licht,15-25 °C,7,easy|tree|air_purifier,air_purifier_requires_external_evidence,,,,
|
||||
tree,constants/lexiconBatch2.ts,235,Falsche Aralie,Schefflera elegantissima,Falsche Aralie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,tree|bright_light,,,,,
|
||||
tree,constants/lexiconBatch2.ts,213,Eberesche,Sorbus aucuparia,Eberesche ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,222,Spierstrauch,Spiraea japonica,Spierstrauch ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,1,Weisse Strelitzie,Strelitzia nicolai,"Die Weisse Strelitzie ist ein beeindruckender Zimmerstrauch mit grossen, blaugruenen Blaettern und weiss-blauen Blueten.",Helles bis volles Licht,18-27 °C,7,tree|large|bright_light,,,,,
|
||||
tree,constants/lexiconBatch2.ts,149,Flieder,Syringa vulgaris,"Flieder ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|tree|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,5,Mexikanische Fächerpalme,Washingtonia robusta,"Die Mexikanische Fächerpalme ist eine schlanke, hohe Palme mit faecherfoermigen Blaettern. Sehr hitzetolerant.",Volles Sonnenlicht,15-35 °C,10,tree|large|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,221,Weigelie,Weigela florida,Weigelie ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,246,Yucca aloifolia,Yucca aloifolia,Yucca aloifolia ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Volles Sonnenlicht,18-30 C,10,easy|tree|sun,,,,,
|
||||
tree,constants/lexiconBatch1.ts,40,Yucca-Palme,Yucca elephantipes,"Die Yucca-Palme ist eine robuste Zimmerpflanze mit starrem, immergruenem Blaetterschopf auf einem dicken Stamm.",Helles bis volles Licht,15-28 °C,14,easy|tree|sun,,,,,
|
||||
|
|
|
@ -0,0 +1,835 @@
|
|||
category,source_file,source_index,name,botanical_name,description,light,temp,water_interval_days,all_categories,risk_flags,audit_status,evidence_source,evidence_url,notes
|
||||
air_purifier,constants/lexiconBatch1.ts,43,Bergpalme,Chamaedorea elegans,Die Bergpalme ist eine kompakte Zimmerpalme fuer schattigere Standorte. Ideal fuer dunkle Innenraeume.,Wenig bis helles Licht,15-25 °C,7,easy|pet_friendly|tree|air_purifier|low_light,air_purifier_requires_external_evidence|pet_friendly_requires_external_evidence,,,,
|
||||
air_purifier,constants/lexiconBatch1.ts,48,Dieffenbachie,Dieffenbachia seguine,"Die Dieffenbachie ist eine tropische Blattschmuckpflanze mit grossen, gruen-weiss gefleckten Blaettern.",Helles indirektes Licht,18-26 °C,7,easy|air_purifier|low_light,air_purifier_requires_external_evidence,,,,
|
||||
air_purifier,constants/lexiconBatch1.ts,14,Maisstrauch,Dracaena fragrans,"Der Maisstrauch ist eine robuste Zimmerpflanze mit breiten, gestreiften Blaettern. Gedeiht auch bei wenig Licht.",Helles indirektes Licht,15-25 °C,10,easy|tree|air_purifier|low_light,air_purifier_requires_external_evidence,,,,
|
||||
air_purifier,constants/lexiconBatch1.ts,13,Drachenbaum,Dracaena marginata,"Der Drachenbaum ist eine schlanke Zimmerpflanze mit roten, schmalen Blaettern auf langen Staemmen.",Helles indirektes Licht,15-25 °C,10,easy|tree|air_purifier,air_purifier_requires_external_evidence,,,,
|
||||
air_purifier,constants/lexiconBatch1.ts,42,Goldfruchtpalme,Dypsis lutescens,Die Goldfruchtpalme ist eine elegante Zimmerpalme mit gelblich-gruenen Stielen und gefiederten Wedeln.,Helles indirektes Licht,18-27 °C,5,pet_friendly|tree|air_purifier,air_purifier_requires_external_evidence|pet_friendly_requires_external_evidence,,,,
|
||||
air_purifier,constants/lexiconBatch1.ts,16,Marmor-Efeutute,Epipremnum aureum Marble Queen,Die Marmor-Efeutute hat cremeweiss-gruen marmorierte Blaetter. Eine dekorative Variante der klassischen Efeutute.,Helles indirektes Licht,15-30 °C,7,easy|hanging|air_purifier,air_purifier_requires_external_evidence,,,,
|
||||
air_purifier,constants/lexiconBatch2.ts,53,Neon-Efeutute,Epipremnum pinnatum Neon,Die Neon-Efeutute hat leuchtend limonengruene Blaetter. Sehr auffaellig und pflegeleicht.,Helles indirektes Licht,15-30 °C,7,easy|hanging|air_purifier,air_purifier_requires_external_evidence,,,,
|
||||
air_purifier,constants/lexiconBatch1.ts,1,Birkenfeige,Ficus benjamina,"Die Birkenfeige ist ein eleganter Zimmerstrauch mit haengenden Aesten und kleinen, glaenzenden Blaettern.",Helles indirektes Licht,16-24 °C,7,tree|air_purifier,air_purifier_requires_external_evidence,,,,
|
||||
air_purifier,constants/lexiconBatch1.ts,38,Gummibaum,Ficus elastica,"Der Gummibaum ist eine imposante Zimmerpflanze mit grossen, glaenzenden, lederartigen Blaettern. Reinigt die Luft.",Helles indirektes Licht,16-24 °C,10,easy|tree|air_purifier,air_purifier_requires_external_evidence,,,,
|
||||
air_purifier,constants/lexiconBatch1.ts,68,Gerbera,Gerbera jamesonii,"Die Gerbera ist eine farbenfrohe Schnittblume mit grossen, sonnenblumenaehnlichen Blueten. Sehr beliebt.",Helles bis volles Licht,15-25 °C,5,flowering|air_purifier|bright_light,air_purifier_requires_external_evidence,,,,
|
||||
air_purifier,constants/lexiconBatch1.ts,37,Efeu,Hedera helix,"Efeu ist eine robuste Kletter- und Haengepflanze mit charakteristischen, dreilappigen Blaettern. Sehr langlebig.",Wenig bis helles Licht,10-20 °C,7,easy|hanging|air_purifier|low_light,air_purifier_requires_external_evidence,,,,
|
||||
air_purifier,constants/lexiconBatch2.ts,10,Strahlenaralie,Schefflera arboricola,"Die Strahlenaralie hat fingerfoermig angeordnete, glaenzende Blaetter auf langen Stielen. Sehr robuste Zimmerpflanze.",Helles indirektes Licht,15-25 °C,7,easy|tree|air_purifier,air_purifier_requires_external_evidence,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,225,Alocasia zebrina,Alocasia zebrina,Alocasia zebrina ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5,bright_light|high_humidity,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,232,Norfolk-Tanne,Araucaria heterophylla,Norfolk-Tanne ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,tree|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,175,Eisbegonie,Begonia semperflorens-cultorum,"Eisbegonie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch1.ts,62,Bougainvillea,Bougainvillea spectabilis,"Die Bougainvillea ist eine rankenreiche Kletterpflanze mit leuchtend farbigen Hochblaettern in Rot, Orange oder Pink.",Volles Sonnenlicht,18-30 °C,5,flowering|bright_light|sun,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,184,Trompetenwinde,Campsis radicans,"Trompetenwinde ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,157,Clematis,Clematis viticella,"Clematis ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,224,Kroton,Codiaeum variegatum,Kroton ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,patterned|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,245,Kaffeepflanze arabica nana,Coffea arabica Nana,Kaffeepflanze arabica nana ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,137,Wasabi,Eutrema japonicum,"Wasabi ist ein seltenes Wuerzkraut, das gleichmaessige Feuchte und eher kuehle Bedingungen bevorzugt.",Helles indirektes Licht,8-20 C,4,bright_light|high_humidity,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,248,Ficus altissima,Ficus altissima,Ficus altissima ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,tree|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch1.ts,39,Geigenfeige,Ficus lyrata,"Die Geigenfeige ist ein Trendbaum mit grossen, geigenfoermigen Blaettern. Benoetigt viel Licht.",Helles indirektes Licht,18-27 °C,7,tree|large|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,247,Ficus microcarpa,Ficus microcarpa,Ficus microcarpa ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,easy|tree|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch1.ts,68,Gerbera,Gerbera jamesonii,"Die Gerbera ist eine farbenfrohe Schnittblume mit grossen, sonnenblumenaehnlichen Blueten. Sehr beliebt.",Helles bis volles Licht,15-25 °C,5,flowering|air_purifier|bright_light,air_purifier_requires_external_evidence,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,72,Heliconia,Heliconia psittacorum,"Die Heliconia hat leuchtend orangefarbe oder rote, bootsfoermige Hochblaetter. Eine exotische Tropenpflanze.",Helles bis volles Licht,20-30 °C,5,flowering|bright_light|high_humidity,,,,,
|
||||
bright_light,constants/lexiconBatch1.ts,21,Hibiskus,Hibiscus rosa-sinensis,"Der Hibiskus begeistert mit grossen, trompetenfoermigen Blueten in Rot, Orange und Rosa.",Volles Sonnenlicht,18-28 °C,3,flowering|bright_light|sun,,,,,
|
||||
bright_light,constants/lexiconBatch1.ts,105,Ritterstern,Hippeastrum hybrid,"Der Ritterstern beeindruckt im Winter mit riesigen, trompetenfoermigen Blueten in Rot, Pink oder Weiss.",Helles bis volles Licht,18-25 °C,7,flowering|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,148,Hortensie,Hydrangea macrophylla,"Hortensie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Helles bis halbschattiges Licht,8-24 C,4,flowering|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,227,Punktblatt,Hypoestes phyllostachya,Punktblatt ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,patterned|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,176,Gartenbalsamine,Impatiens balsamina,"Gartenbalsamine ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,172,Arabischer Jasmin,Jasminum sambac,"Arabischer Jasmin ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,197,Traenendes Herz,Lamprocapnos spectabilis,"Traenendes Herz ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,64,Wandelroeschen,Lantana camara,"Das Wandelroeschen hat kugelige Bluetenkoepfe, die die Farbe von Gelb ueber Orange zu Rot wechseln. Sehr attraktiv.",Volles Sonnenlicht,18-28 °C,5,flowering|bright_light|sun,,,,,
|
||||
bright_light,constants/lexiconBatch1.ts,23,Echter Lavendel,Lavandula angustifolia,Der Echte Lavendel ist ein aromatischer Halbstrauch mit lilafarbenen Bluetenaehren. Herrlicher Duft.,Volles Sonnenlicht,10-25 °C,10,medicinal|bright_light|sun,medicinal_requires_external_evidence,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,69,Ostertrompete,Lilium longiflorum,"Die Ostertrompete hat grosse, weisse, trichterfoermige Blueten mit intensivem Duft. Klassische Osterblume.",Helles bis volles Licht,15-25 °C,5,flowering|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,4,Chinesische Fächerpalme,Livistona chinensis,"Die Chinesische Fächerpalme hat grosse, faecherfoermige Blaetter auf einem einzelnen Stamm. Sehr dekorativ.",Helles bis volles Licht,15-25 °C,7,tree|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,171,Geissblatt,Lonicera japonica,"Geissblatt ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,76,Schamkraut,Mimosa pudica,"Das Schamkraut faltet seine Blaettchen blitzschnell zusammen, wenn man sie beruehrt. Ein faszinierendes Erlebnis.",Helles bis volles Licht,20-28 °C,5,flowering|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,37,Neoregelia,Neoregelia carolinae,"Die Neoregelia ist eine Bromelie, bei der das Herzblatt zur Bluetzeit leuchtend rot wird. Sehr dekorativ.",Helles bis volles Licht,18-27 °C,7,flowering|patterned|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,120,Oleander,Nerium oleander,"Der Oleander ist ein mediteraner Strauch mit leuchtend roten, rosa oder weissen Blueten. Sehr hitzetolerant.",Volles Sonnenlicht,15-28 °C,7,flowering|bright_light|sun,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,231,Glueckskastanie,Pachira aquatica,Glueckskastanie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,easy|tree|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,6,Schraubenbaum,Pandanus veitchii,"Der Schraubenbaum hat spiralfoermig angeordnete, gruenweiss gestreifte Blaetter. Sehr dekorativ und exotisch.",Helles bis volles Licht,18-27 °C,7,patterned|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,243,Philodendron Pink Princess,Philodendron erubescens Pink Princess,Philodendron Pink Princess ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,patterned|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch1.ts,44,Zwergdattelpalme,Phoenix roebelenii,"Die Zwergdattelpalme ist eine zierliche Palme mit eleganten, gebogenen Fiederblaettern. Tropisches Flair.",Helles bis volles Licht,18-27 °C,7,tree|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,152,Buntnessel,Plectranthus scutellarioides,"Buntnessel ist eine farbstarke Zierpflanze, die vor allem fuer ihr dekoratives Laub beliebt ist.",Volles bis helles Licht,10-24 C,4,patterned|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch1.ts,61,Bleiwurz,Plumbago auriculata,"Die Bleiwurz ist ein halbimmergruener Strauch mit himmelblauen Blueten, der fast das ganze Jahr bluet.",Volles Sonnenlicht,15-27 °C,5,flowering|bright_light|sun,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,170,Rhododendron,Rhododendron catawbiense,"Rhododendron ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|tree|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,142,Rose,Rosa x hybrida,"Rose ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|bright_light|sun,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,235,Falsche Aralie,Schefflera elegantissima,Falsche Aralie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,tree|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,93,Aubergine,Solanum melongena,"Die Aubergine ist eine Gemuesepflanze mit grossen, violetten Fruechten. Sie benoetigt viel Waerme und Sonne.",Volles Sonnenlicht,20-30 °C,5,bright_light|sun,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,1,Weisse Strelitzie,Strelitzia nicolai,"Die Weisse Strelitzie ist ein beeindruckender Zimmerstrauch mit grossen, blaugruenen Blaettern und weiss-blauen Blueten.",Helles bis volles Licht,18-27 °C,7,tree|large|bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch2.ts,244,Philodendron Xanadu,Thaumatophyllum xanadu,Philodendron Xanadu ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,bright_light,,,,,
|
||||
bright_light,constants/lexiconBatch1.ts,72,Vanda-Orchidee,Vanda coerulea,Die Vanda-Orchidee ist bekannt fuer ihre seltene blaue Bluetenfarbe. Epiphytische Orchidee mit grossen Blueten.,Helles bis volles Licht,20-30 °C,3,flowering|bright_light|high_humidity,,,,,
|
||||
easy,constants/lexiconBatch2.ts,31,Adromischus,Adromischus cristatus,Adromischus ist eine kompakte Sukkulente mit ungewoehnlich wellenrandigen Blaettern auf kurzen Staengeln.,Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,50,Aglaoneme,Aglaonema commutatum,Die Aglaoneme ist eine dekorative Zimmerpflanze mit silbrig-gruen gemusterten Blaettern. Tolerant gegenueber wenig Licht.,Wenig bis helles Licht,15-26 °C,7,easy|patterned|low_light,,,,,
|
||||
easy,constants/lexiconBatch1.ts,30,Schnittlauch,Allium schoenoprasum,Schnittlauch ist ein beliebtes Kuechenkraut mit roehrenfoermigen Blaettern und lila Blueten.,Helles bis volles Licht,10-25 °C,3,easy,,,,,
|
||||
easy,constants/lexiconBatch2.ts,135,Schnittknoblauch,Allium tuberosum,Schnittknoblauch ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,89,Kap-Aloe,Aloe arborescens,"Die Kap-Aloe ist eine strauchige Aloe mit schmalen, gezaehnten Blaettern und leuchtend roten Bluetenaehren im Winter.",Volles Sonnenlicht,10-30 °C,14,easy|succulent|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,128,Zitronenverbene,Aloysia citrodora,Zitronenverbene ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,140,Dill,Anethum graveolens,Dill ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,125,Kerbel,Anthriscus cerefolium,Kerbel ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,122,Estragon,Artemisia dracunculus,Estragon ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,16,Schusterpflanze,Aspidistra elatior,"Die Schusterpflanze ist eine extrem robuste Zimmerpflanze mit langen, dunkelgruenen Blaettern. Vertraegt tiefe Temperaturen.",Wenig bis helles Licht,10-20 °C,14,easy|low_light,,,,,
|
||||
easy,constants/lexiconBatch2.ts,43,Vogelnest-Farn,Asplenium nidus,"Der Vogelnest-Farn hat ganzrandige, glaenzende Wedel, die eine Nestform bilden. Sehr dekorativ und robust.",Helles indirektes Licht,18-27 °C,5,easy|low_light|high_humidity,,,,,
|
||||
easy,constants/lexiconBatch2.ts,13,Japanische Aucube,Aucuba japonica,"Die Japanische Aucube hat glaenzende, gruene oder gelbgefleckte Blaetter. Sehr schattenvertraeglich.",Wenig bis helles Licht,10-20 °C,7,easy|low_light,,,,,
|
||||
easy,constants/lexiconBatch2.ts,7,Bambusrohr,Bambusa vulgaris,Das Bambusrohr ist eine schnell wachsende Bambusart mit gelbgruenen Halmen. Sehr dekorativ und vielseitig nutzbar.,Helles bis volles Licht,15-30 °C,5,easy|large,,,,,
|
||||
easy,constants/lexiconBatch1.ts,41,Pferdeschwanzpalme,Beaucarnea recurvata,"Die Pferdeschwanzpalme hat einen verdickten Stammbasis als Wasserspeicher und lange, schmale Blaetter.",Volles Sonnenlicht,15-30 °C,21,easy|succulent|tree|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,97,Mangold,Beta vulgaris,"Mangold ist ein farbenfrohes Blattgemuese mit bunten Stielen in Rot, Gelb, Orange und Weiss.",Helles bis volles Licht,10-25 °C,3,easy,,,,,
|
||||
easy,constants/lexiconBatch2.ts,38,Billbergia,Billbergia nutans,"Die Billbergia ist eine robuste Bromelie mit schmalen, gruenen Blaettern und hängenden, blauen und gruenen Blueten.",Helles indirektes Licht,15-25 °C,7,easy|flowering,,,,,
|
||||
easy,constants/lexiconBatch2.ts,129,Borretsch,Borago officinalis,Borretsch ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,63,Calibrachoa,Calibrachoa hybrida,"Calibrachoa ist eine petunienaehnliche Haengepflanze mit unzaehligen, kleinen Trichterbluten in allen Farben.",Volles Sonnenlicht,15-25 °C,2,easy|flowering|hanging|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,56,Callisia,Callisia repens,"Callisia repens ist ein kleines, kriechendes Kraut mit winzigen, gruenen Blaettern. Ideal fuer haengende Behaelter.",Helles indirektes Licht,15-25 °C,5,easy|hanging,,,,,
|
||||
easy,constants/lexiconBatch2.ts,92,Chili,Capsicum annuum,"Chili ist eine beliebte Gemuese- und Zierpflanze mit leuchtenden, roten oder orangen Fruechten. Im Topf kultivierbar.",Volles Sonnenlicht,20-30 °C,4,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch1.ts,81,Peruanischer Fackelkaktus,Cereus peruvianus,"Der Peruanische Fackelkaktus ist ein saeulenfoermiger Kaktus, der im Innenraum bis zu 2 m hoch werden kann.",Volles Sonnenlicht,15-35 °C,21,easy|succulent|large|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,99,Herzkette,Ceropegia woodii,"Die Herzkette hat duenne, haengende Ranken mit herzfoermigen, silbergrau gemusterten Blaettchen.",Helles indirektes Licht,15-27 °C,14,easy|succulent|patterned|hanging,,,,,
|
||||
easy,constants/lexiconBatch1.ts,43,Bergpalme,Chamaedorea elegans,Die Bergpalme ist eine kompakte Zimmerpalme fuer schattigere Standorte. Ideal fuer dunkle Innenraeume.,Wenig bis helles Licht,15-25 °C,7,easy|pet_friendly|tree|air_purifier|low_light,air_purifier_requires_external_evidence|pet_friendly_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,138,Roemische Kamille,Chamaemelum nobile,Roemische Kamille ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,101,Kamille,Chamomilla recutita,"Die Kamille ist ein beliebtes Heilkraut mit kleinen, weiss-gelben Blueten. Das aetherische Oel wirkt beruhigend.",Volles Sonnenlicht,15-25 °C,5,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,84,Kaffeestrauch,Coffea arabica,"Der Kaffeestrauch hat glaenzende, dunkelgruene Blaetter und entwickelt rote Kaffeekirschen. Kann im Topf gehalten werden.",Helles indirektes Licht,18-25 °C,7,easy,,,,,
|
||||
easy,constants/lexiconBatch2.ts,14,Keulenlilie,Cordyline australis,"Die Keulenlilie hat lange, schmale, gruene oder rotbraune Blaetter in einem dekorativen Schopf.",Helles bis volles Licht,10-25 °C,7,easy|tree|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,15,Tiroler Keulenlilie,Cordyline fruticosa,"Die Tiroler Keulenlilie hat leuchtend rote, gruene oder buntlaubige Blaetter. Eine exotische Zimmerpflanze.",Helles indirektes Licht,18-27 °C,7,easy,,,,,
|
||||
easy,constants/lexiconBatch2.ts,139,Koriander,Coriandrum sativum,Koriander ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,29,Kotyledon,Cotyledon orbiculata,"Kotyledon hat dickfleischige, runde Blaetter mit einem mehligen, weisslichen Belag. Sehr trockenheitsresistent.",Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,26,Moos-Crassula,Crassula muscosa,"Die Moos-Crassula hat dicht aneinandergereihte, winzige gruene Blaetter auf unverzweigten Trieben. Sieht aus wie Moos.",Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,5,Jadepflanze,Crassula ovata,"Die Jadepflanze ist eine langlebige Sukkulente mit dicken, ovalen Blaettern. In Japan gilt sie als Gluecksbringer.",Helles bis volles Licht,15-24 °C,14,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,110,Krokus,Crocus vernus,"Der Krokus ist einer der ersten Fruehjahrsboten mit kelchfoermigen Blueten in Lila, Weiss und Gelb.",Helles bis volles Licht,5-15 °C,7,easy|flowering,,,,,
|
||||
easy,constants/lexiconBatch2.ts,94,Gurke,Cucumis sativus,"Die Gurke ist eine rankende Gemuesepflanze mit gruenen, erfrischenden Fruechten. Im Balkonkasten kultivierbar.",Volles Sonnenlicht,18-28 °C,3,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,127,Zitronengras,Cymbopogon citratus,Zitronengras ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,99,Karotte,Daucus carota,Die Karotte ist eine beliebte Gemuesepflanze mit orangefarbenen Wurzeln. Im tiefen Topf kultivierbar.,Helles bis volles Licht,15-22 °C,5,easy,,,,,
|
||||
easy,constants/lexiconBatch1.ts,48,Dieffenbachie,Dieffenbachia seguine,"Die Dieffenbachie ist eine tropische Blattschmuckpflanze mit grossen, gruen-weiss gefleckten Blaettern.",Helles indirektes Licht,18-26 °C,7,easy|air_purifier|low_light,air_purifier_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch1.ts,14,Maisstrauch,Dracaena fragrans,"Der Maisstrauch ist eine robuste Zimmerpflanze mit breiten, gestreiften Blaettern. Gedeiht auch bei wenig Licht.",Helles indirektes Licht,15-25 °C,10,easy|tree|air_purifier|low_light,air_purifier_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch1.ts,13,Drachenbaum,Dracaena marginata,"Der Drachenbaum ist eine schlanke Zimmerpflanze mit roten, schmalen Blaettern auf langen Staemmen.",Helles indirektes Licht,15-25 °C,10,easy|tree|air_purifier,air_purifier_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,30,Dudleya,Dudleya brittonii,"Dudleya ist eine rosettenbildende Sukkulente mit silbrig-weissen, mehligen Blaettern. Sehr elegant.",Volles Sonnenlicht,10-25 °C,14,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,4,Echeverie,Echeveria elegans,"Die Echeverie bildet symmetrische, rosettenfoermige Sukkulenten mit blaugruenen Blaettern. Pflegeleicht.",Volles Sonnenlicht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,77,Goldene Tonne,Echinocactus grusonii,Die Goldene Tonne ist ein ikonischer kugelfoermiger Kaktus mit goldgelben Stacheln. Waechst langsam aber imposant.,Volles Sonnenlicht,15-35 °C,21,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,83,San-Pedro-Kaktus,Echinopsis pachanoi,"Der San-Pedro-Kaktus ist ein schnell wachsender, saeulenfoermiger Kaktus aus den Anden.",Volles Sonnenlicht,10-35 °C,14,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,16,Marmor-Efeutute,Epipremnum aureum Marble Queen,Die Marmor-Efeutute hat cremeweiss-gruen marmorierte Blaetter. Eine dekorative Variante der klassischen Efeutute.,Helles indirektes Licht,15-30 °C,7,easy|hanging|air_purifier,air_purifier_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,53,Neon-Efeutute,Epipremnum pinnatum Neon,Die Neon-Efeutute hat leuchtend limonengruene Blaetter. Sehr auffaellig und pflegeleicht.,Helles indirektes Licht,15-30 °C,7,easy|hanging|air_purifier,air_purifier_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,19,Christusdorn,Euphorbia milii,Der Christusdorn ist eine sukkulente Wolfsmilch mit stacheligen Zweigen und kleinen roten oder gelben Hochblaettern.,Helles bis volles Licht,15-28 °C,10,easy|flowering|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,12,Bleistiftkaktus,Euphorbia tirucalli,"Der Bleistiftkaktus ist eine sukkulente Wolfsmilch mit duennen, zylindrischen Zweigen ohne Blaetter.",Volles Sonnenlicht,18-30 °C,14,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,12,Fatsia,Fatsia japonica,"Die Fatsia ist ein dekorativer Zimmerstrauch mit grossen, handfoermigen, glaenzenden Blaettern. Sehr robust.",Helles indirektes Licht,10-20 °C,7,easy|low_light,,,,,
|
||||
easy,constants/lexiconBatch1.ts,78,Fass-Kaktus,Ferocactus cylindraceus,"Der Fass-Kaktus ist ein zylindrischer Wuestenkaktus mit langen, roten Stacheln. Sehr langlebig.",Volles Sonnenlicht,15-35 °C,21,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,38,Gummibaum,Ficus elastica,"Der Gummibaum ist eine imposante Zimmerpflanze mit grossen, glaenzenden, lederartigen Blaettern. Reinigt die Luft.",Helles indirektes Licht,16-24 °C,10,easy|tree|air_purifier,air_purifier_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,247,Ficus microcarpa,Ficus microcarpa,Ficus microcarpa ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,easy|tree|bright_light,,,,,
|
||||
easy,constants/lexiconBatch2.ts,100,Erdbeere,Fragaria ananassa,"Die Erdbeere ist ein beliebtes Obst fuer Balkon und Terrasse mit aromatischen, roten Fruechten.",Helles bis volles Licht,15-25 °C,3,easy|pet_friendly|sun,pet_friendly_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch1.ts,90,Gasteria,Gasteria carinata,"Die Gasteria ist eine kleine Sukkulente mit zweireihig angeordneten, zungenfoermigen, gefleckten Blaettern.",Helles indirektes Licht,15-25 °C,14,easy|succulent|low_light,,,,,
|
||||
easy,constants/lexiconBatch1.ts,32,Blutroter Storchschnabel,Geranium sanguineum,Der Blutrote Storchschnabel ist ein zierlicher Storchschnabel mit intensiv magentafarbenen Blueten.,Helles bis volles Licht,10-25 °C,7,easy|flowering,,,,,
|
||||
easy,constants/lexiconBatch1.ts,87,Geisterpflanze,Graptopetalum paraguayense,"Die Geisterpflanze hat zartgraue bis perlmutt-rosafarbene, rosettenfoermige Blaetter. Sehr robuste Sukkulente.",Volles Sonnenlicht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,80,Mond-Kaktus,Gymnocalycium mihanovichii,Der Mond-Kaktus ist eine farbenfrohe Veredelung eines chlorophylllosen Kaktus auf einem gruenen Unterlagekaktus.,Indirektes Licht,15-30 °C,14,easy|succulent,,,,,
|
||||
easy,constants/lexiconBatch1.ts,6,Zebra-Haworthie,Haworthia fasciata,Die Zebra-Haworthie ist eine kompakte Sukkulente mit weissen Querstreifen auf dunkelgruenen Blaettern.,Helles indirektes Licht,15-25 °C,14,easy|succulent|low_light,,,,,
|
||||
easy,constants/lexiconBatch1.ts,37,Efeu,Hedera helix,"Efeu ist eine robuste Kletter- und Haengepflanze mit charakteristischen, dreilappigen Blaettern. Sehr langlebig.",Wenig bis helles Licht,10-20 °C,7,easy|hanging|air_purifier|low_light,air_purifier_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,133,Currykraut,Helichrysum italicum,Currykraut ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,57,Wachsblume,Hoya carnosa,"Die Wachsblume ist eine Kletterpflanze mit dicken, wachsartigen Blaettern und sternfoermigen, duftenden Blueten.",Helles indirektes Licht,16-27 °C,10,easy|flowering|succulent|hanging,,,,,
|
||||
easy,constants/lexiconBatch1.ts,108,Hyazinthe,Hyacinthus orientalis,"Die Hyazinthe bezaubert mit dichten Bluetenrispen und intensivem Duft in Blau, Rosa, Weiss oder Gelb.",Helles bis volles Licht,10-18 °C,5,easy|flowering,,,,,
|
||||
easy,constants/lexiconBatch2.ts,136,Ysop,Hyssopus officinalis,Ysop ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,59,Neuguinea-Balsamine,Impatiens hawkeri,"Die Neuguinea-Balsamine hat grosse, leuchtende Blueten und ist sehr bluehfreudig. Ideal fuer Terrassen.",Helles indirektes Licht,18-27 °C,3,easy|flowering,,,,,
|
||||
easy,constants/lexiconBatch1.ts,20,Fleissiges Lieschen,Impatiens walleriana,Das Fleissige Lieschen bluet von Fruehling bis Herbst unermudlich in vielen Farben.,Helles indirektes Licht,16-24 °C,2,easy|flowering,,,,,
|
||||
easy,constants/lexiconBatch1.ts,64,Suesskartoffel,Ipomoea batatas,"Die Suesskartoffel-Zierpflanze hat dekorative, herzfoermige Blaetter in gruen oder dunkelviolett. Ideal als Haengepflanze.",Volles Sonnenlicht,20-30 °C,5,easy|hanging|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,9,Kalanchoe,Kalanchoe blossfeldiana,"Die Kalanchoe ist eine beliebte Bluehpflanze mit leuchtenden Blueten in Rot, Orange, Gelb oder Rosa.",Helles bis volles Licht,15-25 °C,10,easy|flowering|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,22,Brutblatt,Kalanchoe daigremontiana,Das Brutblatt bildet entlang des Blattrandes zahlreiche kleine Jungpflanzen. Eine faszinierende Sukkulente.,Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,21,Kaninchen-Ohren,Kalanchoe tomentosa,"Kaninchen-Ohren haben weisslich-filzige Blaetter mit braunen Raendern, die Kaninchenohren aehneln. Sehr dekorativ.",Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,95,Salat,Lactuca sativa,Salat ist eine schnell wachsende Blattgemuesepflanze. Im Topf und Balkonkasten sehr gut zu kultivieren.,Helles bis volles Licht,10-22 °C,3,easy,,,,,
|
||||
easy,constants/lexiconBatch2.ts,121,Lorbeer,Laurus nobilis,Lorbeer ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,126,Liebstoeckel,Levisticum officinale,Liebstoeckel ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,62,Duftsteinrich,Lobularia maritima,"Der Duftsteinrich ist ein niedrig wachsendes Pflanzchen mit winzigen, weissen oder lilafarbenen Blueten und suessem Duft.",Helles bis volles Licht,10-22 °C,3,easy|flowering,,,,,
|
||||
easy,constants/lexiconBatch1.ts,79,Mammillaria,Mammillaria zeilmanniana,"Die Mammillaria ist ein kompakter, kugelfoermiger Kaktus, der im Fruehling einen Kranz aus rosa Blueten traegt.",Volles Sonnenlicht,15-35 °C,14,easy|flowering|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,102,Zitronenmelisse,Melissa officinalis,Die Zitronenmelisse ist ein zitronig duftendes Heilkraut. Sie beruhigt die Nerven und foerdert den Schlaf.,Helles bis volles Licht,15-25 °C,5,easy|medicinal,medicinal_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch1.ts,26,Gruene Minze,Mentha spicata,"Die Gruene Minze ist ein wuchsfreudiges Kuechenkraut mit frischem, minzigem Duft. Fuer Tee und Cocktails.",Helles bis volles Licht,15-25 °C,3,easy,,,,,
|
||||
easy,constants/lexiconBatch2.ts,47,Monstera adansonii,Monstera adansonii,Monstera adansonii hat herzfoermige Blaetter mit zahlreichen runden Lochern. Eine rankende Zimmerpflanze.,Helles indirektes Licht,18-27 °C,7,easy|hanging,,,,,
|
||||
easy,constants/lexiconBatch1.ts,109,Traubenhyazinthe,Muscari armeniacum,"Die Traubenhyazinthe bildet dichte Trauben aus kleinen, blauen bis violetten Gloeckchen. Zuverlaessige Fruejahrszwiebel.",Helles bis volles Licht,8-18 °C,7,easy|flowering,,,,,
|
||||
easy,constants/lexiconBatch2.ts,132,Katzenminze,Nepeta cataria,Katzenminze ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,25,Basilikum,Ocimum basilicum,"Basilikum ist das beliebteste Kuechenkraut mit intensiv aromatischen, gruenen Blaettern. Fuer Pesto verwendet.",Volles Sonnenlicht,18-30 °C,2,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch1.ts,82,Hasenohren-Kaktus,Opuntia microdasys,"Der Hasenohren-Kaktus hat flache, ovale Triebe mit dichten weissen Glochiden. Klassischer Zimmerkaktus.",Volles Sonnenlicht,10-35 °C,21,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,124,Majoran,Origanum majorana,Majoran ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,28,Oregano,Origanum vulgare,"Oregano ist ein aromatisches Kuechenkraut mit runden, behaarten Blaettern. In mediterraner Kueche beliebt.",Volles Sonnenlicht,15-25 °C,7,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,231,Glueckskastanie,Pachira aquatica,Glueckskastanie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,easy|tree|bright_light,,,,,
|
||||
easy,constants/lexiconBatch1.ts,88,Mondstein-Pflanze,Pachyphytum oviferum,"Die Mondstein-Pflanze hat dicke, ovale Blaetter mit einem pastellrosafarbenen, mehligen Ueberzug.",Volles Sonnenlicht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,31,Rosengeranie,Pelargonium graveolens,Die Rosengeranie ist eine Duftpflanze mit tief eingeschnittenen Blaettern und rosaenlichem Aroma.,Volles Sonnenlicht,15-25 °C,7,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,61,Efeu-Geranie,Pelargonium peltatum,"Die Efeu-Geranie hat efeufoermige, glaenzende Blaetter und bluet den ganzen Sommer in leuchtenden Farben.",Helles bis volles Licht,15-25 °C,5,easy|flowering|hanging|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,102,Rippenpeperomie,Peperomia caperata,"Die Rippenpeperomie hat tief gerippte, dunkelgruene bis violette Blaetter mit einer samtigen Textur.",Helles indirektes Licht,18-26 °C,10,easy|pet_friendly,pet_friendly_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch1.ts,103,Spiegelpeperomie,Peperomia obtusifolia,"Die Spiegelpeperomie hat glaenzende, lederartige, oval-runde Blaetter in tiefem Gruen. Sehr robust.",Helles indirektes Licht,16-26 °C,10,easy|pet_friendly|low_light,pet_friendly_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,230,Raindrop-Peperomie,Peperomia polybotrya,Raindrop-Peperomie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,easy|pet_friendly,pet_friendly_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,134,Shiso,Perilla frutescens,Shiso ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,29,Petersilie,Petroselinum crispum,Petersilie ist eines der meistgenutzten Kuechenkraeuter mit frisch-aromatischem Geschmack. Reich an Vitaminen.,Helles Licht,10-25 °C,3,easy,,,,,
|
||||
easy,constants/lexiconBatch1.ts,34,Petunie,Petunia hybrida,Die Petunie ist eine der beliebtesten Balkonpflanzen mit trichterfoermigen Blueten in unzaehligen Farben.,Volles Sonnenlicht,15-25 °C,2,easy|pet_friendly|flowering|sun,pet_friendly_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,50,Philodendron bipinnatifidum,Philodendron bipinnatifidum,"Philodendron bipinnatifidum hat grosse, tief gelappte Blaetter. Er entwickelt einen beeindruckenden, baumfoermigen Wuchs.",Helles indirektes Licht,18-27 °C,7,easy|large,,,,,
|
||||
easy,constants/lexiconBatch2.ts,51,Roter Philodendron,Philodendron erubescens,"Der Rote Philodendron hat glaenzende, herzfoermige Blaetter, die jung roetrlich erscheinen. Sehr dekorativ.",Helles indirektes Licht,18-27 °C,7,easy|hanging,,,,,
|
||||
easy,constants/lexiconBatch1.ts,15,Herzblatt-Philodendron,Philodendron hederaceum,Der Herzblatt-Philodendron ist eine pflegeleichte Kletter- oder Haengepflanze mit herzfoermigen Blaettern.,Indirektes Licht,18-28 °C,7,easy|hanging|low_light,,,,,
|
||||
easy,constants/lexiconBatch2.ts,242,Philodendron Brasil,Philodendron hederaceum Brasil,Philodendron Brasil ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,easy|hanging|low_light,,,,,
|
||||
easy,constants/lexiconBatch2.ts,8,Goldener Bambus,Phyllostachys aurea,"Der Goldene Bambus hat elegante, goldgelbe Halme mit engstehenden Knoten. Sehr dekorativ als Sichtschutz.",Helles bis volles Licht,10-30 °C,5,easy|large,,,,,
|
||||
easy,constants/lexiconBatch2.ts,228,Aluminium-Pflanze,Pilea cadierei,Aluminium-Pflanze ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,easy|pet_friendly|patterned,pet_friendly_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch1.ts,2,Ufopflanze,Pilea peperomioides,"Die Ufopflanze hat unverwechselbare, runde Blaetter auf langen Stielen. Bildet leicht Ableger zum Verschenken.",Helles indirektes Licht,13-30 °C,7,easy|pet_friendly,pet_friendly_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,44,Tueipelfarn,Polypodium vulgare,Der Tueipelfarn ist ein heimischer Farn mit gelappten Wedeln und runden Sporenhaeufchen auf der Unterseite.,Helles indirektes Licht,10-20 °C,7,easy,,,,,
|
||||
easy,constants/lexiconBatch2.ts,27,Speckbaum,Portulacaria afra,"Der Speckbaum ist eine sukkulente Pflanze mit roten Stielen und kleinen, runden, glaenzenden Blaettern.",Helles bis volles Licht,15-30 °C,14,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,98,Radieschen,Raphanus sativus,"Das Radieschen ist ein schnellwachsendes Gemuese mit runden, roten Knollen. Es reift in nur 3-4 Wochen.",Helles bis volles Licht,10-22 °C,2,easy,,,,,
|
||||
easy,constants/lexiconBatch2.ts,52,Mini-Monstera,Rhaphidophora tetrasperma,"Die Mini-Monstera hat monsteraaehnliche, gelochte Blaetter auf einer kompakten, klettternden Pflanze. Sehr trendig.",Helles indirektes Licht,18-27 °C,7,easy|hanging,,,,,
|
||||
easy,constants/lexiconBatch1.ts,24,Rosmarin,Rosmarinus officinalis,Rosmarin ist ein aromatisches Kraut mit nadelartigen Blaettern und blauen Blueten. In der Kueche unverzichtbar.,Volles Sonnenlicht,10-25 °C,7,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,130,Sauerampfer,Rumex acetosa,Sauerampfer ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,94,Afrikanisches Veilchen,Saintpaulia ionantha,"Das Afrikanische Veilchen ist eine kleine, kompakte Bluehpflanze mit samtigen Blaettern und violetten Blueten.",Helles indirektes Licht,18-25 °C,7,easy|flowering,,,,,
|
||||
easy,constants/lexiconBatch2.ts,103,Salbei,Salvia officinalis,Salbei ist ein aromatisches Heilkraut mit silbrig-gruenen Blaettern. Er hat antibakterielle und entzuendungshemmende Wirkung.,Volles Sonnenlicht,10-25 °C,7,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,17,Zylindrischer Bogenhanf,Sansevieria cylindrica,"Der Zylindrische Bogenhanf hat zylindrische, aufrechte Blaetter, die sich nach oben verjuengen. Sehr pflegeleicht.",Helles bis volles Licht,15-27 °C,14,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,123,Bohnenkraut,Satureja hortensis,Bohnenkraut ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,11,Grosse Strahlenaralie,Schefflera actinophylla,"Die Grosse Strahlenaralie kann grosse, handfoermige Blaetter entwickeln. Sie ist ideal als Zimmerstrauch.",Helles indirektes Licht,18-27 °C,7,easy|tree|large,,,,,
|
||||
easy,constants/lexiconBatch2.ts,10,Strahlenaralie,Schefflera arboricola,"Die Strahlenaralie hat fingerfoermig angeordnete, glaenzende Blaetter auf langen Stielen. Sehr robuste Zimmerpflanze.",Helles indirektes Licht,15-25 °C,7,easy|tree|air_purifier,air_purifier_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch1.ts,8,Weihnachtskaktus,Schlumbergera truncata,"Der Weihnachtskaktus erfreut zur Weihnachtszeit mit leuchtenden Blueten in Rosa, Rot oder Weiss.",Helles indirektes Licht,15-21 °C,7,easy|flowering|succulent,,,,,
|
||||
easy,constants/lexiconBatch1.ts,55,Satinpothos,Scindapsus pictus,"Der Satinpothos hat samtig-glaenzende, silbrig gefleckte Blaetter auf langen, haengenden Ranken.",Helles indirektes Licht,18-28 °C,7,easy|patterned|hanging,,,,,
|
||||
easy,constants/lexiconBatch1.ts,7,Eselschwanz,Sedum morganianum,"Der Eselschwanz ist eine haengende Sukkulente mit langen Trieben aus dichten, blaugruenen Blaettchen.",Volles Sonnenlicht,15-25 °C,14,easy|succulent|hanging|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,100,Perlenschnur-Pflanze,Senecio rowleyanus,"Die Perlenschnur-Pflanze hat haengende Ranken mit kugelfoermigen, perlenaehnlichen Blaettern. Einzigartige Sukkulente.",Helles bis volles Licht,15-27 °C,14,easy|succulent|hanging,,,,,
|
||||
easy,constants/lexiconBatch2.ts,28,Blauer Kreuzkraut,Senecio serpens,"Der Blaue Kreuzkraut hat zylindrische, blaublaugruene Blaetter und einen kriechenden Wuchs. Sehr dekorativ.",Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,91,Tomate,Solanum lycopersicum,"Die Tomate ist eine beliebte Gemuese- und Balkonpflanze mit roten, saftigen Fruechten. Im Topf kultivierbar.",Volles Sonnenlicht,18-28 °C,3,easy,,,,,
|
||||
easy,constants/lexiconBatch2.ts,96,Spinat,Spinacia oleracea,Spinat ist ein naehrstoffreiches Blattgemuese mit dunkelgruenen Blaettern. Reich an Eisen und Vitaminen.,Helles bis volles Licht,10-20 °C,3,easy,,,,,
|
||||
easy,constants/lexiconBatch2.ts,131,Stevia,Stevia rebaudiana,Stevia ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,56,Pfeilblatt,Syngonium podophyllum,"Das Pfeilblatt hat charakteristisch pfeilfoermige Blaetter, die sich mit dem Alter weiterentwickeln.",Helles indirektes Licht,16-27 °C,7,easy|hanging,,,,,
|
||||
easy,constants/lexiconBatch2.ts,66,Studentenblume,Tagetes patula,Die Studentenblume ist eine robuste Sommerblume mit orangen oder gelben Blueten. Sie haelt Schadlinge fern.,Volles Sonnenlicht,15-28 °C,3,easy|flowering|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,27,Thymian,Thymus vulgaris,"Thymian ist ein kleiner, aromatischer Strauch mit winzigen Blaettern und rosa Blueten. Wichtiges Kuechenkraut.",Volles Sonnenlicht,10-25 °C,7,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
easy,constants/lexiconBatch2.ts,33,Luftpflanze,Tillandsia ionantha,Die Luftpflanze ist eine kompakte Bromelie ohne Topferde. Sie nimmt Wasser und Naehrstoffe ueber die Blattschuppen auf.,Helles bis volles Licht,15-30 °C,3,easy,,,,,
|
||||
easy,constants/lexiconBatch2.ts,32,Spanisches Moos,Tillandsia usneoides,"Das Spanische Moos ist eine epiphytische Bromelie ohne Wurzeln, die in der Luft haengt. Es benoetigt nur Feuchtigkeitsbespruehing.",Helles bis volles Licht,15-30 °C,3,easy|hanging,,,,,
|
||||
easy,constants/lexiconBatch2.ts,55,Weisse Tradescantia,Tradescantia fluminensis,Die Weisse Tradescantia hat gruene Blaetter mit weisslichen Unterseiten. Sehr robust und schnellwachsend.,Helles indirektes Licht,15-25 °C,5,easy|hanging,,,,,
|
||||
easy,constants/lexiconBatch2.ts,54,Lila Tradescantia,Tradescantia pallida,Die Lila Tradescantia hat leuchtend purpurrote Blaetter und ist sehr auffaellig. Sie liebt viel Licht.,Helles bis volles Licht,15-25 °C,5,easy|hanging|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,17,Zebrakraut,Tradescantia zebrina,Das Zebrakraut faellt durch seine silbrig-lila gestreiften Blaetter auf. Schnellwachsende Haengepflanze.,Helles indirektes Licht,15-25 °C,5,easy|patterned|hanging,,,,,
|
||||
easy,constants/lexiconBatch1.ts,107,Tulpe,Tulipa gesneriana,Die Tulpe ist eine der beliebtesten Fruehjahrsblueher mit kelchfoermigen Blueten in unzaehligen Farben.,Helles bis volles Licht,8-18 °C,5,easy|flowering,,,,,
|
||||
easy,constants/lexiconBatch1.ts,35,Stiefmuetterchen,Viola wittrockiana,Das Stiefmuetterchen ist ein bekannter Fruehjahrsblueher mit charakteristisch gezeichneten Blueten.,Helles bis volles Licht,5-18 °C,3,easy|flowering,,,,,
|
||||
easy,constants/lexiconBatch2.ts,246,Yucca aloifolia,Yucca aloifolia,Yucca aloifolia ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Volles Sonnenlicht,18-30 C,10,easy|tree|sun,,,,,
|
||||
easy,constants/lexiconBatch1.ts,40,Yucca-Palme,Yucca elephantipes,"Die Yucca-Palme ist eine robuste Zimmerpflanze mit starrem, immergruenem Blaetterschopf auf einem dicken Stamm.",Helles bis volles Licht,15-28 °C,14,easy|tree|sun,,,,,
|
||||
easy,constants/lexiconBatch2.ts,65,Zinnie,Zinnia elegans,"Die Zinnie ist eine leuchtende Sommerblume mit grossen, dahlienaehnlichen Blueten. Sehr robust und hitzetolerant.",Volles Sonnenlicht,18-30 °C,3,easy|flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,108,Schafgarbe,Achillea millefolium,Die Schafgarbe hat weisse oder rosafarbene Bluetenschirme und fein gefiederte Blaetter. Wichtige Heilpflanze.,Volles Sonnenlicht,10-25 °C,7,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
flowering,constants/lexiconBatch1.ts,86,Wuestenrose,Adenium obesum,Die Wuestenrose ist eine sukkulente Zimmerpflanze mit dickem Stamm und leuchtend pinken Blueten.,Volles Sonnenlicht,20-35 °C,10,flowering|succulent|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,117,Socotra-Wuestenrose,Adenium socotranum,"Die Socotra-Wuestenrose ist eine seltene, endemische Art mit einem sehr dicken, knolligen Stamm und rosa Blueten.",Volles Sonnenlicht,20-35 °C,14,flowering|succulent|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,34,Silbervase,Aechmea fasciata,Die Silbervase ist eine Bromelie mit silbrig gebänderten Blaettern und einem rosafarbenen Bluetenstand.,Helles indirektes Licht,18-25 °C,10,flowering|patterned,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,98,Lippenstiftpflanze,Aeschynanthus radicans,Die Lippenstiftpflanze hat haengende Triebe mit glaenzenden Blaettern und leuchtend roten Roehrenbluten.,Helles indirektes Licht,18-27 °C,7,flowering|hanging|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,155,Stockrose,Alcea rosea,"Stockrose ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,73,Muschelingwer,Alpinia zerumbet,"Der Muschelingwer hat lange, elegante Blaetter und haengende Bluetenrispen mit weiss-rosa Bluetchen.",Helles bis volles Licht,20-30 °C,5,flowering|large|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,194,Fuchsschwanz,Amaranthus caudatus,"Fuchsschwanz ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,163,Anemone,Anemone coronaria,"Anemone ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,147,Loewenmaeulchen,Antirrhinum majus,"Loewenmaeulchen ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,107,Arnika,Arnica montana,Arnika ist eine bekannte Heilpflanze aus den Alpen mit goldgelben Korbbluten. Sie wird fuer Muskeln und Gelenke verwendet.,Volles Sonnenlicht,10-20 °C,7,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
flowering,constants/lexiconBatch2.ts,178,Seidenpflanze,Asclepias tuberosa,"Seidenpflanze ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,92,Indische Azalee,Azalea indica,"Die Indische Azalee ist ein beliebter Zierstrauch mit grossen, auffaelligen Blueten in Rosa- und Rottönen.",Helles indirektes Licht,10-20 °C,4,flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,175,Eisbegonie,Begonia semperflorens-cultorum,"Eisbegonie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|bright_light,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,58,Knollen-Begonie,Begonia tuberhybrida,"Die Knollen-Begonie hat riesige, rosenaehnliche Blueten in leuchtendem Rot, Orange, Gelb oder Weiss.",Helles indirektes Licht,15-22 °C,5,flowering|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,145,Gaensebluemchen,Bellis perennis,"Gaensebluemchen ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,38,Billbergia,Billbergia nutans,"Die Billbergia ist eine robuste Bromelie mit schmalen, gruenen Blaettern und hängenden, blauen und gruenen Blueten.",Helles indirektes Licht,15-25 °C,7,easy|flowering,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,62,Bougainvillea,Bougainvillea spectabilis,"Die Bougainvillea ist eine rankenreiche Kletterpflanze mit leuchtend farbigen Hochblaettern in Rot, Orange oder Pink.",Volles Sonnenlicht,18-30 °C,5,flowering|bright_light|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,223,Schmetterlingsflieder,Buddleja davidii,Schmetterlingsflieder ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,187,Ringelblume,Calendula officinalis,"Ringelblume ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
flowering,constants/lexiconBatch2.ts,63,Calibrachoa,Calibrachoa hybrida,"Calibrachoa ist eine petunienaehnliche Haengepflanze mit unzaehligen, kleinen Trichterbluten in allen Farben.",Volles Sonnenlicht,15-25 °C,2,easy|flowering|hanging|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,93,Kamelie,Camellia japonica,Die Kamelie ist ein eleganter Zierstrauch mit glaenzenden Blaettern und rosenaehnlichen Blueten von Januar bis April.,Helles indirektes Licht,7-18 °C,5,flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,85,Teestrauch,Camellia sinensis,"Der Teestrauch ist die Pflanze, aus deren Blaettern Tee gewonnen wird. Er hat weisse Blueten und glaenzende Blaetter.",Helles indirektes Licht,15-22 °C,7,flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,184,Trompetenwinde,Campsis radicans,"Trompetenwinde ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|bright_light,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,67,Blumenschilfrohr,Canna indica,"Das Blumenschilfrohr hat grosse, tropisch wirkende Blaetter und auffaellige Blueten in Rot, Orange oder Gelb.",Volles Sonnenlicht,18-28 °C,5,flowering|large|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,73,Cattleya-Orchidee,Cattleya labiata,"Die Cattleya ist die Koenigin der Orchideen mit ueppigen, duftenden Blueten in Lila, Rosa und Weiss.",Helles indirektes Licht,18-28 °C,7,flowering|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,188,Kornblume,Centaurea cyanus,"Kornblume ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,67,Chrysantheme,Chrysanthemum indicum,"Die Chrysantheme ist die klassische Herbstblume mit ueppigen, dichten Blueten in vielen Farben.",Helles bis volles Licht,12-22 °C,4,flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,157,Clematis,Clematis viticella,"Clematis ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|bright_light,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,104,Riemenblatt,Clivia miniata,Das Riemenblatt ist eine dekorative Zimmerpflanze mit leuchtend orangefarbenen Blueten im Fruehling.,Helles indirektes Licht,15-24 °C,10,flowering,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,97,Columnea,Columnea gloriosa,"Die Columnea ist eine haengende Zimmerpflanze mit kleinen, behaarten Blaettern und leuchtend roten, roehrenfoermigen Blueten.",Helles indirektes Licht,18-25 °C,7,flowering|hanging|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,160,Maigloeckchen,Convallaria majalis,"Maigloeckchen ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|medicinal,medicinal_requires_external_evidence,,,,
|
||||
flowering,constants/lexiconBatch2.ts,181,Maedchenauge,Coreopsis tinctoria,"Maedchenauge ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,150,Kosmee,Cosmos bipinnatus,"Kosmee ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,110,Krokus,Crocus vernus,"Der Krokus ist einer der ersten Fruehjahrsboten mit kelchfoermigen Blueten in Lila, Weiss und Gelb.",Helles bis volles Licht,5-15 °C,7,easy|flowering,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,19,Alpenveilchen,Cyclamen persicum,"Das Alpenveilchen bluet im Herbst und Winter mit eleganten Blueten in Rosa, Rot oder Weiss.",Helles indirektes Licht,12-18 °C,5,flowering,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,71,Zymbidium,Cymbidium lowianum,"Das Zymbidium ist eine robuste Orchidee mit langen, grassartigen Blaettern und eleganten Bluetenrispen.",Helles Licht,12-24 °C,7,flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,68,Dahlie,Dahlia pinnata,Die Dahlie ist eine prachtvolle Sommerblume mit Blueten in allen Groessen und Formen. Sie wird aus Knollen gezogen.,Volles Sonnenlicht,15-25 °C,5,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,215,Flammenbaum,Delonix regia,Flammenbaum ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|large,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,153,Rittersporn,Delphinium elatum,"Rittersporn ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,70,Dendrobium,Dendrobium nobile,"Das Dendrobium ist eine beliebte Zimmerorchidee mit langen Pseudobulben, die im Winter mit Blueten besetzt werden.",Helles indirektes Licht,15-28 °C,10,flowering|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,189,Bartnelke,Dianthus barbatus,"Bartnelke ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,146,Nelke,Dianthus caryophyllus,"Nelke ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,109,Roter Fingerhut,Digitalis purpurea,"Der Rote Fingerhut hat hohe Bluetenstaende mit roehrenfoermigen, gepunkteten Blueten in Rosa. Wichtige Arzneipflanze.",Helles bis volles Licht,10-20 °C,7,flowering|medicinal,medicinal_requires_external_evidence,,,,
|
||||
flowering,constants/lexiconBatch2.ts,106,Sonnenhut,Echinacea purpurea,"Der Sonnenhut ist eine beliebte Heilpflanze mit grossen, pinkfarbenen Blueten. Er staerkt das Immunsystem.",Helles bis volles Licht,15-25 °C,7,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
flowering,constants/lexiconBatch1.ts,84,Koenigin der Nacht,Epiphyllum oxypetalum,"Die Koenigin der Nacht bluet nur eine einzige Nacht lang mit riesigen, intensiv duftenden weissen Blueten.",Indirektes Licht,18-27 °C,7,flowering|succulent,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,186,Kalifornischer Mohn,Eschscholzia californica,"Kalifornischer Mohn ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,19,Christusdorn,Euphorbia milii,Der Christusdorn ist eine sukkulente Wolfsmilch mit stacheligen Zweigen und kleinen roten oder gelben Hochblaettern.,Helles bis volles Licht,15-28 °C,10,easy|flowering|succulent|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,20,Weihnachtsstern,Euphorbia pulcherrima,Der Weihnachtsstern ist die klassische Winterpflanze mit leuchtend roten Hochblaettern. Er steht symbolisch fuer Weihnachten.,Helles indirektes Licht,15-22 °C,7,flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,219,Forsythie,Forsythia x intermedia,Forsythie ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,169,Freesie,Freesia refracta,"Freesie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,33,Fuchsie,Fuchsia hybrida,"Die Fuchsie haengt mit eleganten, zweifarbigen Blueten wie kleine Ohrringe herab. Ideal fuer Ampeln.",Helles indirektes Licht,14-22 °C,3,flowering|hanging,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,60,Triphylla-Fuchsie,Fuchsia triphylla,"Die Triphylla-Fuchsie hat lange, roehrenfoermige, orangefarbe Blueten in haengenden Trauben. Sehr exotisch.",Helles indirektes Licht,15-22 °C,3,flowering|hanging,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,196,Kokardenblume,Gaillardia aristata,"Kokardenblume ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,22,Gardenie,Gardenia jasminoides,"Die Gardenie fasziniert mit cremefarbenen, intensiv duftenden Blueten. Anspruchsvoll in der Pflege.",Helles indirektes Licht,18-23 °C,5,flowering|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,190,Mittagsgold,Gazania rigens,"Mittagsgold ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,32,Blutroter Storchschnabel,Geranium sanguineum,Der Blutrote Storchschnabel ist ein zierlicher Storchschnabel mit intensiv magentafarbenen Blueten.,Helles bis volles Licht,10-25 °C,7,easy|flowering,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,68,Gerbera,Gerbera jamesonii,"Die Gerbera ist eine farbenfrohe Schnittblume mit grossen, sonnenblumenaehnlichen Blueten. Sehr beliebt.",Helles bis volles Licht,15-25 °C,5,flowering|air_purifier|bright_light,air_purifier_requires_external_evidence,,,,
|
||||
flowering,constants/lexiconBatch2.ts,161,Gladiole,Gladiolus hortulanus,"Gladiole ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,96,Gloxinie,Gloxinia speciosa,"Die Gloxinie hat grosse, samtartige Blueten in Violett, Rosa oder Weiss mit farbigen Raendern.",Helles indirektes Licht,18-25 °C,5,flowering|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,36,Guzmania,Guzmania lingulata,"Die Guzmania ist eine Bromelie mit glänzenden, gruenen Blaettern und einem leuchtend roten, sternfoermigen Bluetenstand.",Helles indirektes Licht,18-27 °C,7,flowering|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,119,Zaubernuss,Hamamelis mollis,"Die Zaubernuss bluet im Winter mit fadendunnen, gelben Bluetenkranzeln, die bis -10 Grad standhalten.",Helles bis volles Licht,10-20 °C,10,flowering|medicinal,medicinal_requires_external_evidence,,,,
|
||||
flowering,constants/lexiconBatch2.ts,141,Sonnenblume,Helianthus annuus,"Sonnenblume ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,72,Heliconia,Heliconia psittacorum,"Die Heliconia hat leuchtend orangefarbe oder rote, bootsfoermige Hochblaetter. Eine exotische Tropenpflanze.",Helles bis volles Licht,20-30 °C,5,flowering|bright_light|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,191,Heliotrop,Heliotropium arborescens,"Heliotrop ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,183,Lenzrose,Helleborus orientalis,"Lenzrose ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,182,Taglilie,Hemerocallis fulva,"Taglilie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,21,Hibiskus,Hibiscus rosa-sinensis,"Der Hibiskus begeistert mit grossen, trompetenfoermigen Blueten in Rot, Orange und Rosa.",Volles Sonnenlicht,18-28 °C,3,flowering|bright_light|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,220,Gartenhibiskus,Hibiscus syriacus,Gartenhibiskus ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,105,Ritterstern,Hippeastrum hybrid,"Der Ritterstern beeindruckt im Winter mit riesigen, trompetenfoermigen Blueten in Rot, Pink oder Weiss.",Helles bis volles Licht,18-25 °C,7,flowering|bright_light,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,58,Kleine Wachsblume,Hoya bella,"Die Kleine Wachsblume traegt zierliche, sternfoermige weisse Blueten mit rosa Mitte. Haengende Sukkulente.",Helles indirektes Licht,18-27 °C,10,flowering|succulent|hanging,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,57,Wachsblume,Hoya carnosa,"Die Wachsblume ist eine Kletterpflanze mit dicken, wachsartigen Blaettern und sternfoermigen, duftenden Blueten.",Helles indirektes Licht,16-27 °C,10,easy|flowering|succulent|hanging,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,159,Hasengloeckchen,Hyacinthoides non-scripta,"Hasengloeckchen ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,108,Hyazinthe,Hyacinthus orientalis,"Die Hyazinthe bezaubert mit dichten Bluetenrispen und intensivem Duft in Blau, Rosa, Weiss oder Gelb.",Helles bis volles Licht,10-18 °C,5,easy|flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,148,Hortensie,Hydrangea macrophylla,"Hortensie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Helles bis halbschattiges Licht,8-24 C,4,flowering|bright_light,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,105,Johanniskraut,Hypericum perforatum,Das Johanniskraut hat leuchtend gelbe Blueten und ist ein wichtiges Heilkraut gegen Depressionen und Stimmungstiefs.,Volles Sonnenlicht,10-25 °C,7,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
flowering,constants/lexiconBatch2.ts,176,Gartenbalsamine,Impatiens balsamina,"Gartenbalsamine ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|bright_light,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,59,Neuguinea-Balsamine,Impatiens hawkeri,"Die Neuguinea-Balsamine hat grosse, leuchtende Blueten und ist sehr bluehfreudig. Ideal fuer Terrassen.",Helles indirektes Licht,18-27 °C,3,easy|flowering,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,20,Fleissiges Lieschen,Impatiens walleriana,Das Fleissige Lieschen bluet von Fruehling bis Herbst unermudlich in vielen Farben.,Helles indirektes Licht,16-24 °C,2,easy|flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,156,Prunkwinde,Ipomoea purpurea,"Prunkwinde ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,144,Bart-Iris,Iris germanica,"Bart-Iris ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,211,Jacaranda,Jacaranda mimosifolia,Jacaranda ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|large,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,59,Jasmin,Jasminum polyanthum,"Der Jasmin ist eine Kletterpflanze mit intensiv duftenden, weissen Blueten. Er bluet im Winter und Fruehling.",Helles bis volles Licht,10-22 °C,5,flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,172,Arabischer Jasmin,Jasminum sambac,"Arabischer Jasmin ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|bright_light,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,9,Kalanchoe,Kalanchoe blossfeldiana,"Die Kalanchoe ist eine beliebte Bluehpflanze mit leuchtenden Blueten in Rot, Orange, Gelb oder Rosa.",Helles bis volles Licht,15-25 °C,10,easy|flowering|succulent|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,197,Traenendes Herz,Lamprocapnos spectabilis,"Traenendes Herz ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|bright_light,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,64,Wandelroeschen,Lantana camara,"Das Wandelroeschen hat kugelige Bluetenkoepfe, die die Farbe von Gelb ueber Orange zu Rot wechseln. Sehr attraktiv.",Volles Sonnenlicht,18-28 °C,5,flowering|bright_light|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,158,Duftwicke,Lathyrus odoratus,"Duftwicke ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,180,Bechermalve,Lavatera trimestris,"Bechermalve ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,173,Margerite,Leucanthemum vulgare,"Margerite ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,201,Shasta-Margerite,Leucanthemum x superbum,"Shasta-Margerite ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,69,Ostertrompete,Lilium longiflorum,"Die Ostertrompete hat grosse, weisse, trichterfoermige Blueten mit intensivem Duft. Klassische Osterblume.",Helles bis volles Licht,15-25 °C,5,flowering|bright_light,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,62,Duftsteinrich,Lobularia maritima,"Der Duftsteinrich ist ein niedrig wachsendes Pflanzchen mit winzigen, weissen oder lilafarbenen Blueten und suessem Duft.",Helles bis volles Licht,10-22 °C,3,easy|flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,171,Geissblatt,Lonicera japonica,"Geissblatt ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|bright_light,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,154,Lupine,Lupinus polyphyllus,"Lupine ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,204,Magnolie,Magnolia grandiflora,Magnolie ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|large,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,79,Mammillaria,Mammillaria zeilmanniana,"Die Mammillaria ist ein kompakter, kugelfoermiger Kaktus, der im Fruehling einen Kranz aus rosa Blueten traegt.",Volles Sonnenlicht,15-35 °C,14,easy|flowering|succulent|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,75,Stiefmuetterchen-Orchidee,Miltoniopsis roezlii,"Die Stiefmuetterchen-Orchidee hat grosse, flache Blueten. Bevorzugt kuehle Temperaturen und hohe Luftfeuchtigkeit.",Indirektes Licht,15-22 °C,5,flowering|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,76,Schamkraut,Mimosa pudica,"Das Schamkraut faltet seine Blaettchen blitzschnell zusammen, wenn man sie beruehrt. Ein faszinierendes Erlebnis.",Helles bis volles Licht,20-28 °C,5,flowering|bright_light,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,179,Indianernessel,Monarda didyma,"Indianernessel ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,109,Traubenhyazinthe,Muscari armeniacum,"Die Traubenhyazinthe bildet dichte Trauben aus kleinen, blauen bis violetten Gloeckchen. Zuverlaessige Fruejahrszwiebel.",Helles bis volles Licht,8-18 °C,7,easy|flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,177,Vergissmeinnicht,Myosotis sylvatica,"Vergissmeinnicht ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,106,Osterglocke,Narcissus pseudonarcissus,"Die Osterglocke ist der klassische Fruehjahrsblueher mit leuchtend gelben, trompetenfoermigen Blueten.",Helles bis volles Licht,10-18 °C,5,flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,199,Nemesie,Nemesia strumosa,"Nemesie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,37,Neoregelia,Neoregelia carolinae,"Die Neoregelia ist eine Bromelie, bei der das Herzblatt zur Bluetzeit leuchtend rot wird. Sehr dekorativ.",Helles bis volles Licht,18-27 °C,7,flowering|patterned|bright_light,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,120,Oleander,Nerium oleander,"Der Oleander ist ein mediteraner Strauch mit leuchtend roten, rosa oder weissen Blueten. Sehr hitzetolerant.",Volles Sonnenlicht,15-28 °C,7,flowering|bright_light|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,193,Ziertabak,Nicotiana alata,"Ziertabak ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,74,Tanzerinnen-Orchidee,Oncidium sphacelatum,"Die Tanzerinnen-Orchidee traegt lange Rispen mit Hunderten kleiner, gelb-brauner Blueten. Sehr reichliche Bluetracht.",Helles indirektes Licht,18-27 °C,7,flowering|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,200,Kapmargerite,Osteospermum ecklonis,"Kapmargerite ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,54,Kleeblume,Oxalis triangularis,"Die Kleeblume hat tiefviolette, dreieckige Blaetter und zarte rosa Blueten. Sie faltet die Blaetter bei Dunkelheit.",Helles indirektes Licht,15-24 °C,7,flowering|patterned,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,143,Pfingstrose,Paeonia lactiflora,"Pfingstrose ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,185,Mohn,Papaver rhoeas,"Mohn ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,63,Passionsblume,Passiflora caerulea,"Die Passionsblume ist eine faszinierende Kletterpflanze mit komplex strukturierten, blau-weissen Blueten.",Helles bis volles Licht,15-27 °C,5,flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,61,Efeu-Geranie,Pelargonium peltatum,"Die Efeu-Geranie hat efeufoermige, glaenzende Blaetter und bluet den ganzen Sommer in leuchtenden Farben.",Helles bis volles Licht,15-25 °C,5,easy|flowering|hanging|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,174,Stehende Geranie,Pelargonium zonale,"Stehende Geranie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,34,Petunie,Petunia hybrida,Die Petunie ist eine der beliebtesten Balkonpflanzen mit trichterfoermigen Blueten in unzaehligen Farben.,Volles Sonnenlicht,15-25 °C,2,easy|pet_friendly|flowering|sun,pet_friendly_requires_external_evidence,,,,
|
||||
flowering,constants/lexiconBatch1.ts,69,Schmetterlingsorchidee,Phalaenopsis amabilis,Die Schmetterlingsorchidee ist die bekannteste Zimmerorchidee. Sie bluet bei guter Pflege monatelang.,Helles indirektes Licht,18-28 °C,10,flowering|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,165,Flammenblume,Phlox paniculata,"Flammenblume ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,81,Fettkraut,Pinguicula grandiflora,"Das Fettkraut faengt Insekten mit klebrigen Blaettern. Es bluet mit violetten, sporenartigen Blueten.",Helles indirektes Licht,10-20 °C,5,flowering|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,61,Bleiwurz,Plumbago auriculata,"Die Bleiwurz ist ein halbimmergruener Strauch mit himmelblauen Blueten, der fast das ganze Jahr bluet.",Volles Sonnenlicht,15-27 °C,5,flowering|bright_light|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,118,Tempel-Baum,Plumeria rubra,"Der Tempel-Baum hat intensiv duftende, sternfoermige Blueten in Weiss, Gelb oder Rosa. Klassische Tropenblume.",Volles Sonnenlicht,20-30 °C,7,flowering|tree|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,36,Primel,Primula vulgaris,"Die Primel ist einer der ersten Fruehjahrsboten mit lebhaften Blueten in Gelb, Pink, Rot und Lila.",Helles indirektes Licht,10-18 °C,4,flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,71,Koenigs-Protea,Protea cynaroides,"Die Koenigs-Protea ist die Nationalblume Suedafrikas mit riesigen, imposanten Bluetenkoepfen. Eine echte Besonderheit.",Volles Sonnenlicht,10-25 °C,7,flowering|large|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,88,Granatapfelbaum,Punica granatum,"Der Granatapfelbaum hat leuchtend rote Blueten und rote, essbare Fruechte mit rubinroten Kernen.",Volles Sonnenlicht,15-28 °C,7,flowering|tree|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,162,Ranunkel,Ranunculus asiaticus,"Ranunkel ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,170,Rhododendron,Rhododendron catawbiense,"Rhododendron ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|tree|bright_light,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,91,Japanische Azalee,Rhododendron simsii,"Die Japanische Azalee bluet im Winter und Fruehling ueppig mit leuchtend roten, rosa oder weissen Blueten.",Helles indirektes Licht,10-18 °C,4,flowering,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,66,Chinesische Rose,Rosa chinensis,Die Chinesische Rose ist eine der Stammarten vieler Gartenrosen und bluet fast ununterbrochen.,Volles Sonnenlicht,15-25 °C,5,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,142,Rose,Rosa x hybrida,"Rose ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|bright_light|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,167,Rudbeckie,Rudbeckia hirta,"Rudbeckie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,94,Afrikanisches Veilchen,Saintpaulia ionantha,"Das Afrikanische Veilchen ist eine kleine, kompakte Bluehpflanze mit samtigen Blaettern und violetten Blueten.",Helles indirektes Licht,18-25 °C,7,easy|flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,195,Mehlsalbei,Salvia farinacea,"Mehlsalbei ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,168,Feuersalbei,Salvia splendens,"Feuersalbei ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,112,Schwarzer Holunder,Sambucus nigra,Der Schwarze Holunder hat weisse Doldenbluten und schwarze Beeren. Die Fruechte werden fuer Sirup und Saft verwendet.,Helles bis volles Licht,10-25 °C,7,flowering|tree|medicinal,medicinal_requires_external_evidence,,,,
|
||||
flowering,constants/lexiconBatch1.ts,8,Weihnachtskaktus,Schlumbergera truncata,"Der Weihnachtskaktus erfreut zur Weihnachtszeit mit leuchtenden Blueten in Rosa, Rot oder Weiss.",Helles indirektes Licht,15-21 °C,7,easy|flowering|succulent,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,222,Spierstrauch,Spiraea japonica,Spierstrauch ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,25,Aasblume,Stapelia grandiflora,"Die Aasblume hat fleischige, gruene Staengel und riesige, sternfoermige Blueten mit aasartigem Duft.",Helles bis volles Licht,18-30 °C,14,flowering|succulent|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,60,Madagaskar-Jasmin,Stephanotis floribunda,"Der Madagaskar-Jasmin hat dicke, glaenzende Blaetter und wachsweisse, intensiv duftende Blueten. Klassische Hochzeitsblume.",Helles indirektes Licht,18-25 °C,7,flowering,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,3,Paradiesvogelblume,Strelitzia reginae,"Die Paradiesvogelblume beeindruckt mit leuchtend orangefarbenen und blauen Blueten, die einem Vogel aehneln.",Volles Sonnenlicht,18-26 °C,7,flowering|large|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,95,Drehfrucht,Streptocarpus hybridus,"Die Drehfrucht ist ein Gesneriengewaechs mit langen, gerippten Blaettern und trichterfoermigen Blueten in Lila oder Rosa.",Helles indirektes Licht,15-22 °C,7,flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,166,Herbstaster,Symphyotrichum novi-belgii,"Herbstaster ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,149,Flieder,Syringa vulgaris,"Flieder ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|tree|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,66,Studentenblume,Tagetes patula,Die Studentenblume ist eine robuste Sommerblume mit orangen oder gelben Blueten. Sie haelt Schadlinge fern.,Volles Sonnenlicht,15-28 °C,3,easy|flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,151,Kapuzinerkresse,Tropaeolum majus,"Kapuzinerkresse ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,107,Tulpe,Tulipa gesneriana,Die Tulpe ist eine der beliebtesten Fruehjahrsblueher mit kelchfoermigen Blueten in unzaehligen Farben.,Helles bis volles Licht,8-18 °C,5,easy|flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,104,Baldrian,Valeriana officinalis,Baldrian ist ein bekanntes Heilkraut mit weissen bis roeslichen Blueten. Die Wurzeln werden zur Schlaffoerderung verwendet.,Helles bis volles Licht,15-25 °C,7,flowering|medicinal,medicinal_requires_external_evidence,,,,
|
||||
flowering,constants/lexiconBatch1.ts,72,Vanda-Orchidee,Vanda coerulea,Die Vanda-Orchidee ist bekannt fuer ihre seltene blaue Bluetenfarbe. Epiphytische Orchidee mit grossen Blueten.,Helles bis volles Licht,20-30 °C,3,flowering|bright_light|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,76,Vanille,Vanilla planifolia,"Die Vanille ist eine kletternde Orchidee, aus deren Fruechten das beliebte Gewuerz gewonnen wird.",Helles indirektes Licht,20-30 °C,5,flowering|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,192,Koenigskerze,Verbascum thapsus,"Koenigskerze ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
flowering,constants/lexiconBatch2.ts,164,Eisenkraut,Verbena bonariensis,"Eisenkraut ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,198,Hornveilchen,Viola cornuta,"Hornveilchen ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,35,Stiefmuetterchen,Viola wittrockiana,Das Stiefmuetterchen ist ein bekannter Fruehjahrsblueher mit charakteristisch gezeichneten Blueten.,Helles bis volles Licht,5-18 °C,3,easy|flowering,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,35,Flammen-Bromelie,Vriesea splendens,"Die Flammen-Bromelie hat gebänderte, dunkelgruene Blaetter und einen spektakulaeren, roten Bluetenstand.",Helles indirektes Licht,18-25 °C,7,flowering|patterned|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,221,Weigelie,Weigela florida,Weigelie ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|sun,,,,,
|
||||
flowering,constants/lexiconBatch1.ts,65,Chinesischer Blauregen,Wisteria sinensis,"Der Chinesische Blauregen ist ein ueppiger Kletterkuenstler mit langen, duftenden Bluetentrauben in Lila.",Volles Sonnenlicht,10-25 °C,7,flowering|large|sun,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,70,Calla,Zantedeschia aethiopica,"Die Calla hat elegante, trichterfoermige weisse Hochblaetter und glaenzende, herzfoermige Blaetter. Sehr edel.",Helles indirektes Licht,15-24 °C,7,flowering|high_humidity,,,,,
|
||||
flowering,constants/lexiconBatch2.ts,65,Zinnie,Zinnia elegans,"Die Zinnie ist eine leuchtende Sommerblume mit grossen, dahlienaehnlichen Blueten. Sehr robust und hitzetolerant.",Volles Sonnenlicht,18-30 °C,3,easy|flowering|sun,,,,,
|
||||
hanging,constants/lexiconBatch1.ts,98,Lippenstiftpflanze,Aeschynanthus radicans,Die Lippenstiftpflanze hat haengende Triebe mit glaenzenden Blaettern und leuchtend roten Roehrenbluten.,Helles indirektes Licht,18-27 °C,7,flowering|hanging|high_humidity,,,,,
|
||||
hanging,constants/lexiconBatch2.ts,63,Calibrachoa,Calibrachoa hybrida,"Calibrachoa ist eine petunienaehnliche Haengepflanze mit unzaehligen, kleinen Trichterbluten in allen Farben.",Volles Sonnenlicht,15-25 °C,2,easy|flowering|hanging|sun,,,,,
|
||||
hanging,constants/lexiconBatch2.ts,56,Callisia,Callisia repens,"Callisia repens ist ein kleines, kriechendes Kraut mit winzigen, gruenen Blaettern. Ideal fuer haengende Behaelter.",Helles indirektes Licht,15-25 °C,5,easy|hanging,,,,,
|
||||
hanging,constants/lexiconBatch1.ts,99,Herzkette,Ceropegia woodii,"Die Herzkette hat duenne, haengende Ranken mit herzfoermigen, silbergrau gemusterten Blaettchen.",Helles indirektes Licht,15-27 °C,14,easy|succulent|patterned|hanging,,,,,
|
||||
hanging,constants/lexiconBatch1.ts,97,Columnea,Columnea gloriosa,"Die Columnea ist eine haengende Zimmerpflanze mit kleinen, behaarten Blaettern und leuchtend roten, roehrenfoermigen Blueten.",Helles indirektes Licht,18-25 °C,7,flowering|hanging|high_humidity,,,,,
|
||||
hanging,constants/lexiconBatch2.ts,236,String of Bananas,Curio radicans,String of Bananas ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles bis volles Licht,18-30 C,10,succulent|hanging|sun,,,,,
|
||||
hanging,constants/lexiconBatch2.ts,237,String of Dolphins,Curio x peregrinus,String of Dolphins ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles bis volles Licht,18-30 C,10,succulent|hanging|sun,,,,,
|
||||
hanging,constants/lexiconBatch1.ts,101,Dischidia,Dischidia ruscifolia,"Die Dischidia ist eine epiphytische Haengepflanze mit kleinen, runden Blaettern entlang duenner Ranken.",Helles indirektes Licht,18-27 °C,7,succulent|hanging,,,,,
|
||||
hanging,constants/lexiconBatch1.ts,16,Marmor-Efeutute,Epipremnum aureum Marble Queen,Die Marmor-Efeutute hat cremeweiss-gruen marmorierte Blaetter. Eine dekorative Variante der klassischen Efeutute.,Helles indirektes Licht,15-30 °C,7,easy|hanging|air_purifier,air_purifier_requires_external_evidence,,,,
|
||||
hanging,constants/lexiconBatch2.ts,53,Neon-Efeutute,Epipremnum pinnatum Neon,Die Neon-Efeutute hat leuchtend limonengruene Blaetter. Sehr auffaellig und pflegeleicht.,Helles indirektes Licht,15-30 °C,7,easy|hanging|air_purifier,air_purifier_requires_external_evidence,,,,
|
||||
hanging,constants/lexiconBatch1.ts,33,Fuchsie,Fuchsia hybrida,"Die Fuchsie haengt mit eleganten, zweifarbigen Blueten wie kleine Ohrringe herab. Ideal fuer Ampeln.",Helles indirektes Licht,14-22 °C,3,flowering|hanging,,,,,
|
||||
hanging,constants/lexiconBatch2.ts,60,Triphylla-Fuchsie,Fuchsia triphylla,"Die Triphylla-Fuchsie hat lange, roehrenfoermige, orangefarbe Blueten in haengenden Trauben. Sehr exotisch.",Helles indirektes Licht,15-22 °C,3,flowering|hanging,,,,,
|
||||
hanging,constants/lexiconBatch1.ts,37,Efeu,Hedera helix,"Efeu ist eine robuste Kletter- und Haengepflanze mit charakteristischen, dreilappigen Blaettern. Sehr langlebig.",Wenig bis helles Licht,10-20 °C,7,easy|hanging|air_purifier|low_light,air_purifier_requires_external_evidence,,,,
|
||||
hanging,constants/lexiconBatch1.ts,58,Kleine Wachsblume,Hoya bella,"Die Kleine Wachsblume traegt zierliche, sternfoermige weisse Blueten mit rosa Mitte. Haengende Sukkulente.",Helles indirektes Licht,18-27 °C,10,flowering|succulent|hanging,,,,,
|
||||
hanging,constants/lexiconBatch1.ts,57,Wachsblume,Hoya carnosa,"Die Wachsblume ist eine Kletterpflanze mit dicken, wachsartigen Blaettern und sternfoermigen, duftenden Blueten.",Helles indirektes Licht,16-27 °C,10,easy|flowering|succulent|hanging,,,,,
|
||||
hanging,constants/lexiconBatch1.ts,64,Suesskartoffel,Ipomoea batatas,"Die Suesskartoffel-Zierpflanze hat dekorative, herzfoermige Blaetter in gruen oder dunkelviolett. Ideal als Haengepflanze.",Volles Sonnenlicht,20-30 °C,5,easy|hanging|sun,,,,,
|
||||
hanging,constants/lexiconBatch2.ts,47,Monstera adansonii,Monstera adansonii,Monstera adansonii hat herzfoermige Blaetter mit zahlreichen runden Lochern. Eine rankende Zimmerpflanze.,Helles indirektes Licht,18-27 °C,7,easy|hanging,,,,,
|
||||
hanging,constants/lexiconBatch2.ts,48,Monstera obliqua,Monstera obliqua,"Monstera obliqua ist eine seltene Monstera-Art mit filigranen Blaettern, die hauptsaechlich aus Lochern bestehen.",Helles indirektes Licht,18-27 °C,7,patterned|hanging,,,,,
|
||||
hanging,constants/lexiconBatch2.ts,79,Kannenpflanze,Nepenthes alata,"Die Kannenpflanze bildet grosse, gefuellte Kannen als Insektenfallen. Eine faszinierende, tropische Pflanze.",Helles indirektes Licht,20-30 °C,5,hanging|high_humidity,,,,,
|
||||
hanging,constants/lexiconBatch2.ts,61,Efeu-Geranie,Pelargonium peltatum,"Die Efeu-Geranie hat efeufoermige, glaenzende Blaetter und bluet den ganzen Sommer in leuchtenden Farben.",Helles bis volles Licht,15-25 °C,5,easy|flowering|hanging|sun,,,,,
|
||||
hanging,constants/lexiconBatch2.ts,51,Roter Philodendron,Philodendron erubescens,"Der Rote Philodendron hat glaenzende, herzfoermige Blaetter, die jung roetrlich erscheinen. Sehr dekorativ.",Helles indirektes Licht,18-27 °C,7,easy|hanging,,,,,
|
||||
hanging,constants/lexiconBatch1.ts,15,Herzblatt-Philodendron,Philodendron hederaceum,Der Herzblatt-Philodendron ist eine pflegeleichte Kletter- oder Haengepflanze mit herzfoermigen Blaettern.,Indirektes Licht,18-28 °C,7,easy|hanging|low_light,,,,,
|
||||
hanging,constants/lexiconBatch2.ts,242,Philodendron Brasil,Philodendron hederaceum Brasil,Philodendron Brasil ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,easy|hanging|low_light,,,,,
|
||||
hanging,constants/lexiconBatch2.ts,41,Geweihfarn,Platycerium bifurcatum,"Der Geweihfarn hat gespaltene Wedel, die einem Hirschgeweih aehneln. Er ist ein epiphytischer Farn fuer Holz.",Helles indirektes Licht,15-25 °C,7,hanging|high_humidity,,,,,
|
||||
hanging,constants/lexiconBatch2.ts,52,Mini-Monstera,Rhaphidophora tetrasperma,"Die Mini-Monstera hat monsteraaehnliche, gelochte Blaetter auf einer kompakten, klettternden Pflanze. Sehr trendig.",Helles indirektes Licht,18-27 °C,7,easy|hanging,,,,,
|
||||
hanging,constants/lexiconBatch1.ts,85,Korallenkaktus,Rhipsalis baccifera,"Der Korallenkaktus ist ein epiphytischer Kaktus mit duennen, haengenden Trieben und kleinen weissen Beeren.",Indirektes Licht,18-27 °C,7,succulent|hanging,,,,,
|
||||
hanging,constants/lexiconBatch1.ts,55,Satinpothos,Scindapsus pictus,"Der Satinpothos hat samtig-glaenzende, silbrig gefleckte Blaetter auf langen, haengenden Ranken.",Helles indirektes Licht,18-28 °C,7,easy|patterned|hanging,,,,,
|
||||
hanging,constants/lexiconBatch1.ts,7,Eselschwanz,Sedum morganianum,"Der Eselschwanz ist eine haengende Sukkulente mit langen Trieben aus dichten, blaugruenen Blaettchen.",Volles Sonnenlicht,15-25 °C,14,easy|succulent|hanging|sun,,,,,
|
||||
hanging,constants/lexiconBatch1.ts,100,Perlenschnur-Pflanze,Senecio rowleyanus,"Die Perlenschnur-Pflanze hat haengende Ranken mit kugelfoermigen, perlenaehnlichen Blaettern. Einzigartige Sukkulente.",Helles bis volles Licht,15-27 °C,14,easy|succulent|hanging,,,,,
|
||||
hanging,constants/lexiconBatch1.ts,56,Pfeilblatt,Syngonium podophyllum,"Das Pfeilblatt hat charakteristisch pfeilfoermige Blaetter, die sich mit dem Alter weiterentwickeln.",Helles indirektes Licht,16-27 °C,7,easy|hanging,,,,,
|
||||
hanging,constants/lexiconBatch2.ts,32,Spanisches Moos,Tillandsia usneoides,"Das Spanische Moos ist eine epiphytische Bromelie ohne Wurzeln, die in der Luft haengt. Es benoetigt nur Feuchtigkeitsbespruehing.",Helles bis volles Licht,15-30 °C,3,easy|hanging,,,,,
|
||||
hanging,constants/lexiconBatch2.ts,55,Weisse Tradescantia,Tradescantia fluminensis,Die Weisse Tradescantia hat gruene Blaetter mit weisslichen Unterseiten. Sehr robust und schnellwachsend.,Helles indirektes Licht,15-25 °C,5,easy|hanging,,,,,
|
||||
hanging,constants/lexiconBatch2.ts,54,Lila Tradescantia,Tradescantia pallida,Die Lila Tradescantia hat leuchtend purpurrote Blaetter und ist sehr auffaellig. Sie liebt viel Licht.,Helles bis volles Licht,15-25 °C,5,easy|hanging|sun,,,,,
|
||||
hanging,constants/lexiconBatch1.ts,17,Zebrakraut,Tradescantia zebrina,Das Zebrakraut faellt durch seine silbrig-lila gestreiften Blaetter auf. Schnellwachsende Haengepflanze.,Helles indirektes Licht,15-25 °C,5,easy|patterned|hanging,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,42,Frauenhaarfarn,Adiantum raddianum,"Der Frauenhaarfarn hat zarte, feingliedrige Wedel auf schwarzen, drahtaehnlichen Stielen. Liebt Feuchtigkeit.",Helles indirektes Licht,18-27 °C,3,high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,98,Lippenstiftpflanze,Aeschynanthus radicans,Die Lippenstiftpflanze hat haengende Triebe mit glaenzenden Blaettern und leuchtend roten Roehrenbluten.,Helles indirektes Licht,18-27 °C,7,flowering|hanging|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,46,Amazona-Taro,Alocasia amazonica,"Der Amazona-Taro besticht mit dunkelgruenen, pfeilfoermigen Blaettern mit markant weissen Rippen.",Indirektes Licht,18-27 °C,5,patterned|large|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,225,Alocasia zebrina,Alocasia zebrina,Alocasia zebrina ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5,bright_light|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,73,Muschelingwer,Alpinia zerumbet,"Der Muschelingwer hat lange, elegante Blaetter und haengende Bluetenrispen mit weiss-rosa Bluetchen.",Helles bis volles Licht,20-30 °C,5,flowering|large|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,233,Samt-Anthurie,Anthurium clarinervium,Samt-Anthurie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5,patterned|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,234,Kristall-Anthurie,Anthurium crystallinum,Kristall-Anthurie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5,patterned|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,43,Vogelnest-Farn,Asplenium nidus,"Der Vogelnest-Farn hat ganzrandige, glaenzende Wedel, die eine Nestform bilden. Sehr dekorativ und robust.",Helles indirektes Licht,18-27 °C,5,easy|low_light|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,57,Forellen-Begonie,Begonia maculata,Die Forellen-Begonie hat olivgruene Blaetter mit silbernen Punkten und einer roten Unterseite. Atemberaubend.,Helles indirektes Licht,18-27 °C,7,patterned|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,18,Koenigsbegonie,Begonia rex,"Die Koenigsbegonie beeindruckt mit prachtvoll gemusterten Blaettern in Silber, Rot und Gruen.",Indirektes Licht,18-25 °C,5,patterned|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,58,Knollen-Begonie,Begonia tuberhybrida,"Die Knollen-Begonie hat riesige, rosenaehnliche Blueten in leuchtendem Rot, Orange, Gelb oder Weiss.",Helles indirektes Licht,15-22 °C,5,flowering|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,49,Buntblatt,Caladium bicolor,"Das Buntblatt beeindruckt mit transparenten, bunt gemusterten Blaettern in Pink, Rot, Weiss und Gruen.",Indirektes Licht,20-30 °C,5,patterned|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,73,Cattleya-Orchidee,Cattleya labiata,"Die Cattleya ist die Koenigin der Orchideen mit ueppigen, duftenden Blueten in Lila, Rosa und Weiss.",Helles indirektes Licht,18-28 °C,7,flowering|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,47,Taro,Colocasia esculenta,"Der Taro ist eine tropische Pflanze mit grossen, herzfoermigen Blaettern. Die Knollen sind Nahrungsquelle.",Helles indirektes Licht,18-30 °C,3,large|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,97,Columnea,Columnea gloriosa,"Die Columnea ist eine haengende Zimmerpflanze mit kleinen, behaarten Blaettern und leuchtend roten, roehrenfoermigen Blueten.",Helles indirektes Licht,18-25 °C,7,flowering|hanging|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,39,Cryptanthus,Cryptanthus bivittatus,Cryptanthus ist eine niedrig wachsende Bromelie mit sternfoermigen Rosetten und gemusterten Blaettern. Fuer Terrarien.,Helles indirektes Licht,18-27 °C,7,patterned|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,53,Ctenanthe,Ctenanthe burle-marxii,Die Ctenanthe hat faszinierend gemusterte Blaetter mit dunkelgruunem Fischgraetenmuster auf hellgruunem Hintergrund.,Indirektes Licht,18-25 °C,5,patterned|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,74,Kurkuma,Curcuma longa,Kurkuma ist eine tropische Gewuerzpflanze mit breiten Blaettern und leuchtend gelber Wurzel. Wichtiges Heilgewuerz.,Helles bis volles Licht,20-30 °C,7,medicinal|high_humidity,medicinal_requires_external_evidence,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,9,Paragraphenpflanze,Cyperus alternifolius,"Die Paragraphenpflanze hat lange, grasartige Blaetter, die sternfoermig vom Stiel abstehen. Sie liebt viel Wasser.",Helles bis volles Licht,18-27 °C,3,high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,70,Dendrobium,Dendrobium nobile,"Das Dendrobium ist eine beliebte Zimmerorchidee mit langen Pseudobulben, die im Winter mit Blueten besetzt werden.",Helles indirektes Licht,15-28 °C,10,flowering|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,80,Sonnentau,Drosera capensis,Der Sonnentau faengt Insekten mit klebrigen Tropfen auf seinen Blaettern. Eine faszinierende fleischfressende Pflanze.,Volles Sonnenlicht,15-25 °C,5,high_humidity|sun,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,137,Wasabi,Eutrema japonicum,"Wasabi ist ein seltenes Wuerzkraut, das gleichmaessige Feuchte und eher kuehle Bedingungen bevorzugt.",Helles indirektes Licht,8-20 C,4,bright_light|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,226,Nervenpflanze,Fittonia albivenis,Nervenpflanze ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5,patterned|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,22,Gardenie,Gardenia jasminoides,"Die Gardenie fasziniert mit cremefarbenen, intensiv duftenden Blueten. Anspruchsvoll in der Pflege.",Helles indirektes Licht,18-23 °C,5,flowering|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,96,Gloxinie,Gloxinia speciosa,"Die Gloxinie hat grosse, samtartige Blueten in Violett, Rosa oder Weiss mit farbigen Raendern.",Helles indirektes Licht,18-25 °C,5,flowering|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,240,Calathea lancifolia,Goeppertia insignis,Calathea lancifolia ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5,pet_friendly|patterned|high_humidity,pet_friendly_requires_external_evidence,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,241,Calathea ornata,Goeppertia ornata,Calathea ornata ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5,pet_friendly|patterned|high_humidity,pet_friendly_requires_external_evidence,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,36,Guzmania,Guzmania lingulata,"Die Guzmania ist eine Bromelie mit glänzenden, gruenen Blaettern und einem leuchtend roten, sternfoermigen Bluetenstand.",Helles indirektes Licht,18-27 °C,7,flowering|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,83,Heliamphora,Heliamphora nutans,Heliamphora ist eine urtuemliche Kannenpflanze aus den Tafelbergen Venezuelas. Sehr dekorativ und selten.,Helles indirektes Licht,15-25 °C,5,high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,72,Heliconia,Heliconia psittacorum,"Die Heliconia hat leuchtend orangefarbe oder rote, bootsfoermige Hochblaetter. Eine exotische Tropenpflanze.",Helles bis volles Licht,20-30 °C,5,flowering|bright_light|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,51,Gebet-Pflanze,Maranta leuconeura,Die Gebet-Pflanze faltet ihre gemusterten Blaetter nachts wie Haende zusammen. Faszinierende rote und gruene Muster.,Indirektes Licht,18-27 °C,5,pet_friendly|patterned|high_humidity,pet_friendly_requires_external_evidence,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,46,Tueipelfarn (Microsorum),Microsorum punctatum,"Microsorum punctatum ist ein tropischer Farn mit langen, ungeteilten, glaenzenden Wedeln. Fuer feuchte Standorte.",Helles indirektes Licht,18-27 °C,7,high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,75,Stiefmuetterchen-Orchidee,Miltoniopsis roezlii,"Die Stiefmuetterchen-Orchidee hat grosse, flache Blueten. Bevorzugt kuehle Temperaturen und hohe Luftfeuchtigkeit.",Indirektes Licht,15-22 °C,5,flowering|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,2,Bananenpflanze,Musa acuminata,"Die Bananenpflanze ist eine tropische Staude mit riesigen, glaenzenden Blaettern. Im Zimmer selten fruechttragend.",Helles bis volles Licht,20-30 °C,5,large|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,79,Kannenpflanze,Nepenthes alata,"Die Kannenpflanze bildet grosse, gefuellte Kannen als Insektenfallen. Eine faszinierende, tropische Pflanze.",Helles indirektes Licht,20-30 °C,5,hanging|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,74,Tanzerinnen-Orchidee,Oncidium sphacelatum,"Die Tanzerinnen-Orchidee traegt lange Rispen mit Hunderten kleiner, gelb-brauner Blueten. Sehr reichliche Bluetracht.",Helles indirektes Licht,18-27 °C,7,flowering|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,69,Schmetterlingsorchidee,Phalaenopsis amabilis,Die Schmetterlingsorchidee ist die bekannteste Zimmerorchidee. Sie bluet bei guter Pflege monatelang.,Helles indirektes Licht,18-28 °C,10,flowering|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,49,Philodendron gloriosum,Philodendron gloriosum,"Philodendron gloriosum hat grosse, samtige, herzfoermige Blaetter mit weissen Rippen. Eine atemberaubende Pflanze.",Helles indirektes Licht,18-27 °C,7,patterned|large|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,40,Blaues Kanaelfarn,Phlebodium aureum,"Der Blaue Kanaelfarn hat wachsartige, blaugruene Wedel und glaenzende Wurzelstaemme. Sehr dekorativ.",Helles indirektes Licht,18-27 °C,7,high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,81,Fettkraut,Pinguicula grandiflora,"Das Fettkraut faengt Insekten mit klebrigen Blaettern. Es bluet mit violetten, sporenartigen Blueten.",Helles indirektes Licht,10-20 °C,5,flowering|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,41,Geweihfarn,Platycerium bifurcatum,"Der Geweihfarn hat gespaltene Wedel, die einem Hirschgeweih aehneln. Er ist ein epiphytischer Farn fuer Holz.",Helles indirektes Licht,15-25 °C,7,hanging|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,78,Purpursonnentau,Sarracenia purpurea,Der Purpursonnentau ist eine fleischfressende Kannenpflanze mit purpurroten Kannen. Faengt Insekten.,Volles Sonnenlicht,5-25 °C,3,high_humidity|sun,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,45,Regenbogenmoos,Selaginella uncinata,"Das Regenbogenmoos hat schuppenfoermige Blaetter, die im Licht schillernd irisieren. Dekorativ fuer Terrarien.",Helles indirektes Licht,18-27 °C,5,patterned|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,238,Bubikopf,Soleirolia soleirolii,Bubikopf ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,15-24 C,4,pet_friendly|high_humidity,pet_friendly_requires_external_evidence,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,52,Stromanthe,Stromanthe sanguinea,Die Stromanthe hat dekorative Blaetter mit weissem Muster und leuchtend roter Unterseite. Familie der Marantaceen.,Helles indirektes Licht,18-25 °C,5,patterned|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,82,Wasserschlauch,Utricularia gibba,Der Wasserschlauch ist eine wasserbewohnende fleischfressende Pflanze mit Schlaeuchen als Insektenfallen.,Helles bis volles Licht,15-25 °C,2,high_humidity|sun,,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,72,Vanda-Orchidee,Vanda coerulea,Die Vanda-Orchidee ist bekannt fuer ihre seltene blaue Bluetenfarbe. Epiphytische Orchidee mit grossen Blueten.,Helles bis volles Licht,20-30 °C,3,flowering|bright_light|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch1.ts,76,Vanille,Vanilla planifolia,"Die Vanille ist eine kletternde Orchidee, aus deren Fruechten das beliebte Gewuerz gewonnen wird.",Helles indirektes Licht,20-30 °C,5,flowering|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,35,Flammen-Bromelie,Vriesea splendens,"Die Flammen-Bromelie hat gebänderte, dunkelgruene Blaetter und einen spektakulaeren, roten Bluetenstand.",Helles indirektes Licht,18-25 °C,7,flowering|patterned|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,70,Calla,Zantedeschia aethiopica,"Die Calla hat elegante, trichterfoermige weisse Hochblaetter und glaenzende, herzfoermige Blaetter. Sehr edel.",Helles indirektes Licht,15-24 °C,7,flowering|high_humidity,,,,,
|
||||
high_humidity,constants/lexiconBatch2.ts,75,Ingwer,Zingiber officinale,Ingwer ist eine tropische Gewuerzpflanze mit aromatischen Knollen. Die Blaetter sind schilfartig.,Helles indirektes Licht,20-30 °C,5,medicinal|high_humidity,medicinal_requires_external_evidence,,,,
|
||||
large,constants/lexiconBatch2.ts,212,Spitzahorn,Acer platanoides,Spitzahorn ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
large,constants/lexiconBatch1.ts,11,Agave,Agave americana,"Die Agave ist eine imposante Sukkulente mit steifen, blaugruenen Blaettern mit Stacheln. Sie bluet nur einmal.",Volles Sonnenlicht,10-35 °C,21,succulent|large|sun,,,,,
|
||||
large,constants/lexiconBatch1.ts,46,Amazona-Taro,Alocasia amazonica,"Der Amazona-Taro besticht mit dunkelgruenen, pfeilfoermigen Blaettern mit markant weissen Rippen.",Indirektes Licht,18-27 °C,5,patterned|large|high_humidity,,,,,
|
||||
large,constants/lexiconBatch2.ts,18,Kap-Aloe (ferox),Aloe ferox,"Aloe ferox ist eine grosse, imposante Aloe mit stachligen, blaugruenen Blaettern und leuchtend roten Bluetenaehren.",Volles Sonnenlicht,10-30 °C,14,succulent|large|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
large,constants/lexiconBatch2.ts,73,Muschelingwer,Alpinia zerumbet,"Der Muschelingwer hat lange, elegante Blaetter und haengende Bluetenrispen mit weiss-rosa Bluetchen.",Helles bis volles Licht,20-30 °C,5,flowering|large|high_humidity,,,,,
|
||||
large,constants/lexiconBatch2.ts,7,Bambusrohr,Bambusa vulgaris,Das Bambusrohr ist eine schnell wachsende Bambusart mit gelbgruenen Halmen. Sehr dekorativ und vielseitig nutzbar.,Helles bis volles Licht,15-30 °C,5,easy|large,,,,,
|
||||
large,constants/lexiconBatch2.ts,114,Hange-Birke,Betula pendula,Die Haenge-Birke hat charakteristisch weisse Rinde und haengende Zweige. Die Blaetter werden in der Heilkunde genutzt.,Volles Sonnenlicht,10-25 °C,7,tree|large|medicinal,medicinal_requires_external_evidence,,,,
|
||||
large,constants/lexiconBatch2.ts,67,Blumenschilfrohr,Canna indica,"Das Blumenschilfrohr hat grosse, tropisch wirkende Blaetter und auffaellige Blueten in Rot, Orange oder Gelb.",Volles Sonnenlicht,18-28 °C,5,flowering|large|sun,,,,,
|
||||
large,constants/lexiconBatch2.ts,90,Papaya,Carica papaya,"Die Papaya ist eine tropische Fruchtpflanze mit grossen, gelappten Blaettern und orangen Fruechten.",Volles Sonnenlicht,20-35 °C,5,large|sun,,,,,
|
||||
large,constants/lexiconBatch2.ts,217,Trompetenbaum,Catalpa bignonioides,Trompetenbaum ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
large,constants/lexiconBatch2.ts,208,Zeder,Cedrus libani,Zeder ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
large,constants/lexiconBatch1.ts,81,Peruanischer Fackelkaktus,Cereus peruvianus,"Der Peruanische Fackelkaktus ist ein saeulenfoermiger Kaktus, der im Innenraum bis zu 2 m hoch werden kann.",Volles Sonnenlicht,15-35 °C,21,easy|succulent|large|sun,,,,,
|
||||
large,constants/lexiconBatch1.ts,47,Taro,Colocasia esculenta,"Der Taro ist eine tropische Pflanze mit grossen, herzfoermigen Blaettern. Die Knollen sind Nahrungsquelle.",Helles indirektes Licht,18-30 °C,3,large|high_humidity,,,,,
|
||||
large,constants/lexiconBatch2.ts,209,Zypresse,Cupressus sempervirens,Zypresse ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
large,constants/lexiconBatch2.ts,239,Palmfarn,Cycas revoluta,Palmfarn ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles bis volles Licht,18-30 C,10,tree|large|sun,,,,,
|
||||
large,constants/lexiconBatch2.ts,215,Flammenbaum,Delonix regia,Flammenbaum ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|large,,,,,
|
||||
large,constants/lexiconBatch1.ts,39,Geigenfeige,Ficus lyrata,"Die Geigenfeige ist ein Trendbaum mit grossen, geigenfoermigen Blaettern. Benoetigt viel Licht.",Helles indirektes Licht,18-27 °C,7,tree|large|bright_light,,,,,
|
||||
large,constants/lexiconBatch2.ts,211,Jacaranda,Jacaranda mimosifolia,Jacaranda ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|large,,,,,
|
||||
large,constants/lexiconBatch2.ts,204,Magnolie,Magnolia grandiflora,Magnolie ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|large,,,,,
|
||||
large,constants/lexiconBatch2.ts,2,Bananenpflanze,Musa acuminata,"Die Bananenpflanze ist eine tropische Staude mit riesigen, glaenzenden Blaettern. Im Zimmer selten fruechttragend.",Helles bis volles Licht,20-30 °C,5,large|high_humidity,,,,,
|
||||
large,constants/lexiconBatch2.ts,50,Philodendron bipinnatifidum,Philodendron bipinnatifidum,"Philodendron bipinnatifidum hat grosse, tief gelappte Blaetter. Er entwickelt einen beeindruckenden, baumfoermigen Wuchs.",Helles indirektes Licht,18-27 °C,7,easy|large,,,,,
|
||||
large,constants/lexiconBatch2.ts,49,Philodendron gloriosum,Philodendron gloriosum,"Philodendron gloriosum hat grosse, samtige, herzfoermige Blaetter mit weissen Rippen. Eine atemberaubende Pflanze.",Helles indirektes Licht,18-27 °C,7,patterned|large|high_humidity,,,,,
|
||||
large,constants/lexiconBatch2.ts,8,Goldener Bambus,Phyllostachys aurea,"Der Goldene Bambus hat elegante, goldgelbe Halme mit engstehenden Knoten. Sehr dekorativ als Sichtschutz.",Helles bis volles Licht,10-30 °C,5,easy|large,,,,,
|
||||
large,constants/lexiconBatch2.ts,207,Fichte,Picea abies,Fichte ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
large,constants/lexiconBatch2.ts,206,Kiefer,Pinus sylvestris,Kiefer ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
large,constants/lexiconBatch2.ts,71,Koenigs-Protea,Protea cynaroides,"Die Koenigs-Protea ist die Nationalblume Suedafrikas mit riesigen, imposanten Bluetenkoepfen. Eine echte Besonderheit.",Volles Sonnenlicht,10-25 °C,7,flowering|large|sun,,,,,
|
||||
large,constants/lexiconBatch2.ts,205,Eiche,Quercus robur,Eiche ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
large,constants/lexiconBatch2.ts,214,Robinie,Robinia pseudoacacia,Robinie ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
large,constants/lexiconBatch2.ts,113,Silber-Weide,Salix alba,"Die Silber-Weide hat silbrig-glaenzende Blaetter. Weidenrinde enthält Salicylsaeure, die Grundlage von Aspirin.",Helles bis volles Licht,10-25 °C,7,tree|large|medicinal,medicinal_requires_external_evidence,,,,
|
||||
large,constants/lexiconBatch2.ts,11,Grosse Strahlenaralie,Schefflera actinophylla,"Die Grosse Strahlenaralie kann grosse, handfoermige Blaetter entwickeln. Sie ist ideal als Zimmerstrauch.",Helles indirektes Licht,18-27 °C,7,easy|tree|large,,,,,
|
||||
large,constants/lexiconBatch2.ts,213,Eberesche,Sorbus aucuparia,Eberesche ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
large,constants/lexiconBatch2.ts,1,Weisse Strelitzie,Strelitzia nicolai,"Die Weisse Strelitzie ist ein beeindruckender Zimmerstrauch mit grossen, blaugruenen Blaettern und weiss-blauen Blueten.",Helles bis volles Licht,18-27 °C,7,tree|large|bright_light,,,,,
|
||||
large,constants/lexiconBatch1.ts,3,Paradiesvogelblume,Strelitzia reginae,"Die Paradiesvogelblume beeindruckt mit leuchtend orangefarbenen und blauen Blueten, die einem Vogel aehneln.",Volles Sonnenlicht,18-26 °C,7,flowering|large|sun,,,,,
|
||||
large,constants/lexiconBatch2.ts,5,Mexikanische Fächerpalme,Washingtonia robusta,"Die Mexikanische Fächerpalme ist eine schlanke, hohe Palme mit faecherfoermigen Blaettern. Sehr hitzetolerant.",Volles Sonnenlicht,15-35 °C,10,tree|large|sun,,,,,
|
||||
large,constants/lexiconBatch1.ts,65,Chinesischer Blauregen,Wisteria sinensis,"Der Chinesische Blauregen ist ein ueppiger Kletterkuenstler mit langen, duftenden Bluetentrauben in Lila.",Volles Sonnenlicht,10-25 °C,7,flowering|large|sun,,,,,
|
||||
low_light,constants/lexiconBatch1.ts,50,Aglaoneme,Aglaonema commutatum,Die Aglaoneme ist eine dekorative Zimmerpflanze mit silbrig-gruen gemusterten Blaettern. Tolerant gegenueber wenig Licht.,Wenig bis helles Licht,15-26 °C,7,easy|patterned|low_light,,,,,
|
||||
low_light,constants/lexiconBatch2.ts,16,Schusterpflanze,Aspidistra elatior,"Die Schusterpflanze ist eine extrem robuste Zimmerpflanze mit langen, dunkelgruenen Blaettern. Vertraegt tiefe Temperaturen.",Wenig bis helles Licht,10-20 °C,14,easy|low_light,,,,,
|
||||
low_light,constants/lexiconBatch2.ts,43,Vogelnest-Farn,Asplenium nidus,"Der Vogelnest-Farn hat ganzrandige, glaenzende Wedel, die eine Nestform bilden. Sehr dekorativ und robust.",Helles indirektes Licht,18-27 °C,5,easy|low_light|high_humidity,,,,,
|
||||
low_light,constants/lexiconBatch2.ts,13,Japanische Aucube,Aucuba japonica,"Die Japanische Aucube hat glaenzende, gruene oder gelbgefleckte Blaetter. Sehr schattenvertraeglich.",Wenig bis helles Licht,10-20 °C,7,easy|low_light,,,,,
|
||||
low_light,constants/lexiconBatch1.ts,43,Bergpalme,Chamaedorea elegans,Die Bergpalme ist eine kompakte Zimmerpalme fuer schattigere Standorte. Ideal fuer dunkle Innenraeume.,Wenig bis helles Licht,15-25 °C,7,easy|pet_friendly|tree|air_purifier|low_light,air_purifier_requires_external_evidence|pet_friendly_requires_external_evidence,,,,
|
||||
low_light,constants/lexiconBatch1.ts,48,Dieffenbachie,Dieffenbachia seguine,"Die Dieffenbachie ist eine tropische Blattschmuckpflanze mit grossen, gruen-weiss gefleckten Blaettern.",Helles indirektes Licht,18-26 °C,7,easy|air_purifier|low_light,air_purifier_requires_external_evidence,,,,
|
||||
low_light,constants/lexiconBatch1.ts,14,Maisstrauch,Dracaena fragrans,"Der Maisstrauch ist eine robuste Zimmerpflanze mit breiten, gestreiften Blaettern. Gedeiht auch bei wenig Licht.",Helles indirektes Licht,15-25 °C,10,easy|tree|air_purifier|low_light,air_purifier_requires_external_evidence,,,,
|
||||
low_light,constants/lexiconBatch2.ts,12,Fatsia,Fatsia japonica,"Die Fatsia ist ein dekorativer Zimmerstrauch mit grossen, handfoermigen, glaenzenden Blaettern. Sehr robust.",Helles indirektes Licht,10-20 °C,7,easy|low_light,,,,,
|
||||
low_light,constants/lexiconBatch1.ts,90,Gasteria,Gasteria carinata,"Die Gasteria ist eine kleine Sukkulente mit zweireihig angeordneten, zungenfoermigen, gefleckten Blaettern.",Helles indirektes Licht,15-25 °C,14,easy|succulent|low_light,,,,,
|
||||
low_light,constants/lexiconBatch1.ts,6,Zebra-Haworthie,Haworthia fasciata,Die Zebra-Haworthie ist eine kompakte Sukkulente mit weissen Querstreifen auf dunkelgruenen Blaettern.,Helles indirektes Licht,15-25 °C,14,easy|succulent|low_light,,,,,
|
||||
low_light,constants/lexiconBatch1.ts,37,Efeu,Hedera helix,"Efeu ist eine robuste Kletter- und Haengepflanze mit charakteristischen, dreilappigen Blaettern. Sehr langlebig.",Wenig bis helles Licht,10-20 °C,7,easy|hanging|air_purifier|low_light,air_purifier_requires_external_evidence,,,,
|
||||
low_light,constants/lexiconBatch2.ts,3,Kentia-Palme,Howea forsteriana,"Die Kentia-Palme ist eine der elegantesten Zimmerpalmen mit langen, herabhängenden Fiederblaettern.",Helles indirektes Licht,18-25 °C,7,pet_friendly|tree|low_light,pet_friendly_requires_external_evidence,,,,
|
||||
low_light,constants/lexiconBatch1.ts,103,Spiegelpeperomie,Peperomia obtusifolia,"Die Spiegelpeperomie hat glaenzende, lederartige, oval-runde Blaetter in tiefem Gruen. Sehr robust.",Helles indirektes Licht,16-26 °C,10,easy|pet_friendly|low_light,pet_friendly_requires_external_evidence,,,,
|
||||
low_light,constants/lexiconBatch1.ts,15,Herzblatt-Philodendron,Philodendron hederaceum,Der Herzblatt-Philodendron ist eine pflegeleichte Kletter- oder Haengepflanze mit herzfoermigen Blaettern.,Indirektes Licht,18-28 °C,7,easy|hanging|low_light,,,,,
|
||||
low_light,constants/lexiconBatch2.ts,242,Philodendron Brasil,Philodendron hederaceum Brasil,Philodendron Brasil ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,easy|hanging|low_light,,,,,
|
||||
low_light,constants/lexiconBatch1.ts,45,Stab-Palme,Rhapis excelsa,"Die Stab-Palme ist eine elegante Zimmerpalme mit faecherfoermigen Blaettern auf duennen, bambusartigen Staemmen.",Helles indirektes Licht,15-25 °C,7,tree|low_light,,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,108,Schafgarbe,Achillea millefolium,Die Schafgarbe hat weisse oder rosafarbene Bluetenschirme und fein gefiederte Blaetter. Wichtige Heilpflanze.,Volles Sonnenlicht,10-25 °C,7,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch1.ts,89,Kap-Aloe,Aloe arborescens,"Die Kap-Aloe ist eine strauchige Aloe mit schmalen, gezaehnten Blaettern und leuchtend roten Bluetenaehren im Winter.",Volles Sonnenlicht,10-30 °C,14,easy|succulent|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,18,Kap-Aloe (ferox),Aloe ferox,"Aloe ferox ist eine grosse, imposante Aloe mit stachligen, blaugruenen Blaettern und leuchtend roten Bluetenaehren.",Volles Sonnenlicht,10-30 °C,14,succulent|large|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,107,Arnika,Arnica montana,Arnika ist eine bekannte Heilpflanze aus den Alpen mit goldgelben Korbbluten. Sie wird fuer Muskeln und Gelenke verwendet.,Volles Sonnenlicht,10-20 °C,7,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,110,Wermut,Artemisia absinthium,"Wermut ist ein stark aromatisches Heilkraut mit silbrig-gruenen, tief eingeschnittenen Blaettern. Fuer Kraeuterlikoere.",Volles Sonnenlicht,10-25 °C,14,medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,114,Hange-Birke,Betula pendula,Die Haenge-Birke hat charakteristisch weisse Rinde und haengende Zweige. Die Blaetter werden in der Heilkunde genutzt.,Volles Sonnenlicht,10-25 °C,7,tree|large|medicinal,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,187,Ringelblume,Calendula officinalis,"Ringelblume ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,92,Chili,Capsicum annuum,"Chili ist eine beliebte Gemuese- und Zierpflanze mit leuchtenden, roten oder orangen Fruechten. Im Topf kultivierbar.",Volles Sonnenlicht,20-30 °C,4,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,138,Roemische Kamille,Chamaemelum nobile,Roemische Kamille ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,101,Kamille,Chamomilla recutita,"Die Kamille ist ein beliebtes Heilkraut mit kleinen, weiss-gelben Blueten. Das aetherische Oel wirkt beruhigend.",Volles Sonnenlicht,15-25 °C,5,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,160,Maigloeckchen,Convallaria majalis,"Maigloeckchen ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|medicinal,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,74,Kurkuma,Curcuma longa,Kurkuma ist eine tropische Gewuerzpflanze mit breiten Blaettern und leuchtend gelber Wurzel. Wichtiges Heilgewuerz.,Helles bis volles Licht,20-30 °C,7,medicinal|high_humidity,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,109,Roter Fingerhut,Digitalis purpurea,"Der Rote Fingerhut hat hohe Bluetenstaende mit roehrenfoermigen, gepunkteten Blueten in Rosa. Wichtige Arzneipflanze.",Helles bis volles Licht,10-20 °C,7,flowering|medicinal,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,106,Sonnenhut,Echinacea purpurea,"Der Sonnenhut ist eine beliebte Heilpflanze mit grossen, pinkfarbenen Blueten. Er staerkt das Immunsystem.",Helles bis volles Licht,15-25 °C,7,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,210,Eukalyptus,Eucalyptus globulus,Eukalyptus ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,216,Ginkgo,Ginkgo biloba,Ginkgo ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,119,Zaubernuss,Hamamelis mollis,"Die Zaubernuss bluet im Winter mit fadendunnen, gelben Bluetenkranzeln, die bis -10 Grad standhalten.",Helles bis volles Licht,10-20 °C,10,flowering|medicinal,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,105,Johanniskraut,Hypericum perforatum,Das Johanniskraut hat leuchtend gelbe Blueten und ist ein wichtiges Heilkraut gegen Depressionen und Stimmungstiefs.,Volles Sonnenlicht,10-25 °C,7,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch1.ts,23,Echter Lavendel,Lavandula angustifolia,Der Echte Lavendel ist ein aromatischer Halbstrauch mit lilafarbenen Bluetenaehren. Herrlicher Duft.,Volles Sonnenlicht,10-25 °C,10,medicinal|bright_light|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,102,Zitronenmelisse,Melissa officinalis,Die Zitronenmelisse ist ein zitronig duftendes Heilkraut. Sie beruhigt die Nerven und foerdert den Schlaf.,Helles bis volles Licht,15-25 °C,5,easy|medicinal,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch1.ts,25,Basilikum,Ocimum basilicum,"Basilikum ist das beliebteste Kuechenkraut mit intensiv aromatischen, gruenen Blaettern. Fuer Pesto verwendet.",Volles Sonnenlicht,18-30 °C,2,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch1.ts,28,Oregano,Origanum vulgare,"Oregano ist ein aromatisches Kuechenkraut mit runden, behaarten Blaettern. In mediterraner Kueche beliebt.",Volles Sonnenlicht,15-25 °C,7,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch1.ts,31,Rosengeranie,Pelargonium graveolens,Die Rosengeranie ist eine Duftpflanze mit tief eingeschnittenen Blaettern und rosaenlichem Aroma.,Volles Sonnenlicht,15-25 °C,7,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch1.ts,24,Rosmarin,Rosmarinus officinalis,Rosmarin ist ein aromatisches Kraut mit nadelartigen Blaettern und blauen Blueten. In der Kueche unverzichtbar.,Volles Sonnenlicht,10-25 °C,7,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,113,Silber-Weide,Salix alba,"Die Silber-Weide hat silbrig-glaenzende Blaetter. Weidenrinde enthält Salicylsaeure, die Grundlage von Aspirin.",Helles bis volles Licht,10-25 °C,7,tree|large|medicinal,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,103,Salbei,Salvia officinalis,Salbei ist ein aromatisches Heilkraut mit silbrig-gruenen Blaettern. Er hat antibakterielle und entzuendungshemmende Wirkung.,Volles Sonnenlicht,10-25 °C,7,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,112,Schwarzer Holunder,Sambucus nigra,Der Schwarze Holunder hat weisse Doldenbluten und schwarze Beeren. Die Fruechte werden fuer Sirup und Saft verwendet.,Helles bis volles Licht,10-25 °C,7,flowering|tree|medicinal,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch1.ts,27,Thymian,Thymus vulgaris,"Thymian ist ein kleiner, aromatischer Strauch mit winzigen Blaettern und rosa Blueten. Wichtiges Kuechenkraut.",Volles Sonnenlicht,10-25 °C,7,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,111,Grosse Brennessel,Urtica dioica,Die Grosse Brennessel ist eine Heilpflanze mit brennenden Haaren. Die Blaetter sind reich an Vitaminen und Mineralien.,Helles bis volles Licht,10-25 °C,7,medicinal,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,104,Baldrian,Valeriana officinalis,Baldrian ist ein bekanntes Heilkraut mit weissen bis roeslichen Blueten. Die Wurzeln werden zur Schlaffoerderung verwendet.,Helles bis volles Licht,15-25 °C,7,flowering|medicinal,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,192,Koenigskerze,Verbascum thapsus,"Koenigskerze ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
medicinal,constants/lexiconBatch2.ts,75,Ingwer,Zingiber officinale,Ingwer ist eine tropische Gewuerzpflanze mit aromatischen Knollen. Die Blaetter sind schilfartig.,Helles indirektes Licht,20-30 °C,5,medicinal|high_humidity,medicinal_requires_external_evidence,,,,
|
||||
patterned,constants/lexiconBatch2.ts,34,Silbervase,Aechmea fasciata,Die Silbervase ist eine Bromelie mit silbrig gebänderten Blaettern und einem rosafarbenen Bluetenstand.,Helles indirektes Licht,18-25 °C,10,flowering|patterned,,,,,
|
||||
patterned,constants/lexiconBatch1.ts,50,Aglaoneme,Aglaonema commutatum,Die Aglaoneme ist eine dekorative Zimmerpflanze mit silbrig-gruen gemusterten Blaettern. Tolerant gegenueber wenig Licht.,Wenig bis helles Licht,15-26 °C,7,easy|patterned|low_light,,,,,
|
||||
patterned,constants/lexiconBatch1.ts,46,Amazona-Taro,Alocasia amazonica,"Der Amazona-Taro besticht mit dunkelgruenen, pfeilfoermigen Blaettern mit markant weissen Rippen.",Indirektes Licht,18-27 °C,5,patterned|large|high_humidity,,,,,
|
||||
patterned,constants/lexiconBatch2.ts,233,Samt-Anthurie,Anthurium clarinervium,Samt-Anthurie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5,patterned|high_humidity,,,,,
|
||||
patterned,constants/lexiconBatch2.ts,234,Kristall-Anthurie,Anthurium crystallinum,Kristall-Anthurie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5,patterned|high_humidity,,,,,
|
||||
patterned,constants/lexiconBatch2.ts,57,Forellen-Begonie,Begonia maculata,Die Forellen-Begonie hat olivgruene Blaetter mit silbernen Punkten und einer roten Unterseite. Atemberaubend.,Helles indirektes Licht,18-27 °C,7,patterned|high_humidity,,,,,
|
||||
patterned,constants/lexiconBatch1.ts,18,Koenigsbegonie,Begonia rex,"Die Koenigsbegonie beeindruckt mit prachtvoll gemusterten Blaettern in Silber, Rot und Gruen.",Indirektes Licht,18-25 °C,5,patterned|high_humidity,,,,,
|
||||
patterned,constants/lexiconBatch1.ts,49,Buntblatt,Caladium bicolor,"Das Buntblatt beeindruckt mit transparenten, bunt gemusterten Blaettern in Pink, Rot, Weiss und Gruen.",Indirektes Licht,20-30 °C,5,patterned|high_humidity,,,,,
|
||||
patterned,constants/lexiconBatch1.ts,99,Herzkette,Ceropegia woodii,"Die Herzkette hat duenne, haengende Ranken mit herzfoermigen, silbergrau gemusterten Blaettchen.",Helles indirektes Licht,15-27 °C,14,easy|succulent|patterned|hanging,,,,,
|
||||
patterned,constants/lexiconBatch2.ts,224,Kroton,Codiaeum variegatum,Kroton ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,patterned|bright_light,,,,,
|
||||
patterned,constants/lexiconBatch2.ts,39,Cryptanthus,Cryptanthus bivittatus,Cryptanthus ist eine niedrig wachsende Bromelie mit sternfoermigen Rosetten und gemusterten Blaettern. Fuer Terrarien.,Helles indirektes Licht,18-27 °C,7,patterned|high_humidity,,,,,
|
||||
patterned,constants/lexiconBatch1.ts,53,Ctenanthe,Ctenanthe burle-marxii,Die Ctenanthe hat faszinierend gemusterte Blaetter mit dunkelgruunem Fischgraetenmuster auf hellgruunem Hintergrund.,Indirektes Licht,18-25 °C,5,patterned|high_humidity,,,,,
|
||||
patterned,constants/lexiconBatch2.ts,226,Nervenpflanze,Fittonia albivenis,Nervenpflanze ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5,patterned|high_humidity,,,,,
|
||||
patterned,constants/lexiconBatch2.ts,240,Calathea lancifolia,Goeppertia insignis,Calathea lancifolia ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5,pet_friendly|patterned|high_humidity,pet_friendly_requires_external_evidence,,,,
|
||||
patterned,constants/lexiconBatch2.ts,241,Calathea ornata,Goeppertia ornata,Calathea ornata ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5,pet_friendly|patterned|high_humidity,pet_friendly_requires_external_evidence,,,,
|
||||
patterned,constants/lexiconBatch2.ts,227,Punktblatt,Hypoestes phyllostachya,Punktblatt ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,patterned|bright_light,,,,,
|
||||
patterned,constants/lexiconBatch1.ts,51,Gebet-Pflanze,Maranta leuconeura,Die Gebet-Pflanze faltet ihre gemusterten Blaetter nachts wie Haende zusammen. Faszinierende rote und gruene Muster.,Indirektes Licht,18-27 °C,5,pet_friendly|patterned|high_humidity,pet_friendly_requires_external_evidence,,,,
|
||||
patterned,constants/lexiconBatch2.ts,48,Monstera obliqua,Monstera obliqua,"Monstera obliqua ist eine seltene Monstera-Art mit filigranen Blaettern, die hauptsaechlich aus Lochern bestehen.",Helles indirektes Licht,18-27 °C,7,patterned|hanging,,,,,
|
||||
patterned,constants/lexiconBatch2.ts,37,Neoregelia,Neoregelia carolinae,"Die Neoregelia ist eine Bromelie, bei der das Herzblatt zur Bluetzeit leuchtend rot wird. Sehr dekorativ.",Helles bis volles Licht,18-27 °C,7,flowering|patterned|bright_light,,,,,
|
||||
patterned,constants/lexiconBatch1.ts,54,Kleeblume,Oxalis triangularis,"Die Kleeblume hat tiefviolette, dreieckige Blaetter und zarte rosa Blueten. Sie faltet die Blaetter bei Dunkelheit.",Helles indirektes Licht,15-24 °C,7,flowering|patterned,,,,,
|
||||
patterned,constants/lexiconBatch2.ts,6,Schraubenbaum,Pandanus veitchii,"Der Schraubenbaum hat spiralfoermig angeordnete, gruenweiss gestreifte Blaetter. Sehr dekorativ und exotisch.",Helles bis volles Licht,18-27 °C,7,patterned|bright_light,,,,,
|
||||
patterned,constants/lexiconBatch2.ts,229,Wassermelonen-Peperomie,Peperomia argyreia,Wassermelonen-Peperomie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,pet_friendly|patterned,pet_friendly_requires_external_evidence,,,,
|
||||
patterned,constants/lexiconBatch2.ts,243,Philodendron Pink Princess,Philodendron erubescens Pink Princess,Philodendron Pink Princess ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,patterned|bright_light,,,,,
|
||||
patterned,constants/lexiconBatch2.ts,49,Philodendron gloriosum,Philodendron gloriosum,"Philodendron gloriosum hat grosse, samtige, herzfoermige Blaetter mit weissen Rippen. Eine atemberaubende Pflanze.",Helles indirektes Licht,18-27 °C,7,patterned|large|high_humidity,,,,,
|
||||
patterned,constants/lexiconBatch2.ts,228,Aluminium-Pflanze,Pilea cadierei,Aluminium-Pflanze ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,easy|pet_friendly|patterned,pet_friendly_requires_external_evidence,,,,
|
||||
patterned,constants/lexiconBatch2.ts,152,Buntnessel,Plectranthus scutellarioides,"Buntnessel ist eine farbstarke Zierpflanze, die vor allem fuer ihr dekoratives Laub beliebt ist.",Volles bis helles Licht,10-24 C,4,patterned|bright_light,,,,,
|
||||
patterned,constants/lexiconBatch1.ts,55,Satinpothos,Scindapsus pictus,"Der Satinpothos hat samtig-glaenzende, silbrig gefleckte Blaetter auf langen, haengenden Ranken.",Helles indirektes Licht,18-28 °C,7,easy|patterned|hanging,,,,,
|
||||
patterned,constants/lexiconBatch2.ts,45,Regenbogenmoos,Selaginella uncinata,"Das Regenbogenmoos hat schuppenfoermige Blaetter, die im Licht schillernd irisieren. Dekorativ fuer Terrarien.",Helles indirektes Licht,18-27 °C,5,patterned|high_humidity,,,,,
|
||||
patterned,constants/lexiconBatch1.ts,52,Stromanthe,Stromanthe sanguinea,Die Stromanthe hat dekorative Blaetter mit weissem Muster und leuchtend roter Unterseite. Familie der Marantaceen.,Helles indirektes Licht,18-25 °C,5,patterned|high_humidity,,,,,
|
||||
patterned,constants/lexiconBatch1.ts,17,Zebrakraut,Tradescantia zebrina,Das Zebrakraut faellt durch seine silbrig-lila gestreiften Blaetter auf. Schnellwachsende Haengepflanze.,Helles indirektes Licht,15-25 °C,5,easy|patterned|hanging,,,,,
|
||||
patterned,constants/lexiconBatch2.ts,35,Flammen-Bromelie,Vriesea splendens,"Die Flammen-Bromelie hat gebänderte, dunkelgruene Blaetter und einen spektakulaeren, roten Bluetenstand.",Helles indirektes Licht,18-25 °C,7,flowering|patterned|high_humidity,,,,,
|
||||
pet_friendly,constants/lexiconBatch1.ts,43,Bergpalme,Chamaedorea elegans,Die Bergpalme ist eine kompakte Zimmerpalme fuer schattigere Standorte. Ideal fuer dunkle Innenraeume.,Wenig bis helles Licht,15-25 °C,7,easy|pet_friendly|tree|air_purifier|low_light,air_purifier_requires_external_evidence|pet_friendly_requires_external_evidence,,,,
|
||||
pet_friendly,constants/lexiconBatch1.ts,42,Goldfruchtpalme,Dypsis lutescens,Die Goldfruchtpalme ist eine elegante Zimmerpalme mit gelblich-gruenen Stielen und gefiederten Wedeln.,Helles indirektes Licht,18-27 °C,5,pet_friendly|tree|air_purifier,air_purifier_requires_external_evidence|pet_friendly_requires_external_evidence,,,,
|
||||
pet_friendly,constants/lexiconBatch2.ts,100,Erdbeere,Fragaria ananassa,"Die Erdbeere ist ein beliebtes Obst fuer Balkon und Terrasse mit aromatischen, roten Fruechten.",Helles bis volles Licht,15-25 °C,3,easy|pet_friendly|sun,pet_friendly_requires_external_evidence,,,,
|
||||
pet_friendly,constants/lexiconBatch2.ts,240,Calathea lancifolia,Goeppertia insignis,Calathea lancifolia ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5,pet_friendly|patterned|high_humidity,pet_friendly_requires_external_evidence,,,,
|
||||
pet_friendly,constants/lexiconBatch2.ts,241,Calathea ornata,Goeppertia ornata,Calathea ornata ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-28 C,5,pet_friendly|patterned|high_humidity,pet_friendly_requires_external_evidence,,,,
|
||||
pet_friendly,constants/lexiconBatch2.ts,3,Kentia-Palme,Howea forsteriana,"Die Kentia-Palme ist eine der elegantesten Zimmerpalmen mit langen, herabhängenden Fiederblaettern.",Helles indirektes Licht,18-25 °C,7,pet_friendly|tree|low_light,pet_friendly_requires_external_evidence,,,,
|
||||
pet_friendly,constants/lexiconBatch1.ts,51,Gebet-Pflanze,Maranta leuconeura,Die Gebet-Pflanze faltet ihre gemusterten Blaetter nachts wie Haende zusammen. Faszinierende rote und gruene Muster.,Indirektes Licht,18-27 °C,5,pet_friendly|patterned|high_humidity,pet_friendly_requires_external_evidence,,,,
|
||||
pet_friendly,constants/lexiconBatch2.ts,229,Wassermelonen-Peperomie,Peperomia argyreia,Wassermelonen-Peperomie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,pet_friendly|patterned,pet_friendly_requires_external_evidence,,,,
|
||||
pet_friendly,constants/lexiconBatch1.ts,102,Rippenpeperomie,Peperomia caperata,"Die Rippenpeperomie hat tief gerippte, dunkelgruene bis violette Blaetter mit einer samtigen Textur.",Helles indirektes Licht,18-26 °C,10,easy|pet_friendly,pet_friendly_requires_external_evidence,,,,
|
||||
pet_friendly,constants/lexiconBatch1.ts,103,Spiegelpeperomie,Peperomia obtusifolia,"Die Spiegelpeperomie hat glaenzende, lederartige, oval-runde Blaetter in tiefem Gruen. Sehr robust.",Helles indirektes Licht,16-26 °C,10,easy|pet_friendly|low_light,pet_friendly_requires_external_evidence,,,,
|
||||
pet_friendly,constants/lexiconBatch2.ts,230,Raindrop-Peperomie,Peperomia polybotrya,Raindrop-Peperomie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,easy|pet_friendly,pet_friendly_requires_external_evidence,,,,
|
||||
pet_friendly,constants/lexiconBatch1.ts,34,Petunie,Petunia hybrida,Die Petunie ist eine der beliebtesten Balkonpflanzen mit trichterfoermigen Blueten in unzaehligen Farben.,Volles Sonnenlicht,15-25 °C,2,easy|pet_friendly|flowering|sun,pet_friendly_requires_external_evidence,,,,
|
||||
pet_friendly,constants/lexiconBatch2.ts,228,Aluminium-Pflanze,Pilea cadierei,Aluminium-Pflanze ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,easy|pet_friendly|patterned,pet_friendly_requires_external_evidence,,,,
|
||||
pet_friendly,constants/lexiconBatch1.ts,2,Ufopflanze,Pilea peperomioides,"Die Ufopflanze hat unverwechselbare, runde Blaetter auf langen Stielen. Bildet leicht Ableger zum Verschenken.",Helles indirektes Licht,13-30 °C,7,easy|pet_friendly,pet_friendly_requires_external_evidence,,,,
|
||||
pet_friendly,constants/lexiconBatch2.ts,238,Bubikopf,Soleirolia soleirolii,Bubikopf ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,15-24 C,4,pet_friendly|high_humidity,pet_friendly_requires_external_evidence,,,,
|
||||
succulent,constants/lexiconBatch1.ts,86,Wuestenrose,Adenium obesum,Die Wuestenrose ist eine sukkulente Zimmerpflanze mit dickem Stamm und leuchtend pinken Blueten.,Volles Sonnenlicht,20-35 °C,10,flowering|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch2.ts,117,Socotra-Wuestenrose,Adenium socotranum,"Die Socotra-Wuestenrose ist eine seltene, endemische Art mit einem sehr dicken, knolligen Stamm und rosa Blueten.",Volles Sonnenlicht,20-35 °C,14,flowering|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch2.ts,31,Adromischus,Adromischus cristatus,Adromischus ist eine kompakte Sukkulente mit ungewoehnlich wellenrandigen Blaettern auf kurzen Staengeln.,Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,10,Schwarze Rose (Aeonium),Aeonium arboreum,"Das Aeonium bildet dekorative, rosettenfoermige Sukkulenten an verzweigten Stielen.",Volles Sonnenlicht,10-25 °C,10,succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,11,Agave,Agave americana,"Die Agave ist eine imposante Sukkulente mit steifen, blaugruenen Blaettern mit Stacheln. Sie bluet nur einmal.",Volles Sonnenlicht,10-35 °C,21,succulent|large|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,89,Kap-Aloe,Aloe arborescens,"Die Kap-Aloe ist eine strauchige Aloe mit schmalen, gezaehnten Blaettern und leuchtend roten Bluetenaehren im Winter.",Volles Sonnenlicht,10-30 °C,14,easy|succulent|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
succulent,constants/lexiconBatch2.ts,18,Kap-Aloe (ferox),Aloe ferox,"Aloe ferox ist eine grosse, imposante Aloe mit stachligen, blaugruenen Blaettern und leuchtend roten Bluetenaehren.",Volles Sonnenlicht,10-30 °C,14,succulent|large|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
succulent,constants/lexiconBatch1.ts,41,Pferdeschwanzpalme,Beaucarnea recurvata,"Die Pferdeschwanzpalme hat einen verdickten Stammbasis als Wasserspeicher und lange, schmale Blaetter.",Volles Sonnenlicht,15-30 °C,21,easy|succulent|tree|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,81,Peruanischer Fackelkaktus,Cereus peruvianus,"Der Peruanische Fackelkaktus ist ein saeulenfoermiger Kaktus, der im Innenraum bis zu 2 m hoch werden kann.",Volles Sonnenlicht,15-35 °C,21,easy|succulent|large|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,99,Herzkette,Ceropegia woodii,"Die Herzkette hat duenne, haengende Ranken mit herzfoermigen, silbergrau gemusterten Blaettchen.",Helles indirektes Licht,15-27 °C,14,easy|succulent|patterned|hanging,,,,,
|
||||
succulent,constants/lexiconBatch2.ts,24,Konophytum,Conophytum calculus,"Das Konophytum ist eine sehr kompakte Sukkulente, die zwei Blaetter zu einer kugelfoermigen Form verschmilzt.",Volles Sonnenlicht,10-25 °C,21,succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch2.ts,29,Kotyledon,Cotyledon orbiculata,"Kotyledon hat dickfleischige, runde Blaetter mit einem mehligen, weisslichen Belag. Sehr trockenheitsresistent.",Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch2.ts,26,Moos-Crassula,Crassula muscosa,"Die Moos-Crassula hat dicht aneinandergereihte, winzige gruene Blaetter auf unverzweigten Trieben. Sieht aus wie Moos.",Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,5,Jadepflanze,Crassula ovata,"Die Jadepflanze ist eine langlebige Sukkulente mit dicken, ovalen Blaettern. In Japan gilt sie als Gluecksbringer.",Helles bis volles Licht,15-24 °C,14,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch2.ts,236,String of Bananas,Curio radicans,String of Bananas ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles bis volles Licht,18-30 C,10,succulent|hanging|sun,,,,,
|
||||
succulent,constants/lexiconBatch2.ts,237,String of Dolphins,Curio x peregrinus,String of Dolphins ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles bis volles Licht,18-30 C,10,succulent|hanging|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,101,Dischidia,Dischidia ruscifolia,"Die Dischidia ist eine epiphytische Haengepflanze mit kleinen, runden Blaettern entlang duenner Ranken.",Helles indirektes Licht,18-27 °C,7,succulent|hanging,,,,,
|
||||
succulent,constants/lexiconBatch2.ts,30,Dudleya,Dudleya brittonii,"Dudleya ist eine rosettenbildende Sukkulente mit silbrig-weissen, mehligen Blaettern. Sehr elegant.",Volles Sonnenlicht,10-25 °C,14,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,4,Echeverie,Echeveria elegans,"Die Echeverie bildet symmetrische, rosettenfoermige Sukkulenten mit blaugruenen Blaettern. Pflegeleicht.",Volles Sonnenlicht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,77,Goldene Tonne,Echinocactus grusonii,Die Goldene Tonne ist ein ikonischer kugelfoermiger Kaktus mit goldgelben Stacheln. Waechst langsam aber imposant.,Volles Sonnenlicht,15-35 °C,21,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,83,San-Pedro-Kaktus,Echinopsis pachanoi,"Der San-Pedro-Kaktus ist ein schnell wachsender, saeulenfoermiger Kaktus aus den Anden.",Volles Sonnenlicht,10-35 °C,14,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,84,Koenigin der Nacht,Epiphyllum oxypetalum,"Die Koenigin der Nacht bluet nur eine einzige Nacht lang mit riesigen, intensiv duftenden weissen Blueten.",Indirektes Licht,18-27 °C,7,flowering|succulent,,,,,
|
||||
succulent,constants/lexiconBatch2.ts,19,Christusdorn,Euphorbia milii,Der Christusdorn ist eine sukkulente Wolfsmilch mit stacheligen Zweigen und kleinen roten oder gelben Hochblaettern.,Helles bis volles Licht,15-28 °C,10,easy|flowering|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,12,Bleistiftkaktus,Euphorbia tirucalli,"Der Bleistiftkaktus ist eine sukkulente Wolfsmilch mit duennen, zylindrischen Zweigen ohne Blaetter.",Volles Sonnenlicht,18-30 °C,14,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,78,Fass-Kaktus,Ferocactus cylindraceus,"Der Fass-Kaktus ist ein zylindrischer Wuestenkaktus mit langen, roten Stacheln. Sehr langlebig.",Volles Sonnenlicht,15-35 °C,21,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,90,Gasteria,Gasteria carinata,"Die Gasteria ist eine kleine Sukkulente mit zweireihig angeordneten, zungenfoermigen, gefleckten Blaettern.",Helles indirektes Licht,15-25 °C,14,easy|succulent|low_light,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,87,Geisterpflanze,Graptopetalum paraguayense,"Die Geisterpflanze hat zartgraue bis perlmutt-rosafarbene, rosettenfoermige Blaetter. Sehr robuste Sukkulente.",Volles Sonnenlicht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,80,Mond-Kaktus,Gymnocalycium mihanovichii,Der Mond-Kaktus ist eine farbenfrohe Veredelung eines chlorophylllosen Kaktus auf einem gruenen Unterlagekaktus.,Indirektes Licht,15-30 °C,14,easy|succulent,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,6,Zebra-Haworthie,Haworthia fasciata,Die Zebra-Haworthie ist eine kompakte Sukkulente mit weissen Querstreifen auf dunkelgruenen Blaettern.,Helles indirektes Licht,15-25 °C,14,easy|succulent|low_light,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,58,Kleine Wachsblume,Hoya bella,"Die Kleine Wachsblume traegt zierliche, sternfoermige weisse Blueten mit rosa Mitte. Haengende Sukkulente.",Helles indirektes Licht,18-27 °C,10,flowering|succulent|hanging,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,57,Wachsblume,Hoya carnosa,"Die Wachsblume ist eine Kletterpflanze mit dicken, wachsartigen Blaettern und sternfoermigen, duftenden Blueten.",Helles indirektes Licht,16-27 °C,10,easy|flowering|succulent|hanging,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,9,Kalanchoe,Kalanchoe blossfeldiana,"Die Kalanchoe ist eine beliebte Bluehpflanze mit leuchtenden Blueten in Rot, Orange, Gelb oder Rosa.",Helles bis volles Licht,15-25 °C,10,easy|flowering|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch2.ts,22,Brutblatt,Kalanchoe daigremontiana,Das Brutblatt bildet entlang des Blattrandes zahlreiche kleine Jungpflanzen. Eine faszinierende Sukkulente.,Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch2.ts,21,Kaninchen-Ohren,Kalanchoe tomentosa,"Kaninchen-Ohren haben weisslich-filzige Blaetter mit braunen Raendern, die Kaninchenohren aehneln. Sehr dekorativ.",Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch2.ts,23,Lebende Steine,Lithops julii,"Lebende Steine sind faszinierende Mimikry-Sukkulenten, die Kieselsteinen taeuschen aehnlich sehen. Sehr trockenheitsresistent.",Volles Sonnenlicht,10-30 °C,21,succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,79,Mammillaria,Mammillaria zeilmanniana,"Die Mammillaria ist ein kompakter, kugelfoermiger Kaktus, der im Fruehling einen Kranz aus rosa Blueten traegt.",Volles Sonnenlicht,15-35 °C,14,easy|flowering|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,82,Hasenohren-Kaktus,Opuntia microdasys,"Der Hasenohren-Kaktus hat flache, ovale Triebe mit dichten weissen Glochiden. Klassischer Zimmerkaktus.",Volles Sonnenlicht,10-35 °C,21,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,88,Mondstein-Pflanze,Pachyphytum oviferum,"Die Mondstein-Pflanze hat dicke, ovale Blaetter mit einem pastellrosafarbenen, mehligen Ueberzug.",Volles Sonnenlicht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch2.ts,27,Speckbaum,Portulacaria afra,"Der Speckbaum ist eine sukkulente Pflanze mit roten Stielen und kleinen, runden, glaenzenden Blaettern.",Helles bis volles Licht,15-30 °C,14,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,85,Korallenkaktus,Rhipsalis baccifera,"Der Korallenkaktus ist ein epiphytischer Kaktus mit duennen, haengenden Trieben und kleinen weissen Beeren.",Indirektes Licht,18-27 °C,7,succulent|hanging,,,,,
|
||||
succulent,constants/lexiconBatch2.ts,17,Zylindrischer Bogenhanf,Sansevieria cylindrica,"Der Zylindrische Bogenhanf hat zylindrische, aufrechte Blaetter, die sich nach oben verjuengen. Sehr pflegeleicht.",Helles bis volles Licht,15-27 °C,14,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,8,Weihnachtskaktus,Schlumbergera truncata,"Der Weihnachtskaktus erfreut zur Weihnachtszeit mit leuchtenden Blueten in Rosa, Rot oder Weiss.",Helles indirektes Licht,15-21 °C,7,easy|flowering|succulent,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,7,Eselschwanz,Sedum morganianum,"Der Eselschwanz ist eine haengende Sukkulente mit langen Trieben aus dichten, blaugruenen Blaettchen.",Volles Sonnenlicht,15-25 °C,14,easy|succulent|hanging|sun,,,,,
|
||||
succulent,constants/lexiconBatch1.ts,100,Perlenschnur-Pflanze,Senecio rowleyanus,"Die Perlenschnur-Pflanze hat haengende Ranken mit kugelfoermigen, perlenaehnlichen Blaettern. Einzigartige Sukkulente.",Helles bis volles Licht,15-27 °C,14,easy|succulent|hanging,,,,,
|
||||
succulent,constants/lexiconBatch2.ts,28,Blauer Kreuzkraut,Senecio serpens,"Der Blaue Kreuzkraut hat zylindrische, blaublaugruene Blaetter und einen kriechenden Wuchs. Sehr dekorativ.",Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
succulent,constants/lexiconBatch2.ts,25,Aasblume,Stapelia grandiflora,"Die Aasblume hat fleischige, gruene Staengel und riesige, sternfoermige Blueten mit aasartigem Duft.",Helles bis volles Licht,18-30 °C,14,flowering|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,212,Spitzahorn,Acer platanoides,Spitzahorn ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,108,Schafgarbe,Achillea millefolium,Die Schafgarbe hat weisse oder rosafarbene Bluetenschirme und fein gefiederte Blaetter. Wichtige Heilpflanze.,Volles Sonnenlicht,10-25 °C,7,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch1.ts,86,Wuestenrose,Adenium obesum,Die Wuestenrose ist eine sukkulente Zimmerpflanze mit dickem Stamm und leuchtend pinken Blueten.,Volles Sonnenlicht,20-35 °C,10,flowering|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,117,Socotra-Wuestenrose,Adenium socotranum,"Die Socotra-Wuestenrose ist eine seltene, endemische Art mit einem sehr dicken, knolligen Stamm und rosa Blueten.",Volles Sonnenlicht,20-35 °C,14,flowering|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,31,Adromischus,Adromischus cristatus,Adromischus ist eine kompakte Sukkulente mit ungewoehnlich wellenrandigen Blaettern auf kurzen Staengeln.,Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,10,Schwarze Rose (Aeonium),Aeonium arboreum,"Das Aeonium bildet dekorative, rosettenfoermige Sukkulenten an verzweigten Stielen.",Volles Sonnenlicht,10-25 °C,10,succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,11,Agave,Agave americana,"Die Agave ist eine imposante Sukkulente mit steifen, blaugruenen Blaettern mit Stacheln. Sie bluet nur einmal.",Volles Sonnenlicht,10-35 °C,21,succulent|large|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,155,Stockrose,Alcea rosea,"Stockrose ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,135,Schnittknoblauch,Allium tuberosum,Schnittknoblauch ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,89,Kap-Aloe,Aloe arborescens,"Die Kap-Aloe ist eine strauchige Aloe mit schmalen, gezaehnten Blaettern und leuchtend roten Bluetenaehren im Winter.",Volles Sonnenlicht,10-30 °C,14,easy|succulent|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,18,Kap-Aloe (ferox),Aloe ferox,"Aloe ferox ist eine grosse, imposante Aloe mit stachligen, blaugruenen Blaettern und leuchtend roten Bluetenaehren.",Volles Sonnenlicht,10-30 °C,14,succulent|large|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,128,Zitronenverbene,Aloysia citrodora,Zitronenverbene ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,194,Fuchsschwanz,Amaranthus caudatus,"Fuchsschwanz ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,163,Anemone,Anemone coronaria,"Anemone ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,140,Dill,Anethum graveolens,Dill ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,125,Kerbel,Anthriscus cerefolium,Kerbel ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,147,Loewenmaeulchen,Antirrhinum majus,"Loewenmaeulchen ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,107,Arnika,Arnica montana,Arnika ist eine bekannte Heilpflanze aus den Alpen mit goldgelben Korbbluten. Sie wird fuer Muskeln und Gelenke verwendet.,Volles Sonnenlicht,10-20 °C,7,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,110,Wermut,Artemisia absinthium,"Wermut ist ein stark aromatisches Heilkraut mit silbrig-gruenen, tief eingeschnittenen Blaettern. Fuer Kraeuterlikoere.",Volles Sonnenlicht,10-25 °C,14,medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,122,Estragon,Artemisia dracunculus,Estragon ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,178,Seidenpflanze,Asclepias tuberosa,"Seidenpflanze ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,41,Pferdeschwanzpalme,Beaucarnea recurvata,"Die Pferdeschwanzpalme hat einen verdickten Stammbasis als Wasserspeicher und lange, schmale Blaetter.",Volles Sonnenlicht,15-30 °C,21,easy|succulent|tree|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,145,Gaensebluemchen,Bellis perennis,"Gaensebluemchen ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,129,Borretsch,Borago officinalis,Borretsch ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,62,Bougainvillea,Bougainvillea spectabilis,"Die Bougainvillea ist eine rankenreiche Kletterpflanze mit leuchtend farbigen Hochblaettern in Rot, Orange oder Pink.",Volles Sonnenlicht,18-30 °C,5,flowering|bright_light|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,223,Schmetterlingsflieder,Buddleja davidii,Schmetterlingsflieder ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,202,Buchsbaum,Buxus sempervirens,Buchsbaum ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,187,Ringelblume,Calendula officinalis,"Ringelblume ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,63,Calibrachoa,Calibrachoa hybrida,"Calibrachoa ist eine petunienaehnliche Haengepflanze mit unzaehligen, kleinen Trichterbluten in allen Farben.",Volles Sonnenlicht,15-25 °C,2,easy|flowering|hanging|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,67,Blumenschilfrohr,Canna indica,"Das Blumenschilfrohr hat grosse, tropisch wirkende Blaetter und auffaellige Blueten in Rot, Orange oder Gelb.",Volles Sonnenlicht,18-28 °C,5,flowering|large|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,92,Chili,Capsicum annuum,"Chili ist eine beliebte Gemuese- und Zierpflanze mit leuchtenden, roten oder orangen Fruechten. Im Topf kultivierbar.",Volles Sonnenlicht,20-30 °C,4,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,90,Papaya,Carica papaya,"Die Papaya ist eine tropische Fruchtpflanze mit grossen, gelappten Blaettern und orangen Fruechten.",Volles Sonnenlicht,20-35 °C,5,large|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,217,Trompetenbaum,Catalpa bignonioides,Trompetenbaum ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,208,Zeder,Cedrus libani,Zeder ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,188,Kornblume,Centaurea cyanus,"Kornblume ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,81,Peruanischer Fackelkaktus,Cereus peruvianus,"Der Peruanische Fackelkaktus ist ein saeulenfoermiger Kaktus, der im Innenraum bis zu 2 m hoch werden kann.",Volles Sonnenlicht,15-35 °C,21,easy|succulent|large|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,138,Roemische Kamille,Chamaemelum nobile,Roemische Kamille ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,101,Kamille,Chamomilla recutita,"Die Kamille ist ein beliebtes Heilkraut mit kleinen, weiss-gelben Blueten. Das aetherische Oel wirkt beruhigend.",Volles Sonnenlicht,15-25 °C,5,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,86,Zitronenbaum,Citrus limon,"Der Zitronenbaum ist ein kleiner, immergruener Baum mit weissen, duftenden Blueten und gelben Fruechten.",Volles Sonnenlicht,18-28 °C,5,tree|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,87,Orangenbaum,Citrus sinensis,"Der Orangenbaum ist ein kleiner, immergruener Baum mit weissen Blueten und orangen Fruechten.",Volles Sonnenlicht,18-28 °C,5,tree|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,24,Konophytum,Conophytum calculus,"Das Konophytum ist eine sehr kompakte Sukkulente, die zwei Blaetter zu einer kugelfoermigen Form verschmilzt.",Volles Sonnenlicht,10-25 °C,21,succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,14,Keulenlilie,Cordyline australis,"Die Keulenlilie hat lange, schmale, gruene oder rotbraune Blaetter in einem dekorativen Schopf.",Helles bis volles Licht,10-25 °C,7,easy|tree|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,181,Maedchenauge,Coreopsis tinctoria,"Maedchenauge ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,139,Koriander,Coriandrum sativum,Koriander ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,150,Kosmee,Cosmos bipinnatus,"Kosmee ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,29,Kotyledon,Cotyledon orbiculata,"Kotyledon hat dickfleischige, runde Blaetter mit einem mehligen, weisslichen Belag. Sehr trockenheitsresistent.",Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,26,Moos-Crassula,Crassula muscosa,"Die Moos-Crassula hat dicht aneinandergereihte, winzige gruene Blaetter auf unverzweigten Trieben. Sieht aus wie Moos.",Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,5,Jadepflanze,Crassula ovata,"Die Jadepflanze ist eine langlebige Sukkulente mit dicken, ovalen Blaettern. In Japan gilt sie als Gluecksbringer.",Helles bis volles Licht,15-24 °C,14,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,94,Gurke,Cucumis sativus,"Die Gurke ist eine rankende Gemuesepflanze mit gruenen, erfrischenden Fruechten. Im Balkonkasten kultivierbar.",Volles Sonnenlicht,18-28 °C,3,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,209,Zypresse,Cupressus sempervirens,Zypresse ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,236,String of Bananas,Curio radicans,String of Bananas ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles bis volles Licht,18-30 C,10,succulent|hanging|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,237,String of Dolphins,Curio x peregrinus,String of Dolphins ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles bis volles Licht,18-30 C,10,succulent|hanging|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,239,Palmfarn,Cycas revoluta,Palmfarn ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles bis volles Licht,18-30 C,10,tree|large|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,127,Zitronengras,Cymbopogon citratus,Zitronengras ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,68,Dahlie,Dahlia pinnata,Die Dahlie ist eine prachtvolle Sommerblume mit Blueten in allen Groessen und Formen. Sie wird aus Knollen gezogen.,Volles Sonnenlicht,15-25 °C,5,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,153,Rittersporn,Delphinium elatum,"Rittersporn ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,189,Bartnelke,Dianthus barbatus,"Bartnelke ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,146,Nelke,Dianthus caryophyllus,"Nelke ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,77,Venusfliegenfalle,Dionaea muscipula,Die Venusfliegenfalle ist eine fleischfressende Pflanze mit klappfallartigen Blaettern. Faengt Insekten.,Volles Sonnenlicht,15-30 °C,5,sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,80,Sonnentau,Drosera capensis,Der Sonnentau faengt Insekten mit klebrigen Tropfen auf seinen Blaettern. Eine faszinierende fleischfressende Pflanze.,Volles Sonnenlicht,15-25 °C,5,high_humidity|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,30,Dudleya,Dudleya brittonii,"Dudleya ist eine rosettenbildende Sukkulente mit silbrig-weissen, mehligen Blaettern. Sehr elegant.",Volles Sonnenlicht,10-25 °C,14,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,4,Echeverie,Echeveria elegans,"Die Echeverie bildet symmetrische, rosettenfoermige Sukkulenten mit blaugruenen Blaettern. Pflegeleicht.",Volles Sonnenlicht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,106,Sonnenhut,Echinacea purpurea,"Der Sonnenhut ist eine beliebte Heilpflanze mit grossen, pinkfarbenen Blueten. Er staerkt das Immunsystem.",Helles bis volles Licht,15-25 °C,7,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch1.ts,77,Goldene Tonne,Echinocactus grusonii,Die Goldene Tonne ist ein ikonischer kugelfoermiger Kaktus mit goldgelben Stacheln. Waechst langsam aber imposant.,Volles Sonnenlicht,15-35 °C,21,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,83,San-Pedro-Kaktus,Echinopsis pachanoi,"Der San-Pedro-Kaktus ist ein schnell wachsender, saeulenfoermiger Kaktus aus den Anden.",Volles Sonnenlicht,10-35 °C,14,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,186,Kalifornischer Mohn,Eschscholzia californica,"Kalifornischer Mohn ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,210,Eukalyptus,Eucalyptus globulus,Eukalyptus ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,19,Christusdorn,Euphorbia milii,Der Christusdorn ist eine sukkulente Wolfsmilch mit stacheligen Zweigen und kleinen roten oder gelben Hochblaettern.,Helles bis volles Licht,15-28 °C,10,easy|flowering|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,12,Bleistiftkaktus,Euphorbia tirucalli,"Der Bleistiftkaktus ist eine sukkulente Wolfsmilch mit duennen, zylindrischen Zweigen ohne Blaetter.",Volles Sonnenlicht,18-30 °C,14,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,78,Fass-Kaktus,Ferocactus cylindraceus,"Der Fass-Kaktus ist ein zylindrischer Wuestenkaktus mit langen, roten Stacheln. Sehr langlebig.",Volles Sonnenlicht,15-35 °C,21,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,219,Forsythie,Forsythia x intermedia,Forsythie ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,100,Erdbeere,Fragaria ananassa,"Die Erdbeere ist ein beliebtes Obst fuer Balkon und Terrasse mit aromatischen, roten Fruechten.",Helles bis volles Licht,15-25 °C,3,easy|pet_friendly|sun,pet_friendly_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,169,Freesie,Freesia refracta,"Freesie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,196,Kokardenblume,Gaillardia aristata,"Kokardenblume ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,190,Mittagsgold,Gazania rigens,"Mittagsgold ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,216,Ginkgo,Ginkgo biloba,Ginkgo ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,161,Gladiole,Gladiolus hortulanus,"Gladiole ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,87,Geisterpflanze,Graptopetalum paraguayense,"Die Geisterpflanze hat zartgraue bis perlmutt-rosafarbene, rosettenfoermige Blaetter. Sehr robuste Sukkulente.",Volles Sonnenlicht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,141,Sonnenblume,Helianthus annuus,"Sonnenblume ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,133,Currykraut,Helichrysum italicum,Currykraut ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,191,Heliotrop,Heliotropium arborescens,"Heliotrop ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,182,Taglilie,Hemerocallis fulva,"Taglilie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,21,Hibiskus,Hibiscus rosa-sinensis,"Der Hibiskus begeistert mit grossen, trompetenfoermigen Blueten in Rot, Orange und Rosa.",Volles Sonnenlicht,18-28 °C,3,flowering|bright_light|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,220,Gartenhibiskus,Hibiscus syriacus,Gartenhibiskus ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,159,Hasengloeckchen,Hyacinthoides non-scripta,"Hasengloeckchen ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,105,Johanniskraut,Hypericum perforatum,Das Johanniskraut hat leuchtend gelbe Blueten und ist ein wichtiges Heilkraut gegen Depressionen und Stimmungstiefs.,Volles Sonnenlicht,10-25 °C,7,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,136,Ysop,Hyssopus officinalis,Ysop ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,203,Stechpalme,Ilex aquifolium,Stechpalme ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,64,Suesskartoffel,Ipomoea batatas,"Die Suesskartoffel-Zierpflanze hat dekorative, herzfoermige Blaetter in gruen oder dunkelviolett. Ideal als Haengepflanze.",Volles Sonnenlicht,20-30 °C,5,easy|hanging|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,156,Prunkwinde,Ipomoea purpurea,"Prunkwinde ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,144,Bart-Iris,Iris germanica,"Bart-Iris ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,9,Kalanchoe,Kalanchoe blossfeldiana,"Die Kalanchoe ist eine beliebte Bluehpflanze mit leuchtenden Blueten in Rot, Orange, Gelb oder Rosa.",Helles bis volles Licht,15-25 °C,10,easy|flowering|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,22,Brutblatt,Kalanchoe daigremontiana,Das Brutblatt bildet entlang des Blattrandes zahlreiche kleine Jungpflanzen. Eine faszinierende Sukkulente.,Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,21,Kaninchen-Ohren,Kalanchoe tomentosa,"Kaninchen-Ohren haben weisslich-filzige Blaetter mit braunen Raendern, die Kaninchenohren aehneln. Sehr dekorativ.",Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,64,Wandelroeschen,Lantana camara,"Das Wandelroeschen hat kugelige Bluetenkoepfe, die die Farbe von Gelb ueber Orange zu Rot wechseln. Sehr attraktiv.",Volles Sonnenlicht,18-28 °C,5,flowering|bright_light|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,158,Duftwicke,Lathyrus odoratus,"Duftwicke ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,121,Lorbeer,Laurus nobilis,Lorbeer ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,23,Echter Lavendel,Lavandula angustifolia,Der Echte Lavendel ist ein aromatischer Halbstrauch mit lilafarbenen Bluetenaehren. Herrlicher Duft.,Volles Sonnenlicht,10-25 °C,10,medicinal|bright_light|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,180,Bechermalve,Lavatera trimestris,"Bechermalve ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,173,Margerite,Leucanthemum vulgare,"Margerite ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,201,Shasta-Margerite,Leucanthemum x superbum,"Shasta-Margerite ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,126,Liebstoeckel,Levisticum officinale,Liebstoeckel ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,23,Lebende Steine,Lithops julii,"Lebende Steine sind faszinierende Mimikry-Sukkulenten, die Kieselsteinen taeuschen aehnlich sehen. Sehr trockenheitsresistent.",Volles Sonnenlicht,10-30 °C,21,succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,154,Lupine,Lupinus polyphyllus,"Lupine ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,79,Mammillaria,Mammillaria zeilmanniana,"Die Mammillaria ist ein kompakter, kugelfoermiger Kaktus, der im Fruehling einen Kranz aus rosa Blueten traegt.",Volles Sonnenlicht,15-35 °C,14,easy|flowering|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,179,Indianernessel,Monarda didyma,"Indianernessel ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,177,Vergissmeinnicht,Myosotis sylvatica,"Vergissmeinnicht ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,199,Nemesie,Nemesia strumosa,"Nemesie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,132,Katzenminze,Nepeta cataria,Katzenminze ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,120,Oleander,Nerium oleander,"Der Oleander ist ein mediteraner Strauch mit leuchtend roten, rosa oder weissen Blueten. Sehr hitzetolerant.",Volles Sonnenlicht,15-28 °C,7,flowering|bright_light|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,193,Ziertabak,Nicotiana alata,"Ziertabak ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,25,Basilikum,Ocimum basilicum,"Basilikum ist das beliebteste Kuechenkraut mit intensiv aromatischen, gruenen Blaettern. Fuer Pesto verwendet.",Volles Sonnenlicht,18-30 °C,2,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch1.ts,82,Hasenohren-Kaktus,Opuntia microdasys,"Der Hasenohren-Kaktus hat flache, ovale Triebe mit dichten weissen Glochiden. Klassischer Zimmerkaktus.",Volles Sonnenlicht,10-35 °C,21,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,124,Majoran,Origanum majorana,Majoran ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,28,Oregano,Origanum vulgare,"Oregano ist ein aromatisches Kuechenkraut mit runden, behaarten Blaettern. In mediterraner Kueche beliebt.",Volles Sonnenlicht,15-25 °C,7,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,200,Kapmargerite,Osteospermum ecklonis,"Kapmargerite ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,88,Mondstein-Pflanze,Pachyphytum oviferum,"Die Mondstein-Pflanze hat dicke, ovale Blaetter mit einem pastellrosafarbenen, mehligen Ueberzug.",Volles Sonnenlicht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,143,Pfingstrose,Paeonia lactiflora,"Pfingstrose ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,185,Mohn,Papaver rhoeas,"Mohn ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,31,Rosengeranie,Pelargonium graveolens,Die Rosengeranie ist eine Duftpflanze mit tief eingeschnittenen Blaettern und rosaenlichem Aroma.,Volles Sonnenlicht,15-25 °C,7,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,61,Efeu-Geranie,Pelargonium peltatum,"Die Efeu-Geranie hat efeufoermige, glaenzende Blaetter und bluet den ganzen Sommer in leuchtenden Farben.",Helles bis volles Licht,15-25 °C,5,easy|flowering|hanging|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,174,Stehende Geranie,Pelargonium zonale,"Stehende Geranie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,134,Shiso,Perilla frutescens,Shiso ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,34,Petunie,Petunia hybrida,Die Petunie ist eine der beliebtesten Balkonpflanzen mit trichterfoermigen Blueten in unzaehligen Farben.,Volles Sonnenlicht,15-25 °C,2,easy|pet_friendly|flowering|sun,pet_friendly_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,165,Flammenblume,Phlox paniculata,"Flammenblume ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,207,Fichte,Picea abies,Fichte ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,206,Kiefer,Pinus sylvestris,Kiefer ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,61,Bleiwurz,Plumbago auriculata,"Die Bleiwurz ist ein halbimmergruener Strauch mit himmelblauen Blueten, der fast das ganze Jahr bluet.",Volles Sonnenlicht,15-27 °C,5,flowering|bright_light|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,118,Tempel-Baum,Plumeria rubra,"Der Tempel-Baum hat intensiv duftende, sternfoermige Blueten in Weiss, Gelb oder Rosa. Klassische Tropenblume.",Volles Sonnenlicht,20-30 °C,7,flowering|tree|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,27,Speckbaum,Portulacaria afra,"Der Speckbaum ist eine sukkulente Pflanze mit roten Stielen und kleinen, runden, glaenzenden Blaettern.",Helles bis volles Licht,15-30 °C,14,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,71,Koenigs-Protea,Protea cynaroides,"Die Koenigs-Protea ist die Nationalblume Suedafrikas mit riesigen, imposanten Bluetenkoepfen. Eine echte Besonderheit.",Volles Sonnenlicht,10-25 °C,7,flowering|large|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,218,Kirschlorbeer,Prunus laurocerasus,Kirschlorbeer ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,89,Guave,Psidium guajava,Die Guave ist ein tropischer Obstbaum mit gelblich-weissen Fruechten. Sie ist reich an Vitamin C.,Volles Sonnenlicht,18-30 °C,7,tree|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,88,Granatapfelbaum,Punica granatum,"Der Granatapfelbaum hat leuchtend rote Blueten und rote, essbare Fruechte mit rubinroten Kernen.",Volles Sonnenlicht,15-28 °C,7,flowering|tree|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,205,Eiche,Quercus robur,Eiche ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,162,Ranunkel,Ranunculus asiaticus,"Ranunkel ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,214,Robinie,Robinia pseudoacacia,Robinie ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,66,Chinesische Rose,Rosa chinensis,Die Chinesische Rose ist eine der Stammarten vieler Gartenrosen und bluet fast ununterbrochen.,Volles Sonnenlicht,15-25 °C,5,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,142,Rose,Rosa x hybrida,"Rose ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|bright_light|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,24,Rosmarin,Rosmarinus officinalis,Rosmarin ist ein aromatisches Kraut mit nadelartigen Blaettern und blauen Blueten. In der Kueche unverzichtbar.,Volles Sonnenlicht,10-25 °C,7,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,167,Rudbeckie,Rudbeckia hirta,"Rudbeckie ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,130,Sauerampfer,Rumex acetosa,Sauerampfer ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,195,Mehlsalbei,Salvia farinacea,"Mehlsalbei ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,103,Salbei,Salvia officinalis,Salbei ist ein aromatisches Heilkraut mit silbrig-gruenen Blaettern. Er hat antibakterielle und entzuendungshemmende Wirkung.,Volles Sonnenlicht,10-25 °C,7,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,168,Feuersalbei,Salvia splendens,"Feuersalbei ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,17,Zylindrischer Bogenhanf,Sansevieria cylindrica,"Der Zylindrische Bogenhanf hat zylindrische, aufrechte Blaetter, die sich nach oben verjuengen. Sehr pflegeleicht.",Helles bis volles Licht,15-27 °C,14,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,78,Purpursonnentau,Sarracenia purpurea,Der Purpursonnentau ist eine fleischfressende Kannenpflanze mit purpurroten Kannen. Faengt Insekten.,Volles Sonnenlicht,5-25 °C,3,high_humidity|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,123,Bohnenkraut,Satureja hortensis,Bohnenkraut ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,7,Eselschwanz,Sedum morganianum,"Der Eselschwanz ist eine haengende Sukkulente mit langen Trieben aus dichten, blaugruenen Blaettchen.",Volles Sonnenlicht,15-25 °C,14,easy|succulent|hanging|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,28,Blauer Kreuzkraut,Senecio serpens,"Der Blaue Kreuzkraut hat zylindrische, blaublaugruene Blaetter und einen kriechenden Wuchs. Sehr dekorativ.",Helles bis volles Licht,15-25 °C,14,easy|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,93,Aubergine,Solanum melongena,"Die Aubergine ist eine Gemuesepflanze mit grossen, violetten Fruechten. Sie benoetigt viel Waerme und Sonne.",Volles Sonnenlicht,20-30 °C,5,bright_light|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,213,Eberesche,Sorbus aucuparia,Eberesche ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,222,Spierstrauch,Spiraea japonica,Spierstrauch ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,25,Aasblume,Stapelia grandiflora,"Die Aasblume hat fleischige, gruene Staengel und riesige, sternfoermige Blueten mit aasartigem Duft.",Helles bis volles Licht,18-30 °C,14,flowering|succulent|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,131,Stevia,Stevia rebaudiana,Stevia ist ein bekanntes Kuechenkraut mit aromatischem Geschmack und vielseitiger Verwendung.,Helles bis volles Licht,12-24 C,5,easy|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,3,Paradiesvogelblume,Strelitzia reginae,"Die Paradiesvogelblume beeindruckt mit leuchtend orangefarbenen und blauen Blueten, die einem Vogel aehneln.",Volles Sonnenlicht,18-26 °C,7,flowering|large|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,166,Herbstaster,Symphyotrichum novi-belgii,"Herbstaster ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,149,Flieder,Syringa vulgaris,"Flieder ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|tree|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,66,Studentenblume,Tagetes patula,Die Studentenblume ist eine robuste Sommerblume mit orangen oder gelben Blueten. Sie haelt Schadlinge fern.,Volles Sonnenlicht,15-28 °C,3,easy|flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,27,Thymian,Thymus vulgaris,"Thymian ist ein kleiner, aromatischer Strauch mit winzigen Blaettern und rosa Blueten. Wichtiges Kuechenkraut.",Volles Sonnenlicht,10-25 °C,7,easy|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,54,Lila Tradescantia,Tradescantia pallida,Die Lila Tradescantia hat leuchtend purpurrote Blaetter und ist sehr auffaellig. Sie liebt viel Licht.,Helles bis volles Licht,15-25 °C,5,easy|hanging|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,151,Kapuzinerkresse,Tropaeolum majus,"Kapuzinerkresse ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,82,Wasserschlauch,Utricularia gibba,Der Wasserschlauch ist eine wasserbewohnende fleischfressende Pflanze mit Schlaeuchen als Insektenfallen.,Helles bis volles Licht,15-25 °C,2,high_humidity|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,192,Koenigskerze,Verbascum thapsus,"Koenigskerze ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
sun,constants/lexiconBatch2.ts,164,Eisenkraut,Verbena bonariensis,"Eisenkraut ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,198,Hornveilchen,Viola cornuta,"Hornveilchen ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,5,Mexikanische Fächerpalme,Washingtonia robusta,"Die Mexikanische Fächerpalme ist eine schlanke, hohe Palme mit faecherfoermigen Blaettern. Sehr hitzetolerant.",Volles Sonnenlicht,15-35 °C,10,tree|large|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,221,Weigelie,Weigela florida,Weigelie ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,65,Chinesischer Blauregen,Wisteria sinensis,"Der Chinesische Blauregen ist ein ueppiger Kletterkuenstler mit langen, duftenden Bluetentrauben in Lila.",Volles Sonnenlicht,10-25 °C,7,flowering|large|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,246,Yucca aloifolia,Yucca aloifolia,Yucca aloifolia ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Volles Sonnenlicht,18-30 C,10,easy|tree|sun,,,,,
|
||||
sun,constants/lexiconBatch1.ts,40,Yucca-Palme,Yucca elephantipes,"Die Yucca-Palme ist eine robuste Zimmerpflanze mit starrem, immergruenem Blaetterschopf auf einem dicken Stamm.",Helles bis volles Licht,15-28 °C,14,easy|tree|sun,,,,,
|
||||
sun,constants/lexiconBatch2.ts,65,Zinnie,Zinnia elegans,"Die Zinnie ist eine leuchtende Sommerblume mit grossen, dahlienaehnlichen Blueten. Sehr robust und hitzetolerant.",Volles Sonnenlicht,18-30 °C,3,easy|flowering|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,115,Faecherahorn,Acer palmatum,"Der Faecherahorn ist ein japanischer Zierahorn mit feingeschnittenen, faecherfoermigen Blaettern in Gruen oder Rot.",Helles bis volles Licht,10-22 °C,5,tree,,,,,
|
||||
tree,constants/lexiconBatch2.ts,212,Spitzahorn,Acer platanoides,Spitzahorn ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,232,Norfolk-Tanne,Araucaria heterophylla,Norfolk-Tanne ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,tree|bright_light,,,,,
|
||||
tree,constants/lexiconBatch1.ts,41,Pferdeschwanzpalme,Beaucarnea recurvata,"Die Pferdeschwanzpalme hat einen verdickten Stammbasis als Wasserspeicher und lange, schmale Blaetter.",Volles Sonnenlicht,15-30 °C,21,easy|succulent|tree|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,114,Hange-Birke,Betula pendula,Die Haenge-Birke hat charakteristisch weisse Rinde und haengende Zweige. Die Blaetter werden in der Heilkunde genutzt.,Volles Sonnenlicht,10-25 °C,7,tree|large|medicinal,medicinal_requires_external_evidence,,,,
|
||||
tree,constants/lexiconBatch2.ts,223,Schmetterlingsflieder,Buddleja davidii,Schmetterlingsflieder ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,202,Buchsbaum,Buxus sempervirens,Buchsbaum ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,217,Trompetenbaum,Catalpa bignonioides,Trompetenbaum ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,208,Zeder,Cedrus libani,Zeder ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
tree,constants/lexiconBatch1.ts,43,Bergpalme,Chamaedorea elegans,Die Bergpalme ist eine kompakte Zimmerpalme fuer schattigere Standorte. Ideal fuer dunkle Innenraeume.,Wenig bis helles Licht,15-25 °C,7,easy|pet_friendly|tree|air_purifier|low_light,air_purifier_requires_external_evidence|pet_friendly_requires_external_evidence,,,,
|
||||
tree,constants/lexiconBatch2.ts,86,Zitronenbaum,Citrus limon,"Der Zitronenbaum ist ein kleiner, immergruener Baum mit weissen, duftenden Blueten und gelben Fruechten.",Volles Sonnenlicht,18-28 °C,5,tree|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,87,Orangenbaum,Citrus sinensis,"Der Orangenbaum ist ein kleiner, immergruener Baum mit weissen Blueten und orangen Fruechten.",Volles Sonnenlicht,18-28 °C,5,tree|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,14,Keulenlilie,Cordyline australis,"Die Keulenlilie hat lange, schmale, gruene oder rotbraune Blaetter in einem dekorativen Schopf.",Helles bis volles Licht,10-25 °C,7,easy|tree|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,209,Zypresse,Cupressus sempervirens,Zypresse ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,239,Palmfarn,Cycas revoluta,Palmfarn ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles bis volles Licht,18-30 C,10,tree|large|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,215,Flammenbaum,Delonix regia,Flammenbaum ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|large,,,,,
|
||||
tree,constants/lexiconBatch1.ts,14,Maisstrauch,Dracaena fragrans,"Der Maisstrauch ist eine robuste Zimmerpflanze mit breiten, gestreiften Blaettern. Gedeiht auch bei wenig Licht.",Helles indirektes Licht,15-25 °C,10,easy|tree|air_purifier|low_light,air_purifier_requires_external_evidence,,,,
|
||||
tree,constants/lexiconBatch1.ts,13,Drachenbaum,Dracaena marginata,"Der Drachenbaum ist eine schlanke Zimmerpflanze mit roten, schmalen Blaettern auf langen Staemmen.",Helles indirektes Licht,15-25 °C,10,easy|tree|air_purifier,air_purifier_requires_external_evidence,,,,
|
||||
tree,constants/lexiconBatch1.ts,42,Goldfruchtpalme,Dypsis lutescens,Die Goldfruchtpalme ist eine elegante Zimmerpalme mit gelblich-gruenen Stielen und gefiederten Wedeln.,Helles indirektes Licht,18-27 °C,5,pet_friendly|tree|air_purifier,air_purifier_requires_external_evidence|pet_friendly_requires_external_evidence,,,,
|
||||
tree,constants/lexiconBatch2.ts,210,Eukalyptus,Eucalyptus globulus,Eukalyptus ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
tree,constants/lexiconBatch2.ts,248,Ficus altissima,Ficus altissima,Ficus altissima ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,tree|bright_light,,,,,
|
||||
tree,constants/lexiconBatch1.ts,1,Birkenfeige,Ficus benjamina,"Die Birkenfeige ist ein eleganter Zimmerstrauch mit haengenden Aesten und kleinen, glaenzenden Blaettern.",Helles indirektes Licht,16-24 °C,7,tree|air_purifier,air_purifier_requires_external_evidence,,,,
|
||||
tree,constants/lexiconBatch1.ts,38,Gummibaum,Ficus elastica,"Der Gummibaum ist eine imposante Zimmerpflanze mit grossen, glaenzenden, lederartigen Blaettern. Reinigt die Luft.",Helles indirektes Licht,16-24 °C,10,easy|tree|air_purifier,air_purifier_requires_external_evidence,,,,
|
||||
tree,constants/lexiconBatch1.ts,39,Geigenfeige,Ficus lyrata,"Die Geigenfeige ist ein Trendbaum mit grossen, geigenfoermigen Blaettern. Benoetigt viel Licht.",Helles indirektes Licht,18-27 °C,7,tree|large|bright_light,,,,,
|
||||
tree,constants/lexiconBatch2.ts,247,Ficus microcarpa,Ficus microcarpa,Ficus microcarpa ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,easy|tree|bright_light,,,,,
|
||||
tree,constants/lexiconBatch2.ts,116,Bonsai-Feige,Ficus retusa,"Die Bonsai-Feige ist eine klassische Bonsai-Art mit kleinen, elliptischen Blaettern. Sehr formbar.",Helles indirektes Licht,16-24 °C,7,tree,,,,,
|
||||
tree,constants/lexiconBatch2.ts,219,Forsythie,Forsythia x intermedia,Forsythie ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,216,Ginkgo,Ginkgo biloba,Ginkgo ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|medicinal|sun,medicinal_requires_external_evidence,,,,
|
||||
tree,constants/lexiconBatch2.ts,220,Gartenhibiskus,Hibiscus syriacus,Gartenhibiskus ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,3,Kentia-Palme,Howea forsteriana,"Die Kentia-Palme ist eine der elegantesten Zimmerpalmen mit langen, herabhängenden Fiederblaettern.",Helles indirektes Licht,18-25 °C,7,pet_friendly|tree|low_light,pet_friendly_requires_external_evidence,,,,
|
||||
tree,constants/lexiconBatch2.ts,203,Stechpalme,Ilex aquifolium,Stechpalme ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,211,Jacaranda,Jacaranda mimosifolia,Jacaranda ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|large,,,,,
|
||||
tree,constants/lexiconBatch2.ts,4,Chinesische Fächerpalme,Livistona chinensis,"Die Chinesische Fächerpalme hat grosse, faecherfoermige Blaetter auf einem einzelnen Stamm. Sehr dekorativ.",Helles bis volles Licht,15-25 °C,7,tree|bright_light,,,,,
|
||||
tree,constants/lexiconBatch2.ts,204,Magnolie,Magnolia grandiflora,Magnolie ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|large,,,,,
|
||||
tree,constants/lexiconBatch2.ts,231,Glueckskastanie,Pachira aquatica,Glueckskastanie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,easy|tree|bright_light,,,,,
|
||||
tree,constants/lexiconBatch1.ts,44,Zwergdattelpalme,Phoenix roebelenii,"Die Zwergdattelpalme ist eine zierliche Palme mit eleganten, gebogenen Fiederblaettern. Tropisches Flair.",Helles bis volles Licht,18-27 °C,7,tree|bright_light,,,,,
|
||||
tree,constants/lexiconBatch2.ts,207,Fichte,Picea abies,Fichte ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,206,Kiefer,Pinus sylvestris,Kiefer ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,118,Tempel-Baum,Plumeria rubra,"Der Tempel-Baum hat intensiv duftende, sternfoermige Blueten in Weiss, Gelb oder Rosa. Klassische Tropenblume.",Volles Sonnenlicht,20-30 °C,7,flowering|tree|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,218,Kirschlorbeer,Prunus laurocerasus,Kirschlorbeer ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,89,Guave,Psidium guajava,Die Guave ist ein tropischer Obstbaum mit gelblich-weissen Fruechten. Sie ist reich an Vitamin C.,Volles Sonnenlicht,18-30 °C,7,tree|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,88,Granatapfelbaum,Punica granatum,"Der Granatapfelbaum hat leuchtend rote Blueten und rote, essbare Fruechte mit rubinroten Kernen.",Volles Sonnenlicht,15-28 °C,7,flowering|tree|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,205,Eiche,Quercus robur,Eiche ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
tree,constants/lexiconBatch1.ts,45,Stab-Palme,Rhapis excelsa,"Die Stab-Palme ist eine elegante Zimmerpalme mit faecherfoermigen Blaettern auf duennen, bambusartigen Staemmen.",Helles indirektes Licht,15-25 °C,7,tree|low_light,,,,,
|
||||
tree,constants/lexiconBatch2.ts,170,Rhododendron,Rhododendron catawbiense,"Rhododendron ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|tree|bright_light,,,,,
|
||||
tree,constants/lexiconBatch2.ts,214,Robinie,Robinia pseudoacacia,Robinie ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,113,Silber-Weide,Salix alba,"Die Silber-Weide hat silbrig-glaenzende Blaetter. Weidenrinde enthält Salicylsaeure, die Grundlage von Aspirin.",Helles bis volles Licht,10-25 °C,7,tree|large|medicinal,medicinal_requires_external_evidence,,,,
|
||||
tree,constants/lexiconBatch2.ts,112,Schwarzer Holunder,Sambucus nigra,Der Schwarze Holunder hat weisse Doldenbluten und schwarze Beeren. Die Fruechte werden fuer Sirup und Saft verwendet.,Helles bis volles Licht,10-25 °C,7,flowering|tree|medicinal,medicinal_requires_external_evidence,,,,
|
||||
tree,constants/lexiconBatch2.ts,11,Grosse Strahlenaralie,Schefflera actinophylla,"Die Grosse Strahlenaralie kann grosse, handfoermige Blaetter entwickeln. Sie ist ideal als Zimmerstrauch.",Helles indirektes Licht,18-27 °C,7,easy|tree|large,,,,,
|
||||
tree,constants/lexiconBatch2.ts,10,Strahlenaralie,Schefflera arboricola,"Die Strahlenaralie hat fingerfoermig angeordnete, glaenzende Blaetter auf langen Stielen. Sehr robuste Zimmerpflanze.",Helles indirektes Licht,15-25 °C,7,easy|tree|air_purifier,air_purifier_requires_external_evidence,,,,
|
||||
tree,constants/lexiconBatch2.ts,235,Falsche Aralie,Schefflera elegantissima,Falsche Aralie ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Helles indirektes Licht,18-27 C,7,tree|bright_light,,,,,
|
||||
tree,constants/lexiconBatch2.ts,213,Eberesche,Sorbus aucuparia,Eberesche ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,tree|large|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,222,Spierstrauch,Spiraea japonica,Spierstrauch ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,1,Weisse Strelitzie,Strelitzia nicolai,"Die Weisse Strelitzie ist ein beeindruckender Zimmerstrauch mit grossen, blaugruenen Blaettern und weiss-blauen Blueten.",Helles bis volles Licht,18-27 °C,7,tree|large|bright_light,,,,,
|
||||
tree,constants/lexiconBatch2.ts,149,Flieder,Syringa vulgaris,"Flieder ist eine beliebte Bluetenpflanze fuer Beet, Balkon oder Garten.",Volles bis helles Licht,10-24 C,4,flowering|tree|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,5,Mexikanische Fächerpalme,Washingtonia robusta,"Die Mexikanische Fächerpalme ist eine schlanke, hohe Palme mit faecherfoermigen Blaettern. Sehr hitzetolerant.",Volles Sonnenlicht,15-35 °C,10,tree|large|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,221,Weigelie,Weigela florida,Weigelie ist ein bekanntes Zier- oder Gartengehoelz mit dekorativem Wuchs.,Volles bis helles Licht,5-25 C,7,flowering|tree|sun,,,,,
|
||||
tree,constants/lexiconBatch2.ts,246,Yucca aloifolia,Yucca aloifolia,Yucca aloifolia ist eine beliebte Zimmerpflanze mit dekorativem Laub oder markantem Wuchs.,Volles Sonnenlicht,18-30 C,10,easy|tree|sun,,,,,
|
||||
tree,constants/lexiconBatch1.ts,40,Yucca-Palme,Yucca elephantipes,"Die Yucca-Palme ist eine robuste Zimmerpflanze mit starrem, immergruenem Blaetterschopf auf einem dicken Stamm.",Helles bis volles Licht,15-28 °C,14,easy|tree|sun,,,,,
|
||||
|
|
|
@ -0,0 +1,98 @@
|
|||
# Review Change Candidates
|
||||
|
||||
Date: 2026-03-12
|
||||
|
||||
Purpose:
|
||||
- collect the user-provided `AENDERN` review items in one place
|
||||
- separate already-applied semantic fixes from deferred raw source array reordering
|
||||
|
||||
Status summary:
|
||||
- semantic fixes: applied
|
||||
- export ordering: already normalized in `all-plants-categories.csv`
|
||||
- source-array ordering in the batch files: deferred on purpose
|
||||
|
||||
## Applied Semantic Fixes
|
||||
|
||||
- `Anthurium clarinervium`: `patterned|high_humidity|pet_friendly` -> `patterned|high_humidity`
|
||||
- `Anthurium crystallinum`: `patterned|high_humidity|pet_friendly` -> `patterned|high_humidity`
|
||||
- `Camellia sinensis`: `[]` -> `flowering`
|
||||
- `Mimosa pudica`: `[]` -> `flowering|bright_light`
|
||||
- `Spinacia oleracea`: `[]` -> `easy`
|
||||
|
||||
## Deferred Raw Source Array Reordering
|
||||
|
||||
These were left out of the source files because the export generator now canonicalizes category order in `all-plants-categories.csv`. If you still want the raw `categories` arrays in the batch files normalized too, these are the deferred candidates from the review list.
|
||||
|
||||
- `Acer platanoides`: `tree|sun|large` -> `tree|large|sun`
|
||||
- `Achillea millefolium`: `medicinal|flowering|sun` -> `flowering|medicinal|sun`
|
||||
- `Adenium obesum`: `succulent|flowering|sun` -> `flowering|succulent|sun`
|
||||
- `Adenium socotranum`: `succulent|flowering|sun` -> `flowering|succulent|sun`
|
||||
- `Agave americana`: `succulent|sun|large` -> `succulent|large|sun`
|
||||
- `Aglaonema commutatum`: `easy|low_light|patterned` -> `easy|patterned|low_light`
|
||||
- `Alocasia amazonica`: `patterned|high_humidity|large` -> `patterned|large|high_humidity`
|
||||
- `Aloe ferox`: `succulent|medicinal|sun|large` -> `succulent|medicinal|large|sun`
|
||||
- `Alpinia zerumbet`: `flowering|high_humidity|large` -> `flowering|large|high_humidity`
|
||||
- `Solanum aviculare`: `medicinal|flowering|sun` -> `flowering|medicinal|sun`
|
||||
- `Solanum laciniatum`: `medicinal|flowering|sun` -> `flowering|medicinal|sun`
|
||||
- `Strelitzia reginae`: `flowering|sun|large` -> `flowering|large|sun`
|
||||
- `Agapanthus africanus`: `flowering|sun|large` -> `flowering|large|sun`
|
||||
- `Aquilegia vulgaris`: `flowering|sun|pet_friendly` -> `flowering|pet_friendly|sun`
|
||||
- `Momordica balsamina`: `flowering|sun|medicinal` -> `flowering|medicinal|sun`
|
||||
- `Thunbergia alata`: `flowering|sun|hanging` -> `flowering|hanging|sun`
|
||||
- `Gerbera jamesonii`: `flowering|sun|pet_friendly` -> `flowering|pet_friendly|sun`
|
||||
- `Hibiscus rosa-sinensis`: `flowering|sun|large` -> `flowering|large|sun`
|
||||
- `Bergenia cordifolia`: `flowering|low_light|large` -> `flowering|large|low_light`
|
||||
- `Photinia serratifolia`: `tree|sun|large` -> `tree|large|sun`
|
||||
- `Chrysanthemum morifolium`: `flowering|sun|pet_friendly` -> `flowering|pet_friendly|sun`
|
||||
- `Galanthus nivalis`: `flowering|low_light|pet_friendly` -> `flowering|pet_friendly|low_light`
|
||||
- `Leucojum aestivum`: `flowering|low_light|pet_friendly` -> `flowering|pet_friendly|low_light`
|
||||
- `Cyclamen persicum`: `flowering|low_light|pet_friendly` -> `flowering|pet_friendly|low_light`
|
||||
- `Narcissus pseudonarcissus`: `flowering|sun|pet_friendly` -> `flowering|pet_friendly|sun`
|
||||
- `Dahlia pinnata`: `flowering|sun|pet_friendly` -> `flowering|pet_friendly|sun`
|
||||
- `Photinia fraseri`: `tree|sun|large` -> `tree|large|sun`
|
||||
- `Rosa canina`: `flowering|sun|medicinal` -> `flowering|medicinal|sun`
|
||||
- `Acer campestre`: `tree|sun|large` -> `tree|large|sun`
|
||||
- `Amelanchier ovalis`: `flowering|sun|large` -> `flowering|large|sun`
|
||||
- `Howea forsteriana`: `easy|pet_friendly|large|air_purifier|bright_light` -> `easy|pet_friendly|air_purifier|large|bright_light`
|
||||
- `Dracaena trifasciata`: `easy|air_purifier|low_light|large` -> `easy|air_purifier|large|low_light`
|
||||
- `Lobularia maritima`: `flowering|sun|hanging` -> `flowering|hanging|sun`
|
||||
- `Buxus sempervirens`: `tree|sun|large` -> `tree|large|sun`
|
||||
- `Cosmos bipinnatus`: `flowering|sun|pet_friendly` -> `flowering|pet_friendly|sun`
|
||||
- `Lilium candidum`: `flowering|sun|pet_friendly` -> `flowering|pet_friendly|sun`
|
||||
- `Origanum vulgare`: `medicinal|sun|pet_friendly` -> `medicinal|pet_friendly|sun`
|
||||
- `Rudbeckia hirta`: `flowering|sun|pet_friendly` -> `flowering|pet_friendly|sun`
|
||||
- `Hibiscus syriacus`: `flowering|sun|large` -> `flowering|large|sun`
|
||||
- `Sedum acre`: `succulent|sun|pet_friendly` -> `succulent|pet_friendly|sun`
|
||||
- `Fatsia japonica`: `tree|low_light|large` -> `tree|large|low_light`
|
||||
- `Ocimum tenuiflorum`: `medicinal|sun|flowering` -> `flowering|medicinal|sun`
|
||||
- `Ulmus minor`: `tree|sun|large` -> `tree|large|sun`
|
||||
- `Ulmus americana`: `tree|sun|large` -> `tree|large|sun`
|
||||
- `Ulmus glabra`: `tree|sun|large` -> `tree|large|sun`
|
||||
- `Aloysia citrodora`: `medicinal|sun|flowering` -> `flowering|medicinal|sun`
|
||||
- `Cucumis sativus`: `easy|sun|hanging` -> `easy|hanging|sun`
|
||||
- `Citrullus lanatus`: `easy|sun|hanging` -> `easy|hanging|sun`
|
||||
- `Hypoestes phyllostachya`: `patterned|bright_light|pet_friendly` -> `patterned|pet_friendly|bright_light`
|
||||
- `Nephrolepis exaltata`: `air_purifier|high_humidity|pet_friendly` -> `air_purifier|pet_friendly|high_humidity`
|
||||
- `Phalaenopsis amabilis`: `flowering|high_humidity|pet_friendly` -> `flowering|pet_friendly|high_humidity`
|
||||
- `Plantago major`: `medicinal|sun|pet_friendly` -> `medicinal|pet_friendly|sun`
|
||||
- `Chaenomeles japonica`: `flowering|sun|large` -> `flowering|large|sun`
|
||||
- `Rhododendron ferrugineum`: `flowering|low_light|large` -> `flowering|large|low_light`
|
||||
- `Brassica napus napobrassica`: `easy|sun|large` -> `easy|large|sun`
|
||||
- `Salvia apiana`: `medicinal|sun|flowering` -> `flowering|medicinal|sun`
|
||||
- `Salvia canariensis`: `medicinal|sun|flowering` -> `flowering|medicinal|sun`
|
||||
- `Helianthus annuus`: `flowering|sun|large` -> `flowering|large|sun`
|
||||
- `Syringa vulgaris`: `flowering|sun|large` -> `flowering|large|sun`
|
||||
- `Calystegia sepium`: `flowering|sun|hanging` -> `flowering|hanging|sun`
|
||||
- `Vanilla planifolia`: `flowering|high_humidity|hanging` -> `flowering|hanging|high_humidity`
|
||||
- `Vanda coerulea`: `flowering|high_humidity|bright_light` -> `flowering|bright_light|high_humidity`
|
||||
- `Verbascum thapsus`: `flowering|sun|medicinal` -> `flowering|medicinal|sun`
|
||||
- `Washingtonia robusta`: `tree|sun|large` -> `tree|large|sun`
|
||||
- `Wisteria sinensis`: `flowering|sun|large` -> `flowering|large|sun`
|
||||
- `Yucca aloifolia`: `tree|sun|easy` -> `easy|tree|sun`
|
||||
|
||||
## Notes
|
||||
|
||||
- Some review items were omitted because they were explicit no-ops, duplicate rows, or already effectively normalized by the export layer.
|
||||
- The obvious no-op reorder rows were removed from this file during cleanup.
|
||||
- Some older order proposals may now be stale if a later semantic audit intentionally changed the underlying categories.
|
||||
- The canonical order visible to QA should be taken from `all-plants-categories.csv`, not from the raw category array order inside the batch source files.
|
||||
|
|
@ -0,0 +1,76 @@
|
|||
{
|
||||
"generatedAt": "2026-03-12T14:15:29.567Z",
|
||||
"totalEntries": 358,
|
||||
"categories": [
|
||||
{
|
||||
"category": "pet_friendly",
|
||||
"count": 15,
|
||||
"priority": 1
|
||||
},
|
||||
{
|
||||
"category": "air_purifier",
|
||||
"count": 12,
|
||||
"priority": 2
|
||||
},
|
||||
{
|
||||
"category": "medicinal",
|
||||
"count": 32,
|
||||
"priority": 3
|
||||
},
|
||||
{
|
||||
"category": "low_light",
|
||||
"count": 16,
|
||||
"priority": 4
|
||||
},
|
||||
{
|
||||
"category": "bright_light",
|
||||
"count": 42,
|
||||
"priority": 5
|
||||
},
|
||||
{
|
||||
"category": "sun",
|
||||
"count": 172,
|
||||
"priority": 6
|
||||
},
|
||||
{
|
||||
"category": "easy",
|
||||
"count": 132,
|
||||
"priority": 7
|
||||
},
|
||||
{
|
||||
"category": "high_humidity",
|
||||
"count": 51,
|
||||
"priority": 8
|
||||
},
|
||||
{
|
||||
"category": "hanging",
|
||||
"count": 34,
|
||||
"priority": 9
|
||||
},
|
||||
{
|
||||
"category": "tree",
|
||||
"count": 59,
|
||||
"priority": 10
|
||||
},
|
||||
{
|
||||
"category": "large",
|
||||
"count": 35,
|
||||
"priority": 11
|
||||
},
|
||||
{
|
||||
"category": "patterned",
|
||||
"count": 31,
|
||||
"priority": 12
|
||||
},
|
||||
{
|
||||
"category": "flowering",
|
||||
"count": 157,
|
||||
"priority": 13
|
||||
},
|
||||
{
|
||||
"category": "succulent",
|
||||
"count": 46,
|
||||
"priority": 14
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,163 @@
|
|||
category,source_file,source_index,name,botanical_name,risk_flags
|
||||
air_purifier,constants/lexiconBatch1.ts,43,Bergpalme,Chamaedorea elegans,air_purifier_requires_external_evidence|pet_friendly_requires_external_evidence
|
||||
air_purifier,constants/lexiconBatch1.ts,48,Dieffenbachie,Dieffenbachia seguine,air_purifier_requires_external_evidence
|
||||
air_purifier,constants/lexiconBatch1.ts,14,Maisstrauch,Dracaena fragrans,air_purifier_requires_external_evidence
|
||||
air_purifier,constants/lexiconBatch1.ts,13,Drachenbaum,Dracaena marginata,air_purifier_requires_external_evidence
|
||||
air_purifier,constants/lexiconBatch1.ts,42,Goldfruchtpalme,Dypsis lutescens,air_purifier_requires_external_evidence|pet_friendly_requires_external_evidence
|
||||
air_purifier,constants/lexiconBatch1.ts,16,Marmor-Efeutute,Epipremnum aureum Marble Queen,air_purifier_requires_external_evidence
|
||||
air_purifier,constants/lexiconBatch2.ts,53,Neon-Efeutute,Epipremnum pinnatum Neon,air_purifier_requires_external_evidence
|
||||
air_purifier,constants/lexiconBatch1.ts,1,Birkenfeige,Ficus benjamina,air_purifier_requires_external_evidence
|
||||
air_purifier,constants/lexiconBatch1.ts,38,Gummibaum,Ficus elastica,air_purifier_requires_external_evidence
|
||||
air_purifier,constants/lexiconBatch1.ts,68,Gerbera,Gerbera jamesonii,air_purifier_requires_external_evidence
|
||||
air_purifier,constants/lexiconBatch1.ts,37,Efeu,Hedera helix,air_purifier_requires_external_evidence
|
||||
air_purifier,constants/lexiconBatch2.ts,10,Strahlenaralie,Schefflera arboricola,air_purifier_requires_external_evidence
|
||||
bright_light,constants/lexiconBatch1.ts,68,Gerbera,Gerbera jamesonii,air_purifier_requires_external_evidence
|
||||
bright_light,constants/lexiconBatch1.ts,23,Echter Lavendel,Lavandula angustifolia,medicinal_requires_external_evidence
|
||||
easy,constants/lexiconBatch1.ts,89,Kap-Aloe,Aloe arborescens,medicinal_requires_external_evidence
|
||||
easy,constants/lexiconBatch2.ts,92,Chili,Capsicum annuum,medicinal_requires_external_evidence
|
||||
easy,constants/lexiconBatch1.ts,43,Bergpalme,Chamaedorea elegans,air_purifier_requires_external_evidence|pet_friendly_requires_external_evidence
|
||||
easy,constants/lexiconBatch2.ts,138,Roemische Kamille,Chamaemelum nobile,medicinal_requires_external_evidence
|
||||
easy,constants/lexiconBatch2.ts,101,Kamille,Chamomilla recutita,medicinal_requires_external_evidence
|
||||
easy,constants/lexiconBatch1.ts,48,Dieffenbachie,Dieffenbachia seguine,air_purifier_requires_external_evidence
|
||||
easy,constants/lexiconBatch1.ts,14,Maisstrauch,Dracaena fragrans,air_purifier_requires_external_evidence
|
||||
easy,constants/lexiconBatch1.ts,13,Drachenbaum,Dracaena marginata,air_purifier_requires_external_evidence
|
||||
easy,constants/lexiconBatch1.ts,16,Marmor-Efeutute,Epipremnum aureum Marble Queen,air_purifier_requires_external_evidence
|
||||
easy,constants/lexiconBatch2.ts,53,Neon-Efeutute,Epipremnum pinnatum Neon,air_purifier_requires_external_evidence
|
||||
easy,constants/lexiconBatch1.ts,38,Gummibaum,Ficus elastica,air_purifier_requires_external_evidence
|
||||
easy,constants/lexiconBatch2.ts,100,Erdbeere,Fragaria ananassa,pet_friendly_requires_external_evidence
|
||||
easy,constants/lexiconBatch1.ts,37,Efeu,Hedera helix,air_purifier_requires_external_evidence
|
||||
easy,constants/lexiconBatch2.ts,102,Zitronenmelisse,Melissa officinalis,medicinal_requires_external_evidence
|
||||
easy,constants/lexiconBatch1.ts,25,Basilikum,Ocimum basilicum,medicinal_requires_external_evidence
|
||||
easy,constants/lexiconBatch1.ts,28,Oregano,Origanum vulgare,medicinal_requires_external_evidence
|
||||
easy,constants/lexiconBatch1.ts,31,Rosengeranie,Pelargonium graveolens,medicinal_requires_external_evidence
|
||||
easy,constants/lexiconBatch1.ts,102,Rippenpeperomie,Peperomia caperata,pet_friendly_requires_external_evidence
|
||||
easy,constants/lexiconBatch1.ts,103,Spiegelpeperomie,Peperomia obtusifolia,pet_friendly_requires_external_evidence
|
||||
easy,constants/lexiconBatch2.ts,230,Raindrop-Peperomie,Peperomia polybotrya,pet_friendly_requires_external_evidence
|
||||
easy,constants/lexiconBatch1.ts,34,Petunie,Petunia hybrida,pet_friendly_requires_external_evidence
|
||||
easy,constants/lexiconBatch2.ts,228,Aluminium-Pflanze,Pilea cadierei,pet_friendly_requires_external_evidence
|
||||
easy,constants/lexiconBatch1.ts,2,Ufopflanze,Pilea peperomioides,pet_friendly_requires_external_evidence
|
||||
easy,constants/lexiconBatch1.ts,24,Rosmarin,Rosmarinus officinalis,medicinal_requires_external_evidence
|
||||
easy,constants/lexiconBatch2.ts,103,Salbei,Salvia officinalis,medicinal_requires_external_evidence
|
||||
easy,constants/lexiconBatch2.ts,10,Strahlenaralie,Schefflera arboricola,air_purifier_requires_external_evidence
|
||||
easy,constants/lexiconBatch1.ts,27,Thymian,Thymus vulgaris,medicinal_requires_external_evidence
|
||||
flowering,constants/lexiconBatch2.ts,108,Schafgarbe,Achillea millefolium,medicinal_requires_external_evidence
|
||||
flowering,constants/lexiconBatch2.ts,107,Arnika,Arnica montana,medicinal_requires_external_evidence
|
||||
flowering,constants/lexiconBatch2.ts,187,Ringelblume,Calendula officinalis,medicinal_requires_external_evidence
|
||||
flowering,constants/lexiconBatch2.ts,160,Maigloeckchen,Convallaria majalis,medicinal_requires_external_evidence
|
||||
flowering,constants/lexiconBatch2.ts,109,Roter Fingerhut,Digitalis purpurea,medicinal_requires_external_evidence
|
||||
flowering,constants/lexiconBatch2.ts,106,Sonnenhut,Echinacea purpurea,medicinal_requires_external_evidence
|
||||
flowering,constants/lexiconBatch1.ts,68,Gerbera,Gerbera jamesonii,air_purifier_requires_external_evidence
|
||||
flowering,constants/lexiconBatch2.ts,119,Zaubernuss,Hamamelis mollis,medicinal_requires_external_evidence
|
||||
flowering,constants/lexiconBatch2.ts,105,Johanniskraut,Hypericum perforatum,medicinal_requires_external_evidence
|
||||
flowering,constants/lexiconBatch1.ts,34,Petunie,Petunia hybrida,pet_friendly_requires_external_evidence
|
||||
flowering,constants/lexiconBatch2.ts,112,Schwarzer Holunder,Sambucus nigra,medicinal_requires_external_evidence
|
||||
flowering,constants/lexiconBatch2.ts,104,Baldrian,Valeriana officinalis,medicinal_requires_external_evidence
|
||||
flowering,constants/lexiconBatch2.ts,192,Koenigskerze,Verbascum thapsus,medicinal_requires_external_evidence
|
||||
hanging,constants/lexiconBatch1.ts,16,Marmor-Efeutute,Epipremnum aureum Marble Queen,air_purifier_requires_external_evidence
|
||||
hanging,constants/lexiconBatch2.ts,53,Neon-Efeutute,Epipremnum pinnatum Neon,air_purifier_requires_external_evidence
|
||||
hanging,constants/lexiconBatch1.ts,37,Efeu,Hedera helix,air_purifier_requires_external_evidence
|
||||
high_humidity,constants/lexiconBatch2.ts,74,Kurkuma,Curcuma longa,medicinal_requires_external_evidence
|
||||
high_humidity,constants/lexiconBatch2.ts,240,Calathea lancifolia,Goeppertia insignis,pet_friendly_requires_external_evidence
|
||||
high_humidity,constants/lexiconBatch2.ts,241,Calathea ornata,Goeppertia ornata,pet_friendly_requires_external_evidence
|
||||
high_humidity,constants/lexiconBatch1.ts,51,Gebet-Pflanze,Maranta leuconeura,pet_friendly_requires_external_evidence
|
||||
high_humidity,constants/lexiconBatch2.ts,238,Bubikopf,Soleirolia soleirolii,pet_friendly_requires_external_evidence
|
||||
high_humidity,constants/lexiconBatch2.ts,75,Ingwer,Zingiber officinale,medicinal_requires_external_evidence
|
||||
large,constants/lexiconBatch2.ts,18,Kap-Aloe (ferox),Aloe ferox,medicinal_requires_external_evidence
|
||||
large,constants/lexiconBatch2.ts,114,Hange-Birke,Betula pendula,medicinal_requires_external_evidence
|
||||
large,constants/lexiconBatch2.ts,113,Silber-Weide,Salix alba,medicinal_requires_external_evidence
|
||||
low_light,constants/lexiconBatch1.ts,43,Bergpalme,Chamaedorea elegans,air_purifier_requires_external_evidence|pet_friendly_requires_external_evidence
|
||||
low_light,constants/lexiconBatch1.ts,48,Dieffenbachie,Dieffenbachia seguine,air_purifier_requires_external_evidence
|
||||
low_light,constants/lexiconBatch1.ts,14,Maisstrauch,Dracaena fragrans,air_purifier_requires_external_evidence
|
||||
low_light,constants/lexiconBatch1.ts,37,Efeu,Hedera helix,air_purifier_requires_external_evidence
|
||||
low_light,constants/lexiconBatch2.ts,3,Kentia-Palme,Howea forsteriana,pet_friendly_requires_external_evidence
|
||||
low_light,constants/lexiconBatch1.ts,103,Spiegelpeperomie,Peperomia obtusifolia,pet_friendly_requires_external_evidence
|
||||
medicinal,constants/lexiconBatch2.ts,108,Schafgarbe,Achillea millefolium,medicinal_requires_external_evidence
|
||||
medicinal,constants/lexiconBatch1.ts,89,Kap-Aloe,Aloe arborescens,medicinal_requires_external_evidence
|
||||
medicinal,constants/lexiconBatch2.ts,18,Kap-Aloe (ferox),Aloe ferox,medicinal_requires_external_evidence
|
||||
medicinal,constants/lexiconBatch2.ts,107,Arnika,Arnica montana,medicinal_requires_external_evidence
|
||||
medicinal,constants/lexiconBatch2.ts,110,Wermut,Artemisia absinthium,medicinal_requires_external_evidence
|
||||
medicinal,constants/lexiconBatch2.ts,114,Hange-Birke,Betula pendula,medicinal_requires_external_evidence
|
||||
medicinal,constants/lexiconBatch2.ts,187,Ringelblume,Calendula officinalis,medicinal_requires_external_evidence
|
||||
medicinal,constants/lexiconBatch2.ts,92,Chili,Capsicum annuum,medicinal_requires_external_evidence
|
||||
medicinal,constants/lexiconBatch2.ts,138,Roemische Kamille,Chamaemelum nobile,medicinal_requires_external_evidence
|
||||
medicinal,constants/lexiconBatch2.ts,101,Kamille,Chamomilla recutita,medicinal_requires_external_evidence
|
||||
medicinal,constants/lexiconBatch2.ts,160,Maigloeckchen,Convallaria majalis,medicinal_requires_external_evidence
|
||||
medicinal,constants/lexiconBatch2.ts,74,Kurkuma,Curcuma longa,medicinal_requires_external_evidence
|
||||
medicinal,constants/lexiconBatch2.ts,109,Roter Fingerhut,Digitalis purpurea,medicinal_requires_external_evidence
|
||||
medicinal,constants/lexiconBatch2.ts,106,Sonnenhut,Echinacea purpurea,medicinal_requires_external_evidence
|
||||
medicinal,constants/lexiconBatch2.ts,210,Eukalyptus,Eucalyptus globulus,medicinal_requires_external_evidence
|
||||
medicinal,constants/lexiconBatch2.ts,216,Ginkgo,Ginkgo biloba,medicinal_requires_external_evidence
|
||||
medicinal,constants/lexiconBatch2.ts,119,Zaubernuss,Hamamelis mollis,medicinal_requires_external_evidence
|
||||
medicinal,constants/lexiconBatch2.ts,105,Johanniskraut,Hypericum perforatum,medicinal_requires_external_evidence
|
||||
medicinal,constants/lexiconBatch1.ts,23,Echter Lavendel,Lavandula angustifolia,medicinal_requires_external_evidence
|
||||
medicinal,constants/lexiconBatch2.ts,102,Zitronenmelisse,Melissa officinalis,medicinal_requires_external_evidence
|
||||
medicinal,constants/lexiconBatch1.ts,25,Basilikum,Ocimum basilicum,medicinal_requires_external_evidence
|
||||
medicinal,constants/lexiconBatch1.ts,28,Oregano,Origanum vulgare,medicinal_requires_external_evidence
|
||||
medicinal,constants/lexiconBatch1.ts,31,Rosengeranie,Pelargonium graveolens,medicinal_requires_external_evidence
|
||||
medicinal,constants/lexiconBatch1.ts,24,Rosmarin,Rosmarinus officinalis,medicinal_requires_external_evidence
|
||||
medicinal,constants/lexiconBatch2.ts,113,Silber-Weide,Salix alba,medicinal_requires_external_evidence
|
||||
medicinal,constants/lexiconBatch2.ts,103,Salbei,Salvia officinalis,medicinal_requires_external_evidence
|
||||
medicinal,constants/lexiconBatch2.ts,112,Schwarzer Holunder,Sambucus nigra,medicinal_requires_external_evidence
|
||||
medicinal,constants/lexiconBatch1.ts,27,Thymian,Thymus vulgaris,medicinal_requires_external_evidence
|
||||
medicinal,constants/lexiconBatch2.ts,111,Grosse Brennessel,Urtica dioica,medicinal_requires_external_evidence
|
||||
medicinal,constants/lexiconBatch2.ts,104,Baldrian,Valeriana officinalis,medicinal_requires_external_evidence
|
||||
medicinal,constants/lexiconBatch2.ts,192,Koenigskerze,Verbascum thapsus,medicinal_requires_external_evidence
|
||||
medicinal,constants/lexiconBatch2.ts,75,Ingwer,Zingiber officinale,medicinal_requires_external_evidence
|
||||
patterned,constants/lexiconBatch2.ts,240,Calathea lancifolia,Goeppertia insignis,pet_friendly_requires_external_evidence
|
||||
patterned,constants/lexiconBatch2.ts,241,Calathea ornata,Goeppertia ornata,pet_friendly_requires_external_evidence
|
||||
patterned,constants/lexiconBatch1.ts,51,Gebet-Pflanze,Maranta leuconeura,pet_friendly_requires_external_evidence
|
||||
patterned,constants/lexiconBatch2.ts,229,Wassermelonen-Peperomie,Peperomia argyreia,pet_friendly_requires_external_evidence
|
||||
patterned,constants/lexiconBatch2.ts,228,Aluminium-Pflanze,Pilea cadierei,pet_friendly_requires_external_evidence
|
||||
pet_friendly,constants/lexiconBatch1.ts,43,Bergpalme,Chamaedorea elegans,air_purifier_requires_external_evidence|pet_friendly_requires_external_evidence
|
||||
pet_friendly,constants/lexiconBatch1.ts,42,Goldfruchtpalme,Dypsis lutescens,air_purifier_requires_external_evidence|pet_friendly_requires_external_evidence
|
||||
pet_friendly,constants/lexiconBatch2.ts,100,Erdbeere,Fragaria ananassa,pet_friendly_requires_external_evidence
|
||||
pet_friendly,constants/lexiconBatch2.ts,240,Calathea lancifolia,Goeppertia insignis,pet_friendly_requires_external_evidence
|
||||
pet_friendly,constants/lexiconBatch2.ts,241,Calathea ornata,Goeppertia ornata,pet_friendly_requires_external_evidence
|
||||
pet_friendly,constants/lexiconBatch2.ts,3,Kentia-Palme,Howea forsteriana,pet_friendly_requires_external_evidence
|
||||
pet_friendly,constants/lexiconBatch1.ts,51,Gebet-Pflanze,Maranta leuconeura,pet_friendly_requires_external_evidence
|
||||
pet_friendly,constants/lexiconBatch2.ts,229,Wassermelonen-Peperomie,Peperomia argyreia,pet_friendly_requires_external_evidence
|
||||
pet_friendly,constants/lexiconBatch1.ts,102,Rippenpeperomie,Peperomia caperata,pet_friendly_requires_external_evidence
|
||||
pet_friendly,constants/lexiconBatch1.ts,103,Spiegelpeperomie,Peperomia obtusifolia,pet_friendly_requires_external_evidence
|
||||
pet_friendly,constants/lexiconBatch2.ts,230,Raindrop-Peperomie,Peperomia polybotrya,pet_friendly_requires_external_evidence
|
||||
pet_friendly,constants/lexiconBatch1.ts,34,Petunie,Petunia hybrida,pet_friendly_requires_external_evidence
|
||||
pet_friendly,constants/lexiconBatch2.ts,228,Aluminium-Pflanze,Pilea cadierei,pet_friendly_requires_external_evidence
|
||||
pet_friendly,constants/lexiconBatch1.ts,2,Ufopflanze,Pilea peperomioides,pet_friendly_requires_external_evidence
|
||||
pet_friendly,constants/lexiconBatch2.ts,238,Bubikopf,Soleirolia soleirolii,pet_friendly_requires_external_evidence
|
||||
succulent,constants/lexiconBatch1.ts,89,Kap-Aloe,Aloe arborescens,medicinal_requires_external_evidence
|
||||
succulent,constants/lexiconBatch2.ts,18,Kap-Aloe (ferox),Aloe ferox,medicinal_requires_external_evidence
|
||||
sun,constants/lexiconBatch2.ts,108,Schafgarbe,Achillea millefolium,medicinal_requires_external_evidence
|
||||
sun,constants/lexiconBatch1.ts,89,Kap-Aloe,Aloe arborescens,medicinal_requires_external_evidence
|
||||
sun,constants/lexiconBatch2.ts,18,Kap-Aloe (ferox),Aloe ferox,medicinal_requires_external_evidence
|
||||
sun,constants/lexiconBatch2.ts,107,Arnika,Arnica montana,medicinal_requires_external_evidence
|
||||
sun,constants/lexiconBatch2.ts,110,Wermut,Artemisia absinthium,medicinal_requires_external_evidence
|
||||
sun,constants/lexiconBatch2.ts,187,Ringelblume,Calendula officinalis,medicinal_requires_external_evidence
|
||||
sun,constants/lexiconBatch2.ts,92,Chili,Capsicum annuum,medicinal_requires_external_evidence
|
||||
sun,constants/lexiconBatch2.ts,138,Roemische Kamille,Chamaemelum nobile,medicinal_requires_external_evidence
|
||||
sun,constants/lexiconBatch2.ts,101,Kamille,Chamomilla recutita,medicinal_requires_external_evidence
|
||||
sun,constants/lexiconBatch2.ts,106,Sonnenhut,Echinacea purpurea,medicinal_requires_external_evidence
|
||||
sun,constants/lexiconBatch2.ts,210,Eukalyptus,Eucalyptus globulus,medicinal_requires_external_evidence
|
||||
sun,constants/lexiconBatch2.ts,100,Erdbeere,Fragaria ananassa,pet_friendly_requires_external_evidence
|
||||
sun,constants/lexiconBatch2.ts,216,Ginkgo,Ginkgo biloba,medicinal_requires_external_evidence
|
||||
sun,constants/lexiconBatch2.ts,105,Johanniskraut,Hypericum perforatum,medicinal_requires_external_evidence
|
||||
sun,constants/lexiconBatch1.ts,23,Echter Lavendel,Lavandula angustifolia,medicinal_requires_external_evidence
|
||||
sun,constants/lexiconBatch1.ts,25,Basilikum,Ocimum basilicum,medicinal_requires_external_evidence
|
||||
sun,constants/lexiconBatch1.ts,28,Oregano,Origanum vulgare,medicinal_requires_external_evidence
|
||||
sun,constants/lexiconBatch1.ts,31,Rosengeranie,Pelargonium graveolens,medicinal_requires_external_evidence
|
||||
sun,constants/lexiconBatch1.ts,34,Petunie,Petunia hybrida,pet_friendly_requires_external_evidence
|
||||
sun,constants/lexiconBatch1.ts,24,Rosmarin,Rosmarinus officinalis,medicinal_requires_external_evidence
|
||||
sun,constants/lexiconBatch2.ts,103,Salbei,Salvia officinalis,medicinal_requires_external_evidence
|
||||
sun,constants/lexiconBatch1.ts,27,Thymian,Thymus vulgaris,medicinal_requires_external_evidence
|
||||
sun,constants/lexiconBatch2.ts,192,Koenigskerze,Verbascum thapsus,medicinal_requires_external_evidence
|
||||
tree,constants/lexiconBatch2.ts,114,Hange-Birke,Betula pendula,medicinal_requires_external_evidence
|
||||
tree,constants/lexiconBatch1.ts,43,Bergpalme,Chamaedorea elegans,air_purifier_requires_external_evidence|pet_friendly_requires_external_evidence
|
||||
tree,constants/lexiconBatch1.ts,14,Maisstrauch,Dracaena fragrans,air_purifier_requires_external_evidence
|
||||
tree,constants/lexiconBatch1.ts,13,Drachenbaum,Dracaena marginata,air_purifier_requires_external_evidence
|
||||
tree,constants/lexiconBatch1.ts,42,Goldfruchtpalme,Dypsis lutescens,air_purifier_requires_external_evidence|pet_friendly_requires_external_evidence
|
||||
tree,constants/lexiconBatch2.ts,210,Eukalyptus,Eucalyptus globulus,medicinal_requires_external_evidence
|
||||
tree,constants/lexiconBatch1.ts,1,Birkenfeige,Ficus benjamina,air_purifier_requires_external_evidence
|
||||
tree,constants/lexiconBatch1.ts,38,Gummibaum,Ficus elastica,air_purifier_requires_external_evidence
|
||||
tree,constants/lexiconBatch2.ts,216,Ginkgo,Ginkgo biloba,medicinal_requires_external_evidence
|
||||
tree,constants/lexiconBatch2.ts,3,Kentia-Palme,Howea forsteriana,pet_friendly_requires_external_evidence
|
||||
tree,constants/lexiconBatch2.ts,113,Silber-Weide,Salix alba,medicinal_requires_external_evidence
|
||||
tree,constants/lexiconBatch2.ts,112,Schwarzer Holunder,Sambucus nigra,medicinal_requires_external_evidence
|
||||
tree,constants/lexiconBatch2.ts,10,Strahlenaralie,Schefflera arboricola,air_purifier_requires_external_evidence
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
# Wave 1 Findings
|
||||
|
||||
Date: 2026-03-12
|
||||
|
||||
Scope:
|
||||
- `pet_friendly`
|
||||
- `air_purifier`
|
||||
|
||||
Changes applied to source data:
|
||||
- Added `pet_friendly` to `Dypsis lutescens` (`Goldfruchtpalme`)
|
||||
- Added `pet_friendly` to `Chamaedorea elegans` (`Bergpalme`)
|
||||
- Added `pet_friendly` to `Howea forsteriana` (`Kentia-Palme`)
|
||||
- Added `pet_friendly` to `Pilea cadierei` (`Aluminium-Pflanze`)
|
||||
- Added `pet_friendly` to `Goeppertia insignis` (`Calathea lancifolia`) based on ASPCA `Calathea spp.` coverage
|
||||
- Added `pet_friendly` to `Goeppertia ornata` (`Calathea ornata`) based on ASPCA `Calathea spp.` coverage
|
||||
- Removed `air_purifier` from `Tillandsia usneoides` (`Spanisches Moos`)
|
||||
- Removed `air_purifier` from `Phlebodium aureum` (`Blaues Kanaelfarn`)
|
||||
|
||||
Evidence basis used:
|
||||
- ASPCA non-toxic entries for `Areca Palm`, `Parlor Palm`, `Kentia Palm`
|
||||
- ASPCA non-toxic entries for `Aluminum Plant` and `Calathea spp.`
|
||||
- Conservative removal for `Tillandsia usneoides` and `Phlebodium aureum` because no equally strong primary air-purifier support was confirmed during this wave
|
||||
|
||||
Deliberately not changed in this wave:
|
||||
- Borderline or genus-adjacent `pet_friendly` candidates without direct enough evidence in hand
|
||||
- Most remaining `air_purifier` entries, because several are plausible but need a stricter literature pass rather than guesswork
|
||||
|
||||
Operational note:
|
||||
- These source changes do not update the persisted backend catalog automatically.
|
||||
- Production still needs a catalog rebuild via `server/scripts/rebuild-from-batches.js` and a deploy.
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
# Wave 2 Findings
|
||||
|
||||
Date: 2026-03-12
|
||||
|
||||
Scope:
|
||||
- `low_light`
|
||||
- `bright_light`
|
||||
- `sun`
|
||||
|
||||
Changes applied to source data:
|
||||
- Removed `low_light` from `Saintpaulia ionantha` (`Afrikanisches Veilchen`)
|
||||
- Removed `low_light` from `Clivia miniata` (`Riemenblatt`)
|
||||
- Removed `sun` from `Helleborus orientalis` (`Lenzrose`) by overriding the default flower categories to `['flowering']`
|
||||
|
||||
Evidence basis used:
|
||||
- `Saintpaulia ionantha`: bright indirect light guidance, not a true low-light placement
|
||||
- `Clivia miniata`: bright indirect / filtered light guidance, not a dark-corner low-light placement
|
||||
- `Helleborus orientalis`: part-shade / shade-oriented placement, so `sun` was too broad
|
||||
|
||||
Deliberately not changed in this wave:
|
||||
- `Haworthia fasciata` and `Gasteria carinata` in `low_light`, because they are borderline tolerance cases and need a tighter horticultural pass before retagging
|
||||
- `Wasabi` in `bright_light`, because the current label can still be read as bright indirect rather than direct sun
|
||||
- `Hydrangea macrophylla` in `bright_light`, because the existing tag remains plausible for bright, non-scorching conditions
|
||||
- broad `sun` garden inventories that are locally consistent and would need species-by-species horticultural review rather than heuristic edits
|
||||
|
||||
Operational note:
|
||||
- These source changes do not update the persisted backend catalog automatically.
|
||||
- Production still needs a catalog rebuild via `server/scripts/rebuild-from-batches.js` and a deploy.
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
# Wave 3 Findings
|
||||
|
||||
Date: 2026-03-12
|
||||
|
||||
Scope:
|
||||
- `easy`
|
||||
- `high_humidity`
|
||||
- `medicinal`
|
||||
|
||||
Changes applied to source data:
|
||||
- Removed `easy` from `Ficus retusa` (`Bonsai-Feige`)
|
||||
- Removed `easy` from `Mimosa pudica` (`Schamkraut`)
|
||||
- Removed `medicinal` from `Petroselinum crispum` (`Petersilie`)
|
||||
- Removed `medicinal` from `Allium schoenoprasum` (`Schnittlauch`)
|
||||
- Removed `medicinal` from `Vanilla planifolia` (`Vanille`)
|
||||
- Removed `medicinal` from `Coffea arabica` (`Kaffeestrauch`)
|
||||
- Removed `medicinal` from `Camellia sinensis` (`Teestrauch`)
|
||||
- Removed `medicinal` from `Citrus limon`, `Citrus sinensis`, `Punica granatum`, `Psidium guajava`, `Carica papaya`
|
||||
- Removed `medicinal` from `Solanum lycopersicum` (`Tomate`), `Spinacia oleracea` (`Spinat`), `Daucus carota` (`Karotte`)
|
||||
- Removed `medicinal` from `Tagetes patula` (`Studentenblume`)
|
||||
- Removed `medicinal` from `Eutrema japonicum` (`Wasabi`)
|
||||
- Removed the implicit `medicinal` default from `createHerbEntry()` so generic kitchen-herb imports no longer auto-enter the medicinal category
|
||||
- Re-added `medicinal` explicitly for `Chamaemelum nobile` (`Roemische Kamille`)
|
||||
|
||||
Evidence basis used:
|
||||
- `medicinal` is now treated as a conservative herbal/medical identity tag, not a catch-all for edible, aromatic, vitamin-rich, or beverage plants
|
||||
- entries whose local descriptions are purely culinary, fruit, vegetable, or ornamental were de-scoped from `medicinal`
|
||||
- `high_humidity` did not receive source-data changes in this wave because the current set looked locally coherent enough that heuristic edits would add more risk than value
|
||||
|
||||
Deliberately not changed in this wave:
|
||||
- many classic medicinal herbs that remain intentionally tagged, such as `Kamille`, `Salbei`, `Lavendel`, `Zitronenmelisse`, `Johanniskraut`, `Baldrian`, `Ingwer`, `Kurkuma`, `Eukalyptus`, `Ginkgo`, `Thymian`
|
||||
- borderline `easy` cases beyond `Bonsai-Feige` and `Schamkraut`
|
||||
- `high_humidity` entries without clear contradiction in local care/descriptive text
|
||||
|
||||
Operational note:
|
||||
- These source changes do not update the persisted backend catalog automatically.
|
||||
- Production still needs a catalog rebuild via `server/scripts/rebuild-from-batches.js` and a deploy.
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
# Wave 4 Findings
|
||||
|
||||
Date: 2026-03-12
|
||||
|
||||
Scope:
|
||||
- `tree`
|
||||
- `large`
|
||||
- `patterned`
|
||||
- `flowering`
|
||||
|
||||
Changes applied to source data:
|
||||
- Removed `patterned` from `Acer palmatum` (`Faecherahorn`)
|
||||
- Removed `patterned` from `Beta vulgaris` (`Mangold`)
|
||||
- Removed `large` from `Buxus sempervirens` (`Buchsbaum`)
|
||||
- Removed `large` from `Ilex aquifolium` (`Stechpalme`)
|
||||
- Removed `large` from `Prunus laurocerasus` (`Kirschlorbeer`)
|
||||
- Removed `large` from `Thaumatophyllum xanadu` (`Philodendron Xanadu`)
|
||||
- Removed `tree` from `Coffea arabica Nana` (`Kaffeepflanze arabica nana`)
|
||||
|
||||
Evidence basis used:
|
||||
- `patterned` is treated as a foliage-pattern identity tag, not a generic color, form, or ornamental-value tag
|
||||
- `large` is treated conservatively for clearly size-defining growth, not as an automatic consequence of every tree/shrub import
|
||||
- `tree` on the dwarf coffee plant was too broad in the current houseplant context
|
||||
|
||||
Deliberately not changed in this wave:
|
||||
- `flowering` received no source-data changes because the current set looked locally coherent enough for this pass
|
||||
- borderline foliage cases like `Monstera obliqua` remained unchanged because its fenestrated leaf look can still be argued as a visual-pattern discovery target
|
||||
- clearly large species and true tree-form entries were left intact
|
||||
|
||||
Operational note:
|
||||
- These source changes do not update the persisted backend catalog automatically.
|
||||
- Production still needs a catalog rebuild via `server/scripts/rebuild-from-batches.js` and a deploy.
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
# Wave 5 Findings
|
||||
|
||||
Date: 2026-03-12
|
||||
|
||||
Scope:
|
||||
- `hanging`
|
||||
- `succulent`
|
||||
|
||||
Changes applied to source data:
|
||||
- Added `succulent` to `Hoya carnosa` (`Wachsblume`)
|
||||
- Removed `hanging` from `Passiflora caerulea` (`Passionsblume`)
|
||||
- Removed `hanging` from `Cucumis sativus` (`Gurke`)
|
||||
|
||||
Evidence basis used:
|
||||
- `succulent` was added only where the local source text explicitly supported water-storing or fleshy foliage traits; `Hoya carnosa` already described `dicken, wachsartigen Blaettern` and sat next to the already-succulent `Hoya bella`
|
||||
- `hanging` was treated as a trailing, cascading, or hanging-basket discovery tag, not a generic catch-all for any climbing or vining species
|
||||
- `Passiflora caerulea` and `Cucumis sativus` read locally as climbers/vines rather than clear hanging-basket plants
|
||||
|
||||
Deliberately not changed in this wave:
|
||||
- `Beaucarnea recurvata` kept `succulent` because the source text explicitly mentions a swollen water-storing stem base
|
||||
- trailing epiphytes and epiphytic cacti like `Dischidia ruscifolia`, `Rhipsalis baccifera`, and `Hoya bella` remained unchanged because the local descriptions still support `succulent` and/or `hanging`
|
||||
- carnivorous hanging candidates like `Nepenthes alata` remained unchanged because the category still works for hanging-display discovery
|
||||
|
||||
Operational note:
|
||||
- These source changes do not update the persisted backend catalog automatically.
|
||||
- Production still needs a catalog rebuild via `server/scripts/rebuild-from-batches.js` and a deploy.
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
module.exports = function (api) {
|
||||
api.cache(true);
|
||||
return {
|
||||
presets: ['babel-preset-expo'],
|
||||
};
|
||||
};
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
import React, { useState, useEffect } from 'react';
|
||||
import { StyleSheet } from 'react-native';
|
||||
import { Video, ResizeMode } from 'expo-av';
|
||||
import * as SplashScreen from 'expo-splash-screen';
|
||||
import Animated, { FadeOut } from 'react-native-reanimated';
|
||||
import { useApp } from '../context/AppContext';
|
||||
import { useColors } from '../constants/Colors';
|
||||
|
||||
interface Props {
|
||||
isAppReady: boolean;
|
||||
onAnimationComplete: () => void;
|
||||
}
|
||||
|
||||
export function AnimatedSplashScreen({ isAppReady, onAnimationComplete }: Props) {
|
||||
const [hasPlayedEnough, setHasPlayedEnough] = useState(false);
|
||||
|
||||
useEffect(() => {
|
||||
// Ensure the video plays for at least 2 seconds before we allow it to finish,
|
||||
// so it doesn't flash too fast and provides a premium feel.
|
||||
const timer = setTimeout(() => {
|
||||
setHasPlayedEnough(true);
|
||||
}, 2000);
|
||||
return () => clearTimeout(timer);
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
if (isAppReady && hasPlayedEnough) {
|
||||
onAnimationComplete();
|
||||
}
|
||||
}, [isAppReady, hasPlayedEnough, onAnimationComplete]);
|
||||
|
||||
// Determine the background color to blend perfectly
|
||||
const { isDarkMode, colorPalette } = useApp();
|
||||
const colors = useColors(isDarkMode, colorPalette);
|
||||
return (
|
||||
<Animated.View exiting={FadeOut.duration(600)} style={[StyleSheet.absoluteFill, { zIndex: 9999, backgroundColor: colors.background, alignItems: 'center', justifyContent: 'center' }]}>
|
||||
<Animated.View style={{ width: 220, height: 220, borderRadius: 45, overflow: 'hidden', backgroundColor: colors.surface, shadowColor: '#000', shadowOffset: { width: 0, height: 4 }, shadowOpacity: 0.15, shadowRadius: 15, elevation: 8, transform: [{ scale: 1 }] }}>
|
||||
<Video
|
||||
source={require('../assets/Make_some_light_leaf_animations_delpmaspu_.mp4')}
|
||||
style={{ width: '100%', height: '100%' }}
|
||||
resizeMode={ResizeMode.COVER}
|
||||
shouldPlay
|
||||
isMuted
|
||||
isLooping
|
||||
rate={2.0} // Play at 2x speed to make the 8-second video feel punchier as a loading screen
|
||||
onReadyForDisplay={() => {
|
||||
// Instantly hide the native static splash screen as soon as the video is painted
|
||||
SplashScreen.hideAsync().catch(() => { });
|
||||
}}
|
||||
onError={(err) => {
|
||||
console.error("Video loading error:", err);
|
||||
// Fallback in case the video fails to load for any reason
|
||||
SplashScreen.hideAsync().catch(() => { });
|
||||
onAnimationComplete();
|
||||
}}
|
||||
/>
|
||||
</Animated.View>
|
||||
</Animated.View>
|
||||
);
|
||||
}
|
||||
|
|
@ -0,0 +1,286 @@
|
|||
import React, { useEffect, useRef } from 'react';
|
||||
import {
|
||||
View,
|
||||
Text,
|
||||
TouchableOpacity,
|
||||
StyleSheet,
|
||||
Dimensions,
|
||||
Animated,
|
||||
Platform,
|
||||
} from 'react-native';
|
||||
import { Ionicons } from '@expo/vector-icons';
|
||||
import { useCoachMarks } from '../context/CoachMarksContext';
|
||||
import { useApp } from '../context/AppContext';
|
||||
import { useColors } from '../constants/Colors';
|
||||
|
||||
const { width: SCREEN_W, height: SCREEN_H } = Dimensions.get('window');
|
||||
const HIGHLIGHT_PADDING = 10;
|
||||
const TOOLTIP_VERTICAL_OFFSET = 32;
|
||||
|
||||
export const CoachMarksOverlay: React.FC = () => {
|
||||
const { isActive, currentStep, steps, layouts, next, skip } = useCoachMarks();
|
||||
const { isDarkMode, colorPalette } = useApp();
|
||||
const colors = useColors(isDarkMode, colorPalette);
|
||||
|
||||
const fadeAnim = useRef(new Animated.Value(0)).current;
|
||||
const scaleAnim = useRef(new Animated.Value(0.88)).current;
|
||||
const pulseAnim = useRef(new Animated.Value(1)).current;
|
||||
|
||||
// Fade in when tour starts or step changes
|
||||
useEffect(() => {
|
||||
if (isActive) {
|
||||
fadeAnim.setValue(0);
|
||||
scaleAnim.setValue(0.88);
|
||||
Animated.parallel([
|
||||
Animated.timing(fadeAnim, { toValue: 1, duration: 320, useNativeDriver: true }),
|
||||
Animated.spring(scaleAnim, { toValue: 1, tension: 80, friction: 9, useNativeDriver: true }),
|
||||
]).start();
|
||||
|
||||
// Pulse animation on highlight
|
||||
Animated.loop(
|
||||
Animated.sequence([
|
||||
Animated.timing(pulseAnim, { toValue: 1.06, duration: 900, useNativeDriver: true }),
|
||||
Animated.timing(pulseAnim, { toValue: 1, duration: 900, useNativeDriver: true }),
|
||||
])
|
||||
).start();
|
||||
} else {
|
||||
pulseAnim.stopAnimation();
|
||||
}
|
||||
}, [isActive, currentStep]);
|
||||
|
||||
if (!isActive || steps.length === 0) return null;
|
||||
|
||||
const step = steps[currentStep];
|
||||
const layout = layouts[step.elementKey];
|
||||
|
||||
// Fallback wenn Element noch nicht gemessen
|
||||
const highlight = layout
|
||||
? {
|
||||
x: layout.x - HIGHLIGHT_PADDING,
|
||||
y: layout.y - HIGHLIGHT_PADDING,
|
||||
w: layout.width + HIGHLIGHT_PADDING * 2,
|
||||
h: layout.height + HIGHLIGHT_PADDING * 2,
|
||||
r: Math.min(layout.width, layout.height) / 2 + HIGHLIGHT_PADDING,
|
||||
}
|
||||
: { x: SCREEN_W / 2 - 40, y: SCREEN_H / 2 - 40, w: 80, h: 80, r: 40 };
|
||||
|
||||
// Tooltip-Position berechnen
|
||||
const tooltipW = 260;
|
||||
const tooltipMaxH = 140;
|
||||
let tooltipX = Math.max(12, Math.min(SCREEN_W - tooltipW - 12, highlight.x + highlight.w / 2 - tooltipW / 2));
|
||||
let tooltipY: number;
|
||||
const spaceBelow = SCREEN_H - (highlight.y + highlight.h);
|
||||
const spaceAbove = highlight.y;
|
||||
|
||||
if (step.tooltipSide === 'above' || (step.tooltipSide !== 'below' && spaceAbove > spaceBelow)) {
|
||||
tooltipY = highlight.y - tooltipMaxH - 24;
|
||||
if (tooltipY < 60) tooltipY = highlight.y + highlight.h + 24;
|
||||
} else {
|
||||
tooltipY = highlight.y + highlight.h + 24;
|
||||
if (tooltipY + tooltipMaxH > SCREEN_H - 60) tooltipY = highlight.y - tooltipMaxH - 24;
|
||||
}
|
||||
|
||||
// Keep coachmark bubbles slightly higher to avoid overlap with bright focus circles.
|
||||
tooltipY -= TOOLTIP_VERTICAL_OFFSET;
|
||||
const minTooltipY = 24;
|
||||
const maxTooltipY = SCREEN_H - tooltipMaxH - 24;
|
||||
tooltipY = Math.max(minTooltipY, Math.min(maxTooltipY, tooltipY));
|
||||
|
||||
const arrowPointsUp = tooltipY > highlight.y;
|
||||
|
||||
return (
|
||||
<Animated.View style={[StyleSheet.absoluteFill, styles.root, { opacity: fadeAnim }]} pointerEvents="box-none">
|
||||
{/* Dark overlay — 4 Rechtecke um die Aussparung */}
|
||||
{/* Oben */}
|
||||
<View style={[styles.overlay, { top: 0, left: 0, right: 0, height: Math.max(0, highlight.y) }]} />
|
||||
{/* Links */}
|
||||
<View style={[styles.overlay, {
|
||||
top: highlight.y, left: 0, width: Math.max(0, highlight.x), height: highlight.h,
|
||||
}]} />
|
||||
{/* Rechts */}
|
||||
<View style={[styles.overlay, {
|
||||
top: highlight.y,
|
||||
left: highlight.x + highlight.w,
|
||||
right: 0,
|
||||
height: highlight.h,
|
||||
}]} />
|
||||
{/* Unten */}
|
||||
<View style={[styles.overlay, {
|
||||
top: highlight.y + highlight.h,
|
||||
left: 0,
|
||||
right: 0,
|
||||
bottom: 0,
|
||||
}]} />
|
||||
|
||||
{/* Pulsierender Ring um das Highlight */}
|
||||
<Animated.View
|
||||
style={[
|
||||
styles.highlightRing,
|
||||
{
|
||||
left: highlight.x - 4,
|
||||
top: highlight.y - 4,
|
||||
width: highlight.w + 8,
|
||||
height: highlight.h + 8,
|
||||
borderRadius: highlight.r + 4,
|
||||
borderColor: colors.primary,
|
||||
transform: [{ scale: pulseAnim }],
|
||||
},
|
||||
]}
|
||||
pointerEvents="none"
|
||||
/>
|
||||
|
||||
{/* Tooltip-Karte */}
|
||||
<Animated.View
|
||||
style={[
|
||||
styles.tooltip,
|
||||
{
|
||||
left: tooltipX,
|
||||
top: tooltipY,
|
||||
width: tooltipW,
|
||||
backgroundColor: isDarkMode ? colors.surface : '#ffffff',
|
||||
borderColor: colors.border,
|
||||
shadowColor: '#000',
|
||||
transform: [{ scale: scaleAnim }],
|
||||
},
|
||||
]}
|
||||
>
|
||||
{/* Arrow */}
|
||||
<View
|
||||
style={[
|
||||
styles.arrow,
|
||||
arrowPointsUp ? styles.arrowUp : styles.arrowDown,
|
||||
{
|
||||
left: Math.max(12, Math.min(tooltipW - 28, highlight.x + highlight.w / 2 - tooltipX - 8)),
|
||||
borderBottomColor: arrowPointsUp ? (isDarkMode ? colors.surface : '#ffffff') : undefined,
|
||||
borderTopColor: !arrowPointsUp ? (isDarkMode ? colors.surface : '#ffffff') : undefined,
|
||||
},
|
||||
]}
|
||||
/>
|
||||
|
||||
{/* Schritt-Indikator */}
|
||||
<View style={styles.stepRow}>
|
||||
{steps.map((_, i) => (
|
||||
<View
|
||||
key={i}
|
||||
style={[
|
||||
styles.stepDot,
|
||||
{ backgroundColor: i === currentStep ? colors.primary : colors.border },
|
||||
i === currentStep && { width: 16 },
|
||||
]}
|
||||
/>
|
||||
))}
|
||||
</View>
|
||||
|
||||
<Text style={[styles.tooltipTitle, { color: colors.text }]}>{step.title}</Text>
|
||||
<Text style={[styles.tooltipDesc, { color: colors.textSecondary }]}>{step.description}</Text>
|
||||
|
||||
<View style={styles.tooltipFooter}>
|
||||
<TouchableOpacity onPress={skip} style={styles.skipBtn}>
|
||||
<Text style={[styles.skipText, { color: colors.textMuted }]}>Überspringen</Text>
|
||||
</TouchableOpacity>
|
||||
<TouchableOpacity
|
||||
onPress={next}
|
||||
style={[styles.nextBtn, { backgroundColor: colors.primary }]}
|
||||
activeOpacity={0.82}
|
||||
>
|
||||
<Text style={[styles.nextText, { color: colors.onPrimary }]}>
|
||||
{currentStep === steps.length - 1 ? 'Fertig' : 'Weiter'}
|
||||
</Text>
|
||||
<Ionicons
|
||||
name={currentStep === steps.length - 1 ? 'checkmark' : 'arrow-forward'}
|
||||
size={14}
|
||||
color={colors.onPrimary}
|
||||
/>
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
</Animated.View>
|
||||
</Animated.View>
|
||||
);
|
||||
};
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
root: {
|
||||
zIndex: 9999,
|
||||
elevation: 9999,
|
||||
},
|
||||
overlay: {
|
||||
position: 'absolute',
|
||||
backgroundColor: 'rgba(0,0,0,0.72)',
|
||||
},
|
||||
highlightRing: {
|
||||
position: 'absolute',
|
||||
borderWidth: 2.5,
|
||||
},
|
||||
tooltip: {
|
||||
position: 'absolute',
|
||||
borderRadius: 18,
|
||||
borderWidth: 1,
|
||||
padding: 16,
|
||||
gap: 8,
|
||||
shadowOffset: { width: 0, height: 8 },
|
||||
shadowOpacity: 0.2,
|
||||
shadowRadius: 20,
|
||||
elevation: 12,
|
||||
},
|
||||
stepRow: {
|
||||
flexDirection: 'row',
|
||||
gap: 4,
|
||||
alignItems: 'center',
|
||||
marginBottom: 2,
|
||||
},
|
||||
stepDot: {
|
||||
width: 6,
|
||||
height: 6,
|
||||
borderRadius: 3,
|
||||
},
|
||||
tooltipTitle: {
|
||||
fontSize: 15,
|
||||
fontWeight: '700',
|
||||
lineHeight: 20,
|
||||
},
|
||||
tooltipDesc: {
|
||||
fontSize: 13,
|
||||
lineHeight: 18,
|
||||
},
|
||||
tooltipFooter: {
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
justifyContent: 'space-between',
|
||||
marginTop: 4,
|
||||
},
|
||||
skipBtn: {
|
||||
padding: 4,
|
||||
},
|
||||
skipText: {
|
||||
fontSize: 13,
|
||||
},
|
||||
nextBtn: {
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
gap: 6,
|
||||
paddingHorizontal: 16,
|
||||
paddingVertical: 9,
|
||||
borderRadius: 20,
|
||||
},
|
||||
nextText: {
|
||||
fontSize: 13,
|
||||
fontWeight: '600',
|
||||
},
|
||||
arrow: {
|
||||
position: 'absolute',
|
||||
width: 0,
|
||||
height: 0,
|
||||
borderLeftWidth: 8,
|
||||
borderRightWidth: 8,
|
||||
borderLeftColor: 'transparent',
|
||||
borderRightColor: 'transparent',
|
||||
},
|
||||
arrowUp: {
|
||||
top: -8,
|
||||
borderBottomWidth: 8,
|
||||
},
|
||||
arrowDown: {
|
||||
bottom: -8,
|
||||
borderTopWidth: 8,
|
||||
},
|
||||
});
|
||||
|
|
@ -1,59 +1,102 @@
|
|||
import React from 'react';
|
||||
import { Plant } from '../types';
|
||||
import { Droplets } from 'lucide-react';
|
||||
import { View, Text, StyleSheet, TouchableOpacity } from 'react-native';
|
||||
import { Ionicons } from '@expo/vector-icons';
|
||||
import { ColorPalette } from '../types';
|
||||
import { useColors } from '../constants/Colors';
|
||||
import { SafeImage } from './SafeImage';
|
||||
|
||||
interface PlantCardProps {
|
||||
plant: Plant;
|
||||
onClick: () => void;
|
||||
t: any; // Using any for simplicity with the dynamic translation object
|
||||
plant: {
|
||||
name: string;
|
||||
botanicalName?: string;
|
||||
imageUri: string;
|
||||
careInfo: {
|
||||
waterIntervalDays: number;
|
||||
};
|
||||
};
|
||||
width: number;
|
||||
onPress: () => void;
|
||||
t: any;
|
||||
isDark: boolean;
|
||||
colorPalette: ColorPalette;
|
||||
}
|
||||
|
||||
export const PlantCard: React.FC<PlantCardProps> = ({ plant, onClick, t }) => {
|
||||
const daysUntilWatering = plant.careInfo.waterIntervalDays;
|
||||
// Very basic check logic for MVP
|
||||
const isUrgent = daysUntilWatering <= 1;
|
||||
|
||||
const wateringText = isUrgent
|
||||
? t.waterToday
|
||||
: t.inXDays.replace('{0}', daysUntilWatering.toString());
|
||||
export const PlantCard: React.FC<PlantCardProps> = ({
|
||||
plant,
|
||||
width,
|
||||
onPress,
|
||||
t,
|
||||
isDark,
|
||||
colorPalette,
|
||||
}) => {
|
||||
const colors = useColors(isDark, colorPalette);
|
||||
const isUrgent = plant.careInfo?.waterIntervalDays <= 1;
|
||||
const wateringText = plant.careInfo?.waterIntervalDays
|
||||
? (isUrgent
|
||||
? t.waterToday
|
||||
: t.inXDays.replace('{0}', plant.careInfo.waterIntervalDays.toString()))
|
||||
: t.showDetails; // Default for lexicon entries
|
||||
|
||||
return (
|
||||
<button
|
||||
onClick={onClick}
|
||||
className="relative aspect-[4/5] rounded-2xl overflow-hidden shadow-md group active:scale-[0.98] transition-transform w-full text-left"
|
||||
<TouchableOpacity
|
||||
style={[styles.container, { width, shadowColor: colors.overlayStrong }]}
|
||||
activeOpacity={0.9}
|
||||
onPress={onPress}
|
||||
>
|
||||
<img
|
||||
src={plant.imageUri}
|
||||
alt={plant.name}
|
||||
className="w-full h-full object-cover"
|
||||
/>
|
||||
|
||||
{/* Gradient Overlay */}
|
||||
<div className="absolute inset-0 bg-gradient-to-t from-black/90 via-black/20 to-transparent" />
|
||||
|
||||
<SafeImage uri={plant.imageUri} style={styles.image} />
|
||||
<View style={[styles.gradient, { backgroundColor: colors.overlay }]} />
|
||||
|
||||
{/* Badge */}
|
||||
<div className="absolute top-3 left-3">
|
||||
<div className={`flex items-center space-x-1.5 px-2.5 py-1 rounded-full backdrop-blur-md ${
|
||||
isUrgent
|
||||
? 'bg-orange-500 text-white'
|
||||
: 'bg-black/40 text-stone-200 border border-white/10'
|
||||
}`}>
|
||||
<Droplets size={10} className="fill-current" />
|
||||
<span className="text-[10px] font-bold">
|
||||
{wateringText}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<View
|
||||
style={[
|
||||
styles.badge,
|
||||
isUrgent
|
||||
? { backgroundColor: colors.warning }
|
||||
: { backgroundColor: colors.overlayStrong, borderWidth: 1, borderColor: colors.heroButtonBorder },
|
||||
]}
|
||||
>
|
||||
<Ionicons name="water" size={10} color={colors.iconOnImage} />
|
||||
<Text style={[styles.badgeText, { color: colors.iconOnImage }]}>{wateringText}</Text>
|
||||
</View>
|
||||
|
||||
{/* Content */}
|
||||
<div className="absolute bottom-4 left-3 right-3">
|
||||
<h3 className="text-white font-bold text-lg leading-tight font-serif mb-0.5 shadow-sm">
|
||||
{plant.name}
|
||||
</h3>
|
||||
<p className="text-stone-300 text-xs truncate">
|
||||
{plant.botanicalName}
|
||||
</p>
|
||||
</div>
|
||||
</button>
|
||||
<View style={styles.content}>
|
||||
<Text style={[styles.name, { color: colors.textOnImage }]} numberOfLines={1}>{plant.name}</Text>
|
||||
<Text style={[styles.botanical, { color: colors.heroButton }]} numberOfLines={1}>{plant.botanicalName}</Text>
|
||||
</View>
|
||||
</TouchableOpacity>
|
||||
);
|
||||
};
|
||||
};
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
container: {
|
||||
aspectRatio: 0.8,
|
||||
borderRadius: 18,
|
||||
overflow: 'hidden',
|
||||
shadowColor: '#000',
|
||||
shadowOffset: { width: 0, height: 2 },
|
||||
shadowOpacity: 0.1,
|
||||
shadowRadius: 6,
|
||||
elevation: 4,
|
||||
},
|
||||
image: { width: '100%', height: '100%', resizeMode: 'cover' },
|
||||
gradient: {
|
||||
...StyleSheet.absoluteFillObject,
|
||||
opacity: 0.8,
|
||||
},
|
||||
badge: {
|
||||
position: 'absolute',
|
||||
top: 10,
|
||||
left: 10,
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
gap: 4,
|
||||
paddingHorizontal: 8,
|
||||
paddingVertical: 4,
|
||||
borderRadius: 12,
|
||||
},
|
||||
badgeText: { fontSize: 9, fontWeight: '700' },
|
||||
content: { position: 'absolute', bottom: 14, left: 10, right: 10 },
|
||||
name: { fontSize: 16, fontWeight: '700' },
|
||||
botanical: { fontSize: 11 },
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,302 +0,0 @@
|
|||
|
||||
import React, { useState } from 'react';
|
||||
import { Plant, Language } from '../types';
|
||||
import { Droplets, Sun, Thermometer, ArrowLeft, Calendar, Trash2, Share2, Edit2, AlertCircle, Check, Clock, Bell, BellOff } from 'lucide-react';
|
||||
|
||||
interface PlantDetailProps {
|
||||
plant: Plant;
|
||||
onClose: () => void;
|
||||
onDelete: (id: string) => void;
|
||||
onUpdate: (plant: Plant) => void;
|
||||
t: any;
|
||||
language: Language;
|
||||
}
|
||||
|
||||
export const PlantDetail: React.FC<PlantDetailProps> = ({ plant, onClose, onDelete, onUpdate, t, language }) => {
|
||||
const [showDeleteConfirm, setShowDeleteConfirm] = useState(false);
|
||||
|
||||
// Map internal language codes to locale strings for Date
|
||||
const localeMap: Record<string, string> = {
|
||||
de: 'de-DE',
|
||||
en: 'en-US',
|
||||
es: 'es-ES'
|
||||
};
|
||||
|
||||
const formattedAddedDate = new Date(plant.dateAdded).toLocaleDateString(localeMap[language] || 'de-DE');
|
||||
const formattedWateredDate = new Date(plant.lastWatered).toLocaleDateString(localeMap[language] || 'de-DE');
|
||||
|
||||
// Calculate next watering date
|
||||
const lastWateredObj = new Date(plant.lastWatered);
|
||||
const nextWateringDate = new Date(lastWateredObj);
|
||||
nextWateringDate.setDate(lastWateredObj.getDate() + plant.careInfo.waterIntervalDays);
|
||||
|
||||
const formattedNextWatering = nextWateringDate.toLocaleDateString(localeMap[language] || 'de-DE', { weekday: 'long', day: 'numeric', month: 'numeric' });
|
||||
const nextWateringText = t.nextWatering.replace('{0}', formattedNextWatering);
|
||||
const lastWateredText = t.lastWateredDate.replace('{0}', formattedWateredDate);
|
||||
|
||||
// Check if watered today
|
||||
const isWateredToday = new Date(plant.lastWatered).toDateString() === new Date().toDateString();
|
||||
|
||||
const handleWaterPlant = () => {
|
||||
const now = new Date().toISOString();
|
||||
// Update history: add new date to the beginning, keep last 10 entries max
|
||||
const currentHistory = plant.wateringHistory || [];
|
||||
const newHistory = [now, ...currentHistory].slice(0, 10);
|
||||
|
||||
const updatedPlant = {
|
||||
...plant,
|
||||
lastWatered: now,
|
||||
wateringHistory: newHistory
|
||||
};
|
||||
onUpdate(updatedPlant);
|
||||
};
|
||||
|
||||
const toggleReminder = async () => {
|
||||
const newValue = !plant.notificationsEnabled;
|
||||
|
||||
if (newValue) {
|
||||
// Request permission if enabling
|
||||
if (!('Notification' in window)) {
|
||||
alert("Notifications are not supported by this browser.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (Notification.permission === 'granted') {
|
||||
onUpdate({ ...plant, notificationsEnabled: true });
|
||||
} else if (Notification.permission !== 'denied') {
|
||||
const permission = await Notification.requestPermission();
|
||||
if (permission === 'granted') {
|
||||
onUpdate({ ...plant, notificationsEnabled: true });
|
||||
}
|
||||
} else {
|
||||
alert(t.reminderPermissionNeeded);
|
||||
}
|
||||
} else {
|
||||
// Disabling
|
||||
onUpdate({ ...plant, notificationsEnabled: false });
|
||||
}
|
||||
};
|
||||
|
||||
const handleDeleteClick = () => {
|
||||
setShowDeleteConfirm(true);
|
||||
};
|
||||
|
||||
const handleConfirmDelete = () => {
|
||||
onDelete(plant.id);
|
||||
};
|
||||
|
||||
const handleCancelDelete = () => {
|
||||
setShowDeleteConfirm(false);
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="fixed inset-0 z-50 flex flex-col h-full bg-stone-50 dark:bg-stone-950 overflow-y-auto no-scrollbar animate-in slide-in-from-right duration-300">
|
||||
|
||||
{/* Header */}
|
||||
<div className="absolute top-0 left-0 right-0 z-10 flex justify-between items-center p-6 text-stone-900 dark:text-white">
|
||||
<button onClick={onClose} className="bg-white/80 dark:bg-black/50 backdrop-blur-md p-2 rounded-full shadow-sm">
|
||||
<ArrowLeft size={20} />
|
||||
</button>
|
||||
<div className="flex space-x-2">
|
||||
<button className="bg-white/80 dark:bg-black/50 backdrop-blur-md p-2 rounded-full shadow-sm">
|
||||
<Share2 size={20} />
|
||||
</button>
|
||||
<button className="bg-white/80 dark:bg-black/50 backdrop-blur-md p-2 rounded-full shadow-sm">
|
||||
<Edit2 size={20} />
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="flex-1">
|
||||
{/* Hero Image */}
|
||||
<div className="relative w-full aspect-[4/5] md:aspect-video rounded-b-[2.5rem] overflow-hidden shadow-lg mb-6">
|
||||
<img src={plant.imageUri} alt={plant.name} className="w-full h-full object-cover" />
|
||||
<div className="absolute inset-0 bg-gradient-to-t from-black/60 to-transparent"></div>
|
||||
|
||||
<div className="absolute bottom-8 left-6 right-6">
|
||||
<h1 className="text-3xl font-serif font-bold text-white leading-tight mb-1 shadow-sm">
|
||||
{plant.name}
|
||||
</h1>
|
||||
<p className="text-stone-200 italic text-sm">
|
||||
{plant.botanicalName}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Content Container */}
|
||||
<div className="px-6 pb-24">
|
||||
{/* Added Date Info */}
|
||||
<div className="flex justify-between items-center text-xs text-stone-500 dark:text-stone-400 mb-6">
|
||||
<div className="flex items-center space-x-1.5 bg-white dark:bg-stone-900 px-3 py-1.5 rounded-full border border-stone-100 dark:border-stone-800">
|
||||
<Calendar size={12} />
|
||||
<span>{t.addedOn} {formattedAddedDate}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Main Action: Water */}
|
||||
<div className={`mb-3 p-4 rounded-2xl border flex justify-between items-center transition-colors ${
|
||||
isWateredToday
|
||||
? 'bg-green-50 dark:bg-green-900/10 border-green-100 dark:border-green-800/30'
|
||||
: 'bg-blue-50 dark:bg-blue-900/10 border-blue-100 dark:border-blue-800/30'
|
||||
}`}>
|
||||
<div>
|
||||
<span className="block text-xs text-stone-500 dark:text-stone-400 font-medium mb-0.5">{lastWateredText}</span>
|
||||
<span className={`block text-sm font-bold ${isWateredToday ? 'text-green-700 dark:text-green-300' : 'text-stone-900 dark:text-stone-200'}`}>
|
||||
{nextWateringText}
|
||||
</span>
|
||||
</div>
|
||||
<button
|
||||
onClick={handleWaterPlant}
|
||||
disabled={isWateredToday}
|
||||
className={`px-4 py-2.5 rounded-xl font-bold text-xs flex items-center shadow-lg transition-all ${
|
||||
isWateredToday
|
||||
? 'bg-green-500 text-white cursor-default shadow-green-500/30'
|
||||
: 'bg-blue-500 hover:bg-blue-600 active:scale-95 text-white shadow-blue-500/30'
|
||||
}`}
|
||||
>
|
||||
{isWateredToday ? (
|
||||
<>
|
||||
<Check size={14} className="mr-2" />
|
||||
{t.watered}
|
||||
</>
|
||||
) : (
|
||||
<>
|
||||
<Droplets size={14} className="mr-2 fill-current" />
|
||||
{t.waterNow}
|
||||
</>
|
||||
)}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
{/* Reminder Toggle */}
|
||||
<div className="mb-8 flex items-center justify-between p-3 rounded-xl bg-white dark:bg-stone-900 border border-stone-100 dark:border-stone-800">
|
||||
<div className="flex items-center space-x-3">
|
||||
<div className={`p-2 rounded-full ${plant.notificationsEnabled ? 'bg-amber-100 text-amber-600 dark:bg-amber-900/30 dark:text-amber-400' : 'bg-stone-100 text-stone-400 dark:bg-stone-800 dark:text-stone-500'}`}>
|
||||
{plant.notificationsEnabled ? <Bell size={18} /> : <BellOff size={18} />}
|
||||
</div>
|
||||
<div className="flex flex-col">
|
||||
<span className="text-sm font-bold text-stone-900 dark:text-stone-100">{t.reminder}</span>
|
||||
<span className="text-[10px] text-stone-500">{plant.notificationsEnabled ? t.reminderOn : t.reminderOff}</span>
|
||||
</div>
|
||||
</div>
|
||||
<button
|
||||
onClick={toggleReminder}
|
||||
className={`w-11 h-6 rounded-full relative transition-colors duration-300 ${plant.notificationsEnabled ? 'bg-primary-500' : 'bg-stone-300 dark:bg-stone-700'}`}
|
||||
>
|
||||
<div className={`absolute top-1 w-4 h-4 bg-white rounded-full transition-all duration-300 shadow-sm ${plant.notificationsEnabled ? 'left-6' : 'left-1'}`} />
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<h3 className="font-bold text-stone-900 dark:text-stone-100 mb-2">{t.aboutPlant}</h3>
|
||||
<p className="text-stone-600 dark:text-stone-300 text-sm leading-relaxed mb-8">
|
||||
{plant.description || t.noDescription}
|
||||
</p>
|
||||
|
||||
{/* Care Info */}
|
||||
<h3 className="font-bold text-stone-900 dark:text-stone-100 mb-4">{t.careTips}</h3>
|
||||
<div className="grid grid-cols-3 gap-3 mb-10">
|
||||
<div className="bg-white dark:bg-stone-900 p-3 rounded-2xl border border-stone-100 dark:border-stone-800 flex flex-col items-center text-center shadow-sm">
|
||||
<div className="w-8 h-8 rounded-full bg-blue-50 dark:bg-blue-900/20 text-blue-500 flex items-center justify-center mb-2">
|
||||
<Droplets size={16} className="fill-current" />
|
||||
</div>
|
||||
<span className="text-[10px] text-stone-400 font-medium mb-0.5">{t.water}</span>
|
||||
<span className="text-xs font-bold text-stone-800 dark:text-stone-200">
|
||||
{plant.careInfo.waterIntervalDays} {t.days || 'Tage'}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div className="bg-white dark:bg-stone-900 p-3 rounded-2xl border border-stone-100 dark:border-stone-800 flex flex-col items-center text-center shadow-sm">
|
||||
<div className="w-8 h-8 rounded-full bg-amber-50 dark:bg-amber-900/20 text-amber-500 flex items-center justify-center mb-2">
|
||||
<Sun size={16} className="fill-current" />
|
||||
</div>
|
||||
<span className="text-[10px] text-stone-400 font-medium mb-0.5">{t.light}</span>
|
||||
<span className="text-xs font-bold text-stone-800 dark:text-stone-200 truncate w-full">
|
||||
{plant.careInfo.light}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div className="bg-white dark:bg-stone-900 p-3 rounded-2xl border border-stone-100 dark:border-stone-800 flex flex-col items-center text-center shadow-sm">
|
||||
<div className="w-8 h-8 rounded-full bg-rose-50 dark:bg-rose-900/20 text-rose-500 flex items-center justify-center mb-2">
|
||||
<Thermometer size={16} className="fill-current" />
|
||||
</div>
|
||||
<span className="text-[10px] text-stone-400 font-medium mb-0.5">{t.temp}</span>
|
||||
<span className="text-xs font-bold text-stone-800 dark:text-stone-200">
|
||||
{plant.careInfo.temp}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Watering History Section */}
|
||||
<h3 className="font-bold text-stone-900 dark:text-stone-100 mb-4">{t.wateringHistory}</h3>
|
||||
<div className="bg-white dark:bg-stone-900 rounded-2xl border border-stone-100 dark:border-stone-800 overflow-hidden mb-10 shadow-sm">
|
||||
{(!plant.wateringHistory || plant.wateringHistory.length === 0) ? (
|
||||
<div className="p-6 text-center text-stone-400 text-sm">
|
||||
<Clock size={24} className="mx-auto mb-2 opacity-50" />
|
||||
{t.noHistory}
|
||||
</div>
|
||||
) : (
|
||||
<ul className="divide-y divide-stone-100 dark:divide-stone-800">
|
||||
{plant.wateringHistory.slice(0, 5).map((dateStr, index) => (
|
||||
<li key={index} className="px-5 py-3 flex justify-between items-center group hover:bg-stone-50 dark:hover:bg-stone-800/50 transition-colors">
|
||||
<div className="flex items-center space-x-3">
|
||||
<div className="w-8 h-8 rounded-full bg-blue-50 dark:bg-blue-900/10 text-blue-500 flex items-center justify-center">
|
||||
<Droplets size={14} className="fill-current" />
|
||||
</div>
|
||||
<span className="text-sm font-medium text-stone-700 dark:text-stone-300">
|
||||
{new Date(dateStr).toLocaleDateString(localeMap[language] || 'de-DE', { day: '2-digit', month: '2-digit', year: 'numeric' })}
|
||||
</span>
|
||||
</div>
|
||||
<span className="text-xs font-mono text-stone-400 bg-stone-100 dark:bg-stone-800 px-2 py-1 rounded-md">
|
||||
{new Date(dateStr).toLocaleTimeString(localeMap[language] || 'de-DE', { hour: '2-digit', minute: '2-digit' })}
|
||||
</span>
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
)}
|
||||
</div>
|
||||
|
||||
{/* Danger Zone */}
|
||||
<div className="border-t border-stone-200 dark:border-stone-800 pt-6 flex justify-center">
|
||||
<button
|
||||
onClick={handleDeleteClick}
|
||||
className="flex items-center space-x-2 text-red-500 hover:text-red-600 px-4 py-2 rounded-xl hover:bg-red-50 dark:hover:bg-red-900/20 transition-colors"
|
||||
>
|
||||
<Trash2 size={16} />
|
||||
<span className="text-sm font-medium">{t.delete}</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Delete Confirmation Modal */}
|
||||
{showDeleteConfirm && (
|
||||
<div className="absolute inset-0 z-[60] bg-black/40 backdrop-blur-sm flex items-center justify-center p-6 animate-in fade-in duration-200">
|
||||
<div className="bg-white dark:bg-stone-900 w-full max-w-sm rounded-2xl p-6 shadow-2xl scale-100 animate-in zoom-in-95 duration-200">
|
||||
<div className="w-12 h-12 bg-red-100 dark:bg-red-900/30 text-red-500 rounded-full flex items-center justify-center mb-4 mx-auto">
|
||||
<AlertCircle size={24} />
|
||||
</div>
|
||||
<h3 className="text-xl font-bold text-center text-stone-900 dark:text-white mb-2">{t.deleteConfirmTitle}</h3>
|
||||
<p className="text-stone-500 dark:text-stone-400 text-center text-sm mb-6 leading-relaxed">
|
||||
{t.deleteConfirmMessage}
|
||||
</p>
|
||||
|
||||
<div className="grid grid-cols-2 gap-3">
|
||||
<button
|
||||
onClick={handleCancelDelete}
|
||||
className="py-3 px-4 rounded-xl bg-stone-100 dark:bg-stone-800 text-stone-700 dark:text-stone-300 font-bold text-sm"
|
||||
>
|
||||
{t.cancel}
|
||||
</button>
|
||||
<button
|
||||
onClick={handleConfirmDelete}
|
||||
className="py-3 px-4 rounded-xl bg-red-500 text-white font-bold text-sm hover:bg-red-600"
|
||||
>
|
||||
{t.confirm}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
import React from 'react';
|
||||
|
||||
export const PlantSkeleton: React.FC = () => {
|
||||
return (
|
||||
<div className="relative aspect-[4/5] rounded-2xl overflow-hidden bg-stone-200 dark:bg-stone-800 animate-pulse border border-stone-300 dark:border-stone-700/50">
|
||||
|
||||
{/* Badge Placeholder */}
|
||||
<div className="absolute top-3 left-3">
|
||||
<div className="h-6 w-20 bg-stone-300 dark:bg-stone-700 rounded-full" />
|
||||
</div>
|
||||
|
||||
{/* Content Placeholder */}
|
||||
<div className="absolute bottom-4 left-3 right-3 space-y-2">
|
||||
{/* Title */}
|
||||
<div className="h-6 w-3/4 bg-stone-300 dark:bg-stone-700 rounded-md" />
|
||||
{/* Subtitle */}
|
||||
<div className="h-3 w-1/2 bg-stone-300 dark:bg-stone-700 rounded-md" />
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
|
@ -1,7 +1,10 @@
|
|||
|
||||
import React, { useState } from 'react';
|
||||
import { IdentificationResult } from '../types';
|
||||
import { Droplets, Sun, Thermometer, CheckCircle2, ArrowLeft, Share2 } from 'lucide-react';
|
||||
import { View, Text, StyleSheet, ScrollView, TouchableOpacity, Share, Alert } from 'react-native';
|
||||
import { Ionicons } from '@expo/vector-icons';
|
||||
import { SafeAreaView, useSafeAreaInsets } from 'react-native-safe-area-context';
|
||||
import { ColorPalette, IdentificationResult } from '../types';
|
||||
import { useColors } from '../constants/Colors';
|
||||
import { SafeImage } from './SafeImage';
|
||||
|
||||
interface ResultCardProps {
|
||||
result: IdentificationResult;
|
||||
|
|
@ -9,132 +12,255 @@ interface ResultCardProps {
|
|||
onSave: () => void;
|
||||
onClose: () => void;
|
||||
t: any;
|
||||
isDark: boolean;
|
||||
colorPalette: ColorPalette;
|
||||
isGuest?: boolean;
|
||||
}
|
||||
|
||||
export const ResultCard: React.FC<ResultCardProps> = ({ result, imageUri, onSave, onClose, t }) => {
|
||||
export const ResultCard: React.FC<ResultCardProps> = ({
|
||||
result,
|
||||
imageUri,
|
||||
onSave,
|
||||
onClose,
|
||||
t,
|
||||
isDark,
|
||||
colorPalette,
|
||||
isGuest = false,
|
||||
}) => {
|
||||
const colors = useColors(isDark, colorPalette);
|
||||
const insets = useSafeAreaInsets();
|
||||
const [showDetails, setShowDetails] = useState(false);
|
||||
|
||||
return (
|
||||
<div className="flex flex-col h-full bg-stone-50 dark:bg-stone-950 overflow-y-auto no-scrollbar animate-in slide-in-from-right duration-300">
|
||||
|
||||
{/* Header */}
|
||||
<div className="absolute top-0 left-0 right-0 z-10 flex justify-between items-center p-6 text-stone-900 dark:text-white">
|
||||
<button onClick={onClose} className="bg-white/80 dark:bg-black/50 backdrop-blur-md p-2 rounded-full shadow-sm">
|
||||
<ArrowLeft size={20} />
|
||||
</button>
|
||||
<span className="font-bold text-sm bg-white/80 dark:bg-black/50 backdrop-blur-md px-3 py-1 rounded-full">{t.result}</span>
|
||||
<button className="bg-white/80 dark:bg-black/50 backdrop-blur-md p-2 rounded-full shadow-sm">
|
||||
<Share2 size={20} />
|
||||
</button>
|
||||
</div>
|
||||
const handleShare = async () => {
|
||||
try {
|
||||
await Share.share({
|
||||
message: `I just identified a ${result.name} (${result.botanicalName}) with ${Math.round(result.confidence * 100)}% confidence using GreenLens!`,
|
||||
});
|
||||
} catch (error: any) {
|
||||
Alert.alert('Error', error.message);
|
||||
}
|
||||
};
|
||||
|
||||
<div className="p-4 pt-20">
|
||||
return (
|
||||
<SafeAreaView style={[styles.container, { backgroundColor: colors.background }]} edges={['top', 'bottom']}>
|
||||
{/* Header */}
|
||||
<View style={[styles.header, { paddingTop: insets.top + 8 }]}>
|
||||
<TouchableOpacity
|
||||
style={[styles.headerBtn, { backgroundColor: colors.heroButton, borderColor: colors.heroButtonBorder }]}
|
||||
onPress={onClose}
|
||||
>
|
||||
<Ionicons name="arrow-back" size={20} color={colors.text} />
|
||||
</TouchableOpacity>
|
||||
<View style={[styles.headerBadge, { backgroundColor: colors.heroButton, borderColor: colors.heroButtonBorder }]}>
|
||||
<Text style={[styles.headerBadgeText, { color: colors.text }]}>{t.result}</Text>
|
||||
</View>
|
||||
<TouchableOpacity
|
||||
style={[styles.headerBtn, { backgroundColor: colors.heroButton, borderColor: colors.heroButtonBorder }]}
|
||||
onPress={handleShare}
|
||||
>
|
||||
<Ionicons name="share-outline" size={20} color={colors.text} />
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
|
||||
<ScrollView
|
||||
showsVerticalScrollIndicator={false}
|
||||
contentContainerStyle={[
|
||||
styles.scrollContent,
|
||||
{ paddingTop: insets.top + 76, paddingBottom: insets.bottom + 36 },
|
||||
]}
|
||||
>
|
||||
{/* Hero Image */}
|
||||
<div className="relative w-full aspect-[4/3] rounded-[2rem] overflow-hidden shadow-lg mb-6">
|
||||
<img src={imageUri} alt="Analyzed Plant" className="w-full h-full object-cover" />
|
||||
<div className="absolute bottom-4 left-4 bg-white/90 backdrop-blur-sm text-primary-700 px-3 py-1.5 rounded-full text-xs font-bold shadow-sm flex items-center">
|
||||
<CheckCircle2 size={14} className="mr-1.5 fill-primary-600 text-white" />
|
||||
{Math.round(result.confidence * 100)}% {t.match}
|
||||
</div>
|
||||
</div>
|
||||
<View style={[styles.heroContainer, { shadowColor: colors.overlayStrong }]}>
|
||||
<SafeImage uri={imageUri} style={styles.heroImage} />
|
||||
<View style={[styles.confidenceBadge, { backgroundColor: colors.heroButton }]}>
|
||||
<Ionicons name="checkmark-circle" size={14} color={colors.success} />
|
||||
<Text style={[styles.confidenceText, { color: colors.success }]}>
|
||||
{Math.round(result.confidence * 100)}% {t.match}
|
||||
</Text>
|
||||
</View>
|
||||
</View>
|
||||
|
||||
{/* Info */}
|
||||
<div className="px-2">
|
||||
<h1 className="text-3xl font-serif font-bold text-stone-900 dark:text-stone-100 leading-tight mb-1">
|
||||
{result.name}
|
||||
</h1>
|
||||
<p className="text-stone-400 dark:text-stone-500 italic text-sm mb-6">
|
||||
{result.botanicalName}
|
||||
</p>
|
||||
<Text style={[styles.plantName, { color: colors.text }]}>{result.name}</Text>
|
||||
<Text style={[styles.botanical, { color: colors.textMuted }]}>{result.botanicalName}</Text>
|
||||
<Text style={[styles.description, { color: colors.textSecondary }]}>
|
||||
{result.description || t.noDescription}
|
||||
</Text>
|
||||
|
||||
<p className="text-stone-600 dark:text-stone-300 text-sm leading-relaxed mb-8">
|
||||
{result.description || t.noDescription}
|
||||
</p>
|
||||
{/* Care Check */}
|
||||
<View style={styles.careHeader}>
|
||||
<Text style={[styles.sectionTitle, { color: colors.text }]}>{t.careCheck}</Text>
|
||||
<TouchableOpacity onPress={() => setShowDetails(!showDetails)}>
|
||||
<Text style={[styles.detailsToggle, { color: colors.primaryDark }]}>
|
||||
{showDetails ? t.hideDetails : t.showDetails}
|
||||
</Text>
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
|
||||
{/* Care Check */}
|
||||
<div className="flex justify-between items-end mb-4">
|
||||
<h3 className="font-bold text-stone-900 dark:text-stone-100">{t.careCheck}</h3>
|
||||
<button
|
||||
onClick={() => setShowDetails(!showDetails)}
|
||||
className="text-[10px] font-bold text-primary-600 uppercase tracking-wide"
|
||||
>
|
||||
{showDetails ? t.hideDetails : t.showDetails}
|
||||
</button>
|
||||
</div>
|
||||
<View style={styles.careGrid}>
|
||||
{[
|
||||
{ icon: 'water' as const, label: t.water, value: result.careInfo.waterIntervalDays <= 7 ? t.waterModerate : t.waterLittle, color: colors.info, bg: colors.infoSoft },
|
||||
{ icon: 'sunny' as const, label: t.light, value: result.careInfo.light, color: colors.warning, bg: colors.warningSoft },
|
||||
{ icon: 'thermometer' as const, label: t.temp, value: result.careInfo.temp, color: colors.danger, bg: colors.dangerSoft },
|
||||
].map((item) => (
|
||||
<View key={item.label} style={[styles.careCard, { backgroundColor: colors.surface, borderColor: colors.border }]}>
|
||||
<View style={[styles.careIcon, { backgroundColor: item.bg }]}>
|
||||
<Ionicons name={item.icon} size={16} color={item.color} />
|
||||
</View>
|
||||
<Text style={[styles.careLabel, { color: colors.textMuted }]}>{item.label}</Text>
|
||||
<Text style={[styles.careValue, { color: colors.text }]}>{item.value}</Text>
|
||||
</View>
|
||||
))}
|
||||
</View>
|
||||
|
||||
<div className="grid grid-cols-3 gap-3 mb-8">
|
||||
<div className="bg-white dark:bg-stone-900 p-3 rounded-2xl border border-stone-100 dark:border-stone-800 flex flex-col items-center text-center shadow-sm">
|
||||
<div className="w-8 h-8 rounded-full bg-blue-50 dark:bg-blue-900/20 text-blue-500 flex items-center justify-center mb-2">
|
||||
<Droplets size={16} className="fill-current" />
|
||||
</div>
|
||||
<span className="text-[10px] text-stone-400 font-medium mb-0.5">{t.water}</span>
|
||||
<span className="text-xs font-bold text-stone-800 dark:text-stone-200">
|
||||
{result.careInfo.waterIntervalDays <= 7 ? t.waterModerate : t.waterLittle}
|
||||
</span>
|
||||
</div>
|
||||
{showDetails && (
|
||||
<View style={[styles.detailsBox, { backgroundColor: colors.surfaceMuted, borderColor: colors.border }]}>
|
||||
<Text style={[styles.detailsTitle, { color: colors.textSecondary }]}>{t.detailedCare}</Text>
|
||||
{[
|
||||
{ text: t.careTextWater.replace('{0}', result.careInfo.waterIntervalDays.toString()), color: colors.success },
|
||||
{ text: t.careTextLight.replace('{0}', result.careInfo.light), color: colors.warning },
|
||||
{ text: t.careTextTemp.replace('{0}', result.careInfo.temp), color: colors.danger },
|
||||
].map((item, i) => (
|
||||
<View key={i} style={styles.detailRow}>
|
||||
<View style={[styles.detailDot, { backgroundColor: item.color }]} />
|
||||
<Text style={[styles.detailText, { color: colors.textSecondary }]}>{item.text}</Text>
|
||||
</View>
|
||||
))}
|
||||
</View>
|
||||
)}
|
||||
|
||||
<div className="bg-white dark:bg-stone-900 p-3 rounded-2xl border border-stone-100 dark:border-stone-800 flex flex-col items-center text-center shadow-sm">
|
||||
<div className="w-8 h-8 rounded-full bg-amber-50 dark:bg-amber-900/20 text-amber-500 flex items-center justify-center mb-2">
|
||||
<Sun size={16} className="fill-current" />
|
||||
</div>
|
||||
<span className="text-[10px] text-stone-400 font-medium mb-0.5">{t.light}</span>
|
||||
<span className="text-xs font-bold text-stone-800 dark:text-stone-200 truncate w-full">
|
||||
{result.careInfo.light}
|
||||
</span>
|
||||
</div>
|
||||
{/* Save */}
|
||||
<View style={styles.localInfo}>
|
||||
<View style={[styles.localIcon, { borderColor: colors.borderStrong }]} />
|
||||
<Text style={[styles.localText, { color: colors.textMuted }]}>{t.dataSavedLocally}</Text>
|
||||
</View>
|
||||
|
||||
<div className="bg-white dark:bg-stone-900 p-3 rounded-2xl border border-stone-100 dark:border-stone-800 flex flex-col items-center text-center shadow-sm">
|
||||
<div className="w-8 h-8 rounded-full bg-rose-50 dark:bg-rose-900/20 text-rose-500 flex items-center justify-center mb-2">
|
||||
<Thermometer size={16} className="fill-current" />
|
||||
</div>
|
||||
<span className="text-[10px] text-stone-400 font-medium mb-0.5">{t.temp}</span>
|
||||
<span className="text-xs font-bold text-stone-800 dark:text-stone-200">
|
||||
{result.careInfo.temp}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Expanded Details */}
|
||||
{showDetails && (
|
||||
<div className="mb-8 p-5 bg-stone-100 dark:bg-stone-900/50 rounded-2xl animate-in fade-in slide-in-from-top-2 border border-stone-200 dark:border-stone-800">
|
||||
<h4 className="font-bold text-xs mb-3 text-stone-700 dark:text-stone-300 uppercase tracking-wide">{t.detailedCare}</h4>
|
||||
<ul className="space-y-3 text-sm text-stone-600 dark:text-stone-300">
|
||||
<li className="flex items-start">
|
||||
<span className="mr-3 text-primary-500">•</span>
|
||||
<span>{t.careTextWater.replace('{0}', result.careInfo.waterIntervalDays.toString())}</span>
|
||||
</li>
|
||||
<li className="flex items-start">
|
||||
<span className="mr-3 text-amber-500">•</span>
|
||||
<span>{t.careTextLight.replace('{0}', result.careInfo.light)}</span>
|
||||
</li>
|
||||
<li className="flex items-start">
|
||||
<span className="mr-3 text-rose-500">•</span>
|
||||
<span>{t.careTextTemp.replace('{0}', result.careInfo.temp)}</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
)}
|
||||
|
||||
{/* Save Button */}
|
||||
<div className="flex items-center justify-center space-x-2 text-xs text-stone-400 mb-4">
|
||||
<div className="w-3 h-3 rounded-sm border border-stone-300 flex items-center justify-center">
|
||||
<div className="w-1.5 h-1.5 bg-stone-400 rounded-[1px]"></div>
|
||||
</div>
|
||||
<span>{t.dataSavedLocally}</span>
|
||||
</div>
|
||||
|
||||
<button
|
||||
onClick={onSave}
|
||||
className="w-full py-4 bg-primary-500 hover:bg-primary-600 text-black font-bold text-sm rounded-xl shadow-lg shadow-primary-500/30 active:scale-[0.98] transition-all flex items-center justify-center"
|
||||
>
|
||||
<div className="bg-black/20 rounded-full p-0.5 mr-2">
|
||||
<CheckCircle2 size={14} className="text-black" />
|
||||
</div>
|
||||
{t.addToPlants}
|
||||
</button>
|
||||
<div className="h-8"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<TouchableOpacity
|
||||
style={[
|
||||
styles.saveBtn,
|
||||
{ backgroundColor: colors.primary, shadowColor: colors.primary },
|
||||
]}
|
||||
activeOpacity={0.8}
|
||||
onPress={onSave}
|
||||
>
|
||||
<Ionicons name={isGuest ? "person-add" : "checkmark-circle"} size={16} color={colors.onPrimary} />
|
||||
<Text style={[styles.saveBtnText, { color: colors.onPrimary }]}>
|
||||
{isGuest ? t.registerToSave : t.addToPlants}
|
||||
</Text>
|
||||
</TouchableOpacity>
|
||||
</ScrollView>
|
||||
</SafeAreaView>
|
||||
);
|
||||
};
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
container: { flex: 1 },
|
||||
header: {
|
||||
position: 'absolute',
|
||||
top: 0,
|
||||
left: 0,
|
||||
right: 0,
|
||||
zIndex: 10,
|
||||
flexDirection: 'row',
|
||||
justifyContent: 'space-between',
|
||||
alignItems: 'center',
|
||||
paddingHorizontal: 20,
|
||||
},
|
||||
headerBtn: {
|
||||
borderRadius: 20,
|
||||
padding: 8,
|
||||
borderWidth: 1,
|
||||
},
|
||||
headerBadge: {
|
||||
borderRadius: 20,
|
||||
paddingHorizontal: 12,
|
||||
paddingVertical: 4,
|
||||
borderWidth: 1,
|
||||
},
|
||||
headerBadgeText: { fontWeight: '700', fontSize: 13 },
|
||||
scrollContent: { paddingHorizontal: 16 },
|
||||
heroContainer: {
|
||||
width: '100%',
|
||||
aspectRatio: 4 / 3,
|
||||
borderRadius: 24,
|
||||
overflow: 'hidden',
|
||||
marginBottom: 20,
|
||||
shadowColor: '#000',
|
||||
shadowOffset: { width: 0, height: 4 },
|
||||
shadowOpacity: 0.15,
|
||||
shadowRadius: 8,
|
||||
elevation: 6,
|
||||
},
|
||||
heroImage: { width: '100%', height: '100%', resizeMode: 'cover' },
|
||||
confidenceBadge: {
|
||||
position: 'absolute',
|
||||
bottom: 14,
|
||||
left: 14,
|
||||
borderRadius: 20,
|
||||
paddingHorizontal: 10,
|
||||
paddingVertical: 6,
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
gap: 4,
|
||||
},
|
||||
confidenceText: { fontSize: 11, fontWeight: '700' },
|
||||
plantName: { fontSize: 28, fontWeight: '700', marginBottom: 2 },
|
||||
botanical: { fontSize: 13, fontStyle: 'italic', marginBottom: 14 },
|
||||
description: { fontSize: 13, lineHeight: 20, marginBottom: 24 },
|
||||
careHeader: {
|
||||
flexDirection: 'row',
|
||||
justifyContent: 'space-between',
|
||||
alignItems: 'flex-end',
|
||||
marginBottom: 12,
|
||||
},
|
||||
sectionTitle: { fontSize: 16, fontWeight: '700' },
|
||||
detailsToggle: { fontSize: 10, fontWeight: '700', textTransform: 'uppercase', letterSpacing: 0.5 },
|
||||
careGrid: { flexDirection: 'row', gap: 10, marginBottom: 20 },
|
||||
careCard: {
|
||||
flex: 1,
|
||||
alignItems: 'center',
|
||||
padding: 12,
|
||||
borderRadius: 18,
|
||||
borderWidth: 1,
|
||||
gap: 6,
|
||||
},
|
||||
careIcon: { width: 32, height: 32, borderRadius: 16, justifyContent: 'center', alignItems: 'center' },
|
||||
careLabel: { fontSize: 10, fontWeight: '500' },
|
||||
careValue: {
|
||||
width: '100%',
|
||||
fontSize: 11,
|
||||
lineHeight: 14,
|
||||
fontWeight: '700',
|
||||
textAlign: 'center',
|
||||
flexShrink: 1,
|
||||
},
|
||||
detailsBox: {
|
||||
borderRadius: 18,
|
||||
borderWidth: 1,
|
||||
padding: 16,
|
||||
marginBottom: 20,
|
||||
gap: 10,
|
||||
},
|
||||
detailsTitle: { fontSize: 11, fontWeight: '700', textTransform: 'uppercase', letterSpacing: 0.5 },
|
||||
detailRow: { flexDirection: 'row', alignItems: 'flex-start', gap: 10 },
|
||||
detailDot: { width: 6, height: 6, borderRadius: 3, marginTop: 6 },
|
||||
detailText: { fontSize: 13, flex: 1 },
|
||||
localInfo: { flexDirection: 'row', justifyContent: 'center', alignItems: 'center', gap: 6, marginBottom: 12 },
|
||||
localIcon: { width: 12, height: 12, borderRadius: 2, borderWidth: 1, borderColor: '#d6d3d1' },
|
||||
localText: { fontSize: 11 },
|
||||
saveBtn: {
|
||||
flexDirection: 'row',
|
||||
justifyContent: 'center',
|
||||
alignItems: 'center',
|
||||
gap: 8,
|
||||
backgroundColor: '#4ade80',
|
||||
paddingVertical: 16,
|
||||
borderRadius: 14,
|
||||
shadowColor: '#4ade80',
|
||||
shadowOffset: { width: 0, height: 4 },
|
||||
shadowOpacity: 0.3,
|
||||
shadowRadius: 8,
|
||||
elevation: 6,
|
||||
},
|
||||
saveBtnText: { fontWeight: '700', fontSize: 14 },
|
||||
});
|
||||
|
|
|
|||
|
|
@ -0,0 +1,134 @@
|
|||
import React from 'react';
|
||||
import { Image, ImageProps, StyleSheet, Text, View } from 'react-native';
|
||||
import {
|
||||
DEFAULT_PLANT_IMAGE_URI,
|
||||
getCategoryFallbackImage,
|
||||
getPlantImageSourceFallbackUri,
|
||||
getWikimediaFilePathFromThumbnailUrl,
|
||||
resolveImageUri,
|
||||
tryResolveImageUri,
|
||||
} from '../utils/imageUri';
|
||||
|
||||
type SafeImageFallbackMode = 'category' | 'default' | 'none';
|
||||
|
||||
interface SafeImageProps extends Omit<ImageProps, 'source'> {
|
||||
uri?: string | null;
|
||||
categories?: string[];
|
||||
fallbackMode?: SafeImageFallbackMode;
|
||||
placeholderLabel?: string;
|
||||
}
|
||||
|
||||
const getPlaceholderInitial = (label?: string): string => {
|
||||
if (!label) return '?';
|
||||
const trimmed = label.trim();
|
||||
if (!trimmed) return '?';
|
||||
return trimmed.charAt(0).toUpperCase();
|
||||
};
|
||||
|
||||
export const SafeImage: React.FC<SafeImageProps> = ({
|
||||
uri,
|
||||
categories,
|
||||
fallbackMode = 'category',
|
||||
placeholderLabel,
|
||||
onError,
|
||||
style,
|
||||
...props
|
||||
}) => {
|
||||
const categoryFallback = categories && categories.length > 0
|
||||
? getCategoryFallbackImage(categories)
|
||||
: DEFAULT_PLANT_IMAGE_URI;
|
||||
const selectedFallback = fallbackMode === 'category'
|
||||
? categoryFallback
|
||||
: DEFAULT_PLANT_IMAGE_URI;
|
||||
|
||||
const [resolvedUri, setResolvedUri] = React.useState<string>(() => {
|
||||
const strictResolved = tryResolveImageUri(uri);
|
||||
if (strictResolved) return strictResolved;
|
||||
return fallbackMode === 'none' ? '' : selectedFallback;
|
||||
});
|
||||
const [showPlaceholder, setShowPlaceholder] = React.useState<boolean>(() => {
|
||||
if (fallbackMode !== 'none') return false;
|
||||
return !tryResolveImageUri(uri);
|
||||
});
|
||||
const [retryCount, setRetryCount] = React.useState(0);
|
||||
const lastAttemptUri = React.useRef<string | null>(null);
|
||||
|
||||
React.useEffect(() => {
|
||||
const strictResolved = tryResolveImageUri(uri);
|
||||
setResolvedUri(strictResolved || (fallbackMode === 'none' ? '' : selectedFallback));
|
||||
setShowPlaceholder(fallbackMode === 'none' && !strictResolved);
|
||||
setRetryCount(0);
|
||||
lastAttemptUri.current = strictResolved;
|
||||
}, [uri, fallbackMode, selectedFallback]);
|
||||
|
||||
if (fallbackMode === 'none' && showPlaceholder) {
|
||||
return (
|
||||
<View style={[styles.placeholder, style]}>
|
||||
<Text style={styles.placeholderText}>{getPlaceholderInitial(placeholderLabel)}</Text>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<Image
|
||||
{...props}
|
||||
style={style}
|
||||
source={{
|
||||
uri: resolvedUri || selectedFallback
|
||||
}}
|
||||
onError={(event) => {
|
||||
onError?.(event);
|
||||
|
||||
const currentUri = resolvedUri || selectedFallback;
|
||||
|
||||
// Smart Retry Logic for Wikimedia (first failure only)
|
||||
if (retryCount === 0 && currentUri.includes('upload.wikimedia.org')) {
|
||||
const fileName = getWikimediaFilePathFromThumbnailUrl(currentUri);
|
||||
if (fileName) {
|
||||
const redirectUrl = `https://commons.wikimedia.org/wiki/Special:FilePath/${encodeURIComponent(fileName)}`;
|
||||
setRetryCount(1);
|
||||
setResolvedUri(redirectUrl);
|
||||
lastAttemptUri.current = redirectUrl;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
const sourceFallbackUri = getPlantImageSourceFallbackUri(uri);
|
||||
if (sourceFallbackUri && sourceFallbackUri !== currentUri && lastAttemptUri.current !== sourceFallbackUri) {
|
||||
setResolvedUri(sourceFallbackUri);
|
||||
lastAttemptUri.current = sourceFallbackUri;
|
||||
return;
|
||||
}
|
||||
|
||||
// If we get here, either it wasn't a Wikimedia URL, or filename extraction failed,
|
||||
// or the retry itself failed.
|
||||
if (fallbackMode === 'none') {
|
||||
setShowPlaceholder(true);
|
||||
return;
|
||||
}
|
||||
|
||||
setResolvedUri((current) => {
|
||||
if (current === DEFAULT_PLANT_IMAGE_URI) return current;
|
||||
if (current === selectedFallback) return DEFAULT_PLANT_IMAGE_URI;
|
||||
return selectedFallback;
|
||||
});
|
||||
|
||||
// Prevent infinite loops if fallbacks also fail
|
||||
setRetryCount(current => current + 1);
|
||||
}}
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
placeholder: {
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
backgroundColor: '#e7ece8',
|
||||
},
|
||||
placeholderText: {
|
||||
fontSize: 18,
|
||||
fontWeight: '700',
|
||||
color: '#5f6f63',
|
||||
},
|
||||
});
|
||||
|
|
@ -0,0 +1,70 @@
|
|||
import React, { useEffect, useRef } from 'react';
|
||||
import { View, Text, Animated, StyleSheet, Image } from 'react-native';
|
||||
|
||||
export default function SplashScreen() {
|
||||
const fadeAnim = useRef(new Animated.Value(0)).current;
|
||||
|
||||
useEffect(() => {
|
||||
Animated.timing(fadeAnim, {
|
||||
toValue: 1,
|
||||
duration: 800,
|
||||
useNativeDriver: true,
|
||||
}).start();
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<View style={styles.container}>
|
||||
<Animated.View style={[styles.content, { opacity: fadeAnim }]}>
|
||||
<View style={styles.iconContainer}>
|
||||
<Image
|
||||
source={require('../assets/icon.png')}
|
||||
style={styles.icon}
|
||||
resizeMode="cover"
|
||||
/>
|
||||
</View>
|
||||
<Text style={styles.title}>GreenLens</Text>
|
||||
<Text style={styles.subtitle}>Identify any plant</Text>
|
||||
</Animated.View>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
container: {
|
||||
flex: 1,
|
||||
backgroundColor: '#1c1917',
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
},
|
||||
content: {
|
||||
alignItems: 'center',
|
||||
},
|
||||
iconContainer: {
|
||||
width: 100,
|
||||
height: 100,
|
||||
borderRadius: 24,
|
||||
backgroundColor: '#ffffff',
|
||||
elevation: 8,
|
||||
shadowColor: '#4ade80',
|
||||
shadowOffset: { width: 0, height: 4 },
|
||||
shadowOpacity: 0.2,
|
||||
shadowRadius: 12,
|
||||
marginBottom: 8,
|
||||
overflow: 'hidden',
|
||||
},
|
||||
icon: {
|
||||
width: '100%',
|
||||
height: '100%',
|
||||
},
|
||||
title: {
|
||||
fontSize: 36,
|
||||
fontWeight: '700',
|
||||
color: '#fafaf9',
|
||||
marginTop: 16,
|
||||
},
|
||||
subtitle: {
|
||||
fontSize: 16,
|
||||
color: '#a8a29e',
|
||||
marginTop: 8,
|
||||
},
|
||||
});
|
||||
|
|
@ -1,51 +0,0 @@
|
|||
import React from 'react';
|
||||
import { Tab } from '../types';
|
||||
import { LayoutGrid, Search, User } from 'lucide-react';
|
||||
|
||||
interface TabBarProps {
|
||||
currentTab: Tab;
|
||||
onTabChange: (tab: Tab) => void;
|
||||
labels: {
|
||||
home: string;
|
||||
search: string;
|
||||
settings: string;
|
||||
};
|
||||
}
|
||||
|
||||
export const TabBar: React.FC<TabBarProps> = ({ currentTab, onTabChange, labels }) => {
|
||||
return (
|
||||
<div className="fixed bottom-0 left-0 right-0 bg-white dark:bg-stone-900 border-t border-stone-200 dark:border-stone-800 pb-safe pt-2 px-6 z-40">
|
||||
<div className="flex justify-between items-center h-16 max-w-sm mx-auto">
|
||||
<button
|
||||
onClick={() => onTabChange(Tab.HOME)}
|
||||
className={`flex flex-col items-center justify-center w-16 space-y-1.5 ${
|
||||
currentTab === Tab.HOME ? 'text-stone-900 dark:text-stone-100' : 'text-stone-400 dark:text-stone-600'
|
||||
}`}
|
||||
>
|
||||
<LayoutGrid size={24} strokeWidth={currentTab === Tab.HOME ? 2.5 : 2} />
|
||||
<span className="text-[10px] font-medium">{labels.home}</span>
|
||||
</button>
|
||||
|
||||
<button
|
||||
onClick={() => onTabChange(Tab.SEARCH)}
|
||||
className={`flex flex-col items-center justify-center w-16 space-y-1.5 ${
|
||||
currentTab === Tab.SEARCH ? 'text-stone-900 dark:text-stone-100' : 'text-stone-400 dark:text-stone-600'
|
||||
}`}
|
||||
>
|
||||
<Search size={24} strokeWidth={currentTab === Tab.SEARCH ? 2.5 : 2} />
|
||||
<span className="text-[10px] font-medium">{labels.search}</span>
|
||||
</button>
|
||||
|
||||
<button
|
||||
onClick={() => onTabChange(Tab.SETTINGS)}
|
||||
className={`flex flex-col items-center justify-center w-16 space-y-1.5 ${
|
||||
currentTab === Tab.SETTINGS ? 'text-stone-900 dark:text-stone-100' : 'text-stone-400 dark:text-stone-600'
|
||||
}`}
|
||||
>
|
||||
<User size={24} strokeWidth={currentTab === Tab.SETTINGS ? 2.5 : 2} />
|
||||
<span className="text-[10px] font-medium">{labels.settings}</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
|
@ -0,0 +1,108 @@
|
|||
import React, { useMemo } from 'react';
|
||||
import { StyleSheet, View } from 'react-native';
|
||||
import { AppColors } from '../constants/Colors';
|
||||
|
||||
interface ThemeBackdropProps {
|
||||
colors: AppColors;
|
||||
}
|
||||
|
||||
const texturePoints = [
|
||||
[4, 6, 2], [12, 14, 1], [20, 9, 2], [26, 19, 1], [34, 8, 2], [42, 16, 1],
|
||||
[50, 10, 1], [58, 18, 2], [66, 7, 1], [74, 15, 2], [82, 11, 1], [90, 17, 2],
|
||||
[8, 30, 1], [16, 25, 2], [24, 33, 1], [32, 27, 2], [40, 35, 1], [48, 28, 2],
|
||||
[56, 36, 1], [64, 26, 2], [72, 34, 1], [80, 29, 2], [88, 37, 1], [94, 31, 2],
|
||||
[6, 48, 2], [14, 44, 1], [22, 52, 2], [30, 46, 1], [38, 54, 2], [46, 49, 1],
|
||||
[54, 56, 2], [62, 45, 1], [70, 53, 2], [78, 47, 1], [86, 55, 2], [92, 50, 1],
|
||||
[10, 70, 1], [18, 64, 2], [26, 72, 1], [34, 67, 2], [42, 74, 1], [50, 68, 2],
|
||||
[58, 76, 1], [66, 65, 2], [74, 73, 1], [82, 69, 2], [90, 77, 1], [96, 71, 2],
|
||||
];
|
||||
|
||||
const parseColor = (value: string) => {
|
||||
if (value.startsWith('#')) {
|
||||
const cleaned = value.replace('#', '');
|
||||
const normalized = cleaned.length === 3
|
||||
? cleaned.split('').map((c) => `${c}${c}`).join('')
|
||||
: cleaned;
|
||||
const int = Number.parseInt(normalized, 16);
|
||||
return {
|
||||
r: (int >> 16) & 255,
|
||||
g: (int >> 8) & 255,
|
||||
b: int & 255,
|
||||
a: 1,
|
||||
};
|
||||
}
|
||||
|
||||
const match = value.match(/rgba?\(([^)]+)\)/i);
|
||||
if (!match) return { r: 0, g: 0, b: 0, a: 0 };
|
||||
const parts = match[1].split(',').map((part) => part.trim());
|
||||
return {
|
||||
r: Number.parseFloat(parts[0]) || 0,
|
||||
g: Number.parseFloat(parts[1]) || 0,
|
||||
b: Number.parseFloat(parts[2]) || 0,
|
||||
a: parts.length > 3 ? Number.parseFloat(parts[3]) || 0 : 1,
|
||||
};
|
||||
};
|
||||
|
||||
const mixColor = (start: string, end: string, ratio: number) => {
|
||||
const a = parseColor(start);
|
||||
const b = parseColor(end);
|
||||
const t = Math.max(0, Math.min(1, ratio));
|
||||
const r = Math.round(a.r + (b.r - a.r) * t);
|
||||
const g = Math.round(a.g + (b.g - a.g) * t);
|
||||
const bl = Math.round(a.b + (b.b - a.b) * t);
|
||||
const alpha = a.a + (b.a - a.a) * t;
|
||||
return `rgba(${r}, ${g}, ${bl}, ${alpha})`;
|
||||
};
|
||||
|
||||
const ThemeBackdropInner: React.FC<ThemeBackdropProps> = ({ colors }) => {
|
||||
const gradientStrips = useMemo(() =>
|
||||
Array.from({ length: 18 }).map((_, index, arr) => {
|
||||
const ratio = index / (arr.length - 1);
|
||||
return mixColor(colors.pageGradientStart, colors.pageGradientEnd, ratio);
|
||||
}),
|
||||
[colors.pageGradientStart, colors.pageGradientEnd]);
|
||||
|
||||
return (
|
||||
<View pointerEvents="none" style={[StyleSheet.absoluteFill, { backgroundColor: colors.pageBase }]}>
|
||||
<View style={styles.gradientLayer}>
|
||||
{gradientStrips.map((stripColor, index) => (
|
||||
<View
|
||||
key={`strip-${index}`}
|
||||
style={[styles.gradientStrip, { backgroundColor: stripColor }]}
|
||||
/>
|
||||
))}
|
||||
</View>
|
||||
<View style={styles.textureLayer}>
|
||||
{texturePoints.map(([x, y, size], index) => (
|
||||
<View
|
||||
key={index}
|
||||
style={[
|
||||
styles.noiseDot,
|
||||
{
|
||||
left: `${x}%`,
|
||||
top: `${y}%`,
|
||||
width: size,
|
||||
height: size,
|
||||
borderRadius: size / 2,
|
||||
backgroundColor: colors.pageTexture,
|
||||
},
|
||||
]}
|
||||
/>
|
||||
))}
|
||||
</View>
|
||||
</View>
|
||||
);
|
||||
};
|
||||
|
||||
export const ThemeBackdrop = React.memo(ThemeBackdropInner);
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
gradientLayer: { ...StyleSheet.absoluteFillObject },
|
||||
gradientStrip: { flex: 1 },
|
||||
textureLayer: {
|
||||
...StyleSheet.absoluteFillObject,
|
||||
},
|
||||
noiseDot: {
|
||||
position: 'absolute',
|
||||
},
|
||||
});
|
||||
|
|
@ -1,37 +1,79 @@
|
|||
|
||||
import React, { useEffect, useState } from 'react';
|
||||
import { CheckCircle2 } from 'lucide-react';
|
||||
import React, { useEffect, useRef } from 'react';
|
||||
import { Animated, Text, StyleSheet, View } from 'react-native';
|
||||
import { Ionicons } from '@expo/vector-icons';
|
||||
import { useColors } from '../constants/Colors';
|
||||
import { ColorPalette } from '../types';
|
||||
|
||||
interface ToastProps {
|
||||
message: string;
|
||||
isVisible: boolean;
|
||||
onClose: () => void;
|
||||
isDark?: boolean;
|
||||
colorPalette?: ColorPalette;
|
||||
}
|
||||
|
||||
export const Toast: React.FC<ToastProps> = ({ message, isVisible, onClose }) => {
|
||||
const [show, setShow] = useState(false);
|
||||
export const Toast: React.FC<ToastProps> = ({
|
||||
message,
|
||||
isVisible,
|
||||
onClose,
|
||||
isDark = false,
|
||||
colorPalette = 'forest',
|
||||
}) => {
|
||||
const colors = useColors(isDark, colorPalette);
|
||||
const opacity = useRef(new Animated.Value(0)).current;
|
||||
const translateY = useRef(new Animated.Value(20)).current;
|
||||
|
||||
useEffect(() => {
|
||||
if (isVisible) {
|
||||
setShow(true);
|
||||
const timer = setTimeout(() => {
|
||||
setShow(false);
|
||||
setTimeout(onClose, 300); // Wait for animation
|
||||
}, 3000);
|
||||
return () => clearTimeout(timer);
|
||||
} else {
|
||||
setShow(false);
|
||||
}
|
||||
}, [isVisible, onClose]);
|
||||
Animated.parallel([
|
||||
Animated.timing(opacity, { toValue: 1, duration: 300, useNativeDriver: true }),
|
||||
Animated.timing(translateY, { toValue: 0, duration: 300, useNativeDriver: true }),
|
||||
]).start();
|
||||
|
||||
if (!isVisible && !show) return null;
|
||||
const timer = setTimeout(() => {
|
||||
Animated.parallel([
|
||||
Animated.timing(opacity, { toValue: 0, duration: 300, useNativeDriver: true }),
|
||||
Animated.timing(translateY, { toValue: 20, duration: 300, useNativeDriver: true }),
|
||||
]).start(() => onClose());
|
||||
}, 3000);
|
||||
|
||||
return () => clearTimeout(timer);
|
||||
}
|
||||
}, [isVisible]);
|
||||
|
||||
if (!isVisible) return null;
|
||||
|
||||
return (
|
||||
<div className={`fixed bottom-20 left-0 right-0 z-[70] flex justify-center pointer-events-none transition-all duration-300 transform ${show ? 'translate-y-0 opacity-100' : 'translate-y-4 opacity-0'}`}>
|
||||
<div className="bg-stone-900 dark:bg-white text-white dark:text-stone-900 px-4 py-3 rounded-full shadow-lg flex items-center space-x-2">
|
||||
<CheckCircle2 size={18} className="text-green-500" />
|
||||
<span className="text-sm font-medium">{message}</span>
|
||||
</div>
|
||||
</div>
|
||||
<Animated.View style={[styles.container, { opacity, transform: [{ translateY }] }]}>
|
||||
<View style={[styles.toast, { backgroundColor: colors.surface, shadowColor: colors.overlayStrong }]}>
|
||||
<Ionicons name="checkmark-circle" size={18} color={colors.success} />
|
||||
<Text style={[styles.text, { color: colors.text }]}>{message}</Text>
|
||||
</View>
|
||||
</Animated.View>
|
||||
);
|
||||
};
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
container: {
|
||||
position: 'absolute',
|
||||
bottom: 100,
|
||||
left: 0,
|
||||
right: 0,
|
||||
alignItems: 'center',
|
||||
zIndex: 70,
|
||||
pointerEvents: 'none',
|
||||
},
|
||||
toast: {
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
gap: 8,
|
||||
paddingHorizontal: 16,
|
||||
paddingVertical: 12,
|
||||
borderRadius: 24,
|
||||
shadowOffset: { width: 0, height: 4 },
|
||||
shadowOpacity: 0.2,
|
||||
shadowRadius: 8,
|
||||
elevation: 8,
|
||||
},
|
||||
text: { fontSize: 13, fontWeight: '500' },
|
||||
});
|
||||
|
|
|
|||
|
|
@ -0,0 +1,354 @@
|
|||
import { AppColorScheme, ColorPalette } from '../types';
|
||||
|
||||
interface SchemeColors {
|
||||
text: string;
|
||||
textSecondary: string;
|
||||
textMuted: string;
|
||||
textOnImage: string;
|
||||
background: string;
|
||||
surface: string;
|
||||
surfaceMuted: string;
|
||||
surfaceStrong: string;
|
||||
border: string;
|
||||
borderStrong: string;
|
||||
overlay: string;
|
||||
overlayStrong: string;
|
||||
heroButton: string;
|
||||
heroButtonBorder: string;
|
||||
tabBarBg: string;
|
||||
tabBarBorder: string;
|
||||
inputBg: string;
|
||||
inputBorder: string;
|
||||
cardBg: string;
|
||||
cardBorder: string;
|
||||
cardShadow: string;
|
||||
chipBg: string;
|
||||
chipBorder: string;
|
||||
pageBase: string;
|
||||
pageGradientStart: string;
|
||||
pageGradientEnd: string;
|
||||
pageTexture: string;
|
||||
}
|
||||
|
||||
interface PaletteColors {
|
||||
primary: string;
|
||||
primaryDark: string;
|
||||
info: string;
|
||||
warning: string;
|
||||
danger: string;
|
||||
success: string;
|
||||
accent: string;
|
||||
}
|
||||
|
||||
interface PaletteSurfaceTone {
|
||||
background: string;
|
||||
surface: string;
|
||||
surfaceMuted: string;
|
||||
surfaceStrong: string;
|
||||
border: string;
|
||||
borderStrong: string;
|
||||
tabBarBg: string;
|
||||
tabBarBorder: string;
|
||||
pageBase: string;
|
||||
pageGradientStart: string;
|
||||
pageGradientEnd: string;
|
||||
pageTexture: string;
|
||||
}
|
||||
|
||||
interface PaletteThemeTone {
|
||||
light: PaletteSurfaceTone;
|
||||
dark: PaletteSurfaceTone;
|
||||
}
|
||||
|
||||
export interface AppColors extends SchemeColors, PaletteColors {
|
||||
onPrimary: string;
|
||||
primarySoft: string;
|
||||
infoSoft: string;
|
||||
warningSoft: string;
|
||||
dangerSoft: string;
|
||||
successSoft: string;
|
||||
primaryTint: string;
|
||||
infoTint: string;
|
||||
warningTint: string;
|
||||
dangerTint: string;
|
||||
successTint: string;
|
||||
mutedChip: string;
|
||||
fabBg: string;
|
||||
fabShadow: string;
|
||||
iconOnImage: string;
|
||||
}
|
||||
|
||||
const textByScheme: Record<
|
||||
AppColorScheme,
|
||||
Pick<SchemeColors, 'text' | 'textSecondary' | 'textMuted' | 'textOnImage' | 'overlay' | 'overlayStrong'>
|
||||
> = {
|
||||
light: {
|
||||
text: '#1f2520',
|
||||
textSecondary: '#4d5650',
|
||||
textMuted: '#6e7871',
|
||||
textOnImage: '#f7f8f7',
|
||||
overlay: 'rgba(16, 20, 17, 0.4)',
|
||||
overlayStrong: 'rgba(13, 17, 14, 0.78)',
|
||||
},
|
||||
dark: {
|
||||
text: '#f0f3f1',
|
||||
textSecondary: '#c9d0cb',
|
||||
textMuted: '#a1aba4',
|
||||
textOnImage: '#f5f7f6',
|
||||
overlay: 'rgba(9, 11, 10, 0.52)',
|
||||
overlayStrong: 'rgba(8, 10, 9, 0.86)',
|
||||
},
|
||||
};
|
||||
|
||||
const paletteSurfaces: Record<ColorPalette, PaletteThemeTone> = {
|
||||
forest: {
|
||||
light: {
|
||||
background: '#ecf3ed',
|
||||
surface: '#f5faf6',
|
||||
surfaceMuted: '#e4ede6',
|
||||
surfaceStrong: '#d8e3d9',
|
||||
border: '#c7d4c8',
|
||||
borderStrong: '#b3c4b5',
|
||||
tabBarBg: '#f1f7f2',
|
||||
tabBarBorder: '#ccd9ce',
|
||||
pageBase: '#e9f1ea',
|
||||
pageGradientStart: '#dde9de',
|
||||
pageGradientEnd: '#f1f5f0',
|
||||
pageTexture: '#4b6a50',
|
||||
},
|
||||
dark: {
|
||||
background: '#111813',
|
||||
surface: '#17211a',
|
||||
surfaceMuted: '#1d2920',
|
||||
surfaceStrong: '#243128',
|
||||
border: '#2b3a2f',
|
||||
borderStrong: '#394c3d',
|
||||
tabBarBg: '#141d17',
|
||||
tabBarBorder: '#2f4033',
|
||||
pageBase: '#111813',
|
||||
pageGradientStart: '#15211a',
|
||||
pageGradientEnd: '#0f1511',
|
||||
pageTexture: '#91b196',
|
||||
},
|
||||
},
|
||||
ocean: {
|
||||
light: {
|
||||
background: '#ebf1f8',
|
||||
surface: '#f4f8fc',
|
||||
surfaceMuted: '#e1e8f1',
|
||||
surfaceStrong: '#d4deeb',
|
||||
border: '#c2cfde',
|
||||
borderStrong: '#acbdd1',
|
||||
tabBarBg: '#eef4fa',
|
||||
tabBarBorder: '#c8d6e6',
|
||||
pageBase: '#e9f0f7',
|
||||
pageGradientStart: '#d9e3f0',
|
||||
pageGradientEnd: '#eef3f8',
|
||||
pageTexture: '#4c6480',
|
||||
},
|
||||
dark: {
|
||||
background: '#10171f',
|
||||
surface: '#16202b',
|
||||
surfaceMuted: '#1c2734',
|
||||
surfaceStrong: '#243143',
|
||||
border: '#2c3b4d',
|
||||
borderStrong: '#3a4e64',
|
||||
tabBarBg: '#131c26',
|
||||
tabBarBorder: '#324357',
|
||||
pageBase: '#10171f',
|
||||
pageGradientStart: '#152230',
|
||||
pageGradientEnd: '#0f151d',
|
||||
pageTexture: '#96aac2',
|
||||
},
|
||||
},
|
||||
sunset: {
|
||||
light: {
|
||||
background: '#f7eee8',
|
||||
surface: '#fdf7f3',
|
||||
surfaceMuted: '#f2e5da',
|
||||
surfaceStrong: '#ead8c8',
|
||||
border: '#dbc4b1',
|
||||
borderStrong: '#cfb197',
|
||||
tabBarBg: '#f9f0e8',
|
||||
tabBarBorder: '#decaB9',
|
||||
pageBase: '#f6ece4',
|
||||
pageGradientStart: '#efdccd',
|
||||
pageGradientEnd: '#f8f1eb',
|
||||
pageTexture: '#8a644e',
|
||||
},
|
||||
dark: {
|
||||
background: '#1b1410',
|
||||
surface: '#271c16',
|
||||
surfaceMuted: '#31231b',
|
||||
surfaceStrong: '#3f2d22',
|
||||
border: '#4a372a',
|
||||
borderStrong: '#604633',
|
||||
tabBarBg: '#231913',
|
||||
tabBarBorder: '#553d2c',
|
||||
pageBase: '#1a1410',
|
||||
pageGradientStart: '#2a1d15',
|
||||
pageGradientEnd: '#16110d',
|
||||
pageTexture: '#c8a690',
|
||||
},
|
||||
},
|
||||
mono: {
|
||||
light: {
|
||||
background: '#eff1f3',
|
||||
surface: '#f7f8fa',
|
||||
surfaceMuted: '#e5e8ec',
|
||||
surfaceStrong: '#d8dde3',
|
||||
border: '#c8ced6',
|
||||
borderStrong: '#b4bdc8',
|
||||
tabBarBg: '#f2f4f7',
|
||||
tabBarBorder: '#cdd3db',
|
||||
pageBase: '#eceff2',
|
||||
pageGradientStart: '#dfe4ea',
|
||||
pageGradientEnd: '#f2f4f6',
|
||||
pageTexture: '#666f7b',
|
||||
},
|
||||
dark: {
|
||||
background: '#131518',
|
||||
surface: '#1b1f24',
|
||||
surfaceMuted: '#232932',
|
||||
surfaceStrong: '#2d3540',
|
||||
border: '#343f4c',
|
||||
borderStrong: '#455364',
|
||||
tabBarBg: '#171b20',
|
||||
tabBarBorder: '#3a4552',
|
||||
pageBase: '#131518',
|
||||
pageGradientStart: '#1a2028',
|
||||
pageGradientEnd: '#111418',
|
||||
pageTexture: '#a1adbc',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
const palettes: Record<ColorPalette, PaletteColors> = {
|
||||
forest: {
|
||||
primary: '#5fa779',
|
||||
primaryDark: '#3d7f57',
|
||||
info: '#4e7fb3',
|
||||
warning: '#bb8a36',
|
||||
danger: '#be5d5d',
|
||||
success: '#4f9767',
|
||||
accent: '#4a8e7f',
|
||||
},
|
||||
ocean: {
|
||||
primary: '#5a90be',
|
||||
primaryDark: '#3d6f99',
|
||||
info: '#4e79b1',
|
||||
warning: '#bc8b37',
|
||||
danger: '#be6464',
|
||||
success: '#4f8b80',
|
||||
accent: '#4f8fa0',
|
||||
},
|
||||
sunset: {
|
||||
primary: '#c98965',
|
||||
primaryDark: '#a36442',
|
||||
info: '#6c89b4',
|
||||
warning: '#bd8742',
|
||||
danger: '#b8666d',
|
||||
success: '#769f6e',
|
||||
accent: '#b47453',
|
||||
},
|
||||
mono: {
|
||||
primary: '#7b8796',
|
||||
primaryDark: '#5b6574',
|
||||
info: '#748498',
|
||||
warning: '#9d8b5a',
|
||||
danger: '#a86868',
|
||||
success: '#6f8b75',
|
||||
accent: '#6c7785',
|
||||
},
|
||||
};
|
||||
|
||||
const hexToRgb = (hex: string) => {
|
||||
const cleaned = hex.replace('#', '');
|
||||
const normalized =
|
||||
cleaned.length === 3
|
||||
? cleaned
|
||||
.split('')
|
||||
.map((char) => `${char}${char}`)
|
||||
.join('')
|
||||
: cleaned;
|
||||
const int = Number.parseInt(normalized, 16);
|
||||
return {
|
||||
r: (int >> 16) & 255,
|
||||
g: (int >> 8) & 255,
|
||||
b: int & 255,
|
||||
};
|
||||
};
|
||||
|
||||
const withOpacity = (hex: string, opacity: number) => {
|
||||
const { r, g, b } = hexToRgb(hex);
|
||||
return `rgba(${r}, ${g}, ${b}, ${opacity})`;
|
||||
};
|
||||
|
||||
const mixColors = (baseHex: string, tintHex: string, tintWeight: number) => {
|
||||
const base = hexToRgb(baseHex);
|
||||
const tint = hexToRgb(tintHex);
|
||||
const weight = Math.max(0, Math.min(1, tintWeight));
|
||||
const r = Math.round(base.r + (tint.r - base.r) * weight);
|
||||
const g = Math.round(base.g + (tint.g - base.g) * weight);
|
||||
const b = Math.round(base.b + (tint.b - base.b) * weight);
|
||||
return `rgb(${r}, ${g}, ${b})`;
|
||||
};
|
||||
|
||||
const getOnColor = (hex: string) => {
|
||||
const { r, g, b } = hexToRgb(hex);
|
||||
const luminance = (0.2126 * r + 0.7152 * g + 0.0722 * b) / 255;
|
||||
return luminance > 0.58 ? '#111111' : '#ffffff';
|
||||
};
|
||||
|
||||
export const useColors = (
|
||||
isDark: boolean,
|
||||
palette: ColorPalette = 'forest'
|
||||
): AppColors => {
|
||||
const schemeKey: AppColorScheme = isDark ? 'dark' : 'light';
|
||||
const textColors = textByScheme[schemeKey];
|
||||
const paletteColors = palettes[palette];
|
||||
const tone = paletteSurfaces[palette][schemeKey];
|
||||
|
||||
return {
|
||||
...textColors,
|
||||
...paletteColors,
|
||||
background: tone.background,
|
||||
surface: tone.surface,
|
||||
surfaceMuted: tone.surfaceMuted,
|
||||
surfaceStrong: tone.surfaceStrong,
|
||||
border: tone.border,
|
||||
borderStrong: tone.borderStrong,
|
||||
tabBarBg: tone.tabBarBg,
|
||||
tabBarBorder: tone.tabBarBorder,
|
||||
inputBg: tone.surfaceMuted,
|
||||
inputBorder: tone.borderStrong,
|
||||
cardBg: withOpacity(tone.surface, isDark ? 0.9 : 0.92),
|
||||
cardBorder: withOpacity(tone.borderStrong, isDark ? 0.7 : 0.82),
|
||||
cardShadow: withOpacity('#000000', isDark ? 0.26 : 0.12),
|
||||
chipBg: tone.surfaceStrong,
|
||||
chipBorder: tone.border,
|
||||
pageBase: tone.pageBase,
|
||||
pageGradientStart: withOpacity(tone.pageGradientStart, isDark ? 0.44 : 0.52),
|
||||
pageGradientEnd: withOpacity(tone.pageGradientEnd, isDark ? 0.34 : 0.44),
|
||||
pageTexture: withOpacity(tone.pageTexture, isDark ? 0.09 : 0.07),
|
||||
overlay: textColors.overlay,
|
||||
overlayStrong: textColors.overlayStrong,
|
||||
heroButton: withOpacity(tone.surface, isDark ? 0.9 : 0.94),
|
||||
heroButtonBorder: withOpacity(tone.borderStrong, isDark ? 0.7 : 0.8),
|
||||
onPrimary: getOnColor(paletteColors.primary),
|
||||
primarySoft: withOpacity(paletteColors.primary, isDark ? 0.26 : 0.18),
|
||||
infoSoft: withOpacity(paletteColors.info, isDark ? 0.24 : 0.16),
|
||||
warningSoft: withOpacity(paletteColors.warning, isDark ? 0.24 : 0.18),
|
||||
dangerSoft: withOpacity(paletteColors.danger, isDark ? 0.2 : 0.14),
|
||||
successSoft: withOpacity(paletteColors.success, isDark ? 0.2 : 0.14),
|
||||
primaryTint: mixColors(tone.surfaceStrong, paletteColors.primary, isDark ? 0.22 : 0.2),
|
||||
infoTint: mixColors(tone.surfaceStrong, paletteColors.info, isDark ? 0.2 : 0.18),
|
||||
warningTint: mixColors(tone.surfaceStrong, paletteColors.warning, isDark ? 0.22 : 0.2),
|
||||
dangerTint: mixColors(tone.surfaceStrong, paletteColors.danger, isDark ? 0.2 : 0.18),
|
||||
successTint: mixColors(tone.surfaceStrong, paletteColors.success, isDark ? 0.2 : 0.18),
|
||||
mutedChip: tone.surfaceStrong,
|
||||
fabBg: paletteColors.primary,
|
||||
fabShadow: withOpacity(paletteColors.primaryDark, 0.75),
|
||||
iconOnImage: '#ffffff',
|
||||
};
|
||||
};
|
||||
|
|
@ -0,0 +1,402 @@
|
|||
const SEARCH_INTENT_CONFIG = {
|
||||
intents: {
|
||||
easy: {
|
||||
aliases: [
|
||||
'easy',
|
||||
'easy care',
|
||||
'easy plant',
|
||||
'easy plants',
|
||||
'easy to care',
|
||||
'beginner',
|
||||
'beginner plant',
|
||||
'beginner plants',
|
||||
'low maintenance',
|
||||
'hard to kill',
|
||||
'starter plant',
|
||||
'starter plants',
|
||||
'pflegearm',
|
||||
'pflegeleicht',
|
||||
'anfanger',
|
||||
'anfangerpflanze',
|
||||
'anfangerpflanzen',
|
||||
'einfach',
|
||||
'unkompliziert',
|
||||
'facil cuidado',
|
||||
'facil',
|
||||
'principiante',
|
||||
'planta facil',
|
||||
'planta resistente',
|
||||
],
|
||||
entryHints: [
|
||||
'easy',
|
||||
'pflegeleicht',
|
||||
'robust',
|
||||
'resilient',
|
||||
'hardy',
|
||||
'low maintenance',
|
||||
'beginner',
|
||||
'facil',
|
||||
'resistente',
|
||||
'uncomplicated',
|
||||
],
|
||||
},
|
||||
low_light: {
|
||||
aliases: [
|
||||
'low light',
|
||||
'dark corner',
|
||||
'dark room',
|
||||
'office plant',
|
||||
'office',
|
||||
'windowless room',
|
||||
'shade',
|
||||
'shady',
|
||||
'indirect light',
|
||||
'little light',
|
||||
'wenig licht',
|
||||
'dunkle ecke',
|
||||
'buero',
|
||||
'buro',
|
||||
'dunkel',
|
||||
'schatten',
|
||||
'halbschatten',
|
||||
'poca luz',
|
||||
'oficina',
|
||||
'rincon oscuro',
|
||||
'sombra',
|
||||
],
|
||||
lightHints: [
|
||||
'low light',
|
||||
'low to full light',
|
||||
'shade',
|
||||
'partial shade',
|
||||
'indirect',
|
||||
'indirect bright',
|
||||
'bright indirect',
|
||||
'wenig licht',
|
||||
'schatten',
|
||||
'halbschatten',
|
||||
'indirekt',
|
||||
'poca luz',
|
||||
'sombra',
|
||||
'luz indirecta',
|
||||
],
|
||||
},
|
||||
pet_friendly: {
|
||||
aliases: [
|
||||
'pet friendly',
|
||||
'pet-safe',
|
||||
'pet safe',
|
||||
'safe for cats',
|
||||
'safe for dogs',
|
||||
'cat safe',
|
||||
'dog safe',
|
||||
'non toxic',
|
||||
'non-toxic',
|
||||
'haustierfreundlich',
|
||||
'tierfreundlich',
|
||||
'katzensicher',
|
||||
'hundefreundlich',
|
||||
'mascota',
|
||||
'pet friendly plant',
|
||||
'segura para gatos',
|
||||
'segura para perros',
|
||||
'no toxica',
|
||||
'no tóxica',
|
||||
],
|
||||
entryHints: [
|
||||
'pet friendly',
|
||||
'safe for pets',
|
||||
'safe for cats',
|
||||
'safe for dogs',
|
||||
'tierfreundlich',
|
||||
'haustierfreundlich',
|
||||
'mascota',
|
||||
],
|
||||
},
|
||||
air_purifier: {
|
||||
aliases: [
|
||||
'air purifier',
|
||||
'air purifying',
|
||||
'clean air',
|
||||
'cleaner air',
|
||||
'air cleaning',
|
||||
'air freshening',
|
||||
'luftreiniger',
|
||||
'luftreinigend',
|
||||
'reinigt luft',
|
||||
'purificador',
|
||||
'aire limpio',
|
||||
'purifica aire',
|
||||
],
|
||||
entryHints: [
|
||||
'air purifier',
|
||||
'air purifying',
|
||||
'clean air',
|
||||
'luftreiniger',
|
||||
'purificador',
|
||||
],
|
||||
},
|
||||
flowering: {
|
||||
aliases: [
|
||||
'flowering',
|
||||
'flowers',
|
||||
'blooms',
|
||||
'in bloom',
|
||||
'bluhend',
|
||||
'bluht',
|
||||
'blumen',
|
||||
'con flores',
|
||||
'floracion',
|
||||
],
|
||||
entryHints: [
|
||||
'flowering',
|
||||
'blooms',
|
||||
'flower',
|
||||
'bluh',
|
||||
'flor',
|
||||
],
|
||||
},
|
||||
succulent: {
|
||||
aliases: [
|
||||
'succulent',
|
||||
'succulents',
|
||||
'cactus',
|
||||
'cactus-like',
|
||||
'drought tolerant',
|
||||
'sukkulente',
|
||||
'sukkulenten',
|
||||
'trockenheitsvertraglich',
|
||||
'trockenheitsvertraeglich',
|
||||
'suculenta',
|
||||
'suculentas',
|
||||
],
|
||||
entryHints: [
|
||||
'succulent',
|
||||
'cactus',
|
||||
'drought tolerant',
|
||||
'sukkulent',
|
||||
'suculenta',
|
||||
],
|
||||
},
|
||||
bright_light: {
|
||||
aliases: [
|
||||
'bright light',
|
||||
'bright room',
|
||||
'bright spot',
|
||||
'east window',
|
||||
'west window',
|
||||
'sunny room',
|
||||
'helles licht',
|
||||
'hell',
|
||||
'lichtreich',
|
||||
'fensterplatz',
|
||||
'mucha luz',
|
||||
'luz brillante',
|
||||
],
|
||||
lightHints: [
|
||||
'bright light',
|
||||
'bright indirect',
|
||||
'bright',
|
||||
'helles licht',
|
||||
'helles indirektes licht',
|
||||
'luz brillante',
|
||||
],
|
||||
},
|
||||
sun: {
|
||||
aliases: [
|
||||
'full sun',
|
||||
'sun',
|
||||
'sunny window',
|
||||
'direct sun',
|
||||
'south window',
|
||||
'south facing window',
|
||||
'volle sonne',
|
||||
'sonnig',
|
||||
'direkte sonne',
|
||||
'fenster sud',
|
||||
'fenster sued',
|
||||
'fenster süd',
|
||||
'ventana soleada',
|
||||
'sol directo',
|
||||
],
|
||||
lightHints: [
|
||||
'full sun',
|
||||
'sunny',
|
||||
'direct sun',
|
||||
'volles sonnenlicht',
|
||||
'sonnig',
|
||||
'sol directo',
|
||||
],
|
||||
},
|
||||
high_humidity: {
|
||||
aliases: [
|
||||
'high humidity',
|
||||
'humid',
|
||||
'bathroom plant',
|
||||
'bathroom',
|
||||
'shower room',
|
||||
'humid room',
|
||||
'tropical humidity',
|
||||
'hohe luftfeuchtigkeit',
|
||||
'feucht',
|
||||
'badezimmer',
|
||||
'dusche',
|
||||
'luftfeucht',
|
||||
'humedad alta',
|
||||
'bano',
|
||||
'baño',
|
||||
],
|
||||
entryHints: [
|
||||
'high humidity',
|
||||
'humidity',
|
||||
'humid',
|
||||
'hohe luftfeuchtigkeit',
|
||||
'luftfeuchtigkeit',
|
||||
'humedad alta',
|
||||
],
|
||||
},
|
||||
hanging: {
|
||||
aliases: [
|
||||
'hanging',
|
||||
'trailing',
|
||||
'hanging basket',
|
||||
'shelf plant',
|
||||
'vine plant',
|
||||
'cascading',
|
||||
'hangend',
|
||||
'ampel',
|
||||
'rankend',
|
||||
'colgante',
|
||||
'planta colgante',
|
||||
],
|
||||
entryHints: [
|
||||
'hanging',
|
||||
'trailing',
|
||||
'vine',
|
||||
'hang',
|
||||
'colgante',
|
||||
],
|
||||
},
|
||||
patterned: {
|
||||
aliases: [
|
||||
'patterned',
|
||||
'patterned leaves',
|
||||
'striped',
|
||||
'variegated',
|
||||
'spotted',
|
||||
'decorative leaves',
|
||||
'fancy leaves',
|
||||
'gemustert',
|
||||
'muster',
|
||||
'gestreift',
|
||||
'bunt',
|
||||
'variegada',
|
||||
'rayada',
|
||||
],
|
||||
entryHints: [
|
||||
'patterned',
|
||||
'striped',
|
||||
'variegated',
|
||||
'spotted',
|
||||
'gemustert',
|
||||
'gestreift',
|
||||
],
|
||||
},
|
||||
tree: {
|
||||
aliases: [
|
||||
'tree',
|
||||
'indoor tree',
|
||||
'small tree',
|
||||
'floor tree',
|
||||
'zimmerbaum',
|
||||
'baum',
|
||||
'arbol',
|
||||
'árbol',
|
||||
],
|
||||
entryHints: [
|
||||
'tree',
|
||||
'baum',
|
||||
'arbol',
|
||||
],
|
||||
},
|
||||
large: {
|
||||
aliases: [
|
||||
'large',
|
||||
'big plant',
|
||||
'tall plant',
|
||||
'statement plant',
|
||||
'floor plant',
|
||||
'oversized plant',
|
||||
'gross',
|
||||
'groß',
|
||||
'grosse pflanze',
|
||||
'hohe pflanze',
|
||||
'planta grande',
|
||||
'planta alta',
|
||||
],
|
||||
entryHints: [
|
||||
'large',
|
||||
'big',
|
||||
'tall',
|
||||
'gross',
|
||||
'groß',
|
||||
'grande',
|
||||
],
|
||||
},
|
||||
medicinal: {
|
||||
aliases: [
|
||||
'medicinal',
|
||||
'healing plant',
|
||||
'herb',
|
||||
'kitchen herb',
|
||||
'tea herb',
|
||||
'apothecary plant',
|
||||
'heilpflanze',
|
||||
'heilkraut',
|
||||
'kraut',
|
||||
'medicinal plant',
|
||||
'medicinal herb',
|
||||
'medicinales',
|
||||
'hierba',
|
||||
'hierba medicinal',
|
||||
],
|
||||
entryHints: [
|
||||
'medicinal',
|
||||
'herb',
|
||||
'heil',
|
||||
'kraut',
|
||||
'hierba',
|
||||
],
|
||||
},
|
||||
},
|
||||
noiseTokens: [
|
||||
'plant',
|
||||
'plants',
|
||||
'pflanze',
|
||||
'pflanzen',
|
||||
'planta',
|
||||
'plantas',
|
||||
'for',
|
||||
'fur',
|
||||
'fuer',
|
||||
'para',
|
||||
'mit',
|
||||
'with',
|
||||
'and',
|
||||
'und',
|
||||
'y',
|
||||
'the',
|
||||
'der',
|
||||
'die',
|
||||
'das',
|
||||
'el',
|
||||
'la',
|
||||
'de',
|
||||
'a',
|
||||
'an',
|
||||
],
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
SEARCH_INTENT_CONFIG,
|
||||
};
|
||||
|
|
@ -0,0 +1,476 @@
|
|||
import React, { createContext, useContext, useState, useEffect, useCallback } from 'react';
|
||||
import { useColorScheme, Appearance } from 'react-native';
|
||||
import {
|
||||
Plant,
|
||||
IdentificationResult,
|
||||
Language,
|
||||
AppearanceMode,
|
||||
AppColorScheme,
|
||||
ColorPalette,
|
||||
} from '../types';
|
||||
import { ImageCacheService } from '../services/imageCacheService';
|
||||
import { getTranslation } from '../utils/translations';
|
||||
import { backendApiClient } from '../services/backend/backendApiClient';
|
||||
import { BillingSummary, PurchaseProductId, SimulatedWebhookEvent } from '../services/backend/contracts';
|
||||
import { createIdempotencyKey } from '../utils/idempotency';
|
||||
import { AuthService, AuthSession } from '../services/authService';
|
||||
import { PlantsDb, SettingsDb, LexiconHistoryDb, AppMetaDb } from '../services/database';
|
||||
|
||||
interface AppState {
|
||||
session: AuthSession | null;
|
||||
plants: Plant[];
|
||||
language: Language;
|
||||
appearanceMode: AppearanceMode;
|
||||
colorPalette: ColorPalette;
|
||||
profileName: string;
|
||||
profileImageUri: string | null;
|
||||
billingSummary: BillingSummary | null;
|
||||
resolvedScheme: AppColorScheme;
|
||||
isDarkMode: boolean;
|
||||
isInitializing: boolean;
|
||||
isLoadingPlants: boolean;
|
||||
isLoadingBilling: boolean;
|
||||
t: ReturnType<typeof getTranslation>;
|
||||
// Actions
|
||||
setAppearanceMode: (mode: AppearanceMode) => void;
|
||||
setColorPalette: (palette: ColorPalette) => void;
|
||||
setProfileName: (name: string) => Promise<void>;
|
||||
setProfileImage: (imageUri: string | null) => Promise<void>;
|
||||
changeLanguage: (lang: Language) => void;
|
||||
savePlant: (result: IdentificationResult, imageUri: string, overrideSession?: AuthSession) => Promise<void>;
|
||||
deletePlant: (id: string) => Promise<void>;
|
||||
updatePlant: (plant: Plant) => void;
|
||||
refreshPlants: () => void;
|
||||
refreshBillingSummary: () => Promise<void>;
|
||||
simulatePurchase: (productId: PurchaseProductId) => Promise<void>;
|
||||
simulateWebhookEvent: (event: SimulatedWebhookEvent, payload?: { credits?: number }) => Promise<void>;
|
||||
getLexiconSearchHistory: () => string[];
|
||||
saveLexiconSearchQuery: (query: string) => void;
|
||||
clearLexiconSearchHistory: () => void;
|
||||
hydrateSession: (session: AuthSession) => Promise<void>;
|
||||
signOut: () => Promise<void>;
|
||||
setPendingPlant: (result: IdentificationResult, imageUri: string) => void;
|
||||
getPendingPlant: () => { result: IdentificationResult; imageUri: string } | null;
|
||||
guestScanCount: number;
|
||||
incrementGuestScanCount: () => void;
|
||||
}
|
||||
|
||||
const AppContext = createContext<AppState | null>(null);
|
||||
|
||||
const toErrorMessage = (error: unknown): string => {
|
||||
if (error instanceof Error) return error.message;
|
||||
return String(error);
|
||||
};
|
||||
|
||||
export const useApp = () => {
|
||||
const ctx = useContext(AppContext);
|
||||
if (!ctx) throw new Error('useApp must be used within AppProvider');
|
||||
return ctx;
|
||||
};
|
||||
|
||||
const isAppearanceMode = (v: string): v is AppearanceMode =>
|
||||
v === 'system' || v === 'light' || v === 'dark';
|
||||
const isColorPalette = (v: string): v is ColorPalette =>
|
||||
v === 'forest' || v === 'ocean' || v === 'sunset' || v === 'mono';
|
||||
const isLanguage = (v: string): v is Language => v === 'de' || v === 'en' || v === 'es';
|
||||
|
||||
const getDeviceLanguage = (): Language => {
|
||||
try {
|
||||
const locale = Intl.DateTimeFormat().resolvedOptions().locale || '';
|
||||
const lang = locale.split('-')[0].toLowerCase();
|
||||
if (lang === 'de') return 'de';
|
||||
if (lang === 'es') return 'es';
|
||||
return 'en';
|
||||
} catch {
|
||||
return 'en';
|
||||
}
|
||||
};
|
||||
|
||||
export const AppProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {
|
||||
const [systemColorScheme, setSystemColorScheme] = useState(Appearance.getColorScheme());
|
||||
|
||||
useEffect(() => {
|
||||
const subscription = Appearance.addChangeListener(({ colorScheme }) => {
|
||||
setSystemColorScheme(colorScheme);
|
||||
});
|
||||
return () => subscription.remove();
|
||||
}, []);
|
||||
|
||||
const [session, setSession] = useState<AuthSession | null>(null);
|
||||
const [plants, setPlants] = useState<Plant[]>([]);
|
||||
const [language, setLanguage] = useState<Language>(getDeviceLanguage());
|
||||
const [appearanceMode, setAppearanceModeState] = useState<AppearanceMode>('system');
|
||||
const [colorPalette, setColorPaletteState] = useState<ColorPalette>('forest');
|
||||
const [profileName, setProfileNameState] = useState('');
|
||||
const [profileImageUri, setProfileImageUri] = useState<string | null>(null);
|
||||
const [pendingPlant, setPendingPlantState] = useState<{ result: IdentificationResult; imageUri: string } | null>(null);
|
||||
const [guestScanCount, setGuestScanCount] = useState(0);
|
||||
const [isInitializing, setIsInitializing] = useState(true);
|
||||
const [isLoadingPlants, setIsLoadingPlants] = useState(true);
|
||||
const [billingSummary, setBillingSummary] = useState<BillingSummary | null>(null);
|
||||
const [isLoadingBilling, setIsLoadingBilling] = useState(true);
|
||||
|
||||
const resolvedScheme: AppColorScheme =
|
||||
appearanceMode === 'system'
|
||||
? (systemColorScheme ?? 'dark') === 'dark' ? 'dark' : 'light'
|
||||
: appearanceMode;
|
||||
const isDarkMode = resolvedScheme === 'dark';
|
||||
const t = getTranslation(language);
|
||||
|
||||
const refreshBillingSummary = useCallback(async () => {
|
||||
setIsLoadingBilling(true);
|
||||
try {
|
||||
const summary = await backendApiClient.getBillingSummary();
|
||||
setBillingSummary(summary);
|
||||
} catch (e) {
|
||||
console.error('Failed to refresh billing summary', e);
|
||||
} finally {
|
||||
setIsLoadingBilling(false);
|
||||
}
|
||||
}, []);
|
||||
|
||||
const resetStateForSignedOutUser = useCallback(() => {
|
||||
setSession(null);
|
||||
setPlants([]);
|
||||
setLanguage(getDeviceLanguage());
|
||||
setAppearanceModeState('system');
|
||||
setColorPaletteState('forest');
|
||||
setProfileNameState('');
|
||||
setProfileImageUri(null);
|
||||
setIsLoadingPlants(false);
|
||||
// Fetch guest billing summary instead of setting it to null
|
||||
refreshBillingSummary();
|
||||
}, [refreshBillingSummary]);
|
||||
|
||||
const refreshPlants = useCallback(() => {
|
||||
if (!session) return;
|
||||
try {
|
||||
setPlants(PlantsDb.getAll(session.userId));
|
||||
} catch (error) {
|
||||
console.error('Failed to refresh plants list.', {
|
||||
userId: session.userId,
|
||||
error: toErrorMessage(error),
|
||||
});
|
||||
}
|
||||
}, [session]);
|
||||
|
||||
const savePlant = useCallback(async (result: IdentificationResult, imageUri: string, overrideSession?: AuthSession) => {
|
||||
const activeSession = overrideSession || session;
|
||||
if (!activeSession) {
|
||||
console.warn('Ignoring savePlant request: no active user session.');
|
||||
return;
|
||||
}
|
||||
|
||||
const now = new Date().toISOString();
|
||||
let finalImageUri = imageUri;
|
||||
|
||||
try {
|
||||
finalImageUri = await ImageCacheService.cacheImage(imageUri);
|
||||
} catch (error) {
|
||||
console.error('Failed to cache plant image before save.', {
|
||||
userId: activeSession.userId,
|
||||
error: toErrorMessage(error),
|
||||
});
|
||||
}
|
||||
|
||||
const newPlant: Plant = {
|
||||
id: Math.random().toString(36).substr(2, 9),
|
||||
name: result.name,
|
||||
botanicalName: result.botanicalName,
|
||||
imageUri: finalImageUri,
|
||||
dateAdded: now,
|
||||
careInfo: result.careInfo,
|
||||
lastWatered: now,
|
||||
wateringHistory: [now],
|
||||
description: result.description,
|
||||
notificationsEnabled: false,
|
||||
};
|
||||
|
||||
try {
|
||||
PlantsDb.insert(activeSession.userId, newPlant);
|
||||
} catch (error) {
|
||||
console.error('Failed to insert plant into SQLite.', {
|
||||
userId: activeSession.userId,
|
||||
plantId: newPlant.id,
|
||||
plantName: newPlant.name,
|
||||
error: toErrorMessage(error),
|
||||
});
|
||||
throw error;
|
||||
}
|
||||
|
||||
try {
|
||||
const reloadedPlants = PlantsDb.getAll(activeSession.userId);
|
||||
const insertedPlantExists = reloadedPlants.some((plant) => plant.id === newPlant.id);
|
||||
|
||||
if (!insertedPlantExists) {
|
||||
console.warn('Plant was inserted but not found in immediate reload. Applying optimistic list update.', {
|
||||
userId: activeSession.userId,
|
||||
plantId: newPlant.id,
|
||||
});
|
||||
setPlants(prev => [newPlant, ...prev.filter((plant) => plant.id !== newPlant.id)]);
|
||||
return;
|
||||
}
|
||||
|
||||
setPlants(reloadedPlants);
|
||||
} catch (error) {
|
||||
console.error('Failed to refresh plants after insert. Applying optimistic fallback.', {
|
||||
userId: activeSession.userId,
|
||||
plantId: newPlant.id,
|
||||
error: toErrorMessage(error),
|
||||
});
|
||||
setPlants(prev => [newPlant, ...prev.filter((plant) => plant.id !== newPlant.id)]);
|
||||
}
|
||||
}, [session]);
|
||||
|
||||
const deletePlant = useCallback(async (id: string) => {
|
||||
if (!session) return;
|
||||
const plant = plants.find(p => p.id === id);
|
||||
if (plant?.imageUri) {
|
||||
await ImageCacheService.deleteCachedImage(plant.imageUri);
|
||||
}
|
||||
PlantsDb.delete(session.userId, id);
|
||||
setPlants(prev => prev.filter(p => p.id !== id));
|
||||
}, [session, plants]);
|
||||
|
||||
const updatePlant = useCallback((updatedPlant: Plant) => {
|
||||
if (!session) return;
|
||||
PlantsDb.update(session.userId, updatedPlant);
|
||||
setPlants(prev => prev.map(p => p.id === updatedPlant.id ? updatedPlant : p));
|
||||
}, [session]);
|
||||
|
||||
const hydrateSession = useCallback(async (nextSession: AuthSession) => {
|
||||
setSession(nextSession);
|
||||
setProfileNameState(nextSession.name);
|
||||
setIsLoadingPlants(true);
|
||||
setIsLoadingBilling(true);
|
||||
|
||||
// Settings aus SQLite
|
||||
try {
|
||||
const settings = SettingsDb.get(nextSession.userId);
|
||||
if (settings.language_set === 1 && isLanguage(settings.language)) setLanguage(settings.language as Language);
|
||||
if (isAppearanceMode(settings.appearance_mode)) setAppearanceModeState(settings.appearance_mode as AppearanceMode);
|
||||
if (isColorPalette(settings.color_palette)) setColorPaletteState(settings.color_palette as ColorPalette);
|
||||
setProfileImageUri(settings.profile_image);
|
||||
} catch (e) {
|
||||
console.error('Failed to load settings from SQLite', e);
|
||||
}
|
||||
|
||||
// Pflanzen laden
|
||||
try {
|
||||
setPlants(PlantsDb.getAll(nextSession.userId));
|
||||
} catch (error) {
|
||||
console.error('Failed to load plants during app bootstrap.', {
|
||||
userId: nextSession.userId,
|
||||
error: toErrorMessage(error),
|
||||
});
|
||||
setPlants([]);
|
||||
} finally {
|
||||
setIsLoadingPlants(false);
|
||||
}
|
||||
|
||||
// Billing laden
|
||||
try {
|
||||
await refreshBillingSummary();
|
||||
} catch (e) {
|
||||
console.error('Initial billing summary check failed', e);
|
||||
setIsLoadingBilling(false);
|
||||
// Einmaliger Retry nach 2s
|
||||
setTimeout(async () => {
|
||||
try {
|
||||
await refreshBillingSummary();
|
||||
} catch {
|
||||
// silent — user can retry manually
|
||||
}
|
||||
}, 2000);
|
||||
}
|
||||
|
||||
// Check for pending plant to save after login/signup
|
||||
if (pendingPlant) {
|
||||
setTimeout(async () => {
|
||||
try {
|
||||
// Inside hydrateSession, the state 'session' might not be updated yet
|
||||
// but we can pass nextSession to savePlant if we modify it,
|
||||
// but savePlant uses the 'session' from the outer scope.
|
||||
// However, by the time this timeout runs, the session state SHOULD be set.
|
||||
await savePlant(pendingPlant.result, pendingPlant.imageUri, nextSession);
|
||||
setPendingPlantState(null);
|
||||
} catch (e) {
|
||||
console.error('Failed to save pending plant after hydration', e);
|
||||
}
|
||||
}, 800);
|
||||
}
|
||||
}, [refreshBillingSummary, pendingPlant, savePlant]);
|
||||
|
||||
const signOut = useCallback(async () => {
|
||||
await AuthService.logout();
|
||||
resetStateForSignedOutUser();
|
||||
}, [resetStateForSignedOutUser]);
|
||||
|
||||
// Session + Settings laden (inkl. Server-Validierung)
|
||||
useEffect(() => {
|
||||
(async () => {
|
||||
try {
|
||||
// Load guest scan count from DB
|
||||
const savedCount = AppMetaDb.get('guest_scan_count');
|
||||
if (savedCount) {
|
||||
setGuestScanCount(parseInt(savedCount, 10) || 0);
|
||||
}
|
||||
|
||||
const s = await AuthService.getSession();
|
||||
if (!s) {
|
||||
resetStateForSignedOutUser();
|
||||
return;
|
||||
}
|
||||
// Token validieren bevor Session gesetzt wird — verhindert kurzes Dashboard-Flash
|
||||
const validity = await AuthService.validateWithServer();
|
||||
if (validity === 'invalid') {
|
||||
await AuthService.logout();
|
||||
resetStateForSignedOutUser();
|
||||
return;
|
||||
}
|
||||
await hydrateSession(s);
|
||||
} catch (error) {
|
||||
console.error('Critical failure during AppContext initialization', error);
|
||||
resetStateForSignedOutUser();
|
||||
} finally {
|
||||
setIsInitializing(false);
|
||||
}
|
||||
})();
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, []);
|
||||
|
||||
const simulatePurchase = useCallback(async (productId: PurchaseProductId) => {
|
||||
const response = await backendApiClient.simulatePurchase({
|
||||
idempotencyKey: createIdempotencyKey('purchase', productId),
|
||||
productId,
|
||||
});
|
||||
setBillingSummary(response.billing);
|
||||
}, []);
|
||||
|
||||
const simulateWebhookEvent = useCallback(async (
|
||||
event: SimulatedWebhookEvent,
|
||||
payload?: { credits?: number },
|
||||
) => {
|
||||
const response = await backendApiClient.simulateWebhook({
|
||||
idempotencyKey: createIdempotencyKey('webhook', event),
|
||||
event,
|
||||
payload,
|
||||
});
|
||||
setBillingSummary(response.billing);
|
||||
}, []);
|
||||
|
||||
const setAppearanceMode = useCallback((mode: AppearanceMode) => {
|
||||
setAppearanceModeState(mode);
|
||||
if (session) SettingsDb.setAppearanceMode(session.userId, mode);
|
||||
}, [session]);
|
||||
|
||||
const setColorPalette = useCallback((palette: ColorPalette) => {
|
||||
setColorPaletteState(palette);
|
||||
if (session) SettingsDb.setColorPalette(session.userId, palette);
|
||||
}, [session]);
|
||||
|
||||
const setProfileName = useCallback(async (name: string) => {
|
||||
const normalized = name.trim() || session?.name || 'GreenLens User';
|
||||
setProfileNameState(normalized);
|
||||
if (session) {
|
||||
SettingsDb.setName(session.userId, normalized);
|
||||
await AuthService.updateSessionName(normalized);
|
||||
}
|
||||
}, [session]);
|
||||
|
||||
const setProfileImage = useCallback(async (imageUri: string | null) => {
|
||||
let nextUri = imageUri;
|
||||
if (imageUri) {
|
||||
try {
|
||||
nextUri = await ImageCacheService.cacheImage(imageUri);
|
||||
} catch (e) {
|
||||
console.error('Failed to cache profile image', e);
|
||||
}
|
||||
}
|
||||
if (profileImageUri && profileImageUri !== nextUri) {
|
||||
await ImageCacheService.deleteCachedImage(profileImageUri);
|
||||
}
|
||||
setProfileImageUri(nextUri);
|
||||
if (session) SettingsDb.setProfileImage(session.userId, nextUri);
|
||||
}, [session, profileImageUri]);
|
||||
|
||||
const changeLanguage = useCallback((lang: Language) => {
|
||||
setLanguage(lang);
|
||||
if (session) SettingsDb.setLanguage(session.userId, lang);
|
||||
}, [session]);
|
||||
|
||||
|
||||
// Lexicon history — synchron (SQLite sync API)
|
||||
const getLexiconSearchHistory = useCallback((): string[] => {
|
||||
if (!session) return [];
|
||||
return LexiconHistoryDb.getAll(session.userId);
|
||||
}, [session]);
|
||||
|
||||
const saveLexiconSearchQuery = useCallback((query: string) => {
|
||||
if (!session) return;
|
||||
LexiconHistoryDb.add(session.userId, query);
|
||||
}, [session]);
|
||||
|
||||
const clearLexiconSearchHistory = useCallback(() => {
|
||||
if (!session) return;
|
||||
LexiconHistoryDb.clear(session.userId);
|
||||
}, [session]);
|
||||
|
||||
const setPendingPlant = useCallback((result: IdentificationResult, imageUri: string) => {
|
||||
setPendingPlantState({ result, imageUri });
|
||||
}, []);
|
||||
|
||||
const getPendingPlant = useCallback(() => {
|
||||
return pendingPlant;
|
||||
}, [pendingPlant]);
|
||||
|
||||
const incrementGuestScanCount = useCallback(() => {
|
||||
setGuestScanCount(prev => {
|
||||
const next = prev + 1;
|
||||
AppMetaDb.set('guest_scan_count', next.toString());
|
||||
return next;
|
||||
});
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<AppContext.Provider value={{
|
||||
session,
|
||||
plants,
|
||||
language,
|
||||
appearanceMode,
|
||||
colorPalette,
|
||||
profileName,
|
||||
profileImageUri,
|
||||
billingSummary,
|
||||
resolvedScheme,
|
||||
isDarkMode,
|
||||
isInitializing,
|
||||
isLoadingPlants,
|
||||
isLoadingBilling,
|
||||
t,
|
||||
setAppearanceMode,
|
||||
setColorPalette,
|
||||
setProfileName,
|
||||
setProfileImage,
|
||||
changeLanguage,
|
||||
savePlant,
|
||||
deletePlant,
|
||||
updatePlant,
|
||||
refreshPlants,
|
||||
refreshBillingSummary,
|
||||
simulatePurchase,
|
||||
simulateWebhookEvent,
|
||||
getLexiconSearchHistory,
|
||||
saveLexiconSearchQuery,
|
||||
clearLexiconSearchHistory,
|
||||
hydrateSession,
|
||||
signOut,
|
||||
setPendingPlant,
|
||||
getPendingPlant,
|
||||
guestScanCount,
|
||||
incrementGuestScanCount,
|
||||
}}>
|
||||
{children}
|
||||
</AppContext.Provider>
|
||||
);
|
||||
};
|
||||
|
|
@ -0,0 +1,77 @@
|
|||
import React, { createContext, useContext, useState, useCallback, useRef } from 'react';
|
||||
import { LayoutRectangle } from 'react-native';
|
||||
|
||||
export interface CoachStep {
|
||||
elementKey: string;
|
||||
title: string;
|
||||
description: string;
|
||||
tooltipSide: 'above' | 'below' | 'left' | 'right';
|
||||
}
|
||||
|
||||
interface CoachMarksState {
|
||||
isActive: boolean;
|
||||
currentStep: number;
|
||||
steps: CoachStep[];
|
||||
layouts: Record<string, LayoutRectangle>;
|
||||
registerLayout: (key: string, layout: LayoutRectangle) => void;
|
||||
startTour: (steps: CoachStep[]) => void;
|
||||
next: () => void;
|
||||
skip: () => void;
|
||||
}
|
||||
|
||||
const CoachMarksContext = createContext<CoachMarksState | null>(null);
|
||||
|
||||
export const useCoachMarks = () => {
|
||||
const ctx = useContext(CoachMarksContext);
|
||||
if (!ctx) throw new Error('useCoachMarks must be within CoachMarksProvider');
|
||||
return ctx;
|
||||
};
|
||||
|
||||
export const CoachMarksProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {
|
||||
const [isActive, setIsActive] = useState(false);
|
||||
const [currentStep, setCurrentStep] = useState(0);
|
||||
const [steps, setSteps] = useState<CoachStep[]>([]);
|
||||
const layouts = useRef<Record<string, LayoutRectangle>>({});
|
||||
const [, forceRender] = useState(0);
|
||||
|
||||
const registerLayout = useCallback((key: string, layout: LayoutRectangle) => {
|
||||
layouts.current[key] = layout;
|
||||
forceRender(n => n + 1);
|
||||
}, []);
|
||||
|
||||
const startTour = useCallback((newSteps: CoachStep[]) => {
|
||||
setSteps(newSteps);
|
||||
setCurrentStep(0);
|
||||
setIsActive(true);
|
||||
}, []);
|
||||
|
||||
const next = useCallback(() => {
|
||||
setCurrentStep(prev => {
|
||||
if (prev + 1 >= steps.length) {
|
||||
setIsActive(false);
|
||||
return 0;
|
||||
}
|
||||
return prev + 1;
|
||||
});
|
||||
}, [steps.length]);
|
||||
|
||||
const skip = useCallback(() => {
|
||||
setIsActive(false);
|
||||
setCurrentStep(0);
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<CoachMarksContext.Provider value={{
|
||||
isActive,
|
||||
currentStep,
|
||||
steps,
|
||||
layouts: layouts.current,
|
||||
registerLayout,
|
||||
startTour,
|
||||
next,
|
||||
skip,
|
||||
}}>
|
||||
{children}
|
||||
</CoachMarksContext.Provider>
|
||||
);
|
||||
};
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
version: '3.8'
|
||||
|
||||
services:
|
||||
server:
|
||||
build:
|
||||
context: ./server
|
||||
ports:
|
||||
- "${PORT:-3005}:3000"
|
||||
environment:
|
||||
PORT: 3000
|
||||
PLANT_DB_PATH: /data/greenlns.sqlite
|
||||
MINIO_ENDPOINT: minio
|
||||
MINIO_PORT: 9000
|
||||
MINIO_USE_SSL: "false"
|
||||
MINIO_ACCESS_KEY: ${MINIO_ACCESS_KEY:-minioadmin}
|
||||
MINIO_SECRET_KEY: ${MINIO_SECRET_KEY:-minioadmin123}
|
||||
MINIO_BUCKET: ${MINIO_BUCKET:-plant-images}
|
||||
# Public URL for MinIO — set this to your Railway MinIO public domain
|
||||
MINIO_PUBLIC_URL: ${MINIO_PUBLIC_URL:-http://localhost:9000}
|
||||
# App secrets (set via Railway env vars)
|
||||
OPENAI_API_KEY: ${OPENAI_API_KEY}
|
||||
STRIPE_SECRET_KEY: ${STRIPE_SECRET_KEY}
|
||||
STRIPE_PUBLISHABLE_KEY: ${STRIPE_PUBLISHABLE_KEY}
|
||||
STRIPE_WEBHOOK_SECRET: ${STRIPE_WEBHOOK_SECRET}
|
||||
JWT_SECRET: ${JWT_SECRET}
|
||||
PLANT_IMPORT_ADMIN_KEY: ${PLANT_IMPORT_ADMIN_KEY}
|
||||
volumes:
|
||||
- db_data:/data
|
||||
depends_on:
|
||||
minio:
|
||||
condition: service_healthy
|
||||
restart: unless-stopped
|
||||
|
||||
minio:
|
||||
image: minio/minio:latest
|
||||
ports:
|
||||
- "9000:9000"
|
||||
- "9001:9001"
|
||||
environment:
|
||||
MINIO_ROOT_USER: ${MINIO_ACCESS_KEY:-minioadmin}
|
||||
MINIO_ROOT_PASSWORD: ${MINIO_SECRET_KEY:-minioadmin123}
|
||||
volumes:
|
||||
- minio_data:/data
|
||||
command: server /data --console-address ":9001"
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
db_data:
|
||||
minio_data:
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
env: load .env.local
|
||||
env: export EXPO_PUBLIC_OPENAI_API_KEY EXPO_PUBLIC_OPENAI_HEALTH_MODEL EXPO_PUBLIC_OPENAI_SCAN_MODEL EXPO_PUBLIC_PAYMENT_SERVER_URL EXPO_PUBLIC_STRIPE_PUBLISHABLE_KEY STRIPE_PUBLISHABLE_KEY STRIPE_SECRET_KEY STRIPE_WEBHOOK_SECRET
|
||||
Running 17 checks on your project...
|
||||
15/17 checks passed. 2 checks failed. Possible issues detected:
|
||||
Use the --verbose flag to see more details about passed checks.
|
||||
|
||||
Ô£û Check for common project setup issues
|
||||
The .expo directory is not ignored by Git. It contains machine-specific device history and development server settings and should not be committed.
|
||||
Advice:
|
||||
Add ".expo/" to your .gitignore to avoid committing local Expo state.
|
||||
|
||||
Ô£û Check that packages match versions required by installed Expo SDK
|
||||
|
||||
ÔÜá´©Å Minor version mismatches
|
||||
package expected found
|
||||
react-native-worklets 0.5.1 0.7.2
|
||||
|
||||
|
||||
|
||||
1 package out of date.
|
||||
Advice:
|
||||
Use 'npx expo install --check' to review and upgrade your dependencies.
|
||||
To ignore specific packages, add them to "expo.install.exclude" in package.json. Learn more: https://expo.fyi/dependency-validation
|
||||
|
||||
node.exe : 2 checks
|
||||
failed, indicating
|
||||
possible issues with
|
||||
the project.
|
||||
In Zeile:1 Zeichen:1
|
||||
+ & "C:\Program
|
||||
Files\nodejs/node.exe"
|
||||
"C:\Program
|
||||
Files\nodejs/node_mo
|
||||
...
|
||||
+ ~~~~~~~~~~~~~~~~~~~~~
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
~~
|
||||
+ CategoryInfo
|
||||
: NotSpecifi
|
||||
ed: (2 checks fail
|
||||
ed...th the projec
|
||||
t.:String) [], Rem
|
||||
oteException
|
||||
+ FullyQualifiedEr
|
||||
rorId : NativeComm
|
||||
andError
|
||||
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
{
|
||||
"cli": {
|
||||
"version": ">= 3.0.0",
|
||||
"appVersionSource": "remote"
|
||||
},
|
||||
"build": {
|
||||
"development": {
|
||||
"developmentClient": true,
|
||||
"distribution": "internal"
|
||||
},
|
||||
"preview": {
|
||||
"node": "22.18.0",
|
||||
"distribution": "internal",
|
||||
"env": {
|
||||
"NPM_CONFIG_LEGACY_PEER_DEPS": "true",
|
||||
"EXPO_PUBLIC_BACKEND_URL": "https://imaginative-abundance-production-f785.up.railway.app",
|
||||
"EXPO_PUBLIC_PAYMENT_SERVER_URL": "https://imaginative-abundance-production-f785.up.railway.app",
|
||||
"EXPO_PUBLIC_STRIPE_PUBLISHABLE_KEY": "pk_live_51SHpSLJYShvDMH3vXGaCFTgSDBZmjLUuw12rcvZFPwxfdEK1zRGG5mXFTMs6vMkgp7Udj07eZPDTNijhQn29VYpe00gzX8pBKN",
|
||||
"EXPO_PUBLIC_REVENUECAT_IOS_API_KEY": "appl_hrjmLmIUUTojZygbsisNqQqrHbX"
|
||||
}
|
||||
},
|
||||
"production": {
|
||||
"node": "22.18.0",
|
||||
"env": {
|
||||
"NPM_CONFIG_LEGACY_PEER_DEPS": "true",
|
||||
"EXPO_PUBLIC_BACKEND_URL": "https://imaginative-abundance-production-f785.up.railway.app",
|
||||
"EXPO_PUBLIC_PAYMENT_SERVER_URL": "https://imaginative-abundance-production-f785.up.railway.app",
|
||||
"EXPO_PUBLIC_STRIPE_PUBLISHABLE_KEY": "pk_live_51SHpSLJYShvDMH3vXGaCFTgSDBZmjLUuw12rcvZFPwxfdEK1zRGG5mXFTMs6vMkgp7Udj07eZPDTNijhQn29VYpe00gzX8pBKN",
|
||||
"EXPO_PUBLIC_REVENUECAT_IOS_API_KEY": "appl_hrjmLmIUUTojZygbsisNqQqrHbX"
|
||||
}
|
||||
}
|
||||
},
|
||||
"submit": {
|
||||
"production": {}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
|
||||
Googlebot, Bingbot, GPTBot, ClaudeBot, PerplexityBot, Applebot
|
||||
|
||||
|
||||
|
||||
https://www.qrmaster.net/tools/instagram-qr-code
|
||||
|
||||
https://www.qrmaster.net/tools/teams-qr-code
|
||||
|
||||
|
||||
https://www.qrmaster.net/tools/whatsapp-qr-code
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
app\scanner.tsx: const availableCredits = ses... => const availableCredits = ses... │
|
||||
│ │
|
||||
│ 107 : null; │
|
||||
│ 108 const availableCredits = session │
|
||||
│ 109 ? (billingSummary?.credits.available ?? 0) │
|
||||
│ 110 - : Math.max(0, 5 - guestScanCount); │
|
||||
│ 110 + : Math.max(0, 50 - guestScanCount);
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
|
||||
const { openDatabase, all, closeDatabase, getDefaultDbPath } = require('./server/lib/sqlite');
|
||||
const { getPlants } = require('./server/lib/plants');
|
||||
|
||||
async function main() {
|
||||
let db;
|
||||
try {
|
||||
db = await openDatabase();
|
||||
const plants = await getPlants(db, { limit: 500 });
|
||||
console.log(JSON.stringify(plants, null, 2));
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
process.exit(1);
|
||||
} finally {
|
||||
if (db) await closeDatabase(db);
|
||||
}
|
||||
}
|
||||
|
||||
main();
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
|
||||
const fs = require('fs');
|
||||
|
||||
function formatPlants(plants) {
|
||||
let md = '# Alle Pflanzen in der Datenbank\n\n';
|
||||
md += '| Name | Botanischer Name | Kategorie | Gießintervall (Tage) | Licht | Temperatur |\n';
|
||||
md += '| :--- | :--- | :--- | :--- | :--- | :--- |\n';
|
||||
|
||||
for (const plant of plants) {
|
||||
const categories = plant.categories.join(', ');
|
||||
const water = plant.careInfo.waterIntervalDays || '-';
|
||||
const light = plant.careInfo.light || '-';
|
||||
const temp = plant.careInfo.temp || '-';
|
||||
md += `| ${plant.name} | *${plant.botanicalName}* | ${categories} | ${water} | ${light} | ${temp} |\n`;
|
||||
}
|
||||
|
||||
return md;
|
||||
}
|
||||
|
||||
const plants = JSON.parse(fs.readFileSync('plants_dump_utf8.json', 'utf8'));
|
||||
const markdown = formatPlants(plants);
|
||||
fs.writeFileSync('ALLE_PFLANZEN.md', markdown);
|
||||
console.log('ALLE_PFLANZEN.md created.');
|
||||