@golemio/energetics 1.4.13-dev.1899264140 → 1.4.13-dev.1940911315

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/db/migrations/postgresql/sqls/20250626130910-enapo-measurements-up.sql +1 -1
  2. package/dist/integration-engine/commodity-providers/helper/{MeasurementsDataNormalizer.js → EnapoMeasurementsDataNormalizer.js} +1 -1
  3. package/dist/integration-engine/commodity-providers/helper/EnapoMeasurementsDataNormalizer.js.map +1 -0
  4. package/dist/integration-engine/commodity-providers/workers/tasks/AbstractFetchMeasurementsTask.js +2 -2
  5. package/dist/integration-engine/commodity-providers/workers/tasks/AbstractFetchMeasurementsTask.js.map +1 -1
  6. package/dist/integration-engine/enapo/helpers/MeasurementsDataNormalizer.d.ts +5 -0
  7. package/dist/integration-engine/enapo/helpers/MeasurementsDataNormalizer.js +11 -0
  8. package/dist/integration-engine/enapo/helpers/MeasurementsDataNormalizer.js.map +1 -0
  9. package/dist/integration-engine/enapo/transformations/PPasMeasurementTransformation.d.ts +1 -0
  10. package/dist/integration-engine/enapo/transformations/PPasMeasurementTransformation.js +5 -0
  11. package/dist/integration-engine/enapo/transformations/PPasMeasurementTransformation.js.map +1 -1
  12. package/dist/integration-engine/enapo/workers/task/AbstractEnapoFetchMeasurementsTask.js +3 -3
  13. package/dist/integration-engine/enapo/workers/task/AbstractEnapoFetchMeasurementsTask.js.map +1 -1
  14. package/dist/schema-definitions/datasources/commodity-providers/AveApiDeviceDataJsonSchema.js +2 -1
  15. package/dist/schema-definitions/datasources/commodity-providers/AveApiDeviceDataJsonSchema.js.map +1 -1
  16. package/dist/schema-definitions/datasources/commodity-providers/interfaces/IAveApiDeviceDataDto.d.ts +1 -0
  17. package/dist/schema-definitions/datasources/helpers/MeasurementVariableEnum.d.ts +2 -1
  18. package/dist/schema-definitions/datasources/helpers/MeasurementVariableEnum.js +1 -0
  19. package/dist/schema-definitions/datasources/helpers/MeasurementVariableEnum.js.map +1 -1
  20. package/dist/schema-definitions/models/EnapoMeasurementsModel.js +1 -0
  21. package/dist/schema-definitions/models/EnapoMeasurementsModel.js.map +1 -1
  22. package/dist/schema-definitions/models/constants/MeasurementConstants.js +1 -0
  23. package/dist/schema-definitions/models/constants/MeasurementConstants.js.map +1 -1
  24. package/docs/Energetika-Str/303/241nka-5-Str/303/241nka-3.drawio.png +0 -0
  25. package/docs/implementation_documentation.md +38 -11
  26. package/package.json +1 -1
  27. package/dist/integration-engine/commodity-providers/helper/MeasurementsDataNormalizer.js.map +0 -1
  28. /package/dist/integration-engine/commodity-providers/helper/{MeasurementsDataNormalizer.d.ts → EnapoMeasurementsDataNormalizer.d.ts} +0 -0
@@ -8,5 +8,5 @@ CREATE TABLE enapo_measurements (
8
8
  device_serial_number varchar(50) NOT NULL,
9
9
  created_at timestamp NULL,
10
10
  updated_at timestamp NULL,
11
- CONSTRAINT consumption_energy_measurements_pkey PRIMARY KEY ("timestamp", var, place_id)
11
+ CONSTRAINT enapo_measurements_pkey PRIMARY KEY (eic, "timestamp", var, place_id)
12
12
  );
@@ -8,4 +8,4 @@ class MeasurementsDataNormalizer {
8
8
  }
9
9
  }
10
10
  exports.MeasurementsDataNormalizer = MeasurementsDataNormalizer;
11
- //# sourceMappingURL=MeasurementsDataNormalizer.js.map
11
+ //# sourceMappingURL=EnapoMeasurementsDataNormalizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnapoMeasurementsDataNormalizer.js","sourceRoot":"","sources":["../../../../src/integration-engine/commodity-providers/helper/EnapoMeasurementsDataNormalizer.ts"],"names":[],"mappings":";;;AAGA,yGAAyG;AACzG,MAAa,0BAA0B;IAC5B,MAAM,CAAC,MAAM,CAAC,IAAoD;QACrE,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;IACvG,CAAC;CACJ;AAJD,gEAIC"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AbstractFetchMeasurementsTask = void 0;
4
4
  const constants_1 = require("../../constants");
