name: growbox description: Growbox-Betrieb. Täglicher Diary-Eintrag, Tagesbericht via Telegram, Sensor-Snapshots aus Home Assistant. Deterministisch, kein LLM-Aufruf.
growbox
Zweck
Verwaltet den automatisierten Growbox-Betrieb: tägliche Diary-Einträge anlegen, Tagesbericht per Telegram senden, Zeitfenster-Checks für periodische Aktionen.
Wann nutzen
~/scripts/skills growbox diary # Diary-Eintrag für heute anlegen (idempotent)
~/scripts/skills growbox daily-report # Tagesbericht via Telegram senden
~/scripts/skills growbox should-report # Gibt "1" wenn Bericht fällig, sonst "0"
~/scripts/skills growbox mark-sent # Bericht als gesendet markieren
~/scripts/skills growbox status # Aktueller Sensor-Snapshot (kein Telegram)
Growbox-Daten
- Diary:
/home/steges/growbox/diary/DD.MM.YYYY.md - Referenz-Entities:
/home/steges/growbox/GROWBOX.md - Aktueller Grow:
/home/steges/growbox/GROW.md - Schwellwerte:
/home/steges/growbox/THRESHOLDS.md - Report-State:
skill-forge/.state/growbox-report-state.json
Abhängigkeiten
| Ressource | Zweck |
|---|---|
HA REST API (HA_TOKEN, HA_BASE_URL) | Sensor-Daten lesen |
Telegram (TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID) | Berichte senden |
action-log.jsonl | 24h-Alarm-Kontext lesen |
Scope-Grenzen
| Erlaubt | Verboten |
|---|---|
| Diary-Einträge schreiben | HA-Automationen steuern |
| Telegram-Nachrichten senden | Relais / Aktoren schalten |
| HA-States lesen (read-only) | Schreiben in andere Skill-States |
ESP32 / ESPHome Referenz (Growbox-relevant)
GPIO-Fallen (kritisch)
- GPIO 6-11: VERBOTEN — intern mit Flash verbunden, sofortiger Crash
- GPIO 34-39: Input-Only — kein Output, kein Pullup/Pulldown möglich → Growbox nutzt GPIO 34/35/36/39 korrekt als Tacho-Input
- ADC2 (GPIO 0,2,4,12-15,25-27): Nicht nutzbar wenn WiFi aktiv → ADC1 nutzen
- Strapping-Pins (GPIO 0,2,12,15): beeinflussen Boot-Modus → vorsichtig verwenden
LEDC statt analogWrite (PWM-Lüfter)
Kein natives analogWrite() auf ESP32 — LEDC verwenden:
ledcSetup(channel, 25000, 8); // ch, freq, resolution
ledcAttachPin(pin, channel);
ledcWrite(channel, value); // 0-255
→ Growbox: 25 kHz PWM auf GPIO 25/26/27/32 (4 Lüfter)
WiFi-Stabilität
WiFi.mode()vorWiFi.begin()aufrufen- Event-basiert mit
WiFi.onEvent()stattWiFi.status()pollen - Static IP statt DHCP: 2-5s schneller beim Connect
- Reconnect explizit implementieren —
setAutoReconnect(true)reicht nicht immer
OTA (ESPHome Flash via http://192.168.2.101:6052)
- Immer zwei OTA-Partitionen im Partition-Schema prüfen
ESP.getFreeSketchSpace()vor großen Updates- OTA blockiert während Update → nicht in time-critical Tasks
Brown-Out / Power
- WiFi TX: bis 300mA Peaks — USB-Port kann zu schwach sein
- Brown-Out-Reset tritt bei <2.4V auf (
esp_brownout_disable()nur wenn Batterie-Betrieb) - Deep Sleep: nur RTC-GPIOs als Wakeup-Source (GPIO 0,2,4,12-15,25-27,32-39)