diff --git a/app.py b/app.py index f2d46e9..3dc375b 100644 --- a/app.py +++ b/app.py @@ -53,7 +53,7 @@ def load_configs(): def index(): return render_template('index.html', configs=load_configs()) - +""" @app.route('/load_config/') def load_config(filename): global current_config @@ -69,13 +69,48 @@ def load_config(filename): except Exception as e: logger.error(f"Config-Ladefehler {filename}: {e}") return "Fehler beim Laden", 500 +""" +@app.route('/load_config/') +def load_config(filename): + global current_config + path = os.path.join(app.config['CONFIG_DIR'], filename) + + if not os.path.exists(path): + logger.error(f"Config nicht gefunden: {path}") + return "Konfiguration nicht gefunden", 404 + + try: + with open(path, 'r', encoding='utf-8') as f: + current_config = json.load(f) + current_config['filename'] = filename + logger.info(f"Config erfolgreich geladen: {filename} mit {len(current_config.get('channels', []))} Kanälen") + return redirect(url_for('control_page')) + except json.JSONDecodeError as e: + logger.error(f"Ungültiges JSON in {filename}: {e}") + return "Ungültiges JSON-Format in der Konfigurationsdatei", 500 + except Exception as e: + logger.error(f"Ladefehler {filename}: {e}") + return "Fehler beim Laden der Konfiguration", 500 +""" @app.route('/control') def control_page(): if current_config is None: return redirect(url_for('index')) return render_template('control.html', config=current_config) +""" + +@app.route('/control') +def control_page(): + if current_config is None: + logger.warning("current_config ist None → Redirect zu index") + return redirect(url_for('index')) + + logger.info(f"Übergebe config an Template: {current_config}") + print("DEBUG: config hat channels?", 'channels' in current_config, len(current_config.get('channels', []))) + + return render_template('control.html', config=current_config) # ── Admin ──────────────────────────────────────────────────────────────────── diff --git a/configs/dampflok1.json b/configs/dampflok1.json index f9b55f3..127505f 100644 --- a/configs/dampflok1.json +++ b/configs/dampflok1.json @@ -1,12 +1,23 @@ { - "name": "Dampflok BR 01", - "image": "dampflok1.jpg", + "name": "BR 01 Dampflok", + "image": "damkpflok1.jpg", "hub_id": 0, "hub_type": "4channel", "channels": [ - {"port": "A", "type": "motor", "name": "Fahrtrichtung", "invert": false, "negative_only": false}, - {"port": "B", "type": "motor", "name": "Unterstützung", "invert": false, "negative_only": false}, - {"port": "C", "type": "light", "name": "Licht vorne", "on_value": 1.0, "off_value": 0.0, "negative_only": false}, - {"port": "D", "type": "fogger", "name": "Dampf", "on_value": -1.0, "off_value": 0.0, "negative_only": true} + { + "port": "A", + "type": "motor", + "name": "Fahrtrichtung" + }, + { + "port": "B", + "type": "motor", + "name": "Dampf / Kohle" + }, + { + "port": "C", + "type": "light", + "name": "Spitzenlicht" + } ] } \ No newline at end of file diff --git a/templates/control.html b/templates/control.html index 6ada47d..dd19429 100644 --- a/templates/control.html +++ b/templates/control.html @@ -69,9 +69,19 @@ {% endblock %} + + +{% block scripts %} + {% endblock %} \ No newline at end of file