5
- const MeasurementsDataNormalizer_1 = require("../../helper/MeasurementsDataNormalizer");
5
+ const EnapoMeasurementsDataNormalizer_1 = require("../../helper/EnapoMeasurementsDataNormalizer");
6
6
  const integration_engine_1 = require("@golemio/core/dist/integration-engine");
7
7
  const MEASUREMENTS_BATCH_SIZE = 5000;
8
8
  class AbstractFetchMeasurementsTask extends integration_engine_1.AbstractTask {
@@ -13,7 +13,7 @@ class AbstractFetchMeasurementsTask extends integration_engine_1.AbstractTask {
13
13
  for (let i = 0; i < data.length; i += MEASUREMENTS_BATCH_SIZE) {
14
14
  let batch = data.slice(i, i + MEASUREMENTS_BATCH_SIZE);
15
15
  if (!skipFilter) {
16
- batch = MeasurementsDataNormalizer_1.MeasurementsDataNormalizer.filter(batch);
16
+ batch = EnapoMeasurementsDataNormalizer_1.MeasurementsDataNormalizer.filter(batch);
17
17
  }
18
18
  // Remove duplicated measurements from the batch
19
19
  batch = batch.filter((item, index, self) => index ===
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractFetchMeasurementsTask.js","sourceRoot":"","sources":["../../../../../src/integration-engine/commodity-providers/workers/tasks/AbstractFetchMeasurementsTask.ts"],"names":[],"mappings":";;;AAAA,+CAAgE;AAChE,wFAAuG;AAGvG,8EAAqE;AAGrE,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAErC,MAAsB,6BAA6D,SAAQ,iCAAe;IAGtG;QACI,KAAK,CAAC,uBAAW,CAAC,CAAC;IACvB,CAAC;IAES,KAAK,CAAC,mBAAmB,CAAC,IAAuB,EAAE,aAAsB,KAAK;QACpF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,uBAAuB,EAAE;YAC3D,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,uBAAuB,CAAC,CAAC;YAEvD,IAAI,CAAC,UAAU,EAAE;gBACb,KAAK,GAAG,uDAA0B,CAAC,MAAM,CAAC,KAAK,CAAsB,CAAC;aACzE;YAED,gDAAgD;YAChD,KAAK,GAAG,KAAK,CAAC,MAAM,CAChB,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAClB,KAAK;gBACL,IAAI,CAAC,SAAS,CACV,CAAC,CAAC,EAAE,EAAE,CACF,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;oBAClD,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;oBACpB,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ;oBAC5B,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAC7B,CACR,CAAC;YAEF,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACpD;IACL,CAAC;CACJ;AA/BD,sEA+BC"}
1
+ {"version":3,"file":"AbstractFetchMeasurementsTask.js","sourceRoot":"","sources":["../../../../../src/integration-engine/commodity-providers/workers/tasks/AbstractFetchMeasurementsTask.ts"],"names":[],"mappings":";;;AAAA,+CAAgE;AAChE,kGAA4G;AAG5G,8EAAqE;AAGrE,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAErC,MAAsB,6BAA6D,SAAQ,iCAAe;IAGtG;QACI,KAAK,CAAC,uBAAW,CAAC,CAAC;IACvB,CAAC;IAES,KAAK,CAAC,mBAAmB,CAAC,IAAuB,EAAE,aAAsB,KAAK;QACpF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,uBAAuB,EAAE;YAC3D,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,uBAAuB,CAAC,CAAC;YAEvD,IAAI,CAAC,UAAU,EAAE;gBACb,KAAK,GAAG,4DAA0B,CAAC,MAAM,CAAC,KAAK,CAAsB,CAAC;aACzE;YAED,gDAAgD;YAChD,KAAK,GAAG,KAAK,CAAC,MAAM,CAChB,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAClB,KAAK;gBACL,IAAI,CAAC,SAAS,CACV,CAAC,CAAC,EAAE,EAAE,CACF,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;oBAClD,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;oBACpB,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ;oBAC5B,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAC7B,CACR,CAAC;YAEF,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACpD;IACL,CAAC;CACJ;AA/BD,sEA+BC"}
@@ -0,0 +1,5 @@
1
+ import { IEnapoMeasurementsDto } from "../../../schema-definitions/models/interfaces/IEnapoMeasurmentsDto";
2
+ import { IMeasurementDto } from "../../../schema-definitions/models/interfaces/IMeasurementDto";
3
+ export declare class EnapoMeasurementsDataNormalizer {
4
+ static filter(data: Array<IEnapoMeasurementsDto | IMeasurementDto>): (IMeasurementDto | IEnapoMeasurementsDto)[];
5
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EnapoMeasurementsDataNormalizer = void 0;
4
+ // Filter out measurements with null values, negative values and future timestamps (issue prevzeti-ed#37)
5
+ class EnapoMeasurementsDataNormalizer {
6
+ static filter(data) {
7
+ return data.filter((item) => item.value !== null && item.value >= 0 && item.timestamp < new Date());
8
+ }
9
+ }
10
+ exports.EnapoMeasurementsDataNormalizer = EnapoMeasurementsDataNormalizer;
11
+ //# sourceMappingURL=MeasurementsDataNormalizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MeasurementsDataNormalizer.js","sourceRoot":"","sources":["../../../../src/integration-engine/enapo/helpers/MeasurementsDataNormalizer.ts"],"names":[],"mappings":";;;AAGA,yGAAyG;AACzG,MAAa,+BAA+B;IACjC,MAAM,CAAC,MAAM,CAAC,IAAoD;QACrE,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;IACxG,CAAC;CACJ;AAJD,0EAIC"}
@@ -10,5 +10,6 @@ export declare class PPasMeasurementTransformation extends AbstractTransformatio
10
10
  protected transformInternal: (data: IAveApiDeviceDataDto & IPPasPlaces) => {
11
11
  operatingAmount: IEnapoMeasurementsDto;
12
12
  convertDifference: IEnapoMeasurementsDto;
13
+ operatingDifference: IEnapoMeasurementsDto;
13
14
  };
14
15
  }
@@ -38,6 +38,11 @@ let PPasMeasurementTransformation = exports.PPasMeasurementTransformation = clas
38
38
  var: MeasurementVariableEnum_1.MeasurementVariable.Core2,
39
39
  ...baseData,
40
40
  },
41
+ operatingDifference: {
42
+ value: data.OperatingDifference,
43
+ var: MeasurementVariableEnum_1.MeasurementVariable.CoreDiff,
44
+ ...baseData,
45
+ },
41
46
  };
42
47
  };
43
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PPasMeasurementTransformation.js","sourceRoot":"","sources":["../../../../src/integration-engine/enapo/transformations/PPasMeasurementTransformation.ts"],"names":[],"mappings":";;;;;;;;;AAAA,+GAAsG;AACtG,kHAA6G;AAE7G,qHAAuF;AAEvF,6GAA0G;AAC1G,2DAA2D;AAC3D,iEAAgE;AAIzD,IAAM,6BAA6B,2CAAnC,MAAM,6BAA8B,SAAQ,+CAGlD;IAHM;;QAII,SAAI,GAAG,+BAA+B,CAAC;QAEpC,sBAAiB,GAAG,CAC1B,IAAwC,EAC4C,EAAE;YACtF,MAAM,QAAQ,GAAG;gBACb,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,SAAS,EAAE,gBAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE;oBAC3C,IAAI,EAAE,mCAAgB,CAAC,WAAW;iBACrC,CAAC,CAAC,QAAQ,EAAE;gBACb,MAAM,EAAE,yCAAiB,CAAC,kBAAkB;gBAC5C,QAAQ,EAAE,IAAI,CAAC,OAAO;gBACtB,oBAAoB,EAAE,IAAI,CAAC,kBAAkB;aAChD,CAAC;YAEF,OAAO;gBACH,eAAe,EAAE;oBACb,KAAK,EAAE,IAAI,CAAC,eAAe;oBAC3B,GAAG,EAAE,6CAAmB,CAAC,IAAI;oBAC7B,GAAG,QAAQ;iBACd;gBACD,iBAAiB,EAAE;oBACf,KAAK,EAAE,IAAI,CAAC,iBAAiB;oBAC7B,GAAG,EAAE,6CAAmB,CAAC,KAAK;oBAC9B,GAAG,QAAQ;iBACd;aACJ,CAAC;QACN,CAAC,CAAC;IACN,CAAC;CAAA,CAAA;wCAhCY,6BAA6B;IADzC,IAAA,qBAAU,GAAE;GACA,6BAA6B,CAgCzC"}
1
+ {"version":3,"file":"PPasMeasurementTransformation.js","sourceRoot":"","sources":["../../../../src/integration-engine/enapo/transformations/PPasMeasurementTransformation.ts"],"names":[],"mappings":";;;;;;;;;AAAA,+GAAsG;AACtG,kHAA6G;AAE7G,qHAAuF;AAEvF,6GAA0G;AAC1G,2DAA2D;AAC3D,iEAAgE;AAIzD,IAAM,6BAA6B,2CAAnC,MAAM,6BAA8B,SAAQ,+CAGlD;IAHM;;QAII,SAAI,GAAG,+BAA+B,CAAC;QAEpC,sBAAiB,GAAG,CAC1B,IAAwC,EAK1C,EAAE;YACA,MAAM,QAAQ,GAAG;gBACb,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,SAAS,EAAE,gBAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE;oBAC3C,IAAI,EAAE,mCAAgB,CAAC,WAAW;iBACrC,CAAC,CAAC,QAAQ,EAAE;gBACb,MAAM,EAAE,yCAAiB,CAAC,kBAAkB;gBAC5C,QAAQ,EAAE,IAAI,CAAC,OAAO;gBACtB,oBAAoB,EAAE,IAAI,CAAC,kBAAkB;aAChD,CAAC;YAEF,OAAO;gBACH,eAAe,EAAE;oBACb,KAAK,EAAE,IAAI,CAAC,eAAe;oBAC3B,GAAG,EAAE,6CAAmB,CAAC,IAAI;oBAC7B,GAAG,QAAQ;iBACd;gBACD,iBAAiB,EAAE;oBACf,KAAK,EAAE,IAAI,CAAC,iBAAiB;oBAC7B,GAAG,EAAE,6CAAmB,CAAC,KAAK;oBAC9B,GAAG,QAAQ;iBACd;gBACD,mBAAmB,EAAE;oBACjB,KAAK,EAAE,IAAI,CAAC,mBAAmB;oBAC/B,GAAG,EAAE,6CAAmB,CAAC,QAAQ;oBACjC,GAAG,QAAQ;iBACd;aACJ,CAAC;QACN,CAAC,CAAC;IACN,CAAC;CAAA,CAAA;wCAzCY,6BAA6B;IADzC,IAAA,qBAAU,GAAE;GACA,6BAA6B,CAyCzC"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AbstractEnapoFetchMeasurementsTask = void 0;
4
- const MeasurementsDataNormalizer_1 = require("../../../commodity-providers/helper/MeasurementsDataNormalizer");
5
4
  const constants_1 = require("../../constants");
5
+ const MeasurementsDataNormalizer_1 = require("../../helpers/MeasurementsDataNormalizer");
6
6
  const integration_engine_1 = require("@golemio/core/dist/integration-engine");
7
7
  const MEASUREMENTS_BATCH_SIZE = 5000;
8
8
  class AbstractEnapoFetchMeasurementsTask extends integration_engine_1.AbstractTask {
@@ -13,11 +13,11 @@ class AbstractEnapoFetchMeasurementsTask extends integration_engine_1.AbstractTa
13
13
  for (let i = 0; i < data.length; i += MEASUREMENTS_BATCH_SIZE) {
14
14
  let batch = data.slice(i, i + MEASUREMENTS_BATCH_SIZE);
15
15
  if (!skipFilter) {
16
- batch = MeasurementsDataNormalizer_1.MeasurementsDataNormalizer.filter(batch);
16
+ batch = MeasurementsDataNormalizer_1.EnapoMeasurementsDataNormalizer.filter(batch);
17
17
  }
18
18
  const uniqueValues = new Set();
19
19
  batch = batch.filter((item) => {
20
- const key = `${item.timestamp.getTime()}_${item.var}_${item.place_id}`;
20
+ const key = `${item.timestamp.getTime()}_${item.var}_${item.place_id}_${item.eic}`;
21
21
  if (uniqueValues.has(key))
22
22
  return false;
23
23
  uniqueValues.add(key);
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractEnapoFetchMeasurementsTask.js","sourceRoot":"","sources":["../../../../../src/integration-engine/enapo/workers/task/AbstractEnapoFetchMeasurementsTask.ts"],"names":[],"mappings":";;;AAAA,+GAAuG;AACvG,+CAAwD;AAGxD,8EAAqE;AAErE,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAErC,MAAsB,kCAAqD,SAAQ,iCAAe;IAG9F;QACI,KAAK,CAAC,6BAAiB,CAAC,CAAC;IAC7B,CAAC;IAES,KAAK,CAAC,mBAAmB,CAAC,IAA6B,EAAE,aAAsB,KAAK;QAC1F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,uBAAuB,EAAE;YAC3D,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,uBAAuB,CAAC,CAAC;YAEvD,IAAI,CAAC,UAAU,EAAE;gBACb,KAAK,GAAG,uDAA0B,CAAC,MAAM,CAAC,KAAK,CAA4B,CAAC;aAC/E;YAED,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;YACvC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC1B,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACvE,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,OAAO,KAAK,CAAC;gBACxC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACtB,OAAO,IAAI,CAAC;YAChB,CAAC,CAAC,CAAC;YAEH,IAAI,KAAK,CAAC,MAAM,EAAE;gBACd,MAAM,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACrD;SACJ;IACL,CAAC;CACJ;AA5BD,gFA4BC"}
1
+ {"version":3,"file":"AbstractEnapoFetchMeasurementsTask.js","sourceRoot":"","sources":["../../../../../src/integration-engine/enapo/workers/task/AbstractEnapoFetchMeasurementsTask.ts"],"names":[],"mappings":";;;AAAA,+CAAwD;AACxD,yFAA+F;AAG/F,8EAAqE;AAErE,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAErC,MAAsB,kCAAqD,SAAQ,iCAAe;IAG9F;QACI,KAAK,CAAC,6BAAiB,CAAC,CAAC;IAC7B,CAAC;IAES,KAAK,CAAC,mBAAmB,CAAC,IAA6B,EAAE,aAAsB,KAAK;QAC1F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,uBAAuB,EAAE;YAC3D,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,uBAAuB,CAAC,CAAC;YAEvD,IAAI,CAAC,UAAU,EAAE;gBACb,KAAK,GAAG,4DAA+B,CAAC,MAAM,CAAC,KAAK,CAA4B,CAAC;aACpF;YAED,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;YACvC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC1B,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBACnF,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,OAAO,KAAK,CAAC;gBACxC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACtB,OAAO,IAAI,CAAC;YAChB,CAAC,CAAC,CAAC;YAEH,IAAI,KAAK,CAAC,MAAM,EAAE;gBACd,MAAM,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACrD;SACJ;IACL,CAAC;CACJ;AA5BD,gFA4BC"}
@@ -9,8 +9,9 @@ exports.aveApiDeviceDataJsonSchema = {
9
9
  StandardTime: { type: "string" },
10
10
  OperatingAmount: { type: "number" },
11
11
  ConvertDifference: { type: "number" },
12
+ OperatingDifference: { type: "number" },
12
13
  },
13
- required: ["StandardTime", "OperatingAmount", "ConvertDifference"],
14
+ required: ["StandardTime", "OperatingAmount", "ConvertDifference", "OperatingDifference"],
14
15
  },
15
16
  };
16
17
  //# sourceMappingURL=AveApiDeviceDataJsonSchema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AveApiDeviceDataJsonSchema.js","sourceRoot":"","sources":["../../../../src/schema-definitions/datasources/commodity-providers/AveApiDeviceDataJsonSchema.ts"],"names":[],"mappings":";;;AAGa,QAAA,0BAA0B,GAA2C;IAC9E,IAAI,EAAE,OAAO;IACb,KAAK,EAAE;QACH,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACR,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAChC,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACnC,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SACxC;QACD,QAAQ,EAAE,CAAC,cAAc,EAAE,iBAAiB,EAAE,mBAAmB,CAAC;KACrE;CACJ,CAAC"}
1
+ {"version":3,"file":"AveApiDeviceDataJsonSchema.js","sourceRoot":"","sources":["../../../../src/schema-definitions/datasources/commodity-providers/AveApiDeviceDataJsonSchema.ts"],"names":[],"mappings":";;;AAGa,QAAA,0BAA0B,GAA2C;IAC9E,IAAI,EAAE,OAAO;IACb,KAAK,EAAE;QACH,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACR,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAChC,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACnC,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACrC,mBAAmB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC1C;QACD,QAAQ,EAAE,CAAC,cAAc,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,qBAAqB,CAAC;KAC5F;CACJ,CAAC"}
@@ -2,4 +2,5 @@ export interface IAveApiDeviceDataDto {
2
2
  StandardTime: string;
3
3
  OperatingAmount: number;
4
4
  ConvertDifference: number;
5
+ OperatingDifference: number;
5
6
  }
@@ -1,4 +1,5 @@
1
1
  export declare enum MeasurementVariable {
2
2
  Core = "core",
3
- Core2 = "core2"
3
+ Core2 = "core2",
4
+ CoreDiff = "corediff"
4
5
  }
@@ -5,5 +5,6 @@ var MeasurementVariable;
5
5
  (function (MeasurementVariable) {
6
6
  MeasurementVariable["Core"] = "core";
7
7
  MeasurementVariable["Core2"] = "core2";
8
+ MeasurementVariable["CoreDiff"] = "corediff";
8
9
  })(MeasurementVariable || (exports.MeasurementVariable = MeasurementVariable = {}));
9
10
  //# sourceMappingURL=MeasurementVariableEnum.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MeasurementVariableEnum.js","sourceRoot":"","sources":["../../../../src/schema-definitions/datasources/helpers/MeasurementVariableEnum.ts"],"names":[],"mappings":";;;AAAA,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC3B,oCAAa,CAAA;IACb,sCAAe,CAAA;AACnB,CAAC,EAHW,mBAAmB,mCAAnB,mBAAmB,QAG9B"}
1
+ {"version":3,"file":"MeasurementVariableEnum.js","sourceRoot":"","sources":["../../../../src/schema-definitions/datasources/helpers/MeasurementVariableEnum.ts"],"names":[],"mappings":";;;AAAA,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC3B,oCAAa,CAAA;IACb,sCAAe,CAAA;IACf,4CAAqB,CAAA;AACzB,CAAC,EAJW,mBAAmB,mCAAnB,mBAAmB,QAI9B"}
@@ -13,6 +13,7 @@ EnapoMeasurementsModel.attributeModel = {
13
13
  eic: {
14
14
  type: sequelize_1.DataTypes.STRING(50),
15
15
  allowNull: false,
16
+ primaryKey: true,
16
17
  },
17
18
  value: {
18
19
  type: sequelize_1.DataTypes.DECIMAL(30, 15),
@@ -1 +1 @@
1
- {"version":3,"file":"EnapoMeasurementsModel.js","sourceRoot":"","sources":["../../../src/schema-definitions/models/EnapoMeasurementsModel.ts"],"names":[],"mappings":";;;AACA,mEAAwF;AAExF,2EAAyE;AAEzE,MAAa,sBAAuB,SAAQ,iBAA4B;;AAAxE,wDA+DC;AA9DiB,iCAAU,GAAG,oBAAoB,CAAC;AAClC,sCAAe,GAAG,6BAA6B,CAAC;AAChD,iDAA0B,GAAG,sCAAsC,CAAC;AAUpE,qCAAc,GAAmE;IAC3F,GAAG,EAAE;QACD,IAAI,EAAE,qBAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,SAAS,EAAE,KAAK;KACnB;IACD,KAAK,EAAE;QACH,IAAI,EAAE,qBAAS,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;QAC/B,SAAS,EAAE,KAAK;KACnB;IACD,SAAS,EAAE;QACP,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE,IAAI;KACnB;IACD,GAAG,EAAE;QACD,IAAI,EAAE,qBAAS,CAAC,MAAM,CAAC,GAAG,CAAC;QAC3B,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE,IAAI;KACnB;IACD,MAAM,EAAE;QACJ,IAAI,EAAE,qBAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,SAAS,EAAE,KAAK;KACnB;IACD,QAAQ,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE,IAAI;KACnB;IACD,oBAAoB,EAAE;QAClB,IAAI,EAAE,qBAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,SAAS,EAAE,KAAK;KACnB;CACJ,CAAC;AAEY,iCAAU,GAA4C;IAChE,IAAI,EAAE,OAAO;IACb,KAAK,EAAE;QACH,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACR,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACvB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE;YACxD,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,4CAAqB,EAAE;YACpD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC5B,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC3C;QACD,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,sBAAsB,CAAC;KAC/F;CACJ,CAAC"}
1
+ {"version":3,"file":"EnapoMeasurementsModel.js","sourceRoot":"","sources":["../../../src/schema-definitions/models/EnapoMeasurementsModel.ts"],"names":[],"mappings":";;;AACA,mEAAwF;AAExF,2EAAyE;AAEzE,MAAa,sBAAuB,SAAQ,iBAA4B;;AAAxE,wDAgEC;AA/DiB,iCAAU,GAAG,oBAAoB,CAAC;AAClC,sCAAe,GAAG,6BAA6B,CAAC;AAChD,iDAA0B,GAAG,sCAAsC,CAAC;AAUpE,qCAAc,GAAmE;IAC3F,GAAG,EAAE;QACD,IAAI,EAAE,qBAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE,IAAI;KACnB;IACD,KAAK,EAAE;QACH,IAAI,EAAE,qBAAS,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;QAC/B,SAAS,EAAE,KAAK;KACnB;IACD,SAAS,EAAE;QACP,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE,IAAI;KACnB;IACD,GAAG,EAAE;QACD,IAAI,EAAE,qBAAS,CAAC,MAAM,CAAC,GAAG,CAAC;QAC3B,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE,IAAI;KACnB;IACD,MAAM,EAAE;QACJ,IAAI,EAAE,qBAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,SAAS,EAAE,KAAK;KACnB;IACD,QAAQ,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE,IAAI;KACnB;IACD,oBAAoB,EAAE;QAClB,IAAI,EAAE,qBAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,SAAS,EAAE,KAAK;KACnB;CACJ,CAAC;AAEY,iCAAU,GAA4C;IAChE,IAAI,EAAE,OAAO;IACb,KAAK,EAAE;QACH,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACR,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACvB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE;YACxD,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,4CAAqB,EAAE;YACpD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC5B,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC3C;QACD,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,sBAAsB,CAAC;KAC/F;CACJ,CAAC"}
@@ -4,6 +4,7 @@ exports.MEASUREMENT_TYPES = exports.MEASUREMENT_VARIABLES = void 0;
4
4
  exports.MEASUREMENT_VARIABLES = [
5
5
  "core",
6
6
  "core2",
7
+ "corediff",
7
8
  "EFwActi",
8
9
  "EFwActiVT",
9
10
  "ERvReact",
@@ -1 +1 @@
1
- {"version":3,"file":"MeasurementConstants.js","sourceRoot":"","sources":["../../../../src/schema-definitions/models/constants/MeasurementConstants.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG;IACjC,MAAM;IACN,OAAO;IACP,SAAS;IACT,WAAW;IACX,UAAU;IACV,UAAU;IACV,KAAK;IACL,GAAG;IACH,KAAK;IACL,IAAI;IACJ,WAAW;IACX,KAAK;IACL,IAAI;IACJ,IAAI;CACP,CAAC;AAEW,QAAA,iBAAiB,GAAG,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,CAAC"}
1
+ {"version":3,"file":"MeasurementConstants.js","sourceRoot":"","sources":["../../../../src/schema-definitions/models/constants/MeasurementConstants.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG;IACjC,MAAM;IACN,OAAO;IACP,UAAU;IACV,SAAS;IACT,WAAW;IACX,UAAU;IACV,UAAU;IACV,KAAK;IACL,GAAG;IACH,KAAK;IACL,IAAI;IACJ,WAAW;IACX,KAAK;IACL,IAAI;IACJ,IAAI;CACP,CAAC;AAEW,QAAA,iBAAiB,GAAG,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,CAAC"}
@@ -2,7 +2,13 @@
2
2
 
3
3
  ## Záměr
4
4
 
5
- Modul slouží k ukládání dat o spotřebě energií v budovách a jednotlivých bytech a prostorách pro jejich nájemnce
5
+ Modul slouží k ukládání dat o spotřebě energií v budovách a jednotlivých bytech a prostorách pro jejich nájemnce.
6
+
7
+ ### ENAPO
8
+
9
+ V roce 2025 byl k modulu přidán projekt ENAPO (energetický nástroj Prahy a organizací).
10
+ ![alt text](Energetika-Stránka-5-Stránka-3.drawio.png)
11
+ https://gitlab.com/operator-ict/golemio/projekty/energetika/p0262.prevzeti-energeticke-databaze/-/issues/66
6
12
 
7
13
  ## Vstupní data
8
14
 
@@ -16,17 +22,16 @@ Modul slouží k ukládání dat o spotřebě energií v budovách a jednotlivý
16
22
  #### _POST /pre_
17
23
 
18
24
  - PRE posílá data na Input Gateway v JSON formátu (POST na /pre).
19
- - Očekávaný [formát dat](../src/schema-definitions/datasources/interfaces/IPreJsonInput.ts)
20
- - Na IG chodí větší soubory (např. 20M). Proto se na IG rozdělí podle měřidel a vyříznou se jen data, co zpracováváme.
25
+ - Očekávaný [formát dat](../src/schema-definitions/datasources/interfaces/IPreJsonInput.ts)
26
+ - Na IG chodí větší soubory (např. 20M). Proto se na IG rozdělí podle měřidel a vyříznou se jen data, co zpracováváme.
21
27
  Dál to postupuje na IE přes rabbit do [ProcessPreEanMeasurementsTask](../src/integration-engine/commodity-providers/workers/tasks/ProcessPreEanMeasurementsTask.ts).
22
28
 
23
29
  #### _POST /pre/csv_
24
30
 
25
31
  - Endpoint pro příjem historických dat PRE v CSV formátu (POST na /pre/csv).
26
- - Očekávaný [formát dat](../src/schema-definitions/datasources/interfaces/IPreCsvInput.ts)
27
- - V IG se CSV převede na stejný formát, jako /pre používá endpoint a dál na IE postupuje stejně.
28
- Tj. přes rabbit do [ProcessPreEanMeasurementsTask](../src/integration-engine/commodity-providers/workers/tasks/ProcessPreEanMeasurementsTask.ts).
29
-
32
+ - Očekávaný [formát dat](../src/schema-definitions/datasources/interfaces/IPreCsvInput.ts)
33
+ - V IG se CSV převede na stejný formát, jako /pre používá endpoint a dál na IE postupuje stejně.
34
+ Tj. přes rabbit do [ProcessPreEanMeasurementsTask](../src/integration-engine/commodity-providers/workers/tasks/ProcessPreEanMeasurementsTask.ts).
30
35
 
31
36
  ### Data aktivně stahujeme
32
37
 
@@ -350,8 +355,8 @@ Task aktualizuje lookup tabulku pro limitaci přístupu k output API.
350
355
  - žádné
351
356
  - datové zdroje
352
357
  - blob storage
353
- - rabín: https://rabingolemio.blob.core.windows.net/rabin-energetics/access_configuration.json
354
- - golem: https://golemgolemio.blob.core.windows.net/golem-energetics/access_configuration.json
358
+ - rabín: https://rabingolemio.blob.core.windows.net/rabin-energetics/access_configuration.json
359
+ - golem: https://golemgolemio.blob.core.windows.net/golem-energetics/access_configuration.json
355
360
  - transformace
356
361
  - není
357
362
  - data modely
@@ -403,6 +408,28 @@ Metoda sbírá historická data
403
408
  - VpalacTypeMeasuringEquipmentModel `vpalac_type_measuring_equipment`
404
409
  - VpalacUnitsModel `vpalac_units`
405
410
 
411
+ ### _EnapoWorker_
412
+
413
+ Worker se stará o stahování dat (odečty, měřidla a počítadla) z datového zdroje PPAS pro projekt ENAPO.
414
+
415
+ #### _task: EnapoPpasTask_
416
+
417
+ Metoda sbírá data o spotřebách od poskytovatele komodit - PPAS (Pražská plynárenská).
418
+
419
+ - vstupní rabbitmq fronta
420
+ - název: dataplatform.enapoenergetics.fetchPpasMeasurements
421
+ - TTL: 1 hodina
422
+ - parametry: `{ providerType, dateFrom?, dateTo?, targetDays? }`
423
+ - validační schéma: [PpasMeasurementsSchema](../src/integration-engine/enapo/workers/schema/EnapoPpasMeasurementsParamsValidationSchema.ts)
424
+ - závislé fronty (do kterých jsou odesílány zprávy z metody workeru)
425
+ - žádné
426
+ - datové zdroje
427
+ - PPAS (Pražská plynárenská) InternetAVE API
428
+ - transformace
429
+ - [PPasMeasurementTransformation](../src/integration-engine/enapo/transformations/PPasMeasurementTransformation.ts)
430
+ - data modely
431
+ - [EnapoMeasurementsModel](../src/schema-definitions/models/EnapoMeasurementsModel.ts) tabulka `enapo_measurements`
432
+
406
433
  ## Uložení dat
407
434
 
408
435
  - typ databáze
@@ -426,8 +453,8 @@ Metoda sbírá historická data
426
453
  - rabin: https://rabin.golemio.cz/v2/docs/openapi/
427
454
  - golem: https://api.golemio.cz/v2/docs/openapi/
428
455
  - přístup je řízen pomocí interního parametru `accessLimit`, který musí být vždy nastaven a omezen z permission proxy
429
- - při obdržení dotazu na API se stáhnou povolené organizace z tabulky `access_limit` a omezí se podle toho dotazy do databáze
430
- - pokud je `accessLimit` nastaven na `admin`, tak se vždy dotazuje na všechny organizace
456
+ - při obdržení dotazu na API se stáhnou povolené organizace z tabulky `access_limit` a omezí se podle toho dotazy do databáze
457
+ - pokud je `accessLimit` nastaven na `admin`, tak se vždy dotazuje na všechny organizace
431
458
 
432
459
  ### API
433
460
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@golemio/energetics",
3
- "version": "1.4.13-dev.1899264140",
3
+ "version": "1.4.13-dev.1940911315",
4
4
  "description": "Golemio Energetics Module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1 +0,0 @@
1
- {"version":3,"file":"MeasurementsDataNormalizer.js","sourceRoot":"","sources":["../../../../src/integration-engine/commodity-providers/helper/MeasurementsDataNormalizer.ts"],"names":[],"mappings":";;;AAGA,yGAAyG;AACzG,MAAa,0BAA0B;IAC5B,MAAM,CAAC,MAAM,CAAC,IAAoD;QACrE,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;IACvG,CAAC;CACJ;AAJD,gEAIC"}