Compare commits

..

3 Commits

Author SHA1 Message Date
ticaki
80e6ffaae1 Merge db32de68e3 into e94c711f12 2024-01-17 23:15:01 +01:00
ticaki
db32de68e3 add ScreensaverEntityValue to on() 2024-01-17 23:14:54 +01:00
ticaki
f76f2ca393 tweak HandleScreensaverStatusIcons 2024-01-17 17:25:51 +01:00

View File

@@ -101,6 +101,8 @@ ReleaseNotes:
- 16.01.2024 - v4.3.3.38 Fix: joBr99#1098
- 16.01.2024 - v4.3.3.38 Types: Number of PageItems defined & HandleScreensaverStatusIcons rewritten
- 16.01.2024 - v4.3.3.38 Optimate: function SendTime()
- 17.01.2024 - v4.3.3.38 Add: ScreensaverEntityIconSelect for MRIcons is like common.states for states.
- 17.01.2024 - v4.3.3.38 Add: Changing the ScreensaverEntityValue value updates the screensaver.
Todo:
- XX.XX.XXXX - v5.0.0 Change the bottomScreensaverEntity (rolling) if more than 6 entries are defined
@@ -1431,7 +1433,7 @@ Init_Screensaver_Backckground_Color_Switch();
on({id: NSPanel_Path + 'ScreensaverInfo.bgColorIndicator', change: "ne"}, async function (obj) {
try {
bgColorScrSaver = obj.state.val;
if (bgColorScrSaver < 4) {
if (bgColorScrSaver < 6) {
HandleScreensaverUpdate();
}
} catch (err: any) {
@@ -1787,9 +1789,11 @@ on({id: [String(NSPanel_Path) + 'Relay.1',String(NSPanel_Path) + 'Relay.2'], cha
async function SubscribeMRIcons () {
try {
if (config.mrIcon1ScreensaverEntity.ScreensaverEntity != null) {
on({id: config.mrIcon1ScreensaverEntity.ScreensaverEntity, change: "ne"}, async function (obj) {
if (obj.id!.substring(0,4) == 'mqtt') {
let arr = config.mrIcon1ScreensaverEntity.ScreensaverEntity != null ? [config.mrIcon1ScreensaverEntity.ScreensaverEntity] : [];
arr = config.mrIcon1ScreensaverEntity.ScreensaverEntityValue != null ? [...arr, config.mrIcon1ScreensaverEntity.ScreensaverEntityValue] : arr;
if (arr.length > 0) {
on({id: arr, change: "ne"}, async function (obj) {
if (obj.id!.substring(0,4) == 'mqtt') {
let Button = obj.id!.split('.');
if (getState(NSPanel_Path + 'Relay.' + Button[Button.length - 1].substring(5,6)).val != obj.state.val) {
await setStateAsync(NSPanel_Path + 'Relay.' + Button[Button.length - 1].substring(5,6), obj.state.val == 'ON' ? true : false);
@@ -1799,8 +1803,10 @@ async function SubscribeMRIcons () {
}
});
}
if (config.mrIcon2ScreensaverEntity.ScreensaverEntity != null) {
on({id: config.mrIcon2ScreensaverEntity.ScreensaverEntity, change: "ne"}, async function (obj) {
arr = config.mrIcon2ScreensaverEntity.ScreensaverEntity != null ? [config.mrIcon2ScreensaverEntity.ScreensaverEntity] : [];
arr = config.mrIcon2ScreensaverEntity.ScreensaverEntityValue != null ? [...arr, config.mrIcon2ScreensaverEntity.ScreensaverEntityValue] : arr;
if (arr.length > 0) {
on({id: arr, change: "ne"}, async function (obj) {
if (obj.id!.substring(0,4) == 'mqtt') {
let Button = obj.id!.split('.');
if (getState(NSPanel_Path + 'Relay.' + Button[Button.length - 1].substring(5,6)).val != obj.state.val) {
@@ -8857,10 +8863,10 @@ function HandleScreensaverStatusIcons() : void {
&& existsState(config.mrIcon1ScreensaverEntity.ScreensaverEntity)
? getState(config.mrIcon1ScreensaverEntity.ScreensaverEntity).val
: null,
ScreensaverEntityIconOn: config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOn != null
ScreensaverEntityIconOn: config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOn
? Icons.GetIcon(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOn)
: '',
ScreensaverEntityIconOff: config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOff != null
ScreensaverEntityIconOff: config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOff
? Icons.GetIcon(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOff)
: '',
ScreensaverEntityOnColor: config.mrIcon1ScreensaverEntity.ScreensaverEntityOnColor,
@@ -8870,6 +8876,10 @@ function HandleScreensaverStatusIcons() : void {
: getState(config.mrIcon1ScreensaverEntity.ScreensaverEntityValue).val,
ScreensaverEntityValueDecimalPlace: config.mrIcon1ScreensaverEntity.ScreensaverEntityValueDecimalPlace,
ScreensaverEntityValueUnit: config.mrIcon1ScreensaverEntity.ScreensaverEntityValueUnit,
ScreensaverEntityIconSelect: config.mrIcon1ScreensaverEntity.ScreensaverEntityIconSelect
&& typeof config.mrIcon1ScreensaverEntity.ScreensaverEntityIconSelect === 'object'
? config.mrIcon1ScreensaverEntity.ScreensaverEntityIconSelect
: null,
},
@@ -8878,10 +8888,10 @@ function HandleScreensaverStatusIcons() : void {
&& existsState(config.mrIcon2ScreensaverEntity.ScreensaverEntity)
? getState(config.mrIcon2ScreensaverEntity.ScreensaverEntity).val
: null,
ScreensaverEntityIconOn: config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOn != null
ScreensaverEntityIconOn: config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOn
? Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOn)
: '',
ScreensaverEntityIconOff: config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOff != null
ScreensaverEntityIconOff: config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOff
? Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOff)
: '',
ScreensaverEntityOnColor: config.mrIcon2ScreensaverEntity.ScreensaverEntityOnColor,
@@ -8891,6 +8901,10 @@ function HandleScreensaverStatusIcons() : void {
: getState(config.mrIcon2ScreensaverEntity.ScreensaverEntityValue).val,
ScreensaverEntityValueDecimalPlace: config.mrIcon2ScreensaverEntity.ScreensaverEntityValueDecimalPlace,
ScreensaverEntityValueUnit: config.mrIcon2ScreensaverEntity.ScreensaverEntityValueUnit,
ScreensaverEntityIconSelect: config.mrIcon2ScreensaverEntity.ScreensaverEntityIconSelect
&& typeof config.mrIcon2ScreensaverEntity.ScreensaverEntityIconSelect === 'object'
? config.mrIcon2ScreensaverEntity.ScreensaverEntityIconSelect
: null,
}
}
for (const a in iconData) {
@@ -8917,8 +8931,16 @@ function HandleScreensaverStatusIcons() : void {
if (iconData[a].ScreensaverEntity != null) {
if (typeof (iconData[a].ScreensaverEntity) == 'string') {
if (Debug) log('Entity ist String', 'info')
if (iconData[a].ScreensaverEntity == 'ON') {
hwBtn1Col = iconData[a].ScreensaverEntityOnColor;
switch (String(iconData[a].ScreensaverEntity).toUpperCase()) {
case 'ON':
case 'OK':
case 'AN':
case 'YES':
case 'TRUE':
case 'ONLINE':
hwBtn1Col = iconData[a].ScreensaverEntityOnColor;
break;
default:
}
if (Debug) log('Value: ' + iconData[a].ScreensaverEntity + ' Color: ' + JSON.stringify(hwBtn1Col), 'info')
// Alles was kein String ist in Boolean umwandeln
@@ -8931,11 +8953,17 @@ function HandleScreensaverStatusIcons() : void {
}
// Icon ermitteln
if (iconData[a].ScreensaverEntity) {
if (iconData[a].ScreensaverEntityIconSelect && iconData[a].ScreensaverEntity != null) {
const icon = iconData[a].ScreensaverEntityIconSelect[iconData[a].ScreensaverEntity];
if (icon !== undefined) {
payloadString += Icons.GetIcon(icon);
if (Debug) log('SelectIcon: '+payloadString, 'info')
}
} else if (iconData[a].ScreensaverEntity) {
payloadString += iconData[a].ScreensaverEntityIconOn;
if (Debug) log('Icon if true '+payloadString, 'info')
} else {
if (iconData[a].ScreensaverEntityIconOff != null) {
if (iconData[a].ScreensaverEntityIconOff) {
payloadString += iconData[a].ScreensaverEntityIconOff;
if (Debug) log('Icon1 else true '+payloadString, 'info')
} else {
@@ -10022,6 +10050,7 @@ namespace NSPanel {
export type ScreenSaverMRElement = {
ScreensaverEntity: string | null,
ScreensaverEntityIconOn: string | null,
ScreensaverEntityIconSelect?: {[key: string]: string} | null | undefined,
ScreensaverEntityIconOff: string | null,
ScreensaverEntityValue: string | null,
ScreensaverEntityValueDecimalPlace: number | null,
@@ -10038,6 +10067,7 @@ namespace NSPanel {
ScreensaverEntityValueUnit: string | null,
ScreensaverEntityOnColor: RGB,
ScreensaverEntityOffColor: RGB
ScreensaverEntityIconSelect: {[key: string]: string} | null,
}
export type IconScaleElement = {