Skip to content

Commit 478a8d8

Browse files
committed
feat(dlms): update test telegrams
1 parent b76b77b commit 478a8d8

34 files changed

+768
-591
lines changed

src/protocols/cosem.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ export const CosemLibrary = new CosemLibraryInternal()
125125
.addStringParser('0-0:1.0.0', ({ valueString, result }) => {
126126
result.metadata.timestamp = valueString; // TODO: Parse to date object
127127
})
128-
.addStringParser('*-*:96.1.1', ({ valueString, result }) => {
128+
.addStringParser('0-0:96.1.1', ({ valueString, result }) => {
129129
result.metadata.equipmentId = valueString;
130130
})
131131
.addNumberParser('1-*:1.8.*', ({ valueNumber, unit, obisCode, result }) => {
@@ -215,7 +215,7 @@ export const CosemLibrary = new CosemLibraryInternal()
215215
result.metadata.events.voltageSwells = result.metadata.events.voltageSwells ?? {};
216216
result.metadata.events.voltageSwells.l3 = valueNumber;
217217
})
218-
.addNumberParser('0-0:96.13.0', ({ valueString, result }) => {
218+
.addStringParser('0-0:96.13.0', ({ valueString, result }) => {
219219
result.metadata.textMessage = valueString;
220220
})
221221
.addNumberParser('0-0:96.13.1', ({ valueNumber, result }) => {

src/protocols/dsmr.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { decryptDlmsFrame } from './encryption.js';
22
import { SmartMeterParserError } from '../util/errors.js';
33
import { CosemLibrary } from './cosem.js';
4-
import { parseObisCodeFromString } from './obis-code.js';
4+
import { obisCodeToString, parseObisCodeFromString } from './obis-code.js';
55
import { calculateCrc16Arc } from '../util/crc.js';
66
import { BaseParserResult } from '../util/base-result.js';
77

@@ -44,7 +44,7 @@ export type DsmrParserResult = BaseParserResult & {
4444
/** Parses a string like "(1234.56*unit)", "(1234.56)", "(1234)" or "()". */
4545
const NumberTypeRegex = /^\(([\d.]+)?(\*\w+)?\)/;
4646
/** Parses a string like "(string)". */
47-
const StringTypeRegex = /^\(([^)]+)?\)/;
47+
const StringTypeRegex = /^\(([^)]*)?\)/;
4848

4949
export const DSMR_SOF = 0x2f; // '/'
5050
export const CR = 0x0d; // '\r'
@@ -70,8 +70,8 @@ export const isDsmrCrcValid = ({
7070
crc: number;
7171
}) => {
7272
// Strip the CRC from the telegram
73-
const telegramParts = telegram.split(CRLF);
74-
const strippedTelegram = telegramParts[0] + CRLF;
73+
const telegramParts = telegram.split(`${CRLF}!`);
74+
const strippedTelegram = telegramParts[0] + CRLF + '!';
7575

7676
const calculatedCrc = calculateCrc16Arc(Buffer.from(strippedTelegram, DEFAULT_FRAME_ENCODING));
7777

@@ -134,10 +134,10 @@ const decodeDsmrCosemLine = ({
134134

135135
const valueString = regexResult[1] ?? '';
136136
const unit = regexResult[2] ? regexResult[2].slice(1) : null;
137-
const valueNumber = parseFloat(valueString);
137+
let valueNumber = parseFloat(valueString);
138138

139139
if (isNaN(valueNumber)) {
140-
return false;
140+
valueNumber = 0;
141141
}
142142

143143
parser.callback({

tests/stream/stream-detect-type.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ describe('Stream: Detect Type', () => {
148148
});
149149

150150
it('Detects encrypted DLMS telegrams', async () => {
151-
const input = await readHexFile('./tests/telegrams/dlms/radiusel-example.txt');
151+
const input = await readHexFile('./tests/telegrams/dlms/aidon-example-2-encrypted.txt');
152152
const stream = new PassThrough();
153153
const callback = mock.fn();
154154

@@ -167,7 +167,7 @@ describe('Stream: Detect Type', () => {
167167
});
168168

169169
it('Detects encrypted DLMS telegrams (chunks)', async () => {
170-
const input = await readHexFile('./tests/telegrams/dlms/radiusel-example.txt');
170+
const input = await readHexFile('./tests/telegrams/dlms/aidon-example-2-encrypted.txt');
171171
const stream = new PassThrough();
172172
const callback = mock.fn();
173173

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
[
2+
{
3+
"error": {
4+
"message": "Encrypted frame detected",
5+
"name": "DecryptionRequired",
6+
"stack": "DecryptionRequired: Encrypted frame detected\n at decodeDLMSContent (/Users/niels/projects/energy-dongle/node-dsmr-parser/src/protocols/dlms.ts:58:13)\n at DlmsStreamParser.onData (/Users/niels/projects/energy-dongle/node-dsmr-parser/src/stream/stream-dlms.ts:124:27)\n at PassThrough.emit (node:events:517:28)\n at addChunk (node:internal/streams/readable:368:12)\n at readableAddChunk (node:internal/streams/readable:341:9)\n at Readable.push (node:internal/streams/readable:278:10)\n at node:internal/streams/transform:182:12\n at PassThrough._transform (node:internal/streams/passthrough:46:3)\n at Transform._write (node:internal/streams/transform:175:8)\n at writeOrBuffer (node:internal/streams/writable:392:12)"
7+
}
8+
}
9+
]
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
7e a2 8b 03 05 00 9c 4f e6 e7 00 db 08 73 79 73
2+
74 69 74 6c 65 82 02 72 30 11 22 33 44 95 e9 9b
3+
02 ab fc 7c 0f e8 d7 10 fd 03 0b 95 8d 4c d3 9d
4+
78 85 b5 2b 94 3a 89 d8 73 67 bc 3e c9 7f 1f c9
5+
9f 51 0e 01 45 21 2f 11 d2 7e bd ae 98 93 1f 68
6+
7a 3b 82 e9 b2 ad 99 78 a4 0b d8 ba a1 99 44 e6
7+
7b a0 ee 48 72 44 37 3b 97 43 18 84 46 9d ce 89
8+
01 8b b2 7a a7 66 1d 39 49 32 61 c8 b7 30 1f 4f
9+
d3 23 3c 21 e5 c8 7f 97 c5 43 0b 93 a2 19 5c 28
10+
70 f2 8a 1c d0 ec d3 ea 8a b1 c5 a3 26 f5 08 4b
11+
e1 42 e6 a0 e7 0a b2 46 cd f3 f7 90 9e 9b ca 78
12+
e5 a5 74 5b 88 72 6b 93 4d c1 3f aa da f0 1b 38
13+
58 b6 c8 d9 f4 b9 79 48 0e f0 a5 8d 4f 6d 33 d5
14+
41 1f 2c 43 0a 79 44 23 f3 2e 47 d8 7c b5 d5 a6
15+
a7 f8 7e 8a 5a 2c 3e a7 a0 ec 04 16 25 0e 76 b1
16+
c7 09 51 bd 3f 59 46 37 0c 4e 0c cd 9e 97 ab 7f
17+
9b bc 79 25 4b 99 c5 84 f2 14 cd 0d 95 d4 9e fe
18+
e2 83 a2 9a 57 c5 28 66 bb 3b 97 da 00 07 c6 26
19+
4e 4f f6 92 28 01 46 b0 b2 f6 dd b2 22 cb 23 b6
20+
bc fa 50 16 9a e7 17 b7 90 78 ad 49 09 78 13 28
21+
d5 76 8b 9d 18 43 8d 20 1d bb b3 b0 74 58 39 8d
22+
41 6b 82 d8 6f 34 4f 37 09 1f ea 3d eb 3e b8 c0
23+
38 48 3d 80 f1 32 e7 4c b6 37 b5 e5 24 2f f7 ec
24+
1d 82 cc 0c e7 2e 46 4b 03 cf 6a 28 02 3f 42 9f
25+
cb 63 93 32 24 56 bf bb 28 5e 1d 37 4e 93 63 66
26+
ea f4 67 db be ce 03 fb 7a b8 80 5c 0f 16 18 57
27+
f3 24 cc 10 26 2a 95 24 d3 2d 7f c3 70 d3 8a 06
28+
20 42 72 bb e6 b3 14 0d a4 43 62 0b 29 f9 f4 dc
29+
32 bc fc b3 46 bb fd c5 13 8e c0 dc 94 17 7e 60
30+
b5 df 6d 1d 24 48 50 48 80 db f9 cf 9a ba cb b7
31+
bb 07 96 f3 66 9f f3 5d 46 39 57 04 3f d8 10 44
32+
c7 52 0f fa 56 65 26 4e 0d c3 22 7b 38 f3 35 6c
33+
cb ba 4a 58 34 93 2e eb e9 7d ed 1a d2 55 38 f9
34+
f3 11 ae f9 1a 52 8f 59 76 74 e8 ee ee 4d 4d 2e
35+
a2 ab c0 ee a1 73 ba 7e 0d bb 2a d7 6b 3c 31 b8
36+
9a f7 87 26 47 d6 41 c8 8d 27 09 2c e0 28 8a 15
37+
4d 16 50 a9 f3 71 52 db 6f ff 81 d8 38 e3 5b 41
38+
bf 58 41 6a e2 d4 0d cf 40 42 36 2b e8 13 c6 86
39+
7a f5 21 7d 09 c7 a5 be 68 7c f4 7c f7 d0 a0 41
40+
9b f0 72 f5 8c 8f e0 43 f2 8b 84 e6 bf 8d 09 ee
41+
97 c8 31 de 81 eb dd c2 ca cb dc 76 7e

tests/telegrams/dlms/kamstrup-example-1.json

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@
2424
"cosem": {
2525
"unknownObjects": [
2626
"1-1:0.0.5(5706567000000000)",
27+
"1-1:96.1.1(000000000000000000)",
2728
"1-1:3.7.0(0)",
2829
"1-1:4.7.0(0)"
2930
],
3031
"knownObjects": [
31-
"1-1:96.1.1(000000000000000000)",
3232
"1-1:1.7.0(0)",
3333
"1-1:2.7.0(0)",
3434
"1-1:31.7.0(0)",
@@ -54,8 +54,6 @@
5454
}
5555
},
5656
"mBus": {},
57-
"metadata": {
58-
"equipmentId": "000000000000000000"
59-
}
57+
"metadata": {}
6058
}
6159
]

tests/telegrams/dlms/kamstrup-example-2.json

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,13 @@
2626
"cosem": {
2727
"unknownObjects": [
2828
"1-1:0.0.5(5706567000000000)",
29+
"1-1:96.1.1(000000000000000000)",
2930
"1-1:3.7.0(0)",
3031
"1-1:4.7.0(0)",
3132
"1-1:3.8.0(0)",
3233
"1-1:4.8.0(0)"
3334
],
3435
"knownObjects": [
35-
"1-1:96.1.1(000000000000000000)",
3636
"1-1:1.7.0(0)",
3737
"1-1:2.7.0(0)",
3838
"1-1:31.7.0(0)",
@@ -64,8 +64,6 @@
6464
}
6565
},
6666
"mBus": {},
67-
"metadata": {
68-
"equipmentId": "000000000000000000"
69-
}
67+
"metadata": {}
7068
}
7169
]

tests/telegrams/dlms/kamstrup-example-3.json

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@
2525
},
2626
"cosem": {
2727
"unknownObjects": [
28-
"1-1:0.0.5(5706567000000000)"
28+
"1-1:0.0.5(5706567000000000)",
29+
"1-1:96.1.1(000000000000000000)"
2930
],
3031
"knownObjects": [
31-
"1-1:96.1.1(000000000000000000)",
3232
"1-1:1.7.0(0)",
3333
"1-1:31.7.0(0)",
3434
"1-1:32.7.0(0)",
@@ -48,8 +48,6 @@
4848
}
4949
},
5050
"mBus": {},
51-
"metadata": {
52-
"equipmentId": "000000000000000000"
53-
}
51+
"metadata": {}
5452
}
5553
]

tests/telegrams/dsmr/dsmr-2.2-kfm-1.json

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,36 @@
11
{
2-
"raw": "/KMP5 ZABF001587315111\r\n0-0:96.1.1(205C4D246333034353537383234323121)\r\n1-0:1.8.1(00185.000*kWh)\r\n1-0:1.8.2(00084.000*kWh)\r\n1-0:2.8.1(00013.000*kWh)\r\n1-0:2.8.2(00019.000*kWh)\r\n0-0:96.14.0(0001)\r\n1-0:1.7.0(0000.98*kW)\r\n1-0:2.7.0(0000.00*kW)\r\n0-0:17.0.0(999*A)\r\n0-0:96.3.10(1)\r\n0-0:96.13.1()\r\n0-0:96.13.0()\r\n0-1:24.1.0(3)\r\n0-1:96.1.0(3238313031453631373038389930337131)\r\n0-1:24.3.0(120517020000)(08)(60)(1)(0-1:24.2.1)(m3)\r\n(00124.477)\r\n0-1:24.4.0(1)\r\n!",
3-
"header": {
4-
"identifier": " ZABF001587315111",
5-
"xxx": "KMP",
6-
"z": "5"
7-
},
8-
"metadata": {
9-
"equipmentId": "205C4D246333034353537383234323121",
2+
"dsmr": {
3+
"raw": "/KMP5 ZABF001587315111\r\n0-0:96.1.1(205C4D246333034353537383234323121)\r\n1-0:1.8.1(00185.000*kWh)\r\n1-0:1.8.2(00084.000*kWh)\r\n1-0:2.8.1(00013.000*kWh)\r\n1-0:2.8.2(00019.000*kWh)\r\n0-0:96.14.0(0001)\r\n1-0:1.7.0(0000.98*kW)\r\n1-0:2.7.0(0000.00*kW)\r\n0-0:17.0.0(999*A)\r\n0-0:96.3.10(1)\r\n0-0:96.13.1()\r\n0-0:96.13.0()\r\n0-1:24.1.0(3)\r\n0-1:96.1.0(3238313031453631373038389930337131)\r\n0-1:24.3.0(120517020000)(08)(60)(1)(0-1:24.2.1)(m3)\r\n(00124.477)\r\n0-1:24.4.0(1)\r\n!",
4+
"header": {
5+
"identifier": " ZABF001587315111",
6+
"xxx": "KMP",
7+
"z": "5"
8+
},
109
"unknownLines": [
1110
"0-0:17.0.0(999*A)",
1211
"0-0:96.3.10(1)",
1312
"(00124.477)",
1413
"0-1:24.4.0(1)"
15-
],
14+
]
15+
},
16+
"cosem": {
17+
"unknownObjects": [],
18+
"knownObjects": []
19+
},
20+
"metadata": {
21+
"equipmentId": "205C4D246333034353537383234323121",
1622
"numericMessage": 0,
1723
"textMessage": ""
1824
},
1925
"electricity": {
2026
"tariffs": {
2127
"1": {
22-
"received": 185,
23-
"returned": 13
28+
"received": 185000,
29+
"returned": 13000
2430
},
2531
"2": {
26-
"received": 84,
27-
"returned": 19
32+
"received": 84000,
33+
"returned": 19000
2834
}
2935
},
3036
"currentTariff": 1,

tests/telegrams/dsmr/dsmr-3.0-spec-example.json

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,36 @@
11
{
2-
"raw": "/ISk5\\2MT382-1000\r\n\r\n0-0:96.1.1(4B384547303034303436333935353037)\r\n1-0:1.8.1(12345.678*kWh)\r\n1-0:1.8.2(12345.678*kWh)\r\n1-0:2.8.1(12345.678*kWh)\r\n1-0:2.8.2(12345.678*kWh)\r\n0-0:96.14.0(0002)\r\n1-0:1.7.0(001.19*kW)\r\n1-0:2.7.0(000.00*kW)\r\n0-0:17.0.0(016*A)\r\n0-0:96.3.10(1)\r\n0-0:96.13.1(303132333435363738)\r\n0-0:96.13.0(303132333435363738393A3B3C3D3E3F303132333435363738393A3B3C3D3E3F303132333435363738393A3B3C3D3E3F303132333435363738393A3B3C3D3E3F303132333435363738393A3B3C3D3E3F)\r\n0-1:96.1.0(3232323241424344313233343536373839)\r\n0-1:24.1.0(03)\r\n0-1:24.3.0(090212160000)(00)(60)(1)(0-1:24.2.1)(m3)\r\n(00000.000)\r\n0-1:24.4.0(1)\r\n!\r\n",
3-
"header": {
4-
"identifier": "\\2MT382-1000",
5-
"xxx": "ISk",
6-
"z": "5"
7-
},
8-
"metadata": {
9-
"equipmentId": "4B384547303034303436333935353037",
2+
"dsmr": {
3+
"raw": "/ISk5\\2MT382-1000\r\n\r\n0-0:96.1.1(4B384547303034303436333935353037)\r\n1-0:1.8.1(12345.678*kWh)\r\n1-0:1.8.2(12345.678*kWh)\r\n1-0:2.8.1(12345.678*kWh)\r\n1-0:2.8.2(12345.678*kWh)\r\n0-0:96.14.0(0002)\r\n1-0:1.7.0(001.19*kW)\r\n1-0:2.7.0(000.00*kW)\r\n0-0:17.0.0(016*A)\r\n0-0:96.3.10(1)\r\n0-0:96.13.1(303132333435363738)\r\n0-0:96.13.0(303132333435363738393A3B3C3D3E3F303132333435363738393A3B3C3D3E3F303132333435363738393A3B3C3D3E3F303132333435363738393A3B3C3D3E3F303132333435363738393A3B3C3D3E3F)\r\n0-1:96.1.0(3232323241424344313233343536373839)\r\n0-1:24.1.0(03)\r\n0-1:24.3.0(090212160000)(00)(60)(1)(0-1:24.2.1)(m3)\r\n(00000.000)\r\n0-1:24.4.0(1)\r\n!\r\n",
4+
"header": {
5+
"identifier": "\\2MT382-1000",
6+
"xxx": "ISk",
7+
"z": "5"
8+
},
109
"unknownLines": [
1110
"0-0:17.0.0(016*A)",
1211
"0-0:96.3.10(1)",
13-
"0-0:96.13.1(303132333435363738)",
1412
"(00000.000)",
1513
"0-1:24.4.0(1)"
16-
],
14+
]
15+
},
16+
"cosem": {
17+
"unknownObjects": [],
18+
"knownObjects": []
19+
},
20+
"metadata": {
21+
"equipmentId": "4B384547303034303436333935353037",
22+
"numericMessage": 303132333435363700,
1723
"textMessage": "303132333435363738393A3B3C3D3E3F303132333435363738393A3B3C3D3E3F303132333435363738393A3B3C3D3E3F303132333435363738393A3B3C3D3E3F303132333435363738393A3B3C3D3E3F"
1824
},
1925
"electricity": {
2026
"tariffs": {
2127
"1": {
22-
"received": 12345.678,
23-
"returned": 12345.678
28+
"received": 12345678,
29+
"returned": 12345678
2430
},
2531
"2": {
26-
"received": 12345.678,
27-
"returned": 12345.678
32+
"received": 12345678,
33+
"returned": 12345678
2834
}
2935
},
3036
"currentTariff": 2,
Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,31 @@
11
{
2-
"raw": "/ISk5\\2MT382-1 000\r\n\r\n1-3:0.2.8(40)\r\n0-0:1.0.0(101209113020W)\r\n0-0:96.1.1(4B384547303034303436333935353037)\r\n1-0:1.8.1(123456.789*kWh)\r\n1-0:1.8.2(123456.789*kWh)\r\n1-0:2.8.1(123456.789*kWh)\r\n1-0:2.8.2(123456.789*kWh)\r\n0-0:96.14.0(0002)\r\n1-0:1.7.0(01.193*kW)\r\n1-0:2.7.0(00.000*kW)\r\n0-0:17.0.0(016.1*kW)\r\n0-0:96.3.10(1)\r\n0-0:96.7.21(00004)\r\n0-0:96.7.9(00002)\r\n1-0:99:97.0(2)(0:96.7.19)(101208152415W)(0000000240*s)(101208151004W)(00000000301*s)\r\n1-0:32.32.0(00002)\r\n1-0:52.32.0(00001)\r\n1-0:72:32.0(00000)\r\n1-0:32.36.0(00000)\r\n1-0:52.36.0(00003)\r\n1-0:72.36.0(00000)\r\n0-0:96.13.1(3031203631203831)\r\n0-0:96.13.0(303132333435363738393A3B3C3D3E3F303132333435363738393A3B3C3D3E3F303132333435363738393A3B3C3D3E3F303132333435363738393A3B3C3D3E3F303132333435363738393A3B3C3D3E3F)\r\n0-1:24.1.0(03)\r\n0-1:96.1.0(3232323241424344313233343536373839)\r\n0-1:24.2.1(101209110000W)(12785.123*m3)\r\n0-1:24.4.0(1)\r\n!522B",
3-
"header": {
4-
"identifier": "\\2MT382-1 000",
5-
"xxx": "ISk",
6-
"z": "5"
7-
},
8-
"metadata": {
9-
"dsmrVersion": 4,
10-
"timestamp": "101209113020W",
11-
"equipmentId": "4B384547303034303436333935353037",
2+
"dsmr": {
3+
"raw": "/ISk5\\2MT382-1 000\r\n\r\n1-3:0.2.8(40)\r\n0-0:1.0.0(101209113020W)\r\n0-0:96.1.1(4B384547303034303436333935353037)\r\n1-0:1.8.1(123456.789*kWh)\r\n1-0:1.8.2(123456.789*kWh)\r\n1-0:2.8.1(123456.789*kWh)\r\n1-0:2.8.2(123456.789*kWh)\r\n0-0:96.14.0(0002)\r\n1-0:1.7.0(01.193*kW)\r\n1-0:2.7.0(00.000*kW)\r\n0-0:17.0.0(016.1*kW)\r\n0-0:96.3.10(1)\r\n0-0:96.7.21(00004)\r\n0-0:96.7.9(00002)\r\n1-0:99:97.0(2)(0:96.7.19)(101208152415W)(0000000240*s)(101208151004W)(00000000301*s)\r\n1-0:32.32.0(00002)\r\n1-0:52.32.0(00001)\r\n1-0:72:32.0(00000)\r\n1-0:32.36.0(00000)\r\n1-0:52.36.0(00003)\r\n1-0:72.36.0(00000)\r\n0-0:96.13.1(3031203631203831)\r\n0-0:96.13.0(303132333435363738393A3B3C3D3E3F303132333435363738393A3B3C3D3E3F303132333435363738393A3B3C3D3E3F303132333435363738393A3B3C3D3E3F303132333435363738393A3B3C3D3E3F)\r\n0-1:24.1.0(03)\r\n0-1:96.1.0(3232323241424344313233343536373839)\r\n0-1:24.2.1(101209110000W)(12785.123*m3)\r\n0-1:24.4.0(1)\r\n!522B",
4+
"header": {
5+
"identifier": "\\2MT382-1 000",
6+
"xxx": "ISk",
7+
"z": "5"
8+
},
129
"unknownLines": [
1310
"0-0:17.0.0(016.1*kW)",
1411
"0-0:96.3.10(1)",
1512
"1-0:99:97.0(2)(0:96.7.19)(101208152415W)(0000000240*s)(101208151004W)(00000000301*s)",
1613
"1-0:72:32.0(00000)",
17-
"0-0:96.13.1(3031203631203831)",
1814
"0-1:24.4.0(1)"
1915
],
16+
"crc": {
17+
"value": 21035,
18+
"valid": false
19+
}
20+
},
21+
"cosem": {
22+
"unknownObjects": [],
23+
"knownObjects": []
24+
},
25+
"metadata": {
26+
"dsmrVersion": 4,
27+
"timestamp": "101209113020W",
28+
"equipmentId": "4B384547303034303436333935353037",
2029
"events": {
2130
"powerFailures": 4,
2231
"longPowerFailures": 2,
@@ -30,17 +39,18 @@
3039
"l3": 0
3140
}
3241
},
42+
"numericMessage": 3031203631203831,
3343
"textMessage": "303132333435363738393A3B3C3D3E3F303132333435363738393A3B3C3D3E3F303132333435363738393A3B3C3D3E3F303132333435363738393A3B3C3D3E3F303132333435363738393A3B3C3D3E3F"
3444
},
3545
"electricity": {
3646
"tariffs": {
3747
"1": {
38-
"received": 123456.789,
39-
"returned": 123456.789
48+
"received": 123456789,
49+
"returned": 123456789
4050
},
4151
"2": {
42-
"received": 123456.789,
43-
"returned": 123456.789
52+
"received": 123456789,
53+
"returned": 123456789
4454
}
4555
},
4656
"currentTariff": 2,
@@ -55,9 +65,5 @@
5565
"value": 12785.123,
5666
"unit": "m3"
5767
}
58-
},
59-
"crc": {
60-
"value": 21035,
61-
"valid": false
6268
}
6369
}

0 commit comments

Comments
 (0)