HIGH-MODE TRANSMISSION APPARATUS AND METHOD AND COMPUTER PROGRAM PRODUCT THEREFOR

DE602023004330T2Active Publication Date: 2025-06-25SAGEMCOM ENERGY & TELECOM SAS
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
DE602023004330
Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Priority Date
2022-09-28
Filing Date
2023-09-27
Publication Date
2025-06-25
Estimated Expiration
2043-09-27

AI Technical Summary

Technical Problem

Existing data transmission methods struggle with unpredictable data generation patterns from devices like meters, leading to inefficiencies and network overload due to unpredictable data generation, especially when devices are powered down or generate aperiodic data.

Method used

A method for push mode transmission that includes checking for data absence over multiple intervals, sending a single message for empty intervals, and updating acknowledged values, with optional modes to skip empty intervals, optimizing network usage and energy efficiency.

Benefits of technology

Reduces network load and conserves bandwidth by minimizing unnecessary data transmissions, particularly in scenarios with infrequent data generation, while ensuring efficient data delivery.

✦ Generated by Eureka AI based on patent content.
Patent Text Reader
Need to check novelty before this filing date? Find Prior Art

Description

Technical field

[0001] A method for transmitting data in push mode, a device for implementing the method and an associated computer program product are described, which can be used, in a non-limiting manner, in the context of transmitting data collected recurrently. Technical background

[0002] In many applications, devices accumulate data periodically or non-periodically, requiring a receiving client device to collect data accumulated by a producing server device. This is the case, for example, with meters of various types, such as electricity, gas, water, or thermal energy meters. The amount of data produced by such a device during a given time interval is not always predictable. A device may generate periodic data, for example, a value measured by the meter at a given time and recorded once per period. However, if there is a problem generating the data, periods without data may exist. Devices may also generate aperiodic data, for example in the form of an event log. In these cases, the amount of data is unpredictable by nature.

[0003] There is a need for an efficient transmission method that takes these aspects into account.

[0004] Document EP 3945725 A1 describes a method for transmitting measurements to reduce network load. Summary

[0005] One or more embodiments relate to a method of push mode transmission implemented by a transmitting device comprising a memory comprising software code and a processor which, when executing the software code, causes the device to implement the method, the method comprising: (a) triggering a transmission, to a receiving device, of values ​​of an attribute adapted to contain ordered data whose values ​​constitute the whole or a subset, a transmission containing at most the values ​​of a single selection interval of the ordered data; (b) checking that the attribute has no values ​​to be transmitted for the set of N adjacent data selection intervals from a selection starting point in the data order and until the end of the interval preceding the interval comprising a current data collection period, where N is an integer; (c) if the check is positive, a transmission of a single message indicating the absence of values ​​for the N intervals.

[0006] According to one or more particular embodiments, if the verification is negative, the transmission in pushed mode to the receiving device of a message comprising the values ​​of the first non-empty interval of values ​​to be transmitted, no message being transmitted for the empty intervals of values ​​to be transmitted preceding said first interval.

[0007] According to one or more particular embodiments, the method comprises, following the transmission of the message comprising values, the reception of an acknowledgment from the receiving device and the updating of information identifying the last acknowledged value for the attribute.

[0008] According to one or more particular embodiments, the starting point in the data order is adjacent to the end of the interval comprising the most recent value acknowledged by the receiving device.

[0009] According to one or more particular embodiments, the starting point in the data order is counted from the most recent value acknowledged by the receiving device.

[0010] According to one or more particular embodiments, the determination step is preceded by a step of filtering the attribute data according to one or more criteria in order to determine said values ​​to be transmitted.

[0011] According to one or more particular embodiments, the verification relates to several attributes and sets of respective intervals, the verification being considered positive for step (c) in the event of the absence of values ​​to be transmitted for each of the attributes.

[0012] According to one or more particular embodiments, in which the single message indicating the absence of values ​​for the N intervals comprises an empty table.

[0013] According to one or more particular embodiments, N is greater than or equal to two.

[0014] According to one or more particular embodiments, the data is ordered from the oldest data to the most recent data.

[0015] According to one or more particular embodiments, the data includes a timestamp, the order being a function of the timestamp.

