Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Datenexport CSV Verlaufsdaten (aus MYSQL) *gelöst*

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Datenexport CSV Verlaufsdaten (aus MYSQL) *gelöst*

    This topic has been deleted. Only users with topic management privileges can see it.
    • ?
      A Former User @surfer09 last edited by A Former User

      @surfer09

      Moin,

      läuft schon, ich kenne mich auch nicht mit jedem Dialekt aus, habe früher mit DB2 zu tun gehabt.
      Also aktuell baue ich mir das SQL zusammen, da ich jetzt das Datenmodell sehe.

      VG
      Bernd

      Edit
      Ich habe in die von meiner Synology bereitgestellte mariaDB mal die Raumtemperatur meine 11 Meross Thermostate und die Stromzähler Daten Aktuell und Total in die iobroker DB schreiben lassen.

      Da die mariaDB auf der Syno nicht ganz den Anforderungen das Applikation workbench entspricht, habe ich das von mir bevorzugte dbeaver genutzt um die abfrage zu erstellen, ist aber nicht wichtig, nur falls Du auf den Bildern was siehst, dass in der workbench anders aussieht.

      Daten unter datapoints
      bdf2461c-4684-4257-91fd-6fea11a5bbeb-grafik.png

      Daten unter sources
      1b215673-72f6-41bb-8a6c-a68ce4b79a13-grafik.png

      Daten unter ts_number
      6e6cfe8d-010e-43c0-9e05-8cbd06e9b7ea-grafik.png

      Abfrage

      SELECT	ts_number.id as ts_ID,
      	ts_number.ts as Unix_Time,
      	datapoints.name as Name,
      	ts_number.val as Temp
      	from iobroker.datapoints inner join iobroker.ts_number
      	on datapoints.id = ts_number.id
      	where ts_number.val is NOT NULL
      	AND   datapoints.name REGEXP  'meross.0.*.room'
      

      Ergebnis

      ts_ID|Unix_Time    |Name                                                   |Temp|
      -----+-------------+-------------------------------------------------------+----+
          1|1676212957358|meross.0.1911084120365426280348e1e91141bc.0100F469.room|22.0|
          1|1676214572839|meross.0.1911084120365426280348e1e91141bc.0100F469.room|22.5|
          1|1676214754242|meross.0.1911084120365426280348e1e91141bc.0100F469.room|22.0|
          1|1676219460179|meross.0.1911084120365426280348e1e91141bc.0100F469.room|21.5|
          1|1676224469133|meross.0.1911084120365426280348e1e91141bc.0100F469.room|21.0|
          1|1676225917126|meross.0.1911084120365426280348e1e91141bc.0100F469.room|21.5|
          1|1676226098332|meross.0.1911084120365426280348e1e91141bc.0100F469.room|21.0|
          1|1676226279574|meross.0.1911084120365426280348e1e91141bc.0100F469.room|21.5|
          1|1676227546666|meross.0.1911084120365426280348e1e91141bc.0100F469.room|21.0|
          2|1676212957358|meross.0.1911084120365426280348e1e91141bc.0100B602.room|21.5|
          2|1676219840673|meross.0.1911084120365426280348e1e91141bc.0100B602.room|21.0|
          3|1676212957358|meross.0.1911084120365426280348e1e91141bc.01008C35.room|23.0|
          3|1676214038963|meross.0.1911084120365426280348e1e91141bc.01008C35.room|23.5|
          3|1676216934601|meross.0.1911084120365426280348e1e91141bc.01008C35.room|23.0|
          3|1676220193325|meross.0.1911084120365426280348e1e91141bc.01008C35.room|22.5|
          3|1676220374605|meross.0.1911084120365426280348e1e91141bc.01008C35.room|23.0|
          3|1676220555801|meross.0.1911084120365426280348e1e91141bc.01008C35.room|22.5|
          3|1676225442568|meross.0.1911084120365426280348e1e91141bc.01008C35.room|22.0|
          3|1676225625231|meross.0.1911084120365426280348e1e91141bc.01008C35.room|22.5|
          3|1676226168439|meross.0.1911084120365426280348e1e91141bc.01008C35.room|22.0|
          3|1676226530140|meross.0.1911084120365426280348e1e91141bc.01008C35.room|22.5|
          3|1676227073163|meross.0.1911084120365426280348e1e91141bc.01008C35.room|22.0|
          4|1676212957358|meross.0.1911084120365426280348e1e91141bc.01008C27.room|23.0|
          4|1676214238293|meross.0.1911084120365426280348e1e91141bc.01008C27.room|23.5|
          4|1676216047364|meross.0.1911084120365426280348e1e91141bc.01008C27.room|23.0|
          4|1676219486260|meross.0.1911084120365426280348e1e91141bc.01008C27.room|22.5|
          4|1676223830481|meross.0.1911084120365426280348e1e91141bc.01008C27.room|22.0|
          4|1676224011761|meross.0.1911084120365426280348e1e91141bc.01008C27.room|22.5|
          4|1676224373988|meross.0.1911084120365426280348e1e91141bc.01008C27.room|22.0|
          5|1676212957358|meross.0.1911084120365426280348e1e91141bc.0100BC36.room|21.5|
          5|1676215518002|meross.0.1911084120365426280348e1e91141bc.0100BC36.room|21.0|
          5|1676215698033|meross.0.1911084120365426280348e1e91141bc.0100BC36.room|21.5|
          5|1676216060095|meross.0.1911084120365426280348e1e91141bc.0100BC36.room|21.0|
          5|1676218775997|meross.0.1911084120365426280348e1e91141bc.0100BC36.room|20.5|
          5|1676223844540|meross.0.1911084120365426280348e1e91141bc.0100BC36.room|20.0|
          6|1676212957358|meross.0.1911084120365426280348e1e91141bc.0100B4CC.room|20.5|
          6|1676218019673|meross.0.1911084120365426280348e1e91141bc.0100B4CC.room|20.0|
          6|1676218199673|meross.0.1911084120365426280348e1e91141bc.0100B4CC.room|20.5|
          6|1676218924187|meross.0.1911084120365426280348e1e91141bc.0100B4CC.room|20.0|
          7|1676212957358|meross.0.1911084120365426280348e1e91141bc.0100D4DC.room|20.0|
          7|1676217741376|meross.0.1911084120365426280348e1e91141bc.0100D4DC.room|19.5|
          7|1676220637903|meross.0.1911084120365426280348e1e91141bc.0100D4DC.room|19.0|
          7|1676224504203|meross.0.1911084120365426280348e1e91141bc.0100D4DC.room|18.5|
          7|1676225407490|meross.0.1911084120365426280348e1e91141bc.0100D4DC.room|19.0|
          7|1676226854865|meross.0.1911084120365426280348e1e91141bc.0100D4DC.room|19.5|
          7|1676227040071|meross.0.1911084120365426280348e1e91141bc.0100D4DC.room|19.0|
          7|1676227763340|meross.0.1911084120365426280348e1e91141bc.0100D4DC.room|19.5|
          7|1676228125340|meross.0.1911084120365426280348e1e91141bc.0100D4DC.room|19.0|
          8|1676212957358|meross.0.1911084120365426280348e1e91141bc.0100E679.room|22.0|
          8|1676215468924|meross.0.1911084120365426280348e1e91141bc.0100E679.room|21.5|
          8|1676217459894|meross.0.1911084120365426280348e1e91141bc.0100E679.room|21.0|
          8|1676220175039|meross.0.1911084120365426280348e1e91141bc.0100E679.room|20.5|
          8|1676223613839|meross.0.1911084120365426280348e1e91141bc.0100E679.room|20.0|
          8|1676228682820|meross.0.1911084120365426280348e1e91141bc.0100E679.room|19.5|
          8|1676228863967|meross.0.1911084120365426280348e1e91141bc.0100E679.room|20.0|
          8|1676229045099|meross.0.1911084120365426280348e1e91141bc.0100E679.room|19.5|
          8|1676229587781|meross.0.1911084120365426280348e1e91141bc.0100E679.room|20.0|
          8|1676229768906|meross.0.1911084120365426280348e1e91141bc.0100E679.room|19.5|
          9|1676212957358|meross.0.1911084120365426280348e1e91141bc.0100A870.room|20.0|
          9|1676214099030|meross.0.1911084120365426280348e1e91141bc.0100A870.room|20.5|
          9|1676216271031|meross.0.1911084120365426280348e1e91141bc.0100A870.room|20.0|
          9|1676218745174|meross.0.1911084120365426280348e1e91141bc.0100A870.room|19.5|
          9|1676222185462|meross.0.1911084120365426280348e1e91141bc.0100A870.room|19.0|
          9|1676229309291|meross.0.1911084120365426280348e1e91141bc.0100A870.room|18.5|
          9|1676229490431|meross.0.1911084120365426280348e1e91141bc.0100A870.room|19.0|
         10|1676212957358|meross.0.1911084120365426280348e1e91141bc.0100F304.room|20.0|
         10|1676214255341|meross.0.1911084120365426280348e1e91141bc.0100F304.room|20.5|
         10|1676215345772|meross.0.1911084120365426280348e1e91141bc.0100F304.room|20.0|
         10|1676215526589|meross.0.1911084120365426280348e1e91141bc.0100F304.room|20.5|
         10|1676216250564|meross.0.1911084120365426280348e1e91141bc.0100F304.room|20.0|
         10|1676219690473|meross.0.1911084120365426280348e1e91141bc.0100F304.room|19.5|
         10|1676223671281|meross.0.1911084120365426280348e1e91141bc.0100F304.room|19.0|
         10|1676225546566|meross.0.1911084120365426280348e1e91141bc.0100F304.room|19.5|
         10|1676226813458|meross.0.1911084120365426280348e1e91141bc.0100F304.room|20.0|
         11|1676212957358|meross.0.1911084120365426280348e1e91141bc.01009381.room|22.5|
         11|1676221760028|meross.0.1911084120365426280348e1e91141bc.01009381.room|22.0|
         11|1676224293867|meross.0.1911084120365426280348e1e91141bc.01009381.room|22.5|
         11|1676224836869|meross.0.1911084120365426280348e1e91141bc.01009381.room|22.0|
      

      Jetzt muss man evtl. noch die Zeit eingrenzen auf die Periode, die Du gern exportieren möchtest.

      Muss ich mir aber später anschauen, da ich mich langsam auf den Weg machen muss Super Bowl Night 🙂

      VG
      Bernd

      surfer09 1 Reply Last reply Reply Quote 1
      • surfer09
        surfer09 @Guest last edited by

        @dp20eic Das ist ja schonmal gut. Jetzt gibt es zwar die Werte aus, aber dazugehörige Datum fehlt? Zumindest kann ich es in deiner Ausgabe nicht sehen...

        ? 1 Reply Last reply Reply Quote 0
        • ?
          A Former User @surfer09 last edited by

          @surfer09

          Moin,

          das ist die Spalte Unix_Time, das kann man sich auch umrechnen lassen, bin aber wegen Super Bowl heute noch nicht richtig wach 🙂

          Wichtig ist auch, wieso möchtest Du das Exportieren, denn je nachdem was Du vor hast, muss dann auch noch aus der Tabelle sources etwas geholt werden.

          VG
          Bernd

          surfer09 1 Reply Last reply Reply Quote 0
          • surfer09
            surfer09 @Guest last edited by surfer09

            @dp20eic Also ich habe gerade mal deinen Befehl auf meine DB angepasst. Allerdings läuft das Ganze auf einen Fehler, den ich nicht ganz beheben kann...

            Befehl.jpg

            Meldung.jpg

            Achso zu der Frage, warum exportieren: Ich würde gerne die Daten nach Excel exportieren und diese grafisch darstellen lassen. Würde diese Daten dann gerne archivieren pro Jahr.

            ? 1 Reply Last reply Reply Quote 0
            • ?
              A Former User @surfer09 last edited by

              @surfer09 sagte in Datenexport Verlaufsdaten:

              Achso zu der Frage, warum exportieren: Ich würde gerne die Daten nach Excel exportieren und diese grafisch darstellen lassen. Würde diese Daten dann gerne archivieren pro Jahr.

              Moin,

              zum Archivieren ist ja eigentlich die Datenbank da 😉

              Du kannst Excel auch mit einer Datenbank verbinden, ohne dass Du Daten exportieren musst 😉

              Hast Du dich schon einmal mit Grafana befasst? Das ist genau dafür gemacht um sich mit einer Datenbank oder Anderen Datenquellen zu verbinden und dann Auswertungen grafisch darzustellen, auch dafür muss man keine Daten exportieren.

              Noch ein Tip hier für das Forum, wenn es sich um Text, wie die Fehlermeldung handelt, dann ist es besser diese in die sogenannten Code Tags zu packen, Bilder sind dazu nicht wirklich gut geeignet.
              Auch wenn Du dein SQL als Text in die Code Tags packst, dann könnte ich das einfach kopieren, ich werde das nicht aus einem Bild abtippen ;), aber beim drüber Schauen, würde ich sagen, das das - in iobroker-db das Problem ist, - ist eine Rechenoperationen wenn ich das auf dem anderen Bild richtig entziffern konnte sagte das auch die Workbench das Du ein Problem bei -db.datapoints hast.
              Ich müsste schauen wie bei mysql die Syntax zum Quoten des - ist, gerade keinen blassen Schimmer, Du kannst mal so versuchen

              'iobroker-db'.datapoints
              

              Natürlich bei allen Ausdrücken im SQL wo der Datenbankname benutzt wird.

              Die Code Tags findest Du über dem Bereich wo Du den Text verfasst </>, Du kannst dich aber auch in die sogenannte Markdown Syntax einlesen oder beim Schreiben eines Posts einfach 3 mal dann Enter, dann den Text, den Du zeigen möchtest, wieder Enter und wieder 3 mal. Sieht dann wie folgt aus

              ich habe 3 mal ` eingegeben
              Enter
              Dann den text und
              wieder 3 mal `
              

              VG
              Bernd

              surfer09 1 Reply Last reply Reply Quote 0
              • surfer09
                surfer09 @Guest last edited by surfer09

                @dp20eic: Fehler bleibt leider gleich, ich hab's mal in die Code-Tags gepackt 😉

                19:51:46	SELECT ts_number.id as ts_ID,  ts_number.ts as Unix_Time,  datapoints.name as Name,  ts_number.val as Watt  from 'iobroker-db'.datapoints inner join 'iobroker-db'.ts_number  on datapoints.id = ts_number.id  where ts_number.val is NOT NULL  AND   datapoints.name REGEXP  'hs100.0.192_168_1_215.power'	Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''iobroker-db'.datapoints inner join 'iobroker-db'.ts_number  on datapoints.id = ' at line 5	0.000 sec
                
                
                Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''iobroker-db'.datapoints inner join 'iobroker-db'.ts_number  on datapoints.id = ' at line 5
                
                

                Von Grafana gehört ja, aber noch nicht benutzt.
                Ich muss den Datenpunkt löschen, weil ich ein neues Gerät dafür einsetzen möchte, daher auch der Export, damit mir die Daten nicht verloren gehen. Ich möchte den "toten" Datenpunkt nicht in den Objekten behalten, nur dafür das ich die Daten noch im Zugriff habe.

                ? 1 Reply Last reply Reply Quote 0
                • ?
                  A Former User @surfer09 last edited by A Former User

                  @surfer09

                  Moin,

                  also bei mir zeig dbeaver folgende Syntax an

                  SELECT	ts_number.id as ts_ID,
                  		ts_number.ts as Unix_Time,
                  		datapoints.name as Name,
                  		ts_number.val as Temp
                  	from `iobroker-db`.datapoints inner join `iobroker-db`.ts_number
                  	on datapoints.id = ts_number.id
                  	where ts_number.val is NOT NULL
                  	AND   datapoints.name REGEXP  'meross.0.*.room'
                  ;
                  

                  Hatte vorhin die falschen Hochkommas genommen.

                  VG
                  Bernd

                  P.S.: also, wenn Du für die Zukunft, nicht auf die gleichen Probleme stoßen möchtest, immer wenn Du ein Gerät austauschen Musst, dann solltest Du dich mal mit dem Thema Alias beschäftigen. Grob gesagt, ist das z.B.:

                  Alias Orig. Device Austausch Device
                  Kaffeemaschine.power hs100.0.192_168_1_215.power da original ok, nicht vorhanden
                  Kaffeemaschine.power original defekt neues-device.power

                  Somit bleibt der Name des Datenpunkts nach außen hin gleich, auch in der Historie/Datenbank, oder für Scripts , nur der original Datenpunkt ändert sich.

                  surfer09 1 Reply Last reply Reply Quote 1
                  • surfer09
                    surfer09 @Guest last edited by

                    @dp20eic Perfekt, mit den Hochkommas funktionierte der Export! 🙂 Eine Schwierigkeit habe ich jetzt noch mit dem Datum / Uhrzeit. In Excel ist das Ganze noch ein Zahlendurcheinander.
                    Muss beim Befehl "Unix_Time" vielleicht gegen etwas anderes ausgetauscht werden?

                    ? 1 Reply Last reply Reply Quote 0
                    • ?
                      A Former User @surfer09 last edited by A Former User

                      @surfer09

                      Moin,
                      lass mich mal schauen, war heute mit anderen Dingen beschäftigt.

                      VG
                      Bernd

                      Edit

                      SELECT	ts_number.id as ts_ID,
                      		ts_number.ts as Unix_Time,
                      		DATE_FORMAT(FROM_UNIXTIME(ts/1000), GET_FORMAT(DATETIME,'EUR')) as formated_date,
                      		datapoints.name as Name,
                      		ts_number.val as Temp
                      	from iobroker.datapoints inner join iobroker.ts_number
                      	on datapoints.id = ts_number.id
                      	where ts_number.val is NOT NULL
                      	AND   datapoints.name REGEXP  'meross.0.*.room'
                      ;
                      

                      Oder in Excel umwandeln -> Google "unixtime in datum umwandeln"

                      VG

                      surfer09 1 Reply Last reply Reply Quote 1
                      • surfer09
                        surfer09 @Guest last edited by

                        @dp20eic sagte in Datenexport Verlaufsdaten:

                        DATE_FORMAT(FROM_UNIXTIME(ts/1000), GET_FORMAT(DATETIME,'EUR')) as formated_date,

                        Perfekt, ich danke dir! Hat alles funktioniert! 🙂

                        ? 1 Reply Last reply Reply Quote 0
                        • ?
                          A Former User @surfer09 last edited by

                          @surfer09 sagte in Datenexport CSV Verlaufsdaten (aus MYSQL) *gelöst*:

                          @dp20eic sagte in Datenexport Verlaufsdaten:

                          DATE_FORMAT(FROM_UNIXTIME(ts/1000), GET_FORMAT(DATETIME,'EUR')) as formated_date,

                          Perfekt, ich danke dir! Hat alles funktioniert! 🙂

                          Moin,

                          Bitte schön. Danke, das ich wieder etwas lernen konnte 🙂

                          Aber, Du solltest Dich wirklich mal mit den Aliase auseinander setzen, denn es kann immer mal etwas Kaputt gehen oder man Baut etwas um, dann passen die dazugehörigen Daten auch nicht mehr, und jedes mal die Daten aus der Datenbank zu nehmen ist auch nicht weise 😉

                          VG
                          Bernd

                          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

                          502
                          Online

                          32.0k
                          Users

                          80.4k
                          Topics

                          1.3m
                          Posts

                          3
                          21
                          692
                          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