Homelab Cursor
07b785ece1
docs: GPU-Architektur Doku (STATE.md, RAGFLOW.md)
...
- STATE.md: Hybrid-Architektur, LLM-Routing, VRAM-Belegung
- RAGFLOW.md: Warnung dass qwen2.5:14b Hauptmodell verdraengt
2026-03-25 21:01:47 +01:00
Homelab Cursor
d2a6391f52
feat(llm): Ollama warmup bei Start - Modelle permanent im VRAM
...
- warmup_ollama() laedt qwen3:30b-a3b + nomic-embed-text mit keep_alive=-1
- Wird beim Bot-Start in post_init() aufgerufen (via asyncio.to_thread)
- keep_alive=-1 nur ueber native Ollama API (/api/generate) moeglich
- GPU haelt 22.6/24 GB permanent: Text + Embeddings ohne Swap
2026-03-25 20:59:30 +01:00
Homelab Cursor
a0724ba6f1
refactor(llm): GPU-Architektur - Text lokal, Vision Cloud
...
- MODEL_VISION von qwen3-vl:32b (Ollama) auf openai/gpt-4o-mini (OpenRouter)
- Vision-Modell aus OLLAMA_MODELS entfernt (kein GPU-Swap mehr)
- keep_alive=-1 fuer Ollama: Textmodell bleibt permanent im VRAM
- RTX 3090 wird dedizierter Text+Embedding-Server
- Neue Dienste koennen Ollama mitnutzen ohne Konkurrenz
2026-03-25 20:56:55 +01:00
Homelab Cursor
92898a33e3
fix(llm): kein Fallback auf Textmodell bei Vision-Anfragen
...
Wenn qwen3-vl:32b timeout hat, wurde bisher auf qwen2.5:14b
(Textmodell) zurueckgefallen. Das kann keine Bilder sehen und
halluziniert stattdessen. Jetzt: allow_fallback=False fuer Vision
und klare Fehlermeldung bei Timeout.
2026-03-25 19:46:35 +01:00
Homelab Cursor
203843dc38
fix(monitor): Flugscanner retries 2->3, retry_delay 3->5 fuer DERP-Relay
...
Tailscale-Verbindung zu pve-kunde1-1 laeuft ueber DERP Singapore
Relay und faellt intermittierend aus. Max Wartezeit 40s gibt genug
Puffer fuer Reconnects.
2026-03-25 19:41:20 +01:00
Homelab Cursor
90c5f756b9
fix(telegram_bot): restore full file + asyncio.to_thread patch
...
Datei war auf 68 Bytes gekuerzt (nur 1 Zeile). Wiederhergestellt
mit asyncio.to_thread(monitor.run_check_and_alert) Patch um
Watchdog-Timeout zu verhindern.
2026-03-25 19:13:34 +01:00
45fc61aecb
fix(telegram_bot): run monitor.run_check_and_alert in thread to prevent blocking asyncio event loop and watchdog timeout
2026-03-25 18:04:16 +00:00
14cd7a2a7e
fix(monitor): reduce Flugscanner health check retries/timeout (4x25s -> 2x10s) to prevent watchdog timeout
2026-03-25 18:04:03 +00:00
a3e397a82a
monitor: EXPECTED_STOPPED VMID 115 für pve-ka-1 und pve-ka-3 (Cluster-Doppelmeldung flugscanner-asia-old).
2026-03-25 13:11:23 +00:00
Homelab Cursor
96b6476b1f
monitor: HTTP-Checks mit Retries/Timeout; Flugscanner pp-1 toleranter (instabile Verbindung)
2026-03-25 13:09:35 +01:00
Homelab Cursor
ae27710227
monitor: HTTP-Health-Check Flugscanner-Agent (pve-pp-1 :5010)
2026-03-25 12:50:33 +01:00
Homelab Cursor
f815fd5cd3
Action Guard: Bestätigung für kritische Tools (savetv_record, savetv_download, close_issue, create_issue)
...
- action_guard.py: wrap_handlers, is_confirmation, execute_pending
- telegram_bot: Vor Ausführung Bestätigungsphrase (ja ausführen) erforderlich
- abbruch beendet ausstehende Aktion
2026-03-24 14:11:38 +01:00
Homelab Cursor
dbf2497cd6
Hausmeister Kumpel-Modus: OpenMemory (CT 122) angebunden
...
- openmemory_client.py: REST-API Client für search/add/list
- tools/openmemory.py: openmemory_add, openmemory_search, Kumpel SYSTEM_PROMPT_EXTRA
- llm.py: OpenMemory-Block in Prompt (Text + Bild)
- homelab.conf: OPENMEMORY Optionen dokumentiert
2026-03-24 14:03:19 +01:00
Auto-Sync
d4c32a38bc
Auto-Sync: 2026-03-24 13:45
2026-03-24 13:45:09 +01:00
Homelab Cursor
50320ab46b
fix: exclude Loki meta-logs from error-rate check (portainer feedback loop)
2026-03-24 13:38:50 +01:00
Homelab Cursor
43ee006f15
monitoring: error-rate alerts, silence proxmox filter, periodic loop
...
- loki_client.py: check_error_rate() mit host-spezifischen Schwellen (rss-manager:15, wordpress:10, default:25)
- monitor.py: Error-Rate-Check in check_all(), Silence-Check filtert gestoppte Container via Proxmox-Status
- telegram_bot.py: periodischer _monitor_loop alle 10 Min
- Schliesst #30 und #31
2026-03-24 13:30:58 +01:00
Auto-Sync
076abd5d5e
Auto-Sync: 2026-03-23 21:00
2026-03-23 21:00:10 +01:00
Homelab Cursor
656037405d
mail: Klassifizierung von OpenRouter auf lokales Ollama (qwen2.5:14b) umgestellt
2026-03-23 20:50:01 +01:00
Homelab Cursor
2e61530055
fix: _delete_telecast() in savetv.py implementiert
...
Funktion fehlte komplett - Auto-Delete nach Download hat nie funktioniert.
Nutzt GET /STV/M/obj/cRecordOrder/croDelete.cfm?TelecastID=...
2026-03-21 19:12:37 +01:00
Homelab Cursor
b45b377ffe
fix: Lock an register_extra_routes uebergeben fuer atomare Progress-Writes
...
Verhindert Race Condition zwischen api_download und api_download_progress
beim gleichzeitigen Schreiben in .download_progress.json
2026-03-21 19:02:40 +01:00
Homelab Cursor
32da34b3c2
fix: Race Condition bei gleichzeitigen Downloads in savetv_web.py
...
- Thread-Lock fuer Progress-Datei: verhindert korruptes JSON bei vielen simultanen Downloads
- start_new_session=True in Popen: wget-Prozesse ueberleben Service-Neustarts
- Atomic load+modify+save Pattern via _load_progress_raw/_save_progress_raw
2026-03-21 18:56:11 +01:00
Auto-Sync
38dbefd7c8
Auto-Sync: 2026-03-21 15:30
2026-03-21 15:30:10 +01:00
Homelab Cursor
f630b3d302
fix: Portainer false-positive aus Loki-Fehlerfilter ausschliessen
...
Portainer loggt regelmaessig "flag evaluation succeeded" auf level=info,
diese Zeilen enthielten aber keine echten Fehler und wurden faelschlicherweise
als Fehler gezaehlt (>300/Tag). Jetzt aus dem regex-Filter ausgeschlossen.
2026-03-21 15:25:21 +01:00
Homelab Cursor
5b37b6ef5c
fix: SyntaxError in _send_daily_forecast behoben
2026-03-21 13:46:32 +01:00
Homelab Cursor
47bd67eb97
fix: predict.py ohne interne LLM-Analyse, strukturierter Daten-Report
...
- Tool gibt strukturierten Report zurueck (kein verschachtelter LLM-Aufruf mehr)
- Klare Hervorhebung: KRITISCH (>=100 Fehler), Erhoeht (>=20), Disk-Trend
- Proxmox: korrekte Passwort/Token-Ermittlung, nur echte pve-Hosts im Fehler-Log
- daily_forecast: LLM analysiert den Report bevor er gesendet wird
2026-03-21 13:44:35 +01:00
Homelab Cursor
4202926830
fix: asyncio Fallback-Loop fuer daily_forecast (kein JobQueue)
2026-03-21 13:20:45 +01:00
Homelab Cursor
c4553b46d7
feat: KI-Systemvorhersage (tools/predict.py) + taegl. 08:00 Job
...
- tools/predict.py: sammelt Disk-Trends (Prometheus), Fehler-Logs (Loki),
Container-Status (Proxmox) und laesst lokales LLM eine Prognose erstellen
- telegram_bot.py: daily_forecast Job taegl. 08:00 Uhr, sendet Prognose via Telegram
- llm.py: Forecast-Trigger (vorhersage, prognose, was bahnt sich an etc.) -> lokal
2026-03-21 13:18:20 +01:00
Cursor
5a93736a60
docs: STATE.md + index.md aktualisiert — Ist-Zustand 21.03.2026
...
Routing, Tools, CT 121 Status, Deploy-Workflow dokumentiert.
CT 121 Open Deep Research als gestoppt markiert.
2026-03-21 13:02:48 +01:00
Cursor
ebe6d21c18
feat(llm): Tiefensuche auf Perplexity Sonar Deep Research umgestellt
...
Open Deep Research (CT 121 LangGraph) deaktiviert — lieferte schlechte
Qualitaet. Sonar Deep Research ist schneller, zuverlaessiger, mit Quellen.
2026-03-21 12:58:16 +01:00
Cursor
ca770cfa44
feat(llm): Deep Research Trigger-Synonyme erweitert (tiefensuche, detailrecherche, etc.)
2026-03-21 12:42:25 +01:00
Cursor
204fe8fe36
fix(llm): _LOCAL_OVERRIDES Check fehlte in _route_model — jetzt korrekt eingefuegt
2026-03-21 12:22:16 +01:00
Cursor
eac6492fa0
fix(llm): Local-Override Routing — Homelab-Fragen immer lokal, auch mit Kosten-Keywords
...
_LOCAL_OVERRIDES pruefen vor _WEB_TRIGGERS: api kosten, guthaben, container,
feed, backup, etc. gehen immer ans lokale Modell.
2026-03-21 12:17:32 +01:00
Cursor
785aa36a35
feat(bot): API-Kosten Tool — OpenRouter Guthaben/Verbrauch per Chat abfragen
2026-03-21 12:13:58 +01:00
Cursor
36d708bee1
refactor(llm): Local-First Routing mit Sonar-Websuche
...
- Basis: 981118f9 (lokales Qwen3 30B) wiederhergestellt
- Drei Pfade: lokal (qwen3:30b-a3b), Vision (qwen3-vl:32b), Sonar (perplexity/sonar)
- _route_model() fuer sauberes Routing (Web-Keywords -> Sonar, Rest -> lokal)
- /no_think fuer Ollama, Timeout-Fallback auf qwen2.5:14b
- Passthrough-Tools fuer Grafana-Daten
- deep_research TOOLS wieder aktiviert
- Preis-Spaghetti-Logik entfernt
2026-03-21 12:06:00 +01:00
Homelab Cursor
81f7bbff90
bot: Passthrough fuer vorformatierte Tool-Ergebnisse
...
Temperaturen/Energie/Heizung-Ausgaben werden direkt an den User
weitergeleitet, ohne nochmal durch die LLM zu gehen.
Behebt Umlaut-Verlust und Formatierungs-Aenderungen durch LLM.
2026-03-21 02:13:38 +01:00
Homelab Cursor
91dc5d8261
bot: Text-Modell auf OpenRouter gpt-4o-mini umgestellt
...
- MODEL = openai/gpt-4o-mini (schnell, zuverlaessig, perfektes Deutsch)
- Vision bleibt lokal auf qwen3-vl:32b (Ollama)
- FALLBACK_MODEL = qwen3:30b-a3b (lokaler Fallback fuer Vision-Timeout)
- SYSTEM_PROMPT: Tool-Ergebnisse 1:1 weitergeben Regel ergaenzt
- Behebt Umlaut-Probleme und Timeout-Instabilitaet
2026-03-21 02:09:00 +01:00
Homelab Cursor
4d38c5302c
fix(grafana): Umlaute, °C, saubere Formatierung fuer Temperaturen/Energie/Heizung
...
- SENSOR_MAP Labels mit echten Umlauten (Außen, Küche, Ölkessel)
- Gradzeichen °C statt nur C
- Listenformat mit Bindestrich statt Einrueckung
- Abschnitte Räume & Außen / Heizung & Puffer
- Energie-Tool mit passenden Einheiten (W, kWh, %)
- SYSTEM_PROMPT_EXTRA: LLM soll Tool-Output 1:1 weitergeben
2026-03-21 02:02:29 +01:00
Homelab Cursor
db61aaedae
fix(llm): Text-Routing auf qwen3:30b-a3b, Timeout-Fallback auf qwen2.5:14b
...
Vorher lief normaler Text ueber das grosse Vision-Modell qwen3-vl:32b,
was bei Tool-Calls (z.B. get_temperaturen) regelmaessig in Read-Timeouts
nach 120s resultierte.
Aenderungen:
- Text-Modell: qwen3:30b-a3b (MoE, schneller fuer reinen Text)
- Vision-Modell: bleibt qwen3-vl:32b (nur fuer Fotos/Dokumente)
- Fallback bei Timeout: qwen2.5:14b (einmaliger Retry)
- Ollama-Timeout modellabhaengig (180s Text, 240s Vision, 90s Fallback)
- Alle lokalen Modelle werden korrekt als Ollama erkannt
2026-03-21 02:00:36 +01:00
Auto-Sync
20a8cabec0
Auto-Sync: 2026-03-21 01:45
2026-03-21 01:45:09 +01:00
Cursor
9133ca4e05
perf(bot): Thinking-Modus abschalten (/no_think) — drastisch schnellere Antworten
2026-03-21 00:49:27 +01:00
Cursor
11ecc8fa24
upgrade(bot): qwen3-vl:30b (3B aktiv) -> qwen3-vl:32b (32B dense) — 10x mehr Parameter
2026-03-21 00:42:42 +01:00
Cursor
3f4af61389
fix(bot): Einheiten-Falle loesen — min 5 Ergebnisse bei Preisfragen, Gramm/Unze Warnung in Prompt und Suchergebnissen
2026-03-21 00:29:32 +01:00
Cursor
fdd3083628
fix(bot): Preis-Erkennung bei Bildern: Session-History pruefen, mehr Keywords, Einheiten-Warnung, Fallback-Hinweis
2026-03-21 00:25:42 +01:00
Cursor
2697e7f283
fix(web_search): kurze Keyword-Queries statt Saetze, language=de, bessere Prompt-Anweisungen
2026-03-21 00:21:17 +01:00
Cursor
59de3e3a49
fix(bot): bei Bild+Preisfrage erzwinge web_search statt Bild-Extraktion, max_tokens 4000
2026-03-21 00:16:41 +01:00
Cursor
83d3e2c4d7
fix(bot): bei Preisfragen immer web_search nutzen, auch wenn Bild mitgeschickt wird
2026-03-21 00:13:23 +01:00
Cursor
3d0b3084ad
fix(bot): Reasoning/Thinking NIEMALS an User zeigen
2026-03-21 00:03:56 +01:00
Cursor
b6d5b982bd
feat(bot): Qwen3-VL 30B als einziges Modell (Text+Vision+Tools lokal)
2026-03-20 23:57:15 +01:00
Auto-Sync
9b4e5f0b03
Auto-Sync: 2026-03-20 23:45
2026-03-20 23:45:09 +01:00
Cursor
f6e9e29ae4
fix(web_search): interne SearXNG-URL nicht als Quelle anzeigen
2026-03-20 23:44:48 +01:00