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
Cursor
981118f940
feat(bot): Qwen3 30B-A3B lokal (Ollama/RTX3090), web_search bevorzugt, Date-Injection, Thinking-Mode Fix
2026-03-20 23:40:58 +01:00
Auto-Sync
d761ec083c
Auto-Sync: 2026-03-20 23:00
2026-03-20 23:00:11 +01:00
Homelab Cursor
d189f8adac
feat: sichtbarer Fortschritt + echter Abbruch fuer lange Suchen
...
- Alle 30s Statusmeldung waehrend laufender Suche
- Textbefehl "abbruch"/"stop" cancelt den laufenden Such-Task
- Aufraeumen via Task-Registry pro Chat
- Sauberes Cancel-Handling ohne Tracebacks
2026-03-20 22:35:49 +01:00
Homelab Cursor
e0afaff058
feat: harte Qualitaetspruefung fuer Preisrecherche
...
Bei Preisfragen validiert deep_research jetzt die Antwort auf:
- konkrete Preise mit Waehrung
- Delta in Prozent
- Preisvergleich damals/heute
- mindestens 3 konkrete Quellen-Links
Wenn die Qualitaet zu schwach ist:
1) automatischer Retry mit strikter Anfrage
2) falls weiter unzureichend: klare Fehlermeldung "keine belastbaren Preisdaten gefunden"
2026-03-20 22:17:50 +01:00
Homelab Cursor
6e4d43f01d
feat: Preisanfragen mit Zahlen-Format erzwingen
...
Der Bot reagiert bei Preisfragen jetzt strenger:
- nutzt verpflichtend web_search/deep_research statt Allgemeintext
- liefert Zeitraum, Preisvergleich, Delta und Quellen
- kennzeichnet fehlende belastbare Preisdaten explizit
2026-03-20 22:12:32 +01:00
Homelab Cursor
3847d6246b
fix: blockierende LLM-Aufrufe in Hintergrund-Thread auslagern
...
Der Telegram Event-Loop wurde bei langen deep_research Calls blockiert,
weshalb der systemd Watchdog den Bot nach ~2 Minuten killte.
LLM-Aufrufe laufen jetzt via asyncio.to_thread, damit Watchdog und
Polling-Loop weiterlaufen waehrend langer Recherche.
2026-03-20 22:05:16 +01:00
Homelab Cursor
6ef208c289
feat: web_search Tool via SearXNG ergaenzen
...
Issue #35 vervollstaendigt mit schneller Web-Suche (3-10s):
- neues Tool web_search in tools/web_search.py
- SearXNG Endpoint CT121 (intern + Tailscale Fallback)
- strukturierte Treffer mit Snippets + Quellenlinks
- Prompt-Hinweis fuer Routing: web_search vs deep_research
2026-03-20 21:59:33 +01:00
Homelab Cursor
f54833c150
feat: sichtbare Rueckmeldung bei Deep-Research Start
...
Der Bot sendet jetzt sofort eine zusaetzliche Meldung, wenn eine
Nachricht nach einer Deep-Recherche aussieht, damit der Nutzer weiss,
dass der laengere Recherchelauf gestartet wurde.
2026-03-20 21:50:35 +01:00
Homelab Cursor
7a3327eb90
fix: deep_research Tool — Logging + allow_clarification=False
...
- Ausfuehrliches Logging fuer Debugging
- allow_clarification deaktiviert (verhindert Rueckfrage-Deadlock)
- Ergebnis-Schwelle auf 100 Zeichen gesenkt
2026-03-20 21:47:33 +01:00
Homelab Cursor
63fea58471
docs: CT 121 deep-research in homelab.conf und Doku
...
- homelab.conf: CT_121_HZ Eintrag
- CT 999 index.md: CT 121 in Tabelle
- CT 999 container/ct-121-deep-research.md: Neue Doku
2026-03-20 21:32:37 +01:00