mirror of
https://github.com/joBr99/nspanel-lovelace-ui.git
synced 2025-12-21 23:14:25 +01:00
Funktion GeneratePowerPage angepasst. Demomodus aktualisiert, Issue 801 gefixt, Beschreibung der Rule2 angepasst, Beschreibung config / Button1: angepasst (String), GetIconColor scale(100- ... angepasst
This commit is contained in:
@@ -118,6 +118,7 @@ ReleaseNotes:
|
|||||||
- 04.03.2023 - v4.0.4 Fix bExit with popupLight, popup....
|
- 04.03.2023 - v4.0.4 Fix bExit with popupLight, popup....
|
||||||
- 07.03.2023 - v4.0.4.1 Extend Configuration Options for Physical Buttons to enable direct state manipulation - by bembelstemmer
|
- 07.03.2023 - v4.0.4.1 Extend Configuration Options for Physical Buttons to enable direct state manipulation - by bembelstemmer
|
||||||
- 10.03.2023 - v4.0.4.2 Fix iconColor by 100% Brightness
|
- 10.03.2023 - v4.0.4.2 Fix iconColor by 100% Brightness
|
||||||
|
- xx.03.2023 - v4.0.4.3 Fix Funktion GeneratePowerPage inkl. DemoModus
|
||||||
|
|
||||||
***********************************************************************************************************
|
***********************************************************************************************************
|
||||||
* Für die Erstellung der Aliase durch das Skript, muss in der JavaScript Instanz "setObect" gesetzt sein! *
|
* Für die Erstellung der Aliase durch das Skript, muss in der JavaScript Instanz "setObect" gesetzt sein! *
|
||||||
@@ -126,7 +127,7 @@ ReleaseNotes:
|
|||||||
Wenn Rule definiert, dann können die Hardware-Tasten ebenfalls für Seitensteuerung (dann nicht mehr als Relais) genutzt werden
|
Wenn Rule definiert, dann können die Hardware-Tasten ebenfalls für Seitensteuerung (dann nicht mehr als Relais) genutzt werden
|
||||||
|
|
||||||
Tasmota Konsole:
|
Tasmota Konsole:
|
||||||
Rule2 on Button1#state do Publish %topic%/%prefix%/RESULT {"CustomRecv":"event,button1"} endon on Button2#state do Publish %topic%/%prefix%/RESULT {"CustomRecv":"event,button2"} endon
|
Rule2 on Button1#state do Publish %topic%/tele/RESULT {"CustomRecv":"event,button1"} endon on Button2#state do Publish %topic%/tele/RESULT {"CustomRecv":"event,button2"} endon
|
||||||
Rule2 1 (Rule aktivieren)
|
Rule2 1 (Rule aktivieren)
|
||||||
Rule2 0 (Rule deaktivieren)
|
Rule2 0 (Rule deaktivieren)
|
||||||
|
|
||||||
@@ -369,6 +370,7 @@ let CardPowerExample = <PagePower>
|
|||||||
'useColor': true,
|
'useColor': true,
|
||||||
'items': [
|
'items': [
|
||||||
<PageItem>{ id: 'alias.0.NSPanel_1.Power.PowerCard' },
|
<PageItem>{ id: 'alias.0.NSPanel_1.Power.PowerCard' },
|
||||||
|
// <PageItem>{ } // aktivieren für Demomodus der PowerCard, dafür ersten PageItem auskommentieren
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1277,13 +1279,13 @@ export const config = <Config> {
|
|||||||
|
|
||||||
],
|
],
|
||||||
button1: {
|
button1: {
|
||||||
mode: null, // Mögliche Werte wenn Rule2 definiert: page, toggle, set - Wenn nicht definiert --> mode: null
|
mode: null, // Mögliche Werte wenn Rule2 definiert: 'page', 'toggle', 'set' - Wenn nicht definiert --> mode: null
|
||||||
page: null, // Zielpage - Verwendet wenn mode = page (bisher button1Page)
|
page: null, // Zielpage - Verwendet wenn mode = page (bisher button1Page)
|
||||||
entity: null, // Zielentity - Verwendet wenn mode = set oder toggle
|
entity: null, // Zielentity - Verwendet wenn mode = set oder toggle
|
||||||
setValue: null // Zielwert - Verwendet wenn mode = set
|
setValue: null // Zielwert - Verwendet wenn mode = set
|
||||||
},
|
},
|
||||||
button2: {
|
button2: {
|
||||||
mode: null, // Mögliche Werte wenn Rule2 definiert: page, toggle, set - Wenn nicht definiert --> mode: null
|
mode: null, // Mögliche Werte wenn Rule2 definiert: 'page', 'toggle', 'set' - Wenn nicht definiert --> mode: null
|
||||||
page: null, // Zielpage - Verwendet wenn mode = page (bisher button2Page)
|
page: null, // Zielpage - Verwendet wenn mode = page (bisher button2Page)
|
||||||
entity: null, // Zielentity - Verwendet wenn mode = set oder toggle
|
entity: null, // Zielentity - Verwendet wenn mode = set oder toggle
|
||||||
setValue: null // Zielwert - Verwendet wenn mode = set
|
setValue: null // Zielwert - Verwendet wenn mode = set
|
||||||
@@ -3741,7 +3743,7 @@ function GetIconColor(pageItem: PageItem, value: (boolean | number), useColors:
|
|||||||
Interpolate(
|
Interpolate(
|
||||||
pageItem.offColor !== undefined ? pageItem.offColor : config.defaultOffColor,
|
pageItem.offColor !== undefined ? pageItem.offColor : config.defaultOffColor,
|
||||||
pageItem.onColor !== undefined ? pageItem.onColor : config.defaultOnColor,
|
pageItem.onColor !== undefined ? pageItem.onColor : config.defaultOnColor,
|
||||||
scale(value, minValue, maxValue, 0, 1)
|
scale(100 - value, minValue, maxValue, 0, 1)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -4953,34 +4955,31 @@ function subscribePowerSubscriptions(id: string): void {
|
|||||||
|
|
||||||
function GeneratePowerPage(page: PagePower): Payload[] {
|
function GeneratePowerPage(page: PagePower): Payload[] {
|
||||||
try {
|
try {
|
||||||
activePage = page;
|
let obj:object;
|
||||||
|
let demoMode = false;
|
||||||
let id = page.items[0].id;
|
if (page.items[0].id == undefined){
|
||||||
|
|
||||||
if (Debug) {
|
|
||||||
console.log(page.items[0].id);
|
|
||||||
}
|
|
||||||
|
|
||||||
unsubscribePowerSubscriptions();
|
|
||||||
subscribePowerSubscriptions(id);
|
|
||||||
|
|
||||||
let demoMode = false;
|
|
||||||
|
|
||||||
try {
|
|
||||||
id = page.items[0].id
|
|
||||||
} catch (err) {
|
|
||||||
console.log("Kein PageItem definiert - cardPower Demo-Modus aktiv");
|
console.log("Kein PageItem definiert - cardPower Demo-Modus aktiv");
|
||||||
demoMode = true;
|
demoMode = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
activePage = page;
|
||||||
|
if (Debug) {
|
||||||
|
console.log('GeneratePowerPage PageItem.id = ' + page.items[0].id);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
let heading = 'cardPower Example';
|
let heading = 'cardPower Example';
|
||||||
if (demoMode != true) {
|
if (demoMode != true) {
|
||||||
|
let id = page.items[0].id
|
||||||
|
unsubscribePowerSubscriptions();
|
||||||
|
subscribePowerSubscriptions(id);
|
||||||
|
|
||||||
let o = getObject(id);
|
let o = getObject(id);
|
||||||
heading = page.heading !== undefined ? page.heading : o.common.name.de;
|
heading = page.heading !== undefined ? page.heading : o.common.name.de;
|
||||||
|
|
||||||
|
obj = JSON.parse((getState(page.items[0].id + '.ACTUAL').val));
|
||||||
}
|
}
|
||||||
|
|
||||||
const obj = JSON.parse((getState(page.items[0].id + '.ACTUAL').val));
|
|
||||||
|
|
||||||
let out_msgs: Array<Payload> = [];
|
let out_msgs: Array<Payload> = [];
|
||||||
out_msgs.push({ payload: 'pageType~cardPower' });
|
out_msgs.push({ payload: 'pageType~cardPower' });
|
||||||
|
|
||||||
@@ -4995,7 +4994,7 @@ function GeneratePowerPage(page: PagePower): Payload[] {
|
|||||||
let homeIconColor = 0;
|
let homeIconColor = 0;
|
||||||
if (!demoMode) {
|
if (!demoMode) {
|
||||||
for (let obji = 0; obji < 7; obji++) {
|
for (let obji = 0; obji < 7; obji++) {
|
||||||
array_icon_color[obji + 1] = arrayColorScale[obj[obji].iconColor];
|
array_icon_color[obji + 1] = arrayColorScale[obj[obji].iconColor !== '' ? obj[obji].iconColor : 0];
|
||||||
array_icon[obji + 1] = obj[obji].icon;
|
array_icon[obji + 1] = obj[obji].icon;
|
||||||
array_powerspeed[obji + 1] = obj[obji].speed;
|
array_powerspeed[obji + 1] = obj[obji].speed;
|
||||||
array_powerstate[obji + 1] = obj[obji].value + ' ' + obj[obji].unit ;
|
array_powerstate[obji + 1] = obj[obji].value + ' ' + obj[obji].unit ;
|
||||||
@@ -5007,7 +5006,7 @@ function GeneratePowerPage(page: PagePower): Payload[] {
|
|||||||
|
|
||||||
let power_string : any = '';
|
let power_string : any = '';
|
||||||
|
|
||||||
for (let i = 1; i < 7; i++ ) {
|
for (let i = 0; i < 6; i++ ) {
|
||||||
power_string = power_string + '~'; // type (ignored)
|
power_string = power_string + '~'; // type (ignored)
|
||||||
power_string = power_string + '~'; // intNameEntity (ignored)
|
power_string = power_string + '~'; // intNameEntity (ignored)
|
||||||
power_string = power_string + Icons.GetIcon(array_icon[i+1]) + '~'; // icon~
|
power_string = power_string + Icons.GetIcon(array_icon[i+1]) + '~'; // icon~
|
||||||
@@ -5015,10 +5014,12 @@ function GeneratePowerPage(page: PagePower): Payload[] {
|
|||||||
power_string = power_string + '~'; // display (ignored in TS)
|
power_string = power_string + '~'; // display (ignored in TS)
|
||||||
power_string = power_string + array_powerstate[i+1] + '~'; // optionalValue~
|
power_string = power_string + array_powerstate[i+1] + '~'; // optionalValue~
|
||||||
power_string = power_string + array_powerspeed[i+1] + '~'; // speed~
|
power_string = power_string + array_powerspeed[i+1] + '~'; // speed~
|
||||||
|
|
||||||
|
if (Debug) console.log(power_string);
|
||||||
}
|
}
|
||||||
|
|
||||||
power_string = power_string.substring(0, power_string.length - 1);
|
power_string = power_string.substring(0, power_string.length - 1);
|
||||||
|
|
||||||
out_msgs.push({
|
out_msgs.push({
|
||||||
payload: 'entityUpd~' + //entityUpd~*
|
payload: 'entityUpd~' + //entityUpd~*
|
||||||
heading + '~' + //internalNameEntity*~*
|
heading + '~' + //internalNameEntity*~*
|
||||||
@@ -5042,13 +5043,13 @@ function GeneratePowerPage(page: PagePower): Payload[] {
|
|||||||
// 1st to 6th Item
|
// 1st to 6th Item
|
||||||
power_string
|
power_string
|
||||||
});
|
});
|
||||||
|
if (Debug) console.log(out_msgs);
|
||||||
return out_msgs;
|
return out_msgs;
|
||||||
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.warn('function GeneratePowerPage: ' + err.message);
|
console.warn('function GeneratePowerPage: ' + err.message);
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
function GenerateChartPage(page: PageChart): Payload[] {
|
function GenerateChartPage(page: PageChart): Payload[] {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -118,7 +118,8 @@ ReleaseNotes:
|
|||||||
- 04.03.2023 - v4.0.4 Fix bExit with popupLight, popup....
|
- 04.03.2023 - v4.0.4 Fix bExit with popupLight, popup....
|
||||||
- 07.03.2023 - v4.0.4.1 Extend Configuration Options for Physical Buttons to enable direct state manipulation - by bembelstemmer
|
- 07.03.2023 - v4.0.4.1 Extend Configuration Options for Physical Buttons to enable direct state manipulation - by bembelstemmer
|
||||||
- 10.03.2023 - v4.0.4.2 Fix iconColor by 100% Brightness
|
- 10.03.2023 - v4.0.4.2 Fix iconColor by 100% Brightness
|
||||||
|
- xx.03.2023 - v4.0.4.3 Fix Funktion GeneratePowerPage inkl. DemoModus
|
||||||
|
|
||||||
***********************************************************************************************************
|
***********************************************************************************************************
|
||||||
* Für die Erstellung der Aliase durch das Skript, muss in der JavaScript Instanz "setObect" gesetzt sein! *
|
* Für die Erstellung der Aliase durch das Skript, muss in der JavaScript Instanz "setObect" gesetzt sein! *
|
||||||
***********************************************************************************************************
|
***********************************************************************************************************
|
||||||
@@ -126,7 +127,7 @@ ReleaseNotes:
|
|||||||
Wenn Rule definiert, dann können die Hardware-Tasten ebenfalls für Seitensteuerung (dann nicht mehr als Relais) genutzt werden
|
Wenn Rule definiert, dann können die Hardware-Tasten ebenfalls für Seitensteuerung (dann nicht mehr als Relais) genutzt werden
|
||||||
|
|
||||||
Tasmota Konsole:
|
Tasmota Konsole:
|
||||||
Rule2 on Button1#state do Publish %topic%/%prefix%/RESULT {"CustomRecv":"event,button1"} endon on Button2#state do Publish %topic%/%prefix%/RESULT {"CustomRecv":"event,button2"} endon
|
Rule2 on Button1#state do Publish %topic%/tele/RESULT {"CustomRecv":"event,button1"} endon on Button2#state do Publish %topic%/tele/RESULT {"CustomRecv":"event,button2"} endon
|
||||||
Rule2 1 (Rule aktivieren)
|
Rule2 1 (Rule aktivieren)
|
||||||
Rule2 0 (Rule deaktivieren)
|
Rule2 0 (Rule deaktivieren)
|
||||||
|
|
||||||
@@ -765,13 +766,13 @@ export const config = <Config> {
|
|||||||
NSPanel_FirmwareNextion, //Auto-Alias Service Page
|
NSPanel_FirmwareNextion, //Auto-Alias Service Page
|
||||||
],
|
],
|
||||||
button1: {
|
button1: {
|
||||||
mode: null, // Mögliche Werte wenn Rule2 definiert: page, toggle, set - Wenn nicht definiert --> mode: null
|
mode: null, // Mögliche Werte wenn Rule2 definiert: 'page', 'toggle', 'set' - Wenn nicht definiert --> mode: null
|
||||||
page: null, // Zielpage - Verwendet wenn mode = page (bisher button1Page)
|
page: null, // Zielpage - Verwendet wenn mode = page (bisher button1Page)
|
||||||
entity: null, // Zielentity - Verwendet wenn mode = set oder toggle
|
entity: null, // Zielentity - Verwendet wenn mode = set oder toggle
|
||||||
setValue: null // Zielwert - Verwendet wenn mode = set
|
setValue: null // Zielwert - Verwendet wenn mode = set
|
||||||
},
|
},
|
||||||
button2: {
|
button2: {
|
||||||
mode: null, // Mögliche Werte wenn Rule2 definiert: page, toggle, set - Wenn nicht definiert --> mode: null
|
mode: null, // Mögliche Werte wenn Rule2 definiert: 'page', 'toggle', 'set' - Wenn nicht definiert --> mode: null
|
||||||
page: null, // Zielpage - Verwendet wenn mode = page (bisher button2Page)
|
page: null, // Zielpage - Verwendet wenn mode = page (bisher button2Page)
|
||||||
entity: null, // Zielentity - Verwendet wenn mode = set oder toggle
|
entity: null, // Zielentity - Verwendet wenn mode = set oder toggle
|
||||||
setValue: null // Zielwert - Verwendet wenn mode = set
|
setValue: null // Zielwert - Verwendet wenn mode = set
|
||||||
@@ -3229,7 +3230,7 @@ function GetIconColor(pageItem: PageItem, value: (boolean | number), useColors:
|
|||||||
Interpolate(
|
Interpolate(
|
||||||
pageItem.offColor !== undefined ? pageItem.offColor : config.defaultOffColor,
|
pageItem.offColor !== undefined ? pageItem.offColor : config.defaultOffColor,
|
||||||
pageItem.onColor !== undefined ? pageItem.onColor : config.defaultOnColor,
|
pageItem.onColor !== undefined ? pageItem.onColor : config.defaultOnColor,
|
||||||
scale(value, minValue, maxValue, 0, 1)
|
scale(100 - value, minValue, maxValue, 0, 1)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -4441,34 +4442,31 @@ function subscribePowerSubscriptions(id: string): void {
|
|||||||
|
|
||||||
function GeneratePowerPage(page: PagePower): Payload[] {
|
function GeneratePowerPage(page: PagePower): Payload[] {
|
||||||
try {
|
try {
|
||||||
activePage = page;
|
let obj:object;
|
||||||
|
let demoMode = false;
|
||||||
let id = page.items[0].id;
|
if (page.items[0].id == undefined){
|
||||||
|
|
||||||
if (Debug) {
|
|
||||||
console.log(page.items[0].id);
|
|
||||||
}
|
|
||||||
|
|
||||||
unsubscribePowerSubscriptions();
|
|
||||||
subscribePowerSubscriptions(id);
|
|
||||||
|
|
||||||
let demoMode = false;
|
|
||||||
|
|
||||||
try {
|
|
||||||
id = page.items[0].id
|
|
||||||
} catch (err) {
|
|
||||||
console.log("Kein PageItem definiert - cardPower Demo-Modus aktiv");
|
console.log("Kein PageItem definiert - cardPower Demo-Modus aktiv");
|
||||||
demoMode = true;
|
demoMode = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
activePage = page;
|
||||||
|
if (Debug) {
|
||||||
|
console.log('GeneratePowerPage PageItem.id = ' + page.items[0].id);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
let heading = 'cardPower Example';
|
let heading = 'cardPower Example';
|
||||||
if (demoMode != true) {
|
if (demoMode != true) {
|
||||||
|
let id = page.items[0].id
|
||||||
|
unsubscribePowerSubscriptions();
|
||||||
|
subscribePowerSubscriptions(id);
|
||||||
|
|
||||||
let o = getObject(id);
|
let o = getObject(id);
|
||||||
heading = page.heading !== undefined ? page.heading : o.common.name.de;
|
heading = page.heading !== undefined ? page.heading : o.common.name.de;
|
||||||
|
|
||||||
|
obj = JSON.parse((getState(page.items[0].id + '.ACTUAL').val));
|
||||||
}
|
}
|
||||||
|
|
||||||
const obj = JSON.parse((getState(page.items[0].id + '.ACTUAL').val));
|
|
||||||
|
|
||||||
let out_msgs: Array<Payload> = [];
|
let out_msgs: Array<Payload> = [];
|
||||||
out_msgs.push({ payload: 'pageType~cardPower' });
|
out_msgs.push({ payload: 'pageType~cardPower' });
|
||||||
|
|
||||||
@@ -4483,7 +4481,7 @@ function GeneratePowerPage(page: PagePower): Payload[] {
|
|||||||
let homeIconColor = 0;
|
let homeIconColor = 0;
|
||||||
if (!demoMode) {
|
if (!demoMode) {
|
||||||
for (let obji = 0; obji < 7; obji++) {
|
for (let obji = 0; obji < 7; obji++) {
|
||||||
array_icon_color[obji + 1] = arrayColorScale[obj[obji].iconColor];
|
array_icon_color[obji + 1] = arrayColorScale[obj[obji].iconColor !== '' ? obj[obji].iconColor : 0];
|
||||||
array_icon[obji + 1] = obj[obji].icon;
|
array_icon[obji + 1] = obj[obji].icon;
|
||||||
array_powerspeed[obji + 1] = obj[obji].speed;
|
array_powerspeed[obji + 1] = obj[obji].speed;
|
||||||
array_powerstate[obji + 1] = obj[obji].value + ' ' + obj[obji].unit ;
|
array_powerstate[obji + 1] = obj[obji].value + ' ' + obj[obji].unit ;
|
||||||
@@ -4495,7 +4493,7 @@ function GeneratePowerPage(page: PagePower): Payload[] {
|
|||||||
|
|
||||||
let power_string : any = '';
|
let power_string : any = '';
|
||||||
|
|
||||||
for (let i = 1; i < 7; i++ ) {
|
for (let i = 0; i < 6; i++ ) {
|
||||||
power_string = power_string + '~'; // type (ignored)
|
power_string = power_string + '~'; // type (ignored)
|
||||||
power_string = power_string + '~'; // intNameEntity (ignored)
|
power_string = power_string + '~'; // intNameEntity (ignored)
|
||||||
power_string = power_string + Icons.GetIcon(array_icon[i+1]) + '~'; // icon~
|
power_string = power_string + Icons.GetIcon(array_icon[i+1]) + '~'; // icon~
|
||||||
@@ -4503,10 +4501,12 @@ function GeneratePowerPage(page: PagePower): Payload[] {
|
|||||||
power_string = power_string + '~'; // display (ignored in TS)
|
power_string = power_string + '~'; // display (ignored in TS)
|
||||||
power_string = power_string + array_powerstate[i+1] + '~'; // optionalValue~
|
power_string = power_string + array_powerstate[i+1] + '~'; // optionalValue~
|
||||||
power_string = power_string + array_powerspeed[i+1] + '~'; // speed~
|
power_string = power_string + array_powerspeed[i+1] + '~'; // speed~
|
||||||
|
|
||||||
|
if (Debug) console.log(power_string);
|
||||||
}
|
}
|
||||||
|
|
||||||
power_string = power_string.substring(0, power_string.length - 1);
|
power_string = power_string.substring(0, power_string.length - 1);
|
||||||
|
|
||||||
out_msgs.push({
|
out_msgs.push({
|
||||||
payload: 'entityUpd~' + //entityUpd~*
|
payload: 'entityUpd~' + //entityUpd~*
|
||||||
heading + '~' + //internalNameEntity*~*
|
heading + '~' + //internalNameEntity*~*
|
||||||
@@ -4530,13 +4530,13 @@ function GeneratePowerPage(page: PagePower): Payload[] {
|
|||||||
// 1st to 6th Item
|
// 1st to 6th Item
|
||||||
power_string
|
power_string
|
||||||
});
|
});
|
||||||
|
if (Debug) console.log(out_msgs);
|
||||||
return out_msgs;
|
return out_msgs;
|
||||||
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.warn('function GeneratePowerPage: ' + err.message);
|
console.warn('function GeneratePowerPage: ' + err.message);
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
function GenerateChartPage(page: PageChart): Payload[] {
|
function GenerateChartPage(page: PageChart): Payload[] {
|
||||||
try {
|
try {
|
||||||
|
|||||||
Reference in New Issue
Block a user