Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Plugin OperationLog

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

    #31
    Danke für das nette, hilfreiche Plugin.
    Wer übrigens mehr Farben im status.log haben möchte, kann dies (einsch. level-Vorgabe) über die visu.css im eigenen Pages machen.
    Ein Beispiel:
    Folgender Eintrag in der visu.css
    Code:
    /** weitere Farben für status.log
    */
    .color.test1, .signal.test1 {
        background: #060fd8;
    }
    .color.test2, .signal.test2 {
        background: #06d1d8;
    }
    hat bei setzen im Plugin von
    Code:
    olog_level = test1
    oder
    Code:
    olog_level = test2
    folgendes zu Folge:
    Unbenannt.png

    Kommentar


      #32
      Hallo Onkelandy,

      Zitat von Onkelandy Beitrag anzeigen
      ...Und wenn ich's in der Config in Anführungszeichen setze, wird's ignoriert - kommt keine Meldung im Log. Any ideas?
      Das Problem hast Du in dein Post reineditiert, kann das sein... tut mir jedenfalls leid, dass ich es erst heute gesehen habe. Die Fehlermeldung kommt nicht Aufgrund Dein definierten olog_rules, sondern weil ekey_string als ein 1. Ebene Item definiert ist. Sein "parent" item ist sh und für sh ist leider kein id definiert. Vielen Dank für den Fehlerbericht, das wusste ich nicht und es muss explicit abgefangen werden. Wenn ich das Plugin wieder anfasse korrigiere ich das. Bis dahin bitte Logs nur für items ab Ebene 2 definieren.

      Die Item-Attribute werden von SmartHome geparsed und funktionieren wie sonnst auch. In deinem Fall funktioniert der olog_rules komplett ohne Anführungszeichen. Nur bei führenden oder nachgelegenen Leerzeichen muss Anführungszeichen verwendet werden und dann dürfen sie nur den gesamten Teilregel umschließen. Beispiel:

      Code:
      olog_rules = '0xaa/Mann a b C:Mann' | ' 0xcf/Frau a b C: Frau '
      Für „Mann“ Regel machen die Anführungszeichen keine Änderung für die Frau-Regel hat der Key ein Führende Leerzeichen. Der Ausgangswert Frau hat ein führende (Leerzeichen zwischen : und Frau innerhalb Anführungszeichen) und ein Nachliegender Leerzeichen. Hilfreich dabei könnte der Logeintrag für die Regel sein:

      Code:
      2016-02-09 20:41:54,661 INFO     Main         Item: foo.ekey_string, olog rules: {' 0xcf/Frau a b C': ' Frau ', 'highlim': None, 'lowlim': None, '*': None, '0xaa/Mann a b C': 'Mann'} -- __init__.py:parse_item:169
      Viele Grüße,

      Jan
      Zuletzt geändert von JanT; 09.02.2016, 21:47.

      Kommentar


        #33
        Hallo macflei,

        Zitat von macflei Beitrag anzeigen
        ...Wer übrigens mehr Farben im status.log haben möchte, kann dies (einsch. level-Vorgabe) über die visu.css im eigenen Pages machen...
        schöner Hinweis, vielen Dank!

        Jan

        Kommentar


          #34
          Danke, mit 2. Level funktioniert es prima, auch ohne Anführungszeichen.

          Kommentar


            #35
            Hallo JanT,

            Danke für das Textmapping im Item. Das ist echt praktisch! Bei meinen Spielereien heute Abend habe ich noch folgendes festgestellt: Wer wie ich noch den alten master-Branch von smarthome.py nutzt, erhält beim Verwenden von olog_rules den folgenden Fehler:
            Code:
            2016-02-24 21:09:06,078 ERROR    Main         Item testdevices.funktion2: problem running <bound method OperationLog.update_item of <plugins.operationlog.OperationLog object at 0xde3450>>: 'Item' object has no attribute 'type' -- item.py:__update:371
            Traceback (most recent call last):
              File "/usr/smarthome/lib/item.py", line 369, in __update
                method(self, caller, source, dest)
              File "/usr/smarthome/plugins/operationlog/__init__.py", line 210, in update_item
                if item.type() == 'num':
            AttributeError: 'Item' object has no attribute 'type'
            Mit dem Umstieg auf den develop-Branch ist der Fehler weg.

            Besten Gruß
            Michael

            Kommentar


              #36
              Hallo Michael,

              ist das ein Problem der alten Master-Zweig, oder hast Du vergessen das Item testdevices.function2 ein Attribut 'type' zu geben? Wie sieht denn Deine Konfiguration aus?

              Viele Grüße,

              Jan

              Kommentar


                #37
                Zitat von JanT Beitrag anzeigen
                ist das ein Problem der alten Master-Zweig, oder hast Du vergessen das Item testdevices.function2 ein Attribut 'type' zu geben? Wie sieht denn Deine Konfiguration aus?
                Hallo Jan,

                das liegt am Master-Branch. In der dortigen Item-Klasse gibt es noch keine type-Methode (nur das Attribut in der Klasse). In meiner Konfig war type = bool definiert:
                Code:
                [testdevices]
                    name = Test  Smarthome.py
                    [[funktion2]]
                        type = bool
                        name = Funktion 2 ausfuehren
                        visu_acl = rw
                        knx_dpt = 1
                        knx_send = 8/1/2
                        enforce_updates = yes
                        olog = log_dev1
                        olog_level = INFO
                        olog_rules = False:aus | True:ein
                        olog_txt = TF2: Wert ist {mvalue}
                Besten Gruß
                Michael

                Kommentar


                  #38
                  Vielen Dank für die Info Michael! Ich sehe keinen Grund nicht auf Develop umzustellen, weshalb ich auch nicht versuchen werde den Fall abzufangen.

                  Viele Grüße,

                  Jan

                  Kommentar


                    #39
                    HI zusammen!

                    Mit der neuesten dev-Version des NG Forks bekomme ich nun folgend Fehlermeldung:
                    Code:
                    OperationLog Nachtlogger: could not update cache slice indices must be integers or None or have an __index__ method
                    Die Cachefiles selbst hab ich vor dem Start gelöscht.. Any ideas?

                    Kommentar


                      #40
                      *push* Hat sonst niemand ein Problem mit dem Plugin unter SmarthomeNG?

                      Kommentar


                        #41
                        ich schau mal ob ich das testweise eingebunden kriege.

                        Kommentar


                          #42
                          Also bei mir klappt es wunderbar mit dem 1.2er Branch zumindest. Ich wüsste aber auch nicht, was im DEV anders sein sollte.

                          Habe aber nur ein Licht-Item bisher mit dem Log verbunden. Du solltest mal sukzessive Items reinnehmen und erstmal alle rausnehmen zum Testen..

                          PS: Das Plugin bietet sich megen Multiinstanzfähigkeit hervoragend für eine Portierung auf das SmartPlugin für R1.3 dann an. Wäre klasse wenn der Autor bereit wäre das umzustellen.

                          Testweise kannst Du den cache ja mal rauswerfen, bei mir geht es aber auch mit cache...
                          Zuletzt geändert von psilo; 11.07.2016, 14:35.

                          Kommentar


                            #43
                            Danke für die Rückmeldung.. Ich glaube, ich hab durch ein git pull im SmarthomeNG Verzeichnis eine ältere Version des Plugins runter gezogen. Denn das Cache Problem hatte ich früher schon mal und das wurde dann wohl hier gefixt: https://github.com/JanT112/smarthome...s/operationlog

                            Kann es sein, dass es der Fix nicht in das aktuelle Develop geschafft hat? Denn nach einem manuellen Update der Pluginfiles bzw. beim Deaktivieren des Caches mit den "alten" Files funktioniert alles..

                            Kommentar


                              #44
                              Hallo Zusammen,
                              Super Plugin. Habe es jetzt am laufen und bin begeistert.

                              Ich hätte ein Frage bezüglich einer Erweiterung. Ich bin auf der Suche nach einer Möglichkeit mit dem Log Eintrag auch eine Status.notify() in der Smartvisu auszulösen am optimalsten mit dem Text der in den Log generiert wird. Leider fehlt mir die Erfahrung in der PlugIn Entwicklung. Gibt es hier vielleicht auch einen alternativen Weg oder muss die Anpassung im Plugin selbst erfolgen?
                              status.notify
                              Displays a notification popup window
                              Parameters

                              {{ status.notify(id, gad_trigger, gad_message, signal, title, text, mode) }}
                              id unique id for this widget
                              gad_trigger a gad/item witch triggers the notification
                              gad_message a gad/item with the dynamic message
                              signal a word for the signal corner
                              title a title of the messagebox
                              text a additional static text
                              mode the mode: 'info', 'warning', 'error' (optional, default 'info')




                              Gruß roho

                              Kommentar


                                #45
                                Hallo nochmal,
                                Ich habe mich jetzt selber mal rangewagt. Hänge allerdings ein wenig.

                                Ich lese über eine logic den Log aus und schaffe es auch den Meldetext an ein Item zu übergeben. Gleichzeitig trigger ich in dieser Logic ein Item welches für den Aufruf in Smartvisu zuständig ist. Funktioniert soweit auch. Also die notification in der Visu wird ausgelöst

                                Code:
                                data = sh.Meldeliste()
                                
                                    sh.Messaging.Error ('False')
                                    text=data[0]
                                    text1=text[-1]
                                    sh.Messaging.Error_Message (text1)
                                    sh.Messaging.Error ('True')
                                Einbindung in der Smartvisu über Widget:

                                Code:
                                {% macro notify(id, item_trigger, item_message, signal, title, text, mode) %}
                                
                                
                                
                                    <span id="{{ uid(page, id) }}" data-widget="status.notify" data-item="{{ item_trigger }}, {{ item_message }}"
                                        data-signal="{{ signal|default('INFO') }}" data-mode="{{ mode|default('info') }}"
                                        class="hide"><h1>{{ title }}</h1><p>{{ text }}</p>
                                    </span>
                                {% endmacro %}
                                Nun hängt es allerdings daran das ich gerne den Trigger (item_trigger) mit dem auslösen des Widgets (also Anzeige der Meldung) wieder zu null setzen möchte. Ich habe hierzu in der widget.js den folgenden Eintrag ergänzt, der leider nicht funktioniert. Also der Trigger wird nicht auf 0 gesetzt.. :-( ... Kann mir hier jemand helfen?

                                Code:
                                // ----- status.notify ----------------------------------------------------------
                                $(document).delegate('span[data-widget="status.notify"]', {
                                    'update': function (event, response) {
                                        // response is: {{ gad_trigger }}, {{ gad_message }}
                                
                                        if (response[0] != 0) {
                                               notify.add($(this).attr('data-mode'), $(this).attr('data-signal'), $('#' + this.id + ' h1').html(),
                                                '<b>' + response[1] + '</b><br  />' + $('#' + this.id + ' p').html());
                                            notify.display();
                                [COLOR=#FF0000] var items = $(this).attr('data-item').explode();
                                               io.write(items[0], 0);
                                            //io.write($(this).attr('data-item'), 0);[/COLOR]
                                        }
                                    }
                                });


                                Kommentar

                                Lädt...
                                X