Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Hilfe bei der Erstellung eines Log Files für die VIS

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.0k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.0k

Hilfe bei der Erstellung eines Log Files für die VIS

Scheduled Pinned Locked Moved Skripten / Logik
blocklyjavascripttemplate
7 Posts 3 Posters 513 Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • L Offline
    L Offline
    ltsalvatore
    wrote on last edited by
    #1

    Hallo zusammen,

    ich hoffe es kann mir jemand bei der Realisierung meines Anliegens behilflich sein.

    Für diverse Fenster und Türen habe ich Datenpunkte erstellt in denen geschrieben wird wann eine Tür oder ein Fenster geöffnet bzw. geschlossen wurde. Sowohl fürs öffnen als auch fürs schließen gibt es separate Datenpunkt (siehe erste Grafik).

    Jetzt würde ich gerne diese Einträge, dessen Werte nach jedem Öffnen und Schließen durch den aktuellen Wert überschrieben werden, loggen und in Form eines Logfiles im VIS darstellen lassen.
    Bspw. die letzten 10 Einträge für die Haustür.

    Ein bisschen was habe ich im Forum und auch im Internet gefunden aber das hat mir irgendwie nicht viel weitergeholfen.

    Die von mir erstellten Datenpunkte sehen folgendermaßen aus:

    183a0d4a-6abc-44d3-8e43-a50b7c6c81bb-image.png

    Meine Idee war, das ganze über ein Script zu realisieren, welches die x Anzahl generierter Einträge in ein neues Objekt schreibt und dieses Objekt wiederum im VIS genutzt werden kann.

    Alternativ dachte ich an den History Adapter; dieser macht ja genau das, was ich gerne haben wollen würde.. nur wie bekommen ich diese Werte, welche sich ja auf mehrere Tage verteilen, ins VIS dargestellt?
    Wenn ich mich nicht täusche, erstellt der History Adapter für jeden Tag einen separaten Ordner, was es in dem Fall recht kompliziert macht, das Ganze umzusetzen.. zumindest mit meinen rudimentären skills :-).

    414fa028-6ab8-41e6-a480-9d0f8c9882b7-image.png

    Ich bedanke mich jetzt schon für eure Unterstütung
    ltsalvatore

    sigi234S 1 Reply Last reply
    0
    • L ltsalvatore

      Hallo zusammen,

      ich hoffe es kann mir jemand bei der Realisierung meines Anliegens behilflich sein.

      Für diverse Fenster und Türen habe ich Datenpunkte erstellt in denen geschrieben wird wann eine Tür oder ein Fenster geöffnet bzw. geschlossen wurde. Sowohl fürs öffnen als auch fürs schließen gibt es separate Datenpunkt (siehe erste Grafik).

      Jetzt würde ich gerne diese Einträge, dessen Werte nach jedem Öffnen und Schließen durch den aktuellen Wert überschrieben werden, loggen und in Form eines Logfiles im VIS darstellen lassen.
      Bspw. die letzten 10 Einträge für die Haustür.

      Ein bisschen was habe ich im Forum und auch im Internet gefunden aber das hat mir irgendwie nicht viel weitergeholfen.

      Die von mir erstellten Datenpunkte sehen folgendermaßen aus:

      183a0d4a-6abc-44d3-8e43-a50b7c6c81bb-image.png

      Meine Idee war, das ganze über ein Script zu realisieren, welches die x Anzahl generierter Einträge in ein neues Objekt schreibt und dieses Objekt wiederum im VIS genutzt werden kann.

      Alternativ dachte ich an den History Adapter; dieser macht ja genau das, was ich gerne haben wollen würde.. nur wie bekommen ich diese Werte, welche sich ja auf mehrere Tage verteilen, ins VIS dargestellt?
      Wenn ich mich nicht täusche, erstellt der History Adapter für jeden Tag einen separaten Ordner, was es in dem Fall recht kompliziert macht, das Ganze umzusetzen.. zumindest mit meinen rudimentären skills :-).

      414fa028-6ab8-41e6-a480-9d0f8c9882b7-image.png

      Ich bedanke mich jetzt schon für eure Unterstütung
      ltsalvatore

      sigi234S Online
      sigi234S Online
      sigi234
      Forum Testing Most Active
      wrote on last edited by sigi234
      #2

      @ltsalvatore
      Logparser Adapter

      https://github.com/iobroker-community-adapters/ioBroker.logparser

      ODER.

      https://github.com/ioBroker/ioBroker.eventlist

      Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
      Immer Daten sichern!

      L 1 Reply Last reply
      0
      • sigi234S sigi234

        @ltsalvatore
        Logparser Adapter

        https://github.com/iobroker-community-adapters/ioBroker.logparser

        ODER.

        https://github.com/ioBroker/ioBroker.eventlist

        L Offline
        L Offline
        ltsalvatore
        wrote on last edited by
        #3

        @sigi234 sagte in Hilfe bei der Erstellung eines Log Files für die VIS:

        @ltsalvatore
        Logparser Adapter

        https://github.com/iobroker-community-adapters/ioBroker.logparser

        ODER.

        https://github.com/ioBroker/ioBroker.eventlist

        danke, ich werde mir beide adapter mal in ruhe anschauen.
        wobei ich persönlich ein script bevorzugt hätte um nicht noch einen weiteren adapter installieren zu müssen, welches nur für diese eine aufgabe gedacht wäre. Immerhin frisst so ein zusätzlicher adapter ja einiges an ressourcen.

        1 Reply Last reply
        0
        • L Offline
          L Offline
          ltsalvatore
          wrote on last edited by
          #4

          hallo nochmal..

          erst mal danke für den tip mit den adapter.

          1. den adapter eventlist find ich interessant und sehr überschaubar. jedoch schreibt dieser alle eingerichteten zustände in einem objekt, was es für mein anliegen unbrauchbar macht. eine option, für jeden zustand ein objekt / eine liste zu erstellen habe ich nicht gefunden.

          2. was den adapter logparser angeht, soweit ich sehen kann, scheint dieser in der lage zu sein, für jeden zustand ein objekt anzulegen, aber offen gestanden blick ich selbst mit anleitung nicht durch wie dieser adapter funktionieren soll.
            trage ich unter whiltelist ein, welchen zustand ich loggen möchte? wenn ja, wie denn?

          3. wie bereits im vorherigen post erwähnt, hätte ich das ganze lieber mit einem script gelöst anstelle eines apdaters um auch weitere ressourcen zu sparen. mittlerweile habe ich schon fast 30 adapter installiert und musste erst vorgestern den iobroker von 5 auf 6GB RAM aufrüsten.

          deshalb würde es mich freuen, falls doch jemand ein paar anregungen hat, wie man das ganze über ein script realisieren kann.

          danke und einen schönen abend noch
          ltsalvatore

          L 1 Reply Last reply
          0
          • L ltsalvatore

            hallo nochmal..

            erst mal danke für den tip mit den adapter.

            1. den adapter eventlist find ich interessant und sehr überschaubar. jedoch schreibt dieser alle eingerichteten zustände in einem objekt, was es für mein anliegen unbrauchbar macht. eine option, für jeden zustand ein objekt / eine liste zu erstellen habe ich nicht gefunden.

            2. was den adapter logparser angeht, soweit ich sehen kann, scheint dieser in der lage zu sein, für jeden zustand ein objekt anzulegen, aber offen gestanden blick ich selbst mit anleitung nicht durch wie dieser adapter funktionieren soll.
              trage ich unter whiltelist ein, welchen zustand ich loggen möchte? wenn ja, wie denn?

            3. wie bereits im vorherigen post erwähnt, hätte ich das ganze lieber mit einem script gelöst anstelle eines apdaters um auch weitere ressourcen zu sparen. mittlerweile habe ich schon fast 30 adapter installiert und musste erst vorgestern den iobroker von 5 auf 6GB RAM aufrüsten.

            deshalb würde es mich freuen, falls doch jemand ein paar anregungen hat, wie man das ganze über ein script realisieren kann.

            danke und einen schönen abend noch
            ltsalvatore

            L Offline
            L Offline
            ltsalvatore
            wrote on last edited by
            #5

            anyone please 😊

            paul53P 1 Reply Last reply
            0
            • L ltsalvatore

              anyone please 😊

              paul53P Offline
              paul53P Offline
              paul53
              wrote on last edited by paul53
              #6

              @ltsalvatore
              Du hast nicht geschrieben wie die Darstellung in Vis aussehen soll.
              In einem Log werden die Ereignisse in der Reihenfolge ihres Auftretens protokolliert. Ansatz ohne die zusätzlichen Datenpunkte aus dem ersten Beitrag:

              const ids = Array.prototype.slice.apply($('*(functions=fenster)'));
              const idJSON = "0_userdata.0.Fenster.JSON";
              var arr = [];
              if(getState(idJSON).val) arr = JSON.parse(getState(idJSON).val);
              
              on(ids, function(dp) {
                  arr.unshift({Name: dp.common.name, Zustand: dp.state.val ? 'offen' : 'geschlossen', seit: formatDate(dp.state.lc, 'DD.MM. hh:mm')});
                  if(arr.length > 10) arr.pop();
                  setState(idJSON, JSON.stringify(arr), true);
              });
              

              Erzeugt wird eine JSON-Table mit dem jüngsten Ereignis zuerst (oben).

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              L 1 Reply Last reply
              0
              • paul53P paul53

                @ltsalvatore
                Du hast nicht geschrieben wie die Darstellung in Vis aussehen soll.
                In einem Log werden die Ereignisse in der Reihenfolge ihres Auftretens protokolliert. Ansatz ohne die zusätzlichen Datenpunkte aus dem ersten Beitrag:

                const ids = Array.prototype.slice.apply($('*(functions=fenster)'));
                const idJSON = "0_userdata.0.Fenster.JSON";
                var arr = [];
                if(getState(idJSON).val) arr = JSON.parse(getState(idJSON).val);
                
                on(ids, function(dp) {
                    arr.unshift({Name: dp.common.name, Zustand: dp.state.val ? 'offen' : 'geschlossen', seit: formatDate(dp.state.lc, 'DD.MM. hh:mm')});
                    if(arr.length > 10) arr.pop();
                    setState(idJSON, JSON.stringify(arr), true);
                });
                

                Erzeugt wird eine JSON-Table mit dem jüngsten Ereignis zuerst (oben).

                L Offline
                L Offline
                ltsalvatore
                wrote on last edited by
                #7

                @paul53 sagte in Hilfe bei der Erstellung eines Log Files für die VIS:

                @ltsalvatore
                Du hast nicht geschrieben wie die Darstellung in Vis aussehen soll.
                In einem Log werden die Ereignisse in der Reihenfolge ihres Auftretens protokolliert. Ansatz ohne die zusätzlichen Datenpunkte aus dem ersten Beitrag:

                const ids = Array.prototype.slice.apply($('*(functions=fenster)'));
                const idJSON = "0_userdata.0.Fenster.JSON";
                var arr = [];
                if(getState(idJSON).val) arr = JSON.parse(getState(idJSON).val);
                
                on(ids, function(dp) {
                    arr.unshift({Name: dp.common.name, Zustand: dp.state.val ? 'offen' : 'geschlossen', seit: formatDate(dp.state.lc, 'DD.MM. hh:mm')});
                    if(arr.length > 10) arr.pop();
                    setState(idJSON, JSON.stringify(arr), true);
                });
                

                Erzeugt wird eine JSON-Table mit dem jüngsten Ereignis zuerst (oben).

                Danke für dein Feedback.

                Im VIS soll das Ganze chronologisch von oben nach unten oder von mir aus von unten nach oben dargestellt werden. Wie es bspw. auch beim ical der Fall ist (s.u.).

                Und in dieser Auflistung der letzten 10 Zustände soll der Wert von zwei Objekten angezeigt werden. In meinem Fall die beiden Objekte window_closed_since_BDZ und window_open_since_BDZ. aber auch nur wenn der Wert nicht gleich 0 ist, weil der Wert gleich 0 mir in der Auflistung nichts bringt.

                13cfc232-6a67-4a23-97d2-5e9630948dbf-image.png

                Sowas Ähnliches gibt es ja auch bei der mihome app für die Sensoren, aber leider liest der Adapter diese Tabelle nicht aus:

                5fe3fac2-aee3-4a37-b027-9b0aea3e4885-image.png

                1 Reply Last reply
                0
                Reply
                • Reply as topic
                Log in to reply
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes


                Support us

                ioBroker
                Community Adapters
                Donate

                650

                Online

                32.4k

                Users

                81.4k

                Topics

                1.3m

                Posts
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                ioBroker Community 2014-2025
                logo
                • Login

                • Don't have an account? Register

                • Login or register to search.
                • First post
                  Last post
                0
                • Recent
                • Tags
                • Unread 0
                • Categories
                • Unreplied
                • Popular
                • GitHub
                • Docu
                • Hilfe