HandleScreensaverStatusIcons rewritten

fixed #1098
types: Number of PageItems defined
This commit is contained in:
ticaki
2024-01-16 15:55:46 +01:00
parent 9a8f53e890
commit f65ff57a95

View File

@@ -3154,9 +3154,9 @@ function findPageItem(searching: String): PageItem {
function GeneratePage(page: PageType): void { function GeneratePage(page: PageType): void {
try { try {
activePage = page; activePage = page;
setIfExists(NSPanel_Path + 'ActivePage.type', activePage!.type); setIfExists(NSPanel_Path + 'ActivePage.type', activePage.type);
setIfExists(NSPanel_Path + 'ActivePage.heading', activePage!.heading); setIfExists(NSPanel_Path + 'ActivePage.heading', activePage.heading);
setIfExists(NSPanel_Path + 'ActivePage.id0', activePage!.items[0].id); setIfExists(NSPanel_Path + 'ActivePage.id0', activePage.items[0] !== undefined ? activePage.items[0].id : '');
switch (page.type) { switch (page.type) {
case 'cardEntities': case 'cardEntities':
SendToPanel(GenerateEntitiesPage(page)); SendToPanel(GenerateEntitiesPage(page));
@@ -4696,8 +4696,9 @@ function GenerateThermoPage(page: NSPanel.PageThermo): NSPanel.Payload[] {
function unsubscribeMediaSubscriptions(): void { function unsubscribeMediaSubscriptions(): void {
for (let i = 0; i < config.pages.length; i++) { for (let i = 0; i < config.pages.length; i++) {
if (config.pages[i].type == 'cardMedia') { const page: NSPanel.PageType = config.pages[i];
let mediaID = config.pages[i].items[0].id; if (isPageMedia(page)) {
let mediaID = page.items[0].id;
unsubscribe(mediaID + '.STATE'); unsubscribe(mediaID + '.STATE');
unsubscribe(mediaID + '.ARTIST'); unsubscribe(mediaID + '.ARTIST');
unsubscribe(mediaID + '.TITLE'); unsubscribe(mediaID + '.TITLE');
@@ -4711,8 +4712,9 @@ function unsubscribeMediaSubscriptions(): void {
} }
} }
for (let i = 0; i < config.subPages.length; i++) { for (let i = 0; i < config.subPages.length; i++) {
if (config.subPages[i].type == 'cardMedia') { const page: NSPanel.PageType = config.subPages[i];
let mediaID = config.subPages[i].items[0].id; if (isPageMedia(page)) {
let mediaID = page.items[0].id;
unsubscribe(mediaID + '.STATE'); unsubscribe(mediaID + '.STATE');
unsubscribe(mediaID + '.ARTIST'); unsubscribe(mediaID + '.ARTIST');
unsubscribe(mediaID + '.TITLE'); unsubscribe(mediaID + '.TITLE');
@@ -5999,14 +6001,16 @@ function GenerateQRPage(page: NSPanel.PageQR): NSPanel.Payload[] {
function unsubscribePowerSubscriptions(): void { function unsubscribePowerSubscriptions(): void {
for (let i = 0; i < config.pages.length; i++) { for (let i = 0; i < config.pages.length; i++) {
if (config.pages[i].type == 'cardPower') { const page: NSPanel.PageType = config.pages[i];
let powerID = config.pages[i].items[0].id; if (isPagePower(page)) {
let powerID = page.items[0].id;
unsubscribe(powerID + '.ACTUAL'); unsubscribe(powerID + '.ACTUAL');
} }
} }
for (let i = 0; i < config.subPages.length; i++) { for (let i = 0; i < config.subPages.length; i++) {
if (config.subPages[i].type == 'cardPower') { const page: NSPanel.PageType = config.pages[i];
let powerID = config.subPages[i].items[0].id; if (isPagePower(page)) {
let powerID = page.items[0].id;
unsubscribe(powerID + '.ACTUAL'); unsubscribe(powerID + '.ACTUAL');
} }
} }
@@ -8844,97 +8848,155 @@ function RegisterScreensaverEntityWatcher(id: string): void {
function HandleScreensaverStatusIcons() : void { function HandleScreensaverStatusIcons() : void {
try { try {
let payloadString = ''; let payloadString = '';
let hwBtn1Col: any = config.mrIcon1ScreensaverEntity.ScreensaverEntityOffColor; const iconData: Record<'mrIcon1' | 'mrIcon2', NSPanel.ScreenSaverMRDataElement> = {
if (config.mrIcon1ScreensaverEntity.ScreensaverEntity != null) { mrIcon1: {
// Prüfung ob ScreensaverEntity vom Typ String ist ScreensaverEntity: config.mrIcon1ScreensaverEntity.ScreensaverEntity != null
if (typeof (getState(config.mrIcon1ScreensaverEntity.ScreensaverEntity).val) == 'string') { && existsState(config.mrIcon1ScreensaverEntity.ScreensaverEntity)
if (Debug) log('Entity ist String', 'info') ? getState(config.mrIcon1ScreensaverEntity.ScreensaverEntity).val
let hwBtn1: string = getState(config.mrIcon1ScreensaverEntity.ScreensaverEntity).val; : null,
if (hwBtn1 == 'ON') { ScreensaverEntityIconOn: config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOn != null
hwBtn1Col = config.mrIcon1ScreensaverEntity.ScreensaverEntityOnColor; ? Icons.GetIcon(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOn)
} : null,
if (Debug) log('Value: ' + hwBtn1 + ' Color: ' + JSON.stringify(hwBtn1Col), 'info') ScreensaverEntityIconOff: config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOff != null
? Icons.GetIcon(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOff)
: null,
ScreensaverEntityOnColor: config.mrIcon1ScreensaverEntity.ScreensaverEntityOnColor,
ScreensaverEntityOffColor: config.mrIcon1ScreensaverEntity.ScreensaverEntityOffColor,
ScreensaverEntityValue: config.mrIcon1ScreensaverEntity.ScreensaverEntityValue === null
? null
: getState(config.mrIcon1ScreensaverEntity.ScreensaverEntityValue).val,
ScreensaverEntityValueDecimalPlace: config.mrIcon1ScreensaverEntity.ScreensaverEntityValueDecimalPlace,
ScreensaverEntityValueUnit: config.mrIcon1ScreensaverEntity.ScreensaverEntityValueUnit,
// Icon ermitteln },
if (getState(config.mrIcon1ScreensaverEntity.ScreensaverEntity).val) { mrIcon2: {
payloadString += Icons.GetIcon(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOn); ScreensaverEntity: config.mrIcon2ScreensaverEntity.ScreensaverEntity != null
if (Debug) log('Icon if true '+payloadString, 'info') && existsState(config.mrIcon2ScreensaverEntity.ScreensaverEntity)
} else { ? getState(config.mrIcon2ScreensaverEntity.ScreensaverEntity).val
if (config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOff != null) { : null,
payloadString += Icons.GetIcon(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOff); ScreensaverEntityIconOn: config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOn != null
if (Debug) log('Icon else true '+payloadString, 'info') ? Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOn)
} else { : null,
payloadString += Icons.GetIcon(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOn); ScreensaverEntityIconOff: config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOff != null
if (Debug) log('Icon else false '+payloadString, 'info') ? Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOff)
} : null,
} ScreensaverEntityOnColor: config.mrIcon2ScreensaverEntity.ScreensaverEntityOnColor,
if (config.mrIcon1ScreensaverEntity.ScreensaverEntityValue != null) { ScreensaverEntityOffColor: config.mrIcon2ScreensaverEntity.ScreensaverEntityOffColor,
if (isNaN(getState(config.mrIcon1ScreensaverEntity.ScreensaverEntityValue).val) == false) { ScreensaverEntityValue: config.mrIcon2ScreensaverEntity.ScreensaverEntityValue === null
payloadString += (getState(config.mrIcon1ScreensaverEntity.ScreensaverEntityValue).val).toFixed(config.mrIcon1ScreensaverEntity.ScreensaverEntityValueDecimalPlace); ? null
payloadString += (config.mrIcon1ScreensaverEntity.ScreensaverEntityValueUnit == null) ? '' : config.mrIcon1ScreensaverEntity.ScreensaverEntityValueUnit; : getState(config.mrIcon2ScreensaverEntity.ScreensaverEntityValue).val,
if (Debug) log('Value ist eine Zahl ' + payloadString, 'info') ScreensaverEntityValueDecimalPlace: config.mrIcon2ScreensaverEntity.ScreensaverEntityValueDecimalPlace,
} else { ScreensaverEntityValueUnit: config.mrIcon2ScreensaverEntity.ScreensaverEntityValueUnit,
payloadString += getState(config.mrIcon1ScreensaverEntity.ScreensaverEntityValue).val }
if (Debug) log('Value ist keine Zahl ' + payloadString, 'info') }
} for (const a in iconData) {
if (iconData[a].ScreensaverEntityValue === null) {
switch (typeof iconData[a].ScreensaverEntityValue) {
case "string":
if (iconData[a].ScreensaverEntityValue === '' || isNaN(iconData[a].ScreensaverEntityValue)) break;
case "number":
case "bigint":
iconData[a].ScreensaverEntityValue = Number(iconData[a].ScreensaverEntityValue).toFixed(iconData[a].ScreensaverEntityValueDecimalPlace);
break;
case "boolean":
break;
case "symbol":
case "undefined":
case "object":
case "function":
iconData[a].ScreensaverEntityValue = null;
} }
payloadString += '~' + rgb_dec565(hwBtn1Col) + '~'; }
} else if (typeof (getState(config.mrIcon1ScreensaverEntity.ScreensaverEntity).val) == 'boolean') { let hwBtn1Col: RGB = iconData[a].ScreensaverEntityOffColor;
let hwBtn1: boolean = getState(config.mrIcon1ScreensaverEntity.ScreensaverEntity).val; if (iconData[a].ScreensaverEntity != null) {
if (hwBtn1) { // Prüfung ob ScreensaverEntity vom Typ String ist
hwBtn1Col = config.mrIcon1ScreensaverEntity.ScreensaverEntityOnColor; if (typeof (iconData[a].ScreensaverEntity) == 'string') {
} if (Debug) log('Entity ist String', 'info')
if (getState(config.mrIcon1ScreensaverEntity.ScreensaverEntity).val) { let hwBtn1: string = iconData[a].ScreensaverEntity;
payloadString += Icons.GetIcon(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOn); if (hwBtn1 == 'ON') {
} else { hwBtn1Col = iconData[a].ScreensaverEntityOnColor;
if (config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOff != null) {
payloadString += Icons.GetIcon(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOff);
} else {
payloadString += Icons.GetIcon(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOn);
} }
} if (Debug) log('Value: ' + hwBtn1 + ' Color: ' + JSON.stringify(hwBtn1Col), 'info')
if (config.mrIcon1ScreensaverEntity.ScreensaverEntityValue != null) {
if (isNaN(getState(config.mrIcon1ScreensaverEntity.ScreensaverEntityValue).val) == false) { // Icon ermitteln
payloadString += (getState(config.mrIcon1ScreensaverEntity.ScreensaverEntityValue).val).toFixed(config.mrIcon1ScreensaverEntity.ScreensaverEntityValueDecimalPlace); if (iconData[a].ScreensaverEntity) {
payloadString += (config.mrIcon1ScreensaverEntity.ScreensaverEntityValueUnit == null) ? '' : config.mrIcon1ScreensaverEntity.ScreensaverEntityValueUnit; payloadString += iconData[a].ScreensaverEntityIconOn;
if (Debug) log('Icon if true '+payloadString, 'info')
} else { } else {
payloadString += getState(config.mrIcon1ScreensaverEntity.ScreensaverEntityValue).val if (iconData[a].ScreensaverEntityIconOff != null) {
payloadString += iconData[a].ScreensaverEntityIconOff;
if (Debug) log('Icon1 else true '+payloadString, 'info')
} else {
payloadString += iconData[a].ScreensaverEntityIconOn;
if (Debug) log('Icon1 else false '+payloadString, 'info')
}
}
if (iconData[a].ScreensaverEntityValue != null) {
payloadString += iconData[a].ScreensaverEntityValue;
if (typeof iconData[a].ScreensaverEntityValue == 'number') {
//payloadString += iconData[a].ScreensaverEntityValue.toFixed(iconData[a].ScreensaverEntityValueDecimalPlace);
payloadString += (iconData[a].ScreensaverEntityValueUnit == null) ? '' : iconData[a].ScreensaverEntityValueUnit;
if (Debug) log('Value ist eine Zahl ' + payloadString, 'info')
} else {
if (Debug) log('Value ist keine Zahl ' + payloadString, 'info')
}
}
payloadString += '~' + rgb_dec565(hwBtn1Col) + '~';
} else if (typeof (iconData[a].ScreensaverEntity) == 'boolean') {
let hwBtn1: boolean = iconData[a].ScreensaverEntity;
if (hwBtn1) {
hwBtn1Col = iconData[a].ScreensaverEntityOnColor;
}
if (iconData[a].ScreensaverEntity) {
payloadString += iconData[a].ScreensaverEntityIconOn;
} else {
if (iconData[a].ScreensaverEntityIconOff != null) {
payloadString += iconData[a].ScreensaverEntityIconOff;
} else {
payloadString += iconData[a].ScreensaverEntityIconOn;
}
}
if (iconData[a].ScreensaverEntityValue != null) {
payloadString += iconData[a].ScreensaverEntityValue;
if (typeof iconData[a].ScreensaverEntityValue == 'number') {
//payloadString += iconData[a].ScreensaverEntityValue.toFixed(iconData[a].ScreensaverEntityValueDecimalPlace);
payloadString += (iconData[a].ScreensaverEntityValueUnit == null) ? '' : iconData[a].ScreensaverEntityValueUnit;
}
}
payloadString += '~' + rgb_dec565(hwBtn1Col) + '~';
}
} else if (iconData[a].ScreensaverEntity == null && iconData[a].ScreensaverEntityValue != null){
if(iconData[a].ScreensaverEntityOnColor != null){
hwBtn1Col = iconData[a].ScreensaverEntityOnColor;
}
if(iconData[a].ScreensaverEntityIconOn != null){
payloadString += iconData[a].ScreensaverEntityIconOn;
}
if (iconData[a].ScreensaverEntityValue != null) {
payloadString += iconData[a].ScreensaverEntityValue;
if (typeof iconData[a].ScreensaverEntityValue == 'number') {
//payloadString += (iconData[a].ScreensaverEntityValue).toFixed(iconData[a].ScreensaverEntityValueDecimalPlace);
payloadString += (iconData[a].ScreensaverEntityValueUnit == null) ? '' : iconData[a].ScreensaverEntityValueUnit;
} }
} }
payloadString += '~' + rgb_dec565(hwBtn1Col) + '~'; payloadString += '~' + rgb_dec565(hwBtn1Col) + '~';
} }
} else if (config.mrIcon1ScreensaverEntity.ScreensaverEntity == null && config.mrIcon1ScreensaverEntity.ScreensaverEntityValue != null){ else {
hwBtn1Col = Black;
if(config.mrIcon1ScreensaverEntity.ScreensaverEntityOnColor != null){ payloadString += '~~';
hwBtn1Col = config.mrIcon1ScreensaverEntity.ScreensaverEntityOnColor;
} }
if(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOn != null){
payloadString += Icons.GetIcon(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOn);
}
if (config.mrIcon1ScreensaverEntity.ScreensaverEntityValue != null) {
if (isNaN(getState(config.mrIcon1ScreensaverEntity.ScreensaverEntityValue).val) == false) {
payloadString += (getState(config.mrIcon1ScreensaverEntity.ScreensaverEntityValue).val).toFixed(config.mrIcon1ScreensaverEntity.ScreensaverEntityValueDecimalPlace);
payloadString += (config.mrIcon1ScreensaverEntity.ScreensaverEntityValueUnit == null) ? '' : config.mrIcon1ScreensaverEntity.ScreensaverEntityValueUnit;
} else {
payloadString += getState(config.mrIcon1ScreensaverEntity.ScreensaverEntityValue).val
}
}
payloadString += '~' + rgb_dec565(hwBtn1Col) + '~';
} }
else { /*let hwBtn2Col: any = config.mrIcon2ScreensaverEntity.ScreensaverEntityOffColor;
hwBtn1Col = Black; if (config.mrIcon2ScreensaverEntity.ScreensaverEntity != null && existsState(config.mrIcon2ScreensaverEntity.ScreensaverEntity)) {
payloadString += '~~'; if (typeof (iconData.mrIcon2.ScreensaverEntity) == 'string') {
} let hwBtn2: string = iconData.mrIcon2.ScreensaverEntity;
let hwBtn2Col: any = config.mrIcon2ScreensaverEntity.ScreensaverEntityOffColor;
if (config.mrIcon2ScreensaverEntity.ScreensaverEntity != null) {
if (typeof (getState(config.mrIcon2ScreensaverEntity.ScreensaverEntity).val) == 'string') {
let hwBtn2: string = getState(config.mrIcon2ScreensaverEntity.ScreensaverEntity).val;
if (hwBtn2 == 'ON') { if (hwBtn2 == 'ON') {
hwBtn2Col = config.mrIcon2ScreensaverEntity.ScreensaverEntityOnColor; hwBtn2Col = config.mrIcon2ScreensaverEntity.ScreensaverEntityOnColor;
} }
if (getState(config.mrIcon2ScreensaverEntity.ScreensaverEntity).val) { if (iconData.mrIcon2.ScreensaverEntity) {
payloadString += Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOn); payloadString += Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOn);
} else { } else {
if (config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOff != null) { if (config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOff != null) {
@@ -8943,21 +9005,22 @@ function HandleScreensaverStatusIcons() : void {
payloadString += Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOn); payloadString += Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOn);
} }
} }
if (config.mrIcon2ScreensaverEntity.ScreensaverEntityValue != null) { const value = config.mrIcon2ScreensaverEntity.ScreensaverEntityValue == null ? null : getState(config.mrIcon2ScreensaverEntity.ScreensaverEntityValue).val;
if (isNaN(getState(config.mrIcon2ScreensaverEntity.ScreensaverEntityValue).val) == false) { if (value != null) {
payloadString += (getState(config.mrIcon2ScreensaverEntity.ScreensaverEntityValue).val).toFixed(config.mrIcon2ScreensaverEntity.ScreensaverEntityValueDecimalPlace); if (value != '' && isNaN(value) == false) {
payloadString += (config.mrIcon2ScreensaverEntity.ScreensaverEntityValueUnit == null) ? '' : config.mrIcon2ScreensaverEntity.ScreensaverEntityValueUnit; payloadString += value.toFixed(config.mrIcon2ScreensaverEntity.ScreensaverEntityValueDecimalPlace);
payloadString += (config.mrIcon2ScreensaverEntity.ScreensaverEntityValueUnit == null) ? '' : config.mrIcon2ScreensaverEntity.ScreensaverEntityValueUnit;
} else { } else {
payloadString += getState(config.mrIcon2ScreensaverEntity.ScreensaverEntityValue).val payloadString += value;
} }
} }
payloadString += '~' + rgb_dec565(hwBtn2Col) + '~'; payloadString += '~' + rgb_dec565(hwBtn2Col) + '~';
} else if (typeof (getState(config.mrIcon2ScreensaverEntity.ScreensaverEntity).val) == 'boolean') { } else if (typeof (iconData.mrIcon2.ScreensaverEntity) == 'boolean') {
let hwBtn2: boolean = getState(config.mrIcon2ScreensaverEntity.ScreensaverEntity).val; let hwBtn2: boolean = iconData.mrIcon2.ScreensaverEntity;
if (hwBtn2) { if (hwBtn2) {
hwBtn2Col = config.mrIcon2ScreensaverEntity.ScreensaverEntityOnColor; hwBtn2Col = config.mrIcon2ScreensaverEntity.ScreensaverEntityOnColor;
} }
if (getState(config.mrIcon2ScreensaverEntity.ScreensaverEntity).val) { if (iconData.mrIcon2.ScreensaverEntity) {
payloadString += Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOn); payloadString += Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOn);
} else { } else {
if (config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOff != null) { if (config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOff != null) {
@@ -8966,14 +9029,15 @@ function HandleScreensaverStatusIcons() : void {
payloadString += Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOn); payloadString += Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOn);
} }
} }
if (config.mrIcon2ScreensaverEntity.ScreensaverEntityValue != null) { const value = config.mrIcon2ScreensaverEntity.ScreensaverEntityValue == null ? null : getState(config.mrIcon2ScreensaverEntity.ScreensaverEntityValue).val;
if (isNaN(getState(config.mrIcon2ScreensaverEntity.ScreensaverEntityValue).val) == false) { if (value != null) {
payloadString += (getState(config.mrIcon2ScreensaverEntity.ScreensaverEntityValue).val).toFixed(config.mrIcon2ScreensaverEntity.ScreensaverEntityValueDecimalPlace); if (value != '' && isNaN(value) == false) {
payloadString += value.toFixed(config.mrIcon2ScreensaverEntity.ScreensaverEntityValueDecimalPlace);
payloadString += (config.mrIcon2ScreensaverEntity.ScreensaverEntityValueUnit == null) ? '' : config.mrIcon2ScreensaverEntity.ScreensaverEntityValueUnit; payloadString += (config.mrIcon2ScreensaverEntity.ScreensaverEntityValueUnit == null) ? '' : config.mrIcon2ScreensaverEntity.ScreensaverEntityValueUnit;
} else { } else {
payloadString += getState(config.mrIcon2ScreensaverEntity.ScreensaverEntityValue).val payloadString += value;
} }
} }
payloadString += '~' + rgb_dec565(hwBtn2Col) + '~'; payloadString += '~' + rgb_dec565(hwBtn2Col) + '~';
} }
} else if (config.mrIcon2ScreensaverEntity.ScreensaverEntity == null && config.mrIcon2ScreensaverEntity.ScreensaverEntityValue != null){ } else if (config.mrIcon2ScreensaverEntity.ScreensaverEntity == null && config.mrIcon2ScreensaverEntity.ScreensaverEntityValue != null){
@@ -8986,20 +9050,21 @@ function HandleScreensaverStatusIcons() : void {
payloadString += Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOn); payloadString += Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOn);
} }
if (config.mrIcon2ScreensaverEntity.ScreensaverEntityValue != null) { const value = config.mrIcon2ScreensaverEntity.ScreensaverEntityValue == null ? null : getState(config.mrIcon2ScreensaverEntity.ScreensaverEntityValue).val;
if (isNaN(getState(config.mrIcon2ScreensaverEntity.ScreensaverEntityValue).val) == false) { if (value != null) {
payloadString += (getState(config.mrIcon2ScreensaverEntity.ScreensaverEntityValue).val).toFixed(config.mrIcon2ScreensaverEntity.ScreensaverEntityValueDecimalPlace); if (value != '' && isNaN(value) == false) {
payloadString += (config.mrIcon2ScreensaverEntity.ScreensaverEntityValueUnit == null) ? '' : config.mrIcon2ScreensaverEntity.ScreensaverEntityValueUnit; payloadString += value.toFixed(config.mrIcon2ScreensaverEntity.ScreensaverEntityValueDecimalPlace);
} else { payloadString += (config.mrIcon2ScreensaverEntity.ScreensaverEntityValueUnit == null) ? '' : config.mrIcon2ScreensaverEntity.ScreensaverEntityValueUnit;
payloadString += getState(config.mrIcon2ScreensaverEntity.ScreensaverEntityValue).val } else {
} payloadString += value;
} }
}
payloadString += '~' + rgb_dec565(hwBtn2Col) + '~'; payloadString += '~' + rgb_dec565(hwBtn2Col) + '~';
} else { } else {
hwBtn2Col = Black; hwBtn2Col = Black;
payloadString += '~~'; payloadString += '~~';
} }
*/
let alternateScreensaverMFRIcon1Size = getState(NSPanel_Path + 'Config.MRIcons.alternateMRIconSize.1').val let alternateScreensaverMFRIcon1Size = getState(NSPanel_Path + 'Config.MRIcons.alternateMRIconSize.1').val
let alternateScreensaverMFRIcon2Size = getState(NSPanel_Path + 'Config.MRIcons.alternateMRIconSize.2').val let alternateScreensaverMFRIcon2Size = getState(NSPanel_Path + 'Config.MRIcons.alternateMRIconSize.2').val
//Alternate MRIcon Size //Alternate MRIcon Size
@@ -9811,6 +9876,13 @@ function isPageThermoItem(F: PageItem | NSPanel.PageThermoItem):F is NSPanel.Pag
return 'popupThermoMode1' in F; return 'popupThermoMode1' in F;
} }
function isPageMedia(F: NSPanel.PageType | NSPanel.PageMedia):F is NSPanel.PageMedia {
return F.type == 'cardMedia';
}
function isPagePower(F: NSPanel.PageType | NSPanel.PagePower):F is NSPanel.PagePower {
return F.type == 'cardPower';
}
namespace NSPanel { namespace NSPanel {
export type PopupType = 'popupFan' | 'popupInSel' | 'popupLight' | 'popupLightNew' | 'popupNotify' | 'popupShutter' | 'popupThermo' | 'popupTimer' export type PopupType = 'popupFan' | 'popupInSel' | 'popupLight' | 'popupLightNew' | 'popupNotify' | 'popupShutter' | 'popupThermo' | 'popupTimer'
@@ -9870,48 +9942,49 @@ namespace NSPanel {
export type PageEntities = { export type PageEntities = {
type: 'cardEntities', type: 'cardEntities',
items: PageItem[], items: [PageItem?, PageItem?, PageItem?, PageItem?, PageItem?],
} & PageBaseType } & PageBaseType
export type PageGrid = { export type PageGrid = {
type: 'cardGrid', type: 'cardGrid',
items: PageItem[], items: [PageItem?, PageItem?, PageItem?, PageItem?, PageItem?, PageItem?],
} & PageBaseType } & PageBaseType
export type PageGrid2 = { export type PageGrid2 = {
type: 'cardGrid2', type: 'cardGrid2',
items: PageItem[], items: [PageItem?, PageItem?, PageItem?, PageItem?, PageItem?, PageItem?, PageItem?, PageItem?],
} & PageBaseType } & PageBaseType
export type PageThermo = { export type PageThermo = {
type: 'cardThermo', type: 'cardThermo',
items: PageThermoItem[], items: [PageThermoItem],
} & Omit<PageBaseType, 'useColor'> } & Omit<PageBaseType, 'useColor'>
export type PageMedia = { export type PageMedia = {
type: 'cardMedia', type: 'cardMedia',
items: PageMediaItem[], items: [PageMediaItem],
} & Omit<PageBaseType, 'useColor' | 'autoCreateAlias'> } & Omit<PageBaseType, 'useColor' | 'autoCreateAlias'>
export type PageAlarm = { export type PageAlarm = {
type: 'cardAlarm', type: 'cardAlarm',
items: PageItem[], items: [PageItem],
} & Omit<PageBaseType, 'useColor'> } & Omit<PageBaseType, 'useColor'>
export type PageUnlock = { export type PageUnlock = {
type: 'cardUnlock', type: 'cardUnlock',
items: PageItem[], items: [PageItem],
} & Omit<PageBaseType, 'useColor'> & Partial<Pick<PageBaseType, 'useColor'>> } & Omit<PageBaseType, 'useColor'> & Partial<Pick<PageBaseType, 'useColor'>>
export type PageQR = { export type PageQR = {
type: 'cardQR', type: 'cardQR',
items: PageItem[], items: [PageItem],
} & Omit<PageBaseType, 'useColor'> } & Omit<PageBaseType, 'useColor'>
export type PagePower = { export type PagePower = {
type: 'cardPower', type: 'cardPower',
items: PageItem[], items: [PageItem],
} & Omit<PageBaseType, 'useColor'> } & Omit<PageBaseType, 'useColor'>
export type PageChart = { export type PageChart = {
@@ -10060,6 +10133,16 @@ namespace NSPanel {
ScreensaverEntityOnColor: RGB, ScreensaverEntityOnColor: RGB,
ScreensaverEntityOffColor: RGB ScreensaverEntityOffColor: RGB
} }
export type ScreenSaverMRDataElement = {
ScreensaverEntity: string | number | boolean | null,
ScreensaverEntityIconOn: string | null,
ScreensaverEntityIconOff: string | null,
ScreensaverEntityValue: string | number | boolean | null,
ScreensaverEntityValueDecimalPlace: number | null,
ScreensaverEntityValueUnit: string | null,
ScreensaverEntityOnColor: RGB,
ScreensaverEntityOffColor: RGB
}
export type IconScaleElement = { export type IconScaleElement = {
val_min:number, val_min:number,