[0016] According to one or more particular embodiments, the selection interval is one of an interval defined by a number of values ​​or an interval defined by a duration.

[0017] According to one or more embodiments, a time interval comprises one or more data collection periods corresponding to a data selection depth. One or more embodiments relate to a recording medium readable by a device provided with a processor, said medium comprising instructions which, when the program is executed by a processor of a device, cause the device to implement at least one of the methods described.

[0018] One or more embodiments relate to a communication device comprising means adapted to the implementation of at least one of the methods described. Brief description of the figures

[0019] Other characteristics and advantages will appear during the reading of the detailed description which follows for the understanding of which one will refer to the attached drawings among which: there Figure 1is a block diagram of a system comprising a server device and a client device according to one or more embodiments; the Figure 2a is a first part of an algorithm of a data pushing method according to one or more exemplary embodiments; the Figure 2b is a second part of a flowchart of a data pushing method according to one or more exemplary embodiments. Detailed description

[0020] In the following description, identical, similar or analogous elements will be designated by the same reference numbers.

[0021] The block diagrams, flowcharts, and message sequence diagrams in the figures illustrate the architecture, functionality, and operation of systems, devices, processes, and computer program products according to one or more exemplary embodiments. Each block of a block diagram or each phase of a flowchart may represent a module or a portion of software code comprising instructions for implementing one or more functions. In some implementations, the order of the blocks or phases may be changed, or the corresponding functions may be implemented in parallel. The process blocks or phases may be implemented using circuitry, software, or a combination of circuitry and software, in a centralized manner, or in a distributed manner, for all or some of the blocks or phases.The systems, devices, methods and methods described may be modified, added to and / or deleted while remaining within the scope of this description. For example, the components of a device or system may be integrated or separated. Also, the described functions may be implemented using more or fewer components or phases, or with other components or through other phases. Any suitable data processing system may be used for the implementation. A suitable data processing system or device, for example, includes a combination of software code and circuitry, such as a processor, controller or other circuitry suitable for executing the software code. When the software code is executed, the processor or controller causes the system or device to implement some or all of the functionalities of the blocks and / or phases of the methods or methods according to the exemplary embodiments.Software code may be stored in memory or a readable medium accessible directly or through another module by the processor or controller.

[0022] There Figure 1is a block diagram of a communication network comprising a device 100 and a device 110 capable of communicating through the network in a bidirectional manner. The device 100 is a device that stores accumulated data or accumulates data itself, data of which at least some are to be transmitted to the device 110. The device 100 will hereinafter be called 'server' and the device 110 'client'. For example, the server 100 is an electricity, water, gas, thermal energy meter, etc., while the client 110 is a device collecting data from different servers on behalf of the distribution network operator.The server 100 comprises a processor 101, a memory 102, a data source 103, a user interface 105, a communication interface 106 configured to communicate bidirectionally with the client 110, a display 107 adapted for displaying data to a user of the server 100, as well as a working memory 109. The various components of the server 100 are connected through a communication bus 104. The memory 102 comprises software code 108. The memory 109 is used to store and manage the data to be transmitted. When the processor executes the software code 108, it causes the server to implement a method according to one or more exemplary embodiments described and comprising the processing of gaps in the data to be transmitted as explained in more detail below. This data comes for example from the data source 103.The data source 103 is for example the metrological organ of the meter itself which produces a value of the quantity counted. The metrological organ is for example in charge of measuring and recording an absolute physical quantity (intensity of a current, pressure of a gas) or cumulative (electrical energy or volume of a gas which has passed through). The data can be obtained periodically or aperiodically or comprise a combination of data obtained periodically and aperiodically. The fact that data are generally obtained periodically does not exclude the absence of data during more or less long time intervals (power off, breakdowns, rest intervals or non-representative data, etc.). The communication network is for example a radio media of one of the types 2G / 3G / 4G / LTE NB-IoT / LTE Cat-M1 / LoRA or other.

