Files
vehicle-counter/.env.example
2026-06-05 12:28:10 +02:00

59 lines
2.8 KiB
Plaintext

# ===========================================================================
# Beispiel-Konfiguration fuer den Vehicle-Counter
# ---------------------------------------------------------------------------
# 1. Diese Datei nach ".env" kopieren: cp .env.example .env
# 2. Werte an die eigene Umgebung anpassen.
# Die .env wird beim Start automatisch geladen (python-dotenv) und ist per
# .gitignore vom Repository ausgeschlossen.
# ===========================================================================
# --- Kamera / Livestream ---------------------------------------------------
# MJPEG-Stream der ESP32-CAM (oder einer anderen HTTP-Stream-Quelle).
export CAMERA_URL="http://CAMERA-IP:81/stream"
# Frei waehlbare Kennung der Kamera (taucht in den MQTT-Events auf).
export CAMERA_ID="meine-kamera"
# --- Inferenz-Tuning -------------------------------------------------------
# YOLO-Modelle, getrennt fuer Live-Webcam und Video-Upload (n<s<m<l<x:
# groesser = genauer, aber mehr GPU-Last). yolo11s ist ein guter Kompromiss.
export WEBCAM_MODEL="yolo11s.pt"
export UPLOAD_MODEL="yolo11s.pt"
# Eingabegroesse fuer YOLO. Kleiner = schneller, groesser = genauer.
export YOLO_IMGSZ=480
# Motion-Gate: ab so vielen veraenderten Pixeln laeuft YOLO ueberhaupt.
export MOTION_PIXELS=500
# 24/7-Zaehlung auch ohne Zuschauer: 1 = an, 0 = nur bei aktivem Viewer.
export GRABBER_ALWAYS_ON=0
# FP16-Inferenz. Leer lassen = automatisch (an bei CUDA-GPU, sonst aus).
#export YOLO_HALF=1
# Zaehl-Band um die Linie (Pixel): faengt schnelle Fahrzeuge ab, die zwischen
# zwei Frames weit springen. 0 = aus (nur klassischer Linien-Schnitt).
export COUNT_BAND_PX=45
# Entprellung gegen Doppelzaehlung bei Track-ID-Wechseln (Pixel-Radius / Frames).
export COUNT_DEDUP_PX=60
export COUNT_DEDUP_FRAMES=12
# 24/7-Betrieb: Track-IDs nach so vielen Frames ohne Sichtung vergessen
# (verhindert Speicherleck / "Zaehlen verhungert nach Stunden").
export COUNT_FORGET_FRAMES=150
# --- MQTT (optional) -------------------------------------------------------
# Komplett abschaltbar: "false" -> App laeuft ohne Broker, sendet keine Events.
export MQTT_ENABLED="true"
# Adresse + Port des MQTT-Brokers (z. B. Mosquitto).
export MQTT_HOST="127.0.0.1"
export MQTT_PORT=1883
# Zugangsdaten nur setzen, wenn der Broker Authentifizierung verlangt.
#export MQTT_USER="user"
#export MQTT_PASS="passwort"
# Basis-Topic. Events laufen auf <TOPIC>/crossing, Status auf <TOPIC>/status.
export MQTT_TOPIC="vehiclecounter/meine-kamera"
# --- Sonstiges -------------------------------------------------------------
# Zeitzone fuer die Zeitstempel der Events.
export TZ_NAME="Europe/Berlin"
# Flask-Secret. Sicheren Zufallskey generieren:
# python3 -c 'import secrets; print(secrets.token_urlsafe(32))'
export SECRET_KEY="bitte-aendern"
# Speicherort der persistierten Zaehllinie.
export LINE_FILE="counting_line.json"