Ankündigung

Einklappen
Keine Ankündigung bisher.

openHab-Log darstellen

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

    openHab-Log darstellen

    Hallo zusammen,

    gibt es eine Möglichkeit das Log von openHab auf der Webseite selbst darzustellen?
    Wenn ich openHab händisch starte, also in der Konsole sehe ich ja was wann passiert etc...
    Und genau das will auf der Webseite darstellen, zb die letzten 30 zeilen, sekündlich aktualisiert.

    Geht so etwas?

    Grüße,
    Kharim

    #2
    Ich habe nun einen Ansatz und damit ein neues Problem:

    Ich habe ein String Item, das per exec jede Minute ein Script ausführt. Dieses Script gibt mittels "tail -n" die letzten X Zeilen aus openhab.log /events.log zurück.
    Im Sitemap wird dies dann als "Texthaufen" dargestellt.

    Problem 1)
    Im Script stehen 10 Zeilen, die nimmt das Script und schreibt es ins Item - diese Aktualisierung wird aber wiederum in voller Länge in die Logdatei geschrieben!!
    Und damit bei der nächsten Aktualisierung zumindest teilweise wiederum ausgelesen -> Ich drehe mich hier sozusagem im Kreis.
    --> Gibt es eine Möglichkeit einzelne Items NICHT im Log erscheinen zu lassen?

    Problem 2)
    Wie kann man String-Items formatieren? Sprich Zeilenumbruch alle x Zeichen etc.

    Vielen Dank,
    Kharim

    Kommentar


      #3
      Hi Kharim,

      hast Du diesen Beitrag schon gesehen? Vielleicht hilft der, hab ich übrigens auch so am Laufen.

      Gruß Michael

      Kommentar


        #4
        Das klingt sehr interessant. Nur habe ich keinen Apache um CGI auszuführen...und will mir eigentlich auch keinen dafür einrichten -_-

        Kann man ein Script/CommandLine direkt im Sitemap ausführen?
        (Ich versuch irgendwie am Item und damit am Log vorbei zu kommen)

        Kommentar


          #5
          müsste es nicht gehen, wenn du dein log file in den webapps folder schreiben lässt? Vorausgesetzt du willst nur auf das log file zugreifen ... wenn du natürlich wirklich das Ganze im openHAB selber einbauen willst fällt mir gerade auch nichts ein.

          Kommentar


            #6
            Hi,

            das würde ich alles in dem Script erschlagen, welches das Tail auf das Logfile macht. Dort also die eigenen Einträge herausfiltern sowie die Zeilenumbrüche als html-Entities einfügen.
            Kind regards,
            Yves

            Kommentar


              #7
              Hallo zusammen,

              @sheppard
              Wie meinst du das? Im Grunde ist es doch egal wo das Logfile liegt...oder versteh ich dich falsch?

              @starwarsfan
              Zitat von starwarsfan Beitrag anzeigen
              Hi,

              Dort also die eigenen Einträge herausfiltern
              Wie meinst du das?
              Egal was ich wie filter...in dem Moment wo ich den Text ans Item übergebe, wird die Aktualisierung des Items (und dessen Inhalt) wieder zurück ins Log geschrieben.
              Somit überfülle ich mein Log und rufe unter Umständen alles doppelt auf.

              Idee: Man könnte mittels Script eine einfache html zusammen setzen. Nur will ich mir nicht extra ein Webserver aufsetzen zur Anzeige.
              -> Kann man irgendwie über das Openhab eine Webseite mit darstellen?

              Grüße,
              Kharim
              Zuletzt geändert von Kharim; 28.08.2015, 11:11.

              Kommentar


                #8
                Hi

                Zitat von Kharim Beitrag anzeigen
                @starwarsfan
                Wie meinst du das?
                Egal was ich wie filter...in dem Moment wo ich den Text ans Item übergebe, wird die Aktualisierung des Items (und dessen Inhalt) wieder zurück ins Log geschrieben.
                Somit überfülle ich mein Log und rufe unter Umständen alles doppelt auf.
                Eben. Und genau diese Einträge würde ich herausfiltern und gar nicht ans Item übergeben. Dass die Sachen dann mehrfach im Log stehen, ist nicht zu vermeiden.

                Also beim Tail bspw. alle Einträge wegfiltern, welche den Text "LOGVWR" enthalten und alle anderen Einträge mit dem Präfix "LOGVWR" versehen und ans Item übergeben. Damit filterst Du sie beim nächsten Lauf Deines Scriptes wieder raus und lieferst sie nicht nochmal ans Item.

                Drawback dabei: Der gewählte Präfix wird auch mit ausgegeben, sollte also so kurz wie möglich aber dennoch eindeutig sein.
                Kind regards,
                Yves

                Kommentar


                  #9
                  Sooo....ich glaub ich habe es endlich gefunden:

                  Man kann html Seiten, die unter openhab/webapps/"Unterordner"/*.html liegen, per http://openhab: port/"Unterordner"/*.html aufrufen.

                  Das ist genau das was ich gesucht habe.
                  Nun kann im Sitemap ein Webview auf die eigene Seite einrichten und per Script die html + Loginhalt zusammen schreiben....

                  Damit bekomme ich die Logzeilen angezeigt ohne ein item zu verwenden und somit ohne Rückschreiben.

                  Kommentar


                    #10
                    ich hab dank eurer Hinweise auch ne schöne Lösung gefunden, ganz ohne doppelte Einträge im log.

                    auch ich habe unter openhab/webapps einen Unterordner angelegt. Dann hab ich mir ein kleines Script gebastelt, das die letzten 200 Einträge von einigen Logs in den webapps-Unterordner kopiert und diese Textfiles/Logfiles kann man per Webview einfach aufrufen.

                    Hier das Script: openhabLogs.sh
                    Code:
                    #!/bin/bash
                    tac /opt/openhab/logs/events.log | head -n 200 > /opt/openhab/webapps/weblogs/events.log
                    tac /opt/openhab/logs/openhab.log | head -n 200 > /opt/openhab/webapps/weblogs/openhab.log
                    tac /opt/openhab/logs/zwave.log | head -n 200 > /opt/openhab/webapps/weblogs/zwave.log
                    date +"%d.%m.%Y %T"
                    zur Erklärung. der "tac" dreht das Log um, das die neuesten Einträge oben stehen und "head" zeigt mir dann die obersten 200 Einträge an.
                    Das "date" füllt mir dann die Variable, damit ich den letzten Aktualisierungsstempel sehe.

                    Das item dazu:
                    Code:
                    String st_copyLogs  {exec="<[/opt/openhab/configurations/scripts/openhabLogs.sh:60000:REGEX((.*?))]"}
                    und die Sitemap:
                    Code:
                    Frame label="Logfiles" {
                                    Text item=st_copyLogs label="openhab.log [%s]" icon="settings" {
                                        Webview url="http://192.168.x.x:8080/weblogs/openhab.log" height=20
                                    } 
                                    Text item=st_copyLogs label="zwave.log [%s]" icon="settings" {
                                        Webview url="http://192.168.x.x:8080/weblogs/zwave.log" height=20
                                    } 
                                    Text item=st_copyLogs label="events.log [%s]" icon="settings" {
                                        Webview url="http://192.168.x.x:8080/weblogs/events.log" height=20
                                    } 
                                }
                    Sieht dann am Ende so aus:
                    IMG_0471.PNG
                    IMG_0472.PNG
                    Angehängte Dateien

                    Kommentar


                      #11
                      sieht cool aus. wie funktioniert das ganze im openhab2 ? vor allem der Zugriff auf die Logs:
                      http://192.168.x.x:8080/weblogs/events.log das klappt bei mir leider nicht.. ich hätte im standard /etc/openhab2 einen ordner weblogs erstellt, wo ich dann die events.log per Script rein bekomme.
                      bitte um Hilfe.
                      danke,
                      Klaus

                      Kommentar


                        #12
                        Das Posting ist von 2015...

                        Wie hast Du openHAB aufgesetzt? Welche Plattform nutzt Du?

                        Der Raspberry ist der Quasi-Standard als Hardware, dann wäre openHABian das Mittel der Wahl, um openHAB komfortabel aufzusetzen - mitsamt Betriebssystem und massig Zusatzsoftware.
                        Sollte es sich um eine VM oder eine andere Hardware handeln, welche unter GNU/Linux läuft, so wäre Debian (aktuell buster) der de facto Standard. openHABian gibt es auch "ohne Betriebssystem" als reine Script-Sammlung, die bequem auf Debian einzurichten ist.

                        warum reite ich auf openHABian herum? Weil eines der Tools, welche openHABian mitbringt, auf den Namen frontail hört. Dieses bietet default unter dem Port 9001 eine Webansicht aller relevanten openhab-Logdateien...

                        Kommentar


                          #13
                          hab alles hinbekommen. bis auf das script ausführen. das klappt nicht in OH2 mit dem Item:
                          HTML-Code:
                          String st_copyLogs {exec="<[/opt/openhab/configurations/scripts/openhabLogs.sh:60000:REGEX((.*?))]"}
                          log zeigt auch nichts. nur wenn ich manuell kopiere klappts. da dürfte die syntax etwas anders sein. auch die location des logs, wenn ich die unter /etc/openhab2/html geb, dann erreich ich sie am server unter: http://serverIPort/static/events.log

                          vielleicht hat jemand einen Tipp für mich ?

                          Kommentar


                            #14
                            Wenn Du nicht gerade ein sehr altes OH2 nutzt, dann musst Du das Item mit exec2 konfigurieren.

                            Bitte mach das nicht, das ist voll 2010... Geh bitte mit der Zeit und nutze frontail.

                            Kommentar


                              #15
                              frontail ist nicht standard in OH2..

                              Kommentar

                              Lädt...
                              X