Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [gelöst] SQL getHistory Abfrage

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    12
    2
    254

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

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

[gelöst] SQL getHistory Abfrage

[gelöst] SQL getHistory Abfrage

Scheduled Pinned Locked Moved Skripten / Logik
58 Posts 4 Posters 4.8k Views 4 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • O ostseeskipper

    Wenn mir nun noch einer von euch Beiden bitte sagen könne wie ich die Zahl 3.699 in eine Variable extrahiert bekomme wäre mein Abend gerettet😊

    paul53P Offline
    paul53P Offline
    paul53
    wrote on last edited by
    #27

    @ostseeskipper sagte: wie ich die Zahl 3.699 in eine Variable extrahiert bekomme

    let wert = result.result[0].Wert;
    

    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

    O 1 Reply Last reply
    1
    • O ostseeskipper

      Wenn mir nun noch einer von euch Beiden bitte sagen könne wie ich die Zahl 3.699 in eine Variable extrahiert bekomme wäre mein Abend gerettet😊

      F Offline
      F Offline
      fastfoot
      wrote on last edited by
      #28

      @ostseeskipper sagte in SQL getHistory Abfrage:

      Wenn mir nun noch einer von euch Beiden bitte sagen könne wie ich die Zahl 3.699 in eine Variable extrahiert bekomme wäre mein Abend gerettet😊

      mit let DeineVariable = result.result[0].Wert weist du das zu

      iobroker läuft unter Docker auf QNAP TS-451+
      SkriptRecovery: https://forum.iobroker.net/post/930558

      1 Reply Last reply
      1
      • paul53P paul53

        @ostseeskipper sagte: wie ich die Zahl 3.699 in eine Variable extrahiert bekomme

        let wert = result.result[0].Wert;
        
        O Offline
        O Offline
        ostseeskipper
        wrote on last edited by ostseeskipper
        #29

        @paul53
        @fastfoot
        @apollon77

        Danke Euch erst mal.👍

        @fastfoot ist es mit gethistory performanter als über die letzte von mir gepostete Lösung mit queries und avg ?
        fand das now.setMinutes(-3) relativ charmat auch wenn ich es noch nicht wirklich verstehe wie das alles mit den result.result verkapselt ist.

        Aber ein Auto muss ja auch nur fahren
        schönen Abend euch

        F 2 Replies Last reply
        1
        • apollon77A Offline
          apollon77A Offline
          apollon77
          wrote on last edited by
          #30

          Ich stimme aber zu das die Beispiele vllt nicht die besten sind. Ich kann mal schauen das ich das hier gesagt dort einfließen lasse.

          Ich bin aber auch ehrlich das mir persönlich Gerade die Zeit fehlt das alles sinnvoll und vollständig durchzuspielen und zu überlegen welche Beispiele in welcher Form aus „User“ Sicht Sinn machen. Da freuen wir uns über konkrete Vorschläge Bzw auf github einem Pull request“ für die readme (ist ganz easy: Stift bei der readme klicken, ändern, Änderung vorschlagen, pull request erstellen)

          Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

          • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
          • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
          F 1 Reply Last reply
          0
          • O ostseeskipper

            @paul53
            @fastfoot
            @apollon77

            Danke Euch erst mal.👍

            @fastfoot ist es mit gethistory performanter als über die letzte von mir gepostete Lösung mit queries und avg ?
            fand das now.setMinutes(-3) relativ charmat auch wenn ich es noch nicht wirklich verstehe wie das alles mit den result.result verkapselt ist.

            Aber ein Auto muss ja auch nur fahren
            schönen Abend euch

            F Offline
            F Offline
            fastfoot
            wrote on last edited by
            #31

            @ostseeskipper ob da performanter ist kann ich nicht sagen, für deinen gewählten Zeitraum ist das sicher egal. getHistory bietet einiges mehr, so kann man mit step noch einen Parameter mit angeben. Wie das genau funktioniert hat sich mir aber noch nicht erschlossen 🙂 Mit deiner Abfrage weisst du jedenfalls sicher was da passiert, das sehe ich erstmal als Vorteil. Wolltest du aber für den Zeitraum eines Jahres das jeweilige Tagesmittel errechnen, dann wäre getHistory einen näheren Blick wert 🙂

            iobroker läuft unter Docker auf QNAP TS-451+
            SkriptRecovery: https://forum.iobroker.net/post/930558

            1 Reply Last reply
            0
            • apollon77A apollon77

              Ich stimme aber zu das die Beispiele vllt nicht die besten sind. Ich kann mal schauen das ich das hier gesagt dort einfließen lasse.

              Ich bin aber auch ehrlich das mir persönlich Gerade die Zeit fehlt das alles sinnvoll und vollständig durchzuspielen und zu überlegen welche Beispiele in welcher Form aus „User“ Sicht Sinn machen. Da freuen wir uns über konkrete Vorschläge Bzw auf github einem Pull request“ für die readme (ist ganz easy: Stift bei der readme klicken, ändern, Änderung vorschlagen, pull request erstellen)

              F Offline
              F Offline
              fastfoot
              wrote on last edited by
              #32

              @apollon77 ich schaue mal ob ich da was verschlimmbessern kann. Ist jedenfalls ein guter Tipp mit dem Stift! Dauert aber etwas, an Deine Schlagzahl komme ich in 100 Jahren nicht ran 🙂 Muss mich auch erst noch etwas einarbeiten, wäre aber cool dich da etwas 'entlasten' zu können

              iobroker läuft unter Docker auf QNAP TS-451+
              SkriptRecovery: https://forum.iobroker.net/post/930558

              apollon77A 1 Reply Last reply
              1
              • F fastfoot

                @apollon77 ich schaue mal ob ich da was verschlimmbessern kann. Ist jedenfalls ein guter Tipp mit dem Stift! Dauert aber etwas, an Deine Schlagzahl komme ich in 100 Jahren nicht ran 🙂 Muss mich auch erst noch etwas einarbeiten, wäre aber cool dich da etwas 'entlasten' zu können

                apollon77A Offline
                apollon77A Offline
                apollon77
                wrote on last edited by
                #33

                @fastfoot Super. Vielen Dank!!

                Das addId versuche ich die Tage mit noch zusammen mit einem anderen issue wo ich eh grad in allen 3 History Adaptern dran bin zu fixen.

                Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                1 Reply Last reply
                0
                • O ostseeskipper

                  @paul53
                  @fastfoot
                  @apollon77

                  Danke Euch erst mal.👍

                  @fastfoot ist es mit gethistory performanter als über die letzte von mir gepostete Lösung mit queries und avg ?
                  fand das now.setMinutes(-3) relativ charmat auch wenn ich es noch nicht wirklich verstehe wie das alles mit den result.result verkapselt ist.

                  Aber ein Auto muss ja auch nur fahren
                  schönen Abend euch

                  F Offline
                  F Offline
                  fastfoot
                  wrote on last edited by
                  #34

                  @ostseeskipper sagte in SQL getHistory Abfrage:

                  fand das now.setMinutes(-3) relativ charmat

                  sieht cool aus, ist aber nicht was Du erwartest. Wenn now z.B. 09:43 ist dann setzt dir dieser Befehl dein now auf 08:57, nicht auf 09:40 🙂
                  Richtig geht es so: now.setMinutes(now.getMinutes() - 3)

                  iobroker läuft unter Docker auf QNAP TS-451+
                  SkriptRecovery: https://forum.iobroker.net/post/930558

                  O 1 Reply Last reply
                  0
                  • F fastfoot

                    @ostseeskipper sagte in SQL getHistory Abfrage:

                    fand das now.setMinutes(-3) relativ charmat

                    sieht cool aus, ist aber nicht was Du erwartest. Wenn now z.B. 09:43 ist dann setzt dir dieser Befehl dein now auf 08:57, nicht auf 09:40 🙂
                    Richtig geht es so: now.setMinutes(now.getMinutes() - 3)

                    O Offline
                    O Offline
                    ostseeskipper
                    wrote on last edited by
                    #35

                    @fastfoot said in SQL getHistory Abfrage:

                    @ostseeskipper sagte in SQL getHistory Abfrage:

                    fand das now.setMinutes(-3) relativ charmat

                    sieht cool aus, ist aber nicht was Du erwartest. Wenn now z.B. 09:43 ist dann setzt dir dieser Befehl dein now auf 08:57, nicht auf 09:40 🙂
                    Richtig geht es so: now.setMinutes(now.getMinutes() - 3)

                    Ohh, besten Dank,
                    Wäre denn das z.B. Beispiel eine Stunde zurück?

                            var now = new Date();
                            now.setHours(-1);
                    
                    apollon77A F 2 Replies Last reply
                    0
                    • O ostseeskipper

                      @fastfoot said in SQL getHistory Abfrage:

                      @ostseeskipper sagte in SQL getHistory Abfrage:

                      fand das now.setMinutes(-3) relativ charmat

                      sieht cool aus, ist aber nicht was Du erwartest. Wenn now z.B. 09:43 ist dann setzt dir dieser Befehl dein now auf 08:57, nicht auf 09:40 🙂
                      Richtig geht es so: now.setMinutes(now.getMinutes() - 3)

                      Ohh, besten Dank,
                      Wäre denn das z.B. Beispiel eine Stunde zurück?

                              var now = new Date();
                              now.setHours(-1);
                      
                      apollon77A Offline
                      apollon77A Offline
                      apollon77
                      wrote on last edited by
                      #36

                      @ostseeskipper Naja nach gleiochem chema wie bei den Stunden:

                      now.setHours(now.setHours() - 1)

                      Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                      • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                      • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                      1 Reply Last reply
                      1
                      • O ostseeskipper

                        @fastfoot said in SQL getHistory Abfrage:

                        @ostseeskipper sagte in SQL getHistory Abfrage:

                        fand das now.setMinutes(-3) relativ charmat

                        sieht cool aus, ist aber nicht was Du erwartest. Wenn now z.B. 09:43 ist dann setzt dir dieser Befehl dein now auf 08:57, nicht auf 09:40 🙂
                        Richtig geht es so: now.setMinutes(now.getMinutes() - 3)

                        Ohh, besten Dank,
                        Wäre denn das z.B. Beispiel eine Stunde zurück?

                                var now = new Date();
                                now.setHours(-1);
                        
                        F Offline
                        F Offline
                        fastfoot
                        wrote on last edited by
                        #37

                        @ostseeskipper sagte in SQL getHistory Abfrage:

                        Wäre denn das z.B. Beispiel eine Stunde zurück?

                        nein, in meinem Beispiel mit now = 09:43 setzt dir der Befehl die Zeit auf 23:43 des Vortages.
                        Abhilfe auch hier: now.setHours(now.getHours() - 1), apollon hat da noch einen typo drin.

                        Bis Ende der Woche gibt es aktuelle Beispiele auch mit Erklärungen zu den Optionen, wobei das hier ja JS Grundkenntnisse betrifft und dort dann nicht näher behandelt wird. Ist aber alles kein Problem, dafür gibt es ja hier das Forum 🙂

                        iobroker läuft unter Docker auf QNAP TS-451+
                        SkriptRecovery: https://forum.iobroker.net/post/930558

                        O 1 Reply Last reply
                        1
                        • F fastfoot

                          @ostseeskipper sagte in SQL getHistory Abfrage:

                          Wäre denn das z.B. Beispiel eine Stunde zurück?

                          nein, in meinem Beispiel mit now = 09:43 setzt dir der Befehl die Zeit auf 23:43 des Vortages.
                          Abhilfe auch hier: now.setHours(now.getHours() - 1), apollon hat da noch einen typo drin.

                          Bis Ende der Woche gibt es aktuelle Beispiele auch mit Erklärungen zu den Optionen, wobei das hier ja JS Grundkenntnisse betrifft und dort dann nicht näher behandelt wird. Ist aber alles kein Problem, dafür gibt es ja hier das Forum 🙂

                          O Offline
                          O Offline
                          ostseeskipper
                          wrote on last edited by
                          #38

                          @fastfoot said in SQL getHistory Abfrage:

                          nein, in meinem Beispiel mit now = 09:43 setzt dir der Befehl die Zeit auf 23:43 des Vortages.
                          Abhilfe auch hier: now.setHours(now.getHours() - 1), apollon hat da noch einen typo drin.

                          Bis Ende der Woche gibt es aktuelle Beispiele auch mit Erklärungen zu den Optionen, wobei das hier ja JS Grundkenntnisse betrifft und dort dann nicht näher behandelt wird. Ist aber alles kein Problem, dafür gibt es ja hier das Forum 🙂

                          Jetzt bin ich völlig erschlagen.

                                  now.setHours(-1);
                          

                          steht auch in dem SQL Adapter Beispiel drin
                          hatte echt gedacht und mich gefreut das es so einfach ist die Zeit von jetzt abzüglich einer Stunde zu definieren.
                          @fastfoot Danke👍
                          Ich werd es einfach probieren.

                          O F 2 Replies Last reply
                          0
                          • O ostseeskipper

                            @fastfoot said in SQL getHistory Abfrage:

                            nein, in meinem Beispiel mit now = 09:43 setzt dir der Befehl die Zeit auf 23:43 des Vortages.
                            Abhilfe auch hier: now.setHours(now.getHours() - 1), apollon hat da noch einen typo drin.

                            Bis Ende der Woche gibt es aktuelle Beispiele auch mit Erklärungen zu den Optionen, wobei das hier ja JS Grundkenntnisse betrifft und dort dann nicht näher behandelt wird. Ist aber alles kein Problem, dafür gibt es ja hier das Forum 🙂

                            Jetzt bin ich völlig erschlagen.

                                    now.setHours(-1);
                            

                            steht auch in dem SQL Adapter Beispiel drin
                            hatte echt gedacht und mich gefreut das es so einfach ist die Zeit von jetzt abzüglich einer Stunde zu definieren.
                            @fastfoot Danke👍
                            Ich werd es einfach probieren.

                            O Offline
                            O Offline
                            ostseeskipper
                            wrote on last edited by ostseeskipper
                            #39

                            Jetzt muss ich doch noch mal fragen.

                            Das Scrpit sieht nun so aus.

                            var pvwert=0;
                            
                            log("PV wert1: " + pvwert ,"info");
                            
                            sendTo('sql.0', 'query', 'SELECT id FROM iobroker.datapoints WHERE name="smartmeter.0.1-0:16_7_0__255.value"', function (result) {
                                if (result.error) {
                                    console.error(result.error);
                                } else {
                                    var now = new Date();
                                    now.setMinutes(now.getMinutes() - 3);
                                    sendTo('sql.0', 'query', 'SELECT AVG(val) AS Wert FROM iobroker.ts_number WHERE ts >= ' + now.getTime() + ' AND id=' + result.result[0].id, function (result) {
                                        let pvwert_1 = result.result[0].Wert
                                        pvwert = result.result[0].Wert  // ?? Wirkungslos ??  Warum
                                        log("PV wert2: " + pvwert_1 ,"info")
                                    });
                                }
                            });
                            log("PV wert3: " + pvwert ,"info");
                            

                            Habe am Anfang des JS Script pvwert definiert und will das in Zeile 13 übergeben, da ich den Wert im weiteren Scriptverlauf noch brauche.
                            Scheinbar lässt es nichts aus der sendto raus.
                            und wenn ich pvwert_1 ausserhalb der sendto aufrufe gibts ne Fehlermeldung.

                            Edit: Was ich auch nicht verstehe warum wird die letzte Befehlszeile vor dem sendto ausgeführt

                            20:21:12.047	info	javascript.0 (149) script.js.Logik.GleitDurchschnitt: PV wert1: 0
                            20:21:12.048	info	javascript.0 (149) script.js.Logik.GleitDurchschnitt: PV wert3: 0
                            20:21:12.048	info	javascript.0 (149) script.js.Logik.GleitDurchschnitt: registered 0 subscriptions and 0 schedules
                            20:21:12.080	info	javascript.0 (149) script.js.Logik.GleitDurchschnitt: PV wert2: 3.5454545454545454
                            
                            F 1 Reply Last reply
                            0
                            • O ostseeskipper

                              @fastfoot said in SQL getHistory Abfrage:

                              nein, in meinem Beispiel mit now = 09:43 setzt dir der Befehl die Zeit auf 23:43 des Vortages.
                              Abhilfe auch hier: now.setHours(now.getHours() - 1), apollon hat da noch einen typo drin.

                              Bis Ende der Woche gibt es aktuelle Beispiele auch mit Erklärungen zu den Optionen, wobei das hier ja JS Grundkenntnisse betrifft und dort dann nicht näher behandelt wird. Ist aber alles kein Problem, dafür gibt es ja hier das Forum 🙂

                              Jetzt bin ich völlig erschlagen.

                                      now.setHours(-1);
                              

                              steht auch in dem SQL Adapter Beispiel drin
                              hatte echt gedacht und mich gefreut das es so einfach ist die Zeit von jetzt abzüglich einer Stunde zu definieren.
                              @fastfoot Danke👍
                              Ich werd es einfach probieren.

                              F Offline
                              F Offline
                              fastfoot
                              wrote on last edited by
                              #40

                              @ostseeskipper sagte in SQL getHistory Abfrage:

                              steht auch in dem SQL Adapter Beispiel drin

                              da wird aber nicht behauptet, dass der Zeitraum 1 Std. sei 🙂 Aber ja, man unterstellt es. Wie gesagt überarbeite ich das gerade, es dauert aber noch etwas, da ich auch noch etwas zu den Optionen schreiben möchte und die Beispiele für alle dort genannten Datenbanken laufen sollen

                              iobroker läuft unter Docker auf QNAP TS-451+
                              SkriptRecovery: https://forum.iobroker.net/post/930558

                              1 Reply Last reply
                              0
                              • O ostseeskipper

                                Jetzt muss ich doch noch mal fragen.

                                Das Scrpit sieht nun so aus.

                                var pvwert=0;
                                
                                log("PV wert1: " + pvwert ,"info");
                                
                                sendTo('sql.0', 'query', 'SELECT id FROM iobroker.datapoints WHERE name="smartmeter.0.1-0:16_7_0__255.value"', function (result) {
                                    if (result.error) {
                                        console.error(result.error);
                                    } else {
                                        var now = new Date();
                                        now.setMinutes(now.getMinutes() - 3);
                                        sendTo('sql.0', 'query', 'SELECT AVG(val) AS Wert FROM iobroker.ts_number WHERE ts >= ' + now.getTime() + ' AND id=' + result.result[0].id, function (result) {
                                            let pvwert_1 = result.result[0].Wert
                                            pvwert = result.result[0].Wert  // ?? Wirkungslos ??  Warum
                                            log("PV wert2: " + pvwert_1 ,"info")
                                        });
                                    }
                                });
                                log("PV wert3: " + pvwert ,"info");
                                

                                Habe am Anfang des JS Script pvwert definiert und will das in Zeile 13 übergeben, da ich den Wert im weiteren Scriptverlauf noch brauche.
                                Scheinbar lässt es nichts aus der sendto raus.
                                und wenn ich pvwert_1 ausserhalb der sendto aufrufe gibts ne Fehlermeldung.

                                Edit: Was ich auch nicht verstehe warum wird die letzte Befehlszeile vor dem sendto ausgeführt

                                20:21:12.047	info	javascript.0 (149) script.js.Logik.GleitDurchschnitt: PV wert1: 0
                                20:21:12.048	info	javascript.0 (149) script.js.Logik.GleitDurchschnitt: PV wert3: 0
                                20:21:12.048	info	javascript.0 (149) script.js.Logik.GleitDurchschnitt: registered 0 subscriptions and 0 schedules
                                20:21:12.080	info	javascript.0 (149) script.js.Logik.GleitDurchschnitt: PV wert2: 3.5454545454545454
                                
                                F Offline
                                F Offline
                                fastfoot
                                wrote on last edited by fastfoot
                                #41

                                @ostseeskipper sendTo() arbeitet asynchron, d.h. dass die Werte iiiiirgendwann geliefert werden. Derweil wird aber bereits Zeile 18 abgearbeitet, welche aber den aktualisierten Wet aus Zeile 13 noch nicht kennt.

                                Abhilfe schafft eine Vezögerung in Zeile 18: setTimeout(()=>{log('PV Wert'+ pvwert)}, 100), in diesem Fall 100ms.

                                Man könnte das auch mit Promises lösen aber dann raucht dem geneigten Beginner noch mehr der Kopf, da hilft halt nur lesen, lesen, lesen...

                                iobroker läuft unter Docker auf QNAP TS-451+
                                SkriptRecovery: https://forum.iobroker.net/post/930558

                                apollon77A 1 Reply Last reply
                                0
                                • F fastfoot

                                  @ostseeskipper sendTo() arbeitet asynchron, d.h. dass die Werte iiiiirgendwann geliefert werden. Derweil wird aber bereits Zeile 18 abgearbeitet, welche aber den aktualisierten Wet aus Zeile 13 noch nicht kennt.

                                  Abhilfe schafft eine Vezögerung in Zeile 18: setTimeout(()=>{log('PV Wert'+ pvwert)}, 100), in diesem Fall 100ms.

                                  Man könnte das auch mit Promises lösen aber dann raucht dem geneigten Beginner noch mehr der Kopf, da hilft halt nur lesen, lesen, lesen...

                                  apollon77A Offline
                                  apollon77A Offline
                                  apollon77
                                  wrote on last edited by
                                  #42

                                  @fastfoot sagte in SQL getHistory Abfrage:

                                  Abhilfe schafft eine Vezögerung in Zeile 18: setTimeout(()=>{log('PV Wert'+ pvwert)}, 100), in diesem Fall 100ms.

                                  Ääähhmm ... neeee weil auch 100ms nicht sichchergestellt sind ... entweder "await sendToAsync" oder weitere Logik einfach im Callback des SendTo

                                  Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                                  • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                                  • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                                  F 1 Reply Last reply
                                  0
                                  • apollon77A apollon77

                                    @fastfoot sagte in SQL getHistory Abfrage:

                                    Abhilfe schafft eine Vezögerung in Zeile 18: setTimeout(()=>{log('PV Wert'+ pvwert)}, 100), in diesem Fall 100ms.

                                    Ääähhmm ... neeee weil auch 100ms nicht sichchergestellt sind ... entweder "await sendToAsync" oder weitere Logik einfach im Callback des SendTo

                                    F Offline
                                    F Offline
                                    fastfoot
                                    wrote on last edited by
                                    #43

                                    @apollon77 sagte in SQL getHistory Abfrage:

                                    "await sendToAsync"

                                    damit bist Du deiner Zeit weit voraus 🙂 Aber hast völlig Recht, man sollte das nicht so propagieren da es letztlich zu Fehlern führen kann. Andererseits, packe ich das in eine Funktion mit Promise dann nimmt der TE Reissaus

                                    iobroker läuft unter Docker auf QNAP TS-451+
                                    SkriptRecovery: https://forum.iobroker.net/post/930558

                                    apollon77A 1 Reply Last reply
                                    0
                                    • F fastfoot

                                      @apollon77 sagte in SQL getHistory Abfrage:

                                      "await sendToAsync"

                                      damit bist Du deiner Zeit weit voraus 🙂 Aber hast völlig Recht, man sollte das nicht so propagieren da es letztlich zu Fehlern führen kann. Andererseits, packe ich das in eine Funktion mit Promise dann nimmt der TE Reissaus

                                      apollon77A Offline
                                      apollon77A Offline
                                      apollon77
                                      wrote on last edited by
                                      #44

                                      @fastfoot Jupp. Daher einfach die Logik in den callback der query-sendTo rein und Ende 😉

                                      Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                                      • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                                      • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                                      O 1 Reply Last reply
                                      0
                                      • apollon77A apollon77

                                        @fastfoot Jupp. Daher einfach die Logik in den callback der query-sendTo rein und Ende 😉

                                        O Offline
                                        O Offline
                                        ostseeskipper
                                        wrote on last edited by
                                        #45

                                        @apollon77 und @fastfoot
                                        Euer wissen und können in allen Ehren, Hut ab und gar nicht gegen euch gemeint.
                                        Eigentlich wollte ich nur nen Durchschnittswert der letzten x Minuten in eine Variable lesen mit der ich weiterarbeiten kann.

                                        Das es nur so kompliziert geht und immer noch eine Hürde dazu kommt, sagt mir innerlich das am Grundprinzip etwas verbesserungsfähig ist. Es gibt viele dieser und ähnlicher Fragen und unterschiedliche Lösungsvorschläge im Forum.
                                        ioBroker hätte echt das Zeug zu mehr wenn's Bausteine zu den meisten Frage gäbe. Bei SQL mit gethistory schon sehr Nahe,
                                        aber haut doch bitte Euer Wissen um diese Anfängerfallstricke (asyncron, callback, promise) eines einfachen zuweisens zu einer Variable mit in die Funktion oder in ein Beispiel rein.
                                        Nicht das ich zu faul bin mir das anzueignen, aber wieviel Zeit würdet Ihr und andere in Zukunft für die Beantwortung solcher Fragen sparen 😉😇

                                        @fastfoot von daher freue ich mich auf die neuen Beispiele👍 ich probiere sie auch gern aus 😳

                                        O apollon77A 2 Replies Last reply
                                        0
                                        • O ostseeskipper

                                          @apollon77 und @fastfoot
                                          Euer wissen und können in allen Ehren, Hut ab und gar nicht gegen euch gemeint.
                                          Eigentlich wollte ich nur nen Durchschnittswert der letzten x Minuten in eine Variable lesen mit der ich weiterarbeiten kann.

                                          Das es nur so kompliziert geht und immer noch eine Hürde dazu kommt, sagt mir innerlich das am Grundprinzip etwas verbesserungsfähig ist. Es gibt viele dieser und ähnlicher Fragen und unterschiedliche Lösungsvorschläge im Forum.
                                          ioBroker hätte echt das Zeug zu mehr wenn's Bausteine zu den meisten Frage gäbe. Bei SQL mit gethistory schon sehr Nahe,
                                          aber haut doch bitte Euer Wissen um diese Anfängerfallstricke (asyncron, callback, promise) eines einfachen zuweisens zu einer Variable mit in die Funktion oder in ein Beispiel rein.
                                          Nicht das ich zu faul bin mir das anzueignen, aber wieviel Zeit würdet Ihr und andere in Zukunft für die Beantwortung solcher Fragen sparen 😉😇

                                          @fastfoot von daher freue ich mich auf die neuen Beispiele👍 ich probiere sie auch gern aus 😳

                                          O Offline
                                          O Offline
                                          ostseeskipper
                                          wrote on last edited by
                                          #46

                                          Also ich geb's jetzt auf das Ergebnis der Abfrage in eine Variable zu bekommen mit der ich im weiteren Scriptverlauf und ausserhalb von setTimeout Funktionen arbeiten kann.🤕

                                          F 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          114

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe