void modbusSetup() {
Serial1.begin(19200, SERIAL_8N2, 26, 25); // hardware serial attached to the MAX485 module rxpin, txpin
mb.begin(&Serial1, 16); // RE/DE connected to GPIO 16 of ESP32
mb.slave(SLAVE_ID);
mb.onRaw(cbRtuRaw); // Assign raw data processing callback
// RTU Slave: 1, Fn: 04, len: 5, 0 0 0 2 // 0 - Voltage (V)
mb.addIreg(0, 120);
mb.addIreg(1, 120);
//* Phase 2 line to neutral Volts
mb.addIreg(2, 120);
mb.addIreg(3, 120);
//* Phase 3 line to neutral Volts
mb.addIreg(4, 0);
mb.addIreg(5, 0);
// RTU Slave: 1, Fn: 04, len: 5, 0 6 0 2 // 6 - Current (A)
mb.addIreg(6, 1);
mb.addIreg(7, 12);
//* Phase 2 current
mb.addIreg(8, 1);
mb.addIreg(9, 1);
//* Phase 3 current
mb.addIreg(10, 0);
mb.addIreg(11, 0);
// RTU Slave: 1, Fn: 04, len: 5, 0 C 0 2 // 12 - active power (W)
mb.addIreg(12, 3334);
mb.addIreg(13, 1332);
// for 3 phase meter only
// RTU Slave: 1, Fn: 04, len: 5, 0 E 0 2 // 14 - phase 2 active power (W)
mb.addIreg(14, 3334);
mb.addIreg(15, 1332);
// for 3 phase meter only
// RTU Slave: 1, Fn: 04, len: 5, 0 10 0 2 // 16 - phase 3 active power (W)
mb.addIreg(16, 3334);
mb.addIreg(17, 1332);
// RTU Slave: 1, Fn: 04, len: 5, 0 12 0 2 // 18 - apparent power (VA)
mb.addIreg(18, 324);
mb.addIreg(19, 122);
//* apparent power VA phase 2
mb.addIreg(20, 324);
mb.addIreg(21, 122);
//* apparent power VA phase 3
mb.addIreg(22, 0);
mb.addIreg(23, 0);
// RTU Slave: 1, Fn: 04, len: 5, 0 18 0 2 // 24 - reactive power (VAr)
mb.addIreg(24, 324);
mb.addIreg(25, 122);
//* VAr phase 2
mb.addIreg(26, 324);
mb.addIreg(27, 122);
//* VAr phase 3
mb.addIreg(28, 0);
mb.addIreg(29, 0);
// RTU Slave: 1, Fn: 04, len: 5, 0 1E 0 2 // 30 - power factor (none/float)
mb.addIreg(30, 0);
mb.addIreg(31, 95);
//* pf phase 2
mb.addIreg(32, 0);
mb.addIreg(33, 95);
//* pf phase 3
mb.addIreg(34, 0);
mb.addIreg(35, 95);
// 3 phase meter only. did not see query for this?
// RTU Slave: 1, Fn: 04, len: 5, 0 24 0 2 // 24 - phase angle (degrees)
mb.addIreg(36, 0);
mb.addIreg(37, 0);
//* sum of line currents
mb.addIreg(48, 1);
mb.addIreg(49, 1);
//* total system power
mb.addIreg(52, 155);
mb.addIreg(53, 155);
// RTU Slave: 1, Fn: 04, len: 5, 0 46 0 2 // 70 - frequency (hz)
mb.addIreg(70, 60);
mb.addIreg(71, 0);
// RTU Slave: 1, Fn: 04, len: 5, 0 48 0 2 // 72 - Import active energy (kWh)
mb.addIreg(72, 1);
mb.addIreg(73, 12);
// RTU Slave: 1, Fn: 04, len: 5, 0 4A 0 2 // 74 - Export active energy (kWh)
mb.addIreg(74, 0);
mb.addIreg(75, 0);
// RTU Slave: 1, Fn: 04, len: 5, 0 4C 0 2 // 76 - Import reactive energy (kvarh)
mb.addIreg(76, 1);
mb.addIreg(77, 12);
// RTU Slave: 1, Fn: 04, len: 5, 0 4E 0 2 // 78 - export reactive energy (kvarh)
mb.addIreg(78, 0);
mb.addIreg(79, 0);
// RTU Slave: 1, Fn: 04, len: 5, 0 56 0 2 // 86 - maximum total system power demand (W)
mb.addIreg(86, 545);
mb.addIreg(87, 545);
// RTU Slave: 1, Fn: 04, len: 5, 0 58 0 2 // 88 - import system power demand (W)
mb.addIreg(88, 544);
mb.addIreg(89, 333);
}