[0023] The DLMS or 'Device Language Message Specification' comprises a series of standards developed and maintained by the DLMS Users Association ('DLMS UA') and standardizing the exchange of data from electric meters or others. The DLMS UA maintains in particular the COSEM 'Blue Book' (for Comprehensive Semantic Model for Energy Management). In particular, the document 'DLMS UA 1000-1', version 15, part 2, version 1.0 of December 21, 2021 describes elements used in the data push from a server to a client and according to which the client acknowledges receipt - or acknowledges - the data received.The document introduces a mechanism allowing, at each periodic triggering of the push sending, to select a certain quantity of recorded data to be pushed starting from the last acknowledged data. For example, it is possible to specify a time interval from the last acknowledged data (e.g. 'Three full days after the last acknowledged data'). The different choices are described in Table 9 of the cited DLMS UA document. This makes it possible to limit the quantity of an individual sending, in order to preserve the operation of the transport network and the client in charge of collecting and processing the data, and not to overload them in the event of prolonged absence of communication and / or on a large number of devices.

[0024] According to one or more exemplary embodiments, the data accumulated by the server 100 in the memory 109 are at least partly historized, that is to say ordered in time. By 'ordered in time', it is meant according to the embodiment chosen that a temporal information is associated with a data item and that the order of the data is determined by the temporal information, or simply that the data appear in the order of obtaining or recording. For example, the server 100 samples the metrological device 103 at regular intervals and stores the value measured by this device in its memory, this value being associated there with the value of a clock identifying for example the moment of sampling or the period covered by the value. The period is for example identified by a clock value of the end of the period. This gives rise for example to load curves over time. Other information can be associated with these two values.

[0025] A server can contain several metrological organs giving respective values ​​for distinct quantities and thus associate several data with a single time value (see for example the two right-hand columns of Table 1 shown below). The data is stored in the memory, for example, in objects containing one or more suitable attributes.

[0026] If we select the data generated periodically over a certain time interval (for example, an integer multiple of a period such as a day), the amount of data will always be the same. However, there are cases where the amount of data over a period may differ, for example: when the server has been powered down for a long time and the data generation process has therefore not been executed; following a time reset to the future involving a significant time jump (for example, in the case where the server is put back into service and the energy reserve powering the real-time clock was exhausted, or it had not been set to the time).

[0027] When entries are created aperiodically - as is the case, for example, with event log entries - the same problem arises.

[0028] Table 1 is an example of normally periodic data that can be produced by the counter 103 itself of the server 100. For example, a server can produce and store several thousand entries that can cover, depending on the periodicity, for example several months of operation. [Table 1] Timestamp Status Imported Energy Register Exported energy register Type: byte string encoding a date / time Type: 8-bit unsigned integer taken as a status bit field Type: 32-bit unsigned integer Type: 32-bit unsigned integer ... 21 / 01 / 2022 00:00:00 0 2370 0 21 / 01 / 2022 01:00:00 0 2375 0 21 / 01 / 2022 02:00:00 0 2375 0 21 / 01 / 2022 03:00:00 0 2380 0 29 / 06 / 2022 09:00:00 127 => bit PDN=1 (indication that the counter was switched off in the period preceding the storage of this entry) 2385 0 ...

[0029] In Table 1, an entry is represented by a row and a structure element is represented by a column.

[0030] According to the example table, a sample is taken every hour and a normal day has twenty-four entries. In the example, no entries were stored between 01 / 21 / 2022 and 06 / 29 / 2022 due to the meter being powered down. Selecting a time interval when the meter was out of service (e.g. a request from 02 / 01 / 2022 to 03 / 01 / 2022) will return an array of zero entries.

[0031] Each time a push data sending is triggered, the server 100 evaluates the values ​​associated with a list of attributes specified in an attribute configuring the push mechanism. The retained values ​​will be concatenated in what is called a push buffer and encapsulated in a protocol data unit of the appropriate application layer for transmission to the client.

[0032] In the context of DLMS, this data unit is labeled 'APDU DataNotification'.

[0033] The push buffer content is obtained by extracting attribute values ​​in their entirety, or partially. Partial extraction can be achieved by selecting - from the appropriate attributes - the values ​​to be sent by applying one or more filters, for example temporal criteria such as time intervals, entry indexes or even structural elements.

