Die "generation" bekommt man aus der Seriennummer:
Code: Alles auswählen
String serial = oData.optString("Device.Serial");
if (serial.matches("^[LU](30|37|50)E.*"))
{
deviceType = DEVICE_SOLAX_X1;
generation = DEVICE_SOLAX_GEN2;
}
else if (serial.matches("^(H1[EI]]|HCC|HUE|XRE).*"))
{
deviceType = DEVICE_SOLAX_X1;
generation = DEVICE_SOLAX_GEN3;
}
else if (serial.matches("^H3[DPU]E.*"))
{
deviceType = DEVICE_SOLAX_X3;
generation = DEVICE_SOLAX_GEN3;
}
else if (serial.matches("^H4(3|50|60|75).*"))
{
deviceType = DEVICE_SOLAX_X1;
generation = DEVICE_SOLAX_GEN4;
}
else if (serial.matches("^H3[14].*"))
{
deviceType = DEVICE_SOLAX_X3;
generation = DEVICE_SOLAX_GEN4;
}
else if (serial.matches("^H3B*"))
{
deviceType = DEVICE_SOLAX_X3;
generation = DEVICE_SOLAX_GEN5;
}
Also mit diesen Modellen und einer Modbus-Verbindung ist eine Speichersteuerung möglich (zumindest habe ich es eingebaut: Freiwillige vor, wenn das nicht klappt, dann will ich das noch mal angehen!)