diff --git a/ioBroker/NsPanelTs.ts b/ioBroker/NsPanelTs.ts index c9f6ebd2..b61be036 100644 --- a/ioBroker/NsPanelTs.ts +++ b/ioBroker/NsPanelTs.ts @@ -1,5 +1,5 @@ /*----------------------------------------------------------------------- -TypeScript v4.5.0.2 zur Steuerung des SONOFF NSPanel mit dem ioBroker by @Armilar / @TT-Tom / @ticaki / @Britzelpuf / @Sternmiere / @ravenS0ne +TypeScript v4.5.0.5 zur Steuerung des SONOFF NSPanel mit dem ioBroker by @Armilar / @TT-Tom / @ticaki / @Britzelpuf / @Sternmiere / @ravenS0ne - abgestimmt auf TFT 54 / v4.5.0 / BerryDriver 9 / Tasmota 14.4.1 @joBr99 Projekt: https://github.com/joBr99/nspanel-lovelace-ui/tree/main/ioBroker NsPanelTs.ts (dieses TypeScript in ioBroker) Stable: https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/NsPanelTs.ts @@ -143,6 +143,9 @@ ReleaseNotes: - 23.01.2025 - v4.5.0.1 Change TFT URLs - 23.01.2025 - v4.5.0.2 fix handleScreensaverUpdate => leftscreensaverEntity; fix Type leftscreensaverentitiy - 23.01.2025 - v4.5.0.2 icon3 functionality also for thermometers and a function based on this in the screensaver + - 29.01.2025 - v4.5.0.3 Add: bottemEntityText from ID + - 30.01.2025 - v4.5.0.4 fix DetermineDimBrightness (function returns undefined, because wrong DP check) + - 03.02.2025 - v4.5.0.5 Bugfix InitDimmode by Gargano Todo: - XX.12.2024 - v5.0.0 ioBroker Adapter @@ -1025,7 +1028,7 @@ export const config: Config = { // _________________________________ DE: Ab hier keine Konfiguration mehr _____________________________________ // _________________________________ EN: No more configuration from here _____________________________________ -const scriptVersion: string = 'v4.5.0.2'; +const scriptVersion: string = 'v4.5.0.5'; const tft_version: string = 'v4.5.0'; const desired_display_firmware_version = 54; const berry_driver_version = 9; @@ -2782,8 +2785,8 @@ async function InitDimmode () { if (getState(NSPanel_Path + 'ScreensaverInfo.activeDimmodeBrightness').val != null && getState(NSPanel_Path + 'ScreensaverInfo.activeDimmodeBrightness').val != -1) { SendToPanel({ payload: - 'dimmode~' + getState(NSPanel_Path + 'ScreensaverInfo.activeDimmodeBrightness').val + '~' + (getState(NSPanel_Path + 'ScreensaverInfo.activeBrightness').val ?? '80') + '~' + - (getState(NSPanel_Path + 'ScreensaverInfo.activeBrightness').val ?? '80') + '~' + rgb_dec565(config.defaultBackgroundColor) + '~' + rgb_dec565(globalTextColor) + '~' + Sliders2, + 'dimmode~' + getState(NSPanel_Path + 'ScreensaverInfo.activeDimmodeBrightness').val + '~' + (getState(NSPanel_Path + 'ScreensaverInfo.activeBrightness').val ?? '80') + '~' + + rgb_dec565(config.defaultBackgroundColor) + '~' + rgb_dec565(globalTextColor) + '~' + Sliders2 }); } else { if (isDimTimeInRange(timeDimMode.timeDay, timeDimMode.timeNight)) { @@ -2916,8 +2919,9 @@ async function DetermineDimBrightness (Path: string) { existsState(NSPanel_Path + 'NSPanel_Dimmode_hourNight') && existsState(NSPanel_Path + 'NSPanel_Dimmode_brightnessDay') && existsState(NSPanel_Path + 'NSPanel_Dimmode_brightnessNight') && - existsState(NSPanel_Path + 'ScreensaverInfo') && - existsState(NSPanel_Path + 'ActivePage') + existsState(NSPanel_Path + 'ScreensaverInfo.activeBrightness') && + existsState(NSPanel_Path + 'ScreensaverInfo.activeDimmodeBrightness') && + existsState(NSPanel_Path + 'ActivePage.id0') ) { try { const vTimeDay = getState(Path + 'NSPanel_Dimmode_hourDay').val; @@ -11172,65 +11176,68 @@ function HandleScreensaverUpdate (): void { let checkpoint = true; let i = 0; for (i = 0; i < maxEntities - 1 && i < config.bottomScreensaverEntity.length; i++) { - if (config.bottomScreensaverEntity[i] == null || config.bottomScreensaverEntity[i] === undefined) { + const entity = config.bottomScreensaverEntity[i] + if (entity == null || entity === undefined) { checkpoint = false; break; } - RegisterScreensaverEntityWatcher(config.bottomScreensaverEntity[i].ScreensaverEntity); + RegisterScreensaverEntityWatcher(entity.ScreensaverEntity); - let val = getState(config.bottomScreensaverEntity[i].ScreensaverEntity).val; + let val = getState(entity.ScreensaverEntity).val; if (parseFloat(val + '') == val) { val = parseFloat(val); } let iconColor = rgb_dec565(White); let icon; - if (config.bottomScreensaverEntity[i].ScreensaverEntityIconOn && existsObject(config.bottomScreensaverEntity[i].ScreensaverEntityIconOn!)) { - let iconName = getState(config.bottomScreensaverEntity[i].ScreensaverEntityIconOn!).val; + if (entity.ScreensaverEntityIconOn && existsObject(entity.ScreensaverEntityIconOn!)) { + let iconName = getState(entity.ScreensaverEntityIconOn!).val; icon = Icons.GetIcon(iconName); } else { - icon = Icons.GetIcon(config.bottomScreensaverEntity[i].ScreensaverEntityIconOn); + icon = Icons.GetIcon(entity.ScreensaverEntityIconOn); } if (typeof val == 'number') { - val = val * (config.bottomScreensaverEntity[i].ScreensaverEntityFactor ? config.bottomScreensaverEntity[i].ScreensaverEntityFactor! : 0) - icon = determineScreensaverStatusIcon(config.bottomScreensaverEntity[i],val,icon) + val = val * (entity.ScreensaverEntityFactor ? entity.ScreensaverEntityFactor! : 0) + icon = determineScreensaverStatusIcon(entity,val,icon) val = val.toFixed( - config.bottomScreensaverEntity[i].ScreensaverEntityDecimalPlaces - ) + config.bottomScreensaverEntity[i].ScreensaverEntityUnitText; - iconColor = GetScreenSaverEntityColor(config.bottomScreensaverEntity[i]); + entity.ScreensaverEntityDecimalPlaces + ) + entity.ScreensaverEntityUnitText; + iconColor = GetScreenSaverEntityColor(entity); } else if (typeof val == 'boolean') { - iconColor = GetScreenSaverEntityColor(config.bottomScreensaverEntity[i]); - if (!val && config.bottomScreensaverEntity[i].ScreensaverEntityIconOff != null) { - icon = Icons.GetIcon(config.bottomScreensaverEntity[i].ScreensaverEntityIconOff); + iconColor = GetScreenSaverEntityColor(entity); + if (!val && entity.ScreensaverEntityIconOff != null) { + icon = Icons.GetIcon(entity.ScreensaverEntityIconOff); } - if (val && config.bottomScreensaverEntity[i].ScreensaverEntityOnText != undefined) { - val = config.bottomScreensaverEntity[i].ScreensaverEntityOnText; + if (val && entity.ScreensaverEntityOnText != undefined) { + val = entity.ScreensaverEntityOnText; } - if (!val && config.bottomScreensaverEntity[i].ScreensaverEntityOffText != undefined) { - val = config.bottomScreensaverEntity[i].ScreensaverEntityOffText; + if (!val && entity.ScreensaverEntityOffText != undefined) { + val = entity.ScreensaverEntityOffText; } } else if (typeof val == 'string') { - iconColor = GetScreenSaverEntityColor(config.bottomScreensaverEntity[i]); + iconColor = GetScreenSaverEntityColor(entity); let pformat = parseFormat(val); if (Debug) log('moments.js --> Datum ' + val + ' valid?: ' + moment(val, pformat, true).isValid(), 'info'); if (moment(val, pformat, true).isValid()) { let DatumZeit = moment(val, pformat).unix(); // Conversion to Unix time stamp - if (config.bottomScreensaverEntity[i].ScreensaverEntityDateFormat !== undefined) { - val = new Date(DatumZeit * 1000).toLocaleString(getState(NSPanel_Path + 'Config.locale').val, config.bottomScreensaverEntity[i].ScreensaverEntityDateFormat); + if (entity.ScreensaverEntityDateFormat !== undefined) { + val = new Date(DatumZeit * 1000).toLocaleString(getState(NSPanel_Path + 'Config.locale').val, entity.ScreensaverEntityDateFormat); } else { val = new Date(DatumZeit * 1000).toLocaleString(getState(NSPanel_Path + 'Config.locale').val); } } } + const text = entity.ScreensaverEntityText && existsState(entity.ScreensaverEntityText) && getState(entity.ScreensaverEntityText).val + || entity.ScreensaverEntityText || ''; - const temp = config.bottomScreensaverEntity[i].ScreensaverEntityIconColor; + const temp = entity.ScreensaverEntityIconColor; if (temp && typeof temp == 'string' && existsObject(temp)) { iconColor = getState(temp).val; } if (i < maxEntities - 1) { val = val + '~'; } - payloadString += '~' + '~' + icon + '~' + iconColor + '~' + config.bottomScreensaverEntity[i].ScreensaverEntityText + '~' + val; + payloadString += '~' + '~' + icon + '~' + iconColor + '~' + text + '~' + val; } if (checkpoint == false) { for (let j = i; j < maxEntities - 1; j++) {