From 6e6b70c89f3ed88ac1dbe1f8eb5738a6b3475831 Mon Sep 17 00:00:00 2001 From: Thomas <101348966+tt-tom17@users.noreply.github.com> Date: Fri, 24 Nov 2023 10:11:07 +0100 Subject: [PATCH 1/2] v4.3.3.11 - Update NsPanelTS.ts Add autoCreateALias to PageQR --- ioBroker/NsPanelTs.ts | 78 +++++++++++++++++++++++++++++++++---------- 1 file changed, 61 insertions(+), 17 deletions(-) diff --git a/ioBroker/NsPanelTs.ts b/ioBroker/NsPanelTs.ts index 5bc380268..817452147 100644 --- a/ioBroker/NsPanelTs.ts +++ b/ioBroker/NsPanelTs.ts @@ -1,5 +1,5 @@ /*----------------------------------------------------------------------- -TypeScript v4.3.3.10 zur Steuerung des SONOFF NSPanel mit dem ioBroker by @Armilar / @TT-Tom / @Sternmiere / @Britzelpuf / @ravenS0ne +TypeScript v4.3.3.11 zur Steuerung des SONOFF NSPanel mit dem ioBroker by @Armilar / @TT-Tom / @Sternmiere / @Britzelpuf / @ravenS0ne - abgestimmt auf TFT 53 / v4.3.3 / BerryDriver 9 / Tasmota 13.2.0 @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 @@ -59,8 +59,9 @@ ReleaseNotes: - 20.11.2023 - v4.3.3.6 Add Multilingualism to cardAlarm (39 languages) - 20.11.2023 - v4.3.3.7 Add Multilingualism to cardMedia (39 languages) - 20.11.2023 - v4.3.3.8 Add Method dayjs (Multilingualism), some Minor Fixes - - 20.11.2023 - v4.3.3.9 Add ScreensaverEntityOnColor, ...OffColor, ...OnText, ...OffText + - 20.11.2023 - v4.3.3.9 Add ScreensaverEntityOnColor, ...OffColor, ...OnText, ...OffText - 21.11.2023 - v4.3.3.10 Code optimization + - 24.11.2023 - v4.3.3.11 Add autoCreateALias to PageQR Todo: - XX.XX.XXXX - v4.4.0 Change the bottomScreensaverEntity (rolling) if more than 6 entries are defined @@ -711,8 +712,8 @@ export const config = <Config> { // Seiteneinteilung / Page division // Hauptseiten / Mainpages pages: [ - - NSPanel_Service //Auto-Alias Service Page + + NSPanel_Service, //Auto-Alias Service Page //Unlock_Service //Auto-Alias Service Page (Service Pages used with cardUnlock) ], @@ -880,7 +881,7 @@ export const config = <Config> { // _________________________________ Ab hier keine Konfiguration mehr _____________________________________ -const scriptVersion: string = 'v4.3.3.10'; +const scriptVersion: string = 'v4.3.3.11'; const tft_version: string = 'v4.3.3'; const desired_display_firmware_version = 53; const berry_driver_version = 9; @@ -4968,20 +4969,26 @@ function GenerateAlarmPage(page: PageAlarm): Payload[] { } async function createAutoUnlockAlias(id: string, dpPath: string) { - if (autoCreateAlias) { - if (isSetOptionActive) { - if (existsState(dpPath + 'UnlockPin') == false) { - createState(dpPath + 'UnlockPin', '0000', { type: 'string' }, function () { setState(dpPath + 'UnlockPin', '0000') }); - } - if (existsState(dpPath + 'Access') == false) { - createState(dpPath + 'Access', 'false', { type: 'boolean' }, function () { setState(dpPath + 'Access', 'false') }); + try { + if (Debug){ + console.log('Unlock Alias Path: ' + id); + console.log('Unlock 0_userdata Path: ' + dpPath); + } + if (autoCreateAlias) { + if (isSetOptionActive) { + if (existsState(dpPath + 'UnlockPin') == false || existsState(dpPath + 'Access') == false) { + await createStateAsync(dpPath + 'UnlockPin', '0000', { type: 'string' }); + await createStateAsync(dpPath + 'Access', 'false', { type: 'boolean' }); + setObject(id, { _id: id, type: 'channel', common: { role: 'sensor.fire.alarm', name: 'sensor.fire.alarm' }, native: {} }); + await createAliasAsync(id + '.PIN', dpPath + 'UnlockPin', true, <iobJS.StateCommon>{ type: 'string', role: 'state', name: 'PIN' }); + await createAliasAsync(id + '.ACTUAL', dpPath + 'Access', true, <iobJS.StateCommon>{ type: 'boolean', role: 'sensor.fire.alarm', name: 'ACTUAL' }); + } } - - setObject(id, {_id: id, type: 'channel', common: {role: 'sensor.fire.alarm', name:'sensor.fire.alarm'}, native: {}}); - await createAliasAsync(id + '.PIN', dpPath + 'UnlockPin', true, <iobJS.StateCommon>{ type: 'string', role: 'state', name: 'PIN'}); - await createAliasAsync(id + '.ACTUAL', dpPath + 'Access', true, <iobJS.StateCommon>{ type: 'boolean', role: 'sensor.fire.alarm', name: 'ACTUAL'}); } + } catch (err) { + console.warn('error at function createAutoUnlockAlias: ' + err.message); } + } function GenerateUnlockPage(page: PageUnlock): Payload[] { @@ -5041,6 +5048,29 @@ function GenerateUnlockPage(page: PageUnlock): Payload[] { } } +async function createAutoQRAlias(id:string, dpPath:string) { + try { + if (Debug){ + console.log('QRPage Alias Path: ' + id); + console.log('QRPage 0_userdata Path: ' + dpPath); + } + if (autoCreateAlias) { + if (isSetOptionActive) { + if (existsState(dpPath + 'Daten') == false) { + await createStateAsync(dpPath + 'Daten', 'WIFI:T:undefined;S:undefined;P:undefined;H:undefined;', { type: 'string' }); + setObject(id, { _id: id, type: 'channel', common: { role: 'info', name: 'QR Page' }, native: {} }); + await createAliasAsync(id + '.ACTUAL', dpPath + 'Daten', true, <iobJS.StateCommon>{ type: 'string', role: 'state', name: 'ACTUAL' }); + console.warn('Daten für die QR Page unter ' + dpPath + 'Daten anpassen. Hinweise im Wiki beachten.'); + } + } + } + } catch (err) { + console.warn('error at function createAutoQRkAlias: ' + err.message); + } +} + + + function GenerateQRPage(page: PageQR): Payload[] { try { activePage = page; @@ -5049,6 +5079,17 @@ function GenerateQRPage(page: PageQR): Payload[] { let out_msgs: Array<Payload> = []; out_msgs.push({ payload: 'pageType~cardQR' }); + let dpPath : string = '' + let dpTempPath: any = NSPanel_Path.split('.'); + for (let i=0; i < dpTempPath.length - 2; i++) { + dpPath = dpPath + dpTempPath[i] + '.'; + } + dpPath = (dpPath + 'GuestWiFi.'); + + if (page.items[0].autoCreateALias) { + createAutoQRAlias(id, dpPath) + } + let o = getObject(id); let heading = page.heading !== undefined ? page.heading : o.common.name.de; @@ -5062,8 +5103,11 @@ function GenerateQRPage(page: PageQR): Payload[] { let optionalValue1: any; let optionalValue2: any; for (let w = 0; w < tempstr.length - 1; w++) { + if (tempstr[w].substring(5, 6) == 'T') { + tempstr[w].slice(7) == 'undefined' ? console.warn('Daten (T) für die QR Page unter ' + dpPath + 'Daten anpassen. Hinweise im Wiki beachten.') : '' ; + } if (tempstr[w].substring(0, 1) == 'S') { - optionalValue1 = tempstr[w].slice(2); + tempstr[w].slice(2) == 'undefined' ? console.warn('Daten (S) für die QR Page unter ' + dpPath + 'Daten anpassen. Hinweise im Wiki beachten.') : optionalValue1 = tempstr[w].slice(2); } if (tempstr[w].substring(0, 1) == 'P') { optionalValue2 = tempstr[w].slice(2); From 7b513f901cc43d75be09455b75f78e9fa43de18c Mon Sep 17 00:00:00 2001 From: Armilar <102996011+Armilar@users.noreply.github.com> Date: Fri, 24 Nov 2023 10:22:35 +0100 Subject: [PATCH 2/2] v4.3.3.11 - Update NsPanelTs.ts --- ioBroker/NsPanelTs.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ioBroker/NsPanelTs.ts b/ioBroker/NsPanelTs.ts index 817452147..7fd253be4 100644 --- a/ioBroker/NsPanelTs.ts +++ b/ioBroker/NsPanelTs.ts @@ -59,7 +59,7 @@ ReleaseNotes: - 20.11.2023 - v4.3.3.6 Add Multilingualism to cardAlarm (39 languages) - 20.11.2023 - v4.3.3.7 Add Multilingualism to cardMedia (39 languages) - 20.11.2023 - v4.3.3.8 Add Method dayjs (Multilingualism), some Minor Fixes - - 20.11.2023 - v4.3.3.9 Add ScreensaverEntityOnColor, ...OffColor, ...OnText, ...OffText + - 20.11.2023 - v4.3.3.9 Add ScreensaverEntityOnColor, ...OffColor, ...OnText, ...OffText - 21.11.2023 - v4.3.3.10 Code optimization - 24.11.2023 - v4.3.3.11 Add autoCreateALias to PageQR