Lox-Tools, Werkzeugsammlung für Loxone (LoxBerry) und als Webseite - lox-tools.de

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • hismastersvoice
    Supermoderator
    • 25.08.2015
    • 7663

    #1

    Lox-Tools, Werkzeugsammlung für Loxone (LoxBerry) und als Webseite - lox-tools.de


    Lox-Tools

    Hallo zusammen,

    ich möchte euch Lox-Tools vorstellen, eine Sammlung kleiner Web-Werkzeuge rund um Loxone. Es gibt sie in zwei Varianten:
    • Als LoxBerry-Plugin, mit direktem Zugriff auf die in LoxBerry konfigurierten Miniserver.
    • Als eigenständige Webseite für die Werkzeuge, die keine direkte Verbindung zum Miniserver brauchen. Die laufen komplett im Browser.
      Aktuell ist es Befehlserkennung / PicoC-Simulator / 2-Punkt Korrektur
    Alle Werkzeuge arbeiten ohne Cloud. Es werden keine Daten dauerhaft gespeichert, und die reinen Browser-Werkzeuge senden gar nichts nach außen.

    Was ist drin
    Werkzeuge mit Miniserver-Zugriff (Plugin):
    • MS-Info: Version, MAC, PLC-Status, CPU, Speicher, Objektzahlen, plus Strukturfile-Diagnose.
    • Bus und Geraete: Extensions, Tree- und Air-Geraete mit Serie, Version und Online-Status.
    • Statistik-Editor: .dat-Statistiken laden, als Verlauf ansehen, Werte korrigieren und per FTP zurückschreiben (mit Backup).
    • VI/VAQ Tester: UDP-Sender, WebService-Aufruf, UDP- und HTTP-Listener zum Debuggen virtueller Ein- und Ausgänge.
    • UUID-Explorer: LoxAPP3 nach Objekten, Raeumen, Kategorien, Benutzern und Gruppen durchsuchen, UUIDs ablesen.
    • Log-Viewer: Logdateien per FTP ansehen, mit Zeitraumfilter, Suche und UUID-Aufloesung.
    • Config-Doku-Generator: Projektdokumentation aus LoxAPP3 und Hardware erzeugen (Markdown, HTML, Druck).
    • Meldungszentrale: Systemstatus-Meldungen auslesen, als gelesen markieren oder quittieren.
    Werkzeuge ohne Miniserver (auch als Webseite):
    • Befehlserkennung: aus einem Beispieltext (JSON, UDP, HTTP) eine Loxone-Befehlserkennung mit Platzhaltern erzeugen und als virtuellen Eingang exportieren.
      Gewünschten Wert anklicken, und die Befehlserkennung wird erzeugt.
    • Modbus-Helfer: Modbus-TCP-Register lesen, live dekodieren und 1:1 für die Loxone Modbus-Extension aufbereiten (Befehl, Datentyp, Reihenfolge, Korrektur, Scan).
    • Zwei-Punkt-Korrektur: aus zwei Kalibrierpunkten Faktor und Offset bestimmen, also genau die zwei Werte für Loxone, und einen Wert umrechnen.
    • PicoC-Simulator: siehe unten, das neueste Werkzeug.

    Neu: der PicoC-Simulator

    Damit lässt sich der Loxone Programm-Baustein (PicoC) komplett im Browser testen, ohne Miniserver. Man schreibt sein Programm, gibt Eingaenge und Testdaten vor und sieht sofort, was an den Ausgängen, in der def.log und in der Umgebung passiert.
    • 16-IO-Baustein: Texteingänge T1 bis T3, Analogeingänge I1 bis I13, Textausgänge Txt1 bis Txt3, Analogausgänge O1 bis O13, plus Etxt für Interpreter-Fehler.
    • Virtuelle IOs: getio und setio werden automatisch erkannt und angelegt.
    • Mock-Umgebung: Antworten fuer httpget und localwebservice vorgeben, Streams testen (TCP, UDP, RS232 ueber /dev/tty, syslog) und ein virtuelles Dateisystem fuer fopen, fgets, fread.
    • Vorlagen und ein Selbsttest sind eingebaut.
    Es ist ein Interpreter für die dokumentierte PicoC-Teilmenge, also kein vollständiges C und keine echten Netz- oder Hardwarezugriffe. Zum Entwickeln und Ausprobieren der Logik, bevor der Code in Loxone landet, finde ich es sehr praktisch.


    Webseite
    Die Browser-Werkzeuge gibt es auch als eigenständige Webseite. Eine Startseite verlinkt die einzelnen Tools, alles läuft lokal im Browser, ganz ohne Installation.

    Links
    Zuletzt geändert von hismastersvoice; In den letzten 2 Wochen.
    Kein Support per PN!
  • <Andreas>
    LoxBus Spammer
    • 07.03.2023
    • 442

    #2
    Echt nützliche Sachen dabei, da kommt man in Versuchung wieder einem Loxberry aufzusetzen 😅

    Kommentar

    • svethi
      Lebende Foren Legende
      • 25.08.2015
      • 6363

      #3
      hismastersvoice das hört sich alles sehr interessant an. Nicht schlecht. Allerdings hast Du Dich in der derzeitigen Wärme wohl etwas vertippt. Du hast oben, bei der eigenständigen Varianten, stehen, „die keinen Miniserver brauchen“. Ich vermute mal, Du meinst da, die keinen Loxberry brauchen ?!

      Gruß Sven
      Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

      Kommentar


      • Grestorn
        Grestorn kommentierte
        Kommentar bearbeiten
        Nein, er hat mit einem Schlag den MS überflüssig gemacht. Nimm das Loxone

      • hismastersvoice
        hismastersvoice kommentierte
        Kommentar bearbeiten
        Missverständlich formuliert...

        Habe es geändert auf...
        "die keine direkte Verbindung zum  Miniserver brauchen."

        Die meisten Tools nutzen eine direkt Verbindung zum Miniserver.

      • svethi
        svethi kommentierte
        Kommentar bearbeiten
        Ah, so meinst Du das … alles klar ;-)
    • Triushi
      Azubi
      • 09.01.2021
      • 8

      #4
      sieht auf den ersten Blick sehr nützlich aus. Leider bekomme ich keinen FTP Zugang hin, natürlich ist dieser auf dem Miniserver aktiviert. Kann das evtl. an der neuen Miniserver Firmware (17.1.6.30) liegen? Also bei mir kommt bei fast allem ein Fehler, wenn ich was auslesen möchte. Keine Verbindung zu LoxAPP3.. Strukturfile (Diagnose) Fehler in der Datei: HTTP 403. Es werden auch keine Miniserver Informationen angezeigt:
      Zuletzt geändert von Triushi; vor einer Woche.

      Kommentar


      • svethi
        svethi kommentierte
        Kommentar bearbeiten
        403 ist Keine Berechtigung

      • Triushi
        Triushi kommentierte
        Kommentar bearbeiten
        Ja schon klar, aber Berechtigung holt er sich doch vom loxberry. Da kann ich ja sonst nirgends was eintragen?

      • Houseruckiii
        Houseruckiii kommentierte
        Kommentar bearbeiten
        Funktioniert bei mir einwandfrei mit 17.1.6.30
    • hismastersvoice
      Supermoderator
      • 25.08.2015
      • 7663

      #5
      Triushi
      Die Rechte im Loxberry heißen ja erst mal nur das ein Zugang da ist.
      Ob der aber FTP und ggf. Admin Rechte hat ist in der Config einzustellen.


      Klicke auf die Grafik für eine vergrößerte Ansicht

