Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [gelöst] Funktion des influxdb-Befehl deleteAll

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Funktion des influxdb-Befehl deleteAll

    This topic has been deleted. Only users with topic management privileges can see it.
    • XxJooO
      XxJooO last edited by XxJooO

      Hallo,

      ich habe eine Frage zum Verständnis des deleteAll-Befehls für influxdb. In der Readme für delete state steht:

      To delete ALL history data for some data point execute:

      sendTo('influxdb.0', 'deleteAll', [
          {id: 'mbus.0.counter.xxx'}, 
          {id: 'mbus.0.counter.yyy'}
      ], result => console.log('deleted'));
      

      Ziel soll sein, dass der Inhalt, also alle Messdaten des measurements "0_userdata.0.Strom.Netzbezug_clean" gelöscht werden.

      Mein Code:

      sendTo('influxdb.0', 'deleteAll', [
          {id: '0_userdata.0.Strom.Netzbezug_clean'}
      ], result => console.log('deleted'));
      

      Was aber passiert ist, dass anschließend die vaules lediglich mit "0" beschrieben werden. Im Log steht "deleted", aber diese Einträge sind im Log alle rot geschrieben.

      In dem Fall entspricht also delete nicht dem von mir erwarteten Löschen der Daten. Ich möchte gerne den o.g. DP als temporären DP benutzen, eine Reihe über einen Filter da rein schreiben, anschließend was mit dieser Reihe machen und am Ende alle Mesurements in dem DP löschen, damit ich ihn neu beschreiben kann. In influx 1.x gab es die drop-Funktion, und die hat gemacht, was ich möchte. Allerdings kann ich die im influxdb-Adapter für influxDB2 nicht verwenden. Kann ich das anders hinbekommen?

      Vielen Dank!
      Jo

      Marc Berg 1 Reply Last reply Reply Quote 0
      • Marc Berg
        Marc Berg Most Active @XxJooO last edited by

        @xxjooo

        Kann ich nicht nachvollziehen. Gib mal noch ein par Details preis:

        • Adapterversion
        • Datentyp
        • Konfiguration der Instanz (Fields oder Tags)
        • wo genau siehst du die "0"?
        XxJooO 1 Reply Last reply Reply Quote 0
        • XxJooO
          XxJooO @Marc Berg last edited by

          @marc-berg, oha, viele Fragen...

          influxdb.0 v4.0.2
          javascript.0 v8.0.3
          js-controller 5.0.19
          Node.js v18.20.2
          NPM 10.5.0

          Datentyp des Objektes, das geholt wird

          {
            "common": {
              "name": "Netzbezug",
              "desc": "Manuell erzeugt",
              "role": "state",
              "type": "number",
              "read": true,
              "write": true,
              "def": 0,
              "custom": {
                "influxdb.0": {
                  "enabled": true,
                  "storageType": "Number",
                  "aliasId": "Netzbezug",
                  "debounceTime": 0,
                  "blockTime": 0,
                  "changesOnly": false,
                  "changesRelogInterval": 0,
                  "changesMinDelta": "0",
                  "ignoreBelowNumber": "",
                  "disableSkippedValueLogging": false,
                  "enableDebugLogs": false,
                  "debounce": "1000"
                }
              },
              "unit": "W"
            },
            "type": "state",
            "native": {},
            "_id": "0_userdata.0.Strom.Netzbezug",
            "acl": {
              "object": 1636,
              "state": 1636,
              "owner": "system.user.admin",
              "ownerGroup": "system.group.administrator"
            },
            "from": "system.adapter.admin.0",
            "user": "system.user.admin",
            "ts": 1680665954663
          }
          

          Wird durch die influxdb-Abfrage geschrieben in

          {
            "common": {
              "name": "Netzbezug_clean",
              "desc": "Manuell erzeugt",
              "role": "state",
              "type": "number",
              "read": true,
              "write": true,
              "def": 0,
              "custom": {
                "influxdb.0": {
                  "enabled": true,
                  "storageType": "Number",
                  "aliasId": "",
                  "debounceTime": 0,
                  "blockTime": 0,
                  "changesOnly": true,
                  "changesRelogInterval": "0",
                  "changesMinDelta": "0",
                  "ignoreBelowNumber": "0",
                  "disableSkippedValueLogging": false,
                  "enableDebugLogs": false,
                  "debounce": "1000",
                  "ignoreAboveNumber": "12000"
                }
              }
            },
            "type": "state",
            "native": {},
            "_id": "0_userdata.0.Strom.Netzbezug_clean",
            "acl": {
              "object": 1636,
              "state": 1636,
              "owner": "system.user.admin",
              "ownerGroup": "system.group.administrator"
            },
            "from": "system.adapter.admin.0",
            "user": "system.user.admin",
            "ts": 1712441907497
          }
          

          Konfiguration der Instanz (Fields oder Tags) - weiß ich leider nicht, was Du da meinst?

          Die 0 sehe ich, wenn ich nach dem Versuch mit dem o.a. JS die Daten zu deleten, in die Tabelle schaue:

          d7a39346-5000-4439-b2c1-3c15fed21865-image.png

          Gekommen sind sie von hier:

          85f1006b-5267-44b4-aadf-c523e3314a76-image.png

          Dir wird auffallen, dass die timestamps unterschiedlich sind. Der Arbeitsablauf war wie folgt:

          • Hole die Daten der letzten zwei Stunden aus dem DP "0_userdata.0.Strom.Netzbezug"
          • Sind die values kleiner als 10, dann schreibe in den DP "0_userdata.0.Strom.Netzbezug_clean"
            Das hat wohl soweit funktioniert.
          • dann lösche den Inhalt des DP "0_userdata.0.Strom.Netzbezug_clean", um eine andere Abfrage zu generieren mit dem o.a. Script.

          Dabei wurden die Messpunkte in "0_userdata.0.Strom.Netzbezug_clean" mit dem Wert 0 beschrieben.
          Erreichen möchte ich, dass in "0_userdata.0.Strom.Netzbezug_clean" keine Messwerte mehr sind, damit der DP bei der nächsten Abfrage wieder als temp-DP genutzt werden kann.

          Frage also: wie sieht ein JS aus, das alle Messwerte löscht?

          Vielen Dank
          Jo

          Marc Berg 1 Reply Last reply Reply Quote 0
          • Marc Berg
            Marc Berg Most Active @XxJooO last edited by

            @xxjooo sagte in Funktion des influxdb-Befehl deleteAll:

            Die 0 sehe ich, wenn ich nach dem Versuch mit dem o.a. JS die Daten zu deleten, in die Tabelle schaue:

            Gekommen sind sie von hier:

            Dir wird auffallen, dass die timestamps unterschiedlich sind.

            Nein, das fällt mir nicht auf, weil du 2x dasselbe Image eingefügt hast.

            dann lösche den Inhalt des DP "0_userdata.0.Strom.Netzbezug_clean", um eine andere Abfrage zu generieren mit dem o.a. Script.
            Dabei wurden die Messpunkte in "0_userdata.0.Strom.Netzbezug_clean" mit dem Wert 0 beschrieben.

            Sehr mysteriös, denn die Funktion "deleteAll" gibt es gar nicht her, bestehende Werte zu ändern.

            Frage also: wie sieht ein JS aus, das alle Messwerte löscht?

            Das ist schon korrekt so, wie du es gemacht hast (ist ja kein Hexenwerk). Ich habe versucht, deine Konstellation so genau wie möglich nachzustellen. In jedem Fall werden bei mir alle Daten gelöscht.

            Vielleicht es es nur ein Anzeigeproblem. Siehst die Daten direkt in der Datenbank? Kannst du Daten über die Oberfläche löschen?

            19bd8dcd-f472-499c-933d-ce85a0745974-grafik.png

            XxJooO 2 Replies Last reply Reply Quote 0
            • XxJooO
              XxJooO @Marc Berg last edited by XxJooO

              @marc-berg,

              danke für den letzten Hinweis, das kannte ich noch nicht. Werde versuchen, das in den nächsten Tagen noch einmal nachzustellen.

              Ich habe auch noch einmal versucht, im Log nachzusehen, was eigentlich passiert ist. Im Log stehen dann viel mehr Fehler, als in der Konsole angezeigt wurden. Deshalb probiere ich es nochmal von vorne und muss dann auch das Log genauer beobachten.

              Vielen Dank
              Jo

              PS: Das Löschen der Daten über die Oberfläche hat schon einmal funktioniert.

              1 Reply Last reply Reply Quote 0
              • XxJooO
                XxJooO @Marc Berg last edited by

                @marc-berg,

                also manche Probleme sind vielleicht mit dem Geist der Elektronen erklärbar...

                Nachdem ich es jetzt noch ein paar Mal mit immer dem gleichen Ergebnis probiert habe, habe ich der gesamten Proxmox-Maschine ihre Updates verpasst und alles neu gestartet - obwohl ich das einmal im Monat mache.

                Und siehe, das Skript löscht jetzt die Daten wie gewünscht, der DP ist leer. Und auch vorher angezeigte Fehler im Log sind nicht mehr da.

                Setze das auf gelöst.
                Vielen Dank und Grüße

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post

                Support us

                ioBroker
                Community Adapters
                Donate

                973
                Online

                31.8k
                Users

                80.0k
                Topics

                1.3m
                Posts

                2
                6
                229
                Loading More Posts
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes
                Reply
                • Reply as topic
                Log in to reply
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                The ioBroker Community 2014-2023
                logo