4.5 KiB
🔥 Hotfix: input_text → input_textarea
⚠️ Problem
Home Assistant input_text hat ein Maximum von 255 Zeichen, aber unser JSON-Ladeplan ist viel größer (typisch 2000-4000 Zeichen für 24 Stunden).
Fehlermeldung:
Invalid config for 'input_text' at packages/battery_optimizer_config.yaml, line 10:
value must be at most 255 for dictionary value 'input_text->battery_charging_schedule->max',
got 4096
✅ Lösung
Verwende input_textarea statt input_text:
- ✅ Unbegrenzte Größe
- ✅ Multi-Line Text
- ✅ Perfekt für JSON
🔧 Was wurde geändert
Datei: battery_optimizer_config.yaml
VORHER (falsch):
input_text:
battery_charging_schedule:
name: "Batterie Ladeplan"
max: 4096 # ❌ Nicht erlaubt!
initial: "{}"
NACHHER (korrekt):
input_textarea:
battery_charging_schedule:
name: "Batterie Ladeplan"
initial: "{}" # ✅ Kein max-Limit!
Datei: battery_charging_optimizer.py
Änderungen:
# VORHER:
input_text.battery_charging_schedule = schedule_json
schedule_json = state.get('input_text.battery_charging_schedule')
# NACHHER:
input_textarea.battery_charging_schedule = schedule_json
schedule_json = state.get('input_textarea.battery_charging_schedule')
Datei: battery_optimizer_config.yaml (Templates)
Template-Sensoren:
# VORHER:
{% set schedule = state_attr('input_text.battery_charging_schedule', 'schedule') %}
# NACHHER:
{% set schedule = state_attr('input_textarea.battery_charging_schedule', 'schedule') %}
Datei: battery_optimizer_dashboard.yaml
Dashboard-Markdown:
# Gleiche Änderung wie oben
state_attr('input_textarea.battery_charging_schedule', 'schedule')
📦 Betroffene Dateien
Alle 4 Dateien wurden aktualisiert:
- ✅
battery_optimizer_config.yaml - ✅
battery_charging_optimizer.py - ✅
battery_optimizer_dashboard.yaml - ✅ (Templates in config.yaml)
🔄 Migration
Wenn du bereits installiert hast:
Option A: Neuinstallation (empfohlen)
- Alte
input_text.battery_charging_scheduleHelper löschen - Neue Config mit
input_textareaeinfügen - Home Assistant neu starten
- Neuen Plan berechnen
Option B: Manuell ändern
- In UI: Einstellungen → Geräte & Dienste → Helfer
battery_charging_schedulelöschen- Neu erstellen als "Text (mehrzeilig)" (= input_textarea)
- Name: "Batterie Ladeplan"
- Standardwert:
{} - Python-Dateien ersetzen
- Home Assistant neu starten
🧪 Testen
Nach dem Fix:
# Entwicklerwerkzeuge → Dienste
# Plan berechnen
service: pyscript.calculate_charging_schedule
# Prüfe in Entwicklerwerkzeuge → Zustände
# → Suche: input_textarea.battery_charging_schedule
# → Sollte JSON mit Ladeplan enthalten (>255 Zeichen!)
Beispiel-Output:
{
"2025-11-08 00:00:00": {
"action": "charge",
"power_w": -10000,
"price": 26.72,
"pv_forecast": 0.0,
"reason": "Günstiger Preis (26.72 ct), Wenig PV (0.0 kWh)"
},
...
}
📏 Größenvergleich
| Helper-Typ | Max. Größe | Geeignet für |
|---|---|---|
input_text |
255 Zeichen | ❌ JSON (zu klein) |
input_textarea |
Unbegrenzt | ✅ JSON (perfekt) |
Typische Größen:
- 24h Ladeplan: ~2000-4000 Zeichen
- input_text Limit: 255 Zeichen
- ⟹ input_textarea zwingend nötig!
🎯 Warum input_textarea?
Home Assistant unterscheidet:
input_text:
- Einzeiliges Textfeld
- UI: Kleines Input-Feld
- Max: 255 Zeichen
- Use-Case: Namen, IDs, kurze Werte
input_textarea:
- Mehrzeiliges Textfeld
- UI: Großes Textfeld
- Max: Unbegrenzt
- Use-Case: JSON, Listen, lange Texte
✅ Status
Hotfix: v1.1.1 Datum: 2025-11-07 23:30 Status: ✅ Behoben
Alle Download-Dateien wurden aktualisiert!
📝 Zusätzliche Änderungen nötig?
Nein! Alle anderen Komponenten arbeiten transparent:
- ✅ PyScript kann beide Typen gleich nutzen
- ✅ Templates funktionieren identisch
- ✅ Automation unverändert
- ✅ Dashboard unverändert (außer Entity-ID)
Die einzige Änderung ist input_text → input_textarea in allen Referenzen.
🎓 Gelernt
Wichtige Home Assistant Regel:
input_text= max. 255 Zeichen (hart limitiert)- Für große Daten immer
input_textareaverwenden - Limit ist nicht konfigurierbar!
Best Practice:
- JSON-Daten → input_textarea
- IDs/Namen → input_text
- Bei Zweifeln → input_textarea (sicherer)
Alle Dateien im Download sind bereits korrigiert! ✅