Module description

The south service receives measured values from the station cyclically according to a predefined period.

The period is configurable (30 seconds by default). A measured value is detected as not renewed if it has not been received during the cycling period.

Following the detection of its non-renewal, it is positioned to "questionable" and the "OldData" flag is to true and sent to the controlling centers only once through the north service.

When a new measured value is received again from the station, the measured value is then sent with its new value with the corresponding quality and timestamp.

Measured values cycling OK:

Renewal of measured values ok

Measured values cycling failed:

Configuration

AttributeDescriptionExpected valuesMandatory
check_periodcycling check period, in secondsdefault = 30Yes

Configuration JSON structure

{
   "check_period":{
      "description":"cycling check period in seconds.",
      "type":"integer",
      "default":"30",
      "order":"1",
      "displayName":"Check period"
   }
}

Filtering rules

R1: The measured values cycling check applies only after receiving a first measured value.

R2: The measured values cycling check applies only to measured values with a "cyclical" cause of transmission.

R3: Outside the scope defined by R1 and R2, readings are passed through without any check or change.

Data processing

Input

This filter plugin expects readings to be a pivot model measured values datapoints.

It uses the identification (attribute "PIVOT.GTIM.Identifier") of the datapoint to obtain the context of the measured value in order to :

  • Update the date of reception of the measured value,
  • Know which measured value to read again in order to send the non-renewal message at the end of the timer.

The module uses the data PIVOT.GTIM.Cause.stVal (at "cyclic") to determine if the measured value is configured as cyclic.

Output

In case of non-renewal detection, the last measured value received by the module is re-read and the following values are overwritten :

  • PIVOT.GTIM.MvTyp.q.DetailQuality.oldData is set to "true"
  • PIVOT.GTIM.MvTyp.q.Validity is set to "questionable"
  • PIVOT.GTIM.MvTyp.q.Source is set to "substituted"
  • PIVOT.GTIM.MvTyp.t.SecondSinceEpoch is set to current gateway timestamp
  • PIVOT.GTIM.MvTyp.t.FractionOfSecond is set the fraction of the current gateway second
  • PIVOT.GTIM.TmOrg is set to "substituted"
  • PIVOT.GTIM.TmValidity.stVal is set to "valid"
  • PIVOT.GTIM.Cause.stVal is set to "3" (Spontaneous)


If the timestamp of the gateway is unreliable then:

  • PIVOT.GTIM.MvTyp.t.TimeQuality.clockFailure is set to "true"
  • PIVOT.GTIM.TmValidity is set to "invalid"


If the timestamp of the gateway is is not synchronized with the external UTC time then:

  • PIVOT.GTIM.MvTyp.t.TimeQuality.clockNotSynchronized is set to "true"
  • PIVOT.GTIM.TmValidity is set to "invalid"


  • No labels