Skip to content
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Zurücksetzen einzelner Datenpunkte im SQL-Adapter

NEWS

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

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

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

Zurücksetzen einzelner Datenpunkte im SQL-Adapter

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
87 Beiträge 16 Kommentatoren 13.0k Aufrufe 14 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • metaxaM metaxa

    @bananajoe sagte in Zurücksetzen einzelner Datenpunkte im SQL-Adapter:

    Eventuell muss da halt noch eine Bremse rein. Und Statusanzeigen.

    Ich denke beides wäre sehr hilfreich, alleine das Backup der SQL Datenbank ist bei mir ~500MB groß. Bei mir kommen im Log ca. 84 Warnmeldungen, spätestens danach tut sich nix mehr und der Admin ist nicht mehr erreichbar. Ich habe das Gefühl, dass der JS Adapter neu startet, da plötzlich im Log sichtbar jedes Skript neu initialisiert wird.

    Werde das System jetzt neu starten, danach nochmals dein Skript starten traue ich mich eigentlich nicht wirklich.

    BananaJoeB Offline
    BananaJoeB Offline
    BananaJoe
    Most Active
    schrieb am zuletzt editiert von
    #38

    @metaxa sagte in Zurücksetzen einzelner Datenpunkte im SQL-Adapter:

    Werde das System jetzt neu starten, danach nochmals dein Skript starten traue ich mich eigentlich nicht wirklich.

    eventuell musst den Javascript-adapter vorher deaktivieren - wenn der startet, startet der auch alle skripte die gestartet waren. könnte auch über den Objektebaum gehen, weis aber gerade nicht wie.

    Also keine Panik, ggf. warten, warten, warten

    ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 44TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=157 Tasmota/Shelly || >=88 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 900/750W kaskadiert || Creality CR-10 SE 3D-Drucker

    metaxaM 1 Antwort Letzte Antwort
    0
    • BananaJoeB BananaJoe

      @metaxa sagte in Zurücksetzen einzelner Datenpunkte im SQL-Adapter:

      Werde das System jetzt neu starten, danach nochmals dein Skript starten traue ich mich eigentlich nicht wirklich.

      eventuell musst den Javascript-adapter vorher deaktivieren - wenn der startet, startet der auch alle skripte die gestartet waren. könnte auch über den Objektebaum gehen, weis aber gerade nicht wie.

      Also keine Panik, ggf. warten, warten, warten

      metaxaM Offline
      metaxaM Offline
      metaxa
      schrieb am zuletzt editiert von
      #39

      @bananajoe sagte in Zurücksetzen einzelner Datenpunkte im SQL-Adapter:

      eventuell musst den Javascript-adapter vorher deaktivieren

      Wie meinst du das? Ich kann dein Skript ja nur starten, wenn er läuft. Laut meinen Beobachtungen hat mein JS-Adapter inmitten des laufenden Prozesses deines Skripts neugestartet.

      BananaJoeB 1 Antwort Letzte Antwort
      0
      • metaxaM metaxa

        @bananajoe sagte in Zurücksetzen einzelner Datenpunkte im SQL-Adapter:

        eventuell musst den Javascript-adapter vorher deaktivieren

        Wie meinst du das? Ich kann dein Skript ja nur starten, wenn er läuft. Laut meinen Beobachtungen hat mein JS-Adapter inmitten des laufenden Prozesses deines Skripts neugestartet.

        BananaJoeB Offline
        BananaJoeB Offline
        BananaJoe
        Most Active
        schrieb am zuletzt editiert von
        #40

        @metaxa ok ... wenn es viele sind braucht es wohl eher einen Limiter "Datenpunkte pro Start", also das er nicht alle Datenpunkte abarbeitet sondern nur Anzahl X pro Start.

        Ich habe gerade mit einer Bremse experimentiert. Er sucht die Datenpunkte ohne Fahrschein und fragt dann die Wert die vorliegen ab um eine Zahl zu erhalten.

        Mein einer Temperatursensor schickt z.B. alle 5 Sekunden einen Wert (war mir erst hierbei aufgefallen), das waren es dann über 200.000 Werte.

        In diese Abfrage kann ich nicht pausieren (ok, ich könnte die limitieren, dann wird es aber komplizierter, dann bräuchte es noch einmal eine schleife drumherum um dann alle Werte zu verarbeiten)

        Zwischen den Datenpunkten kann ich pausieren.
        Bei zu vielen Datensätzen könnte der RAM ausgehen ... wenn da z.B. 500.000 Stück kommen.
        Also vermutlich läuft es doch auf "maximal 50.000 Datensätze pro Runde) oder so. Also statt 500.000 zu verarbeiten immer nur "die ersten 50.000, dann die nächsten 50.000) usw.

        Ich bin jetzt kein SQL Profi, ich kann nur gut googeln, ich schau mal was ich da finde.

        ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 44TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=157 Tasmota/Shelly || >=88 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 900/750W kaskadiert || Creality CR-10 SE 3D-Drucker

        metaxaM 1 Antwort Letzte Antwort
        0
        • BananaJoeB BananaJoe

          @metaxa ok ... wenn es viele sind braucht es wohl eher einen Limiter "Datenpunkte pro Start", also das er nicht alle Datenpunkte abarbeitet sondern nur Anzahl X pro Start.

          Ich habe gerade mit einer Bremse experimentiert. Er sucht die Datenpunkte ohne Fahrschein und fragt dann die Wert die vorliegen ab um eine Zahl zu erhalten.

          Mein einer Temperatursensor schickt z.B. alle 5 Sekunden einen Wert (war mir erst hierbei aufgefallen), das waren es dann über 200.000 Werte.

          In diese Abfrage kann ich nicht pausieren (ok, ich könnte die limitieren, dann wird es aber komplizierter, dann bräuchte es noch einmal eine schleife drumherum um dann alle Werte zu verarbeiten)

          Zwischen den Datenpunkten kann ich pausieren.
          Bei zu vielen Datensätzen könnte der RAM ausgehen ... wenn da z.B. 500.000 Stück kommen.
          Also vermutlich läuft es doch auf "maximal 50.000 Datensätze pro Runde) oder so. Also statt 500.000 zu verarbeiten immer nur "die ersten 50.000, dann die nächsten 50.000) usw.

          Ich bin jetzt kein SQL Profi, ich kann nur gut googeln, ich schau mal was ich da finde.

          metaxaM Offline
          metaxaM Offline
          metaxa
          schrieb am zuletzt editiert von
          #41

          @bananajoe sagte in Zurücksetzen einzelner Datenpunkte im SQL-Adapter:

          Ich bin jetzt kein SQL Profi, ich kann nur gut googeln, ich schau mal was ich da finde.

          🙂 Ich weiß gar nicht wie man "SQL Profi" schreibt 🙂

          Diese - sicher großteils unnötigen Datenmengen - liegen mir schon länger auf der Seele. Nur bin ich bis dato nicht einmal ansatzweise iwo fähig z.B. zu schauen, welche Datenpunkte haben das letzte mal vor x Tagen oder Monaten geschrieben. Bei denen kann ich davon ausgehen, dass das Logging deaktiviert oder der DP gar nicht mehr existiert. Also weg mit der Sammlung.

          Wirklich ein großes DANKE für deine Zeit und deinen Aufwand!

          BananaJoeB 1 Antwort Letzte Antwort
          0
          • metaxaM metaxa

            @bananajoe sagte in Zurücksetzen einzelner Datenpunkte im SQL-Adapter:

            Ich bin jetzt kein SQL Profi, ich kann nur gut googeln, ich schau mal was ich da finde.

            🙂 Ich weiß gar nicht wie man "SQL Profi" schreibt 🙂

            Diese - sicher großteils unnötigen Datenmengen - liegen mir schon länger auf der Seele. Nur bin ich bis dato nicht einmal ansatzweise iwo fähig z.B. zu schauen, welche Datenpunkte haben das letzte mal vor x Tagen oder Monaten geschrieben. Bei denen kann ich davon ausgehen, dass das Logging deaktiviert oder der DP gar nicht mehr existiert. Also weg mit der Sammlung.

            Wirklich ein großes DANKE für deine Zeit und deinen Aufwand!

            BananaJoeB Offline
            BananaJoeB Offline
            BananaJoe
            Most Active
            schrieb am zuletzt editiert von
            #42

            @metaxa ok, wird länger dauern ...
            Ich entwickle das Skript in einer 2. JavaScript Instanz ... und die geht bei nur nun auch öfter auf die Bretter wenn ich mit Schleifen und SQL-Abfragen rumspiele ...

            ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 44TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=157 Tasmota/Shelly || >=88 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 900/750W kaskadiert || Creality CR-10 SE 3D-Drucker

            BananaJoeB 1 Antwort Letzte Antwort
            0
            • BananaJoeB BananaJoe

              @metaxa ok, wird länger dauern ...
              Ich entwickle das Skript in einer 2. JavaScript Instanz ... und die geht bei nur nun auch öfter auf die Bretter wenn ich mit Schleifen und SQL-Abfragen rumspiele ...

              BananaJoeB Offline
              BananaJoeB Offline
              BananaJoe
              Most Active
              schrieb am zuletzt editiert von BananaJoe
              #43

              Also ... das Problem ist das der SQL-Server unter umständen halt so ausgelastet wird das der das System auf die Bretter schickt. Bei meinen Tests hatte ich es auch hinbekommen das der MySQL sich jedes Hz auf jedem CPU Kern gegriffen hat.
              Im ioBroker klappt dann irgendwann was nicht - vermutlich vom Timing - und dann geht der aus die Bretter und startet alles möglich neu.

              Eventuell könnte man es lösen indem man das löschen dann von hand macht auf der MySQL-Konsole

              Ich habe damit rumexperimentiert zumindest beim löschen immer nur 50 Datensätze zu nehmen, zu pausieren und dann die nächsten 50 ... aber keine Ahnung, auch mir ist dann gerade alles ausgetillt ...

              Das Skript kann halt anzeigen welche Datensätze betroffen sind,
              der Rest wären ein paar SQL Befehle auf der Konsole. Eigentlich die gleichen die das Skript abfeuert, nur das ioBroker dann nicht dazwischen ist.

              ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 44TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=157 Tasmota/Shelly || >=88 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 900/750W kaskadiert || Creality CR-10 SE 3D-Drucker

              GaspodeG metaxaM 2 Antworten Letzte Antwort
              0
              • BananaJoeB BananaJoe

                Also ... das Problem ist das der SQL-Server unter umständen halt so ausgelastet wird das der das System auf die Bretter schickt. Bei meinen Tests hatte ich es auch hinbekommen das der MySQL sich jedes Hz auf jedem CPU Kern gegriffen hat.
                Im ioBroker klappt dann irgendwann was nicht - vermutlich vom Timing - und dann geht der aus die Bretter und startet alles möglich neu.

                Eventuell könnte man es lösen indem man das löschen dann von hand macht auf der MySQL-Konsole

                Ich habe damit rumexperimentiert zumindest beim löschen immer nur 50 Datensätze zu nehmen, zu pausieren und dann die nächsten 50 ... aber keine Ahnung, auch mir ist dann gerade alles ausgetillt ...

                Das Skript kann halt anzeigen welche Datensätze betroffen sind,
                der Rest wären ein paar SQL Befehle auf der Konsole. Eigentlich die gleichen die das Skript abfeuert, nur das ioBroker dann nicht dazwischen ist.

                GaspodeG Offline
                GaspodeG Offline
                Gaspode
                schrieb am zuletzt editiert von
                #44

                @bananajoe
                Coole Sache. Bei mir legt allerdings schon die Abfrage das System lahm, ich habe aber auch eine riesige Menge an Leichen in der Datenbank. Muss mal bei Gelegenheit prüfen, ob ich das irgendwie häppchenweise aufräumen kann.

                Was zur Perfektion noch fehlt, wäre es, Aliase zu berücksichtigen. Ich weiß nicht, ob und wie man das bewerkstelligen könnte.

                Danke auf jeden Fall für das Projekt. 🙂

                BananaJoeB 1 Antwort Letzte Antwort
                0
                • GaspodeG Gaspode

                  @bananajoe
                  Coole Sache. Bei mir legt allerdings schon die Abfrage das System lahm, ich habe aber auch eine riesige Menge an Leichen in der Datenbank. Muss mal bei Gelegenheit prüfen, ob ich das irgendwie häppchenweise aufräumen kann.

                  Was zur Perfektion noch fehlt, wäre es, Aliase zu berücksichtigen. Ich weiß nicht, ob und wie man das bewerkstelligen könnte.

                  Danke auf jeden Fall für das Projekt. 🙂

                  BananaJoeB Offline
                  BananaJoeB Offline
                  BananaJoe
                  Most Active
                  schrieb am zuletzt editiert von BananaJoe
                  #45

                  @gaspode Was relativ leicht wäre das er nur die betreffenden Datenpunkte ausspuckt die Leichen sind.
                  Oder das er halt nur die ersten 100 Datensätze holt statt hunderttausender.

                  Mit der Liste könnte man von Hand auf der Konsole aufräumen

                  Passe die letzte Funktion unten so an:

                  async function getQueryResult(query) {
                      return new Promise((resolve, reject) => {
                          sendTo(sql_instance, 'query', query + ' LIMIT 100', function (result) {
                              if (!result.error) {
                                  resolve(result.result);
                              } else {
                                  resolve(null);
                              }
                          });
                      });
                  }
                  

                  In Zeile 3 habe ich da das + 'LIMIT 100' drangebaut so das nur die 100 ersten Datensätze erfasst werden.
                  Und bitte

                  const activate_delete = false;
                  

                  Beim löschen würde er trotzdem alle löschen - und das könnte halt auf die Performance gehen / die MySQL-Instanz an ihre Grenzen bringen.
                  Da sollte man das löschen eventuell von Hand machen in der Shell machen - bei gestoppten ioBroker.

                  ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 44TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=157 Tasmota/Shelly || >=88 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 900/750W kaskadiert || Creality CR-10 SE 3D-Drucker

                  1 Antwort Letzte Antwort
                  1
                  • BananaJoeB BananaJoe

                    Also ... das Problem ist das der SQL-Server unter umständen halt so ausgelastet wird das der das System auf die Bretter schickt. Bei meinen Tests hatte ich es auch hinbekommen das der MySQL sich jedes Hz auf jedem CPU Kern gegriffen hat.
                    Im ioBroker klappt dann irgendwann was nicht - vermutlich vom Timing - und dann geht der aus die Bretter und startet alles möglich neu.

                    Eventuell könnte man es lösen indem man das löschen dann von hand macht auf der MySQL-Konsole

                    Ich habe damit rumexperimentiert zumindest beim löschen immer nur 50 Datensätze zu nehmen, zu pausieren und dann die nächsten 50 ... aber keine Ahnung, auch mir ist dann gerade alles ausgetillt ...

                    Das Skript kann halt anzeigen welche Datensätze betroffen sind,
                    der Rest wären ein paar SQL Befehle auf der Konsole. Eigentlich die gleichen die das Skript abfeuert, nur das ioBroker dann nicht dazwischen ist.

                    metaxaM Offline
                    metaxaM Offline
                    metaxa
                    schrieb am zuletzt editiert von
                    #46

                    @bananajoe sagte in Zurücksetzen einzelner Datenpunkte im SQL-Adapter:

                    Das Skript kann halt anzeigen welche Datensätze betroffen sind

                    Selbst bei diesem Vorgang steigt mein JS-Adapter scheinbar schon aus.

                    @bananajoe sagte in Zurücksetzen einzelner Datenpunkte im SQL-Adapter:

                    Eventuell könnte man es lösen indem man das löschen dann von hand macht auf der MySQL-Konsole

                    Genau daran scheitere ich seit Jahren, ich finde mich bei diesem SQL einfach nicht zurecht.
                    Früher gabs einmal "History" auf der CCU, da kannt ich mich handlungsstark aus.

                    BananaJoeB 1 Antwort Letzte Antwort
                    0
                    • metaxaM metaxa

                      @bananajoe sagte in Zurücksetzen einzelner Datenpunkte im SQL-Adapter:

                      Das Skript kann halt anzeigen welche Datensätze betroffen sind

                      Selbst bei diesem Vorgang steigt mein JS-Adapter scheinbar schon aus.

                      @bananajoe sagte in Zurücksetzen einzelner Datenpunkte im SQL-Adapter:

                      Eventuell könnte man es lösen indem man das löschen dann von hand macht auf der MySQL-Konsole

                      Genau daran scheitere ich seit Jahren, ich finde mich bei diesem SQL einfach nicht zurecht.
                      Früher gabs einmal "History" auf der CCU, da kannt ich mich handlungsstark aus.

                      BananaJoeB Offline
                      BananaJoeB Offline
                      BananaJoe
                      Most Active
                      schrieb am zuletzt editiert von BananaJoe
                      #47

                      @metaxa probiere mal meine Modifikation mit dem Limit oben aus.
                      Wenn die klappt schreibe ich dir hier eine kleine Anleitung rein wie du die Datenpunkte von Hand in MySQL bereinigen kannst.
                      Basis wäre halt das du die Namen der Datenpunkte hast die es betrifft.

                      Ich würde das Log auf der Shell nehmen

                      tail -F /opt/iobroker/log/iobroker.current.log
                      

                      Nach dem Durchlauf des Skripts beenden und die Zeilen aus dem Skript in eine Textdatei kopieren.
                      Die Logzeilen enthalten alle Informationen die man dafür braucht:

                      23:30:27.648	warn	javascript.1 (1701654) script.js.Tools.SQL_Verwaiste2: DB id: 132 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: '0_userdata.0.tasmota.Blitzwolf182-Loetstation.Energy-Power'
                      

                      ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 44TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=157 Tasmota/Shelly || >=88 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 900/750W kaskadiert || Creality CR-10 SE 3D-Drucker

                      metaxaM 1 Antwort Letzte Antwort
                      1
                      • BananaJoeB BananaJoe

                        @metaxa probiere mal meine Modifikation mit dem Limit oben aus.
                        Wenn die klappt schreibe ich dir hier eine kleine Anleitung rein wie du die Datenpunkte von Hand in MySQL bereinigen kannst.
                        Basis wäre halt das du die Namen der Datenpunkte hast die es betrifft.

                        Ich würde das Log auf der Shell nehmen

                        tail -F /opt/iobroker/log/iobroker.current.log
                        

                        Nach dem Durchlauf des Skripts beenden und die Zeilen aus dem Skript in eine Textdatei kopieren.
                        Die Logzeilen enthalten alle Informationen die man dafür braucht:

                        23:30:27.648	warn	javascript.1 (1701654) script.js.Tools.SQL_Verwaiste2: DB id: 132 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: '0_userdata.0.tasmota.Blitzwolf182-Loetstation.Energy-Power'
                        
                        metaxaM Offline
                        metaxaM Offline
                        metaxa
                        schrieb am zuletzt editiert von
                        #48

                        @bananajoe sagte in Zurücksetzen einzelner Datenpunkte im SQL-Adapter:

                        Ich würde das Log auf der Shell nehmen

                        Da kriege ich nicht alle Informationen wie im Log direkt unter ioB logs. Das schaut so aus:

                        
                        javascript.0
                        2023-02-02 23:33:13.444	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: 83 Objects found, that not exist anymore in ioBroker, sum of items in tables: 7 776
                        
                        javascript.0
                        2023-02-02 23:33:13.397	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 106 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.LEQ1315252.2.CURRENT'
                        
                        javascript.0
                        2023-02-02 23:33:13.245	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 105 (type: 0) -> number: 3, string: 0, bool: 0 | ioBroker id: 'alias.0. nordtemp.ACTUAL'
                        
                        javascript.0
                        2023-02-02 23:33:13.199	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 104 (type: 1) -> number: 0, string: 100, bool: 0 | ioBroker id: 'squeezeboxrpc.0.Players.Moode-Bad.cmdPlayFavorite'
                        
                        javascript.0
                        2023-02-02 23:33:13.117	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 103 (type: 1) -> number: 0, string: 100, bool: 0 | ioBroker id: 'device-reminder.0.Brauchwasserpumpe.messageDP'
                        
                        javascript.0
                        2023-02-02 23:33:12.902	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 102 (type: 1) -> number: 0, string: 100, bool: 0 | ioBroker id: 'device-reminder.0.Dishwasher.messageDP'
                        
                        javascript.0
                        2023-02-02 23:33:12.804	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 100 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'sonoff.0.Kueche-LED-Power-32.ENERGY_Yesterday'
                        
                        javascript.0
                        2023-02-02 23:33:12.729	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 99 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'sonoff.0.Kueche-LED-Power-32.ENERGY_Total'
                        
                        javascript.0
                        2023-02-02 23:33:12.571	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 98 (type: 2) -> number: 0, string: 0, bool: 100 | ioBroker id: 'g-homa.0.1E493A.state'
                        
                        javascript.0
                        2023-02-02 23:33:12.523	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 97 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'sonoff.0.Gosund01-POW-Dishwasher.ENERGY_ApparentPower'
                        
                        javascript.0
                        2023-02-02 23:33:12.480	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 96 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'sonoff.0.Gosund01-POW-Dishwasher.ENERGY_Power'
                        
                        javascript.0
                        2023-02-02 23:33:12.342	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 95 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'sonoff.0.Gosund01-POW-Dishwasher.ENERGY_Current'
                        
                        javascript.0
                        2023-02-02 23:33:12.213	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 94 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'javascript.0.Wetterstation.Info.Letzte_Regenmenge'
                        
                        javascript.0
                        2023-02-02 23:33:12.022	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 92 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'javascript.0.Wetterstation.Regenrate'
                        
                        javascript.0
                        2023-02-02 23:33:11.922	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 90 (type: 1) -> number: 0, string: 100, bool: 0 | ioBroker id: 'javascript.0.Junkers.Solar.solarPump'
                        
                        javascript.0
                        2023-02-02 23:33:11.762	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 89 (type: 1) -> number: 0, string: 100, bool: 0 | ioBroker id: 'javascript.0.Wetterstation.Regenstatus'
                        
                        javascript.0
                        2023-02-02 23:33:11.579	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 88 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'javascript.0.Wetterstation.Regen_Tag'
                        
                        javascript.0
                        2023-02-02 23:33:11.425	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 87 (type: 2) -> number: 0, string: 0, bool: 100 | ioBroker id: 'hm-rpc.0.LEQ0073059.1.WORKING'
                        
                        javascript.0
                        2023-02-02 23:33:11.340	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 86 (type: 1) -> number: 0, string: 100, bool: 0 | ioBroker id: 'mqtt.0.ESP1-Garage-Poolsteuerung.status.LWT'
                        
                        javascript.0
                        2023-02-02 23:33:11.221	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 85 (type: 1) -> number: 0, string: 7, bool: 0 | ioBroker id: 'hm-rpc.2.CUX2800001.12.TIMER_SET'
                        
                        javascript.0
                        2023-02-02 23:33:11.173	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 84 (type: 1) -> number: 0, string: 7, bool: 0 | ioBroker id: 'hm-rpc.2.CUX2800001.14.TIMER_SET'
                        
                        javascript.0
                        2023-02-02 23:33:11.111	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 83 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'sonoff.0.SONOFF_32_POW.ENERGY_Total'
                        
                        javascript.0
                        2023-02-02 23:33:11.005	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 82 (type: 0) -> number: 78, string: 0, bool: 0 | ioBroker id: 'sonoff.0.SONOFF_32_POW.ENERGY_Yesterday'
                        
                        javascript.0
                        2023-02-02 23:33:10.832	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 81 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.KEQ0965973.2.CURRENT'
                        
                        javascript.0
                        2023-02-02 23:33:10.745	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 80 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.KEQ0965973.2.POWER'
                        
                        javascript.0
                        2023-02-02 23:33:10.536	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 79 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.KEQ0968518.2.CURRENT'
                        
                        javascript.0
                        2023-02-02 23:33:10.380	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 75 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.LEQ1275993.2.CURRENT'
                        
                        javascript.0
                        2023-02-02 23:33:10.279	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 74 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.LEQ1275993.2.POWER'
                        
                        javascript.0
                        2023-02-02 23:33:09.943	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 73 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.LEQ0532863.2.CURRENT'
                        
                        javascript.0
                        2023-02-02 23:33:09.838	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 72 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.LEQ0532863.2.POWER'
                        
                        javascript.0
                        2023-02-02 23:33:09.674	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 70 (type: 2) -> number: 0, string: 0, bool: 100 | ioBroker id: 'hm-rpc.0.IEQ0168663.4.STATE'
                        
                        javascript.0
                        2023-02-02 23:33:09.617	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 69 (type: 2) -> number: 0, string: 0, bool: 100 | ioBroker id: 'a_andreas.0.eigene_dp.Bewegung.Aqara_01_Bewegung'
                        
                        javascript.0
                        2023-02-02 23:33:09.543	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 66 (type: 1) -> number: 0, string: 100, bool: 0 | ioBroker id: 'weatherunderground.0.forecast.0d.state'
                        
                        javascript.0
                        2023-02-02 23:33:09.469	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 64 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'sonoff.0.SONOFF_31.ENERGY_Power'
                        
                        javascript.0
                        2023-02-02 23:33:09.310	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 63 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'sonoff.0.SONOFF_30.ENERGY_Power'
                        
                        javascript.0
                        2023-02-02 23:33:09.026	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 62 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'proxmox.0.qemu_ioBroker-Prod.mem_lev'
                        
                        javascript.0
                        2023-02-02 23:33:08.735	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 61 (type: 2) -> number: 0, string: 0, bool: 100 | ioBroker id: 'g-homa.0.1BBAC0.state'
                        
                        javascript.0
                        2023-02-02 23:33:08.587	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 60 (type: 0) -> number: 1, string: 0, bool: 0 | ioBroker id: 'sonoff.0.SONOFF_30.ENERGY_Today'
                        
                        javascript.0
                        2023-02-02 23:33:08.332	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 59 (type: 0) -> number: 97, string: 0, bool: 0 | ioBroker id: 'sonoff.0.SONOFF_30.ENERGY_Yesterday'
                        
                        javascript.0
                        2023-02-02 23:33:08.223	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 58 (type: 0) -> number: 1, string: 0, bool: 0 | ioBroker id: 'sonoff.0.SONOFF_31.ENERGY_Today'
                        
                        javascript.0
                        2023-02-02 23:33:08.041	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 57 (type: 0) -> number: 78, string: 0, bool: 0 | ioBroker id: 'sonoff.0.SONOFF_31.ENERGY_Yesterday'
                        
                        javascript.0
                        2023-02-02 23:33:07.783	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 56 (type: 2) -> number: 0, string: 0, bool: 100 | ioBroker id: 'hm-rpc.1.JEQ0148994.13.STATE'
                        
                        javascript.0
                        2023-02-02 23:33:07.642	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 55 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.KEQ0968518.2.POWER'
                        
                        javascript.0
                        2023-02-02 23:33:07.452	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 54 (type: 1) -> number: 0, string: 100, bool: 0 | ioBroker id: 'a_andreas.0.eigene_dp.MatrixDisplay.Matrix'
                        
                        javascript.0
                        2023-02-02 23:33:07.022	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 53 (type: 2) -> number: 0, string: 4, bool: 100 | ioBroker id: 'g-homa.0.22604E.state'
                        
                        javascript.0
                        2023-02-02 23:33:06.663	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 52 (type: 1) -> number: 0, string: 100, bool: 0 | ioBroker id: 'mqtt.0.ESP1-Garage-Poolsteuerung.Poolwasser.Beckentemperatur'
                        
                        javascript.0
                        2023-02-02 23:33:06.579	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 51 (type: 1) -> number: 0, string: 100, bool: 0 | ioBroker id: 'mqtt.0.ESP0-Kueche-ext-Eiskasten.Gefrierteil.Temperatur'
                        
                        javascript.0
                        2023-02-02 23:33:06.470	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 50 (type: 1) -> number: 0, string: 100, bool: 0 | ioBroker id: 'mqtt.0.ESP0-Kueche-ext-Eiskasten.Kühlschrank.Temperatur'
                        
                        javascript.0
                        2023-02-02 23:33:06.351	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 49 (type: 1) -> number: 0, string: 100, bool: 0 | ioBroker id: 'mqtt.0.ESP-Kueche-ext-Eiskasten.Gefrierteil.Temperatur'
                        
                        javascript.0
                        2023-02-02 23:33:06.219	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 48 (type: 1) -> number: 0, string: 100, bool: 0 | ioBroker id: 'mqtt.0.ESP-Kueche-ext-Eiskasten.Kühlschrank.Temperatur'
                        
                        javascript.0
                        2023-02-02 23:33:06.136	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 47 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'fullybrowser.0.192_168_0_121.Info.batteryLevel'
                        
                        javascript.0
                        2023-02-02 23:33:06.032	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 46 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'fullybrowser.0.192_168_0_121.Info.motionDetectorState'
                        
                        javascript.0
                        2023-02-02 23:33:05.962	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 45 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.JEQ0194157.1.HUMIDITY'
                        
                        javascript.0
                        2023-02-02 23:33:05.867	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 44 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'mqtt.0.ESP-Garage-Poolsteuerung.Poolwasser.Beckentemperatur.neustarts_anzahl'
                        
                        javascript.0
                        2023-02-02 23:33:05.794	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 43 (type: 1) -> number: 0, string: 100, bool: 0 | ioBroker id: 'mqtt.0.ESP-Garage-Poolsteuerung.status.LWT'
                        
                        javascript.0
                        2023-02-02 23:33:05.661	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 42 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'mqtt.0.ESP-Garage-Poolsteuerung.Poolwasser.Beckentemperatur'
                        
                        javascript.0
                        2023-02-02 23:33:05.605	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 40 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'mqtt.0.WM_D1_M_Pool.Poolsteuerung.Temperatur_Pool_Mitte'
                        
                        javascript.0
                        2023-02-02 23:33:05.509	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 38 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'paw.0.TabAKarli.info.battery.level'
                        
                        javascript.0
                        2023-02-02 23:33:05.258	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 37 (type: 2) -> number: 0, string: 0, bool: 100 | ioBroker id: 'paw.0.TabAKarli.info.info.lcd'
                        
                        javascript.0
                        2023-02-02 23:33:05.015	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 36 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'landroid-s.0.mower.status'
                        
                        javascript.0
                        2023-02-02 23:33:04.937	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 35 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'landroid-s.0.calendar.mowTimeExtend'
                        
                        javascript.0
                        2023-02-02 23:33:04.711	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 34 (type: 2) -> number: 0, string: 0, bool: 100 | ioBroker id: 'landroid-s.0.mower.batteryCharging'
                        
                        javascript.0
                        2023-02-02 23:33:04.625	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 33 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'landroid-s.0.mower.batteryState'
                        
                        javascript.0
                        2023-02-02 23:33:04.423	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 32 (type: 1) -> number: 0, string: 100, bool: 0 | ioBroker id: 'yamaha.0.Realtime.raw'
                        
                        javascript.0
                        2023-02-02 23:33:03.996	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 28 (type: 2) -> number: 0, string: 0, bool: 100 | ioBroker id: 'hm-rpc.1.JEQ0310843.16.STATE'
                        
                        javascript.0
                        2023-02-02 23:33:03.850	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 26 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'paw.0.Susi_Tab3.info.battery.level'
                        
                        javascript.0
                        2023-02-02 23:33:03.788	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 25 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.OEQ0301876.1.TEMPERATURE'
                        
                        javascript.0
                        2023-02-02 23:33:03.616	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 22 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.MEQ1598807.1.TEMPERATURE'
                        
                        javascript.0
                        2023-02-02 23:33:03.427	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 18 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.JEQ0393036.1.TEMPERATURE'
                        
                        javascript.0
                        2023-02-02 23:33:03.231	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 17 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.JEQ0231719.1.TEMPERATURE'
                        
                        javascript.0
                        2023-02-02 23:33:03.154	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 16 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.JEQ0194157.1.TEMPERATURE'
                        
                        javascript.0
                        2023-02-02 23:33:03.092	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 15 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.JEQ0035658.1.TEMPERATURE'
                        
                        javascript.0
                        2023-02-02 23:33:03.021	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 14 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.HEQ0510329.1.TEMPERATURE'
                        
                        javascript.0
                        2023-02-02 23:33:02.964	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 12 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'broadlink2.0.RM:.Temperature'
                        
                        javascript.0
                        2023-02-02 23:33:02.858	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 11 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.FEQ0030851.1.TEMPERATURE'
                        
                        javascript.0
                        2023-02-02 23:33:02.709	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 10 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.JEQ0686511.1.TEMPERATURE'
                        
                        javascript.0
                        2023-02-02 23:33:02.514	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 9 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.OEQ0301876.2.SET_TEMPERATURE'
                        
                        javascript.0
                        2023-02-02 23:33:02.381	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 8 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.OEQ0301876.2.ACTUAL_TEMPERATURE'
                        
                        javascript.0
                        2023-02-02 23:33:02.319	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 7 (type: 2) -> number: 0, string: 0, bool: 100 | ioBroker id: 'hm-rpc.0.NEQ0114995.1.STATE'
                        
                        javascript.0
                        2023-02-02 23:33:02.200	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 6 (type: 2) -> number: 0, string: 0, bool: 100 | ioBroker id: 'hm-rpc.0.IEQ0168663.1.STATE'
                        
                        javascript.0
                        2023-02-02 23:33:01.779	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 5 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.MEQ1598807.2.TEMPERATURE'
                        
                        javascript.0
                        2023-02-02 23:33:01.537	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 4 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'weatherunderground.0.forecast.3h.temp'
                        
                        javascript.0
                        2023-02-02 23:33:01.230	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 3 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'weatherunderground.0.current.temp_c'
                        
                        javascript.0
                        2023-02-02 23:33:01.039	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 1 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.JEQ0268366.1.HUMIDITY'
                        

                        Hab gleich paar DP kontrolliert, die Ausgabe deines Scripts stimmt zu 100% 👍

                        Was ist dies Zahl 83 am Ende deines adaptierten (Limit 100) Skripts?

                        metaxaM 1 Antwort Letzte Antwort
                        0
                        • metaxaM metaxa

                          @bananajoe sagte in Zurücksetzen einzelner Datenpunkte im SQL-Adapter:

                          Ich würde das Log auf der Shell nehmen

                          Da kriege ich nicht alle Informationen wie im Log direkt unter ioB logs. Das schaut so aus:

                          
                          javascript.0
                          2023-02-02 23:33:13.444	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: 83 Objects found, that not exist anymore in ioBroker, sum of items in tables: 7 776
                          
                          javascript.0
                          2023-02-02 23:33:13.397	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 106 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.LEQ1315252.2.CURRENT'
                          
                          javascript.0
                          2023-02-02 23:33:13.245	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 105 (type: 0) -> number: 3, string: 0, bool: 0 | ioBroker id: 'alias.0. nordtemp.ACTUAL'
                          
                          javascript.0
                          2023-02-02 23:33:13.199	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 104 (type: 1) -> number: 0, string: 100, bool: 0 | ioBroker id: 'squeezeboxrpc.0.Players.Moode-Bad.cmdPlayFavorite'
                          
                          javascript.0
                          2023-02-02 23:33:13.117	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 103 (type: 1) -> number: 0, string: 100, bool: 0 | ioBroker id: 'device-reminder.0.Brauchwasserpumpe.messageDP'
                          
                          javascript.0
                          2023-02-02 23:33:12.902	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 102 (type: 1) -> number: 0, string: 100, bool: 0 | ioBroker id: 'device-reminder.0.Dishwasher.messageDP'
                          
                          javascript.0
                          2023-02-02 23:33:12.804	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 100 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'sonoff.0.Kueche-LED-Power-32.ENERGY_Yesterday'
                          
                          javascript.0
                          2023-02-02 23:33:12.729	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 99 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'sonoff.0.Kueche-LED-Power-32.ENERGY_Total'
                          
                          javascript.0
                          2023-02-02 23:33:12.571	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 98 (type: 2) -> number: 0, string: 0, bool: 100 | ioBroker id: 'g-homa.0.1E493A.state'
                          
                          javascript.0
                          2023-02-02 23:33:12.523	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 97 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'sonoff.0.Gosund01-POW-Dishwasher.ENERGY_ApparentPower'
                          
                          javascript.0
                          2023-02-02 23:33:12.480	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 96 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'sonoff.0.Gosund01-POW-Dishwasher.ENERGY_Power'
                          
                          javascript.0
                          2023-02-02 23:33:12.342	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 95 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'sonoff.0.Gosund01-POW-Dishwasher.ENERGY_Current'
                          
                          javascript.0
                          2023-02-02 23:33:12.213	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 94 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'javascript.0.Wetterstation.Info.Letzte_Regenmenge'
                          
                          javascript.0
                          2023-02-02 23:33:12.022	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 92 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'javascript.0.Wetterstation.Regenrate'
                          
                          javascript.0
                          2023-02-02 23:33:11.922	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 90 (type: 1) -> number: 0, string: 100, bool: 0 | ioBroker id: 'javascript.0.Junkers.Solar.solarPump'
                          
                          javascript.0
                          2023-02-02 23:33:11.762	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 89 (type: 1) -> number: 0, string: 100, bool: 0 | ioBroker id: 'javascript.0.Wetterstation.Regenstatus'
                          
                          javascript.0
                          2023-02-02 23:33:11.579	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 88 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'javascript.0.Wetterstation.Regen_Tag'
                          
                          javascript.0
                          2023-02-02 23:33:11.425	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 87 (type: 2) -> number: 0, string: 0, bool: 100 | ioBroker id: 'hm-rpc.0.LEQ0073059.1.WORKING'
                          
                          javascript.0
                          2023-02-02 23:33:11.340	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 86 (type: 1) -> number: 0, string: 100, bool: 0 | ioBroker id: 'mqtt.0.ESP1-Garage-Poolsteuerung.status.LWT'
                          
                          javascript.0
                          2023-02-02 23:33:11.221	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 85 (type: 1) -> number: 0, string: 7, bool: 0 | ioBroker id: 'hm-rpc.2.CUX2800001.12.TIMER_SET'
                          
                          javascript.0
                          2023-02-02 23:33:11.173	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 84 (type: 1) -> number: 0, string: 7, bool: 0 | ioBroker id: 'hm-rpc.2.CUX2800001.14.TIMER_SET'
                          
                          javascript.0
                          2023-02-02 23:33:11.111	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 83 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'sonoff.0.SONOFF_32_POW.ENERGY_Total'
                          
                          javascript.0
                          2023-02-02 23:33:11.005	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 82 (type: 0) -> number: 78, string: 0, bool: 0 | ioBroker id: 'sonoff.0.SONOFF_32_POW.ENERGY_Yesterday'
                          
                          javascript.0
                          2023-02-02 23:33:10.832	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 81 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.KEQ0965973.2.CURRENT'
                          
                          javascript.0
                          2023-02-02 23:33:10.745	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 80 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.KEQ0965973.2.POWER'
                          
                          javascript.0
                          2023-02-02 23:33:10.536	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 79 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.KEQ0968518.2.CURRENT'
                          
                          javascript.0
                          2023-02-02 23:33:10.380	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 75 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.LEQ1275993.2.CURRENT'
                          
                          javascript.0
                          2023-02-02 23:33:10.279	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 74 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.LEQ1275993.2.POWER'
                          
                          javascript.0
                          2023-02-02 23:33:09.943	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 73 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.LEQ0532863.2.CURRENT'
                          
                          javascript.0
                          2023-02-02 23:33:09.838	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 72 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.LEQ0532863.2.POWER'
                          
                          javascript.0
                          2023-02-02 23:33:09.674	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 70 (type: 2) -> number: 0, string: 0, bool: 100 | ioBroker id: 'hm-rpc.0.IEQ0168663.4.STATE'
                          
                          javascript.0
                          2023-02-02 23:33:09.617	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 69 (type: 2) -> number: 0, string: 0, bool: 100 | ioBroker id: 'a_andreas.0.eigene_dp.Bewegung.Aqara_01_Bewegung'
                          
                          javascript.0
                          2023-02-02 23:33:09.543	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 66 (type: 1) -> number: 0, string: 100, bool: 0 | ioBroker id: 'weatherunderground.0.forecast.0d.state'
                          
                          javascript.0
                          2023-02-02 23:33:09.469	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 64 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'sonoff.0.SONOFF_31.ENERGY_Power'
                          
                          javascript.0
                          2023-02-02 23:33:09.310	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 63 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'sonoff.0.SONOFF_30.ENERGY_Power'
                          
                          javascript.0
                          2023-02-02 23:33:09.026	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 62 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'proxmox.0.qemu_ioBroker-Prod.mem_lev'
                          
                          javascript.0
                          2023-02-02 23:33:08.735	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 61 (type: 2) -> number: 0, string: 0, bool: 100 | ioBroker id: 'g-homa.0.1BBAC0.state'
                          
                          javascript.0
                          2023-02-02 23:33:08.587	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 60 (type: 0) -> number: 1, string: 0, bool: 0 | ioBroker id: 'sonoff.0.SONOFF_30.ENERGY_Today'
                          
                          javascript.0
                          2023-02-02 23:33:08.332	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 59 (type: 0) -> number: 97, string: 0, bool: 0 | ioBroker id: 'sonoff.0.SONOFF_30.ENERGY_Yesterday'
                          
                          javascript.0
                          2023-02-02 23:33:08.223	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 58 (type: 0) -> number: 1, string: 0, bool: 0 | ioBroker id: 'sonoff.0.SONOFF_31.ENERGY_Today'
                          
                          javascript.0
                          2023-02-02 23:33:08.041	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 57 (type: 0) -> number: 78, string: 0, bool: 0 | ioBroker id: 'sonoff.0.SONOFF_31.ENERGY_Yesterday'
                          
                          javascript.0
                          2023-02-02 23:33:07.783	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 56 (type: 2) -> number: 0, string: 0, bool: 100 | ioBroker id: 'hm-rpc.1.JEQ0148994.13.STATE'
                          
                          javascript.0
                          2023-02-02 23:33:07.642	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 55 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.KEQ0968518.2.POWER'
                          
                          javascript.0
                          2023-02-02 23:33:07.452	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 54 (type: 1) -> number: 0, string: 100, bool: 0 | ioBroker id: 'a_andreas.0.eigene_dp.MatrixDisplay.Matrix'
                          
                          javascript.0
                          2023-02-02 23:33:07.022	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 53 (type: 2) -> number: 0, string: 4, bool: 100 | ioBroker id: 'g-homa.0.22604E.state'
                          
                          javascript.0
                          2023-02-02 23:33:06.663	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 52 (type: 1) -> number: 0, string: 100, bool: 0 | ioBroker id: 'mqtt.0.ESP1-Garage-Poolsteuerung.Poolwasser.Beckentemperatur'
                          
                          javascript.0
                          2023-02-02 23:33:06.579	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 51 (type: 1) -> number: 0, string: 100, bool: 0 | ioBroker id: 'mqtt.0.ESP0-Kueche-ext-Eiskasten.Gefrierteil.Temperatur'
                          
                          javascript.0
                          2023-02-02 23:33:06.470	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 50 (type: 1) -> number: 0, string: 100, bool: 0 | ioBroker id: 'mqtt.0.ESP0-Kueche-ext-Eiskasten.Kühlschrank.Temperatur'
                          
                          javascript.0
                          2023-02-02 23:33:06.351	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 49 (type: 1) -> number: 0, string: 100, bool: 0 | ioBroker id: 'mqtt.0.ESP-Kueche-ext-Eiskasten.Gefrierteil.Temperatur'
                          
                          javascript.0
                          2023-02-02 23:33:06.219	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 48 (type: 1) -> number: 0, string: 100, bool: 0 | ioBroker id: 'mqtt.0.ESP-Kueche-ext-Eiskasten.Kühlschrank.Temperatur'
                          
                          javascript.0
                          2023-02-02 23:33:06.136	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 47 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'fullybrowser.0.192_168_0_121.Info.batteryLevel'
                          
                          javascript.0
                          2023-02-02 23:33:06.032	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 46 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'fullybrowser.0.192_168_0_121.Info.motionDetectorState'
                          
                          javascript.0
                          2023-02-02 23:33:05.962	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 45 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.JEQ0194157.1.HUMIDITY'
                          
                          javascript.0
                          2023-02-02 23:33:05.867	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 44 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'mqtt.0.ESP-Garage-Poolsteuerung.Poolwasser.Beckentemperatur.neustarts_anzahl'
                          
                          javascript.0
                          2023-02-02 23:33:05.794	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 43 (type: 1) -> number: 0, string: 100, bool: 0 | ioBroker id: 'mqtt.0.ESP-Garage-Poolsteuerung.status.LWT'
                          
                          javascript.0
                          2023-02-02 23:33:05.661	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 42 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'mqtt.0.ESP-Garage-Poolsteuerung.Poolwasser.Beckentemperatur'
                          
                          javascript.0
                          2023-02-02 23:33:05.605	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 40 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'mqtt.0.WM_D1_M_Pool.Poolsteuerung.Temperatur_Pool_Mitte'
                          
                          javascript.0
                          2023-02-02 23:33:05.509	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 38 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'paw.0.TabAKarli.info.battery.level'
                          
                          javascript.0
                          2023-02-02 23:33:05.258	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 37 (type: 2) -> number: 0, string: 0, bool: 100 | ioBroker id: 'paw.0.TabAKarli.info.info.lcd'
                          
                          javascript.0
                          2023-02-02 23:33:05.015	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 36 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'landroid-s.0.mower.status'
                          
                          javascript.0
                          2023-02-02 23:33:04.937	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 35 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'landroid-s.0.calendar.mowTimeExtend'
                          
                          javascript.0
                          2023-02-02 23:33:04.711	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 34 (type: 2) -> number: 0, string: 0, bool: 100 | ioBroker id: 'landroid-s.0.mower.batteryCharging'
                          
                          javascript.0
                          2023-02-02 23:33:04.625	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 33 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'landroid-s.0.mower.batteryState'
                          
                          javascript.0
                          2023-02-02 23:33:04.423	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 32 (type: 1) -> number: 0, string: 100, bool: 0 | ioBroker id: 'yamaha.0.Realtime.raw'
                          
                          javascript.0
                          2023-02-02 23:33:03.996	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 28 (type: 2) -> number: 0, string: 0, bool: 100 | ioBroker id: 'hm-rpc.1.JEQ0310843.16.STATE'
                          
                          javascript.0
                          2023-02-02 23:33:03.850	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 26 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'paw.0.Susi_Tab3.info.battery.level'
                          
                          javascript.0
                          2023-02-02 23:33:03.788	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 25 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.OEQ0301876.1.TEMPERATURE'
                          
                          javascript.0
                          2023-02-02 23:33:03.616	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 22 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.MEQ1598807.1.TEMPERATURE'
                          
                          javascript.0
                          2023-02-02 23:33:03.427	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 18 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.JEQ0393036.1.TEMPERATURE'
                          
                          javascript.0
                          2023-02-02 23:33:03.231	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 17 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.JEQ0231719.1.TEMPERATURE'
                          
                          javascript.0
                          2023-02-02 23:33:03.154	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 16 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.JEQ0194157.1.TEMPERATURE'
                          
                          javascript.0
                          2023-02-02 23:33:03.092	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 15 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.JEQ0035658.1.TEMPERATURE'
                          
                          javascript.0
                          2023-02-02 23:33:03.021	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 14 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.HEQ0510329.1.TEMPERATURE'
                          
                          javascript.0
                          2023-02-02 23:33:02.964	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 12 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'broadlink2.0.RM:.Temperature'
                          
                          javascript.0
                          2023-02-02 23:33:02.858	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 11 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.FEQ0030851.1.TEMPERATURE'
                          
                          javascript.0
                          2023-02-02 23:33:02.709	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 10 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.JEQ0686511.1.TEMPERATURE'
                          
                          javascript.0
                          2023-02-02 23:33:02.514	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 9 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.OEQ0301876.2.SET_TEMPERATURE'
                          
                          javascript.0
                          2023-02-02 23:33:02.381	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 8 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.OEQ0301876.2.ACTUAL_TEMPERATURE'
                          
                          javascript.0
                          2023-02-02 23:33:02.319	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 7 (type: 2) -> number: 0, string: 0, bool: 100 | ioBroker id: 'hm-rpc.0.NEQ0114995.1.STATE'
                          
                          javascript.0
                          2023-02-02 23:33:02.200	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 6 (type: 2) -> number: 0, string: 0, bool: 100 | ioBroker id: 'hm-rpc.0.IEQ0168663.1.STATE'
                          
                          javascript.0
                          2023-02-02 23:33:01.779	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 5 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.MEQ1598807.2.TEMPERATURE'
                          
                          javascript.0
                          2023-02-02 23:33:01.537	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 4 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'weatherunderground.0.forecast.3h.temp'
                          
                          javascript.0
                          2023-02-02 23:33:01.230	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 3 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'weatherunderground.0.current.temp_c'
                          
                          javascript.0
                          2023-02-02 23:33:01.039	warn	script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 1 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.JEQ0268366.1.HUMIDITY'
                          

                          Hab gleich paar DP kontrolliert, die Ausgabe deines Scripts stimmt zu 100% 👍

                          Was ist dies Zahl 83 am Ende deines adaptierten (Limit 100) Skripts?

                          metaxaM Offline
                          metaxaM Offline
                          metaxa
                          schrieb am zuletzt editiert von
                          #49

                          Habe heute Abend meine ioBroker DB einmal direkt aus mySQL exportiert (unkomprimiert):
                          79066b54-0813-4372-aff6-66407a3b3077-image.png
                          Wird wirklich Zeit da etwas zu unternehmen 😰

                          metaxaM BananaJoeB 2 Antworten Letzte Antwort
                          0
                          • metaxaM metaxa

                            Habe heute Abend meine ioBroker DB einmal direkt aus mySQL exportiert (unkomprimiert):
                            79066b54-0813-4372-aff6-66407a3b3077-image.png
                            Wird wirklich Zeit da etwas zu unternehmen 😰

                            metaxaM Offline
                            metaxaM Offline
                            metaxa
                            schrieb am zuletzt editiert von metaxa
                            #50

                            617c1a65-5b6a-436d-8461-fe1f47edc4c5-image.png

                            Ich habe jetzt über diese Oberfläche paar Datenpunkte gelöscht. Werden nun bei "löschen" auch die vielen Detaileinträge in sources, ts_bool, ts_counter, ts_number, ts_string gelöscht?

                            Ich habe jetzt dein Skript nochmals durchlaufen lassen, ja die ersten gelöschten Datenpunkte werden nicht mehr gefunden 👍

                            @metaxa sagte in Zurücksetzen einzelner Datenpunkte im SQL-Adapter:

                            Ich habe jetzt über diese Oberfläche paar Datenpunkte gelöscht. Werden nun bei "löschen" auch die vielen Detaileinträge in sources, ts_bool, ts_counter, ts_number, ts_string gelöscht?

                            Ich antworte mir mal selbst: Nein, werden nicht gelöscht. Im Falle der ID 1 bleiben sämtliche Einträge in ts_number bestehen.

                            Ich warte bitte auf deine Anweisung, wie ich z.B. alle Einträge der ID lösche.

                            Lieben Dank

                            1 Antwort Letzte Antwort
                            0
                            • metaxaM metaxa

                              Habe heute Abend meine ioBroker DB einmal direkt aus mySQL exportiert (unkomprimiert):
                              79066b54-0813-4372-aff6-66407a3b3077-image.png
                              Wird wirklich Zeit da etwas zu unternehmen 😰

                              BananaJoeB Offline
                              BananaJoeB Offline
                              BananaJoe
                              Most Active
                              schrieb am zuletzt editiert von BananaJoe
                              #51

                              @metaxa was du mit der 83 meinst weis ich nicht - es sind 83 Datenpunkte ohne Fahrschein.
                              Das dein Export 1,2GB groß ist heißt auch nicht viel - die SQL Datei ist eine Textdatei welche die Anweisungen zum Import enthält. Die ist dadurch schon mal größer als die eigentlichen Daten.
                              Allerdings sehe ich da Datenpunkte vom Typ String - das könnten Platzfresser sein wenn diese viele lange Einträge haben.

                              javascript.0 2023-02-02 23:33:12.902 warn script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 102 (type: 1) -> number: 0, string: 100, bool: 0 | ioBroker id: 'device-reminder.0.Dishwasher.messageDP'
                              
                              javascript.0 2023-02-02 23:33:12.804 warn script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 100 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'sonoff.0.Kueche-LED-Power-32.ENERGY_Yesterday'
                              

                              So, die beiden Datenpunkte dort nehme ich als Beispiel.
                              Du musst auf die Shell / in die Bash / per puTTY auf den ioBroker.

                              Dort musst du die Eingabeaufforderung von MySQL starten:

                              mysql -uandreas -p ioBroker
                              

                              -uandreas = Benutzername andreas
                              -p = du willst ein Passwort eingeben
                              ioBroker = Name der Datenbank mit der du dich verbinden willst.
                              Er fragt nach dem Passwort, danach hast du einen Prompt:

                              Welcome to the MariaDB monitor.  Commands end with ; or \g.
                              Your MariaDB connection id is 64731
                              Server version: 10.6.11-MariaDB-0ubuntu0.22.04.1 Ubuntu 22.04
                              
                              Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
                              
                              Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
                              
                              MariaDB [iobroker]>
                              

                              Bei mir steht MariaDB, bei dir eventuell auch oder MySQL, die funktionieren beide gleich.
                              [iobroker] heisst das die Datenbank ausgewählt ist.

                              Kleiner Test:

                              MariaDB [iobroker]> show tables;
                              +--------------------+
                              | Tables_in_iobroker |
                              +--------------------+
                              | datapoints         |
                              | sources            |
                              | ts_bool            |
                              | ts_counter         |
                              | ts_number          |
                              | ts_string          |
                              +--------------------+
                              6 rows in set (0,001 sec)
                              

                              Das sind die Tabellen in denen die Daten liegen. Aus denen können wir die Daten mit den obigen Informationen aus dem Log löschen:

                              javascript.0 2023-02-02 23:33:12.902 warn script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 102 (type: 1) -> number: 0, string: 100, bool: 0 | ioBroker id: 'device-reminder.0.Dishwasher.messageDP'
                              

                              device-reminder.0.Dishwasher.messageDP hat in der Datenbank die id 102 (DB id: 102 (type: 1))
                              Und Daten in der ts_string Tabelle (number: 0, string: 100, bool: 0)

                              kurze Kontrolle:

                              MariaDB [iobroker]> select * from datapoints where id=102;
                              +-----+----------------------------------------+------+
                              | id  | name                                   | type |
                              +-----+----------------------------------------+------+
                              | 102 | device-reminder.0.Dishwasher.messageDP |    1 |
                              +-----+----------------------------------------+------+
                              1 row in set (0,001 sec)
                              

                              Ok, stimmt, also löschen der Werte aus ts_string und aus datapoints:

                              delete from ts_bool where id=102;
                              delete from datapoints where id=102; 
                              

                              Beim ersten Befehl sollte in der Zusammenfassung stehen wie viele Datensätze er gelöscht hat,
                              beim 2. Befehl sollte es immer 1 (einer) sein weil es ja nur einen Eintrag gibt.

                              Der erste Befehl ist es der dein System in die Knie zwingen kann wenn er dort viel löschen muss.
                              Dazu komme ich weiter unten noch einmal.

                              javascript.0 2023-02-02 23:33:12.804 warn script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 100 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'sonoff.0.Kueche-LED-Power-32.ENERGY_Yesterday'
                              

                              sonoff.0.Kueche-LED-Power-32.ENERGY_Yesterday hat in der Datenbank die id 100 (DB id: 100 (type: 01))
                              Und Daten in der ts_number Tabelle (number: 100, string: 0, bool: 0)

                              Beim löschen eben die andere Tabelle:

                              delete from ts_number where id=100;
                              delete from datapoints where id=100; 
                              

                              und bei bool wäre es eben ts_bool
                              Wenn du mit allen fertig bist kannst du per exit die Konsole wieder verlassen.

                              So, nun zu dem "in die Knie gehen".
                              Variante 1 ist den ioBroker vorher zu stoppen

                              sudo systemctl stop iobroker
                              

                              Dann das löschen machen. Wenn es länger dauert, dauert es eben länger - Abwarten bis der Prompt wiederkommt. Das wird meist recht flott gehen - aber du wirst da ein oder mehrere Monster haben wo es dauern wird.

                              Variante 2 ist das löschen zu limitieren:

                              delete from ts_number where id=100 limit 5000;
                              

                              würde nur die ersten 5.000 Datensätze löschen. Dabei wird das System / ein oder mehrere CPU-Kerne kurz auf Anschlag gehen und der Prompt kommt dann wieder. Als Ergebnis sollte da so etwas stehen:

                              5000 row in set (4,321 sec)
                              

                              Ist die Zahl kleiner als dein Limit oder sogar 0 hast du alles gelöscht in der Tabelle. Ansonsten musst du das wiederholen.

                              Ob 5000 oder 50 so der 100.000 die richtige Zahl für dein System ist kann ich dir nicht sagen. Vermutlich kannst du bei ts_number eher höher greifen, bei ts_string erst einmal niedriger.
                              Meine Geräte die einmal die Minute liefern mit 6 Monate Aufzeichnung haben 42.000 Datensätze.
                              Einer der Temperaturfühler hat alle 5 Sekunden gemeldet ... 280.000
                              der Shelly 3EM liefert alle 3 Sekunden und hat bei mir 2.673.105 Datensätze - pro Phase.

                              Beim Abfragen des letzteren ging bei mir die CPU für einen Moment auf 100%. (aber nicht auf allen Kernen)
                              Wie viele es sind könntest du mit dem Befehl hier testen, der ging schon schneller:

                              MariaDB [iobroker]> select COUNT(*) from ts_number where id=58;
                              +----------+
                              | COUNT(*) |
                              +----------+
                              |  2673128 |
                              +----------+
                              1 row in set (3,609 sec)
                              

                              Halt 4 Sekunden vollgas. Wenn ich die Abfrage wie im Skript mache (select COUNT(*) from ts_number where id=58;) dann sind es schon ca. 11 Sekunden, also 3 mal so "schlimm"

                              ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 44TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=157 Tasmota/Shelly || >=88 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 900/750W kaskadiert || Creality CR-10 SE 3D-Drucker

                              metaxaM 1 Antwort Letzte Antwort
                              1
                              • BananaJoeB BananaJoe

                                @metaxa was du mit der 83 meinst weis ich nicht - es sind 83 Datenpunkte ohne Fahrschein.
                                Das dein Export 1,2GB groß ist heißt auch nicht viel - die SQL Datei ist eine Textdatei welche die Anweisungen zum Import enthält. Die ist dadurch schon mal größer als die eigentlichen Daten.
                                Allerdings sehe ich da Datenpunkte vom Typ String - das könnten Platzfresser sein wenn diese viele lange Einträge haben.

                                javascript.0 2023-02-02 23:33:12.902 warn script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 102 (type: 1) -> number: 0, string: 100, bool: 0 | ioBroker id: 'device-reminder.0.Dishwasher.messageDP'
                                
                                javascript.0 2023-02-02 23:33:12.804 warn script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 100 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'sonoff.0.Kueche-LED-Power-32.ENERGY_Yesterday'
                                

                                So, die beiden Datenpunkte dort nehme ich als Beispiel.
                                Du musst auf die Shell / in die Bash / per puTTY auf den ioBroker.

                                Dort musst du die Eingabeaufforderung von MySQL starten:

                                mysql -uandreas -p ioBroker
                                

                                -uandreas = Benutzername andreas
                                -p = du willst ein Passwort eingeben
                                ioBroker = Name der Datenbank mit der du dich verbinden willst.
                                Er fragt nach dem Passwort, danach hast du einen Prompt:

                                Welcome to the MariaDB monitor.  Commands end with ; or \g.
                                Your MariaDB connection id is 64731
                                Server version: 10.6.11-MariaDB-0ubuntu0.22.04.1 Ubuntu 22.04
                                
                                Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
                                
                                Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
                                
                                MariaDB [iobroker]>
                                

                                Bei mir steht MariaDB, bei dir eventuell auch oder MySQL, die funktionieren beide gleich.
                                [iobroker] heisst das die Datenbank ausgewählt ist.

                                Kleiner Test:

                                MariaDB [iobroker]> show tables;
                                +--------------------+
                                | Tables_in_iobroker |
                                +--------------------+
                                | datapoints         |
                                | sources            |
                                | ts_bool            |
                                | ts_counter         |
                                | ts_number          |
                                | ts_string          |
                                +--------------------+
                                6 rows in set (0,001 sec)
                                

                                Das sind die Tabellen in denen die Daten liegen. Aus denen können wir die Daten mit den obigen Informationen aus dem Log löschen:

                                javascript.0 2023-02-02 23:33:12.902 warn script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 102 (type: 1) -> number: 0, string: 100, bool: 0 | ioBroker id: 'device-reminder.0.Dishwasher.messageDP'
                                

                                device-reminder.0.Dishwasher.messageDP hat in der Datenbank die id 102 (DB id: 102 (type: 1))
                                Und Daten in der ts_string Tabelle (number: 0, string: 100, bool: 0)

                                kurze Kontrolle:

                                MariaDB [iobroker]> select * from datapoints where id=102;
                                +-----+----------------------------------------+------+
                                | id  | name                                   | type |
                                +-----+----------------------------------------+------+
                                | 102 | device-reminder.0.Dishwasher.messageDP |    1 |
                                +-----+----------------------------------------+------+
                                1 row in set (0,001 sec)
                                

                                Ok, stimmt, also löschen der Werte aus ts_string und aus datapoints:

                                delete from ts_bool where id=102;
                                delete from datapoints where id=102; 
                                

                                Beim ersten Befehl sollte in der Zusammenfassung stehen wie viele Datensätze er gelöscht hat,
                                beim 2. Befehl sollte es immer 1 (einer) sein weil es ja nur einen Eintrag gibt.

                                Der erste Befehl ist es der dein System in die Knie zwingen kann wenn er dort viel löschen muss.
                                Dazu komme ich weiter unten noch einmal.

                                javascript.0 2023-02-02 23:33:12.804 warn script.js.010_Testen.SQL_Datenpunkte_löschen: DB id: 100 (type: 0) -> number: 100, string: 0, bool: 0 | ioBroker id: 'sonoff.0.Kueche-LED-Power-32.ENERGY_Yesterday'
                                

                                sonoff.0.Kueche-LED-Power-32.ENERGY_Yesterday hat in der Datenbank die id 100 (DB id: 100 (type: 01))
                                Und Daten in der ts_number Tabelle (number: 100, string: 0, bool: 0)

                                Beim löschen eben die andere Tabelle:

                                delete from ts_number where id=100;
                                delete from datapoints where id=100; 
                                

                                und bei bool wäre es eben ts_bool
                                Wenn du mit allen fertig bist kannst du per exit die Konsole wieder verlassen.

                                So, nun zu dem "in die Knie gehen".
                                Variante 1 ist den ioBroker vorher zu stoppen

                                sudo systemctl stop iobroker
                                

                                Dann das löschen machen. Wenn es länger dauert, dauert es eben länger - Abwarten bis der Prompt wiederkommt. Das wird meist recht flott gehen - aber du wirst da ein oder mehrere Monster haben wo es dauern wird.

                                Variante 2 ist das löschen zu limitieren:

                                delete from ts_number where id=100 limit 5000;
                                

                                würde nur die ersten 5.000 Datensätze löschen. Dabei wird das System / ein oder mehrere CPU-Kerne kurz auf Anschlag gehen und der Prompt kommt dann wieder. Als Ergebnis sollte da so etwas stehen:

                                5000 row in set (4,321 sec)
                                

                                Ist die Zahl kleiner als dein Limit oder sogar 0 hast du alles gelöscht in der Tabelle. Ansonsten musst du das wiederholen.

                                Ob 5000 oder 50 so der 100.000 die richtige Zahl für dein System ist kann ich dir nicht sagen. Vermutlich kannst du bei ts_number eher höher greifen, bei ts_string erst einmal niedriger.
                                Meine Geräte die einmal die Minute liefern mit 6 Monate Aufzeichnung haben 42.000 Datensätze.
                                Einer der Temperaturfühler hat alle 5 Sekunden gemeldet ... 280.000
                                der Shelly 3EM liefert alle 3 Sekunden und hat bei mir 2.673.105 Datensätze - pro Phase.

                                Beim Abfragen des letzteren ging bei mir die CPU für einen Moment auf 100%. (aber nicht auf allen Kernen)
                                Wie viele es sind könntest du mit dem Befehl hier testen, der ging schon schneller:

                                MariaDB [iobroker]> select COUNT(*) from ts_number where id=58;
                                +----------+
                                | COUNT(*) |
                                +----------+
                                |  2673128 |
                                +----------+
                                1 row in set (3,609 sec)
                                

                                Halt 4 Sekunden vollgas. Wenn ich die Abfrage wie im Skript mache (select COUNT(*) from ts_number where id=58;) dann sind es schon ca. 11 Sekunden, also 3 mal so "schlimm"

                                metaxaM Offline
                                metaxaM Offline
                                metaxa
                                schrieb am zuletzt editiert von metaxa
                                #52

                                @bananajoe sagte in Zurücksetzen einzelner Datenpunkte im SQL-Adapter:

                                Wahnsinn der und vor allem dein Aufwand!

                                Ich hatte nach einer Lösung direkt auf meiner Syno im Web-UI gesucht. iO für paar Stunden lahm zu legen macht Stress zu Hause.

                                1 MyAdmin öffnen und die gewünschte DB auswählen
                                d67403bd-056c-4627-860e-5762c045927f-image.png
                                2 Rechts den Reiter SQL wählen
                                7071a611-ee03-405a-b144-ef3fe849b165-image.png

                                3 Hier kommt dann deine Arbeit nach deinem Skript voll zum Tragen!

                                @bananajoe sagte in Zurücksetzen einzelner Datenpunkte im SQL-Adapter:

                                delete from ts_number where id=100;
                                delete from datapoints where id=100;
                                

                                4 Trockentraining
                                482af665-cf3c-460d-b244-1ef77672509c-image.png

                                5 Ergebnis
                                ea242999-803a-4fad-8bdf-c6c9abf503d6-image.png

                                6 Wenn das Ergebnis plausibel erscheint, anstelle simulieren, rechts mit "OK" löschen.
                                dd874b67-6a59-40cf-ad12-4c41b0de8bc0-image.png

                                1 Antwort Letzte Antwort
                                0
                                • GaspodeG Offline
                                  GaspodeG Offline
                                  Gaspode
                                  schrieb am zuletzt editiert von Gaspode
                                  #53

                                  @bananajoe

                                  Erst noch mal vielen Dank für dein Engagement!

                                  Ich hab das Zählen bzw. Ermitteln optimiert, ich hoffe es ist OK, wenn ich in dem Script Änderungen mache. Ich lade jetzt zum Zählen nicht mehr alle Records, sondern nutze count(*) zum Zählen. Dann muss ioBroker intern keine riesigen Dictionaries aufbauen. Bei mir dauert das Ermitteln so nur noch ein paar Sekunden und es scheint zu stimmen.

                                  // SQL_Delete_Dead_Objects
                                  // V0.5
                                  //
                                  // Changelog:
                                  // ----------
                                  // 10.08.2019 V0.1   Scrounger   erste Version welche nicht mehr existierende Datenpunkte anzeigt           https://forum.iobroker.net/post/289821
                                  // 03.05.2022 V0.2   andi2055    erweitert das die Daten auch aus der Datenbank gelöscht werden             https://forum.iobroker.net/post/798291
                                  // 01.02.2023 V0.3   BananaJoe   umgestellt das nun Datenpunkte ohne SQL-Protokollierung gefunden werden    https://forum.iobroker.net/post/939101
                                  // 02.02.2023 V0.4   BananaJoe   SQL-Instanz Konfigurierbar / Datenbankname konfigurierbar
                                  // 03.02.2023 V0.5   Gaspode     Speicherverbrauch beim Zählen optimiert durch Verwendung von count(*)
                                  
                                  // Einstellungen:
                                  // Hier das löschen einschalten! false = nur anzeigen / true = anzeigen und wirklich löschen
                                  const activate_delete = false;
                                  
                                  // Name der SQL-Instanz, normalerweiser sql.0
                                  const sql_instance = 'sql.0';
                                  // Name der SQL-Datenbank - Groß und Kleinschreibung beachten!
                                  const sql_dbname = 'iobroker';
                                  
                                  // Funktion zum Suchen und Löschen
                                  async function wartung() {
                                      try {
                                          // Alle Datenpunkte holen bei welchen die SQL-Protokollierung aktiv ist:
                                          let datapointsActiveArray = new Array();
                                          let datapointsActiceStrings = "";
                                          await sendTo(sql_instance, 'getEnabledDPs', {}, function (result) {
                                              Object.entries(result).forEach((entry) => {
                                                  const [key, value] = entry;
                                                  //console.log(`${key}`);
                                                  datapointsActiceStrings = datapointsActiceStrings + `${key}` + ";";
                                              });
                                              //console.log(datapointsActiceStrings);
                                              datapointsActiveArray = datapointsActiceStrings.split(';');
                                          });
                                  
                                          // alle Datenpunkte aus Db holen
                                          let datapoints = await getQueryResult(`SELECT name, id, type FROM ${sql_dbname}.datapoints`);
                                          if (datapoints) {
                                              let count = 0;
                                              let sum = 0;
                                  
                                              // Datenpunkte durchlaufen
                                              for (const datapoint of datapoints) {
                                                  // prüfen ob kein Objekt in ioBroker existiert
                                                  // if (!getObject(datapoint.name)) {
                                  
                                                  // prüfen ob SQL-Protokollierung nicht aktiv ist
                                                  if (!datapointsActiveArray.includes(datapoint.name)) {
                                                      count++;
                                  
                                                      // Daten des Datenpunktes in Tabelle 'ts_bool' zählen
                                                      let countBool = 0;
                                                      let booleanTableItems = await getQueryResult(`SELECT count(*) as cnt FROM ${sql_dbname}.ts_bool WHERE id = ${datapoint.id}`);
                                                      if (booleanTableItems && booleanTableItems[0].cnt > 0) {
                                                          countBool = booleanTableItems[0].cnt;
                                                          if (activate_delete) {
                                                              sendTo(sql_instance, 'query', `DELETE FROM ${sql_dbname}.ts_bool WHERE id = ${datapoint.id}`, function (result) {
                                                                  if (result.error) {
                                                                      console.error(result.error);
                                                                  } else {
                                                                      // show result
                                                                      console.log('Rows: ' + JSON.stringify(result.result));
                                                                  }
                                                              });
                                                          }
                                                      }
                                  
                                                      // Daten des Datenpunktes in Tabelle 'ts_number' zählen
                                                      let countNumber = 0;
                                                      let numberTableItems = await getQueryResult(`SELECT count(*) as cnt FROM ${sql_dbname}.ts_number WHERE id = ${datapoint.id}`);
                                                      if (numberTableItems && numberTableItems[0].cnt > 0) {
                                                          countNumber = numberTableItems[0].cnt;
                                                          if (activate_delete) {
                                                              sendTo(sql_instance, 'query', `DELETE FROM ${sql_dbname}.ts_number WHERE id = ${datapoint.id}`, function (result) {
                                                                  if (result.error) {
                                                                      console.error(result.error);
                                                                  } else {
                                                                      // show result
                                                                      console.log('Rows: ' + JSON.stringify(result.result));
                                                                  }
                                                              });
                                                          }
                                                      }
                                  
                                                      // Daten des Datenpunktes in Tabelle 'ts_string' zählen
                                                      let countString = 0;
                                  
                                                      let stringTableItems = await getQueryResult(`SELECT count(*) as cnt FROM ${sql_dbname}.ts_string WHERE id = ${datapoint.id}`);
                                  
                                                      if (stringTableItems && stringTableItems[0].cnt > 0) {
                                  
                                                          countString = stringTableItems[0].cnt;
                                  
                                                          if (activate_delete) {
                                                              sendTo(sql_instance, 'query', `DELETE FROM ${sql_dbname}.ts_string WHERE id = ${datapoint.id}`, function (result) {
                                                                  if (result.error) {
                                                                      console.error(result.error);
                                                                  } else {
                                                                      // show result
                                                                      console.log('Rows: ' + JSON.stringify(result.result));
                                                                  }
                                                              });
                                                          }
                                                      }
                                  
                                                      if (activate_delete) {
                                                          sendTo(sql_instance, 'query', `DELETE FROM ${sql_dbname}.datapoints WHERE id = ${datapoint.id}`, function (result) {
                                                              if (result.error) {
                                                                  console.error(result.error);
                                                              } else {
                                                                  // show result
                                                                  console.log('Rows: ' + JSON.stringify(result.result));
                                                              }
                                                          });
                                                      }
                                  
                                                      console.warn(`DB id: ${datapoint.id} (type: ${datapoint.type}) -> number: ${countNumber}, string: ${countString}, bool: ${countBool} | ioBroker id: '${datapoint.name}'`);
                                                      sum = sum + countBool + countNumber + countString;
                                                  }
                                              }
                                              console.warn(`${count} Objects found, that not exist anymore in ioBroker, sum of items in tables: ${sum.toLocaleString().replace(/,/g, ".")}`);
                                          }
                                      } catch (err) {
                                          console.error(`[wartung] error: ${err.message}`);
                                          console.error(`[wartung] stack: ${err.stack}`);
                                      }
                                  }
                                  
                                  async function getQueryResult(query) {
                                      return new Promise((resolve, reject) => {
                                          sendTo(sql_instance, 'query', query, function (result) {
                                              if (!result.error) {
                                                  resolve(result.result);
                                              } else {
                                                  resolve(null);
                                              }
                                          });
                                      });
                                  }
                                  
                                  wartung();
                                  

                                  Jetzt wäre es noch toll, wenn man einbeziehen könnte, ob für ein State ein Alias vergeben wurde.

                                  metaxaM BananaJoeB 2 Antworten Letzte Antwort
                                  2
                                  • GaspodeG Gaspode

                                    @bananajoe

                                    Erst noch mal vielen Dank für dein Engagement!

                                    Ich hab das Zählen bzw. Ermitteln optimiert, ich hoffe es ist OK, wenn ich in dem Script Änderungen mache. Ich lade jetzt zum Zählen nicht mehr alle Records, sondern nutze count(*) zum Zählen. Dann muss ioBroker intern keine riesigen Dictionaries aufbauen. Bei mir dauert das Ermitteln so nur noch ein paar Sekunden und es scheint zu stimmen.

                                    // SQL_Delete_Dead_Objects
                                    // V0.5
                                    //
                                    // Changelog:
                                    // ----------
                                    // 10.08.2019 V0.1   Scrounger   erste Version welche nicht mehr existierende Datenpunkte anzeigt           https://forum.iobroker.net/post/289821
                                    // 03.05.2022 V0.2   andi2055    erweitert das die Daten auch aus der Datenbank gelöscht werden             https://forum.iobroker.net/post/798291
                                    // 01.02.2023 V0.3   BananaJoe   umgestellt das nun Datenpunkte ohne SQL-Protokollierung gefunden werden    https://forum.iobroker.net/post/939101
                                    // 02.02.2023 V0.4   BananaJoe   SQL-Instanz Konfigurierbar / Datenbankname konfigurierbar
                                    // 03.02.2023 V0.5   Gaspode     Speicherverbrauch beim Zählen optimiert durch Verwendung von count(*)
                                    
                                    // Einstellungen:
                                    // Hier das löschen einschalten! false = nur anzeigen / true = anzeigen und wirklich löschen
                                    const activate_delete = false;
                                    
                                    // Name der SQL-Instanz, normalerweiser sql.0
                                    const sql_instance = 'sql.0';
                                    // Name der SQL-Datenbank - Groß und Kleinschreibung beachten!
                                    const sql_dbname = 'iobroker';
                                    
                                    // Funktion zum Suchen und Löschen
                                    async function wartung() {
                                        try {
                                            // Alle Datenpunkte holen bei welchen die SQL-Protokollierung aktiv ist:
                                            let datapointsActiveArray = new Array();
                                            let datapointsActiceStrings = "";
                                            await sendTo(sql_instance, 'getEnabledDPs', {}, function (result) {
                                                Object.entries(result).forEach((entry) => {
                                                    const [key, value] = entry;
                                                    //console.log(`${key}`);
                                                    datapointsActiceStrings = datapointsActiceStrings + `${key}` + ";";
                                                });
                                                //console.log(datapointsActiceStrings);
                                                datapointsActiveArray = datapointsActiceStrings.split(';');
                                            });
                                    
                                            // alle Datenpunkte aus Db holen
                                            let datapoints = await getQueryResult(`SELECT name, id, type FROM ${sql_dbname}.datapoints`);
                                            if (datapoints) {
                                                let count = 0;
                                                let sum = 0;
                                    
                                                // Datenpunkte durchlaufen
                                                for (const datapoint of datapoints) {
                                                    // prüfen ob kein Objekt in ioBroker existiert
                                                    // if (!getObject(datapoint.name)) {
                                    
                                                    // prüfen ob SQL-Protokollierung nicht aktiv ist
                                                    if (!datapointsActiveArray.includes(datapoint.name)) {
                                                        count++;
                                    
                                                        // Daten des Datenpunktes in Tabelle 'ts_bool' zählen
                                                        let countBool = 0;
                                                        let booleanTableItems = await getQueryResult(`SELECT count(*) as cnt FROM ${sql_dbname}.ts_bool WHERE id = ${datapoint.id}`);
                                                        if (booleanTableItems && booleanTableItems[0].cnt > 0) {
                                                            countBool = booleanTableItems[0].cnt;
                                                            if (activate_delete) {
                                                                sendTo(sql_instance, 'query', `DELETE FROM ${sql_dbname}.ts_bool WHERE id = ${datapoint.id}`, function (result) {
                                                                    if (result.error) {
                                                                        console.error(result.error);
                                                                    } else {
                                                                        // show result
                                                                        console.log('Rows: ' + JSON.stringify(result.result));
                                                                    }
                                                                });
                                                            }
                                                        }
                                    
                                                        // Daten des Datenpunktes in Tabelle 'ts_number' zählen
                                                        let countNumber = 0;
                                                        let numberTableItems = await getQueryResult(`SELECT count(*) as cnt FROM ${sql_dbname}.ts_number WHERE id = ${datapoint.id}`);
                                                        if (numberTableItems && numberTableItems[0].cnt > 0) {
                                                            countNumber = numberTableItems[0].cnt;
                                                            if (activate_delete) {
                                                                sendTo(sql_instance, 'query', `DELETE FROM ${sql_dbname}.ts_number WHERE id = ${datapoint.id}`, function (result) {
                                                                    if (result.error) {
                                                                        console.error(result.error);
                                                                    } else {
                                                                        // show result
                                                                        console.log('Rows: ' + JSON.stringify(result.result));
                                                                    }
                                                                });
                                                            }
                                                        }
                                    
                                                        // Daten des Datenpunktes in Tabelle 'ts_string' zählen
                                                        let countString = 0;
                                    
                                                        let stringTableItems = await getQueryResult(`SELECT count(*) as cnt FROM ${sql_dbname}.ts_string WHERE id = ${datapoint.id}`);
                                    
                                                        if (stringTableItems && stringTableItems[0].cnt > 0) {
                                    
                                                            countString = stringTableItems[0].cnt;
                                    
                                                            if (activate_delete) {
                                                                sendTo(sql_instance, 'query', `DELETE FROM ${sql_dbname}.ts_string WHERE id = ${datapoint.id}`, function (result) {
                                                                    if (result.error) {
                                                                        console.error(result.error);
                                                                    } else {
                                                                        // show result
                                                                        console.log('Rows: ' + JSON.stringify(result.result));
                                                                    }
                                                                });
                                                            }
                                                        }
                                    
                                                        if (activate_delete) {
                                                            sendTo(sql_instance, 'query', `DELETE FROM ${sql_dbname}.datapoints WHERE id = ${datapoint.id}`, function (result) {
                                                                if (result.error) {
                                                                    console.error(result.error);
                                                                } else {
                                                                    // show result
                                                                    console.log('Rows: ' + JSON.stringify(result.result));
                                                                }
                                                            });
                                                        }
                                    
                                                        console.warn(`DB id: ${datapoint.id} (type: ${datapoint.type}) -> number: ${countNumber}, string: ${countString}, bool: ${countBool} | ioBroker id: '${datapoint.name}'`);
                                                        sum = sum + countBool + countNumber + countString;
                                                    }
                                                }
                                                console.warn(`${count} Objects found, that not exist anymore in ioBroker, sum of items in tables: ${sum.toLocaleString().replace(/,/g, ".")}`);
                                            }
                                        } catch (err) {
                                            console.error(`[wartung] error: ${err.message}`);
                                            console.error(`[wartung] stack: ${err.stack}`);
                                        }
                                    }
                                    
                                    async function getQueryResult(query) {
                                        return new Promise((resolve, reject) => {
                                            sendTo(sql_instance, 'query', query, function (result) {
                                                if (!result.error) {
                                                    resolve(result.result);
                                                } else {
                                                    resolve(null);
                                                }
                                            });
                                        });
                                    }
                                    
                                    wartung();
                                    

                                    Jetzt wäre es noch toll, wenn man einbeziehen könnte, ob für ein State ein Alias vergeben wurde.

                                    metaxaM Offline
                                    metaxaM Offline
                                    metaxa
                                    schrieb am zuletzt editiert von metaxa
                                    #54

                                    @gaspode Cool!
                                    Das Trockentraining dauert bei mir ca. 3 Minuten. Löschen traue ich mich nicht wirklich aus dem iO heraus.

                                    @BananaJoe & @Gaspode
                                    Wäre es möglich am Ende des Trockendurchlaufs eine Liste auszugeben, z.B.:

                                    delete from ts_number where id=10;
                                    delete from datapoints where id=10;
                                    delete from ts_number where id=11;
                                    delete from datapoints where id=11;
                                    delete from ts_string where id=14;
                                    delete from datapoints where id=14;
                                    delete from ts_bool where id=17;
                                    delete from datapoints where id=17;
                                    

                                    LG, mxa

                                    GaspodeG 1 Antwort Letzte Antwort
                                    0
                                    • metaxaM metaxa

                                      @gaspode Cool!
                                      Das Trockentraining dauert bei mir ca. 3 Minuten. Löschen traue ich mich nicht wirklich aus dem iO heraus.

                                      @BananaJoe & @Gaspode
                                      Wäre es möglich am Ende des Trockendurchlaufs eine Liste auszugeben, z.B.:

                                      delete from ts_number where id=10;
                                      delete from datapoints where id=10;
                                      delete from ts_number where id=11;
                                      delete from datapoints where id=11;
                                      delete from ts_string where id=14;
                                      delete from datapoints where id=14;
                                      delete from ts_bool where id=17;
                                      delete from datapoints where id=17;
                                      

                                      LG, mxa

                                      GaspodeG Offline
                                      GaspodeG Offline
                                      Gaspode
                                      schrieb am zuletzt editiert von
                                      #55

                                      @metaxa said in Zurücksetzen einzelner Datenpunkte im SQL-Adapter:

                                      Das Trockentraining dauert bei mir ca. 3 Minuten. Löschen traue ich mich nicht wirklich aus dem iO heraus.

                                      Das Löschen wird durch meine Änderung auch nicht beeinflusst.

                                      metaxaM 1 Antwort Letzte Antwort
                                      1
                                      • GaspodeG Gaspode

                                        @bananajoe

                                        Erst noch mal vielen Dank für dein Engagement!

                                        Ich hab das Zählen bzw. Ermitteln optimiert, ich hoffe es ist OK, wenn ich in dem Script Änderungen mache. Ich lade jetzt zum Zählen nicht mehr alle Records, sondern nutze count(*) zum Zählen. Dann muss ioBroker intern keine riesigen Dictionaries aufbauen. Bei mir dauert das Ermitteln so nur noch ein paar Sekunden und es scheint zu stimmen.

                                        // SQL_Delete_Dead_Objects
                                        // V0.5
                                        //
                                        // Changelog:
                                        // ----------
                                        // 10.08.2019 V0.1   Scrounger   erste Version welche nicht mehr existierende Datenpunkte anzeigt           https://forum.iobroker.net/post/289821
                                        // 03.05.2022 V0.2   andi2055    erweitert das die Daten auch aus der Datenbank gelöscht werden             https://forum.iobroker.net/post/798291
                                        // 01.02.2023 V0.3   BananaJoe   umgestellt das nun Datenpunkte ohne SQL-Protokollierung gefunden werden    https://forum.iobroker.net/post/939101
                                        // 02.02.2023 V0.4   BananaJoe   SQL-Instanz Konfigurierbar / Datenbankname konfigurierbar
                                        // 03.02.2023 V0.5   Gaspode     Speicherverbrauch beim Zählen optimiert durch Verwendung von count(*)
                                        
                                        // Einstellungen:
                                        // Hier das löschen einschalten! false = nur anzeigen / true = anzeigen und wirklich löschen
                                        const activate_delete = false;
                                        
                                        // Name der SQL-Instanz, normalerweiser sql.0
                                        const sql_instance = 'sql.0';
                                        // Name der SQL-Datenbank - Groß und Kleinschreibung beachten!
                                        const sql_dbname = 'iobroker';
                                        
                                        // Funktion zum Suchen und Löschen
                                        async function wartung() {
                                            try {
                                                // Alle Datenpunkte holen bei welchen die SQL-Protokollierung aktiv ist:
                                                let datapointsActiveArray = new Array();
                                                let datapointsActiceStrings = "";
                                                await sendTo(sql_instance, 'getEnabledDPs', {}, function (result) {
                                                    Object.entries(result).forEach((entry) => {
                                                        const [key, value] = entry;
                                                        //console.log(`${key}`);
                                                        datapointsActiceStrings = datapointsActiceStrings + `${key}` + ";";
                                                    });
                                                    //console.log(datapointsActiceStrings);
                                                    datapointsActiveArray = datapointsActiceStrings.split(';');
                                                });
                                        
                                                // alle Datenpunkte aus Db holen
                                                let datapoints = await getQueryResult(`SELECT name, id, type FROM ${sql_dbname}.datapoints`);
                                                if (datapoints) {
                                                    let count = 0;
                                                    let sum = 0;
                                        
                                                    // Datenpunkte durchlaufen
                                                    for (const datapoint of datapoints) {
                                                        // prüfen ob kein Objekt in ioBroker existiert
                                                        // if (!getObject(datapoint.name)) {
                                        
                                                        // prüfen ob SQL-Protokollierung nicht aktiv ist
                                                        if (!datapointsActiveArray.includes(datapoint.name)) {
                                                            count++;
                                        
                                                            // Daten des Datenpunktes in Tabelle 'ts_bool' zählen
                                                            let countBool = 0;
                                                            let booleanTableItems = await getQueryResult(`SELECT count(*) as cnt FROM ${sql_dbname}.ts_bool WHERE id = ${datapoint.id}`);
                                                            if (booleanTableItems && booleanTableItems[0].cnt > 0) {
                                                                countBool = booleanTableItems[0].cnt;
                                                                if (activate_delete) {
                                                                    sendTo(sql_instance, 'query', `DELETE FROM ${sql_dbname}.ts_bool WHERE id = ${datapoint.id}`, function (result) {
                                                                        if (result.error) {
                                                                            console.error(result.error);
                                                                        } else {
                                                                            // show result
                                                                            console.log('Rows: ' + JSON.stringify(result.result));
                                                                        }
                                                                    });
                                                                }
                                                            }
                                        
                                                            // Daten des Datenpunktes in Tabelle 'ts_number' zählen
                                                            let countNumber = 0;
                                                            let numberTableItems = await getQueryResult(`SELECT count(*) as cnt FROM ${sql_dbname}.ts_number WHERE id = ${datapoint.id}`);
                                                            if (numberTableItems && numberTableItems[0].cnt > 0) {
                                                                countNumber = numberTableItems[0].cnt;
                                                                if (activate_delete) {
                                                                    sendTo(sql_instance, 'query', `DELETE FROM ${sql_dbname}.ts_number WHERE id = ${datapoint.id}`, function (result) {
                                                                        if (result.error) {
                                                                            console.error(result.error);
                                                                        } else {
                                                                            // show result
                                                                            console.log('Rows: ' + JSON.stringify(result.result));
                                                                        }
                                                                    });
                                                                }
                                                            }
                                        
                                                            // Daten des Datenpunktes in Tabelle 'ts_string' zählen
                                                            let countString = 0;
                                        
                                                            let stringTableItems = await getQueryResult(`SELECT count(*) as cnt FROM ${sql_dbname}.ts_string WHERE id = ${datapoint.id}`);
                                        
                                                            if (stringTableItems && stringTableItems[0].cnt > 0) {
                                        
                                                                countString = stringTableItems[0].cnt;
                                        
                                                                if (activate_delete) {
                                                                    sendTo(sql_instance, 'query', `DELETE FROM ${sql_dbname}.ts_string WHERE id = ${datapoint.id}`, function (result) {
                                                                        if (result.error) {
                                                                            console.error(result.error);
                                                                        } else {
                                                                            // show result
                                                                            console.log('Rows: ' + JSON.stringify(result.result));
                                                                        }
                                                                    });
                                                                }
                                                            }
                                        
                                                            if (activate_delete) {
                                                                sendTo(sql_instance, 'query', `DELETE FROM ${sql_dbname}.datapoints WHERE id = ${datapoint.id}`, function (result) {
                                                                    if (result.error) {
                                                                        console.error(result.error);
                                                                    } else {
                                                                        // show result
                                                                        console.log('Rows: ' + JSON.stringify(result.result));
                                                                    }
                                                                });
                                                            }
                                        
                                                            console.warn(`DB id: ${datapoint.id} (type: ${datapoint.type}) -> number: ${countNumber}, string: ${countString}, bool: ${countBool} | ioBroker id: '${datapoint.name}'`);
                                                            sum = sum + countBool + countNumber + countString;
                                                        }
                                                    }
                                                    console.warn(`${count} Objects found, that not exist anymore in ioBroker, sum of items in tables: ${sum.toLocaleString().replace(/,/g, ".")}`);
                                                }
                                            } catch (err) {
                                                console.error(`[wartung] error: ${err.message}`);
                                                console.error(`[wartung] stack: ${err.stack}`);
                                            }
                                        }
                                        
                                        async function getQueryResult(query) {
                                            return new Promise((resolve, reject) => {
                                                sendTo(sql_instance, 'query', query, function (result) {
                                                    if (!result.error) {
                                                        resolve(result.result);
                                                    } else {
                                                        resolve(null);
                                                    }
                                                });
                                            });
                                        }
                                        
                                        wartung();
                                        

                                        Jetzt wäre es noch toll, wenn man einbeziehen könnte, ob für ein State ein Alias vergeben wurde.

                                        BananaJoeB Offline
                                        BananaJoeB Offline
                                        BananaJoe
                                        Most Active
                                        schrieb am zuletzt editiert von
                                        #56

                                        @gaspode Cool. Hatte ich auch schon dran gedacht, war mir dann aber zeitlich schon zu spät.
                                        Wir so von mir übernommen

                                        ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 44TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=157 Tasmota/Shelly || >=88 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 900/750W kaskadiert || Creality CR-10 SE 3D-Drucker

                                        1 Antwort Letzte Antwort
                                        0
                                        • GaspodeG Gaspode

                                          @metaxa said in Zurücksetzen einzelner Datenpunkte im SQL-Adapter:

                                          Das Trockentraining dauert bei mir ca. 3 Minuten. Löschen traue ich mich nicht wirklich aus dem iO heraus.

                                          Das Löschen wird durch meine Änderung auch nicht beeinflusst.

                                          metaxaM Offline
                                          metaxaM Offline
                                          metaxa
                                          schrieb am zuletzt editiert von
                                          #57

                                          @Gaspode
                                          Wie meinst du das?
                                          Deine coole Änderung bezieht sich nur auf den Trockendurchlauf?

                                          BananaJoeB GaspodeG 2 Antworten Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          347

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe