Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Zurücksetzen einzelner Datenpunkte im SQL-Adapter

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Zurücksetzen einzelner Datenpunkte im SQL-Adapter

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

      Dieser flow löscht in mysql sämtliche Daten für einen Datenpunkt:

      ! [
      ! {
      ! "id": "ab084bab.23cb88",
      ! "type": "tab",
      ! "label": "Flow 6"
      ! },
      ! {
      ! "id": "4471ac0b.f919f4",
      ! "type": "mysql",
      ! "z": "ab084bab.23cb88",
      ! "mydb": "c5d28ccd.2882a",
      ! "name": "",
      ! "x": 666,
      ! "y": 263,
      ! "wires": [
      ! [
      ! "d48bd259.70ba1"
      ! ]
      ! ]
      ! },
      ! {
      ! "id": "ed4084d0.1e9978",
      ! "type": "inject",
      ! "z": "ab084bab.23cb88",
      ! "name": "",
      ! "topic": "",
      ! "payload": "admin.0.ws333.Temp3",
      ! "payloadType": "str",
      ! "repeat": "",
      ! "crontab": "",
      ! "once": false,
      ! "x": 192,
      ! "y": 255,
      ! "wires": [
      ! [
      ! "25778f27.cc828"
      ! ]
      ! ]
      ! },
      ! {
      ! "id": "d48bd259.70ba1",
      ! "type": "debug",
      ! "z": "ab084bab.23cb88",
      ! "name": "",
      ! "active": true,
      ! "console": "false",
      ! "complete": "false",
      ! "x": 888,
      ! "y": 265,
      ! "wires": []
      ! },
      ! {
      ! "id": "25778f27.cc828",
      ! "type": "template",
      ! "z": "ab084bab.23cb88",
      ! "name": "prepare sql",
      ! "field": "topic",
      ! "fieldType": "msg",
      ! "format": "handlebars",
      ! "syntax": "mustache",
      ! "template": "start transaction; \ndelete from ts_number where id in ( \n SELECT id FROM iobroker.datapoints where name = "{{payload}}"); \ndelete from ts_bool where id in ( \n SELECT id FROM iobroker.datapoints where name = "{{payload}}"); \ndelete from ts_string where id in ( \n SELECT id FROM iobroker.datapoints where name = "{{payload}}"); \ncommit;",
      ! "x": 462,
      ! "y": 257,
      ! "wires": [
      ! [
      ! "4471ac0b.f919f4"
      ! ]
      ! ]
      ! },
      ! {
      ! "id": "c5d28ccd.2882a",
      ! "type": "MySQLdatabase",
      ! "z": "",
      ! "host": "big",
      ! "port": "3306",
      ! "db": "iobroker",
      ! "tz": ""
      ! }
      ! ]
      1803_clipboard02.jpg

      1 Reply Last reply Reply Quote 0
      • D
        dtp last edited by

        Vielen Dank für den Flow. Aber könntest Du oder jemand anderes mir evtl. noch kurz erklären, wie ich das dann für einen meiner Datenpunkte umsetze?

        Möchte ungerne etwas falsch machen.

        Gruß,

        Thorsten

        1 Reply Last reply Reply Quote 0
        • M
          moebius last edited by

          Im dunkelorangen Knoten die DB einstellen, dann den Namen des DP's in den blauen Knoten schreiben und starten…

          1 Reply Last reply Reply Quote 0
          • D
            dtp last edited by

            Alles klar.

            Ich hab da übrigens noch einen recht einfachen Workaround gefunden.

            Wenn man im History-Datenpunkt die Vorhaltezeit auf einen Tag einstellt, dann werden mit dem nächsten Eintrag in die SQL-Datenbank sämtliche Werte, die älter als ein Tag sind, gelöscht.

            996_2017-02-18_08h40_59.png

            Danach kann man dann einfach die Vorhaltezeit wieder auf ein Jahr oder einen anderen Wert stellen.

            Was ich noch gerne hätte, wäre eine Möglichkeit zum Löschen bestimmter Werte eines Datenpunkts. Dazu wäre es super, wenn es in der Tabellenansicht des Datenpunkts eine Löschfunktion für jeden eizelnen Wert gäbe.

            996_2017-02-18_10h23_17.png

            Gruß,

            Thorsten

            1 Reply Last reply Reply Quote 0
            • apollon77
              apollon77 last edited by

              @dtp:

              Wenn man im History-Datenpunkt die Vorhaltezeit auf einen Tag einstellt, dann werden mit dem nächsten Eintrag in die SQL-Datenbank sämtliche Werte, die älter als ein Tag sind, gelöscht. `

              Hehe. Sinnvolle Nutzung der vorhandenen Features 🙂

              @dtp:

              Was ich noch gerne hätte, wäre eine Möglichkeit zum Löschen bestimmter Werte eines Datenpunkts. Dazu wäre es super, wenn es in der Tabellenansicht des Datenpunkts eine Löschfunktion für jeden eizelnen Wert gäbe. `

              AMN besten nschreib es als Idee/Request ins Trello. Dann schauen wir mal ob wir das mal unterbekommen

              1 Reply Last reply Reply Quote 0
              • Scrounger
                Scrounger Developer last edited by

                Hab mal ein kleines skript geschrieben, mit dem geloggt wird, welche Datenpunkte in iobroker nicht mehr vorhanden sind, aber in der Datenbank.
                Hab das ganze mit MySql getestet.

                Achtung: je nachdem wieviele tote Datenpunkte in der Db existieren, kann das skript schon mal ein bissle länger laufen. vollständig durchgelaufen ist es wenn folgende Zeile im log steht:

                javascript.0	2019-08-10 16:39:27.598	warn	script.js.Netzwerk.MySql.Wartung: 294 Objects found, that not exist anymore in ioBroker, sum of items in tables: 1.414.628
                

                Skript:

                async function wartung() {
                    try {
                
                        // alle Datenpunkte aus Db holen
                        let datapoints = await getQueryResult(`SELECT * FROM iobroker.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)) {
                                    count++;
                
                                    // Daten des Datenpunktes in Tabelle 'ts_bool' zählen
                                    let countBool = 0;
                                    let booleanTableItems = await getQueryResult(`SELECT * FROM iobroker.ts_bool WHERE id = ${datapoint.id}`);
                                    if (booleanTableItems && Object.keys(booleanTableItems).length > 0) {
                                        countBool = Object.keys(booleanTableItems).length;
                                    }
                
                                    // Daten des Datenpunktes in Tabelle 'ts_number' zählen
                                    let countNumber = 0;
                                    let numberTableItems = await getQueryResult(`SELECT * FROM iobroker.ts_number WHERE id = ${datapoint.id}`);
                                    if (numberTableItems && Object.keys(numberTableItems).length > 0) {
                                        countNumber = Object.keys(numberTableItems).length;
                                    }
                
                                    // Daten des Datenpunktes in Tabelle 'ts_string' zählen
                                    let countString = 0;
                                    let stringTableItems = await getQueryResult(`SELECT * FROM iobroker.ts_string WHERE id = ${datapoint.id}`);
                                    if (stringTableItems && Object.keys(stringTableItems).length > 0) {
                                        countString = Object.keys(stringTableItems).length;
                                    }
                
                                    log(`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.0', 'query', query, function (result) {
                            if (!result.error) {
                                resolve(result.result);
                            } else {
                                resolve(null);
                            }
                        });
                    });
                }
                
                wartung();
                
                A 1 Reply Last reply Reply Quote 2
                • Thisoft
                  Thisoft last edited by

                  Nur mal so in den Raum geworfen: zu beachten wären dabei auch noch die Alias-Datenpunkte die man ja beim Logging angeben kann...

                  1 Reply Last reply Reply Quote 0
                  • A
                    andi2055 @Scrounger last edited by

                    @scrounger

                    ich habe dein Script ums Löschen von nicht mehr existierenden Datenpunkten erweitert.
                    So konnte ich bei mir über 1Mio überflüssige Datensätze löschen.

                    Vielleicht kann es jemand gebrauchen.

                    Verwendung auf eigene Gefahr! Vorher Backup anfertigen

                    
                    async function wartung() {
                        try {
                    
                            const activate_delete = false;
                     
                            // alle Datenpunkte aus Db holen
                            let datapoints = await getQueryResult(`SELECT * FROM iobroker.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)) {
                                        count++;
                     
                                        // Daten des Datenpunktes in Tabelle 'ts_bool' zählen
                                        let countBool = 0;
                                        let booleanTableItems = await getQueryResult(`SELECT * FROM iobroker.ts_bool WHERE id = ${datapoint.id}`);
                                        if (booleanTableItems && Object.keys(booleanTableItems).length > 0) {
                                            countBool = Object.keys(booleanTableItems).length;
                                            if (activate_delete) { 
                                                sendTo('sql.0', 'query', `DELETE FROM iobroker.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 * FROM iobroker.ts_number WHERE id = ${datapoint.id}`);
                                        if (numberTableItems && Object.keys(numberTableItems).length > 0) {
                                            countNumber = Object.keys(numberTableItems).length;
                                            if (activate_delete) { 
                                                sendTo('sql.0', 'query', `DELETE FROM iobroker.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 * FROM iobroker.ts_string WHERE id = ${datapoint.id}`);
                                        if (stringTableItems && Object.keys(stringTableItems).length > 0) {
                                            countString = Object.keys(stringTableItems).length;
                                            if (activate_delete) { 
                                                sendTo('sql.0', 'query', `DELETE FROM iobroker.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.0', 'query', `DELETE FROM iobroker.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.0', 'query', query, function (result) {
                                if (!result.error) {
                                    resolve(result.result);
                                } else {
                                    resolve(null);
                                }
                            });
                        });
                    }
                     
                    wartung();
                    
                    
                    liv-in-sky B M 3 Replies Last reply Reply Quote 1
                    • liv-in-sky
                      liv-in-sky @andi2055 last edited by

                      @andi2055
                      @Scrounger

                      danke für die scripte

                      ergebnis:

                      127 Objects found, that not exist anymore in ioBroker, sum of items in tables: 68.211
                      
                      1 Reply Last reply Reply Quote 0
                      • K
                        Kueppert last edited by

                        Hallo in die wissende Runde,
                        das Skript werde ich vermutlich nicht für InfluxDB verwenden können? Einfach ausprobieren ist mir zu riskant, hab erst 4 Neuaufsätze hinter mir trotz Proxmox ^^
                        Vielleicht könnte man eine solche Funktion auch in den jeweiligen Adaptern einbauen? Aber das ist etwas für einen anderen thread...
                        Danke euch und vG, Thorsten

                        A 1 Reply Last reply Reply Quote 0
                        • A
                          andi2055 @Kueppert last edited by

                          Ich habe solch eine Aufräum-Funktionalität für den SQL-Adapter angefragt.
                          https://github.com/ioBroker/ioBroker.sql/issues/247

                          Gebt gerne auch dort Feedback, ob ihr so etwas benötigt.
                          Mir sparte das beim täglichem Backup der SQL-DB trotz ZIP über 10MB ein.

                          5G7K created this issue in ioBroker/ioBroker.sql

                          open Cleanup functionality to delete data of not more existing datapoints #247

                          1 Reply Last reply Reply Quote 0
                          • B
                            Borkenkaefer @andi2055 last edited by

                            @andi2055 Heyho,

                            besten Dank für das Script, ich würde es gerne mal ausprobieren weil ich im Log dauernd die Meldung vom SQL Adapter bekomme, dass Datenpunkt xy keinen Wert zurückgibt. Liegt halt daran, dass es die Datenpunkte nicht mehr gibt 🙂

                            Hab das script mal gestartet und es meldet recht schnell Funde, allerdings ist irgendwann Schluss ohne "Abschlussmeldung". Wie lange läuft das denn bei dir so? Hier mittlerweile mehr als eine Stunde ohne weiteres Ergebnis.

                            Danke und Gruß
                            Andreas

                            1 Reply Last reply Reply Quote 0
                            • M
                              mike2712 @andi2055 last edited by

                              @andi2055 hab da mal eine Frage, wo muss dieses Script den ausgeführt werden?

                              A 1 Reply Last reply Reply Quote 0
                              • A
                                andi2055 @mike2712 last edited by

                                @mike2712
                                als Javascript im JS-Adapter anlegen und ausführen

                                @Borkenkaefer
                                Laufzeit ist abhängig von Anzahl der gefundenen Einträge und Anzahl Datensätze. Wenige Sekunden bis Minuten würde ich sagen. Im Log steht dann genau welche Datenpunkte gefunden wurden und wie viele SQL-Werte dazu noch in der DB stehen

                                M 1 Reply Last reply Reply Quote 1
                                • M
                                  mike2712 @andi2055 last edited by mike2712

                                  @andi2055
                                  Super, danke, wollte da immer schon mal etwas aufräumen, kenne mich im Bereich PHPmyAdmin leider gar nicht aus.
                                  Hier ist das Ergebnis von dem Script, was müssten den für ein sinnvolles aufräumen die nächsten Schritte sein?

                                  Würde das erweiterte Script von Dir alles überflüssige aus der Datenbank löschen? Wie mache ich den ein Backup so das ich meine archivierten Daten nicht verlieren würde?

                                  18:41:55.180	info	javascript.0 (158) Stop script script.js.Allgemein.SQL_TEST
                                  18:41:55.183	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 195 (type: 0) -> number: 140294, string: 0, bool: 0 | ioBroker id: 'fritzdect.0.DECT200_116570356042.power'
                                  18:41:55.183	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "fritzdect.0.DECT200_087610475216.present" does not exist
                                  18:41:55.330	info	javascript.0 (158) Start javascript script.js.Allgemein.SQL_TEST
                                  18:41:55.354	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                                  18:41:55.391	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "hm-rpc.0.MEQ0375275.1.LEVEL" does not exist
                                  18:41:56.238	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 34 (type: 0) -> number: 26646, string: 0, bool: 0 | ioBroker id: 'hm-rpc.0.MEQ0375275.1.LEVEL'
                                  18:41:56.239	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "sonoff.0.Sonoff-Steckdose-51.POWER" does not exist
                                  18:41:56.413	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 77 (type: 2) -> number: 0, string: 0, bool: 4789 | ioBroker id: 'fritzdect.0.DECT200_087610475216.present'
                                  18:41:56.414	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "fritzdect.0.DECT200_087610475216.state" does not exist
                                  18:41:56.452	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 44 (type: 2) -> number: 0, string: 0, bool: 4953 | ioBroker id: 'sonoff.0.Sonoff-Steckdose-51.POWER'
                                  18:41:56.455	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "fritzdect.0.DECT200_116570356042.power" does not exist
                                  18:42:02.852	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 195 (type: 0) -> number: 140294, string: 0, bool: 0 | ioBroker id: 'fritzdect.0.DECT200_116570356042.power'
                                  18:42:02.853	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "fritzdect.0.DECT200_087610475216.present" does not exist
                                  18:42:03.095	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 78 (type: 2) -> number: 0, string: 0, bool: 36314 | ioBroker id: 'fritzdect.0.DECT200_087610475216.state'
                                  18:42:03.096	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "fritzdect.0.DECT200_087610475216.power" does not exist
                                  18:42:03.223	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 77 (type: 2) -> number: 0, string: 0, bool: 4789 | ioBroker id: 'fritzdect.0.DECT200_087610475216.present'
                                  18:42:03.228	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "fritzdect.0.DECT200_087610475216.state" does not exist
                                  18:42:06.359	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 78 (type: 2) -> number: 0, string: 0, bool: 36314 | ioBroker id: 'fritzdect.0.DECT200_087610475216.state'
                                  18:42:06.360	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "fritzdect.0.DECT200_087610475216.power" does not exist
                                  18:42:24.748	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 79 (type: 0) -> number: 270994, string: 0, bool: 0 | ioBroker id: 'fritzdect.0.DECT200_087610475216.power'
                                  18:42:24.749	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "fritzdect.0.DECT200_087610475216.temp" does not exist
                                  18:42:25.869	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 79 (type: 0) -> number: 270994, string: 0, bool: 0 | ioBroker id: 'fritzdect.0.DECT200_087610475216.power'
                                  18:42:25.870	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "fritzdect.0.DECT200_087610475216.temp" does not exist
                                  18:42:27.476	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 80 (type: 0) -> number: 30132, string: 0, bool: 0 | ioBroker id: 'fritzdect.0.DECT200_087610475216.temp'
                                  18:42:27.477	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "fritzdect.0.DECT200_116300020276.temp" does not exist
                                  18:42:27.667	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 80 (type: 0) -> number: 30132, string: 0, bool: 0 | ioBroker id: 'fritzdect.0.DECT200_087610475216.temp'
                                  18:42:27.668	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "fritzdect.0.DECT200_116300020276.temp" does not exist
                                  18:42:29.786	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 90 (type: 0) -> number: 39412, string: 0, bool: 0 | ioBroker id: 'fritzdect.0.DECT200_116300020276.temp'
                                  18:42:29.788	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "tradfri.0.L-65537.lightbulb.state" does not exist
                                  18:42:29.975	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 90 (type: 0) -> number: 39412, string: 0, bool: 0 | ioBroker id: 'fritzdect.0.DECT200_116300020276.temp'
                                  18:42:29.976	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "tradfri.0.L-65537.lightbulb.state" does not exist
                                  18:42:30.358	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 102 (type: 2) -> number: 0, string: 0, bool: 2178 | ioBroker id: 'tradfri.0.L-65537.lightbulb.state'
                                  18:42:30.358	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "tradfri.0.L-65539.lightbulb.state" does not exist
                                  18:42:30.369	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 102 (type: 2) -> number: 0, string: 0, bool: 2178 | ioBroker id: 'tradfri.0.L-65537.lightbulb.state'
                                  18:42:30.370	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "tradfri.0.L-65539.lightbulb.state" does not exist
                                  18:42:30.593	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 103 (type: 2) -> number: 0, string: 0, bool: 2177 | ioBroker id: 'tradfri.0.L-65539.lightbulb.state'
                                  18:42:30.594	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "tradfri.0.G-131073.state" does not exist
                                  18:42:30.615	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 103 (type: 2) -> number: 0, string: 0, bool: 2177 | ioBroker id: 'tradfri.0.L-65539.lightbulb.state'
                                  18:42:30.616	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "tradfri.0.G-131073.state" does not exist
                                  18:42:30.741	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 104 (type: 2) -> number: 0, string: 0, bool: 2246 | ioBroker id: 'tradfri.0.G-131073.state'
                                  18:42:30.742	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "tradfri.0.L-65541.lightbulb.state" does not exist
                                  18:42:30.760	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 104 (type: 2) -> number: 0, string: 0, bool: 2246 | ioBroker id: 'tradfri.0.G-131073.state'
                                  18:42:30.761	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "tradfri.0.L-65541.lightbulb.state" does not exist
                                  18:42:30.930	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 105 (type: 2) -> number: 0, string: 0, bool: 2176 | ioBroker id: 'tradfri.0.L-65541.lightbulb.state'
                                  18:42:30.931	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "tradfri.0.G-131074.state" does not exist
                                  18:42:30.934	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 105 (type: 2) -> number: 0, string: 0, bool: 2176 | ioBroker id: 'tradfri.0.L-65541.lightbulb.state'
                                  18:42:30.935	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "tradfri.0.G-131074.state" does not exist
                                  18:42:31.119	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 106 (type: 2) -> number: 0, string: 0, bool: 2248 | ioBroker id: 'tradfri.0.G-131074.state'
                                  18:42:31.122	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "tradfri.0.G-131075.state" does not exist
                                  18:42:31.138	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 106 (type: 2) -> number: 0, string: 0, bool: 2248 | ioBroker id: 'tradfri.0.G-131074.state'
                                  18:42:31.138	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "tradfri.0.G-131075.state" does not exist
                                  18:42:31.402	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 107 (type: 2) -> number: 0, string: 0, bool: 2167 | ioBroker id: 'tradfri.0.G-131075.state'
                                  18:42:31.403	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "MeineObjekte.0.Allgemein.Handy_Anwesend" does not exist
                                  18:42:31.410	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 107 (type: 2) -> number: 0, string: 0, bool: 2167 | ioBroker id: 'tradfri.0.G-131075.state'
                                  18:42:31.412	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "MeineObjekte.0.Allgemein.Handy_Anwesend" does not exist
                                  18:42:31.936	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 110 (type: 2) -> number: 0, string: 0, bool: 4795 | ioBroker id: 'MeineObjekte.0.Allgemein.Handy_Anwesend'
                                  18:42:31.937	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "fritzdect.0.DECT200_116300011906.state" does not exist
                                  18:42:31.975	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 110 (type: 2) -> number: 0, string: 0, bool: 4795 | ioBroker id: 'MeineObjekte.0.Allgemein.Handy_Anwesend'
                                  18:42:31.976	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "fritzdect.0.DECT200_116300011906.state" does not exist
                                  18:42:34.222	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 112 (type: 2) -> number: 0, string: 0, bool: 33197 | ioBroker id: 'fritzdect.0.DECT200_116300011906.state'
                                  18:42:34.222	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "fritzdect.0.DECT200_116300011906.power" does not exist
                                  18:42:34.236	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 112 (type: 2) -> number: 0, string: 0, bool: 33197 | ioBroker id: 'fritzdect.0.DECT200_116300011906.state'
                                  18:42:34.237	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "fritzdect.0.DECT200_116300011906.power" does not exist
                                  18:43:04.825	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 113 (type: 0) -> number: 350196, string: 0, bool: 0 | ioBroker id: 'fritzdect.0.DECT200_116300011906.power'
                                  18:43:04.827	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "MeineObjekte.0.Tanel.Internet.Berechnung.Zeit_Soll_MM" does not exist
                                  18:43:05.480	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 113 (type: 0) -> number: 350196, string: 0, bool: 0 | ioBroker id: 'fritzdect.0.DECT200_116300011906.power'
                                  18:43:05.480	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "MeineObjekte.0.Tanel.Internet.Berechnung.Zeit_Soll_MM" does not exist
                                  18:43:05.635	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 187 (type: 1) -> number: 4, string: 1, bool: 0 | ioBroker id: 'MeineObjekte.0.Tanel.Internet.Berechnung.Zeit_Soll_MM'
                                  18:43:05.636	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "fritzdect.0.DECT200_116300020276.state" does not exist
                                  18:43:05.789	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 187 (type: 1) -> number: 4, string: 1, bool: 0 | ioBroker id: 'MeineObjekte.0.Tanel.Internet.Berechnung.Zeit_Soll_MM'
                                  18:43:05.789	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "fritzdect.0.DECT200_116300020276.state" does not exist
                                  18:43:08.464	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 116 (type: 2) -> number: 0, string: 0, bool: 33178 | ioBroker id: 'fritzdect.0.DECT200_116300020276.state'
                                  18:43:08.465	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "fritzdect.0.DECT200_116300020276.power" does not exist
                                  18:43:08.520	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 116 (type: 2) -> number: 0, string: 0, bool: 33178 | ioBroker id: 'fritzdect.0.DECT200_116300020276.state'
                                  18:43:08.520	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "fritzdect.0.DECT200_116300020276.power" does not exist
                                  18:44:05.666	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 117 (type: 0) -> number: 496674, string: 0, bool: 0 | ioBroker id: 'fritzdect.0.DECT200_116300020276.power'
                                  18:44:05.668	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "tr-064.0.devices.Sonoff-Steckdose-51" does not exist
                                  18:44:07.549	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 117 (type: 0) -> number: 496674, string: 0, bool: 0 | ioBroker id: 'fritzdect.0.DECT200_116300020276.power'
                                  18:44:07.550	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "tr-064.0.devices.Sonoff-Steckdose-51" does not exist
                                  18:44:07.989	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 123 (type: 2) -> number: 0, string: 0, bool: 4765 | ioBroker id: 'tr-064.0.devices.Sonoff-Steckdose-51'
                                  18:44:07.990	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "tr-064.0.devices.Home-Echo-Dot-Arbeitszimmer" does not exist
                                  18:44:08.261	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 123 (type: 2) -> number: 0, string: 0, bool: 4765 | ioBroker id: 'tr-064.0.devices.Sonoff-Steckdose-51'
                                  18:44:08.261	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "tr-064.0.devices.Home-Echo-Dot-Arbeitszimmer" does not exist
                                  18:44:08.440	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 128 (type: 2) -> number: 0, string: 0, bool: 1685 | ioBroker id: 'tr-064.0.devices.Home-Echo-Dot-Arbeitszimmer'
                                  18:44:08.441	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "MeineObjekte.0.Counter.PC-Tanel.Count-24h" does not exist
                                  18:44:08.458	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 128 (type: 2) -> number: 0, string: 0, bool: 1685 | ioBroker id: 'tr-064.0.devices.Home-Echo-Dot-Arbeitszimmer'
                                  18:44:08.459	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "MeineObjekte.0.Counter.PC-Tanel.Count-24h" does not exist
                                  18:44:08.495	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 181 (type: 1) -> number: 0, string: 5, bool: 0 | ioBroker id: 'MeineObjekte.0.Counter.PC-Tanel.Count-24h'
                                  18:44:08.496	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "MeineObjekte.0.Counter.PC-Tanel.IP-Count-24h" does not exist
                                  18:44:08.508	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 181 (type: 1) -> number: 0, string: 5, bool: 0 | ioBroker id: 'MeineObjekte.0.Counter.PC-Tanel.Count-24h'
                                  18:44:08.509	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "MeineObjekte.0.Counter.PC-Tanel.IP-Count-24h" does not exist
                                  18:44:08.573	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 182 (type: 1) -> number: 0, string: 5, bool: 0 | ioBroker id: 'MeineObjekte.0.Counter.PC-Tanel.IP-Count-24h'
                                  18:44:08.574	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "MeineObjekte.0.Tanel.Internet.Nutzung" does not exist
                                  18:44:08.615	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 182 (type: 1) -> number: 0, string: 5, bool: 0 | ioBroker id: 'MeineObjekte.0.Counter.PC-Tanel.IP-Count-24h'
                                  18:44:08.616	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "MeineObjekte.0.Tanel.Internet.Nutzung" does not exist
                                  18:44:08.675	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 188 (type: 1) -> number: 0, string: 1, bool: 4 | ioBroker id: 'MeineObjekte.0.Tanel.Internet.Nutzung'
                                  18:44:08.675	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "hm-rega.0.2115" does not exist
                                  18:44:08.696	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 188 (type: 1) -> number: 0, string: 1, bool: 4 | ioBroker id: 'MeineObjekte.0.Tanel.Internet.Nutzung'
                                  18:44:08.696	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "hm-rega.0.2115" does not exist
                                  18:44:10.044	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 189 (type: 2) -> number: 0, string: 0, bool: 20869 | ioBroker id: 'hm-rega.0.2115'
                                  18:44:10.045	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "tr-064.0.devices.Home-Echo-Dot-Kueche" does not exist
                                  18:44:10.066	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 189 (type: 2) -> number: 0, string: 0, bool: 20869 | ioBroker id: 'hm-rega.0.2115'
                                  18:44:10.067	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "tr-064.0.devices.Home-Echo-Dot-Kueche" does not exist
                                  18:44:10.671	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 138 (type: 2) -> number: 0, string: 0, bool: 4753 | ioBroker id: 'tr-064.0.devices.Home-Echo-Dot-Kueche'
                                  18:44:10.672	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "tr-064.0.devices.Home-Fritz-Repeater-5GHZ" does not exist
                                  18:44:10.674	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 138 (type: 2) -> number: 0, string: 0, bool: 4753 | ioBroker id: 'tr-064.0.devices.Home-Echo-Dot-Kueche'
                                  18:44:10.674	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "tr-064.0.devices.Home-Fritz-Repeater-5GHZ" does not exist
                                  18:44:11.037	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 140 (type: 2) -> number: 0, string: 0, bool: 4738 | ioBroker id: 'tr-064.0.devices.Home-Fritz-Repeater-5GHZ'
                                  18:44:11.038	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "tr-064.0.devices.Home-HP-LaserJet" does not exist
                                  18:44:11.052	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 140 (type: 2) -> number: 0, string: 0, bool: 4738 | ioBroker id: 'tr-064.0.devices.Home-Fritz-Repeater-5GHZ'
                                  18:44:11.053	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "tr-064.0.devices.Home-HP-LaserJet" does not exist
                                  18:44:11.287	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 146 (type: 2) -> number: 0, string: 0, bool: 4782 | ioBroker id: 'tr-064.0.devices.Home-HP-LaserJet'
                                  18:44:11.289	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "tr-064.0.devices.Home-HP-LaserJet-LAN" does not exist
                                  18:44:11.308	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 146 (type: 2) -> number: 0, string: 0, bool: 4782 | ioBroker id: 'tr-064.0.devices.Home-HP-LaserJet'
                                  18:44:11.310	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "tr-064.0.devices.Home-HP-LaserJet-LAN" does not exist
                                  18:44:11.599	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 147 (type: 2) -> number: 0, string: 0, bool: 4778 | ioBroker id: 'tr-064.0.devices.Home-HP-LaserJet-LAN'
                                  18:44:11.600	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "tr-064.0.devices.Home-TV-Schlafzimmer-SAT" does not exist
                                  18:44:11.605	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 147 (type: 2) -> number: 0, string: 0, bool: 4778 | ioBroker id: 'tr-064.0.devices.Home-HP-LaserJet-LAN'
                                  18:44:11.605	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "tr-064.0.devices.Home-TV-Schlafzimmer-SAT" does not exist
                                  18:44:11.771	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 148 (type: 2) -> number: 0, string: 0, bool: 1617 | ioBroker id: 'tr-064.0.devices.Home-TV-Schlafzimmer-SAT'
                                  18:44:11.778	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "hm-rpc.2.0008D8A9AC1C5B.4.LEVEL" does not exist
                                  18:44:11.800	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 148 (type: 2) -> number: 0, string: 0, bool: 1617 | ioBroker id: 'tr-064.0.devices.Home-TV-Schlafzimmer-SAT'
                                  18:44:11.800	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "hm-rpc.2.0008D8A9AC1C5B.4.LEVEL" does not exist
                                  18:44:11.953	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 149 (type: 0) -> number: 831, string: 0, bool: 0 | ioBroker id: 'hm-rpc.2.0008D8A9AC1C5B.4.LEVEL'
                                  18:44:11.954	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "hm-rpc.2.0008D8A9AC1B2A.4.LEVEL" does not exist
                                  18:44:11.955	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 149 (type: 0) -> number: 831, string: 0, bool: 0 | ioBroker id: 'hm-rpc.2.0008D8A9AC1C5B.4.LEVEL'
                                  18:44:11.957	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "hm-rpc.2.0008D8A9AC1B2A.4.LEVEL" does not exist
                                  18:44:12.110	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 150 (type: 0) -> number: 1170, string: 0, bool: 0 | ioBroker id: 'hm-rpc.2.0008D8A9AC1B2A.4.LEVEL'
                                  18:44:12.111	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "hm-rpc.2.000855699C43AF.4.STATE" does not exist
                                  18:44:12.113	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 150 (type: 0) -> number: 1170, string: 0, bool: 0 | ioBroker id: 'hm-rpc.2.0008D8A9AC1B2A.4.LEVEL'
                                  18:44:12.114	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "hm-rpc.2.000855699C43AF.4.STATE" does not exist
                                  18:44:12.268	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 151 (type: 2) -> number: 0, string: 0, bool: 775 | ioBroker id: 'hm-rpc.2.000855699C43AF.4.STATE'
                                  18:44:12.272	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "tr-064.0.devices.Home-iPadMini" does not exist
                                  18:44:12.275	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 151 (type: 2) -> number: 0, string: 0, bool: 775 | ioBroker id: 'hm-rpc.2.000855699C43AF.4.STATE'
                                  18:44:12.279	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "tr-064.0.devices.Home-iPadMini" does not exist
                                  18:44:12.511	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 153 (type: 2) -> number: 0, string: 0, bool: 1705 | ioBroker id: 'tr-064.0.devices.Home-iPadMini'
                                  18:44:12.512	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "tr-064.0.devices.Mike-iPhone-7plus" does not exist
                                  18:44:12.560	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 153 (type: 2) -> number: 0, string: 0, bool: 1705 | ioBroker id: 'tr-064.0.devices.Home-iPadMini'
                                  18:44:12.561	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "tr-064.0.devices.Mike-iPhone-7plus" does not exist
                                  18:44:14.010	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 155 (type: 2) -> number: 0, string: 0, bool: 27568 | ioBroker id: 'tr-064.0.devices.Mike-iPhone-7plus'
                                  18:44:14.011	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "fritzdect.0.DECT200_116570356042.state" does not exist
                                  18:44:14.028	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 155 (type: 2) -> number: 0, string: 0, bool: 27568 | ioBroker id: 'tr-064.0.devices.Mike-iPhone-7plus'
                                  18:44:14.029	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "fritzdect.0.DECT200_116570356042.state" does not exist
                                  18:44:14.814	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 196 (type: 2) -> number: 0, string: 0, bool: 15562 | ioBroker id: 'fritzdect.0.DECT200_116570356042.state'
                                  18:44:14.814	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "tr-064.0.devices.Home-ioBroker" does not exist
                                  18:44:14.839	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 196 (type: 2) -> number: 0, string: 0, bool: 15562 | ioBroker id: 'fritzdect.0.DECT200_116570356042.state'
                                  18:44:14.840	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "tr-064.0.devices.Home-ioBroker" does not exist
                                  18:44:15.405	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 158 (type: 2) -> number: 0, string: 0, bool: 4734 | ioBroker id: 'tr-064.0.devices.Home-ioBroker'
                                  18:44:15.406	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "FRITZ!DECT 200 #2.power" does not exist
                                  18:44:15.441	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 158 (type: 2) -> number: 0, string: 0, bool: 4734 | ioBroker id: 'tr-064.0.devices.Home-ioBroker'
                                  18:44:15.449	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "FRITZ!DECT 200 #2.power" does not exist
                                  18:44:15.582	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 197 (type: 0) -> number: 4, string: 0, bool: 0 | ioBroker id: 'FRITZ!DECT 200 #2.power'
                                  18:44:15.583	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "FRITZ!DECT 200 #2.power.state" does not exist
                                  18:44:15.584	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 197 (type: 0) -> number: 4, string: 0, bool: 0 | ioBroker id: 'FRITZ!DECT 200 #2.power'
                                  18:44:15.585	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "FRITZ!DECT 200 #2.power.state" does not exist
                                  18:44:15.703	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 198 (type: 1) -> number: 0, string: 1, bool: 0 | ioBroker id: 'FRITZ!DECT 200 #2.power.state'
                                  18:44:15.704	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "FRITZ!DECT 200 #2.state" does not exist
                                  18:44:15.740	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 198 (type: 1) -> number: 0, string: 1, bool: 0 | ioBroker id: 'FRITZ!DECT 200 #2.power.state'
                                  18:44:15.741	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "FRITZ!DECT 200 #2.state" does not exist
                                  18:44:15.830	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 199 (type: 2) -> number: 0, string: 0, bool: 15 | ioBroker id: 'FRITZ!DECT 200 #2.state'
                                  18:44:15.849	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "envertech-pv.0.data.gateway_90013936.11150211.POWER" does not exist
                                  18:44:15.898	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 199 (type: 2) -> number: 0, string: 0, bool: 15 | ioBroker id: 'FRITZ!DECT 200 #2.state'
                                  18:44:15.912	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "envertech-pv.0.data.gateway_90013936.11150211.POWER" does not exist
                                  18:44:16.090	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 247 (type: 1) -> number: 0, string: 1039, bool: 0 | ioBroker id: 'envertech-pv.0.data.gateway_90013936.11150211.POWER'
                                  18:44:16.091	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "envertech-pv.0.data.gateway_90013936.11150603.POWER" does not exist
                                  18:44:16.127	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 247 (type: 1) -> number: 0, string: 1039, bool: 0 | ioBroker id: 'envertech-pv.0.data.gateway_90013936.11150211.POWER'
                                  18:44:16.128	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "envertech-pv.0.data.gateway_90013936.11150603.POWER" does not exist
                                  18:44:16.311	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 248 (type: 1) -> number: 0, string: 1045, bool: 0 | ioBroker id: 'envertech-pv.0.data.gateway_90013936.11150603.POWER'
                                  18:44:16.312	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "0_userdata.0.kW_Gesamt" does not exist
                                  18:44:16.349	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 248 (type: 1) -> number: 0, string: 1045, bool: 0 | ioBroker id: 'envertech-pv.0.data.gateway_90013936.11150603.POWER'
                                  18:44:16.349	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "0_userdata.0.kW_Gesamt" does not exist
                                  18:44:18.926	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 250 (type: 0) -> number: 41422, string: 0, bool: 0 | ioBroker id: '0_userdata.0.kW_Gesamt'
                                  18:44:18.936	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "envertech-pv.0.data.gateway_90013936.260W-Süd-1.POWER" does not exist
                                  18:44:19.066	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 250 (type: 0) -> number: 41422, string: 0, bool: 0 | ioBroker id: '0_userdata.0.kW_Gesamt'
                                  18:44:19.066	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: Object "envertech-pv.0.data.gateway_90013936.260W-Süd-1.POWER" does not exist
                                  18:44:21.690	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 255 (type: 1) -> number: 0, string: 57947, bool: 0 | ioBroker id: 'envertech-pv.0.data.gateway_90013936.260W-Süd-1.POWER'
                                  18:44:21.712	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: 45 Objects found, that not exist anymore in ioBroker, sum of items in tables: 1.686.591
                                  18:44:22.548	info	javascript.0 (158) script.js.Allgemein.SQL_TEST: DB id: 255 (type: 1) -> number: 0, string: 57947, bool: 0 | ioBroker id: 'envertech-pv.0.data.gateway_90013936.260W-Süd-1.POWER'
                                  18:44:22.550	warn	javascript.0 (158) script.js.Allgemein.SQL_TEST: 45 Objects found, that not exist anymore in ioBroker, sum of items in tables: 1.686.591
                                  
                                  A 1 Reply Last reply Reply Quote 0
                                  • A
                                    andi2055 @mike2712 last edited by

                                    @mike2712
                                    wenn du so wenig Kenntnisse hast, dann würde ich ganz ehrlich raten auf das Löschen zu verzichten.
                                    Besser die paar unnötigen Daten als dass etwas schief läuft...
                                    Zum Löschen musst du im Skript die Konstante auf true setzen. Alles auf eigene Gefahr!

                                    Für Backup kannst du auch ioBroker backup Adapter verwenden

                                    M 1 Reply Last reply Reply Quote 0
                                    • M
                                      mike2712 @andi2055 last edited by

                                      @andi2055 Danke, ja iobroker backup ist selbstverständlich vorhanden, es geht mir um die noch gültigen Einträge in der Datenbank (diese werden mit dem Adapter ja nicht gesichert), da habe ich kein Plan, ich wüsste auch nicht einmal wie ich es richtig händisch löschen müsste in der Datenbank, ich sehe die Datenpunkte, wenn ich einen Datenpunkt lösche, werden dann alle Daten zu diesem Datenpunkt gelöscht, aber händisch ist das sicher wie das aussieht auch sehr mühselig.
                                      Was kann passieren wenn es mit dem scipt schief geht? Das ich die Daten verliere die in der Datenbank stehen, kann man in der Datenbank selbst ein komplette Update machen, habe versucht die Daten zu exportieren, aber das dauert ewig.

                                      1 Reply Last reply Reply Quote 0
                                      • BananaJoe
                                        BananaJoe Most Active last edited by

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

                                        ich habe dein Script ums Löschen von nicht mehr existierenden Datenpunkten erweitert.
                                        So konnte ich bei mir über 1Mio überflüssige Datensätze löschen.
                                        Vielleicht kann es jemand gebrauchen.
                                        Verwendung auf eigene Gefahr! Vorher Backup anfertigen

                                        Öhm, Sehe ich das richtig das das Skript nur Daten von nicht mehr existierenden Datenpunkten löscht?
                                        Ich würde auch gerne Datenpunkte löschen bei denen die SQL-Protokollierung deaktiviert wurde.

                                        Ich fang schon mal an zu suchen wie man das ermitteln kann ...

                                        1 Reply Last reply Reply Quote 0
                                        • BananaJoe
                                          BananaJoe Most Active last edited by BananaJoe

                                          Und ich Antworte mir selbst:
                                          Hier ist die Version die danach geht ob die Protokollierung per SQL aktiv ist.
                                          Ist diese nicht (mehr) aktiv so taucht diese als zu löschen auf.
                                          Gelöscht wird wie bisher auch wenn oben
                                          const activate_delete = false; auf true gesetzt wird

                                          Benutzen auf eigene Gefahr, Verbesserungsvorschläge Willkommen. Eventuell braucht das Skript langsam mal eine Versionierung Habe mal einen kleinen Header dazu gesetzt mit den Änderungen

                                          // SQL_Delete_Dead_Objects
                                          // V0.3
                                          //
                                          // 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
                                          
                                          
                                          async function wartung() {
                                              try {
                                           
                                                  // Hier das löschen einschalten! Sonst nur Trocken-Test
                                                  const activate_delete = false;
                                          
                                          
                                                  // Alle Datenpunkte holen bei welchen die SQL-Protokollierung aktiv ist:
                                                  let datapointsActiveArray = new Array();
                                                  let datapointsActiceStrings = "";
                                                  await sendTo('sql.0', '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 * FROM iobroker.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 * FROM iobroker.ts_bool WHERE id = ${datapoint.id}`);
                                                              if (booleanTableItems && Object.keys(booleanTableItems).length > 0) {
                                                                  countBool = Object.keys(booleanTableItems).length;
                                                                  if (activate_delete) { 
                                                                      sendTo('sql.0', 'query', `DELETE FROM iobroker.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 * FROM iobroker.ts_number WHERE id = ${datapoint.id}`);
                                                              if (numberTableItems && Object.keys(numberTableItems).length > 0) {
                                                                  countNumber = Object.keys(numberTableItems).length;
                                                                  if (activate_delete) { 
                                                                      sendTo('sql.0', 'query', `DELETE FROM iobroker.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 * FROM iobroker.ts_string WHERE id = ${datapoint.id}`);
                                                              if (stringTableItems && Object.keys(stringTableItems).length > 0) {
                                                                  countString = Object.keys(stringTableItems).length;
                                                                  if (activate_delete) { 
                                                                      sendTo('sql.0', 'query', `DELETE FROM iobroker.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.0', 'query', `DELETE FROM iobroker.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.0', 'query', query, function (result) {
                                                      if (!result.error) {
                                                          resolve(result.result);
                                                      } else {
                                                          resolve(null);
                                                      }
                                                  });
                                              });
                                          }
                                           
                                          wartung();
                                          
                                          1 Reply Last reply Reply Quote 1
                                          • bahnuhr
                                            bahnuhr Forum Testing Most Active last edited by

                                            @bananajoe
                                            Habe das Script als js eingefügt und gestartet.
                                            Es tut sich gar nichts; absolut nichts im log.

                                            Muss man da irgendwas beachten ?

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

                                            Support us

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

                                            831
                                            Online

                                            31.7k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

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