Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The Lobaro wMbus Parser is used from device Parsers and available as web API at https://platform.lobaro.com/#/wmbus/parser


wMbus API

Response (Lobaro wMbus JSON)

The following is an example of the parsing result of an encrypted example telegram from the OMS specification:

...

Expand


Code Block
{
  "Raw": "0x2e4493157856341233037a2a0020055923c95aaa26d1b2e7493b013ec4a6f6d3529b520edff0ea6defc99d6d69ebf3",
  "RawWithCrc": "0x2e44931578563412330333637a2a0020055923c95aaa26d1b2e7493b2a8b013ec4a6f6d3529b520edff0ea6defc955b29d6d69ebf3ec8a",
  "FrameFormat": "A",
  "Length": 46,
  "CField": "0x44",
  "CFieldString": "0x44 (SND_NR)",
  "MField": "0x9315",
  "MFieldCodeString": "ELS",
  "MFieldLongString": "Elster GmbH, Germany, Europe",
  "Id": 305419896,
  "IdString": "12345678",
  "Version": 51,
  "Device": "0x03",
  "DeviceString": "Gas",
  "CiField": "0x7a",
  "HeaderKnown": true,
  "PayloadKnown": true,
  "Header": {
    "Serial": 0,
    "IdString": "",
    "ManufacturerCode": 0,
    "MFieldCodeString": "",
    "MFieldLongString": "",
    "Version": 0,
    "DeviceType": 0,
    "DeviceString": "",
    "EncryptionMode": 5,
    "EncryptionModeString": "AES with CBC",
    "EncryptedBlocks": 2,
    "HopCount": 0,
    "IsAccessible": true,
    "IsBidirectionalMode": false,
    "IsSynchronous": false,
    "ReservedBit": false,
    "TelegramType": 0,
    "AccessNumber": 42,
    "StatusByte": 0,
    "ConfigField": [
      32,
      5
    ]
  },
  "Body": {
    "Raw": "0x2f2f0c1427048502046d32371f1502fd1700002f2f2f2f2f2f2f2f2f2f2f2f2f",
    "DataRecords": [
      {
        "DifDataLength": 4,
        "DifFunctionString": "Current Value",
        "DifDataFormat": "BCD (8 digits)",
        "VifUnit": "m^3",
        "VifQuantity": "Volume",
        "VifExponent": 0.01,
        "VifEDescription": "",
        "Value": 2850427,
        "ValueScaled": 28504.27,
        "ValueString": "28504.27",
        "Tariff": 0,
        "StorageNo": 0,
        "DifVif": "0x0c14",
        "Data": "0x27048502",
        "Dif": {
          "Value": 12,
          "DifE": []
        },
        "Vif": {
          "IsPresent": true,
          "Value": 20,
          "VifE": []
        }
      },
      {
        "DifDataLength": 4,
        "DifFunctionString": "Current Value",
        "DifDataFormat": "signed binary (32 bits), or date/time in F format",
        "VifUnit": "",
        "VifQuantity": "Time & Date",
        "VifExponent": 1,
        "VifEDescription": "",
        "Value": 354367282,
        "ValueScaled": 354367282,
        "ValueString": "2008-05-31T23:50:00Z",
        "Tariff": 0,
        "StorageNo": 0,
        "DifVif": "0x046d",
        "Data": "0x32371f15",
        "Dif": {
          "Value": 4,
          "DifE": []
        },
        "Vif": {
          "IsPresent": true,
          "Value": 109,
          "VifE": []
        }
      },
      {
        "DifDataLength": 2,
        "DifFunctionString": "Current Value",
        "DifDataFormat": "signed binary (16 bits), or date in G format",
        "VifUnit": "",
        "VifQuantity": "Error flags",
        "VifExponent": 1,
        "VifEDescription": "",
        "Value": 0,
        "ValueScaled": 0,
        "ValueString": "0",
        "Tariff": 0,
        "StorageNo": 0,
        "DifVif": "0x02fd17",
        "Data": "0x0000",
        "Dif": {
          "Value": 2,
          "DifE": []
        },
        "Vif": {
          "IsPresent": true,
          "Value": 253,
          "VifE": [
            23
          ]
        }
      }
    ],
    "PayloadKnown": true,
    "IsEncrypted": false,
    "DecryptionFailed": false,
    "BlockCiField": 0
  },
  "AField": {
    "Id": 305419896,
    "Version": 51,
    "Device": 3
  },
  "Ell": null,
  "Afl": null,
  "BodyParseError": "",
  "CrcValid": true,
  "HasCrc": true,
  "SourceType": "",
  "IsCompactFrame": false,
  "FormatSignature": 61330,
  "FormatFrame": "DBQEbQL9Fw=="
}


Important fields

FieldDescription

IsEncrypted

true if the parsed telegram is still encrypted
DecryptionFailed

true if the parser tied to decrypt the telegram without success.

Can be used in conjunction with IsEncrypted to detect if the telegram was encrypted (see below).

PayloadKnownIf the payload of the telegram (related to the CI field) is known to the parser and can be parsed
BodyParseErrorError while parsing the payload body
FormatSignatureUnique signature of the DifVif structure of all DataRecords. If any DifVif changes, the FormatSignature does change as well.

Encryption state

IsEncryptedDecryptionFailedMeaning
truetrueNo valid key
falsefalseTelegram not encrypted
truefalseTelegram is encrypted but parser can not decrypt it (e.g. unknown algorithm)
falsetruePlain telegram where decryption failed - should not happen

VifUnit & VifQuantity

There are a many valid combinations of VifUnit & VifQuantity. All possible values are listed below.

...