<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Selective Access by Range on Profile Generic (Class 7) Returning Empty Buffer]]></title><description><![CDATA[<h3>Issue Description</h3>
<p dir="auto">When requesting 15-minute Load Profile data from Class 7 (Profile Generic) object <code>1.0.99.1.0.255</code> using <code>RangeDescriptor</code> (Selective Access Type 1), the meter responds with an empty buffer (<code>01 00</code> -&gt; Array with 0 entries), even though the buffer holds 30 days of data.</p>
<h4>Request Parameters</h4>
<ul>
<li><strong>Restricting Object</strong>: <code>0.0.1.0.0.255</code> (Clock, Attribute 2 - date_time)</li>
<li><strong>From Value</strong>: <code>2026-08-20 00:00:00.000</code> (Octet-String 12 bytes)</li>
<li><strong>To Value</strong>: <code>2026-08-21 00:00:00.000</code> (Octet-String 12 bytes)</li>
</ul>
<h4>Why the Read Returns Empty</h4>
<p dir="auto">In the DLMS date_time structure (12 bytes):</p>
<pre><code class="language-hex">07 EA 08 14 FF 00 00 00 00 80 00 00
</code></pre>
<ul>
<li>Bytes 0-1: Year (<code>0x07EA</code> = 2026)</li>
<li>Byte 2: Month (<code>0x08</code>)</li>
<li>Byte 3: DayOfMonth (<code>0x14</code> = 20)</li>
<li>Byte 4: DayOfWeek (<code>0xFF</code> = not specified)</li>
<li>Byte 5: Hour (<code>0x00</code>)</li>
<li>Byte 6: Minute (<code>0x00</code>)</li>
<li>Byte 7: Second (<code>0x00</code>)</li>
<li>Byte 8: Hundredths (<code>0x00</code>)</li>
<li>Bytes 9-10: Deviation (<code>0x8000</code> = not specified)</li>
<li>Byte 11: Clock status (<code>0x00</code>)</li>
</ul>
<p dir="auto"><strong>The culprit</strong>: In our request, Byte 4 (DayOfWeek) was populated with the actual day of week (<code>0x04</code> for Thursday), and Clock Status (Byte 11) was set to <code>0x80</code>. Many meter implementations require <strong>wildcard (<code>0xFF</code>)</strong> for DayOfWeek and <code>0x00</code> or <code>0xFF</code> for Clock Status in range filters, otherwise the equality match against the captured buffer timestamps fails!</p>
]]></description><link>https://dlms.sharur.org/topic/14/selective-access-by-range-on-profile-generic-class-7-returning-empty-buffer</link><generator>RSS for Node</generator><lastBuildDate>Fri, 16 Oct 2026 19:50:24 GMT</lastBuildDate><atom:link href="https://dlms.sharur.org/topic/14.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 22 Aug 2026 12:32:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Selective Access by Range on Profile Generic (Class 7) Returning Empty Buffer on Sat, 22 Aug 2026 12:35:25 GMT]]></title><description><![CDATA[<p dir="auto">Also verify that the first capture object in <code>capture_objects</code> (Attribute 3) of the Profile Generic is indeed the Clock object (<code>0.0.1.0.0.255</code>, class_id: 8, attr_index: 2). If the meter firmware captured the status register first, <code>restricting_object</code> must reference index 1 instead of index 2.</p>
]]></description><link>https://dlms.sharur.org/post/59</link><guid isPermaLink="true">https://dlms.sharur.org/post/59</guid><dc:creator><![CDATA[david_miller]]></dc:creator><pubDate>Sat, 22 Aug 2026 12:35:25 GMT</pubDate></item><item><title><![CDATA[Reply to Selective Access by Range on Profile Generic (Class 7) Returning Empty Buffer on Sat, 22 Aug 2026 12:33:00 GMT]]></title><description><![CDATA[<p dir="auto">Also verify that the first capture object in <code>capture_objects</code> (Attribute 3) of the Profile Generic is indeed the Clock object (<code>0.0.1.0.0.255</code>, class_id: 8, attr_index: 2). If the meter firmware captured the status register first, <code>restricting_object</code> must reference index 1 instead of index 2.</p>
]]></description><link>https://dlms.sharur.org/post/30</link><guid isPermaLink="true">https://dlms.sharur.org/post/30</guid><dc:creator><![CDATA[david_miller]]></dc:creator><pubDate>Sat, 22 Aug 2026 12:33:00 GMT</pubDate></item></channel></rss>