diff --git a/ioBroker/NsPanelTs.ts b/ioBroker/NsPanelTs.ts index 007b3e36..29521770 100644 --- a/ioBroker/NsPanelTs.ts +++ b/ioBroker/NsPanelTs.ts @@ -1,5 +1,5 @@ /*----------------------------------------------------------------------- -TypeScript v4.2.0.1 zur Steuerung des SONOFF NSPanel mit dem ioBroker by @Armilar / @TT-Tom / @Sternmiere / @Britzelpuf / @ravenS0ne +TypeScript v4.2.0.2 zur Steuerung des SONOFF NSPanel mit dem ioBroker by @Armilar / @TT-Tom / @Sternmiere / @Britzelpuf / @ravenS0ne - abgestimmt auf TFT 52 / v4.2.0 / BerryDriver 8 / Tasmota 13.1.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 @@ -152,6 +152,7 @@ ReleaseNotes: - 21.08.2023 - v4.2.0 Upgrade TFT 52 / 4.2.0 - 21.08.2023 - v4.2.0 Add new alias state for iconcolor and buttontext for icon for subpages - 22.08.2023 - v4.2.0.1 Add iconArray to Alias "Klimaanlage" (airCondition) + - 23.08.2023 - v4.2.0.2 Add CardGrid2 with maxItems = 8 *********************************************************************************************************** * Für die Erstellung der Aliase durch das Skript, muss in der JavaScript Instanz "setObect" gesetzt sein! * @@ -169,6 +170,7 @@ Mögliche Seiten-Ansichten: (die 4 kleineren Icons können als Wetter-Vorschau + 4Tage (Symbol + Höchsttemperatur) oder zur Anzeige definierter Infos konfiguriert werden) cardEntities Page - 4 vertikale angeordnete Steuerelemente - auch als Subpage cardGrid Page - 6 horizontal angeordnete Steuerelemente in 2 Reihen a 3 Steuerelemente - auch als Subpage + cardGrid2 Page - 8 horizontal angeordnete Steuerelemente in 2 Reihen a 4 Steuerelemente - auch als Subpage cardThermo Page - Thermostat mit Solltemperatur, Isttemperatur, Mode - Weitere Eigenschaften können im Alias definiert werden cardMedia Page - Mediaplayer - Ausnahme: Alias sollte mit Alias-Manager automatisch über Alexa-Verzeichnis Player angelegt werden cardAlarm Page - Alarmseite mit Zustand und Tastenfeld @@ -512,9 +514,9 @@ let Subpages_1 = 'items': [{ id: 'alias.0.NSPanel_1.Guest_Wifi', hidePassword: false }] }; -let Buero_Seite_2 = +let Buero_Seite_2 = { - 'type': 'cardGrid', + 'type': 'cardGrid2', 'heading': 'Büro 2', 'useColor': true, 'items': [ @@ -524,7 +526,7 @@ let Buero_Seite_2 = { id: 'alias.0.NSPanel_1.Luftreiniger', icon: 'power', offColor: MSRed, onColor: MSGreen}, { id: 'alias.0.NSPanel_1.TestBlind', icon: 'projector-screen', onColor: White, name: 'Beamer', secondRow: 'auch Text'}, { id: 'alias.0.NSPanel_1.Kippfenster', useValue: true }, - //PageItem>{ id: 'alias.0.NSPanel_1.Radio.Bob', icon: 'play', onColor: White, name: 'TuneIn'} + { id: 'alias.0.NSPanel_1.Radio.Bob', icon: 'play', onColor: White, name: 'TuneIn'} ] }; @@ -3082,6 +3084,9 @@ function GeneratePage(page: Page): void { case 'cardGrid': SendToPanel(GenerateGridPage(page)); break; + case 'cardGrid2': + SendToPanel(GenerateGridPage2(page)); + break; case 'cardMedia': useMediaEvents = true; SendToPanel(GenerateMediaPage(page)); @@ -3212,6 +3217,16 @@ function GenerateGridPage(page: PageGrid): Payload[] { } } +function GenerateGridPage2(page: PageGrid2): Payload[] { + try { + let out_msgs: Array = [{ payload: 'pageType~cardGrid2' }]; + out_msgs.push({ payload: GeneratePageElements(page) }); + return out_msgs; + } catch (err) { + console.warn('error at function GenerateGridPage2: ' + err.message); + } +} + function GeneratePageElements(page: Page): string { try { activePage = page; @@ -3246,6 +3261,9 @@ function GeneratePageElements(page: Page): string { } break; case 'cardGrid': + maxItems = 6; + break; + case 'cardGrid2': maxItems = 8; break; } @@ -8317,6 +8335,11 @@ interface PageGrid extends Page { items: PageItem[], } +interface PageGrid2 extends Page { + type: 'cardGrid2', + items: PageItem[], +} + interface PageThermo extends Page { type: 'cardThermo', items: PageItem[], @@ -8417,7 +8440,7 @@ type DimMode = { type ConfigButtonFunction = { mode: string | null, - page: (PageThermo | PageMedia | PageAlarm | PageQR | PageEntities | PageGrid | PagePower | PageChart | PageUnlock | null), + page: (PageThermo | PageMedia | PageAlarm | PageQR | PageEntities | PageGrid | PageGrid2 | PagePower | PageChart | PageUnlock | null), entity: string | null, setValue: string | number | null } @@ -8435,8 +8458,8 @@ type Config = { defaultOnColor: RGB, defaultOffColor: RGB, defaultBackgroundColor: RGB, - pages: (PageThermo | PageMedia | PageAlarm | PageQR | PageEntities | PageGrid | PagePower | PageChart | PageUnlock )[], - subPages: (PageThermo | PageMedia | PageAlarm | PageQR | PageEntities | PageGrid | PagePower | PageChart | PageUnlock)[], + pages: (PageThermo | PageMedia | PageAlarm | PageQR | PageEntities | PageGrid | PageGrid2 | PagePower | PageChart | PageUnlock )[], + subPages: (PageThermo | PageMedia | PageAlarm | PageQR | PageEntities | PageGrid | PageGrid2 | PagePower | PageChart | PageUnlock)[], button1: ConfigButtonFunction, button2: ConfigButtonFunction }