mirror of
https://github.com/joBr99/nspanel-lovelace-ui.git
synced 2025-12-21 15:04:24 +01:00
DEV 4.4.0.4 - Update NSPanelTs.ts
Developer Version - New Feature: hiddenCards
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
/*-----------------------------------------------------------------------
|
/*-----------------------------------------------------------------------
|
||||||
TypeScript v4.4.0.3 zur Steuerung des SONOFF NSPanel mit dem ioBroker by @Armilar / @TT-Tom / @ticaki / @Britzelpuf / @Sternmiere / @ravenS0ne
|
TypeScript v4.4.0.4 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.1.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
|
||||||
icon_mapping.ts: https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/icon_mapping.ts (TypeScript muss in global liegen)
|
icon_mapping.ts: https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/icon_mapping.ts (TypeScript muss in global liegen)
|
||||||
@@ -122,9 +122,10 @@ ReleaseNotes:
|
|||||||
- 19.05.2024 - v4.4.0.1 TFT 53 / 4.4.0
|
- 19.05.2024 - v4.4.0.1 TFT 53 / 4.4.0
|
||||||
- 13.06.2024 - v4.4.0.2 Calculated energy consumption in relation to dimming mode and relay state (not the energy consumption of the outputs)
|
- 13.06.2024 - v4.4.0.2 Calculated energy consumption in relation to dimming mode and relay state (not the energy consumption of the outputs)
|
||||||
- 13.06.2024 - v4.4.0.3 Check prefix '.tele.' in config.NSPanelReceiveTopic
|
- 13.06.2024 - v4.4.0.3 Check prefix '.tele.' in config.NSPanelReceiveTopic
|
||||||
|
- 13.09.2024 - v4.4.0.4 New Feature: Hidden Carts
|
||||||
|
|
||||||
Todo:
|
Todo:
|
||||||
- XX.XX.2024 - v5.0.0 ioBroker Adapter
|
- XX.12.2024 - v5.0.0 ioBroker Adapter
|
||||||
|
|
||||||
***************************************************************************************************************
|
***************************************************************************************************************
|
||||||
* DE: Für die Erstellung der Aliase durch das Skript, muss in der JavaScript Instanz "setObject" gesetzt sein! *
|
* DE: Für die Erstellung der Aliase durch das Skript, muss in der JavaScript Instanz "setObject" gesetzt sein! *
|
||||||
@@ -990,7 +991,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.3';
|
const scriptVersion: string = 'v4.4.0.4';
|
||||||
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;
|
||||||
@@ -1003,6 +1004,7 @@ 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 buttonToggleState: {[key: string]: boolean} = {};
|
let buttonToggleState: {[key: string]: boolean} = {};
|
||||||
|
|
||||||
@@ -1259,7 +1261,7 @@ 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 = [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.3.3','4.4.0','4.5.0','4.6.0'];
|
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'];
|
||||||
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 });
|
||||||
@@ -1358,6 +1360,10 @@ async function InitConfigParameters() {
|
|||||||
setObject(AliasPath + 'Config.temperatureUnitNumber', {type: 'channel', common: {role: 'buttonSensor', name:'temperatureUnitNumber'}, native: {}});
|
setObject(AliasPath + 'Config.temperatureUnitNumber', {type: 'channel', common: {role: 'buttonSensor', name:'temperatureUnitNumber'}, native: {}});
|
||||||
await createAliasAsync(AliasPath + 'Config.temperatureUnitNumber.VALUE', NSPanel_Path + 'Config.temperatureUnitNumber', true, <iobJS.StateCommon>{ type: 'number', role: 'state', name: 'VALUE' });
|
await createAliasAsync(AliasPath + 'Config.temperatureUnitNumber.VALUE', NSPanel_Path + 'Config.temperatureUnitNumber', true, <iobJS.StateCommon>{ type: 'number', role: 'state', name: 'VALUE' });
|
||||||
}
|
}
|
||||||
|
// Trigger DP for hiddenCards (with hiddenByTrigger)
|
||||||
|
if (existsObject(NSPanel_Path + 'Config.hiddenCards') == false) {
|
||||||
|
await createStateAsync(NSPanel_Path + 'Config.hiddenCards', false, { type: 'boolean', write: true });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch (err: any) {
|
} catch (err: any) {
|
||||||
log('error at function InitConfigParameters: ' + err.message, 'warn');
|
log('error at function InitConfigParameters: ' + err.message, 'warn');
|
||||||
@@ -1365,6 +1371,21 @@ async function InitConfigParameters() {
|
|||||||
}
|
}
|
||||||
InitConfigParameters();
|
InitConfigParameters();
|
||||||
|
|
||||||
|
// Trigger for hidden Cards - if hiddenByTrigger is true/false
|
||||||
|
on({id: [NSPanel_Path + 'Config.hiddenCards'], change: "ne"}, async function (obj) {
|
||||||
|
try {
|
||||||
|
obj.state.val ? log('hidden Cards activated', 'info') : log('hidden Cards disabled', 'info');
|
||||||
|
valueHiddenCards = obj.state.val
|
||||||
|
if (obj.state.val) {
|
||||||
|
activePage = config.pages[0];
|
||||||
|
pageId = 0
|
||||||
|
GeneratePage(activePage);
|
||||||
|
}
|
||||||
|
} catch (err: any) {
|
||||||
|
log('error at Trigger hidden Cards Status: ' + err.message, 'warn');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
on({id: [NSPanel_Path + 'Config.ScripgtDebugStatus'], change: "ne"}, async function (obj) {
|
on({id: [NSPanel_Path + 'Config.ScripgtDebugStatus'], change: "ne"}, async function (obj) {
|
||||||
try {
|
try {
|
||||||
obj.state.val ? log('Debug mode activated', 'info') : log('Debug mode disabled', 'info');
|
obj.state.val ? log('Debug mode activated', 'info') : log('Debug mode disabled', 'info');
|
||||||
@@ -3331,6 +3352,7 @@ function GeneratePage(page: PageType): void {
|
|||||||
SendToPanel(GenerateUnlockPage(page));
|
SendToPanel(GenerateUnlockPage(page));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (err: any) {
|
} catch (err: any) {
|
||||||
if (err.message == "Cannot read properties of undefined (reading 'type')") {
|
if (err.message == "Cannot read properties of undefined (reading 'type')") {
|
||||||
log('Please wait a few seconds longer when launching the NSPanel. Not all parameters are loaded yet.', 'warn');
|
log('Please wait a few seconds longer when launching the NSPanel. Not all parameters are loaded yet.', 'warn');
|
||||||
@@ -3338,6 +3360,7 @@ function GeneratePage(page: PageType): void {
|
|||||||
log('error at function GeneratePage: ' + err.message, 'warn');
|
log('error at function GeneratePage: ' + err.message, 'warn');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function HandleHardwareButton(method: NSPanel.EventMethod): void {
|
function HandleHardwareButton(method: NSPanel.EventMethod): void {
|
||||||
@@ -6532,6 +6555,18 @@ function HandleButtonEvent(words: any): void {
|
|||||||
pageNum = (((pageId + 1) % config.pages.length) + config.pages.length) % config.pages.length;
|
pageNum = (((pageId + 1) % config.pages.length) + config.pages.length) % config.pages.length;
|
||||||
pageId = pageNum;
|
pageId = pageNum;
|
||||||
UnsubscribeWatcher();
|
UnsubscribeWatcher();
|
||||||
|
//-Serching for next unhidden Page----------------------
|
||||||
|
if (config.pages[pageId].hiddenByTrigger && valueHiddenCards) {
|
||||||
|
for (let i = pageId; i <= config.pages.length; i++) {
|
||||||
|
if (i == config.pages.length) {
|
||||||
|
i = 0
|
||||||
|
}
|
||||||
|
if (!config.pages[i].hiddenByTrigger) {
|
||||||
|
pageId = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
GeneratePage(config.pages[pageId]);
|
GeneratePage(config.pages[pageId]);
|
||||||
break;
|
break;
|
||||||
case 'bSubNext':
|
case 'bSubNext':
|
||||||
@@ -6543,6 +6578,15 @@ function HandleButtonEvent(words: any): void {
|
|||||||
pageNum = (((pageId - 1) % config.pages.length) + config.pages.length) % config.pages.length;
|
pageNum = (((pageId - 1) % config.pages.length) + config.pages.length) % config.pages.length;
|
||||||
pageId = pageNum;
|
pageId = pageNum;
|
||||||
UnsubscribeWatcher();
|
UnsubscribeWatcher();
|
||||||
|
//-Searching for previous unhidden Page----------------------
|
||||||
|
if (config.pages[pageId].hiddenByTrigger && valueHiddenCards) {
|
||||||
|
for (let i = pageId; i >= 0; i--) {
|
||||||
|
if (config.pages[i].hiddenByTrigger == false || config.pages[i].hiddenByTrigger == undefined) {
|
||||||
|
pageId = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
if (activePage != undefined && activePage!.parent != undefined) {
|
if (activePage != undefined && activePage!.parent != undefined) {
|
||||||
//update pageID
|
//update pageID
|
||||||
for (let i = 0; i < config.pages.length; i++) {
|
for (let i = 0; i < config.pages.length; i++) {
|
||||||
@@ -7670,6 +7714,7 @@ function GetNavigationString(pageId: number): string {
|
|||||||
}
|
}
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
function GenerateDetailPage(type: NSPanel.PopupType, optional: NSPanel.mediaOptional | undefined, pageItem: PageItem, placeId: number | undefined): NSPanel.Payload[] {
|
function GenerateDetailPage(type: NSPanel.PopupType, optional: NSPanel.mediaOptional | undefined, pageItem: PageItem, placeId: number | undefined): NSPanel.Payload[] {
|
||||||
if (Debug) log('GenerateDetailPage Übergabe Type: ' + type + ' - optional: ' + optional + ' - pageItem.id: ' + pageItem.id, 'info');
|
if (Debug) log('GenerateDetailPage Übergabe Type: ' + type + ' - optional: ' + optional + ' - pageItem.id: ' + pageItem.id, 'info');
|
||||||
try {
|
try {
|
||||||
@@ -10129,7 +10174,8 @@ namespace NSPanel {
|
|||||||
nextIconColor?: RGB,
|
nextIconColor?: RGB,
|
||||||
home?: string,
|
home?: string,
|
||||||
homeIcon?: string,
|
homeIcon?: string,
|
||||||
homeIconColor?: RGB
|
homeIconColor?: RGB,
|
||||||
|
hiddenByTrigger?: boolean
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user