NEWS
[gelöst]Objektdaten von einer Instanz in die andere kopieren
-
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 30335Kann ich das einfacher lösen mit javascript?
-
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 30335Kann ich das einfacher lösen mit javascript?
-
@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?
@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); }); -
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 30335Kann ich das einfacher lösen mit javascript?
@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); }); -
@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); });@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); }); -
@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); }); -
@coyote sagte: korrigieren, da in der zweiten Instanz der Unterordner "2" nicht vorhanden ist.
Das hatte ich inzwischen auch registriert und korrigiert.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden