Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. [gelöst] SourceAnalytix neuer Alias, hist. Werte übernehmen

NEWS

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

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

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

[gelöst] SourceAnalytix neuer Alias, hist. Werte übernehmen

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
datenpunktkopierensourceanalytix
5 Beiträge 3 Kommentatoren 635 Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • metaxaM Offline
    metaxaM Offline
    metaxa
    schrieb am zuletzt editiert von metaxa
    #1

    Liebes Forum!

    Ich bin gerade dabei holprig aber doch, mittels Blockly und Alias, die Werte des SA Adapters vor negativen Werten nach einem Stromausfall zu schützen.

    Jetzt logge ich aber schon seit längerer Zeit mit und verliere natürlich alle historischen Daten sobald ich einen Alias anstelle des alten "Energy_Total" tracke.

    Ich habe aus dem Jahre 2020 einen Beitrag von @paul53 gefunden,

    const idsSrc = $('samsung_tizen.0.command.*'); 
     
    idsSrc.each(function(id, i) {
        let idDst = id.replace('samsung_tizen.0', 'samsung_tizen.1');
        let obj = getObject(id);
        if(!existsObject(idDst)) setObject(idDst, obj);
    });
    
    


    welches die Struktur (Daten auch?) kopiert aber das Script ist nur rot unterlegt und läuft dadurch natürlich nicht.
    Ich möchte gerne z.B. sämtliche DP samt Werten
    "sourceanalytix.0.hm-rpc__0__KEQ0965973__2__ENERGY_COUNTER.*"
    nach
    "sourceanalytix.0.alias__0__Energie__Strom__Poolpumpe__CONSUMPTION."
    kopieren um dort ab jetzt die neuen Daten adaptiv zu erfassen.

    Kann mir eventuell jemand helfen?

    LG, mxa

    Edit: Hatte Fehler in meinem adaptierten Script, zumindest die Datenstruktur konnte ich schon vollständig übertragen.

    crunchipC 1 Antwort Letzte Antwort
    0
    • metaxaM metaxa

      Liebes Forum!

      Ich bin gerade dabei holprig aber doch, mittels Blockly und Alias, die Werte des SA Adapters vor negativen Werten nach einem Stromausfall zu schützen.

      Jetzt logge ich aber schon seit längerer Zeit mit und verliere natürlich alle historischen Daten sobald ich einen Alias anstelle des alten "Energy_Total" tracke.

      Ich habe aus dem Jahre 2020 einen Beitrag von @paul53 gefunden,

      const idsSrc = $('samsung_tizen.0.command.*'); 
       
      idsSrc.each(function(id, i) {
          let idDst = id.replace('samsung_tizen.0', 'samsung_tizen.1');
          let obj = getObject(id);
          if(!existsObject(idDst)) setObject(idDst, obj);
      });
      
      


      welches die Struktur (Daten auch?) kopiert aber das Script ist nur rot unterlegt und läuft dadurch natürlich nicht.
      Ich möchte gerne z.B. sämtliche DP samt Werten
      "sourceanalytix.0.hm-rpc__0__KEQ0965973__2__ENERGY_COUNTER.*"
      nach
      "sourceanalytix.0.alias__0__Energie__Strom__Poolpumpe__CONSUMPTION."
      kopieren um dort ab jetzt die neuen Daten adaptiv zu erfassen.

      Kann mir eventuell jemand helfen?

      LG, mxa

      Edit: Hatte Fehler in meinem adaptierten Script, zumindest die Datenstruktur konnte ich schon vollständig übertragen.

      crunchipC Abwesend
      crunchipC Abwesend
      crunchip
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #2

      @metaxa hier ging es ebenfalls um das Thema
      https://forum.iobroker.net/post/835238

      umgestiegen von Proxmox auf Unraid

      metaxaM 1 Antwort Letzte Antwort
      1
      • crunchipC crunchip

        @metaxa hier ging es ebenfalls um das Thema
        https://forum.iobroker.net/post/835238

        metaxaM Offline
        metaxaM Offline
        metaxa
        schrieb am zuletzt editiert von metaxa
        #3

        @crunchip Danke für den Hinweis!!!! Warum hatte ich den nicht selbst gefunden :face_palm: Ich mach damit mal weiter!

        Edit, bin nun einen großen Schritt weiter, alle Werte sind dort wo ich sie haben will :-) :

        Dieses Script von @a200 hat sofort alle DP perfekt des aktuellen Jahr 2023 übertragen, danke dafür!

        var aliste, i;
        var quelle="sourceanalytix.0.hm-rpc__0__KEQ0965973__2__ENERGY_COUNTER";
        var ziel="sourceanalytix.0.alias__0__Energie__Strom__Poolpumpe__CONSUMPTION";
        
        aliste = [];
        var i_list = Array.prototype.slice.apply($("channel[state.id="+quelle+"*]"));
        for (var i_index in i_list) {
         i = i_list[i_index];
         log(i.replace(quelle, ziel) + " = " + getState(i).val);
         setState(i.replace(quelle, ziel), getState(i).val);
        }
        

        Leider wurden aber samtliche Daten des Vorjahrs 2022 ignoriert, ich vermute weil die DP im aktuell angelegten SA nicht vorhanden sind.

        Da gab es noch das Script von @paul53

        const idsSrc = $('sourceanalytix.0.hm-rpc__0__KEQ0965973__2__ENERGY_COUNTER.*');
        
        idsSrc.each(function(id, i) {
           let idDst = id.replace('sourceanalytix.0.hm-rpc__0__KEQ0965973__2__ENERGY_COUNTER', 'sourceanalytix.0.alias__0__Energie__Strom__Poolpumpe__CONSUMPTION');
           let obj = getObject(id);
           if(!existsObject(idDst)) setObject(idDst, obj);
        });
        


        das bei meinen ersten Versuchen jedoch nur die Datenstruktur ohne Werte übertrug.

        Eh schon egal, probierte ich somit eine 2 Scriptvariante aus:

        1. Script von @paul53 für die Datenstruktur
        2. Script von @a200 für die Daten

        Ergebnis: ALLE Daten da wo ich sie haben will!

        Fazit: Geht wahrscheinlich einfach auch mit nur EINEM Script, aber dafür fehlt mir das Wissen, die Geduld und die Nerven :-)

        Danke diesem aktiven Forum!
        mxa

        paul53P 1 Antwort Letzte Antwort
        0
        • metaxaM metaxa

          @crunchip Danke für den Hinweis!!!! Warum hatte ich den nicht selbst gefunden :face_palm: Ich mach damit mal weiter!

          Edit, bin nun einen großen Schritt weiter, alle Werte sind dort wo ich sie haben will :-) :

          Dieses Script von @a200 hat sofort alle DP perfekt des aktuellen Jahr 2023 übertragen, danke dafür!

          var aliste, i;
          var quelle="sourceanalytix.0.hm-rpc__0__KEQ0965973__2__ENERGY_COUNTER";
          var ziel="sourceanalytix.0.alias__0__Energie__Strom__Poolpumpe__CONSUMPTION";
          
          aliste = [];
          var i_list = Array.prototype.slice.apply($("channel[state.id="+quelle+"*]"));
          for (var i_index in i_list) {
           i = i_list[i_index];
           log(i.replace(quelle, ziel) + " = " + getState(i).val);
           setState(i.replace(quelle, ziel), getState(i).val);
          }
          

          Leider wurden aber samtliche Daten des Vorjahrs 2022 ignoriert, ich vermute weil die DP im aktuell angelegten SA nicht vorhanden sind.

          Da gab es noch das Script von @paul53

          const idsSrc = $('sourceanalytix.0.hm-rpc__0__KEQ0965973__2__ENERGY_COUNTER.*');
          
          idsSrc.each(function(id, i) {
             let idDst = id.replace('sourceanalytix.0.hm-rpc__0__KEQ0965973__2__ENERGY_COUNTER', 'sourceanalytix.0.alias__0__Energie__Strom__Poolpumpe__CONSUMPTION');
             let obj = getObject(id);
             if(!existsObject(idDst)) setObject(idDst, obj);
          });
          


          das bei meinen ersten Versuchen jedoch nur die Datenstruktur ohne Werte übertrug.

          Eh schon egal, probierte ich somit eine 2 Scriptvariante aus:

          1. Script von @paul53 für die Datenstruktur
          2. Script von @a200 für die Daten

          Ergebnis: ALLE Daten da wo ich sie haben will!

          Fazit: Geht wahrscheinlich einfach auch mit nur EINEM Script, aber dafür fehlt mir das Wissen, die Geduld und die Nerven :-)

          Danke diesem aktiven Forum!
          mxa

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von paul53
          #4

          @metaxa sagte: Geht wahrscheinlich einfach auch mit nur EINEM Script

          const idsSrc = $('samsung_tizen.0.command.*'); 
           
          idsSrc.each(function(id, i) {
              let idDst = id.replace('samsung_tizen.0', 'samsung_tizen.1');
              let obj = getObject(id);
              if(!existsObject(idDst)) setObject(idDst, obj, function() {
                  setState(idDst, getState(id).val, true);
              });
          });
          

          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

          metaxaM 1 Antwort Letzte Antwort
          1
          • paul53P paul53

            @metaxa sagte: Geht wahrscheinlich einfach auch mit nur EINEM Script

            const idsSrc = $('samsung_tizen.0.command.*'); 
             
            idsSrc.each(function(id, i) {
                let idDst = id.replace('samsung_tizen.0', 'samsung_tizen.1');
                let obj = getObject(id);
                if(!existsObject(idDst)) setObject(idDst, obj, function() {
                    setState(idDst, getState(id).val, true);
                });
            });
            
            metaxaM Offline
            metaxaM Offline
            metaxa
            schrieb am zuletzt editiert von
            #5

            @paul53 Wieder einmal mehr, danke!

            Eine Stelle wird vom JS-Adapter angemeckert, scheint aber nur ein Schönheitsfehler zu sein da dein Script tadellos funktioniert.

            22d57ffb-5691-4eac-bee9-15711baff058-image.png

            const idsSrc = $('sourceanalytix.0.hm-rpc__0__KEQ0965973__2__ENERGY_COUNTER.*'); 
             
            idsSrc.each(function(id, i) {
                let idDst = id.replace('sourceanalytix.0.hm-rpc__0__KEQ0965973__2__ENERGY_COUNTER', 'sourceanalytix.0.alias__0__Energie__Strom__Poolpumpe__CONSUMPTION');
                let obj = getObject(id);
                if(!existsObject(idDst)) setObject(idDst, obj ,function() {
                    setState(idDst, getState(id).val, true);
                });
            });
            
            1 Antwort Letzte Antwort
            0
            Antworten
            • In einem neuen Thema antworten
            Anmelden zum Antworten
            • Älteste zuerst
            • Neuste zuerst
            • Meiste Stimmen


            Support us

            ioBroker
            Community Adapters
            Donate
            FAQ Cloud / IOT
            HowTo: Node.js-Update
            HowTo: Backup/Restore
            Downloads
            BLOG

            953

            Online

            32.4k

            Benutzer

            81.5k

            Themen

            1.3m

            Beiträge
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
            ioBroker Community 2014-2025
            logo
            • Anmelden

            • Du hast noch kein Konto? Registrieren

            • Anmelden oder registrieren, um zu suchen
            • Erster Beitrag
              Letzter Beitrag
            0
            • Home
            • Aktuell
            • Tags
            • Ungelesen 0
            • Kategorien
            • Unreplied
            • Beliebt
            • GitHub
            • Docu
            • Hilfe