Restructure memory layers: USER.md/MEMORY.md cleanup, 4 new system pages, memory-layer-architecture concept

This commit is contained in:
Dominik Schön
2026-09-27 15:15:18 +00:00
parent 02f6a8e2b0
commit d1464eb9e3
8 changed files with 450 additions and 0 deletions
+62
View File
@@ -0,0 +1,62 @@
---
title: "Frigate NVR"
category: systems
tags: [frigate, nvr, camera, ai, mqtt, proxmox]
created: "2026-09-27"
modified: "2026-09-27"
---
# Frigate NVR
> Frigate v0.18.0 auf Proxmox LXC CT151. KI-gestützte Objekterkennung für Kameras Einfahrt + Terrasse.
## Infrastruktur
- **Container:** CT151 auf proxmox6
- **IP:** `10.0.30.104:5000`
- **Version:** v0.18.0-
- **Detector:** OpenVINO CPU (3.2 FPS)
- **go2rtc:** v1.9.14
- **GPU:** Intel iGPU `/dev/dri/renderD128` (gid=993)
## Kameras
| Name | IP | Substream | Detect FPS |
|------|----|-----------|------------|
| Einfahrt | `10.0.50.102` | Unterstream | 5.1 fps, 1.0 det |
| Terrasse | `10.0.50.103` | Unterstream | 5.0 fps, 2.2 det |
## MQTT
- **Broker:** `10.0.30.10:1883` (Mosquitto auf HA)
- **Prefix:** `frigate`
- **User:** `frigate`
- **Topic:** `frigate/events`
## Frigate Plus Model
- `plus://709bb8ad097786a7f2a37e27684c79a9`
- Benötigt `PLUS_API_KEY` (Env-Var in `/config/frigate.env`)
## Features
- Face Recognition (groß): Sarah, Dominik, DHL1, Amazon1, Cleo, Lisa, Annemarie, Marcel Schnitzer, Uli, Eva, Postbote, Fr. Schnitzer
- License Plate Recognition (CPU, threshold 0.5)
- Semantic Search (groß)
- Record: alerts+detections, retain 30 days
## HA Automation
- **ID:** `1714065780832` in `/config/automations.yaml`
- **Mode:** `single`, cooldown 600s
- **Dedup:** `input_text.frigate_last_event_id` speichert letzten Event
- **Flow:** MQTT trigger → 10s delay → snapshot → notify → LLM Vision (optional)
- **Labels:** person, car, license_plate, face, dog, cat, amazon, ups, package
- **Sublabel-Extraktion:** `sub[0]` (Jinja, Array-Leck-Fix)
## Bekannte Issues
- Stationäre Autos triggerten wiederholt "new" Events → Flood → gefixt mit cooldown+dedup
- MQTT ACL blockierte HA-Subscription (User `opendtu` hatte keine Subscribe-Rechte) → gefixt
- v0.18 Breaking Changes: `clean_copy` entfernt, `license_plate.mask` Format geändert (list→dict)
## Old Container
- CT120 (frigate): gestoppt, wartet auf Deletion
## Related
- [[systems/homeassistant]] — MQTT, Automations, Notifications
- [[systems/noris-ai]] — LLM Vision für Event-Klassifizierung
- [[entities/infrastructure]] — CT151 auf proxmox6
+70
View File
@@ -0,0 +1,70 @@
---
title: "Home Assistant"
category: systems
tags: [homeassistant, smart-home, mqtt, automation]
created: "2026-09-27"
modified: "2026-09-27"
---
# Home Assistant
> Smart Home Zentrale auf Proxmox. Steuerung, Automatisierung und Benachrichtigungen.
## Infrastruktur
- **Host:** `10.0.30.10` (HAOS VM)
- **SSH:** `hassio@10.0.30.10` (PW: 1P Vault "Hermes")
- **URL:** `https://homeassistant.familie-schoen.com`
- **Container:** `homeassistant` (Docker)
## MQTT
- **Broker:** Mosquitto Add-on v7.1.1 auf localhost:1883
- **HA MQTT User:** ehemals `opendtu` (BROKEN — ACL blockiert), gefixt
- **ACL:** `/etc/mosquitto/acl` definiert `user homeassistant` + `user addons`
- **Auth Plugin:** `go-auth.so` (files,http backends)
## Automations
- **File:** `/config/automations.yaml` (35 Automations)
- **Schreibmethode:** SSH → `docker exec homeassistant chmod 666`, danach restore 644
- **Reload:** REST API mit JWT (HS256, signed from `/config/.storage/auth`)
### Frigate Einfahrt Notification (ID 1714065780832)
- MQTT trigger `frigate/events` → filter `type=='new'` + cameras [Einfahrt,Terrasse] + labels [person,car,...]
- Mode: `single`, cooldown 600s
- Dedup: `input_text.frigate_last_event_id`
- Flow: delay 10s → snapshot → notify iPhone → optional LLM Vision
- Siehe [[systems/frigate]]
## Notify Services
| Service | Status |
|---------|--------|
| `notify.mobile_app_iphone_dominik` | ✅ aktiv |
| `notify.mobile_app_sarahs_iphone_app` | verfügbar |
| `notify.mobile_app_ipad_2` | verfügbar |
| `notify.mobile_app_sm_x205` | verfügbar |
## Entitäten
- Kameras: `camera.einfahrt_2`, `camera.terrasse_2` (Suffix `_2` wegen verwaister Integration)
- Motion: `binary_sensor.einfahrt_motion_2`, `binary_sensor.terrasse_motion_2`
- Input Text: `input_text.frigate_last_event_id` (dedup storage, max 255 chars)
## Snapshots
- Gespeichert: `/config/www/snapshots/{camera}_latest.jpg`
- URL: `/local/snapshots/` (HTTP 200, keine Auth)
## JWT Auth
1. `jwt_key` aus `/config/.storage/auth` lesen
2. Client `Hermes_202606` (token id `1444b2c6757b4d66a6f8f8e5899b4e6a`)
3. HS256 signieren, Bearer Header
4. `?return_response=true` für Service-Call Responses
## Integrations
- Frigate (MQTT)
- LLM Vision (noris AI `gemma-4-31b-it`)
- Tibber (Strom)
- Marstek Speicher (VENUS-E, IP 10.0.50.113)
- Various sensors (Xiaomi BLE, etc.)
## Related
- [[systems/frigate]] — NVR Integration
- [[systems/noris-ai]] — LLM Vision Provider
- [[reference/ip-map]] — IP Assignments
+85
View File
@@ -0,0 +1,85 @@
# Laya Decision Model
> 421M param ModernBERT-large Classifier (Apache 2.0) auf CT152, CPU-only.
> Nutze in normalen Sessions fuer schnelle Klassifizierung, Binaerentscheidungen und Pre-Filter.
## Zugang
- **Endpoint:** `POST http://10.0.30.152:8000/predict`
- **Payload:** `{"state": "<text>", "questions": {...}}`
- **Health:** `GET http://10.0.30.152:8000/health`
- **Presets:** `GET http://10.0.30.152:8000/presets/{router|guard|moderation|triage}`
## Entscheidungstypen (Primitives)
| Typ |用途 | Return Fields |
|-----|------|---------------|
| `choice` | Klassifizierung in N Labels | `choice`, `answer_confidence`, `probabilities` |
| `noul` | Ja/Nein mit Wahrscheinlichkeit | `noul` (0..1), `answer_confidence` |
| `score` | Ordinale Bewertung | `score`, `answer_confidence` |
## Verwendung in Sessions
**Praeferieren fuer:**
- Pre-Filter vor teuren LLM-Calls (z.B. "ist diese Email eine Rechnung?" → nur bei "ja" LLM aufrufen)
- Binaerentscheidungen: alert/skip, escalate/ignore, move/keep
- Multi-Kategorie-Klassifizierung mit Confidence
- Gatekeeping: Notification-Suppression, Alert-Filtering
**NICHT geeignet fuer:**
- Textgenerierung / Zusammenfassungen (dafür LLM verwenden)
- Komplexe Reasoning-Tasks
- Embeddings / Semantische Suche (dafür Harrier/Hindsight)
## Example Call
```python
import json, urllib.request
payload = json.dumps({
"state": "Von: amazon.de\nBetreff: Bestellbestätigung #12345",
"questions": {
"kategorie": {
"type": "choice",
"instructions": "Welche Kategorie?",
"criteria": {
"rechnung": "Rechnung, Invoice",
"bestellung": "Bestellbestätigung, Order",
"werbung": "Newsletter, Marketing"
}
},
"ignorieren": {
"type": "noul",
"instructions": "Soll ignoriert werden?"
}
}
}).encode()
req = urllib.request.Request(
"http://10.0.30.152:8000/predict",
data=payload,
headers={"Content-Type": "application/json"}
)
result = json.loads(urllib.request.urlopen(req, timeout=30).read())
# result["answers"]["kategorie"]["choice"] → "bestellung"
# result["answers"]["kategorie"]["answer_confidence"] → 0.99
```
## Performance
- Latenz: ~1.5-1.7s warm cache (CPU)
- Load time: ~18s (cold start)
- systemd service: `laya.service` (enabled, onboot)
## Einsatzgebiete (aktiv)
- **Rechnungen-Organizer** (Cron `f773f8c23230`): 12-Kategorie Email-Klassifizierung, 3-Schichten-Safety
- Weitere Kandidaten: Beleg-Sammler, SRE Network Recon, Backup Digest, Frigate Event Gate
## Constraints
- 421M Modell → niedrige Confidence bei ambiguous Inputs (Feature, nicht Bug!)
- Batch funktioniert nicht — ein Request pro Input-Instanz
- `noul` ist nicht zuverlaessig fuer kritische Entscheidungen allein — immer mit `choice` kombinieren
- Confidence-Threshold empfohlen (≥0.6 fuer Moves, ≥0.5 fuer Ignores)
## Related
- [[concepts/email-organization]] — Rechnungs-Organizer Architecture
- [[entities/infrastructure]] — CT152 auf proxmox6
- Solution Doc: `docs/solutions/architecture/2026-09-27-laya-email-organizer-migration.md`
+41
View File
@@ -0,0 +1,41 @@
---
title: "noris AI Platform"
category: systems
tags: [ai, llm, noris, gpu, embeddings]
created: "2026-09-27"
modified: "2026-09-27"
---
# noris AI Platform (ai.noris.de)
> Interne AI-Plattform der noris Network AG. Bereitstellung von LLMs, Embeddings und Image Generation.
## Endpoints
- **Chat:** `https://ai.noris.de/v1/chat/completions`
- **Embeddings:** `https://ai.noris.de/v1/embeddings`
- **Images:** `https://ai.noris.de/v1/images/generations` (b64_json)
## Modelle
| Typ | Modell-ID | Hinweise |
|-----|-----------|----------|
| Flagship LLM | `glm-5-2` | Primary, OpenRouter-kompatibel |
| General | `gemma-4-31b-it` | Vision-fähig, genutzt von LLM Vision |
| Large MoE | `gpt-oss-120b` | |
| Mid-range | `qwen3.6-27b` | |
| Mid-range | `qwen3.8-27b` | |
| Fast | `ds-v4-flash` | Low-latency, Paperless OCR |
| Embedding | `harrier` | Vektorembeddings |
| Image Gen | `qwen-image` | via `/v1/images/gen` |
| Image Gen | `qsu` | |
| Image Gen | `qwen-image-2-1` | |
## Verbraucher
- **Hermes Agent** — Primärmodell `glm-5-2` via OpenRouter
- **HA LLM Vision** — `gemma-4-31b-it` für Bildanalyse (Frigate Events)
- **Paperless** — `ds-v4-flash` für OCR/Kategorisierung
- **Personal Coach Bot** — `glm-5-2` via noris direkt
## Related
- [[systems/frigate]] — nutzt noris AI für Event-Klassifizierung
- [[systems/homeassistant]] — LLM Vision Integration
- [[systems/paperless]] — OCR via ds-v4-flash
+34
View File
@@ -0,0 +1,34 @@
---
title: "Paperless-ngx"
category: systems
tags: [paperless, documents, oidc, ocr]
created: "2026-09-27"
modified: "2026-09-27"
---
# Paperless-ngx
> Dokumentenmanagement mit OCR, OIDC-Login und AI-Kategorisierung.
## Zugriff
- **URL:** `https://dokumente.familie-schoen.com`
- **mTLS:** `https://dokumente-mtls.familie-schoen.com` (auto-login als `dominik`)
- **PKCS12:** `dominik-dokumente-mtls.p12` (PW: siehe 1P Vault "Hermes")
## Auth
- OIDC via Authelia (`dominik@schoen.eu`)
- Break-Glass lokaler User: `dominik`
- mTLS Client Cert: CN=dominik, gültig bis Juli 2028
## Konfiguration
- **AI Backend:** `ds-v4-flash@ai.noris.de` (noris AI)
- **Memory:** 4Gi (PAT-002)
- **Mail Import:** `dokumente@familie-schoen.com` (iCloud mailbox, max 30 Tage)
- **Owner:** dominik
## Known Issue
- PAT-002: Memory-Limit 4Gi erforderlich, sonst OOM bei großen OCR-Batches
## Related
- [[concepts/credential-policy]] — 1Password, mTLS Zertifikate
- [[systems/noris-ai]] — ds-v4-flash für OCR