Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [gelöst] SourceAnalytix neuer Alias, hist. Werte übernehmen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

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

    This topic has been deleted. Only users with topic management privileges can see it.
    • metaxa
      metaxa last edited by 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.

      crunchip 1 Reply Last reply Reply Quote 0
      • crunchip
        crunchip Forum Testing Most Active @metaxa last edited by

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

        metaxa 1 Reply Last reply Reply Quote 1
        • metaxa
          metaxa @crunchip last edited by metaxa

          @crunchip Danke für den Hinweis!!!! Warum hatte ich den nicht selbst gefunden 🤦 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

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @metaxa last edited by 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);
                });
            });
            
            metaxa 1 Reply Last reply Reply Quote 1
            • metaxa
              metaxa @paul53 last edited by

              @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 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

              777
              Online

              31.7k
              Users

              79.9k
              Topics

              1.3m
              Posts

              datenpunkt kopieren sourceanalytix
              3
              5
              435
              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