mirror of
https://github.com/joBr99/nspanel-lovelace-ui.git
synced 2025-12-20 14:37:01 +01:00
v.4.4.0.7 - Fix: first start and initialisation with new NSPanel device (by wolwin)
https://github.com/joBr99/nspanel-lovelace-ui/pull/1263
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/*-----------------------------------------------------------------------
|
/*-----------------------------------------------------------------------
|
||||||
TypeScript v4.4.0.6 zur Steuerung des SONOFF NSPanel mit dem ioBroker by @Armilar / @TT-Tom / @ticaki / @Britzelpuf / @Sternmiere / @ravenS0ne
|
TypeScript v4.4.0.7 zur Steuerung des SONOFF NSPanel mit dem ioBroker by @Armilar / @TT-Tom / @ticaki / @Britzelpuf / @Sternmiere / @ravenS0ne
|
||||||
- abgestimmt auf TFT 53 / v4.4.0 / BerryDriver 9 / Tasmota 14.2.0
|
- abgestimmt auf TFT 53 / v4.4.0 / BerryDriver 9 / Tasmota 14.2.0
|
||||||
@joBr99 Projekt: https://github.com/joBr99/nspanel-lovelace-ui/tree/main/ioBroker
|
@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
|
NsPanelTs.ts (dieses TypeScript in ioBroker) Stable: https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/NsPanelTs.ts
|
||||||
@@ -126,6 +126,7 @@ ReleaseNotes:
|
|||||||
- 18.09.2024 - v4.4.0.5 Remove day.JS
|
- 18.09.2024 - v4.4.0.5 Remove day.JS
|
||||||
- 19.09.2024 - v4.4.0.6 Check Ports with mqtt.X and mqtt-client.X
|
- 19.09.2024 - v4.4.0.6 Check Ports with mqtt.X and mqtt-client.X
|
||||||
- 27.09.2024 - v4.4.0.6 Fix: Using MQTT adapter or MQTT-CLIENT adapter / Minor Fix by wolwin
|
- 27.09.2024 - v4.4.0.6 Fix: Using MQTT adapter or MQTT-CLIENT adapter / Minor Fix by wolwin
|
||||||
|
- 09.10.2024 - v4.4.0.7 Fix: first start and initialisation with new NSPanel device - Fix by wolwin
|
||||||
|
|
||||||
Todo:
|
Todo:
|
||||||
- XX.12.2024 - v5.0.0 ioBroker Adapter
|
- XX.12.2024 - v5.0.0 ioBroker Adapter
|
||||||
@@ -995,7 +996,7 @@ export const config: Config = {
|
|||||||
// _________________________________ DE: Ab hier keine Konfiguration mehr _____________________________________
|
// _________________________________ DE: Ab hier keine Konfiguration mehr _____________________________________
|
||||||
// _________________________________ EN: No more configuration from here _____________________________________
|
// _________________________________ EN: No more configuration from here _____________________________________
|
||||||
|
|
||||||
const scriptVersion: string = 'v4.4.0.6';
|
const scriptVersion: string = 'v4.4.0.7';
|
||||||
const tft_version: string = 'v4.4.0';
|
const tft_version: string = 'v4.4.0';
|
||||||
const desired_display_firmware_version = 53;
|
const desired_display_firmware_version = 53;
|
||||||
const berry_driver_version = 9;
|
const berry_driver_version = 9;
|
||||||
@@ -1008,14 +1009,23 @@ let vwIconColor: number[] = [];
|
|||||||
let weatherForecast: boolean;
|
let weatherForecast: boolean;
|
||||||
let pageCounter: number = 0;
|
let pageCounter: number = 0;
|
||||||
let alwaysOn: boolean = false;
|
let alwaysOn: boolean = false;
|
||||||
let valueHiddenCards = getState(NSPanel_Path + 'Config.hiddenCards').val;
|
let valueHiddenCards: boolean = false;
|
||||||
|
if ( existsState(NSPanel_Path + 'Config.hiddenCards')) {
|
||||||
|
valueHiddenCards = getState(NSPanel_Path + 'Config.hiddenCards').val;
|
||||||
|
}
|
||||||
|
|
||||||
let buttonToggleState: { [key: string]: boolean } = {};
|
let buttonToggleState: { [key: string]: boolean } = {};
|
||||||
|
|
||||||
const axios = require('axios');
|
const axios = require('axios');
|
||||||
const moment = require('moment');
|
const moment = require('moment');
|
||||||
const parseFormat = require('moment-parseformat');
|
const parseFormat = require('moment-parseformat');
|
||||||
|
let firstRun: boolean = false;
|
||||||
|
if ( existsState(NSPanel_Path + 'Config.locale')) {
|
||||||
moment.locale(getState(NSPanel_Path + 'Config.locale').val);
|
moment.locale(getState(NSPanel_Path + 'Config.locale').val);
|
||||||
|
} else {
|
||||||
|
moment.locale('en-US');
|
||||||
|
firstRun = true;
|
||||||
|
}
|
||||||
|
|
||||||
const scheduleList: { [key: string]: any } = {};
|
const scheduleList: { [key: string]: any } = {};
|
||||||
|
|
||||||
@@ -1023,6 +1033,8 @@ const globalTextColor: any = White;
|
|||||||
const Sliders2: number = 0;
|
const Sliders2: number = 0;
|
||||||
let checkBlindActive: boolean = false;
|
let checkBlindActive: boolean = false;
|
||||||
|
|
||||||
|
log('--- start of NsPanelTs: ' + NSPanel_Path + ' ---', 'info');
|
||||||
|
|
||||||
async function Init_momentjs() {
|
async function Init_momentjs() {
|
||||||
try {
|
try {
|
||||||
|
|
||||||
@@ -1067,6 +1079,7 @@ async function CheckConfigParameters() {
|
|||||||
if (config.panelRecvTopic.indexOf('.tele.') < 0) {
|
if (config.panelRecvTopic.indexOf('.tele.') < 0) {
|
||||||
log('Config-Parameter: << config.panelRecvTopic - ' + config.panelRecvTopic + ' >> does not refer to the prefix .tele. Please Check Parameters!', 'error');
|
log('Config-Parameter: << config.panelRecvTopic - ' + config.panelRecvTopic + ' >> does not refer to the prefix .tele. Please Check Parameters!', 'error');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (existsObject(config.panelSendTopic) == false) {
|
if (existsObject(config.panelSendTopic) == false) {
|
||||||
const n = config.panelSendTopic.split('.');
|
const n = config.panelSendTopic.split('.');
|
||||||
const a = n.shift();
|
const a = n.shift();
|
||||||
@@ -1125,10 +1138,10 @@ async function CheckConfigParameters() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
if (config.mrIcon1ScreensaverEntity.ScreensaverEntity != null && existsObject(config.mrIcon1ScreensaverEntity.ScreensaverEntity) == false) {
|
if (config.mrIcon1ScreensaverEntity.ScreensaverEntity != null && existsObject(config.mrIcon1ScreensaverEntity.ScreensaverEntity) == false) {
|
||||||
log('mrIcon1ScreensaverEntity data point in the config not available - please adjust', 'warn');
|
if ( existsState(NSPanel_Path + 'Config')) log('mrIcon1ScreensaverEntity data point in the config not available - please adjust', 'warn');
|
||||||
}
|
}
|
||||||
if (config.mrIcon2ScreensaverEntity.ScreensaverEntity != null && existsObject(config.mrIcon2ScreensaverEntity.ScreensaverEntity) == false) {
|
if (config.mrIcon2ScreensaverEntity.ScreensaverEntity != null && existsObject(config.mrIcon2ScreensaverEntity.ScreensaverEntity) == false) {
|
||||||
log('mrIcon2ScreensaverEntity data point in the config not available - please adjust', 'warn');
|
if ( existsState(NSPanel_Path + 'Config')) log('mrIcon2ScreensaverEntity data point in the config not available - please adjust', 'warn');
|
||||||
}
|
}
|
||||||
if (CheckEnableSetObject()) {
|
if (CheckEnableSetObject()) {
|
||||||
log('setObjects enabled - create Alias Channels possible', 'info');
|
log('setObjects enabled - create Alias Channels possible', 'info');
|
||||||
@@ -1162,7 +1175,7 @@ async function InitIoBrokerInfo() {
|
|||||||
name: 'ACTUAL',
|
name: 'ACTUAL',
|
||||||
});
|
});
|
||||||
// ScriptName
|
// ScriptName
|
||||||
await createStateAsync(NSPanel_Path + 'IoBroker.ScriptName', 'v' + javaScriptVersion, { type: 'string', write: false });
|
await createStateAsync(NSPanel_Path + 'IoBroker.ScriptName', 'v' + NSPanel_Path + 'IoBroker.ScriptName', { type: 'string', write: false });
|
||||||
setObject(AliasPath + 'IoBroker.ScriptName', { type: 'channel', common: { role: 'info', name: 'Scriptname' }, native: {} });
|
setObject(AliasPath + 'IoBroker.ScriptName', { type: 'channel', common: { role: 'info', name: 'Scriptname' }, native: {} });
|
||||||
await createAliasAsync(AliasPath + 'IoBroker.ScriptName.ACTUAL', NSPanel_Path + 'IoBroker.ScriptName', true, <iobJS.StateCommon>{ type: 'string', role: 'state', name: 'ACTUAL' });
|
await createAliasAsync(AliasPath + 'IoBroker.ScriptName.ACTUAL', NSPanel_Path + 'IoBroker.ScriptName', true, <iobJS.StateCommon>{ type: 'string', role: 'state', name: 'ACTUAL' });
|
||||||
}
|
}
|
||||||
@@ -1259,17 +1272,18 @@ async function CheckMQTTPorts() {
|
|||||||
log('error at function CheckMQTTPorts: ' + err.message, 'warn');
|
log('error at function CheckMQTTPorts: ' + err.message, 'warn');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CheckMQTTPorts();
|
CheckMQTTPorts();
|
||||||
|
|
||||||
async function Init_Release() {
|
async function Init_Release() {
|
||||||
const FWVersion = [41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56];
|
const FWVersion = [0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56];
|
||||||
const FWRelease = ['3.3.1', '3.4.0', '3.5.0', '3.5.X', '3.6.0', '3.7.3', '3.8.0', '3.8.3', '3.9.4', '4.0.5', '4.1.4', '4.2.1', '4.4.0', '4.4.0', '4.5.0', '4.6.0'];
|
const FWRelease = ['0', '3.3.1', '3.4.0', '3.5.0', '3.5.X', '3.6.0', '3.7.3', '3.8.0', '3.8.3', '3.9.4', '4.0.5', '4.1.4', '4.2.1', '4.4.0', '4.4.0', '4.5.0', '4.6.0'];
|
||||||
try {
|
try {
|
||||||
if (existsObject(NSPanel_Path + 'Display_Firmware.desiredVersion') == false) {
|
if (existsObject(NSPanel_Path + 'Display_Firmware.desiredVersion') == false) {
|
||||||
await createStateAsync(NSPanel_Path + 'Display_Firmware.desiredVersion', desired_display_firmware_version, { type: 'number', write: false });
|
await createStateAsync(NSPanel_Path + 'Display_Firmware.desiredVersion', desired_display_firmware_version, { type: 'number', write: false });
|
||||||
|
// if 'desiredVersion' as a string: await createStateAsync(NSPanel_Path + 'Display_Firmware.desiredVersion', String(desired_display_firmware_version), { type: 'string', write: false });
|
||||||
} else {
|
} else {
|
||||||
await setStateAsync(NSPanel_Path + 'Display_Firmware.desiredVersion', desired_display_firmware_version, true);
|
await setStateAsync(NSPanel_Path + 'Display_Firmware.desiredVersion', desired_display_firmware_version, true);
|
||||||
|
// if 'desiredVersion' as a string: await setStateAsync(NSPanel_Path + 'Display_Firmware.desiredVersion', String(desired_display_firmware_version), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (existsObject(NSPanel_Path + 'Config.Update.activ') == false) {
|
if (existsObject(NSPanel_Path + 'Config.Update.activ') == false) {
|
||||||
@@ -1291,7 +1305,7 @@ async function Init_Release() {
|
|||||||
//Create TFT DP's
|
//Create TFT DP's
|
||||||
if (isSetOptionActive) {
|
if (isSetOptionActive) {
|
||||||
await createStateAsync(NSPanel_Path + 'Display_Firmware.TFT.currentVersion', currentFW + ' / v' + FWRelease[findFWIndex], { type: 'string', write: false });
|
await createStateAsync(NSPanel_Path + 'Display_Firmware.TFT.currentVersion', currentFW + ' / v' + FWRelease[findFWIndex], { type: 'string', write: false });
|
||||||
await createStateAsync(NSPanel_Path + 'Display_Firmware.TFT.desiredVersion', desired_display_firmware_version, { type: 'string', write: false });
|
await createStateAsync(NSPanel_Path + 'Display_Firmware.TFT.desiredVersion', String(desired_display_firmware_version), { type: 'string', write: false });
|
||||||
setObject(AliasPath + 'Display_Firmware.TFT.currentVersion', { type: 'channel', common: { role: 'info', name: 'current TFT-Version' }, native: {} });
|
setObject(AliasPath + 'Display_Firmware.TFT.currentVersion', { type: 'channel', common: { role: 'info', name: 'current TFT-Version' }, native: {} });
|
||||||
setObject(AliasPath + 'Display_Firmware.TFT.desiredVersion', { type: 'channel', common: { role: 'info', name: 'desired TFT-Version' }, native: {} });
|
setObject(AliasPath + 'Display_Firmware.TFT.desiredVersion', { type: 'channel', common: { role: 'info', name: 'desired TFT-Version' }, native: {} });
|
||||||
await createAliasAsync(AliasPath + 'Display_Firmware.TFT.currentVersion.ACTUAL', NSPanel_Path + 'Display_Firmware.TFT.currentVersion', true, <iobJS.StateCommon>{
|
await createAliasAsync(AliasPath + 'Display_Firmware.TFT.currentVersion.ACTUAL', NSPanel_Path + 'Display_Firmware.TFT.currentVersion', true, <iobJS.StateCommon>{
|
||||||
@@ -1308,7 +1322,7 @@ async function Init_Release() {
|
|||||||
} else {
|
} else {
|
||||||
//Create TFT DP's
|
//Create TFT DP's
|
||||||
await setStateAsync(NSPanel_Path + 'Display_Firmware.TFT.currentVersion', currentFW + ' / v' + FWRelease[findFWIndex], true);
|
await setStateAsync(NSPanel_Path + 'Display_Firmware.TFT.currentVersion', currentFW + ' / v' + FWRelease[findFWIndex], true);
|
||||||
await setStateAsync(NSPanel_Path + 'Display_Firmware.TFT.desiredVersion', desired_display_firmware_version + ' / ' + tft_version, true);
|
await setStateAsync(NSPanel_Path + 'Display_Firmware.TFT.desiredVersion', String(desired_display_firmware_version) + ' / ' + tft_version, true);
|
||||||
}
|
}
|
||||||
} catch (err: any) {
|
} catch (err: any) {
|
||||||
log('error at function Init_Release: ' + err.message, 'warn');
|
log('error at function Init_Release: ' + err.message, 'warn');
|
||||||
@@ -1666,7 +1680,11 @@ InitActiveBrightness();
|
|||||||
|
|
||||||
on({ id: [NSPanel_Path + 'ScreensaverInfo.activeBrightness'], change: 'ne' }, async function (obj) {
|
on({ id: [NSPanel_Path + 'ScreensaverInfo.activeBrightness'], change: 'ne' }, async function (obj) {
|
||||||
try {
|
try {
|
||||||
let active = getState(NSPanel_Path + 'ScreensaverInfo.activeDimmodeBrightness').val ?? -1;
|
let dimBrightness:number = -1;
|
||||||
|
if (existsState(NSPanel_Path + 'ScreensaverInfo.activeDimmodeBrightness')) {
|
||||||
|
dimBrightness = getState(NSPanel_Path + 'ScreensaverInfo.activeDimmodeBrightness').val;
|
||||||
|
}
|
||||||
|
let active = dimBrightness ?? -1;
|
||||||
if (obj.state.val >= 0 || obj.state.val <= 100) {
|
if (obj.state.val >= 0 || obj.state.val <= 100) {
|
||||||
log('action at trigger activeBrightness: ' + obj.state.val + ' - activeDimmodeBrightness: ' + active, 'info');
|
log('action at trigger activeBrightness: ' + obj.state.val + ' - activeDimmodeBrightness: ' + active, 'info');
|
||||||
SendToPanel({ payload: 'dimmode~' + active + '~' + obj.state.val + '~' + rgb_dec565(config.defaultBackgroundColor) + '~' + rgb_dec565(globalTextColor) + '~' + Sliders2 });
|
SendToPanel({ payload: 'dimmode~' + active + '~' + obj.state.val + '~' + rgb_dec565(config.defaultBackgroundColor) + '~' + rgb_dec565(globalTextColor) + '~' + Sliders2 });
|
||||||
@@ -1679,7 +1697,11 @@ on({ id: [NSPanel_Path + 'ScreensaverInfo.activeBrightness'], change: 'ne' }, as
|
|||||||
|
|
||||||
on({ id: [NSPanel_Path + 'ScreensaverInfo.activeDimmodeBrightness'], change: 'ne' }, async function (obj) {
|
on({ id: [NSPanel_Path + 'ScreensaverInfo.activeDimmodeBrightness'], change: 'ne' }, async function (obj) {
|
||||||
try {
|
try {
|
||||||
let active = getState(NSPanel_Path + 'ScreensaverInfo.activeBrightness').val ?? 80;
|
let brightness:number = 100;
|
||||||
|
if (existsState(NSPanel_Path + 'ScreensaverInfo.activeBrightness')) {
|
||||||
|
brightness = getState(NSPanel_Path + 'ScreensaverInfo.activeBrightness').val;
|
||||||
|
}
|
||||||
|
let active = brightness ?? 80;
|
||||||
if (obj.state.val != null && obj.state.val != -1) {
|
if (obj.state.val != null && obj.state.val != -1) {
|
||||||
if (obj.state.val < -1 || obj.state.val > 100) {
|
if (obj.state.val < -1 || obj.state.val > 100) {
|
||||||
log('activeDimmodeBrightness value only between -1 and 100', 'info');
|
log('activeDimmodeBrightness value only between -1 and 100', 'info');
|
||||||
@@ -1709,7 +1731,11 @@ on({ id: [NSPanel_Path + 'ScreensaverInfo.activeDimmodeBrightness'], change: 'ne
|
|||||||
|
|
||||||
on({ id: String(NSPanel_Path) + 'ScreensaverInfo.Trigger_Dimmode', change: 'ne' }, async function (obj) {
|
on({ id: String(NSPanel_Path) + 'ScreensaverInfo.Trigger_Dimmode', change: 'ne' }, async function (obj) {
|
||||||
try {
|
try {
|
||||||
let active = getState(NSPanel_Path + 'ScreensaverInfo.activeBrightness').val ?? 80;
|
let brightness:number = 100;
|
||||||
|
if (existsState(NSPanel_Path + 'ScreensaverInfo.activeBrightness')) {
|
||||||
|
brightness = getState(NSPanel_Path + 'ScreensaverInfo.activeBrightness').val;
|
||||||
|
}
|
||||||
|
let active = brightness ?? 80;
|
||||||
if (obj.state.val) {
|
if (obj.state.val) {
|
||||||
SendToPanel({ payload: 'dimmode~' + 100 + '~' + active + '~' + rgb_dec565(config.defaultBackgroundColor) + '~' + rgb_dec565(globalTextColor) + '~' + Sliders2 });
|
SendToPanel({ payload: 'dimmode~' + 100 + '~' + active + '~' + rgb_dec565(config.defaultBackgroundColor) + '~' + rgb_dec565(globalTextColor) + '~' + Sliders2 });
|
||||||
} else {
|
} else {
|
||||||
@@ -1929,6 +1955,7 @@ async function InitDateformat() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
InitDateformat();
|
InitDateformat();
|
||||||
|
|
||||||
//Control Dateformat short/long from DP's
|
//Control Dateformat short/long from DP's
|
||||||
on({ id: [String(NSPanel_Path) + 'Config.Dateformat.Switch.weekday', String(NSPanel_Path) + 'Config.Dateformat.Switch.month'], change: 'ne' }, async function (obj) {
|
on({ id: [String(NSPanel_Path) + 'Config.Dateformat.Switch.weekday', String(NSPanel_Path) + 'Config.Dateformat.Switch.month'], change: 'ne' }, async function (obj) {
|
||||||
try {
|
try {
|
||||||
@@ -2098,7 +2125,7 @@ async function InitPageNavi() {
|
|||||||
try {
|
try {
|
||||||
if (!existsState(NSPanel_Path + 'PageNavi')) {
|
if (!existsState(NSPanel_Path + 'PageNavi')) {
|
||||||
await createStateAsync(NSPanel_Path + 'PageNavi', <iobJS.StateCommon>{ type: 'string', write: true });
|
await createStateAsync(NSPanel_Path + 'PageNavi', <iobJS.StateCommon>{ type: 'string', write: true });
|
||||||
await setStateAsync(NSPanel_Path + 'PageNavi', <iobJS.State>{ val: { pagetype: 'page', pageId: 0 }, ack: true });
|
await setStateAsync(NSPanel_Path + 'PageNavi', <iobJS.State>{ val: "{ pagetype: 'page', pageId: 0 }", ack: true });
|
||||||
}
|
}
|
||||||
} catch (err: any) {
|
} catch (err: any) {
|
||||||
log('error at function InitPageNavi: ' + err.message, 'warn');
|
log('error at function InitPageNavi: ' + err.message, 'warn');
|
||||||
@@ -2110,12 +2137,16 @@ InitPageNavi();
|
|||||||
on({ id: [NSPanel_Path + 'PageNavi'], change: 'any' }, async function (obj) {
|
on({ id: [NSPanel_Path + 'PageNavi'], change: 'any' }, async function (obj) {
|
||||||
try {
|
try {
|
||||||
if (existsState(NSPanel_Path + 'PageNavi')) {
|
if (existsState(NSPanel_Path + 'PageNavi')) {
|
||||||
|
try {
|
||||||
let vObj = JSON.parse(obj.state.val);
|
let vObj = JSON.parse(obj.state.val);
|
||||||
if (vObj.pagetype == 'page') {
|
if (vObj.pagetype == 'page') {
|
||||||
GeneratePage(config.pages[vObj.pageId]);
|
GeneratePage(config.pages[vObj.pageId]);
|
||||||
} else if (vObj.pagetype == 'subpage') {
|
} else if (vObj.pagetype == 'subpage') {
|
||||||
GeneratePage(config.subPages[vObj.pageId]);
|
GeneratePage(config.subPages[vObj.pageId]);
|
||||||
}
|
}
|
||||||
|
} catch (e) {
|
||||||
|
log('non valid JSON at trigger PageNavi', 'info');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch (err: any) {
|
} catch (err: any) {
|
||||||
log('error at Trigger PageNavi: ' + err.message, 'warn');
|
log('error at Trigger PageNavi: ' + err.message, 'warn');
|
||||||
@@ -2125,8 +2156,16 @@ on({ id: [NSPanel_Path + 'PageNavi'], change: 'any' }, async function (obj) {
|
|||||||
//----------------------Begin Dimmode
|
//----------------------Begin Dimmode
|
||||||
function ScreensaverDimmode(timeDimMode: NSPanel.DimMode) {
|
function ScreensaverDimmode(timeDimMode: NSPanel.DimMode) {
|
||||||
try {
|
try {
|
||||||
let active = getState(NSPanel_Path + 'ScreensaverInfo.activeBrightness').val ?? 80;
|
let brightness:number = 100;
|
||||||
let dimmode = getState(NSPanel_Path + 'ScreensaverInfo.activeDimmodeBrightness').val ?? -1;
|
let dimBrightness:number = -1;
|
||||||
|
if (existsState(NSPanel_Path + 'ScreensaverInfo.activeBrightness')) {
|
||||||
|
brightness = getState(NSPanel_Path + 'ScreensaverInfo.activeBrightness').val;
|
||||||
|
}
|
||||||
|
if (existsState(NSPanel_Path + 'ScreensaverInfo.activeDimmodeBrightness')) {
|
||||||
|
dimBrightness = getState(NSPanel_Path + 'ScreensaverInfo.activeDimmodeBrightness').val;
|
||||||
|
}
|
||||||
|
let active = brightness ?? 80;
|
||||||
|
let dimmode = dimBrightness ?? -1;
|
||||||
if (Debug) {
|
if (Debug) {
|
||||||
log('function ScreensaverDimmode RGB-Wert HMIDark' + rgb_dec565(HMIDark), 'info');
|
log('function ScreensaverDimmode RGB-Wert HMIDark' + rgb_dec565(HMIDark), 'info');
|
||||||
}
|
}
|
||||||
@@ -2349,9 +2388,10 @@ async function Calc_Consumtion(Brightness: number, Relays: number) {
|
|||||||
//
|
//
|
||||||
async function CountRelaysOn(Path: string) {
|
async function CountRelaysOn(Path: string) {
|
||||||
try {
|
try {
|
||||||
let r1: boolean = getState(Path + 'Relay.1').val;
|
let r1: boolean = true;
|
||||||
let r2: boolean = getState(Path + 'Relay.2').val;
|
let r2: boolean = true;
|
||||||
|
if (existsState(Path + 'Relay.1')) r1 = getState(Path + 'Relay.1').val;
|
||||||
|
if (existsState(Path + 'Relay.2')) r2 = getState(Path + 'Relay.2').val;
|
||||||
if (r1 && r2) {
|
if (r1 && r2) {
|
||||||
return 2;
|
return 2;
|
||||||
} else if (!r1 && !r2) {
|
} else if (!r1 && !r2) {
|
||||||
@@ -2365,6 +2405,13 @@ async function CountRelaysOn(Path: string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function DetermineDimBrightness(Path: string) {
|
async function DetermineDimBrightness(Path: string) {
|
||||||
|
if ( existsState(NSPanel_Path + 'NSPanel_Dimmode_hourDay') &&
|
||||||
|
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')
|
||||||
|
) {
|
||||||
try {
|
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;
|
||||||
@@ -2389,6 +2436,7 @@ async function DetermineDimBrightness(Path: string) {
|
|||||||
log('error at function DetermineDimBrightness: ' + err.message, 'warn');
|
log('error at function DetermineDimBrightness: ' + err.message, 'warn');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async function DetermineScreensaverDimmode(timeDimMode: NSPanel.DimMode) {
|
async function DetermineScreensaverDimmode(timeDimMode: NSPanel.DimMode) {
|
||||||
try {
|
try {
|
||||||
@@ -2492,8 +2540,14 @@ async function InitPopupNotify() {
|
|||||||
|
|
||||||
// Notification to screensaver
|
// Notification to screensaver
|
||||||
on({ id: [screensaverNotifyHeading, screensaverNotifyText], change: 'ne', ack: false }, async (obj) => {
|
on({ id: [screensaverNotifyHeading, screensaverNotifyText], change: 'ne', ack: false }, async (obj) => {
|
||||||
const heading = getState(screensaverNotifyHeading).val;
|
let heading: string = '';
|
||||||
const text = getState(screensaverNotifyText).val;
|
let text: string = '';
|
||||||
|
if (existsState(screensaverNotifyHeading)) {
|
||||||
|
heading = getState(screensaverNotifyHeading).val;
|
||||||
|
}
|
||||||
|
if (existsState(screensaverNotifyText)) {
|
||||||
|
text = getState(screensaverNotifyText).val;
|
||||||
|
}
|
||||||
|
|
||||||
if (screensaverEnabled && heading != '' && text != '') {
|
if (screensaverEnabled && heading != '' && text != '') {
|
||||||
setIfExists(config.panelSendTopic, `notify~${heading}~${text}`);
|
setIfExists(config.panelSendTopic, `notify~${heading}~${text}`);
|
||||||
@@ -2517,8 +2571,14 @@ async function InitPopupNotify() {
|
|||||||
let v_popupNotifyIcon = getState(popupNotifyIcon).val != null ? getState(popupNotifyIcon).val : 'alert';
|
let v_popupNotifyIcon = getState(popupNotifyIcon).val != null ? getState(popupNotifyIcon).val : 'alert';
|
||||||
let v_popupNotifyBuzzer = getState(popupNotifyBuzzer).val != null ? getState(popupNotifyBuzzer).val : '0';
|
let v_popupNotifyBuzzer = getState(popupNotifyBuzzer).val != null ? getState(popupNotifyBuzzer).val : '0';
|
||||||
|
|
||||||
const heading = getState(popupNotifyHeading).val;
|
let heading: string = '';
|
||||||
const text = getState(popupNotifyText).val;
|
let text: string = '';
|
||||||
|
if (existsState(popupNotifyHeading)) {
|
||||||
|
heading = getState(popupNotifyHeading).val;
|
||||||
|
}
|
||||||
|
if (existsState(popupNotifyText)) {
|
||||||
|
text = getState(popupNotifyText).val;
|
||||||
|
}
|
||||||
|
|
||||||
notification =
|
notification =
|
||||||
'entityUpdateDetail' +
|
'entityUpdateDetail' +
|
||||||
@@ -2606,23 +2666,47 @@ let scheduleSendTime = adapterSchedule(new Date().setSeconds(0, 0), 60, () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
//Switch between Screensaver Entities and WeatherForecast
|
//Switch between Screensaver Entities and WeatherForecast
|
||||||
let scheduleSwichScreensaver = adapterSchedule(undefined, parseInt(getState(NSPanel_Path + 'ScreensaverInfo.entityChangeTime').val), () => {
|
let screensaverChangeTime = 60;
|
||||||
|
if (existsState(NSPanel_Path + 'ScreensaverInfo.entityChangeTime')) {
|
||||||
|
screensaverChangeTime = parseInt(getState(NSPanel_Path + 'ScreensaverInfo.entityChangeTime').val);
|
||||||
|
}
|
||||||
|
let scheduleSwichScreensaver = adapterSchedule(undefined, screensaverChangeTime, () => {
|
||||||
try {
|
try {
|
||||||
//WeatherForecast true/false Switchover delayed
|
//WeatherForecast true/false Switchover delayed
|
||||||
|
let heading: string = '';
|
||||||
|
let text: string = '';
|
||||||
|
let wForecast: boolean = true;
|
||||||
|
let wForecastTimer: boolean = true;
|
||||||
|
let changeTime:number = 60;
|
||||||
|
if (existsState(NSPanel_Path + 'ScreensaverInfo.popupNotifyHeading')) {
|
||||||
|
heading = getState(NSPanel_Path + 'ScreensaverInfo.popupNotifyHeading').val;
|
||||||
|
}
|
||||||
|
if (existsState(NSPanel_Path + 'ScreensaverInfo.popupNotifyText')) {
|
||||||
|
text = getState(NSPanel_Path + 'ScreensaverInfo.popupNotifyText').val;
|
||||||
|
}
|
||||||
|
if (existsState(NSPanel_Path + 'ScreensaverInfo.weatherForecast')) {
|
||||||
|
wForecast = getState(NSPanel_Path + 'ScreensaverInfo.weatherForecast').val;
|
||||||
|
}
|
||||||
|
if (existsState(NSPanel_Path + 'ScreensaverInfo.weatherForecastTimer')) {
|
||||||
|
wForecastTimer = getState(NSPanel_Path + 'ScreensaverInfo.weatherForecastTimer').val;
|
||||||
|
}
|
||||||
|
if (existsState(NSPanel_Path + 'ScreensaverInfo.entityChangeTime')) {
|
||||||
|
changeTime = getState(NSPanel_Path + 'ScreensaverInfo.entityChangeTime').val;
|
||||||
|
}
|
||||||
if (
|
if (
|
||||||
getState(NSPanel_Path + 'ScreensaverInfo.popupNotifyHeading').val == '' &&
|
heading == '' &&
|
||||||
getState(NSPanel_Path + 'ScreensaverInfo.popupNotifyText').val == '' &&
|
text == '' &&
|
||||||
getState(NSPanel_Path + 'ScreensaverInfo.weatherForecast').val == true &&
|
wForecast == true &&
|
||||||
getState(NSPanel_Path + 'ScreensaverInfo.weatherForecastTimer').val == true
|
wForecastTimer == true
|
||||||
) {
|
) {
|
||||||
setStateDelayed(NSPanel_Path + 'ScreensaverInfo.weatherForecast', false, (getState(NSPanel_Path + 'ScreensaverInfo.entityChangeTime').val / 2) * 1000, false);
|
setStateDelayed(NSPanel_Path + 'ScreensaverInfo.weatherForecast', false, (changeTime / 2) * 1000, false);
|
||||||
} else if (
|
} else if (
|
||||||
getState(NSPanel_Path + 'ScreensaverInfo.popupNotifyHeading').val == '' &&
|
heading == '' &&
|
||||||
getState(NSPanel_Path + 'ScreensaverInfo.popupNotifyText').val == '' &&
|
text == '' &&
|
||||||
getState(NSPanel_Path + 'ScreensaverInfo.weatherForecast').val == false &&
|
wForecast == false &&
|
||||||
getState(NSPanel_Path + 'ScreensaverInfo.weatherForecastTimer').val == true
|
wForecastTimer == true
|
||||||
) {
|
) {
|
||||||
setStateDelayed(NSPanel_Path + 'ScreensaverInfo.weatherForecast', true, (getState(NSPanel_Path + 'ScreensaverInfo.entityChangeTime').val / 2) * 1000, false);
|
setStateDelayed(NSPanel_Path + 'ScreensaverInfo.weatherForecast', true, (changeTime / 2) * 1000, false);
|
||||||
}
|
}
|
||||||
} catch (err: any) {
|
} catch (err: any) {
|
||||||
log('error at schedule entityChangeTime: ' + err.message, 'warn');
|
log('error at schedule entityChangeTime: ' + err.message, 'warn');
|
||||||
@@ -2683,31 +2767,43 @@ let scheduleStartup = adapterSchedule({ hour: 3, minute: 30 }, 24 * 60 * 60, asy
|
|||||||
setIfExists(config.panelSendTopic, 'pageType~pageStartup');
|
setIfExists(config.panelSendTopic, 'pageType~pageStartup');
|
||||||
});
|
});
|
||||||
|
|
||||||
// Updates currently compare every 12 hours
|
// Check for updates with Start
|
||||||
|
get_locales();
|
||||||
|
get_locales_servicemenu();
|
||||||
|
|
||||||
|
// setIfExists(config.panelSendTopic, 'pageType~pageStartup');
|
||||||
|
// get_tasmota_status0();
|
||||||
|
// get_panel_update_data();
|
||||||
|
// check_updates();
|
||||||
|
|
||||||
|
// Updates currently compare and every 12 hours
|
||||||
let scheduleCheckUpdates = adapterSchedule(undefined, 60 * 60 * 12, () => {
|
let scheduleCheckUpdates = adapterSchedule(undefined, 60 * 60 * 12, () => {
|
||||||
get_tasmota_status0();
|
get_tasmota_status0();
|
||||||
get_panel_update_data();
|
get_panel_update_data();
|
||||||
check_updates();
|
check_updates();
|
||||||
});
|
});
|
||||||
|
|
||||||
// Check for updates with Start
|
// force manual restart after object initialization
|
||||||
get_locales();
|
|
||||||
get_locales_servicemenu();
|
|
||||||
setIfExists(config.panelSendTopic, 'pageType~pageStartup');
|
|
||||||
get_tasmota_status0();
|
|
||||||
get_panel_update_data();
|
|
||||||
check_updates();
|
|
||||||
/*
|
/*
|
||||||
setTimeout(async function () {
|
if (firstRun) {
|
||||||
setState(config.panelSendTopic, 'pageType~pageStartup');
|
stopScript(scriptName);
|
||||||
}, 90000);
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
setTimeout(async function () {
|
||||||
|
if (firstRun) {
|
||||||
|
stopScript(scriptName);
|
||||||
|
}
|
||||||
|
}, 20000);
|
||||||
|
|
||||||
//------------------Begin Update Functions
|
//------------------Begin Update Functions
|
||||||
|
|
||||||
function getMomentjsLocale(): String {
|
function getMomentjsLocale(): String {
|
||||||
try {
|
try {
|
||||||
|
let locale = 'en-US';
|
||||||
|
if ( existsState(NSPanel_Path + 'Config.locale')) {
|
||||||
let locale = getState(NSPanel_Path + 'Config.locale').val;
|
let locale = getState(NSPanel_Path + 'Config.locale').val;
|
||||||
|
}
|
||||||
if (locale == 'hy-AM' || locale == 'zh-CN' || locale == 'zh-TW') {
|
if (locale == 'hy-AM' || locale == 'zh-CN' || locale == 'zh-TW') {
|
||||||
return locale.toLowerCase();
|
return locale.toLowerCase();
|
||||||
} else {
|
} else {
|
||||||
@@ -2876,6 +2972,9 @@ async function check_updates() {
|
|||||||
|
|
||||||
// TFT-Firmware-Vergleich
|
// TFT-Firmware-Vergleich
|
||||||
if (existsObject(NSPanel_Path + 'Display_Firmware.currentVersion')) {
|
if (existsObject(NSPanel_Path + 'Display_Firmware.currentVersion')) {
|
||||||
|
if (parseInt(getState(NSPanel_Path + 'Display_Firmware.currentVersion').val) == 0) {
|
||||||
|
log('Actual TFT-firmware version just not not initialized', 'info');
|
||||||
|
} else {
|
||||||
if (parseInt(getState(NSPanel_Path + 'Display_Firmware.currentVersion').val) < desired_display_firmware_version) {
|
if (parseInt(getState(NSPanel_Path + 'Display_Firmware.currentVersion').val) < desired_display_firmware_version) {
|
||||||
if (existsState(NSPanel_Path + 'NSPanel_autoUpdate')) {
|
if (existsState(NSPanel_Path + 'NSPanel_autoUpdate')) {
|
||||||
if (getState(NSPanel_Path + 'NSPanel_autoUpdate').val) {
|
if (getState(NSPanel_Path + 'NSPanel_autoUpdate').val) {
|
||||||
@@ -2883,6 +2982,7 @@ async function check_updates() {
|
|||||||
|
|
||||||
// TFT-Firmware Update durchführen
|
// TFT-Firmware Update durchführen
|
||||||
update_tft_firmware();
|
update_tft_firmware();
|
||||||
|
|
||||||
// Aktuelle TFT-Firmware Version = Online TFT-Firmware Version
|
// Aktuelle TFT-Firmware Version = Online TFT-Firmware Version
|
||||||
await setStateAsync(NSPanel_Path + 'Display_Firmware.currentVersion', <iobJS.State>{ val: getState(NSPanel_Path + 'Display_Firmware.onlineVersion').val, ack: true });
|
await setStateAsync(NSPanel_Path + 'Display_Firmware.currentVersion', <iobJS.State>{ val: getState(NSPanel_Path + 'Display_Firmware.onlineVersion').val, ack: true });
|
||||||
|
|
||||||
@@ -2913,7 +3013,11 @@ async function check_updates() {
|
|||||||
if (Debug) log('Already the latest display firmware on NSPanel', 'info');
|
if (Debug) log('Already the latest display firmware on NSPanel', 'info');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let update_message: boolean = getState(NSPanel_Path + 'Config.Update.UpdateMessage').val;
|
}
|
||||||
|
let update_message: boolean = true;
|
||||||
|
if (existsState(NSPanel_Path + 'Config.Update.UpdateMessage')) {
|
||||||
|
update_message = getState(NSPanel_Path + 'Config.Update.UpdateMessage').val;
|
||||||
|
}
|
||||||
if (Update && update_message) {
|
if (Update && update_message) {
|
||||||
await setStateAsync(popupNotifyHeading, <iobJS.State>{ val: Headline, ack: false });
|
await setStateAsync(popupNotifyHeading, <iobJS.State>{ val: Headline, ack: false });
|
||||||
await setStateAsync(popupNotifyHeadingColor, <iobJS.State>{ val: HeadlineColor, ack: false });
|
await setStateAsync(popupNotifyHeadingColor, <iobJS.State>{ val: HeadlineColor, ack: false });
|
||||||
@@ -3396,7 +3500,13 @@ function update_berry_driver_version() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function update_tft_firmware() {
|
function update_tft_firmware() {
|
||||||
if (getState(NSPanel_Path + 'Config.Update.activ').val == 0) {
|
if ((existsObject(NSPanel_Path + 'Config.Update.activ') != false) && (existsObject(NSPanel_Path + 'Display_Firmware.TFT.currentVersion') != false)) {
|
||||||
|
let id = getState(NSPanel_Path + 'Display_Firmware.TFT.currentVersion').val;
|
||||||
|
let currentVersion = id.split('/');
|
||||||
|
let version = parseInt(currentVersion[0]);
|
||||||
|
if ( ! isNaN(version) ) {
|
||||||
|
if ((getState(NSPanel_Path + 'Config.Update.activ').val == 0) && (version != 0)) {
|
||||||
|
if (existsState(NSPanel_Path + 'NSPanel_Version')) {
|
||||||
let desired_display_firmware_url = '';
|
let desired_display_firmware_url = '';
|
||||||
|
|
||||||
if (getState(NSPanel_Path + 'NSPanel_Version').val == 'us-l') {
|
if (getState(NSPanel_Path + 'NSPanel_Version').val == 'us-l') {
|
||||||
@@ -3415,7 +3525,6 @@ function update_tft_firmware() {
|
|||||||
if (tasmota_web_admin_password != '') {
|
if (tasmota_web_admin_password != '') {
|
||||||
urlString = `http://${get_current_tasmota_ip_address()}/cm?user=${tasmota_web_admin_user}&password=${tasmota_web_admin_password}&cmnd=FlashNextion ${desired_display_firmware_url}`;
|
urlString = `http://${get_current_tasmota_ip_address()}/cm?user=${tasmota_web_admin_user}&password=${tasmota_web_admin_password}&cmnd=FlashNextion ${desired_display_firmware_url}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
axios
|
axios
|
||||||
.get(urlString, { headers: { 'User-Agent': 'ioBroker' } })
|
.get(urlString, { headers: { 'User-Agent': 'ioBroker' } })
|
||||||
.then(async function (response) {
|
.then(async function (response) {
|
||||||
@@ -3438,15 +3547,18 @@ function update_tft_firmware() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function update_tasmota_firmware() {
|
function update_tasmota_firmware() {
|
||||||
|
if (existsObject(NSPanel_Path + 'Config.Update.activ') != false) {
|
||||||
try {
|
try {
|
||||||
if (getState(NSPanel_Path + 'Config.Update.activ').val == 0) {
|
if (getState(NSPanel_Path + 'Config.Update.activ').val == 0) {
|
||||||
let urlString = `http://${get_current_tasmota_ip_address()}/cm?cmnd=OtaUrl ${tasmotaOtaUrl}${tasmotaOtaVersion}`;
|
let urlString = `http://${get_current_tasmota_ip_address()}/cm?cmnd=OtaUrl ${tasmotaOtaUrl}${tasmotaOtaVersion}`;
|
||||||
if (tasmota_web_admin_password != '') {
|
if (tasmota_web_admin_password != '') {
|
||||||
urlString = `http://${get_current_tasmota_ip_address()}/cm?user=${tasmota_web_admin_user}&password=${tasmota_web_admin_password}&cmnd=OtaUrl ${tasmotaOtaUrl}${tasmotaOtaVersion}`;
|
urlString = `http://${get_current_tasmota_ip_address()}/cm?user=${tasmota_web_admin_user}&password=${tasmota_web_admin_password}&cmnd=OtaUrl ${tasmotaOtaUrl}${tasmotaOtaVersion}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
axios
|
axios
|
||||||
.get(urlString, { headers: { 'User-Agent': 'ioBroker' } })
|
.get(urlString, { headers: { 'User-Agent': 'ioBroker' } })
|
||||||
.then(async function (response) {
|
.then(async function (response) {
|
||||||
@@ -3486,6 +3598,7 @@ function update_tasmota_firmware() {
|
|||||||
log('error request in function update_tasmota_firmware: ' + err.message, 'warn');
|
log('error request in function update_tasmota_firmware: ' + err.message, 'warn');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
//mqttCallback (topic: string, message: string): Promise<void> {
|
//mqttCallback (topic: string, message: string): Promise<void> {
|
||||||
on({ id: config.panelRecvTopic.substring(0, config.panelRecvTopic.length - 'RESULT'.length) + 'INFO1', change: 'ne' }, async (obj) => {
|
on({ id: config.panelRecvTopic.substring(0, config.panelRecvTopic.length - 'RESULT'.length) + 'INFO1', change: 'ne' }, async (obj) => {
|
||||||
try {
|
try {
|
||||||
@@ -3735,9 +3848,13 @@ function HandleHardwareButton(method: NSPanel.EventMethod): void {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function HandleStartupProcess(): void {
|
function HandleStartupProcess(): void {
|
||||||
|
let timeout:number = 10;
|
||||||
SendDate();
|
SendDate();
|
||||||
SendTime();
|
SendTime();
|
||||||
SendToPanel({ payload: 'timeout~' + getState(NSPanel_Path + 'Config.Screensaver.timeoutScreensaver').val });
|
if (existsState(NSPanel_Path + 'Config.Screensaver.timeoutScreensaver')) {
|
||||||
|
timeout = getState(NSPanel_Path + 'Config.Screensaver.timeoutScreensaver').val;
|
||||||
|
}
|
||||||
|
SendToPanel({ payload: 'timeout~' + timeout });
|
||||||
}
|
}
|
||||||
|
|
||||||
function SendDate(): void {
|
function SendDate(): void {
|
||||||
@@ -3836,21 +3953,29 @@ function GeneratePageElements(page: PageType): string {
|
|||||||
maxItems = 1;
|
maxItems = 1;
|
||||||
break;
|
break;
|
||||||
case 'cardEntities':
|
case 'cardEntities':
|
||||||
|
if (existsState(NSPanel_Path + 'NSPanel_Version')) {
|
||||||
if (getState(NSPanel_Path + 'NSPanel_Version').val == 'eu') {
|
if (getState(NSPanel_Path + 'NSPanel_Version').val == 'eu') {
|
||||||
maxItems = 4;
|
maxItems = 4;
|
||||||
} else {
|
} else {
|
||||||
maxItems = 5;
|
maxItems = 5;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
maxItems = 4;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 'cardGrid':
|
case 'cardGrid':
|
||||||
maxItems = 6;
|
maxItems = 6;
|
||||||
break;
|
break;
|
||||||
case 'cardGrid2':
|
case 'cardGrid2':
|
||||||
|
if (existsState(NSPanel_Path + 'NSPanel_Version')) {
|
||||||
if (getState(NSPanel_Path + 'NSPanel_Version').val == 'us-p') {
|
if (getState(NSPanel_Path + 'NSPanel_Version').val == 'us-p') {
|
||||||
maxItems = 9;
|
maxItems = 9;
|
||||||
} else {
|
} else {
|
||||||
maxItems = 8;
|
maxItems = 8;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
maxItems = 8;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4687,62 +4812,91 @@ function CreateEntity(pageItem: PageItem, placeId: number, useColors: boolean =
|
|||||||
}
|
}
|
||||||
|
|
||||||
function findLocale(controlsObject: string, controlsState: string): string {
|
function findLocale(controlsObject: string, controlsState: string): string {
|
||||||
|
if ( ! existsState(NSPanel_Path + 'Config.locale')) {
|
||||||
|
if (Debug) {
|
||||||
|
log('findLocaleServMenu missing object: ' + NSPanel_Path + 'Config.locale' + ' -> ' + controlsState, 'warn');
|
||||||
|
}
|
||||||
|
return controlsState;
|
||||||
|
}
|
||||||
|
if ( ! existsState(NSPanel_Path + 'NSPanel_locales_json')) {
|
||||||
|
if (Debug) {
|
||||||
|
log('findLocaleServMenu missing object: ' + NSPanel_Path + 'NSPanel_locales_json' + ' -> ' + controlsState, 'warn');
|
||||||
|
}
|
||||||
|
return controlsState;
|
||||||
|
}
|
||||||
|
|
||||||
const locale = getState(NSPanel_Path + 'Config.locale').val;
|
const locale = getState(NSPanel_Path + 'Config.locale').val;
|
||||||
const strJson = getState(NSPanel_Path + 'NSPanel_locales_json').val;
|
const strJson = getState(NSPanel_Path + 'NSPanel_locales_json').val;
|
||||||
|
|
||||||
if (Debug) {
|
|
||||||
log(controlsObject + ' - ' + controlsState, 'info');
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const obj = JSON.parse(strJson);
|
const obj = JSON.parse(strJson);
|
||||||
const strLocale = obj[controlsObject][controlsState][locale];
|
const strLocale = obj[controlsObject][controlsState][locale];
|
||||||
|
|
||||||
if (strLocale != undefined) {
|
if (strLocale != undefined) {
|
||||||
|
if (Debug) {
|
||||||
|
log('findLocale: ' + controlsObject + ' - ' + controlsState + ' - ' + strLocale, 'info');
|
||||||
|
}
|
||||||
return strLocale;
|
return strLocale;
|
||||||
} else {
|
} else {
|
||||||
|
if (Debug) {
|
||||||
|
log('findLocale missing locale: ' + controlsObject + ' - ' + controlsState, 'info');
|
||||||
|
}
|
||||||
return controlsState;
|
return controlsState;
|
||||||
}
|
}
|
||||||
} catch (err: any) {
|
} catch (err: any) {
|
||||||
if (err.message.substring(0, 35) == 'Cannot read properties of undefined') {
|
if (err.message.substring(0, 35) == 'Cannot read properties of undefined') {
|
||||||
if (Debug) {
|
|
||||||
log('function findLocale: missing translation: ' + controlsObject + ' - ' + controlsState, 'info');
|
log('function findLocale: missing translation: ' + controlsObject + ' - ' + controlsState, 'info');
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
log('error at function findLocale: ' + err.message, 'warn');
|
log('error at function findLocale: ' + controlsObject + ' - ' + controlsState + ' : ' + err.message, 'warn');
|
||||||
}
|
}
|
||||||
return controlsState;
|
return controlsState;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function findLocaleServMenu(controlsState: string): string {
|
function findLocaleServMenu(controlsState: string): string {
|
||||||
|
if ( ! existsState(NSPanel_Path + 'Config.locale')) {
|
||||||
|
if (Debug) {
|
||||||
|
log('findLocaleServMenu missing object: ' + NSPanel_Path + 'Config.locale' + ' -> ' + controlsState, 'warn');
|
||||||
|
}
|
||||||
|
return controlsState;
|
||||||
|
}
|
||||||
|
if ( ! existsState(NSPanel_Path + 'NSPanel_locales_service_json')) {
|
||||||
|
if (Debug) {
|
||||||
|
log('findLocaleServMenu missing object: ' + NSPanel_Path + 'NSPanel_locales_service_json' + ' -> ' + controlsState, 'warn');
|
||||||
|
}
|
||||||
|
return controlsState;
|
||||||
|
}
|
||||||
|
|
||||||
const locale = getState(NSPanel_Path + 'Config.locale').val;
|
const locale = getState(NSPanel_Path + 'Config.locale').val;
|
||||||
const strJson = getState(NSPanel_Path + 'NSPanel_locales_service_json').val;
|
const strJson = getState(NSPanel_Path + 'NSPanel_locales_service_json').val;
|
||||||
|
|
||||||
if (Debug) {
|
|
||||||
log(controlsState, 'info');
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const obj = JSON.parse(strJson);
|
const obj = JSON.parse(strJson);
|
||||||
const strLocale = obj[controlsState][locale];
|
const strLocale = obj[controlsState][locale];
|
||||||
|
|
||||||
if (strLocale != undefined) {
|
if (strLocale != undefined) {
|
||||||
|
if (Debug) {
|
||||||
|
log('findLocaleServMenu: ' + controlsState + ' - ' + locale + ' -> ' + strLocale, 'info');
|
||||||
|
}
|
||||||
return strLocale;
|
return strLocale;
|
||||||
} else {
|
} else {
|
||||||
if (obj[controlsState]['en-US'] != undefined) {
|
if (obj[controlsState]['en-US'] != undefined) {
|
||||||
|
if (Debug) {
|
||||||
|
log('findLocaleServMenu: ' + controlsState + ' - ' + locale + ' -> ' + obj[controlsState]['en-US'], 'info');
|
||||||
|
}
|
||||||
return obj[controlsState]['en-US'];
|
return obj[controlsState]['en-US'];
|
||||||
} else {
|
} else {
|
||||||
|
if (Debug) {
|
||||||
|
log('findLocaleServMenu missing entry: ' + controlsState + ' - en-US', 'info');
|
||||||
|
}
|
||||||
return controlsState;
|
return controlsState;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (err: any) {
|
} catch (err: any) {
|
||||||
if (err.message.substring(0, 35) == 'Cannot read properties of undefined') {
|
if (err.message.substring(0, 35) == 'Cannot read properties of undefined') {
|
||||||
if (Debug) {
|
log('function findLocaleServMenu: missing translation: ' + controlsState + ' - ' + locale, 'info');
|
||||||
log('function findLocale: missing translation: ' + controlsState, 'info');
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
log('error at function findLocale: ' + err.message, 'warn');
|
log('error at function findLocaleServMenu: ' + controlsState + ' - ' + locale + ' : ' + err.message, 'warn');
|
||||||
}
|
}
|
||||||
return controlsState;
|
return controlsState;
|
||||||
}
|
}
|
||||||
@@ -9876,8 +10030,15 @@ function HandleScreensaverStatusIcons(): void {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let alternateScreensaverMFRIcon1Size = getState(NSPanel_Path + 'Config.MRIcons.alternateMRIconSize.1').val;
|
let alternateScreensaverMFRIcon1Size: boolean = true;
|
||||||
let alternateScreensaverMFRIcon2Size = getState(NSPanel_Path + 'Config.MRIcons.alternateMRIconSize.2').val;
|
let alternateScreensaverMFRIcon2Size: boolean = true;
|
||||||
|
if (existsState(NSPanel_Path + 'Config.MRIcons.alternateMRIconSize.1')) {
|
||||||
|
alternateScreensaverMFRIcon1Size = getState(NSPanel_Path + 'Config.MRIcons.alternateMRIconSize.1').val;
|
||||||
|
}
|
||||||
|
if (existsState(NSPanel_Path + 'Config.MRIcons.alternateMRIconSize.2')) {
|
||||||
|
alternateScreensaverMFRIcon2Size = getState(NSPanel_Path + 'Config.MRIcons.alternateMRIconSize.2').val;
|
||||||
|
}
|
||||||
|
|
||||||
//Alternate MRIcon Size
|
//Alternate MRIcon Size
|
||||||
if (alternateScreensaverMFRIcon1Size) {
|
if (alternateScreensaverMFRIcon1Size) {
|
||||||
payloadString += '1~';
|
payloadString += '1~';
|
||||||
|
|||||||
Reference in New Issue
Block a user