From 6df41f2515396c6fb840b5d677a6cd1316c26ffc Mon Sep 17 00:00:00 2001 From: Shunichiro Aki Date: Sat, 18 Jan 2025 06:52:43 +0900 Subject: [PATCH] fix: bugs --- package.json | 2 +- src/connector/BP35Connector.ts | 10 +++++----- src/service/smartMeter.ts | 3 +-- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 3ba6921..73d3db3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wisun2mqtt", - "version": "1.0.8", + "version": "1.0.9", "main": "dist/index.js", "type": "module", "homepage": "https://github.com/nana4rider/wisun2mqtt", diff --git a/src/connector/BP35Connector.ts b/src/connector/BP35Connector.ts index 57ad341..3d30cc5 100644 --- a/src/connector/BP35Connector.ts +++ b/src/connector/BP35Connector.ts @@ -15,7 +15,7 @@ const SCAN_DURATION = 6; const COMMAND_TIMEOUT = 3000; /** SKSCAN 2のタイムアウト スキャン時間 0.0096 sec * (2^ + 1) */ const SCAN_TIMEOUT = - 0.0096 * (2 ^ (SCAN_DURATION + 1)) * 28 * 1000 + COMMAND_TIMEOUT; + 0.0096 * 2 ** (SCAN_DURATION + 1) * 28 * 1000 + COMMAND_TIMEOUT; /** SKJOINのタイムアウト */ const JOIN_TIMEOUT = 38000 + COMMAND_TIMEOUT; @@ -53,7 +53,7 @@ export class BP35Connector extends Emitter implements WiSunConnector { constructor(device: string, side: 0 | 1 | undefined = undefined) { super(); - this.extendArg = side ? ` ${side}` : ""; + this.extendArg = side !== undefined ? ` ${side}` : ""; this.serialPort = new SerialPort({ path: device, baudRate: BAUDRATE }); this.parser = this.serialPort.pipe( new DelimiterParser({ delimiter: Buffer.from(CRLF, "utf-8") }), @@ -82,17 +82,17 @@ export class BP35Connector extends Emitter implements WiSunConnector { logger.error(`Invalid data format in ERXUDP message: ${textData}`); return; } - assert(commandMatcher.input && commandMatcher.groups); + assert(commandMatcher.groups); // バイナリデータを切り出し - const binaryDataStartIndex = commandMatcher.input.length + 1; + const binaryDataStartIndex = commandMatcher[0].length; const binaryDataLength = parseInt(commandMatcher.groups.datalen, 16); const message = data.subarray( binaryDataStartIndex, binaryDataStartIndex + binaryDataLength, ); logger.debug( - `SerialPort response: ${commandMatcher.input}`, + `SerialPort response: ${commandMatcher[0]}`, ); // ポートとヘッダを確認 diff --git a/src/service/smartMeter.ts b/src/service/smartMeter.ts index 929202c..12b4738 100644 --- a/src/service/smartMeter.ts +++ b/src/service/smartMeter.ts @@ -10,7 +10,7 @@ import logger from "@/logger"; import { getDecimalPlaces, parseJson } from "@/util/dataTransformUtil"; import assert from "assert"; import fileExists from "file-exists"; -import { readFile, rm, writeFile } from "fs/promises"; +import { readFile, writeFile } from "fs/promises"; import { pEvent } from "p-event"; export type SmartMeterClient = { @@ -188,7 +188,6 @@ async function initializeWiSunConnector(): Promise<[WiSunConnector, PanInfo]> { } } catch (err) { logger.warn("[SmartMeter] キャッシュされたPan情報で接続失敗", err); - await rm(env.PAN_INFO_PATH); } } if (!panInfo) {