Skip to content
  • Home
  • 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
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. History2DB converter

NEWS

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

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

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.3k

History2DB converter

Scheduled Pinned Locked Moved Tester
60 Posts 14 Posters 10.5k Views 13 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.
  • XxJooOX XxJooO

    Hallo Marcus,

    wenn Du Dich an die Anleitung hältst, dann brauchst Du keine Kenntnisse. Gehe davon aus, dass Dein ioBroker unter Linux läuft, dann genügt die Anleitung in der readme, vorher wichtig: Backup machen.
    Schau dazu auf den github vom history Adapter. Hier stehen die Befehle, die unter Linux per SSH abgesetzt werden müssen.
    Die beiden Jungs aus dem thread hier haben zusammen auch den Fehler ausgemerzt und das Übertragen der Werte funktioniert jetzt einwandfrei. Falls was unklar bleibt, nochmal melden und vor allem zeigen, wo es hakt.

    Grüße und viel Erfolg

    M Offline
    M Offline
    Marcus007
    wrote on last edited by Marcus007
    #48

    @XxJooO Danke.
    Du hast mir Mut gemacht. :grinning:
    Ich werde es bei Gelegenheit testen.

    Marcus

    Es hat geklappt:
    545 Tagesverzeichnisse mit ca. 18GB Daten wurden in 7h mit Erfolg umgezogen.

    Nochmals vielen Dank, für die Arbeit.

    Marcus

    1 Reply Last reply
    0
    • D Offline
      D Offline
      Davipet
      wrote on last edited by
      #49

      Hallo Leute,

      ich versuche grade meine History-Daten in influx zu migrieren.
      Leider bekomme ich beim Aufruf von "analyzeinflux.js" schon Fehler.

      In der Console bekomme ich:
      1.jpg

      Und zeitgleich im ioBroker-Log:
      2.jpg

      Beim Versuch ohne analyze-script die Daten zu migrieren wird schlicht alles "ignored". Datenpunkt für Datenpunkt.

      Mein IOBroker läuft als Docker unter Unraid... die InfluxDB in einem eigenen Docker Container.

      Kann mir jemand helfen?'

      Danke!

      David

      apollon77A 1 Reply Last reply
      0
      • D Davipet

        Hallo Leute,

        ich versuche grade meine History-Daten in influx zu migrieren.
        Leider bekomme ich beim Aufruf von "analyzeinflux.js" schon Fehler.

        In der Console bekomme ich:
        1.jpg

        Und zeitgleich im ioBroker-Log:
        2.jpg

        Beim Versuch ohne analyze-script die Daten zu migrieren wird schlicht alles "ignored". Datenpunkt für Datenpunkt.

        Mein IOBroker läuft als Docker unter Unraid... die InfluxDB in einem eigenen Docker Container.

        Kann mir jemand helfen?'

        Danke!

        David

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

        @davipet Ist das ne InfluxDB 1 oder 2? Ist die InfluxDB Instanz korrekt konfiguriert?

        InfluxDB 2 wird erst seit History 2.2.1 im analyze Skript unterstützt ... Welche History Version ists denn?

        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
        • D Offline
          D Offline
          Davipet
          wrote on last edited by
          #51

          Hallo @apollon77
          Danke für die Info!
          Es ist eine History 2.2.0 Instanz und eine influxDB 2
          Da ist also das Problem.
          Dann ziehe ich mal auf History 2.2.1 hoch und versuche es erneut :)

          Gruß

          David

          1 Reply Last reply
          1
          • M Offline
            M Offline
            meto
            wrote on last edited by
            #52

            Hallo,
            ich habe vor einigen Tagen begonnen auf Influx umzustellen. Influx funktioniert augenscheinlich einwandfrei. Die neuen Werte kommen alle an. Leider erhalte ich bei der Konvertierung Fehlermeldungen. Mit History 2.2.0 und Inlux 3.1.7 Ende des ganz kurz nach dem Aufruf mit "warn: influxdb.0 (12548) storeState executed with 3 errors" im iobroker log.

            Ich habe dann von Github History 2.2.1 und Inlux 3.1.8 installiert.

            Nun Endet das Ganz nach dem Aufruf unverrichteter Dinge:

            pi@raspbi4:/opt/iobroker/node_modules/iobroker.history/converter $ node history2db.js influxdb.0 info 20201231 /home/pi/history  --logChangesOnly --processNonExistingValuesOnly
            Send Data to influxdb.0
            Start at 20201231
            Use historyDir /home/pi/history
            earliesDBValues initialized from cache 135
            ExistingDBTypes initialized from cache 135
            Started processFiles with 135 known db values
            We start earliest at 20201231
            Day 20201231 - history.hm-rega.0.51333.json
              datapoints reduced from 345 --> 345
            This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:
            TypeError: Assignment to constant variable.
                at processFile (/opt/iobroker/node_modules/iobroker.history/converter/history2db.js:282:66)
                at processFiles (/opt/iobroker/node_modules/iobroker.history/converter/history2db.js:185:5)
                at main (/opt/iobroker/node_modules/iobroker.history/converter/history2db.js:148:5)
                at Adapter.<anonymous> (/opt/iobroker/node_modules/iobroker.history/converter/history2db.js:96:5)
                at Adapter.emit (node:events:513:28)
                at Adapter.emit (node:domain:489:12)
                at /opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:9132:26
            
            

            Hat jemand eine Idee was da falsch läuft und wie ich die Daten von History trotzdem in die Influx-Datenbank bekomme?

            Danke im Voraus.

            Gruß
            meto

            apollon77A 1 Reply Last reply
            0
            • M meto

              Hallo,
              ich habe vor einigen Tagen begonnen auf Influx umzustellen. Influx funktioniert augenscheinlich einwandfrei. Die neuen Werte kommen alle an. Leider erhalte ich bei der Konvertierung Fehlermeldungen. Mit History 2.2.0 und Inlux 3.1.7 Ende des ganz kurz nach dem Aufruf mit "warn: influxdb.0 (12548) storeState executed with 3 errors" im iobroker log.

              Ich habe dann von Github History 2.2.1 und Inlux 3.1.8 installiert.

              Nun Endet das Ganz nach dem Aufruf unverrichteter Dinge:

              pi@raspbi4:/opt/iobroker/node_modules/iobroker.history/converter $ node history2db.js influxdb.0 info 20201231 /home/pi/history  --logChangesOnly --processNonExistingValuesOnly
              Send Data to influxdb.0
              Start at 20201231
              Use historyDir /home/pi/history
              earliesDBValues initialized from cache 135
              ExistingDBTypes initialized from cache 135
              Started processFiles with 135 known db values
              We start earliest at 20201231
              Day 20201231 - history.hm-rega.0.51333.json
                datapoints reduced from 345 --> 345
              This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:
              TypeError: Assignment to constant variable.
                  at processFile (/opt/iobroker/node_modules/iobroker.history/converter/history2db.js:282:66)
                  at processFiles (/opt/iobroker/node_modules/iobroker.history/converter/history2db.js:185:5)
                  at main (/opt/iobroker/node_modules/iobroker.history/converter/history2db.js:148:5)
                  at Adapter.<anonymous> (/opt/iobroker/node_modules/iobroker.history/converter/history2db.js:96:5)
                  at Adapter.emit (node:events:513:28)
                  at Adapter.emit (node:domain:489:12)
                  at /opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:9132:26
              
              

              Hat jemand eine Idee was da falsch läuft und wie ich die Daten von History trotzdem in die Influx-Datenbank bekomme?

              Danke im Voraus.

              Gruß
              meto

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

              @meto Bitte Github issue anlegen bei histotry ... muss ich ansehen, scheint code fehler

              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
              M 1 Reply Last reply
              0
              • apollon77A apollon77

                @meto Bitte Github issue anlegen bei histotry ... muss ich ansehen, scheint code fehler

                M Offline
                M Offline
                meto
                wrote on last edited by meto
                #54

                @apollon77 issue ist geöffnet. Hab den Fehler auch bei mir schon gefunden.
                Hab bei mir jetzt Zeile 282 von "const jj = 0" in "let jj = 0" geändert. Läuft jetzt gerade noch. Aber auf jeden Fall nicht gleich in den obigen Fehler. Anmerkung ist auch im Github.

                apollon77A 1 Reply Last reply
                1
                • M meto

                  @apollon77 issue ist geöffnet. Hab den Fehler auch bei mir schon gefunden.
                  Hab bei mir jetzt Zeile 282 von "const jj = 0" in "let jj = 0" geändert. Läuft jetzt gerade noch. Aber auf jeden Fall nicht gleich in den obigen Fehler. Anmerkung ist auch im Github.

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

                  @meto Danke, hatte das gleiche gesehen. Fix kommt nachher

                  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
                  • C Offline
                    C Offline
                    Chris83 0
                    wrote on last edited by
                    #56

                    Hallo zusammen,
                    ich bin auch gerade mit dem Umzug in MySQL beschäftig. Leider bekomme ich die Daten von den Bosch Geräten nicht migriert und beispielsweise diese Meldung angezeigt:

                    Day 20220925 - history.bshb.0.hdm~ZigBee~385b44fffeabccbb.PowerMeter.energyConsumption.json
                        Ignore ID history.bshb.0.hdm~ZigBee~385b44fffeabccbb.PowerMeter.energyConsumption.json: bshb.0.hdm~ZigBee~385b44fffeabccbb.PowerMeter.energyConsumption
                    
                    

                    Ich vermute, dass es an dem Zeichen "~" liegt, welches er anstelle der beiden Doppelpunkte gesetzt hat.
                    Im History Data-Ordner wurde das Logfile unter diesem Namen gespeichert:

                    history.bshb.0.hdm~ZigBee~385b44fffeabccbb.PowerMeter.energyConsumption.json
                    

                    Der dazugehörige Datenpunkt:

                    bshb.0.hdm:ZigBee:385b44fffeabccbb.PowerMeter.powerConsumption
                    

                    Hätte jemand eine Idee, wie ich die Daten doch noch übertragen kann?

                    apollon77A 1 Reply Last reply
                    0
                    • C Chris83 0

                      Hallo zusammen,
                      ich bin auch gerade mit dem Umzug in MySQL beschäftig. Leider bekomme ich die Daten von den Bosch Geräten nicht migriert und beispielsweise diese Meldung angezeigt:

                      Day 20220925 - history.bshb.0.hdm~ZigBee~385b44fffeabccbb.PowerMeter.energyConsumption.json
                          Ignore ID history.bshb.0.hdm~ZigBee~385b44fffeabccbb.PowerMeter.energyConsumption.json: bshb.0.hdm~ZigBee~385b44fffeabccbb.PowerMeter.energyConsumption
                      
                      

                      Ich vermute, dass es an dem Zeichen "~" liegt, welches er anstelle der beiden Doppelpunkte gesetzt hat.
                      Im History Data-Ordner wurde das Logfile unter diesem Namen gespeichert:

                      history.bshb.0.hdm~ZigBee~385b44fffeabccbb.PowerMeter.energyConsumption.json
                      

                      Der dazugehörige Datenpunkt:

                      bshb.0.hdm:ZigBee:385b44fffeabccbb.PowerMeter.powerConsumption
                      

                      Hätte jemand eine Idee, wie ich die Daten doch noch übertragen kann?

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

                      @chris83-0 Bitte Github issue bei history anlegen. denke da fehlt die konvertierung zurück ... aber problem ist das das die Information was das zeichen vorher war verlioren ist ... da muss ich mal rein überlegen

                      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
                      C 1 Reply Last reply
                      0
                      • apollon77A apollon77

                        @chris83-0 Bitte Github issue bei history anlegen. denke da fehlt die konvertierung zurück ... aber problem ist das das die Information was das zeichen vorher war verlioren ist ... da muss ich mal rein überlegen

                        C Offline
                        C Offline
                        Chris83 0
                        wrote on last edited by Chris83 0
                        #58

                        @apollon77 Okay, ist erledigt Github issue #198.

                        Habe probehalber mal ein .json entsprechend umbenannt (also ":" anstelle "~") und das hat dann auch geklappt. Muss nur mal schauen, wie ich das als .batch job machen kann, weil sind doch einige files zu bearbeiten

                        EDIT: "rename 's/~/:/g' *"

                        apollon77A 1 Reply Last reply
                        1
                        • C Chris83 0

                          @apollon77 Okay, ist erledigt Github issue #198.

                          Habe probehalber mal ein .json entsprechend umbenannt (also ":" anstelle "~") und das hat dann auch geklappt. Muss nur mal schauen, wie ich das als .batch job machen kann, weil sind doch einige files zu bearbeiten

                          EDIT: "rename 's/~/:/g' *"

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

                          @chris83-0 Super das du nen workaround hast ... dann hab ich zeit nachzudenken :-)

                          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
                          • _JOHN__ Offline
                            _JOHN__ Offline
                            _JOHN_
                            wrote on last edited by
                            #60

                            Mahlzeit!

                            auch wenn der Eintrag hier schon älter ist, passt meine Erfahrung mit dem Import-Script wohl am besten hier rein.
                            Evtl. hilft es ja jmd. mit dem gleichen Problem.

                            Ich habe kürzlich auch zu Influx gewechselt - aus versch. Gründe noch die 1.8, tut hier nichts zur Sache.
                            Habe mich aber dazu entschieden, die Objekt-Datenpunkte die ich zukünftig nach Influx loggen will, mit einem Alias zu versehen (im Gegensatz zu "HIS" wo ich keine Alias gesetzt hatte)
                            Dadurch finde ich die entsprechenden Felder in bspw. Grafana später schneller und die Namen sind wesentlich kürzer.

                            statt:

                            "history.sourceanalytix.0.sonoff__0__DVES_49A41C__ENERGY_Power_1.currentYear.consumed.02_currentWeek"

                            nur noch:

                            "Waschmaschine_SA_Power_currentYear_consumed_WOCHE"

                            Entsprechend habe ich den Alias in den Einstellungen des Objekts für Influx gesetzt.

                            Zum Problem wurde nun aber, dass meine alten History-Daten (gleiche Objekte) KEINEN Alias hatten wie oben erwähnt,
                            somit die JSON's mit dem original Objekt-Pfad-Namen benannt waren und das Import-Script diese natürlich als, ich nenn das mal "eigenständig" betrachtet
                            und nicht in meine bereits vorhandenen Felder der Influx importiert da dort ja bereits der Alias verwendet wird, den ich für Influx hinterlegt habe.

                            Ich habe daher alle betreffenden JSON's aus der History umbenannt (/opt/iobroker/iobroker-data/history-data/) - also so, dass diese nun identisch mit meinen Alias sind die ich für Influx vergeben habe
                            und zu den in Influx erstellten Datenbankfelder passen.

                            Der Analyzer lief durch, das Ergebnis war für mich soweit OK - wie erwartet; also hab ich den Import gestartet,
                            bekam dann aber immer die Ausgabe das die Objekte "ignoriert" werden.
                            Festzustellen war hierbei, dass die Objektnamen, die von HIS kamen, offensichtlich nicht zu den Feldern in der Influx passten obwohl der Name der JSON in der HIS identisch war.

                            Also bspw:

                            DB Feld in Influx (entsprechend dem Alias):

                            Waschmaschine_SA_Power_currentYear_consumed_WOCHE

                            und das entsprechend JSON File unter HIS:

                            Waschmaschine_SA_Power_currentYear_consumed_WOCHE.JSON

                            Bei genauer Betrachtung der Logs des Import-Script habe ich dann aber feststellen müssen, das das Script den Namen der aus HIS kommenden Daten wohl abschneidet.
                            Aus "Waschmaschine_SA_Power_currentYear_consumed_WOCHE" wurde "chine_SA_Power_currentYear_consumed_WOCHE".

                            Nach langem suchen; ich bin in erster Linie ma SysAdmin aber weiß Gott kein Entwickler..., habe ich dann im Script den folgenden Abschnitt entdeckt und festgestellt das tatsächlich immer die ersten 8 Zeichen abgeschnitten werden.
                            Das hat sicher generell seinen Sinn, da normalerweise jeder Eintrag mit "history." beginnt.
                            Das habe ich bei der Umbenennung jedoch nicht weiter beachtet, den Zusammenhang auch nicht gekannt - Ziel war es ja das die Namen identisch zu meinen Felder in Influx / dem Alias sind.

                            Hier die Script Zeilen (im org. die Zeilen 188ff)

                            function processFile() {
                                if (breakIt) finish(true);
                                if (Object.keys(allFiles).length === 0) finish(true);
                            
                                const day = parseInt(Object.keys(allFiles)[Object.keys(allFiles).length - 1], 10);
                                const tsCheck = new Date(Math.floor(day / 10000), 0, 1).getTime();
                            
                                if (allFiles[day].files.length > 0) {
                                    const dir = allFiles[day].dirname;
                                    const file = allFiles[day].files.shift();
                                    const id = file.substring(8, file.length - 5);  <--------HIER !!!!! ########  
                                    const weatherunderground_special_handling = (id.indexOf('weatherunderground') !== -1 && id.indexOf('current.precip') !== -1);
                                    console.log('Day ' + day + ' - ' + file);
                            

                            Ich habe somit die Zeile const id = file.substring(8, file.length - 5); zu const id = file.substring(0, file.length - 5);

                            geändert. Und siehe da, mein Import lief im Anschluss nun erfolgreich durch, da die Namen nun übereinstimmten.

                            Alternativ, das sei erwähnt wäre es wohl auch eine Option gewesen meine gesamten JSON Files unter "/opt/iobroker/iobroker-data/history-data/" nochmals umzubenennen und um "history." zu erweitern.
                            Ich habe mich nur aus Zeitgründen dagegen entschieden, da ich die Daten ~80000 Files erst einmal herunterladen und auch wieder uploaden hätte müssen. Die Anpassung des Scripts war da weit schneller.

                            Alles in allem wäre für mich aber festzuhaltend, dass es somit durch aus möglich ist, History-Daten auch aus der Vergangenheit zu importieren, wenn diese KEINEN Alias hatten und die neuen Datenpunkte einen verwenden.
                            Entsprechender Aufwand wie oben beschrieben vorausgesetzt.

                            Vermutlich erzählt mir nun einer, dass das anders viel einfacher gewesen wäre :smile: das wäre für mich OK,
                            aber für mich war es erst einmal die einzige Möglichkeit die ich gesehen habe - und sie scheint zu funktionieren.
                            Ich hätte mich geäergert, wären eine alten Daten aus HIS "verloren" gewesen - oder ich hätte dir org. Namen in Influx verwenden müssen...was doof gewesen wäre.

                            so long - Danke an der stelle für das Script!! - geniale Sache!
                            Grüße John.

                            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

                            430

                            Online

                            32.4k

                            Users

                            81.5k

                            Topics

                            1.3m

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

                            • Don't have an account? Register

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