Není tu někdo kdo to řešil?
Tady jsem našel a funguje.
https://forum.arduino.cc/t/ground-probl ... ion/853508
https://forum.arduino.cc/t/reading-sola ... lem/697035
Přes ten Modbus se však da vyčitat vice informaci.
Jsem našel toto, ale je to nějak poplantane.
Baterie stav: 6771.00
Baterie max: 97.62
Baterie teplota: 1.38
Kód: Vybrat vše
resultMain = node.readInputRegisters(0x3100, 16);
if (resultMain == node.ku8MBSuccess)
{
Serial.println(" - - - - - - - - - - - - - - ");
//----------------------------------------------------------------------------------------
pn=node.getResponseBuffer(0x00)/ 100.0f;
Serial.print("Panely napeti: " ); // PV Voltage
Serial.println(pn);
//----------------------------------------------------------------------------------------
pp=node.getResponseBuffer(0x01)/ 100.0f;
Serial.print("Panely proud: "); // PV Current
Serial.println(pp);
//----------------------------------------------------------------------------------------
pv=(node.getResponseBuffer(0x02) | node.getResponseBuffer(0x03) << 16)/ 100.0f;
Serial.print("Panely vykon: ");
Serial.println(pv);
//----------------------------------------------------------------------------------------
bn=node.getResponseBuffer(0x04)/ 100.0f;
Serial.print("Baterie napeti: "); // Battery Voltage
Serial.println(bn);
//----------------------------------------------------------------------------------------
bp=node.getResponseBuffer(0x05)/ 100.0f;
Serial.print("Baterie proud: "); // Battery Charge Current
Serial.println(bp);
//----------------------------------------------------------------------------------------
bv=(node.getResponseBuffer(0x06) | node.getResponseBuffer(0x07) << 16)/ 100.0f;
Serial.print("Baterie vykon: ");
Serial.println(bv);
//----------------------------------------------------------------------------------------
bstatus=node.getResponseBuffer(0x00);
Serial.print("Batery stav: ");
Serial.println(bstatus);
//----------------------------------------------------------------------------------------
bmax=node.getResponseBuffer(0x02)/ 100.0f;
Serial.print("Baterie max: ");
Serial.println(bmax);
//----------------------------------------------------------------------------------------
bmin=node.getResponseBuffer(0x03)/ 100.0f;
Serial.print("Baterie min: ");
Serial.println(bmin);
//----------------------------------------------------------------------------------------
btemp=node.getResponseBuffer(0x0)/ 100.0f;
Serial.print("Baterie teplota: ");
Serial.println(dtemp);
//----------------------------------------------------------------------------------------
dtemp=node.getResponseBuffer(0x1)/ 100.0f;
Serial.print("Teplota zarízeni: ");
Serial.println(btemp);
//----------------------------------------------------------------------------------------
bsoc=node.getResponseBuffer(0xa)/ 100.0f;
Serial.print("Baterie soc: ");
Serial.println(bsoc);
//----------------------------------------------------------------------------------------
ednes=(node.getResponseBuffer(0x00) | node.getResponseBuffer(0x01) << 16)/ 100.0f;
Serial.print("Baterie - energie dnes: ");
Serial.println(ednes);
//----------------------------------------------------------------------------------------
Serial.print("Baterie - energie mesic: ");
emesic=(node.getResponseBuffer(0x02) | node.getResponseBuffer(0x03) << 16)/ 100.0f;
Serial.println(emesic);
//----------------------------------------------------------------------------------------
erok=(node.getResponseBuffer(0x04) | node.getResponseBuffer(0x05) << 16)/ 100.0f;
Serial.print("Baterie - energie rok: ");
Serial.println(erok);
//----------------------------------------------------------------------------------------
etotal=(node.getResponseBuffer(0x06) | node.getResponseBuffer(0x07) << 16)/ 100.0f;
Serial.print("Baterie - energie celkem: ");
Serial.println(etotal);
//----------------------------------------------------------------------------------------
cstatus=node.getResponseBuffer(0x01);
Serial.print("Stav nabijeni: ");
Serial.println(cstatus);
//----------------------------------------------------------------------------------------
dstatus=node.getResponseBuffer(0x02);
Serial.print("Stav zarizeni: ");
Serial.println(dstatus);
//----------------------------------------------------------------------------------------
}