Name: grafik.png
Ansichten: 180
Größe: 45,0 KB
ID: 487328
      Kein Support per PN!

      Kommentar

      • Triushi
        Azubi
        • 09.01.2021
        • 8

        #6
        hismastersvoice


        Die Einstellungen haben ich überprüft - FTP Server ist aktiv und der Benutzer hat auch die Rechte auf FTP zuzugreifen.

        Klicke auf die Grafik für eine vergrößerte Ansicht

Name: grafik.png
Ansichten: 143
Größe: 119,4 KB
ID: 487359 Klicke auf die Grafik für eine vergrößerte Ansicht

Name: grafik.png
Ansichten: 142
Größe: 24,0 KB
ID: 487360
        Hab jetzt alles nochmal neu gestartet und jetzt kommt dieser Fehler bei Strukturfile (Diagnose)

        Kommentar


        • hismastersvoice
          hismastersvoice kommentierte
          Kommentar bearbeiten
          Hat dein User wirklich FTP und Admin rechte?
      • Triushi
        Azubi
        • 09.01.2021
        • 8

        #7
        Klicke auf die Grafik für eine vergrößerte Ansicht  Name: grafik.png Ansichten: 0 Größe: 172,4 KB ID: 487411und gehört auch der Grupper der Administratoren an. Weiß jetzt nicht, was ich sonst noch irgendwo einstellen kann? Ist auch in der Gruppe Vollzugriff...

        FTP Zugriff auf den Miniserver mit dem angelegten Benutzer funktioniert über Filezilla.
        Klicke auf die Grafik für eine vergrößerte Ansicht

