Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. SQL und InfluxDB bitte auch testen (neue Features)

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    SQL und InfluxDB bitte auch testen (neue Features)

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

      Mir fehlt gerade völlig der Ansatz, wie ich anfangen soll, die vorhandenen DPs einzulesen … als ob ich unter einer temporären Amnesie leide ...

      Ich brauche einen Denk-Anstoß ... besser -Antritt [Peinlich berührt …]

      Ein Code-Snipplet würde mir wahrscheinlich schon reichen, um die Blockade zu lösen ….

      Gruß,

      Eric

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

        Was willst Du denn tun?

        WIllst Du die aktivien DPs aus einer Instanz einlesen und in einer anderen Aktivieren oder was ist dein Ansatz?

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

          Ich möchte alle aktiven Datenpunkte, die per SQL aufgezeichnet werden, auslesen und ggf. als Basis für eine Kopie / als Backup nutzen.

          Ich habe eine komplette (neu aufgesetzte) zweite ioBroker-Instanz und könnte den Abzug dann dort als Import nutzen, um nicht alle SQL-Aufzeichnungen wieder manuell einrichten zu müssen.

          Ferner gibt es bei HMIP noch das Problem, das das Objekt ab und zu komplett gelöscht und neu angelegt wird und dabei dann natürlich ebendiese Konfig gelöscht wird.

          Man könnte ein Script schreiben, was die SQL-Konfig dann wieder hinzufügt (prüfen ob gelöscht; wenn ja, dann erneut Konfig hinzufügen), usw.

          Wie gesagt, mir fehlt die Initialzündung …

          Gruß,

          Eric

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

            Dann mach doch mal folgendes. Lege ein JS an und nennen es "alle_History_DPs_holen" und mach da mal das hier rein:

            Pot. die Instanz (sql.0) anpassen

            sendTo('sql.0', 'getEnabledDPs', function (result) {
                console.log(JSON.stringify(result));
                // Das was da zurückkommt kannst Du jetzt z.B. in ne Datei Speichern
            });
            

            Und zum wieder einlesen müsste man sowas bauen:

            // zuerst file einlesen und unter der Annahme es kommt was rein was Du oben gespeichert hast ... in Variable "dps"
            setAllHistory('sql.0', dps);
            
            function setAllHistory(instance, data) {
                if (Object.keys(data).length) === 0 ) return; // we are done
                var currentId = Object.keys(data)[0];
                var currentData = {
                    id: currentId,
                    options: data[currentId]
                };
                delete data[currentId];    
                sendTo(instance, 'enableHistory', currentData, function (result) {
                if (result.error) {
                    console.log(result.error);
                    // aufhören
                }
                if (result.success) {
            	// next one
            	setAllHistory('sql.0', data);
                }
            });
            }
            
            

            Das ganze ist jetzt frei Hand geschrieben und nicht getestet … aber so in der Art sollte es run

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

              Hi ho,

              @apollon77:

              Dann mach doch mal folgendes….

              sendTo('sql.0', 'getEnabledDPs', function (result) {
                  console.log(JSON.stringify(result));
                  // Das was da zurückkommt kannst Du jetzt z.B. in ne Datei Speichern
              });
              ```` `  
              

              sowas in der Art hatte ich auch schon - klappt aber nicht.

              Ich habe den SQL-Adapter in der Version 1.4.0 (über den Git-Installer im Admin) installiert.

              Das Script 1:1 kopiert (sql.0 passt). Es läuft auch ohne Fehlermeldung durch, aber es kommt nichts zurück.

              Es werden 20 Datenpunkte (Temp. und Humm.) über sql.0 aufgezeichnet (ja, Daten sind auf dem SQL-Server vorhanden 🙂 ), aber die o.g. Abfrage liefert nichts zurück.

              Die v1.4.0 ist doch die richtige, oder? Laut Github-Readme sollte es so sein.

              Danke und Gruß,

              Eric

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

                Fehler gefunden (kommt davon nwenn man es aus dem Gedächtnis macht):

                Richtig ist:

                sendTo('sql.0', 'getEnabledDPs', {}, function (result) {
                    console.log(JSON.stringify(result));
                    // Das was da zurückkommt kannst Du jetzt z.B. in ne Datei Speichern
                });
                

                Auch Methoden die keine Daten beim Aufruf übertragen müssen da was leeres übergeben. Fixe das Beispiel im Github nachher gleich

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

                  Moin,

                  @apollon77:

                  Fehler gefunden …

                  Auch Methoden die keine Daten beim Aufruf übertragen müssen da was leeres übergeben. `

                  super - Danke Dir.

                  Genau das habe ich auch nicht gesehen und bin daran hängengeblieben - und einfach nicht weitergekommen … jetzt habe ich den Denk-Antritt, den ich brauchte.

                  Danke und Gruß,

                  Eric

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

                    Super,

                    ab der nächsten js-controller Version gibts das auch offiziell das man den Parameter weglassen kann wenn er leer ist 🙂

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

                      Habe einen kleinen Bug im Sql-Adapter bei der Adapter-Konfiguration gesichtet als ich heute am Testsystem schnell den Adapter installiert und was mit Flot/History testen wollte.

                      Habe SQLite gewählt da ich auf diesem raspi kein MySQL installieren wollte.

                      Nun, wenn man den Adapter konfiguriert und dann speichern will lasst er es nicht zu da für ihn die passwörter nicht ident sind mit der Kontrollabfrage!

                      Also musste ich kurz zur MySQL config schalten, dort idente passwörter eingeben dann zurück auf SQLite und dann speichern.

                      Obwohl SQLite kein passwort benötigt wird wird beim Speichern der Konfiguration diese Bedingung abgefragt.

                      Liebe Grüße

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

                        Fix auf Github 🙂

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

                          Ok, werd' ich mal testen!

                          Muss an Scripten basteln um die Daten von einem SQL (MySQL) auf anderen (SQLite) -Adapter zu übertragen, hab rausgefunden dass MySQL etwas zu viel Platz frisst…

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

                            Hey, dann schau dir mal die anderen neuen Features der History-Adapter an … gibt Funktionen für "query", "setState", "getEnabledDPs" und sowas. Das kann man nehmen.

                            Aber wenn ich ehrlich bin ist SQLite vllt nicht die beste Wahl ... hatte schon einige Probleme mit "geblockten" DBs weil immer nur ein Zugriff erlaubt ist

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            846
                            Online

                            31.7k
                            Users

                            79.8k
                            Topics

                            1.3m
                            Posts

                            3
                            17
                            2422
                            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