{ "title": "Ultimo-Zählerstände eingeben", "description": "Erfassen Sie Ultimo-Zählerstände für ausgewählte Sensoren", "layout": "sections", "sections": [ { "title": "Sensor-Auswahl", "description": "Wählen Sie den Sensor für die Eingabe", "icon": "sensors", "field_names": [ "sensor_search", "sensor_id" ] }, { "title": "Variable und Einheit", "description": "Wählen Sie die Messgröße", "icon": "category", "field_names": [ "variable_name", "unit_name" ] }, { "title": "Zählerstände", "description": "Geben Sie die Ultimo-Stände ein", "icon": "edit", "field_names": [ "readings_text", "start_month", "end_month" ] } ], "fields": [ { "name": "sensor_search", "widget": "text_field", "label": "Sensor suchen", "hint_text": "Geben Sie einen Teil des Sensor-Namens ein", "prefix_icon": "search", "validators": [ { "type": "min_length", "value": 3, "error_text": "Mindestens 3 Zeichen eingeben" } ] }, { "name": "sensor_id", "widget": "dropdown", "label": "Sensor auswählen", "hint_text": "Wählen Sie den gewünschten Sensor aus", "prefix_icon": "device_hub", "validators": [ { "type": "required", "error_text": "Bitte wählen Sie einen Sensor aus" } ], "options": [] }, { "name": "variable_name", "widget": "dropdown", "label": "Messgröße", "hint_text": "Standard: ENERGY_INST_VAL (Energiezählerstand)", "prefix_icon": "speed", "initial_value": "ENERGY_INST_VAL", "options": [ { "value": "ENERGY_INST_VAL", "label": "ENERGY_INST_VAL (Standard)" }, { "value": "ENERGY_DAY_VAL", "label": "ENERGY_DAY_VAL (Tagesenergie)" }, { "value": "POWER_VAL", "label": "POWER_VAL (Leistung)" }, { "value": "ACTIVE_ENERGY_DELIVERED_9", "label": "ACTIVE_ENERGY_DELIVERED_9" }, { "value": "ACTIVE_ENERGY_ABSORBED_9", "label": "ACTIVE_ENERGY_ABSORBED_9" } ] }, { "name": "unit_name", "widget": "text_field", "label": "Einheit (optional)", "hint_text": "Standard: WH (Wattstunden)", "prefix_icon": "straighten", "initial_value": "WH" }, { "name": "readings_text", "widget": "text_field", "label": "Zählerstände", "hint_text": "Format: 2025-01: 12345.67 (ein Eintrag pro Zeile)", "helper_text": "Beispiel:\n2025-01: 12345.67\n2025-02: 12567.89", "prefix_icon": "format_list_numbered", "text_field_config": { "keyboard_type": "multiline", "max_lines": 10, "min_lines": 3 }, "validators": [ { "type": "required", "error_text": "Bitte geben Sie mindestens einen Zählerstand ein" }, { "type": "match", "value": "^\\s*(\\d{4}-\\d{2}\\s*:\\s*\\d+(?:\\.\\d+)?\\s*\\n?\\s*)+\\s*$", "error_text": "Format: YYYY-MM: 12345.67 (ein Eintrag pro Zeile)" } ] }, { "name": "start_month", "widget": "date_time_picker", "label": "Startmonat (optional)", "hint_text": "Für Validierung des Zeitraums", "prefix_icon": "calendar_today", "date_config": { "input_type": "date", "format": "yyyy-MM", "first_date": "2020-01-01", "last_date": "2030-12-31" } }, { "name": "end_month", "widget": "date_time_picker", "label": "Endmonat (optional)", "hint_text": "Für Validierung des Zeitraums", "prefix_icon": "event", "date_config": { "input_type": "date", "format": "yyyy-MM", "first_date": "2020-01-01", "last_date": "2030-12-31" } } ] }