(Insect Detect) config.yaml
Allgemeines
Ich habe ich mir mal hier alles zusammengetragen, was ich zum Manipulieren und Verstehen der config.yaml benoetige.
Bei Github werden 3 verschiedene yaml-Dateen bereitgestellt.
config_custom.yamlconfig_default.yamlconfig_selector.yaml
Code Analyse
ChatGPT meint:
Was ich aber tun kann: dir sauber erklären, wie die drei Dateien im Projekt gedacht sind und wie sie sich strukturell / funktional unterscheiden – also quasi eine „Konzept-Diff“-Tabelle statt eines Zeilen-Diffs.
Rolle der drei Dateien im Insect-Detect-Setup
Aus README, Installer-Script und Doku geht folgendes hervor: (GitHub)
config_default.yaml- Wird vom Projekt als Basis-/Werkskonfiguration mitgeliefert.
- Enthält alle Parameter mit „vernünftigen Standardwerten“ (Model, Auflösungen, Trigger-Intervalle, Speicherpfade, Power-Settings etc.).
- Wird nicht vom Web-UI überschrieben; dient eher als Vorlage/Referenz.
config_custom.yamlIst die benutzerdefinierte aktive Konfiguration, die du entweder:
- direkt per Editor, oder
- über die WebApp bearbeitest.
Wird vom Installer explizit erwähnt:
„Use the web app to configure your custom settings… or modify the
insect-detect/configs/config_custom.yamlfile directly.“ (GitHub)Beim Start von
trigger_capture.py/startup.pywerden diese Werte genutzt.
config_selector.yamlDient als „Zeiger“ auf die aktive Config.
Laut README kannst du „mehrere Konfigurationsdateien generieren“ und „die aktive Config entweder über die Web-App oder durch Ändern von
config_selector.yamlauswählen“. (GitHub)Vermutlich enthält sie nur so etwas wie:
active_config: config_custom.yaml
oder alternativ einen Namen / Pfad zu deiner bevorzugten Konfiguration.
Vergleich in Tabellenform (funktionale Unterschiede)
Achtung: Keine exakten Zahlen/Parameter, sondern funktionale/unstrukturelle Unterschiede, weil ich den Inhalt nicht laden kann.
| Aspekt | config_default.yaml
|
config_custom.yaml
|
config_selector.yaml
|
|---|---|---|---|
| Zweck | Werks-/Standardkonfiguration des Projekts | Deine anpassbare, aktuell verwendete Konfiguration | Wählt aus, welche Konfigurationsdatei aktiv ist |
| Wer schreibt die Datei? | Projekt-Autor (Repo) | Du bzw. die WebApp | Du / WebApp |
| Wird vom Installer/Web-UI geändert? | Normalerweise nein (soll unangetastet bleiben) | Ja – Haupteintragspunkt für Custom-Settings | Ja, wenn du das aktive Profil umschaltest |
| Typische Inhalte | Vollständiger Satz aller Parameter mit Standardeinstellungen (z. B. Pfade, Trigger-Intervalle, Timer, Kamera-Auflösung, Model-Pfad, Power-Management, Upload, Logging) | Gleiche Struktur wie config_default.yaml, aber mit deinen geänderten Werten (z. B. anderes Model, andere Intervallzeiten, anderer Output-Pfad etc.)
|
Wenige Schlüssel: z. B. active_config: config_custom.yaml oder Name eines Profils
|
Wird direkt vom Capture-Script benutzt? (trigger_capture.py)
|
Indirekt (nur als Vorlage, wenn du config_custom danach modellierst)
|
Ja, ist die eigentliche Runtime-Config | Indirekt – das Startup-/WebApp-Logik liest sie, um zu wissen, welche Config geladen werden soll |
| Rolle im Workflow | Referenz, um jederzeit „zurück auf Werkseinstellungen“ gehen zu können | Tagesgeschäft: alle deine echten Einstellungen landen hier | Profilumschalter: gibt an, welche YAML aktuell „aktiv“ ist |
| Risiko bei Bearbeitung | Wenn du sie änderst, verlierst du die Standardwerte als Referenz | Hier sollst du ändern – genau dafür ist sie da | Falscher Name/Pfad → System findet aktive Konfig nicht (Fehler beim Start) |
Praktische Konsequenz für dich
- Wenn du wissen willst, was vom Projekt „normal“ vorgesehen ist: → Schau in
config_default.yaml. - Wenn du wissen willst, was deine Kamera derzeit wirklich macht: → Schau in
config_custom.yaml(das ist die „Wahrheit zur Laufzeit“, sofernconfig_selector.yamldarauf zeigt). - Wenn du mehrere Profile nutzen willst (z. B. unterschiedliche Standorte, Modelle):
- Lege mehrere
config_*.yamlan (z. B.config_meadow.yaml,config_forest.yaml). - In
config_selector.yamlstellst du jeweils den Namen/Pfad des aktiven Profils ein. - Oder du nutzt die Web-App, die das für dich umschreibt.
- Lege mehrere