From 6b500cb65b2a73f791ab682f7eec6d80b3c86fd9 Mon Sep 17 00:00:00 2001 From: "martin.schweitzer" Date: Mon, 13 Apr 2026 13:49:24 +0000 Subject: [PATCH] deploy script form: ultimo_meter_readings --- scripts/ultimo_meter_readings.form.json | 153 ++++++++++++++++++++++++ 1 file changed, 153 insertions(+) create mode 100644 scripts/ultimo_meter_readings.form.json diff --git a/scripts/ultimo_meter_readings.form.json b/scripts/ultimo_meter_readings.form.json new file mode 100644 index 0000000..da70387 --- /dev/null +++ b/scripts/ultimo_meter_readings.form.json @@ -0,0 +1,153 @@ +{ + "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" + } + } + ] +} \ No newline at end of file