Did not activate "Notify" on this thread, its done now, so see your question a bit late....
Yes, I made my own optical reader and it seems to work fine.
This is my test code:
Serial.println("Meter type");
byte cmd[] = {0xAF,0x3F,0x21,0x8D,0x0A}; // query the meter for data "/?!"+<13><10>
iskSer.write (cmd,5);
byte a;
while (iskSer.available() > 0)
{
a = iskSer.read() & 0x7F; // cheap way of converting from 8N1 to 7E1
char b = a; // convert serial byte to ASCII character
Serial.print(b);
}
}
Serial.println();
gives me:
/ISK5\2MT372-3107 and everything is good, its showing my meter type ![]()
Then if I send the frame <06>"000"<13><10> polling for the energy registers, I get the following data:
1.8.0(01936.631kWh)
2.8.0(01716.519kWh)
0.9.1(184300)
0.9.2(130512)
And question is now how do I grab the essential 1936.631kWh imported, and the 1716.519kWh exported? A floating format? In my test code I just loop through every single byte in the buffer and convert it to readable characters....
Thank you for your help - I think I am almost there ![]()