version 2025-01-21; offline node status, do not turn lines on startup if not needed

This commit is contained in:
rasta5man 2025-01-25 14:50:44 +01:00
parent 4c59ccd095
commit 73a2620add
3 changed files with 164 additions and 251 deletions

View file

@ -37,69 +37,69 @@ const { initNotification } = require('./helper/notification_reporter');
exports.install = async function(instance) {
const dbNodes = TABLE("nodes");
const dbRelays = TABLE("relays");
const dbSettings = TABLE("settings");
const dbPins = TABLE("pins");
const dbNotifications = TABLE("notifications");
const dbNodes = TABLE("nodes");
const dbRelays = TABLE("relays");
const dbSettings = TABLE("settings");
const dbPins = TABLE("pins");
const dbNotifications = TABLE("notifications");
FLOW.GLOBALS = {};
const dbs = FLOW.GLOBALS;
FLOW.GLOBALS = {};
const dbs = FLOW.GLOBALS;
const responseSettings = await promisifyBuilder(dbSettings.find());
const responseNodes = await promisifyBuilder(dbNodes.find());
const responsePins = await promisifyBuilder(dbPins.find());
const responseRelays = await promisifyBuilder(dbRelays.find());
const response = await promisifyBuilder(dbNotifications.find());
const responseSettings = await promisifyBuilder(dbSettings.find());
const responseNodes = await promisifyBuilder(dbNodes.find());
const responsePins = await promisifyBuilder(dbPins.find());
const responseRelays = await promisifyBuilder(dbRelays.find());
const response = await promisifyBuilder(dbNotifications.find());
dbs.pinsData = makeMapFromDbResult(responsePins, "pin");
dbs.relaysData = makeMapFromDbResult(responseRelays, "line");
dbs.nodesData = makeMapFromDbResult(responseNodes, "node");
dbs.notificationsData = makeMapFromDbResult(response, "key");
dbs.pinsData = makeMapFromDbResult(responsePins, "pin");
dbs.relaysData = makeMapFromDbResult(responseRelays, "line");
dbs.nodesData = makeMapFromDbResult(responseNodes, "node");
dbs.notificationsData = makeMapFromDbResult(response, "key");
//+|354|nodesdata.....+|482|nodesdata....
//for some reason, if last line in nodes.table is not empty, flow wrote more nodes data in one row,
//so we have to add empty line at the bottom of nodes table to avoid this.
//now, remove empty lines from nodesData database:
if(dbs.nodesData.hasOwnProperty("0")) delete dbs.nodesData["0"];
//+|354|nodesdata.....+|482|nodesdata....
//for some reason, if last line in nodes.table is not empty, flow wrote more nodes data in one row,
//so we have to add empty line at the bottom of nodes table to avoid this.
//now, remove empty lines from nodesData database:
if (dbs.nodesData.hasOwnProperty("0")) delete dbs.nodesData["0"];
dbs.settings = {
edge_fw_version : "2025-01-13", //rok-mesiac-den
language : responseSettings[0]["lang"],
rvo_name : responseSettings[0]["rvo_name"],
project_id : responseSettings[0]["project_id"],
rvoTbName : dbs.relaysData[0]["tbname"],
temperature_address : responseSettings[0]["temperature_address"],
controller_type : responseSettings[0]["controller_type"],
serial_port : responseSettings[0]["serial_port"],
node_status_nok_time : responseSettings[0]["node_status_nok_time"] * 60 * 60 * 1000 ,// hour * minutes *
latitude : responseSettings[0]["latitude"],
longitude : responseSettings[0]["longitude"],
no_voltage : new Set(),//modbus_citysys - elektromer
backup_on_failure : responseSettings[0]["backup_on_failure"],
restore_from_backup : responseSettings[0]["restore_from_backup"],
restore_backup_wait : responseSettings[0]["restore_backup_wait"],
mqtt_host : responseSettings[0]["mqtt_host"],
mqtt_clientid : responseSettings[0]["mqtt_clientid"],
mqtt_username : responseSettings[0]["mqtt_username"],
mqtt_port : responseSettings[0]["mqtt_port"],
phases: responseSettings[0]["phases"],
cloud_topic: responseSettings[0]["cloud_topic"],
//dynamic values
masterNodeIsResponding : true, //cmd_manager
maintenance_mode : false,
}
dbs.settings = {
edge_fw_version: "2025-01-21", //rok-mesiac-den
language: responseSettings[0]["lang"],
rvo_name: responseSettings[0]["rvo_name"],
project_id: responseSettings[0]["project_id"],
rvoTbName: dbs.relaysData[0]["tbname"],
temperature_address: responseSettings[0]["temperature_address"],
controller_type: responseSettings[0]["controller_type"],
serial_port: responseSettings[0]["serial_port"],
node_status_nok_time: responseSettings[0]["node_status_nok_time"] * 60 * 60 * 1000,// hour * minutes *
latitude: responseSettings[0]["latitude"],
longitude: responseSettings[0]["longitude"],
no_voltage: new Set(),//modbus_citysys - elektromer
backup_on_failure: responseSettings[0]["backup_on_failure"],
restore_from_backup: responseSettings[0]["restore_from_backup"],
restore_backup_wait: responseSettings[0]["restore_backup_wait"],
mqtt_host: responseSettings[0]["mqtt_host"],
mqtt_clientid: responseSettings[0]["mqtt_clientid"],
mqtt_username: responseSettings[0]["mqtt_username"],
mqtt_port: responseSettings[0]["mqtt_port"],
phases: responseSettings[0]["phases"],
cloud_topic: responseSettings[0]["cloud_topic"],
FLOW.dbLoaded = true;
initNotification();
//dynamic values
masterNodeIsResponding: true, //cmd_manager
maintenance_mode: false,
}
setTimeout(()=> {
console.log("DB_INIT - data loaded");
instance.send(0, "_")
}, 5000)
FLOW.dbLoaded = true;
initNotification();
};
setTimeout(() => {
console.log("DB_INIT - data loaded");
instance.send(0, "_")
}, 5000)
};