Name: grafik.png
Ansichten: 123
Größe: 44,1 KB
ID: 487414
        Zuletzt geändert von Triushi; vor einer Woche.

        Kommentar

        • Benny2050
          Azubi
          • 11.11.2025
          • 1

          #8
          Ich hatte das selbe Problem auf meinem Miniserver Gen 1.
          Ich konnte mit Codex eine Version erstellen, die bei mit Meinem Miniserver Gen 1 funktioniert.

          Hier die Analyse von Codex:
          Ich konnte das FTP-Problem inzwischen dank Codex auf einem LoxBerry mit einem Miniserver Gen 1 genauer untersuchen und direkt mit PHP-FTP-Befehlen reproduzieren.

          Kurzfassung

          FTP ist am Miniserver korrekt aktiviert. Auch Benutzername, Passwort, Rechte und der passive FTP-Modus sind in Ordnung. Mit FileZilla beziehungsweise WinSCP funktioniert derselbe Zugang.

          Das Problem liegt offenbar in einem abweichenden Verhalten des FTP-Servers im Miniserver Gen 1. Der Statistik-Editor und der Log-Viewer verwenden FTP-Befehle, die bei neueren Miniservern möglicherweise funktionieren, vom Gen‑1-FTP-Server aber anders behandelt werden.

          Direkt verifiziert wurden:
          • 896 Dateien im Verzeichnis `/stats`
          • 21 Dateien im Verzeichnis `/log`
          • `SIZE`, `MDTM` und `RETR` funktionieren mit relativen Dateinamen
          • Eine Statistikdatei und eine Logdatei konnten vollständig gelesen werden
          • Für die Untersuchung wurden ausschließlich lesende FTP-Befehle verwendet

          Das besondere Verhalten des Gen‑1-FTP-Servers

          Die übliche Abfrage funktioniert dort nicht:
          PHP-Code:
          ftp_nlist($ftp, '/stats');
          ftp_nlist($ftp, '/log'); 
          

          Auch nach einem Verzeichniswechsel liefern diese Varianten keine Dateien:
          PHP-Code:
          ftp_nlist($ftp, '.');
          ftp_mlsd($ftp, '.');
          ftp_rawlist($ftp, '.'); 
          

          Auf dem getesteten Miniserver funktioniert stattdessen nur folgende Reihenfolge:

          1. Mit `ftp_chdir()` in `/stats` beziehungsweise `/log` wechseln.
          2. `ftp_nlist($ftp, '.')` aufrufen. Dieser Aufruf schlägt beim Gen‑1-Miniserver zunächst fehl.
          3. Direkt danach `ftp_nlist($ftp, '')` ohne Pfadargument aufrufen.

          Der zweite Aufruf liefert dann die vollständige Verzeichnisliste. Allerdings enthält das Array keine reinen Dateinamen, sondern vollständige Unix-LIST-Zeilen, beispielsweise:

          Code:
          -rw-rw-rw- 1 0 0 47680 Jul 01 07:47 09f0211a-0329-0f31-ffff112233445566.202407
          Der Dateiname muss deshalb aus jeder Zeile extrahiert werden, beispielsweise vereinfacht mit:
          PHP-Code:
          $parts = preg_split('/\s+/', trim($line), 9);
          $filename = $parts[8] ?? ''; 
          

          Wichtig für die weiteren Dateioperationen

          Nachdem mit `ftp_chdir()` in das gewünschte Verzeichnis gewechselt wurde, müssen auch `SIZE`, `MDTM`, `RETR` und gegebenenfalls `STOR` mit relativen Dateinamen arbeiten.

          Also beispielsweise:
          PHP-Code:
          ftp_chdir($ftp, '/log');
          
          $size = ftp_size($ftp, $filename);
          $time = ftp_mdtm($ftp, $filename);
          ftp_get($ftp, $localFile, $filename, FTP_BINARY); 
          
          Absolute Pfade wie diese funktionieren beim getesteten Gen‑1-Miniserver nicht zuverlässig:
          PHP-Code:
          ftp_size($ftp, '/log/'.$filename);
          ftp_get($ftp, $localFile, '/stats/'.$filename, FTP_BINARY); 
          

          Zusätzlicher Fehler bei den Statistikdateien

          Die echten Statistikdateien haben auf dem getesteten Miniserver das Format:
          Code:
          UUID.YYYYMM
          Der Punkt vor `YYYYMM` darf nicht Teil der UUID werden. Eine passende Erkennung wäre beispielsweise:
          PHP-Code:
          /^(.+?)\.?([0-9]{4})([0-9]{2})$/ 
          

          Andernfalls kann die aus dem Dateinamen gewonnene UUID nicht der LoxAPP3-Struktur zugeordnet werden.

          Vorschlag für eine kompatible Implementierung

          Für neuere Miniserver kann zunächst das bisherige Standardverfahren verwendet werden. Liefert dieses einen Fehler oder eine leere Liste, sollte automatisch der Gen‑1-Fallback ausgeführt werden:

          - `CWD` in das Zielverzeichnis
          - erfolgloses beziehungsweise leeres `NLST .` erkennen
          - anschließend `NLST` ohne Pfad ausführen
          - vollständige LIST-Zeilen in Dateinamen umwandeln
          - alle weiteren Dateioperationen relativ zum aktuellen Verzeichnis ausführen

          Damit sollte das bestehende Verhalten neuerer Miniserver erhalten bleiben und der Statistik-Editor sowie der Log-Viewer zusätzlich mit dem FTP-Server des Miniserver Gen 1 funktionieren.

          Ob das Verhalten ausschließlich von der Hardwaregeneration oder zusätzlich von der Firmware abhängt, ist noch nicht endgültig bewiesen. Auf dem getesteten Miniserver Gen 1 ließ es sich jedoch eindeutig reproduzieren. Das Problem liegt dort nicht an deaktiviertem FTP oder fehlenden Benutzerrechten.
          Zuletzt geändert von Benny2050; vor einem Tag.

          Kommentar


          • hismastersvoice
            hismastersvoice kommentierte
            Kommentar bearbeiten
            Das Plugin wurde und wird nicht für den Gen 1 entwickelt. Ich besitze so einen MiniServer nicht mehr.
            Triushi hat einen Gen 2 und somit ein anderes Problem als bei dir.
        • Triushi
          Azubi
          • 09.01.2021
          • 8

          #9
          Mein Loxberry ist als virtuelle Maschine auf einer QNAP installiert. Ich nutze den Miniserver Gen 2. scheint also nicht an der Hardwaregeneration zu liegen.

          Kommentar

          • ThatRed
            Smart Home'r
            • 20.11.2015
            • 80

            #10
            Ich habe mal Claude zum dem Problem befragt, da es bei mir auch auftritt.

            Hast du bei deinem Miniserver Zugangsdaten evtl. ein Sonderzeichen drin?

            Fix:

            Mach mal eine Sicherung/Backup von deiner virtuellen Maschine/Raspberry

            Entpacke die zip Datei vom Loxtools Plugin und ändere in der

            Datei: loxtools/webfrontend/htmlauth/api.php,
            Funktion: stats_miniservers(), Zeile ~735–747.

            die zwei Zeilen mit 'user' und 'pass':

            Vorher
            Code:
            $out[(int)$idx] = [
                'idx'  => (int)$idx,
                'name' => (string)($m['Name'] ?? ('Miniserver '.$idx)),
                'ip'   => (string)($m['IPAddress'] ?? ''),
                'port' => (int)($m['Port'] ?? 80),
                'user' => (string)($m['Admin'] ?? ''),
                'pass' => (string)($m['Pass'] ?? ''),
            ];
            Nachher:
            Code:
            $out[(int)$idx] = [
                'idx'  => (int)$idx,
                'name' => (string)($m['Name'] ?? ('Miniserver '.$idx)),
                'ip'   => (string)($m['IPAddress'] ?? ''),
                'port' => (int)($m['Port'] ?? 80),
                // IMPORTANT: LBSystem::get_miniservers() returns 'Admin'/'Pass' URL-encoded
                // (used for building FullURI). HTTP Basic Auth (curl CURLOPT_USERPWD) and
                // FTP login both need the plain-text credentials, i.e. the '_RAW' variants -
                // otherwise any user/pass containing chars that get percent-encoded
                // (space, @, umlauts, ...) breaks the Miniserver login (wrong password ->
                // eventually the Miniserver's brute-force IP lockout, seen as HTTP 403).
                'user' => (string)($m['Admin_RAW'] ?? $m['Admin'] ?? ''),
                'pass' => (string)($m['Pass_RAW'] ?? $m['Pass'] ?? ''),
            ];​
            Zippe den entpackten Ordner mit der frisch bearbeiteten Datei und installiere das Plugin.

            Bei mir werden nach der Änderung, im Menü Miniserver, die Daten korrekt ausgelesen. Vielleicht hilft es ja...

            (Das ganze natürlich ohne Gewähr. Keine Ahnung, ob die Änderung Konsequenzen nach sich zieht.)

            Kommentar


            • Triushi
              Triushi kommentierte
              Kommentar bearbeiten
              Super, jetzt geht schon mal der Statistik Editior :-)
              Im Passwort habe ich tatsächlich Sonderzeichen drinnen.
          • t_heinrich
            Lox Guru
            • 07.01.2016
            • 2186

            #11
            Zitat von hismastersvoice

            Was ist drin
            Werkzeuge mit Miniserver-Zugriff (Plugin):
            • Statistik-Editor: .dat-Statistiken laden, als Verlauf ansehen, Werte korrigieren und per FTP zurückschreiben (mit Backup).


            Das klingt ja richtig gut. Danke für das geniale PlugIn.
            Gerade als Mac-User müsste man nicht immer extra Windows für den LoxStatsEditor anschmeißen.

            Oder übersehe ich was?

            Kommentar

            • hismastersvoice
              Supermoderator
              • 25.08.2015
              • 7663

              #12
              Testet mal diese hier ob dann alles geht!
              Angehängte Dateien
              Kein Support per PN!

              Kommentar

              Lädt...