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. Skripten / Logik
  4. JavaScript
  5. [gelöst]Objektdaten von einer Instanz in die andere kopieren

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.4k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    979

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

[gelöst]Objektdaten von einer Instanz in die andere kopieren

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
7 Beiträge 2 Kommentatoren 455 Aufrufe 1 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.
  • coyoteC Offline
    coyoteC Offline
    coyote
    Most Active
    schrieb am zuletzt editiert von coyote
    #1

    Hallo,
    ich müsste von einer Modbus Instanz die Daten verschiedener Objekte in eine zweite Modbus Instanz kopieren.

    on('modbus.0.inputRegisters.2.30001_L1-N'/*30001 L1-n*/, function(){
       setState('modbus.1.inputRegisters.30001_L1'/*30001 L1*/, getState('modbus.0.inputRegisters.2.30001_L1-N').val);
    });
    

    So funktioniert das zwar, aber ich müsste das 76 Mal machen. Geht das nicht einfacher?
    Die Register fangen bei 30001 an bis 30381, leider nicht in 2er Schritten wie ich gehofft habe. Es sind immer mal wieder größere Sprünge drin z.B. 30269 dann kommt 30335

    Kann ich das einfacher lösen mit javascript?

    paul53P 2 Antworten Letzte Antwort
    0
    • coyoteC coyote

      Hallo,
      ich müsste von einer Modbus Instanz die Daten verschiedener Objekte in eine zweite Modbus Instanz kopieren.

      on('modbus.0.inputRegisters.2.30001_L1-N'/*30001 L1-n*/, function(){
         setState('modbus.1.inputRegisters.30001_L1'/*30001 L1*/, getState('modbus.0.inputRegisters.2.30001_L1-N').val);
      });
      

      So funktioniert das zwar, aber ich müsste das 76 Mal machen. Geht das nicht einfacher?
      Die Register fangen bei 30001 an bis 30381, leider nicht in 2er Schritten wie ich gehofft habe. Es sind immer mal wieder größere Sprünge drin z.B. 30269 dann kommt 30335

      Kann ich das einfacher lösen mit javascript?

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

      @coyote sagte: Geht das nicht einfacher?

      Problem: Die IDs unterscheiden sich nicht nur in der Instanz, sondern auch am Ende. Ist der Unterschied am Ende immer identisch?

      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

      coyoteC 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @coyote sagte: Geht das nicht einfacher?

        Problem: Die IDs unterscheiden sich nicht nur in der Instanz, sondern auch am Ende. Ist der Unterschied am Ende immer identisch?

        coyoteC Offline
        coyoteC Offline
        coyote
        Most Active
        schrieb am zuletzt editiert von
        #3

        @paul53 das wäre kein Problem, das hier war nur zum Testen. Das könnte ich schon abgleichen. So dann:

        on('modbus.0.inputRegisters.2.30001_L1-N', function(){
        
           setState('modbus.1.inputRegisters.30001_L1-N', getState('modbus.0.inputRegisters.2.30001_L1-N').val);
        
        });
        
        1 Antwort Letzte Antwort
        0
        • coyoteC coyote

          Hallo,
          ich müsste von einer Modbus Instanz die Daten verschiedener Objekte in eine zweite Modbus Instanz kopieren.

          on('modbus.0.inputRegisters.2.30001_L1-N'/*30001 L1-n*/, function(){
             setState('modbus.1.inputRegisters.30001_L1'/*30001 L1*/, getState('modbus.0.inputRegisters.2.30001_L1-N').val);
          });
          

          So funktioniert das zwar, aber ich müsste das 76 Mal machen. Geht das nicht einfacher?
          Die Register fangen bei 30001 an bis 30381, leider nicht in 2er Schritten wie ich gehofft habe. Es sind immer mal wieder größere Sprünge drin z.B. 30269 dann kommt 30335

          Kann ich das einfacher lösen mit javascript?

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

          @coyote sagte: Kann ich das einfacher lösen mit javascript?

          Mittels RegExp:

          on(/^modbus\.0\.inputRegisters\.2\.30.+/, function(dp) {
              let idDst = dp.id.replace('modbus.0.inputRegisters.2', 'modbus.1.inputRegisters');
              setState(idDst, dp.state.val);
          });
          

          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

          coyoteC 1 Antwort Letzte Antwort
          1
          • paul53P paul53

            @coyote sagte: Kann ich das einfacher lösen mit javascript?

            Mittels RegExp:

            on(/^modbus\.0\.inputRegisters\.2\.30.+/, function(dp) {
                let idDst = dp.id.replace('modbus.0.inputRegisters.2', 'modbus.1.inputRegisters');
                setState(idDst, dp.state.val);
            });
            
            coyoteC Offline
            coyoteC Offline
            coyote
            Most Active
            schrieb am zuletzt editiert von
            #5

            @paul53 wie immer ein Dank an Dich. Musste es nur etwas korrigieren, da in der zweiten Instanz der Unterordner "2" nicht vorhanden ist. Das ist die ID des Modbus Gerätes und das hab ich in der zweiten Instanz nicht, da Slave.

            on(/^modbus\.0\.inputRegisters\.2\.30.+/, function(dp) {
            
                let idDst = dp.id.replace('modbus.0.inputRegisters.2', 'modbus.1.inputRegisters');
            
                setState(idDst, dp.state.val);
            
            });
            
            paul53P 1 Antwort Letzte Antwort
            0
            • coyoteC coyote

              @paul53 wie immer ein Dank an Dich. Musste es nur etwas korrigieren, da in der zweiten Instanz der Unterordner "2" nicht vorhanden ist. Das ist die ID des Modbus Gerätes und das hab ich in der zweiten Instanz nicht, da Slave.

              on(/^modbus\.0\.inputRegisters\.2\.30.+/, function(dp) {
              
                  let idDst = dp.id.replace('modbus.0.inputRegisters.2', 'modbus.1.inputRegisters');
              
                  setState(idDst, dp.state.val);
              
              });
              
              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #6

              @coyote sagte: korrigieren, da in der zweiten Instanz der Unterordner "2" nicht vorhanden ist.

              Das hatte ich inzwischen auch registriert und korrigiert.

              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

              coyoteC 1 Antwort Letzte Antwort
              0
              • paul53P paul53

                @coyote sagte: korrigieren, da in der zweiten Instanz der Unterordner "2" nicht vorhanden ist.

                Das hatte ich inzwischen auch registriert und korrigiert.

                coyoteC Offline
                coyoteC Offline
                coyote
                Most Active
                schrieb am zuletzt editiert von
                #7

                @paul53 hatte ich nicht gesehen. Danke Dir

                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

                582

                Online

                32.6k

                Benutzer

                82.2k

                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