# FEDEO Geräte-Agent Der FEDEO Geräte-Agent läuft lokal auf macOS, Linux oder Raspberry Pi OS. Er holt instanzweite Scan-Aufträge von FEDEO ab, führt sie auf einem lokal angeschlossenen Scanner aus und lädt das Ergebnis wieder in FEDEO hoch. Der Agent ist nicht an einen Mandanten gebunden. Jeder Auftrag enthält seinen Tenant selbst. ## Voraussetzungen ### macOS ```bash brew install node sane-backends scanimage -L ``` Drucken nutzt später das macOS-Drucksystem/CUPS: ```bash lpstat -p ``` ### Linux und Raspberry Pi OS ```bash sudo apt update sudo apt install -y nodejs npm sane-utils cups scanimage -L lpstat -p ``` ## Konfiguration ```bash cp .env.example .env nano .env ``` Wichtige Werte: ```env FEDEO_URL=https://deine-fedeo-instanz FEDEO_AGENT_TOKEN=fedeo_agent_... FEDEO_SCANNER_NAME= FEDEO_POLL_SECONDS=5 ``` Wenn `FEDEO_SCANNER_NAME` leer bleibt, verwendet `scanimage` den Standard-Scanner. ## Entwicklung ```bash npm install npm run dev ``` ## OpenCV-Nachbearbeitung Für automatischen Zuschnitt, leichte Entzerrung, Rotation und Kontrastkorrektur kann die OpenCV-Pipeline aktiviert werden. ```bash npm run setup:opencv ``` Konfiguration: ```env FEDEO_SCAN_POSTPROCESS=true FEDEO_SCAN_POSTPROCESS_PROFILE=receipt FEDEO_SCAN_POSTPROCESS_PYTHON=/pfad/zum/agent/.venv-opencv/bin/python FEDEO_SCAN_POSTPROCESS_STRICT=false ``` Wenn `FEDEO_SCAN_POSTPROCESS_PYTHON` leer bleibt, verwendet der Agent automatisch `.venv-opencv/bin/python`, sofern diese Umgebung existiert. Falls OpenCV nicht installiert ist und `FEDEO_SCAN_POSTPROCESS_STRICT=false` gesetzt ist, lädt der Agent den Rohscan hoch, statt den Auftrag komplett fehlschlagen zu lassen. Profile: - `receipt`: Bons und schmale Belege werden bevorzugt hochkant zugeschnitten und kontrastiert. - `document`: allgemeine Dokumente mit Farberhalt und moderater Verbesserung. - `raw`: Zuschnitt/Entzerrung ohne starke Kontrastkorrektur. ## Build ```bash npm run build npm start ``` ## FEDEO-Endpunkte Der Agent nutzt: - `POST /instance-agent/heartbeat` - `GET /instance-agent/scan-jobs/next` - `POST /instance-agent/scan-jobs/:id/status` - `POST /instance-agent/scan-jobs/:id/upload` ## macOS Autostart Die Vorlage liegt unter `system/macos/com.fedeo.device-agent.plist`. Nach Anpassung der Pfade kann sie als LaunchAgent installiert werden: ```bash mkdir -p ~/Library/LaunchAgents cp system/macos/com.fedeo.device-agent.plist ~/Library/LaunchAgents/ launchctl load ~/Library/LaunchAgents/com.fedeo.device-agent.plist ``` ## Linux Autostart Die Vorlage liegt unter `system/linux/fedeo-device-agent.service`.