v4.5.0.5 - Bugfix InitDimmode by Gargano

This commit is contained in:
Armilar
2025-02-03 12:00:09 +01:00
committed by GitHub
parent 86ab806b6e
commit ac07dbb185

View File

@@ -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++) {