[0034] The client produces an acknowledgment of receipt, also called an 'acknowledgment' of the received data. The server thus knows the 'last acknowledged entry' for each of the attributes concerned. This makes it possible to select and send only the data not yet acknowledged from this entry. The data selection is done, for example, by specifying a data depth, which can for example be defined by a time interval counted from the last acknowledged data, for example a number of periods ('3 full days of depth after the last acknowledged entry'). According to certain embodiments, the depth is defined by a time interval counted from the previous time interval which includes the last acknowledged data. This makes it possible to limit the quantity of data in an individual sending, in order to preserve the operation of the transport network and the client in charge of processing the data, and not to overload them.

[0035] For each attribute concerned, in case of successful push sending, that is to say if the sending is acknowledged by the client, the pointer of the last acknowledged data will be updated to be placed on the new last acknowledged data. In case of failure, it will remain at the place before sending and will serve as the origin date for the new selection, which may include new data generated in the meantime. This way, the oldest data is sent first.

[0036] A transmission is made in the form of an array. An array is a data structure with timestamped entries. An example of the structure of such an array is given by Table 1. A transmission without data is represented by an empty array, namely an array with zero entries.

[0037] In the following examples, the data considered are time-stamped entries with selection filtering relative to the last acknowledged data. For reasons of clarity and simplicity, we consider the case of a single attribute whose data is to be transmitted and that, in principle, all data recorded in an interval is to be transmitted.

[0038] A first example of operation is as follows: A push transmission is triggered daily. A transmission only covers full days, so the first transmission is made on the second day, based on the data from the previous days. The second day is always a current period. In this case and at this stage of the process, there is only one day preceding it, namely the first day (which is a day for which the data is complete on the second day). Data selection is made over a maximum of two full days after the last acknowledged data (therefore with a maximum depth of two days). In this example, an incomplete day because it is still in progress is not selected. Day 2: 1 day of data to send (Day 1), successful sending. Day 3: 1 day of data to send (Day 2), failed sending. Day 4: 2 days of data to send (Day 2, Day 3), failed sending.Day 5: 3 days of data to send (Day 2, Day 3, Day 4) but selection limited to (Day 2, Day 3), sending successful. Day 6: 2 days of data to send (Day 4, Day 5), sending successful. Day 7: 1 day of data to send (Day 6), sending successful. ... .

[0039] After each transmission acknowledgment, the pointer of the last acknowledged data is advanced by the server after receiving an acknowledgment from the client.

[0040] The maximum depth is chosen to limit the amount of data in a push mode transmission to a reasonable size while still allowing for recovery from previous transmission failures.

[0041] A second example of how this works is as follows. We consider the case where the time interval between the last data sent and the present time is significant (several dozen periods, for example) and where the data includes time intervals where the generated data is empty. A push transmission is triggered every day. Data selection is done with a maximum depth of two days. We assume that the data on Day 1 are not empty (from Day 1 at 00:00 to Day 2 at 00:00), that following a server shutdown for several dozen days, the data on Day 2 and following are empty and that the periodic push transmission process resumes on Day 50. Day 50: sending of Day 1 (up to Day 2 at 00:00 inclusive) and Day 2 (empty). Day 51: sending of Day 2 (excluding Day 2 at 00:00 so Day 2 has no new acknowledged data) and Day 3 (no new acknowledged data). Day 52: Day 2 (Day 2 at 00:00 excluded so Day 2 no new data acknowledged), Day 3 (no new data acknowledged). ...

[0042] In other words, a number of empty slots at least equal to the data depth or selection interval will cause empty transmissions to loop. Even if data appears on day 50 or later, that data will not be transmitted because the pointer to the last acknowledged data will not be able to advance.

[0043] A possible solution to this problem is to advance the pointer of the last acknowledged data item after each push transmission to the end of the interval in question. In the second example above, with each push transmission, the pointer would be advanced two days. To bring the pointer as close as possible to the present time, this involves many idle transmissions. If the selection interval is two days deep, the delay will not be caught until the 98th day.

[0044] According to one or more embodiments, when a push mode transmission of ordered data is envisaged, the server will determine whether or not there is data to be transmitted. This determination can be made by successive data selection intervals.

