Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Umzug Daten SQL von altem auf neuen Datenpunkt

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Umzug Daten SQL von altem auf neuen Datenpunkt

    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      darkiop Most Active last edited by

      Hallo, ich habe vor ein paar Tagen begonnen DPs zu über den linkeddevices Adapter bzw. die neue alias Funktion des js-controllers 2.0 abzubilden.

      Dabei habe ich auch DPs abgebildet welche zuvor via SQL Adapter Archiviert werden. Beim Anlegen der Linkeddevices Objekte wird die Einstellung SQL übernommen (das hab ich heute festgestellt :)) und somit die Daten 2x in der DB abgelegt:

      fa07629c-b98b-4562-9e1c-aa09629b2d48-grafik.png

      Jetzt würd ich gerne in der Datenbank, die Daten von hm-rpc.2.xxxxxxxxxxxxxxxx.6.POWER in den neuen 'neutralen' DP linkeddevices.0.energie.steckdosen.pc_power umziehen.

      Wie würdet ihr da vorgehen? Meine Idee wäre jetzt, die alten Daten zu exportieren, im CSV die ID zu ändern und das ganze dann wieder in die ts_number zum importieren. Evtl. gibt es ja aber via SQL noch einen einfacheren Weg 🙂

      1 Reply Last reply Reply Quote 0
      • S
        sf-ing last edited by sf-ing

        Hallo,

        wie bist du jetzt vorgegangen. Ich habe so etwas Ähnliches geplant. Ich habe mehrere WLAN Steckdosen mit denen ich verschiedene Geräte vermesse. Nach den Messungen würde ich die gerne als seperate Messung in der MySQL Datenbank ablegen.

        MfG Sebastian

        D 1 Reply Last reply Reply Quote 0
        • D
          darkiop Most Active @sf-ing last edited by darkiop

          @sf-ing Das ist eine fleisarbeit, hier mal meine SQLs dafür.

          Entscheident ist das UPDATE zum Ändern der ID - vorher ein Backup der DB machen, du kannst dir hier logischer weise mit einem Klick alles zerschießen 😉

          Grundsätzlich kann man auch mit der Alias Funktion des SQL Adapters arbeiten, aber ich finde im Laufe der Zeit wird das Unübersichtlich.

          Vielleicht kann @apollon77 auch bei Gelegenheit in den SQL Adapter eine Migrationsfunktion einbauen? 😄

          SELECT * FROM datapoints WHERE NAME LIKE '%hm-rpc.2.000E9569A3178A.1.HUMIDITY%' ORDER BY id
          SELECT * FROM datapoints WHERE NAME LIKE '%linkeddevices.0.%' ORDER BY id
          SELECT * FROM datapoints
          
          /*
          Quelle  41    hm-rpc.2.000E9569A3178A.1.HUMIDITY
          Ziel    262   linkeddevices.0.klima.sensoren.flur_luftfeuchtigkeit
          
          ID ändern:
          - Beide IDs notieren: Quelle / Ziel
          - ggf. doppelte Einträge aus Quelle löschen
          - ggf. val anpassen (z.B. Wh in kWh)
          - UPDATE
          */
          
          SELECT x1.id AS id
                ,x2.name AS object
                ,from_unixtime(floor(ts/1000)) AS 'timestamp'
                ,ts AS 'unixtime'
                ,val AS VALUE
          FROM ts_number x1
          JOIN datapoints x2 ON x1.id = x2.id
          WHERE x1.id IN (262)
          -- and year(from_unixtime(floor(ts/1000))) = 2019
          -- AND ts between 1572548400000 AND 1579443698588
          ORDER BY from_unixtime(floor(ts/1000)) desc
          
          SELECT COUNT(*)
          FROM ts_number
          WHERE id = 262
          -- AND ts = 1571608800272
          ORDER BY ts desc
          
          /*
          
          https://www.freeformatter.com/epoch-timestamp-to-date-converter.html
          
          31.10.2019 20:00      1572548400000
          30.12.2019 15:00      1577714400000
          JETZT                 1579443698588   
           
          DELETE FROM ts_number WHERE id = 41 AND ts between 1577714400000 AND 1579443698588
          DELETE FROM ts_number WHERE id = 237 AND ts = 1572562740126
          DELETE FROM ts_number WHERE id in (66,67,68,69)
          DELETE FROM datapoints WHERE id in (66,67,68,69)
          DELETE FROM ts_number WHERE id = 41
          DELETE FROM datapoints WHERE id = 41
          
          SELECT COUNT(*) FROM ts_number WHERE id = 228
          
          UPDATE iobroker.ts_number
          SET val = val / 1000
          WHERE id = 63
          
          UPDATE iobroker.ts_number
          SET val = round(val,2)
          WHERE id = 63
          
          UPDATE iobroker.ts_number
          SET id = 262
          WHERE id = 242
          */
          
          SELECT year(x1.datum) AS jahr
                ,month(x1.datum) AS monat
                ,round(SUM(x1.wert),2) AS summe_in_kWh
          FROM (
            select x1.id as id
                  ,x2.name as object
                  ,from_unixtime(floor(ts/1000)) as datum
                  ,ts as 'unixtime'
                  ,val as wert
            from ts_number x1
            join datapoints x2 on x1.id = x2.id
            where x1.id IN (237)
            -- and year(from_unixtime(floor(ts/1000))) = 2019
            order by from_unixtime(floor(ts/1000)) DESC
          ) x1
          GROUP BY year(x1.datum),month(x1.datum)
          ORDER BY year(x1.datum),month(x1.datum)
          

          Edit: Die {1} ignorieren, hier hat die Forensoftware ein Eigenleben im Code-Tag entwickelt ...

          1 Reply Last reply Reply Quote 0
          • S
            sf-ing last edited by

            Danke für die Rückmeldung, ich gucke mir das mal an.

            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

            874
            Online

            32.0k
            Users

            80.5k
            Topics

            1.3m
            Posts

            migration sql
            2
            4
            568
            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