diff --git a/ioBroker/DEV/NSPanelTs.ts b/ioBroker/DEV/NSPanelTs.ts index 8c664745..c058f35f 100644 --- a/ioBroker/DEV/NSPanelTs.ts +++ b/ioBroker/DEV/NSPanelTs.ts @@ -102,6 +102,7 @@ ReleaseNotes: - 04.01.2024 - v4.3.3.32 Remove not uses propertys from PageItem - 05.01.2024 - v4.3.3.32 Add Body for BoseSoundtouch-Player - 05.01.2024 - v4.3.3.33 Add BoseSoundtouch Functions + - 05.01.2024 - v4.3.3.33 Screensaver Fix max Number of indicatorScreensaverEntity Todo: - XX.XX.XXXX - v5.0.0 Change the bottomScreensaverEntity (rolling) if more than 6 entries are defined diff --git a/ioBroker/NsPanelTs.ts b/ioBroker/NsPanelTs.ts index cf71aded..e80df03f 100644 --- a/ioBroker/NsPanelTs.ts +++ b/ioBroker/NsPanelTs.ts @@ -1,5 +1,5 @@ /*----------------------------------------------------------------------- -TypeScript v4.3.3.32 zur Steuerung des SONOFF NSPanel mit dem ioBroker by @Armilar / @TT-Tom / @ticaki / @Britzelpuf / @Sternmiere / @ravenS0ne +TypeScript v4.3.3.33 zur Steuerung des SONOFF NSPanel mit dem ioBroker by @Armilar / @TT-Tom / @ticaki / @Britzelpuf / @Sternmiere / @ravenS0ne - abgestimmt auf TFT 53 / v4.3.3 / BerryDriver 9 / Tasmota 13.3.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 @@ -101,6 +101,8 @@ ReleaseNotes: - 04.01.2024 - v4.3.3.32 Add more details to types for: leftScreensaverEntity, indicatorScreensaverEntity, PageThermo, PageMedia - 04.01.2024 - v4.3.3.32 Remove not uses propertys from PageItem - 05.01.2024 - v4.3.3.32 Add Body for BoseSoundtouch-Player + - 05.01.2024 - v4.3.3.33 Add BoseSoundtouch Functions + - 05.01.2024 - v4.3.3.33 Screensaver Fix max Number of indicatorScreensaverEntity Todo: - XX.XX.XXXX - v5.0.0 Change the bottomScreensaverEntity (rolling) if more than 6 entries are defined @@ -963,7 +965,7 @@ export const config: Config = { // _________________________________ DE: Ab hier keine Konfiguration mehr _____________________________________ // _________________________________ EN: No more configuration from here _____________________________________ -const scriptVersion: string = 'v4.3.3.32'; +const scriptVersion: string = 'v4.3.3.33'; const tft_version: string = 'v4.3.3'; const desired_display_firmware_version = 53; const berry_driver_version = 9; @@ -6431,6 +6433,18 @@ function HandleButtonEvent(words: any): void { } GeneratePage(activePage!); break; + case 'bosesoundtouch': + log(adapterInstanceRepeat); + let stateBoseRepeat = getState(id + '.REPEAT').val + if (stateBoseRepeat == 'REPEAT_OFF') { + setIfExists(adapterInstanceRepeat + 'key', 'REPEAT_ALL'); + } else if (stateBoseRepeat == 'REPEAT_ALL') { + setIfExists(adapterInstanceRepeat + 'key', 'REPEAT_ONE'); + } else if (stateBoseRepeat == 'REPEAT_ONE') { + setIfExists(adapterInstanceRepeat + 'key', 'REPEAT_OFF'); + } + GeneratePage(activePage!); + break; case 'sonos': let stateSonosRepeat = getState(id + '.REPEAT').val if (stateSonosRepeat == 0) { @@ -6693,6 +6707,14 @@ function HandleButtonEvent(words: any): void { setIfExists(id + '.SHUFFLE', false); } } + if ((tempPage.adapterPlayerInstance).startsWith("bosesoundtouch")) { + log(tempPage.adapterPlayerInstance); + if (getState(tempPage.adapterPlayerInstance + '.SHUFFLE').val == false) { + setIfExists(tempPage.adapterPlayerInstance + 'key', 'SHUFFLE_ON'); + } else { + setIfExists(tempPage.adapterPlayerInstance + 'key', 'SHUFFLE_OFF'); + } + } GeneratePage(activePage!); } break; @@ -6802,9 +6824,12 @@ function HandleButtonEvent(words: any): void { setState([pageItemPL.adapterPlayerInstance, 'Players', pageItemPL.mediaDevice, 'cmdPlayFavorite'].join('.'), words[4]); break; case "bosesoundtouch": + log('bosesoundtouch - playlist ' + pageItemPL.adapterPlayerInstance + ' - ' + words[4]); + log(adapterInstancePL + 'key'); + setState(adapterInstancePL + 'key', 'PRESET_' + (parseInt(words[4]) + 1)); break; default: - log('Hello Mr. Developer u miss in mode-playlist something!', 'warn') + log('Hello Mr. Developer u miss in mode-playlist something!', 'warn'); } pageCounter = 0; GeneratePage(activePage!); @@ -6853,7 +6878,7 @@ function HandleButtonEvent(words: any): void { case "bosesoundtouch": break; default: - log('Hello Mr. Developer u miss in mode-tracklist something!', 'warn') + log('Hello Mr. Developer u miss in mode-tracklist something!', 'warn'); } pageCounter = 0; GeneratePage(activePage!); @@ -8366,7 +8391,7 @@ function HandleScreensaverUpdate(): void { let checkpoint = true; let i = 0; if (config.leftScreensaverEntity && Array.isArray(config.leftScreensaverEntity)) { - for (i = 0; i < 3; i++) { + for (i = 0; i < 3 && i < config.leftScreensaverEntity.length; i++) { const leftScreensaverEntity = config.leftScreensaverEntity[i] if (leftScreensaverEntity === null || leftScreensaverEntity === undefined) { checkpoint = false; @@ -8573,8 +8598,8 @@ function HandleScreensaverUpdate(): void { } else { let checkpoint = true; let i = 0; - for (i = 0; i < maxEntities - 1; i++) { - if (config.bottomScreensaverEntity[i] == null) { + for (i = 0; i < maxEntities - 1 && i < config.bottomScreensaverEntity.length; i++) { + if (config.bottomScreensaverEntity[i] == null || config.bottomScreensaverEntity[i] === undefined) { checkpoint = false; break; } @@ -8647,10 +8672,10 @@ function HandleScreensaverUpdate(): void { if (screensaverAdvanced) { // 5 indicatorScreensaverEntities - for (let i = 0; i < 5; i++) { + for (let i = 0; i < 5 && i < config.indicatorScreensaverEntity.length; i++) { let checkpoint = true; const indicatorScreensaverEntity:ScreenSaverElementWithUndefined = config.indicatorScreensaverEntity[i]; - if (indicatorScreensaverEntity == null) { + if (indicatorScreensaverEntity === null || indicatorScreensaverEntity === undefined) { checkpoint = false; break; } @@ -8697,7 +8722,6 @@ function HandleScreensaverUpdate(): void { SendToPanel({ payload: 'weatherUpdate~' + payloadString }); HandleScreensaverStatusIcons(); - } } catch (err: any) {