110 lines
2.5 KiB
Markdown
110 lines
2.5 KiB
Markdown
# 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`.
|