[0045] According to a first mode of operation ('mode 1' in the following), the last empty interval of data to be transmitted before an interval covering a current data collection period will give rise to a transmission in pushed mode. This transmission may include information indicating the absence of data to be transmitted, for example in the form of an empty table.

[0046] According to a second mode of operation ('mode 2' in the following), if no data to be transmitted is determined, the transmission in push mode is not carried out, it is canceled.

[0047] In both cases, if an empty interval of data to be transmitted or a succession of such intervals is followed by an interval containing data, then no push transmission relating to the interval or succession of intervals empty of data to be transmitted is performed and a push transmission is performed for the non-empty interval.

[0048] Note that data may have been recorded for an interval, but none of this data is to be transmitted, for example based on one or more selection criteria. In this case, the interval is considered 'empty'. If data is determined to be transmitted, this data is also called 'values' to be transmitted.

[0049] In mode 1, the server analyzes the contents of an interval located in the past. If there are no values ​​selected for transmission in this interval, the server moves to the next interval. However, the cursor at the beginning of the interval in question is advanced to the end of the previously considered selection interval.

[0050] The method is iterated until the end of the selection interval is no longer in the past (in other words, until this end is later than the start of the current time interval, this current time interval being therefore incomplete), or until the selection interval contains values ​​to be transmitted. In the latter case, a push transmission is performed and the pointer to the last acknowledged entry is advanced in relation to this transmission following a positive acknowledgement from the client.

[0051] Thus, the server skips empty selection intervals of values ​​to be transmitted, as these intervals do not result in a push mode transmission.

[0052] In the case where no selection interval up to the present time contains data to be transmitted, a single push transmission with an empty array is performed for all empty intervals. Note that an empty array is mentioned here because this is the structure used for data transmission in the context of the present example, but according to other exemplary embodiments, the information indicating that no value to be transmitted has been determined may be coded differently.

[0053] An advantage is that sending a push transmission of this information allows the server to inform the client that the server is still running, but that no values ​​to transmit are available.

[0054] According to one embodiment, in mode 1, when several attributes are analyzed and none of them contain values ​​to be transmitted, information indicating the absence of values ​​to be transmitted is transmitted for each of the attributes.

[0055] According to a second push transmission mode, called 'mode 2' in the following and otherwise similar to mode 1, in the case where no selection interval up to the present time contains values ​​to be transmitted, no push mode transmission is performed.

[0056] An advantage is that network bandwidth is saved. This can be useful in applications where data generation is infrequent, such as in the case of infrequent event log entries. Furthermore, this mode is also suitable for battery-powered servers because it is more energy-efficient than mode 1.

[0057] An example of operation according to modes 1 or 2 based on the previous examples is as follows: The triggering of a transmission in push mode is done with a periodicity of one day.

[0058] The selection of values ​​to be transmitted is done with a maximum depth of two days.

[0059] The values ​​to be transmitted start from Day 1 which has data but Days 2 to 100 are empty of data.

[0060] The periodic push mode transmission process begins on Day 50. Day 50: Sending of Day 1 and Day 2 (D1 is not empty). Day 51: Days 3 and 4 are empty of values ​​to transmit and no sending is done. Day 51: Days 5 and 6 are empty of values ​​to transmit and no sending is done. ... Day 51: Days 47 and 48 are empty of values ​​to transmit and no sending is done. Day 51: Days 49 and 50 are empty and either no sending is done (mode 2), or a sending with an empty table is done (mode 1).

[0061] The transmission delay is thus made up for.

[0062] By catch-up of the present time, we mean in the context of the example that the end of the selection interval is at most at the end of the complete (or closed) period preceding the current period, the latter therefore being incomplete and being likely to be increased by new data.

[0063] According to one or more embodiments, a third mode of operation is defined, called 'mode 0'. According to this mode, the transmission of a message in pushed mode is systematically carried out following the triggering of a transmission - the absence or presence of values ​​to be transmitted not influencing the transmission.

[0064] According to one or more embodiments, modes 0, 1 and 2 can be implemented by the same server. Means are then provided for selecting a mode. A transmission mode is chosen, for example automatically depending on the context (for example switching to mode 1 or 2 following wake-up after a breakdown or shutdown, etc.) or by a user, through a user interface managed by software code 109.

