Growbox-Betrieb. Täglicher Diary-Eintrag, Tagesbericht via Telegram, Sensor-Snapshots aus Home Assistant. Deterministisch, kein LLM-Aufruf.
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
~/scripts/skills growbox daily-report
~/scripts/skills growbox should-report
~/scripts/skills growbox mark-sent
~/scripts/skills growbox status
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() vor WiFi.begin() aufrufen Event-basiert mit WiFi.onEvent() statt WiFi.status() pollen Static IP statt DHCP: 2-5s schneller beim Connect Reconnect explizit implementieren — setAutoReconnect(true) reicht nicht immer OTA (ESPHome Flash via ) 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)