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