[0065] According to other embodiments, a server may implement only one of modes 1 or 2, or both.

[0066] In the case where data follows a period during which no data is generated, modes 1 and 2 allow for no empty message to be sent - the first message sent will contain data. Furthermore, if no value to be transmitted is present after the last acknowledged value, the number of empty messages sent will be, depending on the mode, zero or one, which limits the bandwidth used.

[0067] Modes 1 and 2, when one of these modes is identified in the attribute, are implemented only for one or more attributes of objects containing ordered data with selection from the last acknowledged data. Attribute values ​​other than the push buffer are either transmitted according to the default mode, i.e. mode 0, or not transmitted, as will be detailed later.

[0068] As noted above, mode 2 can also be applied in the case where data selection is done by a number of entries - and not a time interval - after the last acknowledged data.

[0069] THE Figures 2a And 2b combined form an algorithm of a data pushing method according to one or more non-limiting exemplary embodiments and implementing the modes mentioned above.

[0070] In the Figure 2a , in 201, a push data sending is triggered. According to some embodiments, this triggering is periodic, according to other embodiments, the triggering is not periodic - it is for example linked to a trigger event.

[0071] In 202, a selection of the object attributes to be pushed is made. This selection is for example based on a predefined list, one or more selection criteria, etc. A first attribute among the object attributes selected during step 202 is then analyzed in 203 to determine whether it is likely to be processed for selection intervals empty of data.

[0072] According to the present exemplary embodiment and as indicated previously, this condition is met when the attribute contains ordered and selectable data over a specified depth after the last data acknowledged by the client. Empty interval processing is applied to these attributes in the left branch 210 of the algorithm.

[0073] Attributes that do not meet the test criterion in 203 are evaluated in 208, in the right branch 211. Other data contains, for example, non-historical data.

[0074] In some embodiments, the evaluation may include deciding whether or not to transmit the other data. This data may indeed be incidental to the historical data processed in branch 210, but there may be little sense in using bandwidth to transmit certain other data in the absence of historical data.

[0075] Processing branch 210 and the evaluation output in 208 join in 209.

[0076] According to one or more exemplary embodiments, the processing of empty intervals of attribute values ​​to be transmitted is as follows: in the event of the presence of an object attribute capable of being processed, the content of this attribute over a first selection interval over a determined depth is analyzed to determine whether it contains values ​​to be transmitted (204). It is determined whether the transmission must be carried out in pushed mode 1 or 2 (test in 205). If the transmission is not carried out in mode 1 or 2, then step 209 is reached. Otherwise, it is determined in 206 whether the selection is empty of values ​​to be transmitted. If so, the next selection interval is considered (207) and it is again determined whether it is empty of values ​​to be transmitted in 206. The loop 206 / 207 continues either until a selection interval contains values ​​to be transmitted or the end of the selection interval is no longer in the past.Exiting loop 206 / 207 leads to test 209. In 209, it is evaluated whether all attributes to be pushed have been considered - if not, the next attribute is selected and processing continues in 203.

[0077] In the Figure 2b, if all attributes to be pushed have been taken into account, it is determined whether none of the attributes processed in branch 210 contained attribute values ​​to be transmitted. If this is the case and if the pushed mode is mode 2, then no push mode sending is performed (213) until the next trigger. In other cases, a push mode sending is performed at 214, containing data to be sent from one of the two branches 210 or 211. If neither branch has provided data to be transmitted, an empty transmission is performed. In the event of receipt of an acknowledgment from the client (positive test at 215), an update of the last acknowledged entry is performed for each of the attributes processed in branch 210 (216). If no acknowledgment is received, a new sending attempt is scheduled (217).

[0078] With reference to the DLMS standard, step 202 includes, for example, reviewing a list of attributes of objects to be pushed, this list being defined by an attribute called 'push_object_list'. Step 203 includes, for example, checking that an object has a data buffer corresponding to an interface class called 'generic profile' and with selection of the data with respect to the last entry marked as acknowledged, the depth of the selection interval with respect to the last acknowledged data being defined by a configuration data item called 'data_index' and defined by table 9 of the Blue Book mentioned above.

