1
0

Set js.lib logger

This commit is contained in:
2024-01-04 10:12:46 +01:00
parent bdbe664125
commit e7f87b307f

View File

@@ -1,5 +1,5 @@
console.loggerName = 'js.equipmentMgr';
console.log('Load equipmentMgr');
const log = Java.type('org.slf4j.LoggerFactory').getLogger('js.equipmentMgr');
log.info('Load equipmentMgr');
const {
lib,
@@ -27,7 +27,7 @@ class Equipment {
throw(`Item ${this.equipmentItem.name} is not an equipment type`);
}
console.info(`Initialization of equipment ${this.equipmentItem.name} with type ${this.constructor.name}`);
log.info(`Initialization of equipment ${this.equipmentItem.name} with type ${this.constructor.name}`);
// Initialization of properties
this.name = this.equipmentItem.name;
@@ -61,9 +61,9 @@ class Equipment {
let returnValue = defaultValue;
if (items[valueItemName] == null) { // Return default value if item is missing
console.warn('Item ' + valueItemName + ' is missing');
log.warn('Item ' + valueItemName + ' is missing');
} else if (items[valueItemName]['state'] == 'NULL') { // Return default value if item state is null
console.warn('Item ' + valueItemName + ' is unset')
log.warn('Item ' + valueItemName + ' is unset')
} else { // Return value from item
if (items[valueItemName].quantityState == null && items[valueItemName].numericState == null) {
returnValue = items[valueItemName]['state'];
@@ -74,7 +74,7 @@ class Equipment {
}
}
console.debug(`Return value for property ${propertyName} for ${this.name}: ${returnValue}`);
log.debug(`Return value for property ${propertyName} for ${this.name}: ${returnValue}`);
return returnValue;
}
@@ -86,22 +86,22 @@ class Equipment {
hasProperty(propertyName) {
if (items[this.name + '_' + propertyName] == null) {
console.debug(`Equipment ${this.name} has no property ${propertyName}`)
log.debug(`Equipment ${this.name} has no property ${propertyName}`)
return false;
}
return true;
}
#notifyLowBat() {
console.warn(`${this.name} has a low battery level.`);
log.warn(`${this.name} has a low battery level.`);
}
#notifyUnreach() {
console.warn(`${this.name} is offline.`);
log.warn(`${this.name} is offline.`);
}
gc() {
console.log('Denitialization of equipment ' + this.name);
log.info('Denitialization of equipment ' + this.name);
// Cancel all timers
this.timers.cancelAll();
@@ -147,7 +147,7 @@ class CCTV extends Equipment {
items[this.getPropertyItemName('HomeMode')].sendCommandIfDifferent('OFF');
break;
default:
console.log(mode + ' is not a valid mode for HomeMode');
log.info(mode + ' is not a valid mode for HomeMode');
}
}
}
@@ -158,7 +158,7 @@ class EnergyMeter extends Equipment {
if (this.hasProperty('ConsumptionTotal')) {
console.log(`Create rule to trigger calculateConsumption function`);
log.info(`Create rule to trigger calculateConsumption function`);
this.consumptionTotalItem = items[this.getPropertyItemName('ConsumptionTotal')];
rules.JSRule({
@@ -168,12 +168,12 @@ class EnergyMeter extends Equipment {
execute: (event) => { this.#calculateConsumptionValues(event) },
});
} else {
console.info(`Item ${this.equipmentItem.name} has no consumptionTotal item`)
log.info(`Item ${this.equipmentItem.name} has no consumptionTotal item`)
}
}
#calculateConsumptionValues() {
console.debug('Calculate EnergyMeter consumption values');
log.debug('Calculate EnergyMeter consumption values');
let startOfHour = time.toZDT().withMinute(0).withSecond(0).withNano(0);
let startOfDay = startOfHour.withHour(0);
@@ -243,14 +243,14 @@ class Irrigation extends Equipment {
try {
this.valves[valve.name] = new IrrigationValve(valve);
} catch (error) {
console.error(error);
log.error(error);
}
}
}
gc() {
console.info('Deinitialization of irrigation valves for ' + this.name);
log.info('Deinitialization of irrigation valves for ' + this.name);
// Delete all watchObjects
for (let valve of Object.keys(this.valves)) {
@@ -262,14 +262,14 @@ class Irrigation extends Equipment {
}
#irrigationOn() {
console.info(`Irrigation ${this.name} received command on`);
log.info(`Irrigation ${this.name} received command on`);
// Fetch valves with AutoMode enabled
let autoValves = Object.keys(this.valves).filter(element => { return this.valves[element].getValue('AutoMode', 'OFF') == 'ON'} );
// Skip if no valves with AutoMode enabled are available
if (autoValves.length == 0) {
console.info('No valves with AutoMode enabled available');
log.info('No valves with AutoMode enabled available');
this.stateItem.sendCommandIfDifferent('OFF');
return;
}
@@ -305,12 +305,12 @@ class Irrigation extends Equipment {
// Stop irrigation after the last valve
if (nextValve == undefined) {
console.log('No further valves with autoMode enabled available');
log.info('No further valves with autoMode enabled available');
this.timers.create(
'autoOff',
endTime.plusSeconds(5),
() => {
console.debug(`Switch irrigation ${this.name} to off`)
log.debug(`Switch irrigation ${this.name} to off`)
this.stateItem.sendCommandIfDifferent('OFF');
}
);
@@ -319,7 +319,7 @@ class Irrigation extends Equipment {
}
#irrigationOff() {
console.info(`Irrigation ${this.name} received command off`);
log.info(`Irrigation ${this.name} received command off`);
this.timers.cancel('autoOff')
@@ -411,7 +411,7 @@ for (let equipmentItem of items.getItems().filter(element => { return (element.s
try {
eMgr[equipmentItem.name] = eval(`new ${equipmentType}(equipmentItem)`);
} catch (error) {
console.warn('Equipment ' + equipmentType + ' is not defined');
log.warn('Equipment ' + equipmentType + ' is not defined');
eMgr[equipmentItem.name] = new Equipment(equipmentItem);
}
}
@@ -419,11 +419,12 @@ for (let equipmentItem of items.getItems().filter(element => { return (element.s
cache.shared.put('eMgr', eMgr);
require('@runtime').lifecycleTracker.addDisposeHook(() => {
console.log('Deinitialization of equipmentMgr');
log.info('Deinitialization of equipmentMgr');
watches.deleteAll();
for (let equipmentItemName of Object.keys(eMgr)) {
eMgr[equipmentItemName].gc();
}
});
});