Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Eventlog

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

    - √ - Eventlog

    Hallo, habt Ihr eine Idee , wie man ein Eventlog realisieren kann.
    Ich möchte Statuswechsel in ein Logfile eintragen und in einem Fenster ausgeben - also ähnlich wie ein Plot, nur in Textform .
    5 verschiedene Objekte in einem Log würden mir reichen - mit einstellbarer Historiendauer

    Z.B so

    20:15 Haustür auf
    20:16 Haustür zu
    22:00 Lüftung Nachtschaltung


    Gibt es dazu evt. schon ein Widget ?


    Gruss Stephan

    #2
    Hi

    ich würde das als Logik in sh.py machen und dann als Liste in SV anzeigen.

    Grüße Ronny

    Kommentar


      #3
      Als Basis könnte man widget status.log verwenden (neu in v2.7)

      Gruss
      Join smartVISU on facebook. Web: smartvisu.de.
      Dir gefällt smartVISU? Bitte spenden für die Weiterentwicklung.

      Kommentar


        #4
        @ apollo

        das sieht schon mal so aus, wie ich mir das vorstelle. War noch in der Doku der 2.6 unterwegs.

        Kannst Du mir noch einen Tipp geben, wie ich ein solches log anlege, d.h wie bekomme ich einen Eintrag bei einer Wertänderung der Adresse z.B. 1/3/0
        definiert als kontakte.haustuer hin?

        Code:
        [kontakte]  
                [[haustuer]]
                  type = bool
                  knx_dpt = 1
                  #sqlite = yes
                  history = true
                  knx_listen = 1/3/0
                  knx_init = 1/3/0
                  knx_send = 1/3/0
        
        und in der html:
        
        
         {{ status.log('log1', 'kontakte.haustuer', 10) }}
        Leider ohne Erfolg. Hab ich einen Gedankenfehler, wenn ich zumindest einen Eintrag als Zeitstempel und Wert durch das o.g widget erwarte?

        Kommentar


          #5
          Zitat von stromie Beitrag anzeigen
          Hi

          ich würde das als Logik in sh.py machen und dann als Liste in SV anzeigen.

          Grüße Ronny
          Hab ich jetzt ähnlich realisiert. Die Logik versendet jetzt eventgetriggert mit dem Mail-Plugin Mails auf extra eingerichtetes Postfach.


          Trotzdem würde mich doch interessieren wie man einen mit dem neuen Widget anlegt - oder braucht es die neue sh.py (1.0) dazu?

          Gruss Stephan

          Kommentar


            #6
            Hallo Stephan,

            Du kannst das neue Widget nicht direkt ansprechen.
            Wir haben dafür die Schnittstelle geändert, damit das Backend das Log an die Visu schicken kann. Der Benutzer kann diese Schnittstelle aber nur indirekt über logger.warning/error nutzen.
            Für Deinen Anwendungsfall wäre der vorgeschlagene Weg über eine Liste am besten.

            Bis bald

            Marcus

            Kommentar


              #7
              Danke Dir Marcus

              Kommentar


                #8
                Hmm... habe das gerade ausprobiert. Wie kann ich denn "mein" Log anlegen?

                Ich habe eine Logik mit : Logger.info("HELLO")

                Und nun trigger ich diese. aber wo lese ich das? was ist das item im Widget?

                Gruß Marian

                Kommentar


                  #9
                  Hallo zusammen,
                  ich greife das Thema nochmals auf da ich auf der Suche nach einem solchen Log bin. Wer von euch hat das umgesetzt in der Form eine Liste. Wie kann ich das realisieren?
                  Für Beispiele wäre ich dankbar.

                  Viele Grüße
                  Dieter
                  Viele Grüße
                  Dieter

                  Kommentar


                    #10
                    Hallo Dieter,

                    habe auch einmal mit diesem Gedanken gespielt. Habe dafür diesen Code verwendet:

                    /etc/logic.conf
                    Code:
                    [log]
                        filename = log2file.py
                        watch_item = Heizung.OG_Schlafen.temperatur
                    /logics/log2file.py
                    Code:
                    import sys
                    #!/usr/bin/env python
                    # import time module
                    import time
                    
                    dateiname = time.strftime("%Y-%m-%d") + ".my-log"
                    element = sh.Heizung.OG_Schlafen.temperatur.id()
                    numvar = sh.Heizung.OG_Schlafen.temperatur()
                    wert = "{:.2f}".format(numvar)
                    
                    if sh.Heizung.OG_Schlafen.temperatur.last != wert:
                         text = time.strftime("%Y-%m-%d  %H:%M:%S") + "\t" + element + "\t" + wert + "\n"
                         pfad = "/usr/smarthome/var/log/"   ## "D:/" # anpassen!!
                         datei = pfad+dateiname
                         try:
                              logger.info(text)
                              # Datei öffnen
                              out_file = open(datei,"a")
                         except IOError:
                              # EA-Fehler
                              Logging.warning ('[log2file.py] -> Konnte Datei ' + datei + 'nicht öffnen!')
                         else:
                              # text in Datei schreiben
                              out_file.write(text)
                              # Datei schliessen
                              out_file.close()
                    
                    sh.Heizung.OG_Schlafen.temperatur.last = wert
                    /items/*.conf

                    Code:
                    [Heizung]
                        [[OG_Schlafen]]
                            [[[temperatur]]]
                                type = num
                                visu_acl = rw
                                sqlite = yes
                                knx_dpt = 9
                                knx_listen = 0/0/1
                                knx_init = 0/0/1
                                enforce_updates = yes
                                [[[[last]]]]
                                    type = num
                    Ergebnis (Beispiel):
                    Code:
                    ...
                    2015-06-28  01:07:46    Heizung.OG_Schlafen.temperatur    21.94
                    2015-06-28  01:12:14    Heizung.OG_Schlafen.temperatur    21.92
                    2015-06-28  01:16:43    Heizung.OG_Schlafen.temperatur    21.90
                    ...
                    Habe hier aus Zeitgründen aufgehört mich hiermit zu beschäftigen.
                    Hoffe es hilft.

                    Gruß
                    Heiko

                    Kommentar


                      #11
                      Hallo Heiko,
                      danke für den Input; schaut als Ansatz ganz gut aus; baue ich mal ein.

                      Viele Grüße
                      Dieter
                      Viele Grüße
                      Dieter

                      Kommentar

                      Lädt...
                      X