Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. SQL Datenbank auslesen

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    SQL Datenbank auslesen

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

      Hallo,

      irgendwo gabs hier mal ein Script für mySQL, was aber nicht funktionierte.

      Denke aber, das einige sowas nutzen.

      Also, wie werte ich eine SQL Datenbank aus?

      • kumulierte Werte

      zb mein Gaszähler. Der zählt ja nur hoch, ich möchte aber auch Tageswerte, Wochenwerte oder Monatswerte

      • Min / Max / Mittel

      zb Temperaturwerte auswerten (Tageswerte, Wochenwerte oder Monatswerte)

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

        Wozu eine SQL Datenbank ?
        @noxx:

        Gaszähler. Der zählt ja nur hoch, ich möchte aber auch Tageswerte, Wochenwerte oder Monatswerte `
        Dazu muss man nur den Zähl-Wert täglich, wöchentlich und monatlich in jeweils einem Datenpunkt speichern und die Differenz bilden.
        @noxx:

        • Min / Max / Mittel `
          Dafür gibt es ein http://www.iobroker.net/docu/?page_id=3670&lang=de, das die Werte über 24 h ermittelt. Aus den Tageswerten lassen sich nach dem gleichen Prinzip auch Wochen- und Monatswerte bilden.

        EDIT: Es gibt auch noch die Möglichkeit, die Werte mittels https://github.com/ioBroker/ioBroker.javascript#gethistory einzulesen.

        1 Reply Last reply Reply Quote 0
        • N
          noxx last edited by

          @paul53:

          Wozu eine SQL Datenbank ?

          Dazu muss man nur den Zähl-Wert täglich, wöchentlich und monatlich in jeweils einem Datenpunkt speichern und die Differenz bilden. `

          In erster Line weil die Daten ja in die SQL geschrieben werden und bisher

          nur für vis genutzt werden, warum nicht auch im iobroker?

          Und, weil das 2 Beispiele waren, ich weiß ja noch nicht welche

          Datenpunkte ich ggf später benötige. Die Daten würden dann fehlen, oder

          müssten dann noch extrahiert werden.

          Und, weil ich gerne wüsste, wie es geht.

          Schöner wäre natürlich ein Adapter, der das machen würde

          (Gerät wählen, Datenbank wählen, Was man auswerten möchte, Name neuer Datenpunkt)

          Gruß

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

            @noxx:

            Und, weil ich gerne wüsste, wie es geht. `
            Hast Du Dir https://github.com/ioBroker/ioBroker.javascript#gethistory angesehen. Damit bekommst Du die Daten für einen definierten Zeitraum aus der Datenbank und must sie "nur noch" auswerten.

            1 Reply Last reply Reply Quote 0
            • N
              noxx last edited by

              Danke, ich versuche es mal.

              Gesendet von meinem GT-I9195 mit Tapatalk

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

                Bzw auch https://github.com/ioBroker/ioBroker.sql#get-history

                1 Reply Last reply Reply Quote 0
                • N
                  noxx last edited by

                  danke, das Beispiel funktioniert bei mir nicht

                  `var end = new Date().getTime();
                  sendTo('sql.0', 'getHistory', {
                      id: 'rflink.0.channels.Cresta_4.TEMP',
                      options: {
                          start:      end - 3600000,
                          end:        end,
                          aggregate: 'minmax' // or 'none' to get raw values
                      }
                  }, function (result) {
                      for (var i = 0; i < result.result.length; i++) {
                          console.log(result.result[i].id + ' ' + new Date(result.result[i].ts).toISOString());
                      }
                  });`
                  
                  liefert:
                  `~~[code]~~21:41:40.041	[info]	javascript.0 Stop script script.js.common.Wetter_MinMax_Temp
                  21:41:40.042	[info]	javascript.0 Start javascript script.js.common.Wetter_MinMax_Temp
                  21:41:40.043	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: registered 0 subscriptions and 0 schedules
                  21:41:40.044	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: undefined 2017-08-07T18:41:39.837Z
                  21:41:40.044	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: undefined 2017-08-07T18:45:06.279Z
                  21:41:40.045	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: undefined 2017-08-07T18:48:22.237Z
                  21:41:40.045	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: undefined 2017-08-07T18:52:27.529Z
                  21:41:40.045	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: undefined 2017-08-07T18:55:43.375Z
                  21:41:40.046	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: undefined 2017-08-07T18:58:10.233Z
                  21:41:40.046	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: undefined 2017-08-07T19:03:04.744Z
                  21:41:40.046	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: undefined 2017-08-07T19:07:09.245Z
                  21:41:40.046	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: undefined 2017-08-07T19:09:36.403Z
                  21:41:40.047	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: undefined 2017-08-07T19:16:10.837Z
                  21:41:40.047	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: undefined 2017-08-07T19:18:35.243Z
                  21:41:40.047	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: undefined 2017-08-07T19:21:02.243Z
                  21:41:40.047	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: undefined 2017-08-07T19:25:07.287Z
                  21:41:40.048	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: undefined 2017-08-07T19:30:01.266Z
                  21:41:40.048	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: undefined 2017-08-07T19:33:17.247Z
                  21:41:40.048	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: undefined 2017-08-07T19:37:22.393Z
                  21:41:40.049	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: undefined 2017-08-07T19:40:38.301Z
                  21:41:40.049	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: undefined 2017-08-07T19:41:27.251Z[/code]`[/i][/i]
                  
                  1 Reply Last reply Reply Quote 0
                  • apollon77
                    apollon77 last edited by

                    minmax als Aggregaotortyp gibts bei sql nicht. nimm average

                    1 Reply Last reply Reply Quote 0
                    • N
                      noxx last edited by

                      kommt das gleiche bei raus

                      `var end = new Date().getTime();
                      sendTo('sql.0', 'getHistory', {
                          id: 'rflink.0.channels.Cresta_4.TEMP',
                          options: {
                              start:      end - 3600000,
                              end:        end,
                              aggregate: 'average' // or 'none' to get raw values
                          }
                      }, function (result) {
                          for (var i = 0; i < result.result.length; i++) {
                              console.log(result.result[i].id + ' ' + new Date(result.result[i].ts).toISOString());
                          }
                      });`
                      
                      `~~[code]~~22:13:18.608	[info]	javascript.0 Stop script script.js.common.Wetter_MinMax_Temp
                      22:13:18.960	[info]	javascript.0 Start javascript script.js.common.Wetter_MinMax_Temp
                      22:13:18.961	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: registered 0 subscriptions and 0 schedules
                      22:13:19.010	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: undefined 2017-08-07T19:13:18.953Z
                      22:13:19.011	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: undefined 2017-08-07T19:16:08.153Z
                      22:13:19.012	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: undefined 2017-08-07T19:18:32.153Z
                      22:13:19.012	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: undefined 2017-08-07T19:21:03.353Z
                      22:13:19.012	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: undefined 2017-08-07T19:25:08.153Z
                      22:13:19.013	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: undefined 2017-08-07T19:30:03.353Z
                      22:13:19.013	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: undefined 2017-08-07T19:33:17.753Z
                      22:13:19.013	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: undefined 2017-08-07T19:37:22.553Z
                      22:13:19.013	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: undefined 2017-08-07T19:40:36.953Z
                      22:13:19.014	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: undefined 2017-08-07T19:41:27.353Z
                      22:13:19.014	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: undefined 2017-08-07T19:42:17.753Z
                      22:13:19.014	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: undefined 2017-08-07T19:47:56.153Z
                      22:13:19.014	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: undefined 2017-08-07T19:54:32.153Z
                      22:13:19.015	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: undefined 2017-08-07T19:59:27.353Z
                      22:13:19.015	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: undefined 2017-08-07T20:01:51.353Z
                      22:13:19.015	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: undefined 2017-08-07T20:07:36.953Z
                      22:13:19.015	[info]	javascript.0 script.js.common.Wetter_MinMax_Temp: undefined 2017-08-07T20:10:51.353Z[/code]`
                        [2880_1.png](/assets/uploads/files/2880_1.png)  [/i][/i]
                      
                      1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 last edited by

                        Bei vorgegebener ID wird sie nicht zurück geliefert. Was Du benötigst, ist

                         `for (var i = 0; i < result.result.length; i++) {
                                log(result.result[i].val + ' ' + new Date(result.result[i].ts).toISOString());
                            }` [/i][/i]
                        
                        1 Reply Last reply Reply Quote 0
                        • apollon77
                          apollon77 last edited by

                          Hätte jetzt auch vorgeschlagen erstmal ganz einfach anzufangen und ein

                          console.log(JSON.stringify(result,null,2));
                          

                          in die Callback Methode zu schreiben, dann sieht man ganz genau was zurückkommt.

                          1 Reply Last reply Reply Quote 0
                          • N
                            noxx last edited by

                            @paul53:

                            Bei vorgegebener ID wird sie nicht zurück geliefert. Was Du benötigst, ist

                             `for (var i = 0; i < result.result.length; i++) {
                                    log(result.result[i].val + ' ' + new Date(result.result[i].ts).toISOString());
                                }` 
                            
                            danke, damit kommt was.
                            
                            sind halt mehr Infos, die ein Quereinsteiger ohne JS Kenntnisse weiß.
                            
                            versuche schon immer die Beispiele zu verstehen, aber manchmal sind das
                            
                            doch böhmische Dörfer.[/i][/i]
                            ``` ` 
                            1 Reply Last reply Reply Quote 0
                            • paul53
                              paul53 last edited by

                              @noxx:

                              versuche schon immer die Beispiele zu verstehen, aber manchmal sind das doch böhmische Dörfer. `
                              Das liegt nicht an Dir, sondern an dem schlechten Beispiel. Ich hatte vor einiger Zeit mal getestet und herausgefunden, dass result.result.id__ nur geliefert wird, wenn man als ID übergibt id: '*'.

                              Javascript-Kenntnisse habe ich mir auch erst durch ioBroker angeeignet.__

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

                                @ noxx:

                                Hast du mittlerweile eine Lösung für dein Thema gefunden ?

                                Gruß

                                Michael

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                564
                                Online

                                31.7k
                                Users

                                79.7k
                                Topics

                                1.3m
                                Posts

                                4
                                14
                                4843
                                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