Skip to content

Commit

Permalink
feat: parse telegram txt to json
Browse files Browse the repository at this point in the history
  • Loading branch information
jvandenaardweg committed Dec 18, 2022
1 parent 59f23f1 commit e7b3ed3
Show file tree
Hide file tree
Showing 3 changed files with 933 additions and 1 deletion.
37 changes: 36 additions & 1 deletion src/mocks/data/telegram.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,39 @@
const v50l3 = `/ISK5\\2M550T-1012\r
// const v50l3 = `ISK5\\2M550T-1012\r
// \r
// 1-3:0.2.8(50)\r
// 0-0:1.0.0(191229233714W)\r
// 0-0:96.1.1(4530303434303037313138353239333138)\r
// 1-0:1.8.1(004000.647*kWh)\r
// 1-0:1.8.2(001154.948*kWh)\r
// 1-0:2.8.1(000000.000*kWh)\r
// 1-0:2.8.2(000000.000*kWh)\r
// 0-0:96.14.0(0001)\r
// 1-0:1.7.0(01.765*kW)\r
// 1-0:2.7.0(00.000*kW)\r
// 0-0:96.7.21(00009)\r
// 0-0:96.7.9(00004)\r
// 1-0:99.97.0(2)(0-0:96.7.19)(180327064111S)(0000000180*s)(190108105923W)(0000002603*s)\r
// 1-0:32.32.0(00001)\r
// 1-0:52.32.0(00001)\r
// 1-0:72.32.0(00001)\r
// 1-0:32.36.0(00001)\r
// 1-0:52.36.0(00001)\r
// 1-0:72.36.0(00001)\r
// 0-0:96.13.0()\r
// 1-0:32.7.0(236.9*V)\r
// 1-0:52.7.0(235.1*V)\r
// 1-0:72.7.0(234.9*V)\r
// 1-0:31.7.0(000*A)\r
// 1-0:51.7.0(000*A)\r
// 1-0:71.7.0(006*A)\r
// 1-0:21.7.0(00.132*kW)\r
// 1-0:41.7.0(00.037*kW)\r
// 1-0:61.7.0(01.596*kW)\r
// 1-0:22.7.0(00.000*kW)\r
// 1-0:42.7.0(00.000*kW)\r
// 1-0:62.7.0(00.000*kW)\r
// !58E5\r`;
const v50l3 = `ISK5\\2M550T-1012\r
\r
1-3:0.2.8(50)\r
0-0:1.0.0(221215222225W)\r
Expand Down
165 changes: 165 additions & 0 deletions src/utils/telegram.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,165 @@
import { mockTelegramResponse } from '@/mocks/data/telegram';
import { parseTelegram } from './telegram';

describe('utils/telegram', () => {
// describe('parseTelegram', () => {
// it('should parse a telegram', () => {
// try {
// const parsed = parseTelegram(mockTelegramResponse['v42']);
// expect(parsed).toMatchObject('');
// } catch (err) {
// console.log('err while parsing', err);
// expect(err).toBeUndefined();
// }
// });
// });
describe('parsePacket', () => {
it('should parse a telegram', () => {
const parsedTelegram = parseTelegram(mockTelegramResponse['v50l3']);

const expected = {
meterType: 'SK5\\2M550T-1012',
version: '50',
timestamp: '2022-12-15T22:22:25.000Z',
equipmentId: '4530303434303037303138303138313137',
textMessage: {
codes: null,
message: '',
},
power: {
import: {
t1: {
value: 19037.267,
unit: 'kWh',
},
t2: {
value: 19495.788,
unit: 'kWh',
},
active: {
value: 0.211,
unit: 'kW',
},
},
export: {
t1: {
value: 0.002,
unit: 'kWh',
},
t2: {
value: 0.007,
unit: 'kWh',
},
active: {
value: 0,
unit: 'kW',
},
},
tariffIndicator: 2,
threshold: {
value: null,
unit: null,
},
fuseThreshold: {
value: null,
unit: null,
},
switchPosition: null,
numberOfPowerFailures: 7,
numberOfLongPowerFailures: 4,
longPowerFailureLog: {
count: 1,
log: [
{
startOfFailure: '2017-11-30T18:14:43.000Z',
endOfFailure: '2017-11-30T18:30:27.000Z',
duration: 944,
unit: 's',
},
],
},
voltageSags: {
l1: 8,
l2: 7,
l3: 11,
},
voltageSwell: {
l1: 1,
l2: 9,
l3: 9,
},
instantaneous: {
current: {
l1: {
value: 0,
unit: 'A',
},
l2: {
value: 0,
unit: 'A',
},
l3: {
value: 0,
unit: 'A',
},
},
voltage: {
l1: {
value: 223,
unit: 'V',
},
l2: {
value: 222,
unit: 'V',
},
l3: {
value: 223,
unit: 'V',
},
},
power: {
positive: {
l1: {
value: 0.066,
unit: 'kW',
},
l2: {
value: 0.012,
unit: 'kW',
},
l3: {
value: 0.135,
unit: 'kW',
},
},
negative: {
l1: {
value: 0,
unit: 'kW',
},
l2: {
value: 0,
unit: 'kW',
},
l3: {
value: 0,
unit: 'kW',
},
},
},
},
},
gas: {
deviceType: '003',
equipmentId: '4730303332353635353330393732333137',
timestamp: '2022-12-15T22:20:09.000Z',
value: 6770.798,
unit: 'm3',
valvePosition: null,
},
};

expect(parsedTelegram).toMatchObject(expected);
});
});
});
Loading

0 comments on commit e7b3ed3

Please sign in to comment.