[0079] In the foregoing, various advantages have been described. A specific embodiment may have one or more of these advantages, but not necessarily all of the advantages. Some embodiments may have one or more advantages not described and / or may not have any described advantages. Appendix

[0080] It is proposed to define an attribute characterizing the management of pushed modes within the framework of a pushed mode transmission method and which can have one of the following three values: Mode 0=SKIP_DISABLED: Default mode. Skipping empty selection ranges is disabled. Mode 1=SKIP_EMPTYSEND: Skipping empty selection ranges is enabled according to mode 1. Mode 2=SKIP_NOEMPTYSEND: Skipping empty selection ranges is enabled according to mode 2. Within the framework of the DLMS:

[0081] An ordered data structure with selection from the last acknowledged data is for example a class 7 object buffer with selection from the last acknowledged data. A DLMS / COSEM class 7 buffer is a buffer that fills with so-called 'captured' objects periodically or not, these objects can be accumulated in order of arrival or sorted according to an object (for example a timestamp). REFERENCE SIGNS

[0082] 100 - Server Device 101 - Processor 102 - Memory 103 - Counter 104 - Communication Bus 105 - User Interface 106 - Bidirectional Communication Interface 107 - Display 108 - Software Code 109 - Working Memory 110 - Client Device

Claims

1. A method for transmission in push mode, implemented by a transmitting device comprising a memory comprising software code and a processor which, when executing the software code, causes the device to implement the method, characterized in that the method comprises: (a) triggering (201) a transmission, to a receiving device, of values of an attribute adapted to contain ordered data whose values constitute all or a subset, a transmission containing at most the values of a single selection interval of the ordered data; (b) verifying (204) that the attribute has no value to be transmitted for all among the N adjacent data selection intervals from a selection starting point in the order of the data to the end of the interval preceding the interval comprising a current data collection period, with N being an integer; (c) if the verification is positive, transmitting (214) a single message indicative of the absence of values for the N intervals.

2. The method according to claim 1, if the verification is negative, the transmission (214) in push mode, to the receiving device, of a message comprising the values of the first interval that is not empty of values to be transmitted, no message being transmitted for the intervals empty of values to be transmitted preceding said first interval.

3. The method according to claim 2, comprising, following the transmission of the message comprising values, the receipt (215) of an acknowledgment from the receiving device and the updating (216) of information identifying the last value acknowledged for the attribute.

4. The method according to one of the claims 1 to 3, wherein the starting point in the order of the data is adjacent to the end of the interval comprising the most recent value acknowledged by the receiving device.

5. The method according to one of the claims 1 to 3, wherein the starting point in the order of the data is counted from the most recent value acknowledged by the receiving device.

6. The method according to one of the claims 1 to 5, the verification step being preceded by a step of filtering the data of the attribute according to one or more criteria in order to determine said values to be transmitted.

7. The method according to one of the claims 1 to 6, comprising - verifying (209) whether other attributes are to be processed; - in the affirmative, step (b) is carried out for each other attribute to be processed, the verification for step (c) being considered positive in case of absence of values to transmit for all attributes processed.

8. The method according to one of the claims 1 to 7, in which the single message indicative of the absence of values for the N intervals comprises an empty table.

9. The method according to one of the claims 1 to 8, where N is greater than or equal to two.

10. The method according to one of the claims 1 to 9, wherein the data are ordered from the oldest item of data to the most recent item of data.

11. The method according to claim 10, wherein the data comprise a timestamp, the order being a function of the timestamp.

12. The method according to one of the claims 1 to 11, wherein the selection interval is either an interval defined by a number of values or an interval defined by a duration.

13. The method according to one of the claims 1 to 12, wherein a time interval comprises one or more data collection periods, corresponding to a data selection depth.

14. A storage medium readable by a device provided with a processor, said medium comprising instructions which, when the program is executed by a processor of a device, cause the device to carry out the method according to one of claims 1 to 13.

15. A communication device (100) comprising a memory (102) comprising software code (108) and a processor (101) which, when it executes the software code, causes the communication device to carry out the method according to one of claims 1 to 13.