Ankündigung

Einklappen
Keine Ankündigung bisher.

KNX Monitor als Website (Python/Linux [Windows])

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #61
    OK, es gibt noch eine letzte neue Version (diesmal das Paket ohne Exe, weil ich das hier nicht direkt angehangen bekomme - das erstellen Exe sollte aber gut beschrieben sein.)

    KNX Monitor 1.19 – Änderungen seit 1.17

    Hallo zusammen,

    es gibt eine neue Version von KNX Monitor: 1.19.20260927.85. Neu ist vor allem, dass KI-Programme wie Claude die Aufzeichnung jetzt direkt auswerten können.

    1.19 – Zugriff für KI-Programme (MCP)
    • KNX Monitor hat jetzt einen MCP-Server eingebaut (Model Context Protocol). Er läuft im selben Dienst und auf demselben Port wie die Weboberfläche, unter http://<server-ip>:8099/mcp. Es ist kein zusätzliches Programm und keine Firewall-Freigabe nötig.
    • Die KI kann damit selbst nachsehen: Überblick über Zeitraum und Menge der Daten, alle Gruppenadressen mit Namen, Raum und letztem Wert, Telegramme mit allen Filtern der Oberfläche, den Busverkehr rund um einen Zeitpunkt, alle Auswertungen der Oberfläche (Top-Liste, Buslast, Wochenraster, Leseanfragen ohne Antwort, unnötiger Verkehr, Sendeabstände, Verbrauch …) und Werteverläufe.
    • Dazu kommen freie SQL-Abfragen auf die Datenbank. Sie sind strikt schreibgeschützt: nur SELECT, kein Dateizugriff, Abbruch nach 30 Sekunden, höchstens 5000 Zeilen.
    • Ohne Zeitangabe gilt der gesamte Datenbestand. Die Antworten kommen als kompakte Tabellen mit Namen der Gruppenadressen und Geräte sowie Ortszeit. Wird etwas gekürzt, steht in der Antwort, wie viel fehlt und wie man weiterblättert.
    • Nur lesend: Über MCP wird nichts auf den Bus gesendet und nichts an Katalog oder Einstellungen geändert. Ist in der config.yaml ein web.token gesetzt, gilt er auch hier.
    • Neuer Abschnitt mcp: in der config.yaml, das Update trägt ihn automatisch nach. Mit mcp.enabled: false lässt sich der Zugang ganz abschalten, mit mcp.sql: false nur die SQL-Abfragen.


    1.18 – Uhrzeit und Datum lesbar
    • Telegramme mit Uhrzeit (DPT 10), Datum (DPT 11) sowie Datum und Uhrzeit (DPT 19) erschienen bisher als „KNXTime(hour=11, minutes=30, …)“. Jetzt steht dort „Sa 11:30:07“, „26.09.2026“ bzw. „Sa 26.09.2026 11:30:07“. Das ist lesbarer und spart Platz in der Datenbank.
    • Bereits gespeicherte Telegramme behalten den alten Text.


    KI-Programme anbinden
    In allen Beispielen <server-ip> durch die Adresse des Rechners ersetzen, auf dem KNX Monitor läuft, z. B. 192.168.0.250. Die Zeile mit „Authorization“ nur eintragen, wenn in der config.yaml ein web.token gesetzt ist, und dann <token> durch diesen ersetzen. Alle Beispiele gehen davon aus, dass der PC im selben Netz steht wie KNX Monitor.

    Claude Code (Kommandozeile)
    Code:
    claude mcp add --transport http knx http://<server-ip>:8099/mcp
    Mit Token:
    Code:
    claude mcp add --transport http knx http://<server-ip>:8099/mcp --header "Authorization: Bearer <token>"
    Claude Desktop
    Braucht Node.js. In Claude Desktop unter Einstellungen → Entwickler → Konfiguration bearbeiten die Datei claude_desktop_config.json öffnen und eintragen:
    Code:
    {
      "mcpServers": {
        "knx": {
          "command": "npx",
          "args": ["mcp-remote", "http://<server-ip>:8099/mcp", "--allow-http"]
        }
      }
    }
    Mit Token (die Schreibweise ohne Leerzeichen umgeht einen Fehler unter Windows):
    Code:
    {
      "mcpServers": {
        "knx": {
          "command": "npx",
          "args": ["mcp-remote", "http://<server-ip>:8099/mcp", "--allow-http",
                   "--header", "Authorization:${AUTH_HEADER}"],
          "env": { "AUTH_HEADER": "Bearer <token>" }
        }
      }
    }
    Danach Claude Desktop neu starten.

    Gemini CLI
    In ~/.gemini/settings.json (Windows: %USERPROFILE%\.gemini\settings.json):
    Code:
    {
      "mcpServers": {
        "knx": {
          "httpUrl": "http://<server-ip>:8099/mcp",
          "headers": { "Authorization": "Bearer <token>" },
          "timeout": 60000
        }
      }
    }
    Die Gemini-App im Browser kann keine eigenen MCP-Server einbinden, das geht nur mit der Gemini CLI.

    GitHub Copilot in VS Code
    Befehl „MCP: Open User Configuration“ oder im Projekt die Datei .vscode/mcp.json:
    Code:
    {
      "servers": {
        "knx": {
          "type": "http",
          "url": "http://<server-ip>:8099/mcp",
          "headers": { "Authorization": "Bearer <token>" }
        }
      }
    }
    Wichtig: Im Copilot-Chat auf den Agent-Modus umschalten, im Ask-Modus erscheinen die Werkzeuge nicht.

    LM Studio (lokale Modelle, ab Version 0.3.17)
    Rechts im Chat unter Program → Install → Edit mcp.json, oder direkt die Datei %USERPROFILE%\.lmstudio\mcp.json (macOS/Linux: ~/.lmstudio/mcp.json):
    Code:
    {
      "mcpServers": {
        "knx": {
          "url": "http://<server-ip>:8099/mcp",
          "headers": { "Authorization": "Bearer <token>" }
        }
      }
    }
    Das Modell muss Werkzeuge unterstützen (Tool Use). Lokale Modelle haben oft ein kleines Kontextfenster. Dann in der config.yaml von KNX Monitor mcp.max_chars z. B. auf 15000 senken, damit die Antworten hineinpassen.

    ChatGPT und Microsoft Copilot
    Beide verbinden sich aus der Cloud und brauchen deshalb eine öffentlich erreichbare HTTPS-Adresse. Für ein Gerät im Heimnetz ist das nicht empfohlen, dafür müsste der Monitor ins Internet. Wer es trotzdem will, braucht mindestens einen Reverse Proxy mit TLS und einen gesetzten web.token.

    Beispielfragen
    • „Gib mir einen Überblick über meinen KNX-Bus.“
    • „Welche Gruppenadressen verursachen den meisten Verkehr ohne Wertänderung?“
    • „Was ist am 26.09. zwischen 11:30 und 11:45 auf dem Bus passiert?“
    • „Welche Leseanfragen blieben ohne Antwort – je Gruppenadresse und Frager?“
    • „Vergleiche die Temperatur im Bad mit der Ventilstellung über die letzte Woche.“


    Download und Update
    knx-monitor-1.19.20260927.85.zip
    • Linux: ZIP entpacken und im neuen Ordner ./install.sh ausführen
    • Windows: ZIP entpacken und im neuen Ordner install.ps1 als Administrator ausführen (siehe Anleitung-Windows-Zip-File-Installation.md im ZIP).

    Einstellungen, ETS-Daten und Aufzeichnung bleiben erhalten, der neue Abschnitt mcp: wird in die config.yaml nachgetragen. Danach im Browser einmal Strg+F5 drücken.​
    Angehängte Dateien
    Zuletzt geändert von GLoCKE; Gestern, 15:32.

    Kommentar


      #62
      knx-monitor 1.20 – Fix: Verdichtung zählte doppelt

      Hallo zusammen,

      in Version 1.20 ist ein Fehler in der Verdichtung behoben. Er betrifft die Stufen Minute, 5 Minuten und Viertelstunde.

      Was war falsch?
      Version 1.15 hat beim ersten Start die Verdichtung einmal aus den Einzeltelegrammen nachgerechnet. Dabei blieben in den feinen Stufen die alten Zeilen stehen, und die neuen kamen dazu. Für den Zeitraum vor dem Update auf 1.15 zählen diese Stufen deshalb bis zu doppelt. Bei mir waren es 333.000 doppelte Zeilen für 10 Tage. Die Stundenverdichtung war immer richtig.
      Ursache war ein DELETE, das nichts gelöscht hat: DuckDB nummeriert bei DELETE … USING die Parameter der WHERE-Bedingung vor denen der Unterabfrage, die Werte kamen also in falscher Reihenfolge an.
      Merkt man das?
      Bisher kaum. Solange die Einzeltelegramme noch da sind (retention_days, Vorgabe 90 Tage), lesen die Diagramme diese. Erst danach hätten Buslast, Zeitverlauf, Top-Adressen und Wochenprofil beim Hineinzoomen in diesen Zeitraum zu hohe Werte gezeigt. Wer mit 1.19 über MCP direkt rollup_fine abfragt, bekommt die falschen Zahlen schon jetzt.
      Wer braucht den Fix?
      • 1.4 bis 1.14: nicht betroffen. Die doppelten Zeilen entstehen erst beim ersten Start von 1.15 bis 1.19. Einfach direkt auf 1.20 aktualisieren.
      • 1.17 oder 1.19, vorher schon mit 1.14 oder älter aufgezeichnet: betroffen. Auf 1.20 aktualisieren, das repariert die Daten.
      • 1.17 oder 1.19, frisch installiert: keine doppelten Zeilen. Trotzdem aktualisieren: Der Fehler steckt noch im Code und träfe jedes erneute Verdichten.

      Was macht 1.20?
      Beim ersten Start entfernt 1.20 die doppelten Zeilen einmal. Danach rechnet es alles, wofür es noch Einzeltelegramme gibt, noch einmal nach. Das läuft im Hintergrund, Aufzeichnung und Oberfläche laufen weiter. Bei mir dauerte es wenige Sekunden. Danach stimmen alle Stufen Tag für Tag mit den Einzeltelegrammen überein.

      Update
      Das ZIP wie gewohnt entpacken und install.sh (Linux) bzw. install.ps1 (Windows) erneut ausführen. Konfiguration und Aufzeichnung bleiben erhalten.
      Angehängt: knx-monitor-1.20.20260927.86.zip

      Eine Windows-EXE gibt es diesmal nicht.

      Alle Änderungen stehen in AENDERUNGEN.md.​

      Kommentar

      Lädt...
      X