Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Plugin OperationLog

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

    #46
    Guten Abend,
    der Code oben funktioniert doch... keine Ahnung was da heute morgen mit dem browser los war.
    Somit hat sich das Thema geklärt.

    Kommentar


      #47
      Hallo nochmal,

      Einen Punkt verstehe ich nicht. In meinem Log steht immer nur die ITEM Adresse mit Wert, egal welchen Olog_txt ich defniere. Hat jemand eine Idee?

      Gruß

      [[[Deckenleuchte]]]

      [[[[Ein]]]]
      type = bool
      visu_acl = rw
      knx_dpt = 1
      knx_cache = 1/4/130
      knx_send = 1/1/130
      enforce_updates = true
      olog = Meldeliste
      olog_rules = False:Aus | True:Ein | *:value
      olog_txt = Lampe Buero {value}
      olog_level = ERROR


      2016-10-05 21:27:33.113709 Info: AA.IPCAM.Kellertuer.Bewegung = False
      2016-10-05 21:29:30.221112 Info: AA.IPCAM.Haustuer.Bewegung = False
      2016-10-05 21:34:00.579560 Info: AA.IPCAM.Haustuer.Bewegung = True
      2016-10-05 21:35:34.747477 Info: AA.IPCAM.Kellertuer.Bewegung = True
      2016-10-05 21:37:11.066292 Info: AA.IPCAM.Haustuer.Bewegung = False
      2016-10-05 21:39:22.048355 Info: AA.IPCAM.Kellertuer.Bewegung = False
      2016-10-05 21:39:45.110950 ERROR: EG.Buero.Deckenleuchte.Ein = False
      2016-10-05 21:52:15.639416 ERROR: EG.Buero.Deckenleuchte.Ein = True


      [Meldeliste]
      class_name = OperationLog
      class_path = plugins.operationlog
      name = Meldeliste
      maxlen = 50
      cache = yes
      logtofile = yes
      filepattern = {name}-{year:04}.log

      Kommentar


        #48
        So, auch das Thema hat sich gelöst. die Version aus dem 1.2 Branch scheint nicht aktuell zu sein. Mit dieser tritt oben beschriebenes Verhalten auf. Mit der Version die bei JanT's Git abliegt funktioniert die Ausgabe mit Text.

        Kommentar


          #49
          In der Develop-Version ist die aktualisierte Version des Plugins auch dabei.

          Kommentar


            #50
            Guten Morgen, ich habe jetzt vesucht den OperationLog zu installieren.
            Irgendwie scheint mir aber noch ein Teil zu fehlen, wo finde ich denn "autoblindlogger" und wie beindet man das ein?

            Code:
            2016-11-28 09:28:17 ERROR    Main         Plugin eventlog exception: No module named 'plugins.operationlog.AutoBlindLoggerOLog'
            Traceback (most recent call last):
              File "/usr/local/smarthome/lib/plugin.py", line 53, in __init__
                plugin_thread = Plugin(smarthome, plugin, classname, classpath, args)
              File "/usr/local/smarthome/lib/plugin.py", line 79, in __init__
                exec("import {0}".format(classpath))
              File "<string>", line 1, in <module>
              File "/usr/local/smarthome/plugins/operationlog/__init__.py", line 28, in <module>
                from .AutoBlindLoggerOLog import AbLogger
            ImportError: No module named 'plugins.operationlog.AutoBlindLoggerOLog'
            never fummel a running system...

            Kommentar


              #51
              Liegt denn die Datei "AutoBlindLoggerOLog.py" ebenfalls im operationlog plugin-Verzeichnis?

              Kommentar


                #52
                natürlich lag sie da nicht ;-( Danke, hilft einem Anfänger sehr!
                jetzt bekomme ich keinen Fehler mehr, aber im LOG steht auch nichts.

                Plugin:
                Code:
                [eventlog]
                    class_name = OperationLog
                    class_path = plugins.operationlog
                    name=eventlog
                    maxlen=50
                    cache=yes
                    logtofile=yesf
                    filepattern={year:04}-{month:02}-{day:02}-{name}.log
                Code:
                   
                [tueren]
                [[buero]]
                        type=bool
                        knx_dpt=1
                        knx_send=1/2/3
                        knx_listen=1/2/3
                        knx_init=1/2/3
                        knx_cache=1/2/3        
                        visu_acl=rw
                        [[[log]]]
                            type = bool
                            olog = eventlog
                            olog_txt= Eingang Buero
                            olog_level = info



                wenn ich nun die türe schalte (über telnet) up tueren.buero=1 und dann up tueren.buero=0 müsste ich doch im Verzeichnist /var/log/operationlog eine datei finden in der der ITEM dokumentiert ist. habe ich aber nicht.....

                never fummel a running system...

                Kommentar


                  #53
                  Hmm, ich würde da Zug um zug rangehen.

                  Als erstes mal bitte den Typo "logtofile=yesf" entfernen.
                  Dann mal am besten einen festen Lognamen vergeben und das File dann unter var/log/operationlog/... in Deinem SH.PY Verzeichnis ablegen. Verzeichnis vorher anlegen, Rechte prüfen ob gleich mit den anderen Logverzeichnissen.
                  Ich verwende selbst die Funktion der Items nicht, sondern logge per Logik-Skript mit einem Aufruf bspw. "sh.eventlog('WARNING', 'Unbekannte Aktivität')".

                  Kommentar


                    #54
                    ich habe den schreibfehler entfernt (peinlich...), die Rechte passen und das Logging dann mal in eine Logik verschoben, wie in Deinem Beispiel.
                    jetzt ist die Logdatei wieder da.
                    Wenn ich mir die jetzt per Mail schicken will, lese ich die dann aus mit sh.operationlog() ?
                    Vielen Dank!
                    Peter
                    never fummel a running system...

                    Kommentar


                      #55
                      Gut, es geht voran.

                      Hmm, 1000 Wege führen nach Rom... Habe es selbst nicht ausprobiert, aber lt. Readme solltest Du via "data = sh.mylogname1()" die Info bekommen und dann data als Body für die Email bekommen. Alternativ das Logfile als Attachment an die oder in die Email packen, wobei ich mir nicht sicher bin ob das Attachmentversenden bei allen SH-Versionen geht oder nicht, habe eine Pluginadaption im Hinterkopf....

                      Kommentar


                        #56
                        Hab mir das eben mal angeschaut und einfach ein data in einen Email-Body zu packen passt nicht ganz, denn das Format ist im Statuslogger Format (wie halt für die Visu notwendig). Bedeutet aus meiner Sicht ein Auslesen oder Anhängen des Textfiles...
                        Mir geht aber grad die Zeit aus, muß ich mir mal bei Gelegenheit anschauen...

                        Kommentar


                          #57
                          danke, zumindest loggt es und ich kann die TXT-file ansehen.
                          Gruß Peter
                          never fummel a running system...

                          Kommentar


                            #58
                            vielen Dank nochmals, e släuft. Ein super Plugin.
                            Ich will das jetzt noch in eine eMail packen, allderings sieht die Rückgabe aus der sh.eventlog() etwas schwer lesbar aus.
                            Code:
                            [FONT="Calibri"][datetime.datetime(2016, 11, 28, 14, 14, 41, 230379, tzinfo=tzfile('/usr/share/zoneinfo/Europe/Berlin')), 'oeffnung', 'INFO', 'tueren.eingangwerkstatt -> offen'datetime.datetime(2016, 11, 28, 14, 14, 41, 216426, tzinfo=tzfile('/usr/share/zoneinfo/Europe/Berlin')), 'oeffnung', 'INFO', 'fenster.wc -> offen'datetime.datetime(2016, 11, 28, 14, 8, 48, 240652, tzinfo=tzfile('/usr/share/zoneinfo/Europe/Berlin')), 'oeffnung', 'INFO', 'tueren.eingangwerkstatt -> offen'datetime.datetime(2016, 11, 28, 14, 2, 16, 905295, tzinfo=tzfile('/usr/share/zoneinfo/Europe/Berlin')), 'oeffnung', 'tueren.eingangwerkstatt', 'zu'datetime.datetime(2016, 11, 28, 14, 1, 52, 689407, tzinfo=tzfile('/usr/share/zoneinfo/Europe/Berlin')), 'oeffnung', 'tueren.eingangwerkstatt', 'offen'datetime.datetime(2016, 11, 28, 14, 1, 32, 273892, tzinfo=tzfile('/usr/share/zoneinfo/Europe/Berlin')), 'oeffnung', 'tueren.eingangwerkstatt', 'zu'datetime.datetime(2016, 11, 28, 14, 1, 18, 122122, tzinfo=tzfile('/usr/share/zoneinfo/Europe/Berlin')), 'oeffnung', 'tueren.eingangwerkstatt', 'offen'datetime.datetime(2016, 11, 28, 13, 58, 17, 40720, tzinfo=tzfile('/usr/share/zoneinfo/Europe/Berlin')), 'oeffnung', 'tueren.eingangwerkstatt', 'zu'datetime.datetime(2016, 11, 28, 13, 58, 1, 929713, tzinfo=tzfile('/usr/share/zoneinfo/Europe/Berlin')), 'oeffnun[/FONT]
                            kann ich irgendwie auf einfache Art und weise diese Zeitstempel in echte Zeiten umwandeln?
                            never fummel a running system...

                            Kommentar


                              #59
                              Habe eine Lösung auf die schnelle gebastelt wie man das Logfile simple auslesen kann:
                              Code:
                              with open("/usr/smarthome/var/log/operationlog/ekeyaccess.log","r") as file:
                               Logtext = file.read()
                              Dann steht in Logtext der Text und kann ohne weitere Formatierung per mail versendet werden.

                              Kommentar


                                #60
                                Das "with open" ist cool, thx.

                                Sieht sich vielleicht wer drüber hinaus, das Plugin multiInstanz-fähig zu machen? Wäre super, damit man die Funktionen wie detaillierte Config im Item nutzen kann. Momentan geht das Schreiben in verschiedene Files nur über den direkten Aufruf aus einer Logik..

                                Kommentar

                                Lädt...
                                X