{"id":44824651,"url":"https://github.com/ebongard/renfield","last_synced_at":"2026-05-25T23:02:40.358Z","repository":{"id":337477385,"uuid":"1135156992","full_name":"ebongard/renfield","owner":"ebongard","description":"Self-hosted AI assistant with voice satellites, 100+ tool integrations, RAG knowledge base, and full offline capability. Built with FastAPI + React + Ollama.","archived":false,"fork":false,"pushed_at":"2026-04-26T11:14:13.000Z","size":24053,"stargazers_count":6,"open_issues_count":47,"forks_count":3,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-26T11:22:53.469Z","etag":null,"topics":["ai-assistant","docker","knowledge-base","knowledge-graph","mcp","offline-first","ollama","presence-detection","privacy","pwa","rag","raspberry-pi","react","self-hosted","speaker-recognition","typescript","voice-assistant"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ebongard.png","metadata":{"files":{"readme":"README.de.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-15T18:05:46.000Z","updated_at":"2026-04-26T09:59:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"6a51c28a-a06b-4eed-bb91-7cae3983e44c","html_url":"https://github.com/ebongard/renfield","commit_stats":null,"previous_names":["ebongard/renfield"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/ebongard/renfield","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebongard%2Frenfield","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebongard%2Frenfield/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebongard%2Frenfield/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebongard%2Frenfield/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ebongard","download_url":"https://codeload.github.com/ebongard/renfield/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebongard%2Frenfield/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32527138,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-02T01:12:54.858Z","status":"online","status_checked_at":"2026-05-02T02:00:05.923Z","response_time":132,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-assistant","docker","knowledge-base","knowledge-graph","mcp","offline-first","ollama","presence-detection","privacy","pwa","rag","raspberry-pi","react","self-hosted","speaker-recognition","typescript","voice-assistant"],"created_at":"2026-02-16T21:22:14.002Z","updated_at":"2026-05-02T08:00:41.557Z","avatar_url":"https://github.com/ebongard.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[English](README.md) | **Deutsch**\n\n# Renfield - Persönlicher KI-Assistent\n\nEin vollständig offline-fähiger, selbst-gehosteter **digitaler Assistent** — ein persönlicher AI Hub, der Wissen, Informationsabfragen und Multi-Channel-Steuerung in einer Oberfläche bündelt. Renfield dient mehreren Nutzern parallel im Haushalt, mit abfragbarer Wissensbasis (RAG), gebündeltem Tool-Zugriff über 10 MCP-Server und Smart-Home-Steuerung.\n\n**Tech Stack:** Python 3.11 · FastAPI · React 18 · TypeScript · PostgreSQL 16 · Redis 7 · Ollama · Docker Compose\n\n## Haftungsausschluss\n\nrenfield ist ein unabhängiges Open-Source-Projekt.\nEs besteht keine Verbindung zu Dritten, Organisationen, Unternehmen\noder Marken mit gleichem oder ähnlichem Namen, und es erfolgt keine\nUnterstützung oder Billigung durch solche Dritte.\n\n## Features\n\n### Kernfunktionen\n- **Chat-Interface** — Streaming-Antworten, Inline-Album-Art, einklappbare Agent-Schritte, Credential-Redaction\n- **Konversations-Historie** — Sidebar mit Chatverläufen, Datumsgruppierung, Session-Persistenz, Follow-up-Fragen\n- **Agent System (ReAct)** — Mehrstufige Anfragen mit Tool-Verkettung, Agent Router mit spezialisierten Rollen, Media Transport Shortcuts\n- **Knowledge Graph** — Entity-Relation-Tripel mit Post-Extraction-Validierung, String-Similarity-Dedup und Bulk Cleanup API\n- **Konversations-Gedächtnis** — Langzeit-Erinnerungen (Präferenzen, Fakten, Anweisungen) mit Widerspruchserkennung\n- **Intent Feedback Learning** — Lernt aus Korrekturen und verbessert Intent-Erkennung über semantisches Matching (3 Scopes: Intent, Tool, Komplexität)\n- **Spracheingabe \u0026 -ausgabe** — Whisper STT und Piper TTS, Sprechererkennung mit SpeechBrain\n- **Präsenzerkennung** — BLE-Scanning, Sprechererkennung und Web-Auth verfolgen, wer sich in welchem Raum befindet\n- **Proaktive Benachrichtigungen** — Webhook-basierte Alerts von Home Assistant/n8n + generisches MCP Notification Polling\n- **Paperless Audit** — Automatisierte LLM-basierte Metadaten-Prüfung mit Review Queue, OCR-Qualitätsbewertung und Auto-Fix\n- **Hook/Plugin-System** — Asynchrone Extension-API für eigene Integrationen ohne Core-Änderungen\n\n### Integrationen (10 MCP-Server)\n| Server | Beschreibung | Transport | Aktivierung |\n|--------|-------------|-----------|-------------|\n| Weather | OpenWeatherMap | stdio | `WEATHER_ENABLED=true` |\n| Search | SearXNG Metasearch | stdio | `SEARCH_ENABLED=true` |\n| News | NewsAPI | stdio | `NEWS_ENABLED=true` |\n| Calendar | Exchange, Google, CalDAV (Multi-Account) | stdio | `CALENDAR_ENABLED=true` |\n| Jellyfin | Media Server | stdio | `JELLYFIN_ENABLED=true` |\n| DLNA | Media Renderer Control (Gapless Queue) | streamable_http | `DLNA_MCP_ENABLED=true` |\n| n8n | Workflow Automation | stdio | `N8N_MCP_ENABLED=true` |\n| Home Assistant | Smart Home | streamable_http | `HA_MCP_ENABLED=true` |\n| Paperless | Dokumenten-Management | stdio | `PAPERLESS_ENABLED=true` |\n| Email | IMAP/SMTP E-Mail | stdio | `EMAIL_MCP_ENABLED=true` |\n\n### Wissensspeicher (RAG)\n- **Hybrid Search** — Dense Embeddings (pgvector) + BM25 Full-Text-Search (German FTS, OR-Matching), kombiniert via RRF\n- **Unterstützte Formate** — PDF, DOCX, PPTX, XLSX, HTML, Markdown, TXT (EasyOCR Fallback für unleserliche PDFs)\n- **Knowledge Bases** — Thematische Sammlungen mit Sharing und Zugriffssteuerung\n- **Agent Tool** — `knowledge_search` für kombinierte RAG- + Paperless-Suche im Agent Loop\n- **Knowledge Graph** — Entity-Relation-Tripel mit Post-Extraction-Validierung, String-Similarity-Dedup, Bulk Cleanup API, Admin-Dashboard\n- **Context Window** — Benachbarte Chunks werden automatisch zum Treffer hinzugefügt\n\n### Proaktive Benachrichtigungen \u0026 Erinnerungen\n- **Webhook-basiert** — Home Assistant / n8n → Renfield (Bearer Token Auth)\n- **Semantische Deduplizierung** — Verhindert doppelte Benachrichtigungen via pgvector\n- **Erinnerungen** — Zeitgesteuerte Reminder mit natürlichsprachlicher Eingabe\n\n### Multi-Room Device System\n- **Raspberry Pi Satellites** — Pi Zero 2 W + ReSpeaker 2-Mics HAT (~63€ pro Einheit)\n- **Wake-Word-Erkennung** — Lokales OpenWakeWord, zentrale Verwaltung\n- **Audio-Output-Routing** — TTS-Ausgabe auf optimales Gerät im Raum (Renfield, HA, DLNA)\n- **IP-basierte Raumerkennung** — Automatischer Raum-Kontext für Befehle\n\n### Präsenzerkennung\n\nRaumbasierte Präsenzerkennung aus drei Quellen:\n\n| Quelle | Auslöser | Latenz |\n|--------|----------|--------|\n| BLE-Scanning | Satellit erkennt Telefon/Uhr via Bluetooth | ~30s (Hysterese) |\n| Voice Presence | Sprechererkennung identifiziert Nutzer | Sofort |\n| Web Auth | Authentifizierter Nutzer mit Raumzuweisung | Sofort |\n\n- **Privacy-aware TTS** — Benachrichtigungen respektieren Raumbelegung (public / personal / confidential)\n- **Automation-Hooks** — `enter_room`, `leave_room`, `first_arrived`, `last_left` Events feuern Webhooks für n8n / Home Assistant\n- **Presence Dashboard** — Echtzeit-Raumbelegung im Admin-UI\n\n### Sicherheit \u0026 Zugriffskontrolle\n- **RPBAC** — Role-Permission Based Access Control mit JWT (optional)\n- **Rate Limiting** — WebSocket + REST API, konfigurierbare Limits\n- **Circuit Breaker** — Automatische Ausfallsicherung für LLM und Agent\n- **Secrets Management** — Docker Secrets in Produktion (`/run/secrets/`)\n- **Trusted Proxies** — CIDR-basierte Proxy-Konfiguration\n\n### Plattform\n- **Progressive Web App** — Desktop, Tablet, Smartphone\n- **Dark Mode** — Hell, Dunkel, System (folgt OS-Präferenz)\n- **Mehrsprachigkeit** — Deutsch und Englisch (react-i18next)\n- **Vollständig Offline** — Keine Cloud-Abhängigkeiten\n- **Prometheus Metrics** — Opt-in `/metrics` Endpoint\n\n## Architektur\n\n```\n┌──────────────────────────────────────────────────────────────────────────────┐\n│                             RENFIELD ECOSYSTEM                               │\n├──────────────────────────────────────────────────────────────────────────────┤\n│                                                                              │\n│  ┌─────────────┐    ┌─────────────┐    ┌─────────────┐                      │\n│  │  Satellite  │    │  Satellite  │    │  Web Panel  │                      │\n│  │ Wohnzimmer  │    │   Küche     │    │   Tablet    │                      │\n│  │ Pi Zero 2 W │    │ Pi Zero 2 W │    │  (Browser)  │                      │\n│  └──────┬──────┘    └──────┬──────┘    └──────┬──────┘                      │\n│         │                  │                  │                              │\n│         └────────┬─────────┴─────────┬────────┘                             │\n│                  │   WebSocket       │                                       │\n│                  ▼                   ▼                                       │\n│  ┌───────────────────────────────────────────────────────────────────────┐   │\n│  │                     Frontend (React PWA)                              │   │\n│  │   Chat · Voice · Knowledge · Rooms · Cameras · Admin · Notifications │   │\n│  └──────────────────────────┬────────────────────────────────────────────┘   │\n│                             │ WebSocket + REST                               │\n│  ┌──────────────────────────▼────────────────────────────────────────────┐   │\n│  │                       Backend (FastAPI)                                │   │\n│  │                                                                       │   │\n│  │  ┌────────────────┐  ┌────────────────┐  ┌────────────────────────┐   │   │\n│  │  │ Intent Recog.  │  │  Agent Router  │  │   Action Executor      │   │   │\n│  │  │ (Ranked, FB)   │  │  (8 Roles)     │  │   (MCP + Plugins)      │   │   │\n│  │  └────────────────┘  └────────────────┘  └────────────────────────┘   │   │\n│  │  ┌────────────────┐  ┌────────────────┐  ┌────────────────────────┐   │   │\n│  │  │ Memory Service │  │ Notification   │  │   RAG Service          │   │   │\n│  │  │ (Long-term)    │  │ Service        │  │   (Hybrid Search)      │   │   │\n│  │  └────────────────┘  └────────────────┘  └────────────────────────┘   │   │\n│  │  ┌────────┐ ┌────────┐ ┌─────────────┐ ┌──────────┐ ┌────────────┐   │   │\n│  │  │Whisper │ │ Piper  │ │RoomService  │ │ Speaker  │ │ Presence   │   │   │\n│  │  │ (STT)  │ │ (TTS)  │ │OutputRouting│ │ Recog.   │ │ Detection  │   │   │\n│  │  └────────┘ └────────┘ └─────────────┘ └──────────┘ └────────────┘   │   │\n│  └───────────────────────────────────────────────────────────────────────┘   │\n│              │                    │                    │                      │\n│  ┌───────────▼────────────────────▼────────────────────▼─────────────────┐   │\n│  │                   PostgreSQL + pgvector + Redis                        │   │\n│  │  Conversations · Memories · Documents · Embeddings · Notifications    │   │\n│  │  Rooms · Devices · Speakers · Feedback · Suppressions · Reminders     │   │\n│  └───────────────────────────────────────────────────────────────────────┘   │\n│              │                                                               │\n│  ┌───────────▼───────────────────────────────────────────────────────────┐   │\n│  │                      MCP-Server \u0026 Externe Dienste                     │   │\n│  │  ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐  │   │\n│  │  │ Ollama │ │Home    │ │Frigate │ │  n8n   │ │Weather │ │Search  │  │   │\n│  │  │ (LLM)  │ │Assist. │ │ (NVR)  │ │  MCP   │ │  MCP   │ │  MCP   │  │   │\n│  │  └────────┘ └────────┘ └────────┘ └────────┘ └────────┘ └────────┘  │   │\n│  │  ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐             │   │\n│  │  │ News   │ │Jellyfin│ │ DLNA   │ │Paper-  │ │Calendar│             │   │\n│  │  │  MCP   │ │  MCP   │ │  MCP   │ │less/   │ │  MCP   │             │   │\n│  │  │        │ │        │ │ (Host) │ │Email   │ │        │             │   │\n│  │  └────────┘ └────────┘ └────────┘ └────────┘ └────────┘             │   │\n│  └───────────────────────────────────────────────────────────────────────┘   │\n└──────────────────────────────────────────────────────────────────────────────┘\n```\n\n## Schnellstart\n\n### Voraussetzungen\n\n- Docker \u0026 Docker Compose\n- Mindestens 16GB RAM (32GB empfohlen)\n- Optional: NVIDIA GPU für bessere Performance\n\n### Installation\n\n1. **Repository klonen**\n```bash\ngit clone \u003cyour-repo-url\u003e renfield\ncd renfield\n```\n\n2. **Umgebungsvariablen konfigurieren**\n```bash\ncp .env.example .env\nnano .env\n```\n\nWichtige Einstellungen:\n```env\n# Ollama (lokal oder extern)\nOLLAMA_URL=http://ollama:11434\nOLLAMA_CHAT_MODEL=qwen3:14b\n\n# Home Assistant (optional)\nHOME_ASSISTANT_URL=http://homeassistant.local:8123\nHOME_ASSISTANT_TOKEN=dein_long_lived_access_token\n\n# MCP aktivieren\nMCP_ENABLED=true\n```\n\n3. **System starten**\n```bash\n# Entwicklung auf Mac\ndocker compose -f docker-compose.dev.yml up -d\n\n# Produktion mit NVIDIA GPU\ndocker compose -f docker-compose.prod.yml up -d\n\n# Produktion ohne GPU\ndocker compose -f docker-compose.prod-cpu.yml up -d\n\n# Standard\ndocker compose up -d\n```\n\n4. **Ollama Modell laden**\n```bash\ndocker exec -it renfield-ollama ollama pull qwen3:8b\n```\n\n\u003e **Tipp:** Du kannst auch eine externe Ollama-Instanz (z.B. auf einem GPU-Server) nutzen.\n\u003e Setze `OLLAMA_URL=http://cuda.local:11434` in der `.env` Datei.\n\u003e Siehe [docs/EXTERNAL_OLLAMA.md](docs/EXTERNAL_OLLAMA.md) für Details.\n\n### Zugriff\n\n- **Web-Interface**: http://localhost:3000\n- **API Dokumentation**: http://localhost:8000/docs\n- **Backend API**: http://localhost:8000\n\n## Docker Compose Varianten\n\n| Datei | Verwendung | GPU | Beschreibung |\n|-------|------------|-----|--------------|\n| `docker-compose.yml` | Standard | Nein | Basis-Setup für die meisten Anwendungsfälle |\n| `docker-compose.dev.yml` | Entwicklung | Nein | Mac-Entwicklung mit exponierten Debug-Ports |\n| `docker-compose.prod.yml` | Produktion | Ja | NVIDIA GPU-Support, nginx mit SSL |\n| `docker-compose.prod-cpu.yml` | Produktion | Nein | Produktion ohne GPU |\n\n## Konfiguration\n\nAlle Einstellungen via `.env`, geladen durch Pydantic Settings (`src/backend/utils/config.py`). Vollständige Referenz: [docs/ENVIRONMENT_VARIABLES.md](docs/ENVIRONMENT_VARIABLES.md)\n\n### LLM (Multi-Modell)\n\nRenfield unterstützt separate Modelle für verschiedene Aufgaben:\n\n```env\nOLLAMA_URL=http://ollama:11434\nOLLAMA_CHAT_MODEL=qwen3:14b      # Chat-Antworten\nOLLAMA_INTENT_MODEL=qwen3:8b     # Intent-Erkennung\nOLLAMA_RAG_MODEL=qwen3:14b       # RAG-Antworten\nOLLAMA_EMBED_MODEL=nomic-embed-text  # Embeddings (768 Dim.)\nAGENT_MODEL=                      # Optional: Agent-Modell\nAGENT_OLLAMA_URL=                 # Optional: Separate Ollama-Instanz\n```\n\nSiehe [docs/LLM_MODEL_GUIDE.md](docs/LLM_MODEL_GUIDE.md) für Modell-Empfehlungen.\n\n### Integrationen (MCP)\n\n```env\nMCP_ENABLED=true                  # Master-Switch\nWEATHER_ENABLED=true              # + OPENWEATHER_API_KEY\nSEARCH_ENABLED=true               # + SEARXNG_API_URL\nNEWS_ENABLED=true                 # + NEWSAPI_KEY\nJELLYFIN_ENABLED=true             # + JELLYFIN_URL, JELLYFIN_API_KEY\nDLNA_MCP_ENABLED=true             # + DLNA_MCP_URL (Host-Service)\nN8N_MCP_ENABLED=true              # + N8N_BASE_URL, N8N_API_KEY\nHA_MCP_ENABLED=true               # + HOME_ASSISTANT_URL, HOME_ASSISTANT_TOKEN\nPAPERLESS_ENABLED=true            # + PAPERLESS_API_URL, PAPERLESS_API_TOKEN\nEMAIL_MCP_ENABLED=true            # + config/mail_accounts.yaml\nCALENDAR_ENABLED=true             # + config/calendar_accounts.yaml\n```\n\nAPI-Keys in Produktion als Docker Secrets bereitstellen. Siehe [docs/SECRETS_MANAGEMENT.md](docs/SECRETS_MANAGEMENT.md).\n\n### Weitere Schlüssel-Einstellungen\n\n```env\n# Agent System\nAGENT_ENABLED=false               # ReAct Agent Loop (opt-in)\nAGENT_MAX_STEPS=12                # Max Reasoning-Schritte\n\n# Konversations-Gedächtnis\nMEMORY_ENABLED=false              # Langzeit-Erinnerungen (opt-in)\nMEMORY_CONTRADICTION_RESOLUTION=false  # Widerspruchserkennung (opt-in)\n\n# Proaktive Benachrichtigungen\nPROACTIVE_ENABLED=false           # Webhook-Benachrichtigungen (opt-in)\nPROACTIVE_REMINDERS_ENABLED=false # Erinnerungen (opt-in)\n\n# Authentifizierung\nAUTH_ENABLED=false                # RPBAC (opt-in)\n\n# Präsenzerkennung\nPRESENCE_ENABLED=false           # Raum-Präsenzerkennung (opt-in)\n\n# Knowledge Graph\nKNOWLEDGE_GRAPH_ENABLED=false    # Entity-Relation-Extraktion (opt-in)\n\n# Proaktive Benachrichtigungen\nNOTIFICATION_POLLER_ENABLED=false # MCP Notification Polling (opt-in)\n\n# Monitoring\nMETRICS_ENABLED=false             # Prometheus /metrics (opt-in)\n```\n\n## Entwicklung\n\n### Befehle\n\n```bash\nmake lint                    # Lint all code (ruff + eslint)\nmake format-backend          # Format + auto-fix mit ruff\nmake test                    # Alle Tests\nmake test-backend            # Backend-Tests (2.100+)\nmake test-frontend-react     # React-Tests (Vitest + RTL)\nmake test-coverage           # Tests mit Coverage-Report (fail-under=50%)\n```\n\n### Datenbank-Migrationen\n\n```bash\ndocker exec -it renfield-backend alembic revision --autogenerate -m \"description\"\ndocker exec -it renfield-backend alembic upgrade head\n```\n\n### Debug \u0026 Admin\n\n```bash\n# Intent-Erkennung testen\ncurl -X POST \"http://localhost:8000/debug/intent?message=Schalte das Licht ein\"\n\n# Home Assistant Keywords neu laden\ncurl -X POST \"http://localhost:8000/admin/refresh-keywords\"\n\n# Alle Embeddings neu berechnen (nach Modell-Wechsel)\ncurl -X POST \"http://localhost:8000/admin/reembed\"\n```\n\n## API-Übersicht\n\n20 Route-Module mit 100+ Endpunkten. Interaktive Dokumentation unter `/docs`.\n\n| Bereich | Prefix | Beschreibung |\n|---------|--------|--------------|\n| Auth | `/api/auth` | Login, Register, JWT Refresh, Voice Auth |\n| Chat | `/api/chat` | Nachrichten, Historie, Suche, Statistiken |\n| Voice | `/api/voice` | STT (Whisper), TTS (Piper) |\n| Knowledge | `/api/knowledge` | RAG: Upload, Search, Knowledge Bases, Sharing |\n| Memory | `/api/memory` | Langzeit-Erinnerungen: CRUD, History, Audit Trail |\n| Notifications | `/api/notifications` | Webhook, Acknowledge, Suppressions, Reminders |\n| Feedback | `/api/feedback` | Intent-Korrekturen und Feedback Learning |\n| MCP | `/api/mcp` | Server-Status, Tools, Refresh |\n| Intents | `/api/intents` | Verfügbare Intents und Integrationen |\n| Home Assistant | `/api/homeassistant` | Entity-Steuerung (via direkter API) |\n| Camera | `/api/camera` | Frigate Events, Snapshots |\n| Rooms | `/api/rooms` | Raum-CRUD, Geräte, HA-Sync |\n| Speakers | `/api/speakers` | Sprechererkennung, Enrollment |\n| Satellites | `/api/satellites` | Monitoring, Metriken, Logs |\n| Settings | `/api/settings` | Wake-Word, Modell-Konfiguration |\n| Preferences | `/api/preferences` | Sprach-Einstellungen |\n| Users | `/api/users` | Benutzer-Verwaltung |\n| Roles | `/api/roles` | Rollen-Verwaltung (RPBAC) |\n| Tasks | `/api/tasks` | Task-Queue |\n| Plugins | `/api/plugins` | Plugin-Verwaltung (Legacy) |\n| WebSocket | `/ws`, `/ws/device`, `/ws/satellite` | Chat, Geräte, Satellites |\n\n## Multi-Room Satellite System\n\nRaspberry Pi Zero 2 W + ReSpeaker 2-Mics Pi HAT als Sprachassistenten in jedem Raum.\n\n### Hardware pro Satellite (~63€)\n\n| Komponente | Preis |\n|------------|-------|\n| Raspberry Pi Zero 2 W | ~18€ |\n| ReSpeaker 2-Mics Pi HAT V2.0 | ~12€ |\n| MicroSD Card 16GB | ~8€ |\n| 5V/2A Netzteil | ~10€ |\n| 3.5mm Lautsprecher | ~10€ |\n| Gehäuse (optional) | ~5€ |\n\n### Schnellstart\n\n```bash\ncd /opt/renfield-satellite\nsource venv/bin/activate\npython -m renfield_satellite config/satellite.yaml\n```\n\n**Vollständige Anleitung:** [renfield-satellite/README.md](renfield-satellite/README.md)\n\n## Fehlerbehebung\n\n### Ollama lädt nicht\n```bash\ndocker exec -it renfield-ollama ollama pull qwen3:8b\ndocker compose restart backend\n```\n\n### WebSocket Verbindung fehlgeschlagen\n```bash\n# CORS und Backend-Container prüfen\ndocker logs renfield-backend\n```\n\n### Satellite findet Backend nicht\n```bash\n# Zeroconf-Advertisement prüfen\ndocker compose logs backend | grep zeroconf\n\n# Manuelle URL in satellite config setzen\n# config/satellite.yaml:\nserver:\n  auto_discover: false\n  url: \"ws://renfield.local:8000/ws/satellite\"\n```\n\n### Intent-Erkennung ungenau\n```bash\n# HA-Keywords aktualisieren\ncurl -X POST \"http://localhost:8000/admin/refresh-keywords\"\n\n# Intent direkt testen\ncurl -X POST \"http://localhost:8000/debug/intent?message=DEINE_NACHRICHT\"\n```\n\n### Embeddings nach Modellwechsel neu berechnen\n```bash\ncurl -X POST \"http://localhost:8000/admin/reembed\"\n# Re-embedded: RAG Chunks, Memories, Feedback Corrections, Notification Suppressions\n```\n\n## Weitere Dokumentation\n\n| Dokument | Inhalt |\n|----------|--------|\n| [docs/FEATURES.md](docs/FEATURES.md) | Ausführliche Feature-Dokumentation |\n| [docs/ENVIRONMENT_VARIABLES.md](docs/ENVIRONMENT_VARIABLES.md) | Vollständige Konfigurationsreferenz |\n| [docs/LLM_MODEL_GUIDE.md](docs/LLM_MODEL_GUIDE.md) | Modell-Empfehlungen und Konfiguration |\n| [docs/DEPLOYMENT.md](docs/DEPLOYMENT.md) | Deployment-Anleitung |\n| [docs/SECRETS_MANAGEMENT.md](docs/SECRETS_MANAGEMENT.md) | Docker Secrets für Produktion |\n| [docs/SECURITY.md](docs/SECURITY.md) | Security Headers, CSP, Abhängigkeitssicherheit |\n| [docs/ACCESS_CONTROL.md](docs/ACCESS_CONTROL.md) | RPBAC-Zugriffskontrolle \u0026 MCP-Berechtigungen |\n| [docs/SPEAKER_RECOGNITION.md](docs/SPEAKER_RECOGNITION.md) | Sprechererkennung |\n| [docs/OUTPUT_ROUTING.md](docs/OUTPUT_ROUTING.md) | Audio-Output-Routing |\n| [docs/PROACTIVE_NOTIFICATIONS.md](docs/PROACTIVE_NOTIFICATIONS.md) | Webhook-Benachrichtigungen \u0026 proaktive Alerts |\n| [docs/MULTILANGUAGE.md](docs/MULTILANGUAGE.md) | Mehrsprachigkeit (i18n) |\n| [docs/WAKEWORD_CONFIGURATION.md](docs/WAKEWORD_CONFIGURATION.md) | Wake-Word-Erkennung konfigurieren |\n| [docs/EXTERNAL_OLLAMA.md](docs/EXTERNAL_OLLAMA.md) | Externe Ollama-Instanzen |\n| [docs/SATELLITE_MONITORING.md](docs/SATELLITE_MONITORING.md) | Satellite-Monitoring |\n| [docs/SATELLITE_OTA_UPDATES.md](docs/SATELLITE_OTA_UPDATES.md) | Satellite Over-the-Air-Updates |\n| [docs/AUDIO_CAPTURE_4MIC.md](docs/AUDIO_CAPTURE_4MIC.md) | ReSpeaker 4-Mic-Array-Unterstützung |\n| [CLAUDE.md](CLAUDE.md) | Entwickler-Referenz (Architektur, Patterns, Commands) |\n\n## Danksagungen\n\n- [Ollama](https://ollama.ai/) — Lokales LLM\n- [Whisper](https://github.com/openai/whisper) — Speech-to-Text\n- [Piper](https://github.com/rhasspy/piper) — Text-to-Speech\n- [SpeechBrain](https://speechbrain.github.io/) — Speaker Recognition (ECAPA-TDNN)\n- [IBM Docling](https://github.com/DS4SD/docling) — Document Processing für RAG\n- [pgvector](https://github.com/pgvector/pgvector) — Vector Similarity Search\n- [Home Assistant](https://www.home-assistant.io/) — Smart Home Platform\n- [Frigate](https://frigate.video/) — NVR mit Objekterkennung\n- [n8n](https://n8n.io/) — Workflow Automation\n- [SearXNG](https://docs.searxng.org/) — Metasearch Engine\n- [OpenWakeWord](https://github.com/dscripka/openWakeWord) — Wake Word Detection\n\n## Lizenz\n\nMIT License — siehe LICENSE Datei\n\n## Support\n\nBei Fragen oder Problemen erstelle bitte ein Issue im Repository.\n\n---\n\n**Hinweis**: Dieses Projekt ist für den privaten Gebrauch konzipiert. Stelle sicher, dass du die Datenschutzrichtlinien deines Landes beachtest, insbesondere bei der Kamera-Überwachung.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Febongard%2Frenfield","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Febongard%2Frenfield","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Febongard%2Frenfield/lists"}