Hello mikko, just making sure I'm not doing it wrong. I have tried different methods:
Example 1: Adding CapturePeriod to my previus code
GXDLMSProfileGeneric obis = new GXDLMSProfileGeneric(obiscode);
GXDLMSClock clock = new GXDLMSClock("0.0.1.0.0.255");
obis.SortObject = clock;
obis.CapturePeriod = 900;
foreach (byte[] bit in cl.ReadRowsByRange(obis, start, end))
{
...
}
Returns the data in the period but not in 15 minutes intervals.
Example 2: Attemping to write CapturePeriod
GXDLMSProfileGeneric obis = new GXDLMSProfileGeneric(obiscode);
GXDLMSClock clock = new GXDLMSClock("0.0.1.0.0.255");
obis.SortObject = clock;
obis.CapturePeriod = 900;
foreach (byte[] bit in cl.Write(obis,4))
{
...
}
Write returns "Meter returns Service unknown exception. Service not supported".
Then I make the ReadRowsByRange like example 1 and the result is the exact same.
Example 3: Reading the buffer with From and To
GXDLMSProfileGeneric obis = new GXDLMSProfileGeneric(obiscode);
GXDLMSClock clock = new GXDLMSClock("0.0.1.0.0.255");
obis.SortObject = clock;
obis.From = start;
obis.To = end;
obis.CapturePeriod = 900;
If you set the CapturePeriod meter starts to save values using that capture period. When you read values using ReadRowsByRange you can give a start and end time, but you can't affect the capture period.
You need to save it like this:
obis.CapturePeriod = 900;
cl.Write(obis,4);
Error is returned because you don't have write access to the meter. You need to connect with High authentication to update the capture period.
Note! All meters don't allow changing the capture period.
Hi,
Hi,
Can you change the capture period? Is meter returning any error?
BR,
Mikko
It completely ignores it and
It completely ignores it and when I make the read it answers with hourly data as is the default
Hi,
Hi,
It might be that your meter is not supporting it. You need to verify it from the meter vendor.
BR,
Mikko
Hello miko, just making sure
Hello mikko, just making sure I'm not doing it wrong. I have tried different methods:
Example 1: Adding CapturePeriod to my previus code
GXDLMSProfileGeneric obis = new GXDLMSProfileGeneric(obiscode);
GXDLMSClock clock = new GXDLMSClock("0.0.1.0.0.255");
obis.SortObject = clock;
obis.CapturePeriod = 900;
foreach (byte[] bit in cl.ReadRowsByRange(obis, start, end))
{
...
}
Returns the data in the period but not in 15 minutes intervals.
Example 2: Attemping to write CapturePeriod
GXDLMSProfileGeneric obis = new GXDLMSProfileGeneric(obiscode);
GXDLMSClock clock = new GXDLMSClock("0.0.1.0.0.255");
obis.SortObject = clock;
obis.CapturePeriod = 900;
foreach (byte[] bit in cl.Write(obis,4))
{
...
}
Write returns "Meter returns Service unknown exception. Service not supported".
Then I make the ReadRowsByRange like example 1 and the result is the exact same.
Example 3: Reading the buffer with From and To
GXDLMSProfileGeneric obis = new GXDLMSProfileGeneric(obiscode);
GXDLMSClock clock = new GXDLMSClock("0.0.1.0.0.255");
obis.SortObject = clock;
obis.From = start;
obis.To = end;
obis.CapturePeriod = 900;
foreach (byte[] bit in cl.Read(obis,2))
{
...
}
This returns the complete buffer.
Hi,
Hi,
If you set the CapturePeriod meter starts to save values using that capture period. When you read values using ReadRowsByRange you can give a start and end time, but you can't affect the capture period.
You need to save it like this:
obis.CapturePeriod = 900;
cl.Write(obis,4);
Error is returned because you don't have write access to the meter. You need to connect with High authentication to update the capture period.
Note! All meters don't allow changing the capture period.
BR,
Mikko