v4.4.0.2 - Calculated energy consumption

- Calculated energy consumption in relation to dimming mode and relay state (not the energy consumption of the outputs)
-add Try/Catch
This commit is contained in:
Armilar
2024-06-13 21:17:29 +02:00
committed by GitHub
parent 15a021a58f
commit 4d7d87d62a

View File

@@ -2085,11 +2085,16 @@ function isDimTimeInRange(strLower, strUpper) {
//--------------------Begin Consumtion (with Dimmode and Relays On Off) //--------------------Begin Consumtion (with Dimmode and Relays On Off)
// Funktion to calculate mean linear consumtion // Funktion to calculate mean linear consumtion
async function Calc_Consumtion(Brightness: number, Relays: number) { async function Calc_Consumtion(Brightness: number, Relays: number) {
try {
return parseFloat(((Relays * 0.25) + ((0.0086 * Brightness) + 0.7429)).toFixed(2)); return parseFloat(((Relays * 0.25) + ((0.0086 * Brightness) + 0.7429)).toFixed(2));
} catch (err: any) {
log('error at function Calc_Consumtion: ' + err.message, 'warn');
}
} }
// //
async function CountRelaysOn(Path: string) { async function CountRelaysOn(Path: string) {
try {
let r1: boolean = getState(Path + 'Relay.1').val; let r1: boolean = getState(Path + 'Relay.1').val;
let r2: boolean = getState(Path + 'Relay.2').val; let r2: boolean = getState(Path + 'Relay.2').val;
@@ -2100,9 +2105,14 @@ async function CountRelaysOn(Path: string) {
} else { } else {
return 1; return 1;
} }
} catch (err: any) {
log('error at function CountRelaysOn: ' + err.message, 'warn');
}
} }
async function DetermineDimBrightness(Path: string) { async function DetermineDimBrightness(Path: string) {
try {
const vTimeDay = getState(Path + 'NSPanel_Dimmode_hourDay').val; const vTimeDay = getState(Path + 'NSPanel_Dimmode_hourDay').val;
const vTimeNight = getState(Path + 'NSPanel_Dimmode_hourNight').val; const vTimeNight = getState(Path + 'NSPanel_Dimmode_hourNight').val;
const timeDimMode: NSPanel.DimMode = { const timeDimMode: NSPanel.DimMode = {
@@ -2122,6 +2132,9 @@ async function DetermineDimBrightness(Path: string) {
} else { } else {
return getState(Path + 'ScreensaverInfo.activeDimmodeBrightness').val; return getState(Path + 'ScreensaverInfo.activeDimmodeBrightness').val;
} }
} catch (err: any) {
log('error at function DetermineDimBrightness: ' + err.message, 'warn');
}
} }
async function DetermineScreensaverDimmode(timeDimMode:NSPanel.DimMode) { async function DetermineScreensaverDimmode(timeDimMode:NSPanel.DimMode) {
@@ -2134,11 +2147,12 @@ async function DetermineScreensaverDimmode(timeDimMode:NSPanel.DimMode) {
} }
} }
} catch (err: any) { } catch (err: any) {
log('error at function ScreensaverDimmode: ' + err.message, 'warn'); log('error at function DetermineScreensaverDimmode: ' + err.message, 'warn');
} }
} }
async function InitMeanPowerConsumtion() { async function InitMeanPowerConsumtion() {
try {
const MeanPower = NSPanel_Path + 'Consumtion.MeanPower'; const MeanPower = NSPanel_Path + 'Consumtion.MeanPower';
let meanConsumtion: number = await Calc_Consumtion(await DetermineDimBrightness(NSPanel_Path), await CountRelaysOn(NSPanel_Path)); let meanConsumtion: number = await Calc_Consumtion(await DetermineDimBrightness(NSPanel_Path), await CountRelaysOn(NSPanel_Path));
if (!existsState(MeanPower)) { if (!existsState(MeanPower)) {
@@ -2146,6 +2160,9 @@ async function InitMeanPowerConsumtion() {
} }
await setStateAsync(MeanPower, <iobJS.State>{ val: meanConsumtion, ack: true }); await setStateAsync(MeanPower, <iobJS.State>{ val: meanConsumtion, ack: true });
if (Debug) log(meanConsumtion + ' W', 'info'); if (Debug) log(meanConsumtion + ' W', 'info');
} catch (err: any) {
log('error at function InitMeanPowerConsumtion: ' + err.message, 'warn');
}
} }
InitMeanPowerConsumtion(); InitMeanPowerConsumtion();