Update for CJS support, add freeze-mode detection

This commit is contained in:
2025-01-05 17:27:55 -06:00
parent d305b3414c
commit c07685bb91
3 changed files with 119 additions and 114 deletions

View File

@ -2,21 +2,13 @@
var NodeHelper = require("node_helper");
let FindUnits;
let Unit;
import("node-intellicenter").then((x) => {
FindUnits = x.FindUnits;
Unit = x.Unit;
});
let messages;
import("node-intellicenter/messages").then((x) => {
messages = x.messages;
});
const { FindUnits, Unit } = require("node-intellicenter");
const messages = require("node-intellicenter/messages");
const Log = require("logger");
const reconnectDelayMs = 10 * 1000;
const unitFinderTimeoutMs = 5 * 1000;
let foundUnit = false;
let foundUnit;
const poolData = {
poolTemp: 0,
spaTemp: 0,
@ -42,6 +34,7 @@ let unitFinderRetry;
let unitReconnectTimer;
let intellichemObjnam = "";
let chlorinatorObjnam = "";
let freezeObjnam = "";
let initialConnectDone = false;
module.exports = NodeHelper.create({
@ -223,6 +216,12 @@ module.exports = NodeHelper.create({
if (obj.params.SALT) {
poolData.saltPPM = parseInt(obj.params.SALT);
}
} else if (obj.objnam === freezeObjnam) {
Log.info("[MMM-IntelliCenter] received freeze-protection update");
if (obj.params.STATUS) {
poolData.freezeMode = obj.params.STATUS === "ON";
}
} else {
Log.info(
`[MMM-IntelliCenter] received update for untracked object: ${obj.objnam}`,
@ -266,6 +265,15 @@ module.exports = NodeHelper.create({
}
}
Log.info("[MMM-IntelliCenter] getting circuit information...");
const circuits = await foundUnit.send(messages.GetCircuitStatus());
const freezeCirc = circuits.objectList?.find((obj) => obj.params?.SUBTYP === "FRZ");
if (freezeCirc) {
freezeObjnam = freezeCirc.objnam;
Log.info(`[MMM-IntelliCenter] registering for freeze-protection updates...`);
await foundUnit.send(messages.SubscribeToUpdates(freezeObjnam, "STATUS"));
}
if (bodyUpdates.length > 0) {
for (const obj of bodyUpdates) {
Log.info(