Убрал копирование public папки из dockerfile. Вернул валидацию на количество тегов, присылаемых с node-red. Вернул чтение .env переменной при локальном запуске.

This commit is contained in:
Первов Артем
2026-06-19 11:10:51 +03:00
parent 9b53f602ce
commit d00f79f4d3
4 changed files with 22 additions and 5 deletions

View File

@@ -4,12 +4,21 @@ import type { TopicHandler } from '../types.js'
export const TOPIC = 'data/edge5/modbus/v2'
const REGISTER_COUNT = 125
const mapper = createMetricMapper({
filePath: process.env.EDGE5_MODBUS_V2_MAPPING_FILE as string,
})
function parseValues(payload: Buffer): number[] {
return JSON.parse(payload.toString('utf8')) as number[]
const values = JSON.parse(payload.toString('utf8')) as number[]
assertRegisterCount(values)
return values
}
function assertRegisterCount(values: number[]): void {
if (values.length !== REGISTER_COUNT) {
throw new Error(`Expected ${REGISTER_COUNT} modbus values, got ${values.length}`)
}
}
async function postMetrics(metrics: MappedMetric[]): Promise<void> {

View File

@@ -4,6 +4,7 @@ import type { TopicHandler } from '../types.js'
export const TOPIC = 'data/edge5/modbus/v1'
const EDGE = 'edge5'
const REGISTER_COUNT = 125
type Edge5ModbusMetric = {
edge: string
@@ -13,7 +14,15 @@ type Edge5ModbusMetric = {
}
function parseValues(payload: Buffer): number[] {
return JSON.parse(payload.toString('utf8')) as number[]
const values = JSON.parse(payload.toString('utf8')) as number[]
assertRegisterCount(values)
return values
}
function assertRegisterCount(values: number[]): void {
if (values.length !== REGISTER_COUNT) {
throw new Error(`Expected ${REGISTER_COUNT} modbus values, got ${values.length}`)
}
}
function toMetrics(values: number[], timestamp: number): Edge5ModbusMetric[] {