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

      Moin,

      Javascript ist schon klar - ich habe mit ruhr70 zusammen das Raumklima-Skript geschrieben / erweitert.

      Irgendwie stehe ich mir beim Einbau des Aufrufs selber im Weg.

      Gruß,

      Eric

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

        Dann zeig mal wie du es versuchst , dann kann ich vllt besser helfen 🙂

        1 Reply Last reply Reply Quote 0
        • 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

                                839
                                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