From d420384c4a4ded94c76a8d177704a0db4422d725 Mon Sep 17 00:00:00 2001 From: ticaki Date: Sun, 16 Feb 2025 16:12:18 +0100 Subject: [PATCH 1/3] fix in build --- build/lib/controller/config-manager.js.map | 2 -- 1 file changed, 2 deletions(-) diff --git a/build/lib/controller/config-manager.js.map b/build/lib/controller/config-manager.js.map index ba8b15f..698affb 100644 --- a/build/lib/controller/config-manager.js.map +++ b/build/lib/controller/config-manager.js.map @@ -3,7 +3,5 @@ "sources": ["../../../src/lib/controller/config-manager.ts"], "sourcesContent": ["import { BaseClass } from '../classes/library';\nimport type { NspanelLovelaceUi } from '../types/NspanelLovelaceUi';\nimport type * as typePageItem from '../types/type-pageItem';\nimport type * as Types from '../types/types';\nimport { Color, type RGB } from '../const/Color';\nimport type * as pages from '../types/pages';\nimport { defaultConfig, isConfig, requiredDatapoints, requiredOutdatedDataPoints } from '../const/config-manager-const';\nimport type { panelConfigPartial } from './panel';\nimport { exhaustiveCheck } from '../types/pages';\nimport type { NavigationItemConfig } from '../classes/navigation';\n\nexport class ConfigManager extends BaseClass {\n //private test: ConfigManager.DeviceState;\n private colorOn: RGB = Color.On;\n private colorOff: RGB = Color.Off;\n private colorDefault: RGB = Color.Off;\n\n constructor(adapter: NspanelLovelaceUi) {\n super(adapter, 'config-manager');\n }\n\n async setScriptConfig(configuration: any): Promise {\n const config = Object.assign(defaultConfig, configuration);\n if (!config || !isConfig(config)) {\n this.log.error(`Invalid configuration from Script: ${config ? JSON.stringify(config) : 'undefined'}`);\n return;\n }\n let panelConfig: Omit, 'pages' | 'navigation'> & {\n navigation: NavigationItemConfig[];\n pages: pages.PageBaseConfig[];\n } = { pages: [], navigation: [] };\n if (!config.panelTopic) {\n this.log.error(`Required field panelTopic is missing in ${config.panelName || 'unknown'}!`);\n return;\n }\n panelConfig.updated = true;\n if (config.panelTopic.endsWith('.cmnd.CustomSend')) {\n panelConfig.topic = config.panelTopic.split('.').slice(0, -2).join('.');\n } else {\n panelConfig.topic = config.panelTopic;\n }\n if (config.panelName) {\n panelConfig.name = config.panelName;\n } else {\n panelConfig.name = `NSPanel-${config.panelTopic}`;\n }\n if (config.defaultColor) {\n this.colorDefault = Color.convertScriptRGBtoRGB(config.defaultColor);\n }\n if (config.defaultOnColor) {\n this.colorOn = Color.convertScriptRGBtoRGB(config.defaultOnColor);\n }\n if (config.defaultOffColor) {\n this.colorOff = Color.convertScriptRGBtoRGB(config.defaultOffColor);\n }\n\n // Screensaver configuration\n panelConfig.pages.push(await this.getScreensaverConfig(config));\n if (config.pages.length > 1) {\n for (let a = 0; a < config.pages.length; a++) {\n const page = config.pages[a];\n if (page.type === undefined || page.uniqueName == null) {\n continue;\n }\n panelConfig.navigation.push({\n name: page.uniqueName,\n left: undefined,\n right: undefined,\n page: page.uniqueName,\n });\n }\n if (panelConfig.navigation.length > 1) {\n //@ts-expect-error Just look 4 lines aboe name CANT be undefined and same for ITEM...\n panelConfig.navigation = panelConfig.navigation.map((item, index, array) => {\n if (index === 0) {\n return {\n ...item,\n left: { single: array[array.length - 1]!.name },\n right: { single: array[0]!.name },\n };\n } else if (index === array.length - 1) {\n return { ...item, left: { single: array[index - 1]!.name }, right: { single: array[0]!.name } };\n }\n return {\n ...item,\n left: { single: array[index - 1]!.name },\n right: { single: array[index + 1]!.name },\n };\n });\n }\n }\n\n panelConfig = await this.getGridConfig(config, panelConfig);\n\n this.log.debug(`panelConfig: ${JSON.stringify(panelConfig)}`);\n const obj = await this.adapter.getForeignObjectAsync(this.adapter.namespace);\n if (obj) {\n obj.native.scriptConfig = obj.native.scriptConfig || [];\n const index = obj.native.scriptConfig.findIndex((item: any) => item.name === panelConfig.name);\n if (index !== -1) {\n obj.native.scriptConfig[index] = panelConfig;\n } else {\n obj.native.scriptConfig.push(panelConfig);\n }\n await this.adapter.setForeignObjectAsync(this.adapter.namespace, obj);\n }\n }\n async getGridConfig(\n config: ScriptConfig.Config,\n result: { pages: pages.PageBaseConfig[] | undefined; navigation: NavigationItemConfig[] },\n ): Promise<{ pages: pages.PageBaseConfig[]; navigation: NavigationItemConfig[] }> {\n if (result.pages === undefined) {\n result.pages = [];\n }\n if (config.pages) {\n for (const page of config.pages.concat(config.subPages || [])) {\n if (!page) {\n continue;\n }\n if (page.type === undefined && page.native) {\n if (page.heading) {\n page.native.config = page.native.config || {};\n page.native.config.data = page.native.config.data || {};\n page.native.config.data.headline = await this.getFieldAsDataItemConfig(page.heading);\n }\n result.pages.push(page.native);\n continue;\n }\n if (\n page.type !== 'cardGrid' &&\n page.type !== 'cardGrid2' &&\n page.type !== 'cardGrid3' &&\n page.type !== 'cardEntities'\n ) {\n continue;\n }\n if (!page.uniqueName) {\n this.log.error(`Page ${page.heading || 'unknown'} has no uniqueName!`);\n continue;\n }\n const left =\n page.prev || (page.parent && page.parent.type !== undefined && page.parent.uniqueName) || undefined;\n const right = page.next || page.home || undefined;\n const navItem: NavigationItemConfig = {\n name: page.uniqueName,\n left: left ? { single: left } : undefined,\n right: right ? { single: right } : undefined,\n page: page.uniqueName,\n };\n result.navigation.push(navItem);\n const gridItem: pages.PageBaseConfig = {\n dpInit: '',\n alwaysOn: 'none',\n uniqueID: page.uniqueName || '',\n useColor: false,\n config: {\n card: page.type,\n data: {\n headline: await this.getFieldAsDataItemConfig(page.heading || ''),\n },\n },\n pageItems: [],\n };\n if (page.items) {\n for (const item of page.items) {\n if (!item) {\n continue;\n }\n let itemConfig: typePageItem.PageItemDataItemsOptions | undefined = undefined;\n if (item.id && !item.id.endsWith('.')) {\n const obj = await this.adapter.getForeignObjectAsync(item.id);\n if (obj) {\n if (!(obj.common && obj.common.role)) {\n this.log.error(`Role missing in ${item.id}!`);\n continue;\n }\n const role = obj.common.role as ScriptConfig.roles;\n\n // check if role and types are correct\n if (!requiredDatapoints[role]) {\n this.log.warn(`Role ${role} not implemented yet!`);\n continue;\n }\n let ok = true;\n for (const dp in requiredDatapoints[role]) {\n const o =\n dp !== ''\n ? await this.adapter.getForeignObjectAsync(`${item.id}.${dp}`)\n : undefined;\n if (\n !o &&\n !requiredOutdatedDataPoints[role][dp].required &&\n !requiredDatapoints[role][dp].required\n ) {\n continue;\n }\n if (\n !o ||\n o.common.role !== requiredOutdatedDataPoints[role][dp].role ||\n o.common.type !== requiredOutdatedDataPoints[role][dp].type\n ) {\n if (\n !o ||\n o.common.role !== requiredDatapoints[role][dp].role ||\n o.common.type !== requiredDatapoints[role][dp].type\n ) {\n ok = false;\n if (!o) {\n this.log.error(`Datapoint ${item.id}.${dp} is missing and required!`);\n } else {\n this.log.error(\n `Datapoint ${item.id}.${dp} has wrong ` +\n `role: ${o.common.role !== requiredDatapoints[role][dp].role ? `${o.common.role} should be ${requiredDatapoints[role][dp].role}` : `ok`} ` +\n `- type: ${o.common.type !== requiredDatapoints[role][dp].type ? `${o.common.role} should be ${requiredDatapoints[role][dp].type}` : `ok`}`,\n );\n }\n break;\n }\n }\n }\n if (!ok) {\n continue;\n }\n const commonName =\n typeof obj.common.name === 'string'\n ? obj.common.name\n : obj.common.name[this.library.getLocalLanguage()];\n switch (role) {\n case 'timeTable': {\n itemConfig = {\n template: 'text.alias.fahrplan.departure',\n dpInit: item.id,\n };\n break;\n }\n case 'socket':\n case 'light': {\n const tempItem: typePageItem.PageItemDataItemsOptions = {\n type: 'light',\n data: {\n icon: {\n true: {\n value: {\n type: 'const',\n constVal:\n item.icon || role === 'socket'\n ? 'power-socket-de'\n : 'lightbulb',\n },\n color: {\n type: 'const',\n constVal: item.onColor || Color.activated,\n },\n },\n false: {\n value: {\n type: 'const',\n constVal:\n item.icon2 || role === 'socket'\n ? 'power-socket-de'\n : 'lightbulb-outline',\n },\n color: {\n type: 'const',\n constVal: item.offColor || Color.deactivated,\n },\n },\n scale: undefined,\n maxBri: undefined,\n minBri: undefined,\n },\n colorMode: { type: 'const', constVal: false },\n headline: await this.getFieldAsDataItemConfig(\n item.name || commonName || 'Light',\n ),\n entity1: {\n value: { type: 'triggered', dp: `${item.id}.SET` },\n },\n },\n };\n itemConfig = tempItem;\n break;\n }\n\n case 'dimmer': {\n const tempItem: typePageItem.PageItemDataItemsOptions = {\n type: 'light',\n role: 'dimmer',\n data: {\n icon: {\n true: {\n value: {\n type: 'const',\n constVal: item.icon || 'lightbulb',\n },\n color: {\n type: 'const',\n constVal: item.onColor || Color.activated,\n },\n },\n false: {\n value: {\n type: 'const',\n constVal: item.icon2 || 'lightbulb-outline',\n },\n color: {\n type: 'const',\n constVal: item.offColor || Color.deactivated,\n },\n },\n scale: undefined,\n maxBri: item.maxValueBrightness\n ? { type: 'const', constVal: item.maxValueBrightness }\n : undefined,\n minBri: item.minValueBrightness\n ? { type: 'const', constVal: item.minValueBrightness }\n : undefined,\n },\n colorMode: item.colormode\n ? { type: 'const', constVal: !!item.colormode }\n : undefined,\n dimmer: {\n value: { type: 'triggered', dp: `${item.id}.SET` },\n maxScale: item.maxValueBrightness\n ? { type: 'const', constVal: item.maxValueBrightness }\n : undefined,\n minScale: item.minValueBrightness\n ? { type: 'const', constVal: item.minValueBrightness }\n : undefined,\n },\n headline: await this.getFieldAsDataItemConfig(\n item.name || commonName || 'Dimmer',\n ),\n text1: {\n true: {\n type: 'const',\n constVal: `Brightness`,\n },\n },\n entity1: {\n value: { type: 'triggered', dp: `${item.id}.ON_SET` },\n },\n },\n };\n itemConfig = tempItem;\n break;\n }\n case 'hue': {\n const tempItem: typePageItem.PageItemDataItemsOptions = {\n type: 'light',\n role: 'hue',\n data: {\n icon: {\n true: {\n value: {\n type: 'const',\n constVal: item.icon || 'lightbulb',\n },\n color: {\n type: 'const',\n constVal: item.onColor || Color.activated,\n },\n },\n false: {\n value: {\n type: 'const',\n constVal: item.icon2 || 'lightbulb-outline',\n },\n color: {\n type: 'const',\n constVal: item.offColor || Color.deactivated,\n },\n },\n scale: undefined,\n maxBri: item.maxValueBrightness\n ? { type: 'const', constVal: item.maxValueBrightness }\n : undefined,\n minBri: item.minValueBrightness\n ? { type: 'const', constVal: item.minValueBrightness }\n : undefined,\n },\n colorMode: item.colormode\n ? { type: 'const', constVal: !!item.colormode }\n : undefined,\n dimmer: {\n value: { type: 'triggered', dp: `${item.id}.DIMMER` },\n maxScale: item.maxValueBrightness\n ? { type: 'const', constVal: item.maxValueBrightness }\n : undefined,\n minScale: item.minValueBrightness\n ? { type: 'const', constVal: item.minValueBrightness }\n : undefined,\n },\n headline: await this.getFieldAsDataItemConfig(\n item.name || commonName || 'HUE',\n ),\n hue: {\n type: 'triggered',\n dp: `${item.id}.HUE`,\n },\n ct: {\n value: { type: 'triggered', dp: `${item.id}.CT` },\n maxScale: item.maxValueColorTemp\n ? { type: 'const', constVal: item.maxValueColorTemp }\n : undefined,\n minScale: item.minValueColorTemp\n ? { type: 'const', constVal: item.minValueColorTemp }\n : undefined,\n },\n text1: {\n true: {\n type: 'const',\n constVal: `Brightness`,\n },\n },\n text2: {\n true: {\n type: 'const',\n constVal: `Colour temperature`,\n },\n },\n text3: {\n true: {\n type: 'const',\n constVal: `Color`,\n },\n },\n entity1: {\n value: { type: 'triggered', dp: `${item.id}.ON` },\n },\n },\n };\n itemConfig = tempItem;\n break;\n }\n case 'rgb':\n case 'rgbSingle':\n case 'ct':\n case 'blind':\n case 'door':\n case 'window':\n case 'volumeGroup':\n case 'volume':\n case 'info':\n case 'humidity':\n case 'temperature':\n case 'value.temperature':\n case 'value.humidity':\n case 'sensor.door':\n case 'sensor.window':\n case 'thermostat':\n case 'warning':\n case 'cie':\n case 'gate':\n case 'motion':\n case 'buttonSensor':\n case 'button':\n case 'value.time':\n case 'level.timer':\n case 'value.alarmtime':\n case 'level.mode.fan':\n case 'lock':\n case 'slider':\n case 'switch.mode.wlan':\n case 'media':\n case 'airCondition': {\n this.log.error(`Role ${role} not implemented yet!`);\n break;\n }\n default:\n exhaustiveCheck(role);\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n this.log.error(`Role ${role} not implemented yet!`);\n }\n if (itemConfig) {\n gridItem.pageItems.push(itemConfig);\n }\n }\n }\n }\n }\n result.pages.push(gridItem);\n }\n }\n\n return { pages: result.pages || [], navigation: result.navigation };\n }\n\n async getScreensaverConfig(config: ScriptConfig.Config): Promise {\n let pageItems: typePageItem.PageItemDataItemsOptions[] = [];\n if (config.bottomScreensaverEntity) {\n for (const item of config.bottomScreensaverEntity) {\n if (item) {\n pageItems.push(await this.getEntityData(item, 'bottom', config));\n }\n }\n }\n // if weatherEntity is set, add alot weather data to screensaver :)\n // only works with accuweather atm\n if (config.weatherEntity) {\n if (config.weatherEntity.startsWith('accuweather.') && config.weatherEntity.endsWith('.')) {\n const instance = config.weatherEntity.split('.')[1];\n pageItems.push({\n template: 'text.accuweather.favorit',\n dpInit: `/^accuweather\\\\.${instance}.+/`,\n modeScr: 'favorit',\n });\n pageItems = pageItems.concat([\n // Bottom 1 - accuWeather.0. Forecast Day 1\n {\n template: 'text.accuweather.sunriseset',\n dpInit: `/^accuweather\\\\.${instance}.Daily.+/`,\n modeScr: 'bottom',\n },\n // Bottom 1 - accuWeather.0. Forecast Day 1\n {\n template: 'text.accuweather.bot2values',\n dpInit: `/^accuweather\\\\.${instance}.+?d1$/g`,\n modeScr: 'bottom',\n },\n\n // Bottom 2 - accuWeather.0. Forecast Day 2\n {\n template: 'text.accuweather.bot2values',\n dpInit: `/^accuweather\\\\.${instance}.+?d2$/`,\n modeScr: 'bottom',\n },\n\n // Bottom 3 - accuWeather.0. Forecast Day 3\n {\n template: 'text.accuweather.bot2values',\n dpInit: `/^accuweather\\\\.${instance}.+?d3$/`,\n modeScr: 'bottom',\n },\n\n // Bottom 4 - accuWeather.0. Forecast Day 4\n {\n template: 'text.accuweather.bot2values',\n dpInit: `/^accuweather\\\\.${instance}.+?d4$/`,\n modeScr: 'bottom',\n },\n // Bottom 5 - accuWeather.0. Forecast Day 5\n {\n template: 'text.accuweather.bot2values',\n dpInit: `/^accuweather\\\\.${instance}.+?d5$/`,\n modeScr: 'bottom',\n },\n // Bottom 7 - Sonnenaufgang - Sonnenuntergang im Wechsel\n\n // Bottom 8 - Windgeschwindigkeit\n {\n role: 'text',\n dpInit: '',\n type: 'text',\n modeScr: 'bottom',\n data: {\n entity1: {\n value: {\n type: 'triggered',\n dp: `accuweather.${instance}.Current.WindSpeed`,\n },\n decimal: {\n type: 'const',\n constVal: 1,\n },\n factor: {\n type: 'const',\n constVal: 1000 / 3600,\n },\n unit: undefined,\n },\n entity2: {\n value: {\n type: 'triggered',\n dp: `accuweather.${instance}.Current.WindSpeed`,\n },\n decimal: {\n type: 'const',\n constVal: 1,\n },\n factor: {\n type: 'const',\n constVal: 1000 / 3600,\n },\n unit: {\n type: 'const',\n constVal: 'm/s',\n },\n },\n icon: {\n true: {\n value: {\n type: 'const',\n constVal: 'weather-windy',\n },\n color: {\n type: 'const',\n constVal: Color.MSRed,\n },\n },\n false: {\n value: {\n type: 'const',\n constVal: 'weather-windy',\n },\n color: {\n type: 'const',\n constVal: Color.MSGreen,\n },\n },\n scale: {\n type: 'const',\n constVal: { val_min: 0, val_max: 80 },\n },\n maxBri: undefined,\n minBri: undefined,\n },\n text: {\n true: {\n type: 'const',\n constVal: 'Wind',\n },\n false: undefined,\n },\n },\n },\n\n // Bottom 9 - B\u00F6en\n {\n role: 'text',\n dpInit: '',\n type: 'text',\n modeScr: 'bottom',\n data: {\n entity1: {\n value: {\n type: 'triggered',\n dp: `accuweather.${instance}.Current.WindGust`,\n },\n decimal: {\n type: 'const',\n constVal: 1,\n },\n factor: {\n type: 'const',\n constVal: 1000 / 3600,\n },\n unit: undefined,\n },\n entity2: {\n value: {\n type: 'triggered',\n dp: `accuweather.${instance}.Current.WindGust`,\n },\n decimal: {\n type: 'const',\n constVal: 1,\n },\n factor: {\n type: 'const',\n constVal: 1000 / 3600,\n },\n unit: {\n type: 'const',\n constVal: 'm/s',\n },\n },\n icon: {\n true: {\n value: {\n type: 'const',\n constVal: 'weather-tornado',\n },\n color: {\n type: 'const',\n constVal: Color.MSRed,\n },\n },\n false: {\n value: {\n type: 'const',\n constVal: 'weather-tornado',\n },\n color: {\n type: 'const',\n constVal: Color.MSGreen,\n },\n },\n scale: {\n type: 'const',\n constVal: { val_min: 0, val_max: 80 },\n },\n maxBri: undefined,\n minBri: undefined,\n },\n text: {\n true: {\n type: 'const',\n constVal: 'B\u00F6en',\n },\n false: undefined,\n },\n },\n },\n\n // Bottom 10 - Windrichtung\n {\n role: 'text',\n dpInit: '',\n type: 'text',\n modeScr: 'bottom',\n data: {\n entity2: {\n value: {\n type: 'triggered',\n dp: `accuweather.${instance}.Current.WindDirectionText`,\n },\n decimal: {\n type: 'const',\n constVal: 0,\n },\n factor: undefined,\n unit: {\n type: 'const',\n constVal: '\u00B0',\n },\n },\n icon: {\n true: {\n value: {\n type: 'const',\n constVal: 'windsock',\n },\n color: {\n type: 'const',\n constVal: '#FFFFFF',\n },\n },\n false: {\n value: undefined,\n color: undefined,\n },\n scale: undefined,\n maxBri: undefined,\n minBri: undefined,\n },\n text: {\n true: {\n type: 'const',\n constVal: 'Windr.',\n },\n false: undefined,\n },\n },\n },\n\n // Bottom 12 - UV-Index\n {\n role: 'text',\n dpInit: '',\n type: 'text',\n modeScr: 'bottom',\n data: {\n entity1: {\n value: {\n type: 'triggered',\n dp: `accuweather.${instance}.Current.UVIndex`,\n },\n decimal: undefined,\n factor: undefined,\n unit: undefined,\n },\n entity2: {\n value: {\n type: 'triggered',\n dp: `accuweather.${instance}.Current.UVIndex`,\n forceType: 'string',\n },\n decimal: undefined,\n factor: undefined,\n unit: undefined,\n },\n icon: {\n true: {\n value: {\n type: 'const',\n constVal: 'solar-power',\n },\n color: {\n type: 'const',\n constVal: Color.MSRed,\n },\n },\n false: {\n value: {\n type: 'const',\n constVal: 'solar-power',\n },\n color: {\n type: 'const',\n constVal: Color.MSGreen,\n },\n },\n scale: {\n type: 'const',\n constVal: { val_min: 0, val_max: 9 },\n },\n maxBri: undefined,\n minBri: undefined,\n },\n text: {\n true: {\n type: 'const',\n constVal: 'UV',\n },\n false: undefined,\n },\n },\n },\n ]);\n }\n }\n if (config.indicatorScreensaverEntity) {\n for (const item of config.indicatorScreensaverEntity) {\n if (item) {\n pageItems.push(await this.getEntityData(item, 'indicator', config));\n }\n }\n }\n if (config.leftScreensaverEntity) {\n for (const item of config.leftScreensaverEntity) {\n if (item) {\n pageItems.push(await this.getEntityData(item, 'left', config));\n }\n }\n }\n if (config.mrIcon1ScreensaverEntity) {\n pageItems.push(await this.getMrEntityData(config.mrIcon1ScreensaverEntity, 'mricon', '1'));\n }\n if (config.mrIcon2ScreensaverEntity) {\n pageItems.push(await this.getMrEntityData(config.mrIcon2ScreensaverEntity, 'mricon', '2'));\n }\n this.log.debug(`pageItems count: ${pageItems.length}`);\n pageItems = pageItems.concat([\n {\n role: 'text',\n dpInit: '',\n type: 'text',\n modeScr: 'time',\n data: {\n entity2: {\n value: {\n type: 'internal',\n dp: '///time',\n },\n dateFormat: {\n type: 'const',\n constVal: { local: 'de', format: { hour: '2-digit', minute: '2-digit' } },\n },\n },\n },\n },\n {\n role: 'text',\n dpInit: '',\n type: 'text',\n modeScr: 'date',\n data: {\n entity2: {\n value: {\n type: 'internal',\n dp: '///date',\n },\n dateFormat: {\n type: 'const',\n constVal: {\n local: 'de',\n format: {\n weekday: 'long',\n month: 'short',\n year: 'numeric',\n day: 'numeric',\n },\n },\n },\n },\n },\n },\n ]);\n pageItems = pageItems.concat(config.nativePageItems || []);\n\n return {\n dpInit: '',\n alwaysOn: 'none',\n uniqueID: 'scr',\n useColor: false,\n config: {\n card: 'screensaver',\n mode: 'standard',\n rotationTime: 0,\n model: 'eu',\n data: undefined,\n },\n pageItems: pageItems,\n };\n }\n\n async getMrEntityData(\n entity: ScriptConfig.ScreenSaverMRElement,\n mode: Types.ScreenSaverPlaces,\n nr: string,\n ): Promise {\n const result: Partial = {\n modeScr: mode,\n type: 'text',\n data: { entity1: {} },\n };\n if (entity.ScreensaverEntity && entity.ScreensaverEntity.endsWith(`Relay.${nr}`)) {\n result.data!.entity1!.value = await this.getFieldAsDataItemConfig(entity.ScreensaverEntity, true);\n } else {\n result.data!.entity1!.value = {\n type: 'internal',\n dp: `cmd/power${nr}`,\n };\n }\n result.data!.icon = {\n true: {\n value: {\n type: 'const',\n constVal: 'lightbulb',\n },\n color: {\n type: 'const',\n constVal: Color.Yellow,\n },\n },\n false: {\n value: {\n type: 'const',\n constVal: 'lightbulb-outline',\n },\n color: {\n type: 'const',\n constVal: Color.HMIOff,\n },\n },\n scale: undefined,\n maxBri: undefined,\n minBri: undefined,\n };\n if (entity.ScreensaverEntityOnColor) {\n result.data!.icon.true!.color = await this.getIconColor(entity.ScreensaverEntityOnColor || this.colorOn);\n }\n if (entity.ScreensaverEntityOffColor) {\n result.data!.icon.false!.color = await this.getIconColor(entity.ScreensaverEntityOffColor || this.colorOff);\n }\n\n if (entity.ScreensaverEntityIconOn) {\n result.data!.icon.true!.value = await this.getFieldAsDataItemConfig(entity.ScreensaverEntityIconOn);\n }\n if (entity.ScreensaverEntityIconOff) {\n result.data!.icon.true!.value = await this.getFieldAsDataItemConfig(entity.ScreensaverEntityIconOff);\n }\n if (entity.ScreensaverEntityValue) {\n result.data!.icon.false!.text = {\n value: await this.getFieldAsDataItemConfig(entity.ScreensaverEntityValue),\n unit: entity.ScreensaverEntityValueUnit\n ? await this.getFieldAsDataItemConfig(entity.ScreensaverEntityValueUnit)\n : undefined,\n decimal: entity.ScreensaverEntityValueDecimalPlace\n ? { type: 'const', constVal: entity.ScreensaverEntityValueDecimalPlace }\n : undefined,\n factor: undefined,\n };\n result.role = 'combined';\n result.data!.icon.true!.text = result.data!.icon.false!.text;\n }\n if (isPageItemDataItemsOptions(result)) {\n return result;\n }\n throw new Error('Invalid data');\n }\n\n async getEntityData(\n entity: ScriptConfig.ScreenSaverElement,\n mode: Types.ScreenSaverPlaces,\n defaultColors: {\n defaultOffColor: ScriptConfig.RGB;\n defaultOnColor: ScriptConfig.RGB;\n },\n ): Promise {\n const result: Partial = {\n modeScr: mode,\n type: 'text',\n data: { entity1: {} },\n };\n result.data!.entity2 = result.data!.entity1;\n\n let obj;\n if (entity.ScreensaverEntity && !entity.ScreensaverEntity.endsWith('.')) {\n obj = await this.adapter.getObjectAsync(entity.ScreensaverEntity);\n result.data!.entity1!.value = await this.getFieldAsDataItemConfig(entity.ScreensaverEntity, true);\n }\n\n if (entity.ScreensaverEntityUnitText || entity.ScreensaverEntityUnitText === '') {\n result.data!.entity1!.unit = await this.getFieldAsDataItemConfig(entity.ScreensaverEntityUnitText);\n } else if (obj && obj.common && obj.common.unit) {\n result.data!.entity1!.unit = { type: 'const', constVal: obj.common.unit };\n }\n\n if (entity.ScreensaverEntityFactor) {\n result.data!.entity1!.factor = { type: 'const', constVal: entity.ScreensaverEntityFactor };\n }\n\n if (entity.ScreensaverEntityDecimalPlaces) {\n result.data!.entity1!.decimal = { type: 'const', constVal: entity.ScreensaverEntityDecimalPlaces };\n }\n if (entity.ScreensaverEntityDateFormat) {\n result.data!.entity1!.dateFormat = {\n type: 'const',\n constVal: { local: 'de', format: entity.ScreensaverEntityDateFormat },\n };\n }\n\n let color: Types.DataItemsOptions | undefined = undefined;\n if (entity.ScreensaverEntityOnColor) {\n color = await this.getIconColor(entity.ScreensaverEntityOnColor || this.colorOn);\n } else if (entity.ScreensaverEntityIconColor && !isIconScaleElement(entity.ScreensaverEntityIconColor)) {\n color = await this.getIconColor(entity.ScreensaverEntityIconColor || this.colorDefault);\n } else {\n color = await this.getIconColor(defaultColors.defaultOnColor || this.colorDefault);\n }\n\n let colorOff: Types.DataItemsOptions | undefined = undefined;\n if (entity.ScreensaverEntityOffColor) {\n colorOff = await this.getIconColor(entity.ScreensaverEntityOffColor);\n } else {\n colorOff = await this.getIconColor(defaultColors.defaultOffColor);\n }\n\n if (entity.ScreensaverEntityIconOn) {\n result.data!.icon = {\n true: { value: await this.getFieldAsDataItemConfig(entity.ScreensaverEntityIconOn) },\n };\n if (color) {\n result.data!.icon.true!.color = color;\n }\n }\n\n if (entity.ScreensaverEntityIconOff) {\n result.data!.icon = {\n ...result.data!.icon,\n ...{\n false: { value: await this.getFieldAsDataItemConfig(entity.ScreensaverEntityIconOff) },\n },\n };\n if (color) {\n result.data!.icon.false!.color = colorOff;\n }\n }\n if (entity.ScreensaverEntityIconColor && isIconScaleElement(entity.ScreensaverEntityIconColor)) {\n result.data!.icon = {\n ...result.data!.icon,\n\n scale: {\n type: 'const',\n constVal: entity.ScreensaverEntityIconColor,\n },\n };\n }\n\n if (entity.ScreensaverEntityOnText) {\n result.data!.text = { true: await this.getFieldAsDataItemConfig(entity.ScreensaverEntityOnText) };\n } else if (entity.ScreensaverEntityText) {\n result.data!.text = { true: await this.getFieldAsDataItemConfig(entity.ScreensaverEntityText) };\n }\n\n if (entity.ScreensaverEntityOffText) {\n result.data!.text = { false: await this.getFieldAsDataItemConfig(entity.ScreensaverEntityOffText) };\n }\n\n if (isPageItemDataItemsOptions(result)) {\n return result;\n }\n throw new Error('Invalid data');\n }\n\n async getFieldAsDataItemConfig(possibleId: string, isTrigger: boolean = false): Promise {\n const state =\n possibleId === '' || possibleId.endsWith('.')\n ? undefined\n : await this.adapter.getForeignStateAsync(possibleId);\n\n if (state !== undefined && state !== null) {\n if (isTrigger) {\n return { type: 'triggered', dp: possibleId };\n }\n return { type: 'state', dp: possibleId };\n }\n return { type: 'const', constVal: possibleId };\n }\n\n async getIconColor(\n item: ScriptConfig.RGB | RGB | ScriptConfig.IconScaleElement | string,\n ): Promise {\n if (isIconScaleElement(item)) {\n //later\n } else if (typeof item === 'string') {\n return await this.getFieldAsDataItemConfig(item);\n } else if (Color.isRGB(item)) {\n return { type: 'const', constVal: item };\n } else if (Color.isScriptRGB(item)) {\n return { type: 'const', constVal: Color.convertScriptRGBtoRGB(item) };\n }\n this.adapter.log.error(`Invalid color value: ${JSON.stringify(item)}`);\n return undefined;\n }\n}\n\nfunction isIconScaleElement(obj: any): obj is ScriptConfig.IconScaleElement {\n return obj && obj.val_min !== undefined && obj.val_max !== undefined;\n}\nfunction isPageItemDataItemsOptions(obj: any): obj is typePageItem.PageItemDataItemsOptions {\n return obj && obj.modeScr && obj.data;\n}\n"], "mappings": "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", - "sourcesContent": ["import { BaseClass } from '../classes/library';\nimport type { NspanelLovelaceUi } from '../types/NspanelLovelaceUi';\nimport type * as typePageItem from '../types/type-pageItem';\nimport type * as Types from '../types/types';\nimport { Color, type RGB } from '../const/Color';\nimport type * as pages from '../types/pages';\nimport { defaultConfig, isConfig, requiredDatapoints, requiredOutdatedDataPoints } from '../const/config-manager-const';\nimport type { panelConfigPartial } from './panel';\nimport { exhaustiveCheck } from '../types/pages';\n\nexport class ConfigManager extends BaseClass {\n //private test: ConfigManager.DeviceState;\n private colorOn: RGB = Color.On;\n private colorOff: RGB = Color.Off;\n private colorDefault: RGB = Color.Off;\n\n constructor(adapter: NspanelLovelaceUi) {\n super(adapter, 'config-manager');\n }\n\n async setScriptConfig(configuration: any): Promise {\n const config = Object.assign(defaultConfig, configuration);\n if (!config || !isConfig(config)) {\n this.log.error(`Invalid configuration from Script: ${config ? JSON.stringify(config) : 'undefined'}`);\n return;\n }\n const panelConfig: Partial = { pages: [] };\n if (!config.panelTopic) {\n this.log.error(`Required field panelTopic is missing in ${config.panelName || 'unknown'}!`);\n return;\n }\n panelConfig.updated = true;\n if (config.panelTopic.endsWith('.cmnd.CustomSend')) {\n panelConfig.topic = config.panelTopic.split('.').slice(0, -2).join('.');\n } else {\n panelConfig.topic = config.panelTopic;\n }\n if (config.panelName) {\n panelConfig.name = config.panelName;\n } else {\n panelConfig.name = `NSPanel-${config.panelTopic}`;\n }\n if (config.defaultColor) {\n this.colorDefault = Color.convertScriptRGBtoRGB(config.defaultColor);\n }\n if (config.defaultOnColor) {\n this.colorOn = Color.convertScriptRGBtoRGB(config.defaultOnColor);\n }\n if (config.defaultOffColor) {\n this.colorOff = Color.convertScriptRGBtoRGB(config.defaultOffColor);\n }\n\n // Screensaver configuration\n panelConfig.pages!.push(await this.getScreensaverConfig(config));\n panelConfig.pages = await this.getGridConfig(config, panelConfig.pages || []);\n\n this.log.debug(`panelConfig: ${JSON.stringify(panelConfig)}`);\n const obj = await this.adapter.getForeignObjectAsync(this.adapter.namespace);\n if (obj) {\n obj.native.scriptConfig = obj.native.scriptConfig || [];\n const index = obj.native.scriptConfig.findIndex((item: any) => item.name === panelConfig.name);\n if (index !== -1) {\n obj.native.scriptConfig[index] = panelConfig;\n } else {\n obj.native.scriptConfig.push(panelConfig);\n }\n await this.adapter.setForeignObjectAsync(this.adapter.namespace, obj);\n }\n }\n async getGridConfig(config: ScriptConfig.Config, pages: pages.PageBaseConfig[]): Promise {\n if (config.pages) {\n for (const page of config.pages.concat(config.subPages || [])) {\n if (!page) {\n continue;\n }\n if (page.type === undefined && page.native) {\n if (page.heading) {\n page.native.config = page.native.config || {};\n page.native.config.data = page.native.config.data || {};\n page.native.config.data.headline = await this.getFieldAsDataItemConfig(page.heading);\n }\n pages.push(page.native);\n continue;\n }\n if (\n page.type !== 'cardGrid' &&\n page.type !== 'cardGrid2' &&\n page.type !== 'cardGrid3' &&\n page.type !== 'cardEntities'\n ) {\n continue;\n }\n if (!page.uniqueName) {\n this.log.error(`Page ${page.heading || 'unknown'} has no uniqueName!`);\n continue;\n }\n const gridItem: pages.PageBaseConfig = {\n dpInit: '',\n alwaysOn: 'none',\n uniqueID: page.uniqueName || '',\n useColor: false,\n config: {\n card: page.type,\n data: {\n headline: await this.getFieldAsDataItemConfig(page.heading || ''),\n },\n },\n pageItems: [],\n };\n if (page.items) {\n for (const item of page.items) {\n if (!item) {\n continue;\n }\n let itemConfig: typePageItem.PageItemDataItemsOptions | undefined = undefined;\n if (item.id && !item.id.endsWith('.')) {\n const obj = await this.adapter.getForeignObjectAsync(item.id);\n if (obj) {\n if (!(obj.common && obj.common.role)) {\n this.log.error(`Role missing in ${item.id}!`);\n continue;\n }\n const role = obj.common.role as ScriptConfig.roles;\n\n // check if role and types are correct\n if (!requiredDatapoints[role]) {\n this.log.warn(`Role ${role} not implemented yet!`);\n continue;\n }\n let ok = true;\n for (const dp in requiredDatapoints[role]) {\n const o =\n dp !== ''\n ? await this.adapter.getForeignObjectAsync(`${item.id}.${dp}`)\n : undefined;\n if (\n !o &&\n !requiredOutdatedDataPoints[role][dp].required &&\n !requiredDatapoints[role][dp].required\n ) {\n continue;\n }\n if (\n !o ||\n o.common.role !== requiredOutdatedDataPoints[role][dp].role ||\n o.common.type !== requiredOutdatedDataPoints[role][dp].type\n ) {\n if (\n !o ||\n o.common.role !== requiredDatapoints[role][dp].role ||\n o.common.type !== requiredDatapoints[role][dp].type\n ) {\n ok = false;\n if (!o) {\n this.log.error(`Datapoint ${item.id}.${dp} is missing and required!`);\n } else {\n this.log.error(\n `Datapoint ${item.id}.${dp} has wrong ` +\n `role: ${o.common.role !== requiredDatapoints[role][dp].role ? `${o.common.role} should be ${requiredDatapoints[role][dp].role}` : `ok`} ` +\n `- type: ${o.common.type !== requiredDatapoints[role][dp].type ? `${o.common.role} should be ${requiredDatapoints[role][dp].type}` : `ok`}`,\n );\n }\n break;\n }\n }\n }\n if (!ok) {\n continue;\n }\n const commonName =\n typeof obj.common.name === 'string'\n ? obj.common.name\n : obj.common.name[this.library.getLocalLanguage()];\n switch (role) {\n case 'timeTable': {\n itemConfig = {\n template: 'text.alias.fahrplan.departure',\n dpInit: item.id,\n };\n break;\n }\n case 'socket':\n case 'light': {\n const tempItem: typePageItem.PageItemDataItemsOptions = {\n type: 'light',\n data: {\n icon: {\n true: {\n value: {\n type: 'const',\n constVal:\n item.icon || role === 'socket'\n ? 'power-socket-de'\n : 'lightbulb',\n },\n color: {\n type: 'const',\n constVal: item.onColor || Color.activated,\n },\n },\n false: {\n value: {\n type: 'const',\n constVal:\n item.icon2 || role === 'socket'\n ? 'power-socket-de'\n : 'lightbulb-outline',\n },\n color: {\n type: 'const',\n constVal: item.offColor || Color.deactivated,\n },\n },\n scale: undefined,\n maxBri: undefined,\n minBri: undefined,\n },\n colorMode: { type: 'const', constVal: false },\n headline: await this.getFieldAsDataItemConfig(\n item.name || commonName || 'Light',\n ),\n entity1: {\n value: { type: 'triggered', dp: `${item.id}.SET` },\n },\n },\n };\n itemConfig = tempItem;\n break;\n }\n\n case 'dimmer': {\n const tempItem: typePageItem.PageItemDataItemsOptions = {\n type: 'light',\n role: 'dimmer',\n data: {\n icon: {\n true: {\n value: {\n type: 'const',\n constVal: item.icon || 'lightbulb',\n },\n color: {\n type: 'const',\n constVal: item.onColor || Color.activated,\n },\n },\n false: {\n value: {\n type: 'const',\n constVal: item.icon2 || 'lightbulb-outline',\n },\n color: {\n type: 'const',\n constVal: item.offColor || Color.deactivated,\n },\n },\n scale: undefined,\n maxBri: item.maxValueBrightness\n ? { type: 'const', constVal: item.maxValueBrightness }\n : undefined,\n minBri: item.minValueBrightness\n ? { type: 'const', constVal: item.minValueBrightness }\n : undefined,\n },\n colorMode: item.colormode\n ? { type: 'const', constVal: !!item.colormode }\n : undefined,\n dimmer: {\n value: { type: 'triggered', dp: `${item.id}.SET` },\n maxScale: item.maxValueBrightness\n ? { type: 'const', constVal: item.maxValueBrightness }\n : undefined,\n minScale: item.minValueBrightness\n ? { type: 'const', constVal: item.minValueBrightness }\n : undefined,\n },\n headline: await this.getFieldAsDataItemConfig(\n item.name || commonName || 'Dimmer',\n ),\n text1: {\n true: {\n type: 'const',\n constVal: `Brightness`,\n },\n },\n entity1: {\n value: { type: 'triggered', dp: `${item.id}.ON_SET` },\n },\n },\n };\n itemConfig = tempItem;\n break;\n }\n case 'hue': {\n const tempItem: typePageItem.PageItemDataItemsOptions = {\n type: 'light',\n role: 'hue',\n data: {\n icon: {\n true: {\n value: {\n type: 'const',\n constVal: item.icon || 'lightbulb',\n },\n color: {\n type: 'const',\n constVal: item.onColor || Color.activated,\n },\n },\n false: {\n value: {\n type: 'const',\n constVal: item.icon2 || 'lightbulb-outline',\n },\n color: {\n type: 'const',\n constVal: item.offColor || Color.deactivated,\n },\n },\n scale: undefined,\n maxBri: item.maxValueBrightness\n ? { type: 'const', constVal: item.maxValueBrightness }\n : undefined,\n minBri: item.minValueBrightness\n ? { type: 'const', constVal: item.minValueBrightness }\n : undefined,\n },\n colorMode: item.colormode\n ? { type: 'const', constVal: !!item.colormode }\n : undefined,\n dimmer: {\n value: { type: 'triggered', dp: `${item.id}.DIMMER` },\n maxScale: item.maxValueBrightness\n ? { type: 'const', constVal: item.maxValueBrightness }\n : undefined,\n minScale: item.minValueBrightness\n ? { type: 'const', constVal: item.minValueBrightness }\n : undefined,\n },\n headline: await this.getFieldAsDataItemConfig(\n item.name || commonName || 'HUE',\n ),\n hue: {\n type: 'triggered',\n dp: `${item.id}.HUE`,\n },\n ct: {\n value: { type: 'triggered', dp: `${item.id}.CT` },\n maxScale: item.maxValueColorTemp\n ? { type: 'const', constVal: item.maxValueColorTemp }\n : undefined,\n minScale: item.minValueColorTemp\n ? { type: 'const', constVal: item.minValueColorTemp }\n : undefined,\n },\n text1: {\n true: {\n type: 'const',\n constVal: `Brightness`,\n },\n },\n text2: {\n true: {\n type: 'const',\n constVal: `Colour temperature`,\n },\n },\n text3: {\n true: {\n type: 'const',\n constVal: `Color`,\n },\n },\n entity1: {\n value: { type: 'triggered', dp: `${item.id}.ON` },\n },\n },\n };\n itemConfig = tempItem;\n break;\n }\n case 'rgb':\n case 'rgbSingle':\n case 'ct':\n case 'blind':\n case 'door':\n case 'window':\n case 'volumeGroup':\n case 'volume':\n case 'info':\n case 'humidity':\n case 'temperature':\n case 'value.temperature':\n case 'value.humidity':\n case 'sensor.door':\n case 'sensor.window':\n case 'thermostat':\n case 'warning':\n case 'cie':\n case 'gate':\n case 'motion':\n case 'buttonSensor':\n case 'button':\n case 'value.time':\n case 'level.timer':\n case 'value.alarmtime':\n case 'level.mode.fan':\n case 'lock':\n case 'slider':\n case 'switch.mode.wlan':\n case 'media':\n case 'airCondition': {\n this.log.error(`Role ${role} not implemented yet!`);\n break;\n }\n default:\n exhaustiveCheck(role);\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n this.log.error(`Role ${role} not implemented yet!`);\n }\n if (itemConfig) {\n gridItem.pageItems.push(itemConfig);\n }\n }\n }\n }\n }\n pages.push(gridItem);\n }\n }\n return pages;\n }\n\n async getScreensaverConfig(config: ScriptConfig.Config): Promise {\n let pageItems: typePageItem.PageItemDataItemsOptions[] = [];\n if (config.bottomScreensaverEntity) {\n for (const item of config.bottomScreensaverEntity) {\n if (item) {\n pageItems.push(await this.getEntityData(item, 'bottom', config));\n }\n }\n }\n // if weatherEntity is set, add alot weather data to screensaver :)\n // only works with accuweather atm\n if (config.weatherEntity) {\n if (config.weatherEntity.startsWith('accuweather.') && config.weatherEntity.endsWith('.')) {\n const instance = config.weatherEntity.split('.')[1];\n pageItems.push({\n template: 'text.accuweather.favorit',\n dpInit: `/^accuweather\\\\.${instance}.+/`,\n modeScr: 'favorit',\n });\n pageItems = pageItems.concat([\n // Bottom 1 - accuWeather.0. Forecast Day 1\n {\n template: 'text.accuweather.sunriseset',\n dpInit: `/^accuweather\\\\.${instance}.Daily.+/`,\n modeScr: 'bottom',\n },\n // Bottom 1 - accuWeather.0. Forecast Day 1\n {\n template: 'text.accuweather.bot2values',\n dpInit: `/^accuweather\\\\.${instance}.+?d1$/g`,\n modeScr: 'bottom',\n },\n\n // Bottom 2 - accuWeather.0. Forecast Day 2\n {\n template: 'text.accuweather.bot2values',\n dpInit: `/^accuweather\\\\.${instance}.+?d2$/`,\n modeScr: 'bottom',\n },\n\n // Bottom 3 - accuWeather.0. Forecast Day 3\n {\n template: 'text.accuweather.bot2values',\n dpInit: `/^accuweather\\\\.${instance}.+?d3$/`,\n modeScr: 'bottom',\n },\n\n // Bottom 4 - accuWeather.0. Forecast Day 4\n {\n template: 'text.accuweather.bot2values',\n dpInit: `/^accuweather\\\\.${instance}.+?d4$/`,\n modeScr: 'bottom',\n },\n // Bottom 5 - accuWeather.0. Forecast Day 5\n {\n template: 'text.accuweather.bot2values',\n dpInit: `/^accuweather\\\\.${instance}.+?d5$/`,\n modeScr: 'bottom',\n },\n // Bottom 7 - Sonnenaufgang - Sonnenuntergang im Wechsel\n\n // Bottom 8 - Windgeschwindigkeit\n {\n role: 'text',\n dpInit: '',\n type: 'text',\n modeScr: 'bottom',\n data: {\n entity1: {\n value: {\n type: 'triggered',\n dp: `accuweather.${instance}.Current.WindSpeed`,\n },\n decimal: {\n type: 'const',\n constVal: 1,\n },\n factor: {\n type: 'const',\n constVal: 1000 / 3600,\n },\n unit: undefined,\n },\n entity2: {\n value: {\n type: 'triggered',\n dp: `accuweather.${instance}.Current.WindSpeed`,\n },\n decimal: {\n type: 'const',\n constVal: 1,\n },\n factor: {\n type: 'const',\n constVal: 1000 / 3600,\n },\n unit: {\n type: 'const',\n constVal: 'm/s',\n },\n },\n icon: {\n true: {\n value: {\n type: 'const',\n constVal: 'weather-windy',\n },\n color: {\n type: 'const',\n constVal: Color.MSRed,\n },\n },\n false: {\n value: {\n type: 'const',\n constVal: 'weather-windy',\n },\n color: {\n type: 'const',\n constVal: Color.MSGreen,\n },\n },\n scale: {\n type: 'const',\n constVal: { val_min: 0, val_max: 80 },\n },\n maxBri: undefined,\n minBri: undefined,\n },\n text: {\n true: {\n type: 'const',\n constVal: 'Wind',\n },\n false: undefined,\n },\n },\n },\n\n // Bottom 9 - B\u00F6en\n {\n role: 'text',\n dpInit: '',\n type: 'text',\n modeScr: 'bottom',\n data: {\n entity1: {\n value: {\n type: 'triggered',\n dp: `accuweather.${instance}.Current.WindGust`,\n },\n decimal: {\n type: 'const',\n constVal: 1,\n },\n factor: {\n type: 'const',\n constVal: 1000 / 3600,\n },\n unit: undefined,\n },\n entity2: {\n value: {\n type: 'triggered',\n dp: `accuweather.${instance}.Current.WindGust`,\n },\n decimal: {\n type: 'const',\n constVal: 1,\n },\n factor: {\n type: 'const',\n constVal: 1000 / 3600,\n },\n unit: {\n type: 'const',\n constVal: 'm/s',\n },\n },\n icon: {\n true: {\n value: {\n type: 'const',\n constVal: 'weather-tornado',\n },\n color: {\n type: 'const',\n constVal: Color.MSRed,\n },\n },\n false: {\n value: {\n type: 'const',\n constVal: 'weather-tornado',\n },\n color: {\n type: 'const',\n constVal: Color.MSGreen,\n },\n },\n scale: {\n type: 'const',\n constVal: { val_min: 0, val_max: 80 },\n },\n maxBri: undefined,\n minBri: undefined,\n },\n text: {\n true: {\n type: 'const',\n constVal: 'B\u00F6en',\n },\n false: undefined,\n },\n },\n },\n\n // Bottom 10 - Windrichtung\n {\n role: 'text',\n dpInit: '',\n type: 'text',\n modeScr: 'bottom',\n data: {\n entity2: {\n value: {\n type: 'triggered',\n dp: `accuweather.${instance}.Current.WindDirectionText`,\n },\n decimal: {\n type: 'const',\n constVal: 0,\n },\n factor: undefined,\n unit: {\n type: 'const',\n constVal: '\u00B0',\n },\n },\n icon: {\n true: {\n value: {\n type: 'const',\n constVal: 'windsock',\n },\n color: {\n type: 'const',\n constVal: '#FFFFFF',\n },\n },\n false: {\n value: undefined,\n color: undefined,\n },\n scale: undefined,\n maxBri: undefined,\n minBri: undefined,\n },\n text: {\n true: {\n type: 'const',\n constVal: 'Windr.',\n },\n false: undefined,\n },\n },\n },\n\n // Bottom 12 - UV-Index\n {\n role: 'text',\n dpInit: '',\n type: 'text',\n modeScr: 'bottom',\n data: {\n entity1: {\n value: {\n type: 'triggered',\n dp: `accuweather.${instance}.Current.UVIndex`,\n },\n decimal: undefined,\n factor: undefined,\n unit: undefined,\n },\n entity2: {\n value: {\n type: 'triggered',\n dp: `accuweather.${instance}.Current.UVIndex`,\n forceType: 'string',\n },\n decimal: undefined,\n factor: undefined,\n unit: undefined,\n },\n icon: {\n true: {\n value: {\n type: 'const',\n constVal: 'solar-power',\n },\n color: {\n type: 'const',\n constVal: Color.MSRed,\n },\n },\n false: {\n value: {\n type: 'const',\n constVal: 'solar-power',\n },\n color: {\n type: 'const',\n constVal: Color.MSGreen,\n },\n },\n scale: {\n type: 'const',\n constVal: { val_min: 0, val_max: 9 },\n },\n maxBri: undefined,\n minBri: undefined,\n },\n text: {\n true: {\n type: 'const',\n constVal: 'UV',\n },\n false: undefined,\n },\n },\n },\n ]);\n }\n }\n if (config.indicatorScreensaverEntity) {\n for (const item of config.indicatorScreensaverEntity) {\n if (item) {\n pageItems.push(await this.getEntityData(item, 'indicator', config));\n }\n }\n }\n if (config.leftScreensaverEntity) {\n for (const item of config.leftScreensaverEntity) {\n if (item) {\n pageItems.push(await this.getEntityData(item, 'left', config));\n }\n }\n }\n if (config.mrIcon1ScreensaverEntity) {\n pageItems.push(await this.getMrEntityData(config.mrIcon1ScreensaverEntity, 'mricon', '1'));\n }\n if (config.mrIcon2ScreensaverEntity) {\n pageItems.push(await this.getMrEntityData(config.mrIcon2ScreensaverEntity, 'mricon', '2'));\n }\n this.log.debug(`pageItems count: ${pageItems.length}`);\n pageItems = pageItems.concat([\n {\n role: 'text',\n dpInit: '',\n type: 'text',\n modeScr: 'time',\n data: {\n entity2: {\n value: {\n type: 'internal',\n dp: '///time',\n },\n dateFormat: {\n type: 'const',\n constVal: { local: 'de', format: { hour: '2-digit', minute: '2-digit' } },\n },\n },\n },\n },\n {\n role: 'text',\n dpInit: '',\n type: 'text',\n modeScr: 'date',\n data: {\n entity2: {\n value: {\n type: 'internal',\n dp: '///date',\n },\n dateFormat: {\n type: 'const',\n constVal: {\n local: 'de',\n format: {\n weekday: 'long',\n month: 'short',\n year: 'numeric',\n day: 'numeric',\n },\n },\n },\n },\n },\n },\n ]);\n pageItems = pageItems.concat(config.nativePageItems || []);\n\n return {\n dpInit: '',\n alwaysOn: 'none',\n uniqueID: 'scr',\n useColor: false,\n config: {\n card: 'screensaver',\n mode: 'standard',\n rotationTime: 0,\n model: 'eu',\n data: undefined,\n },\n pageItems: pageItems,\n };\n }\n\n async getMrEntityData(\n entity: ScriptConfig.ScreenSaverMRElement,\n mode: Types.ScreenSaverPlaces,\n nr: string,\n ): Promise {\n const result: Partial = {\n modeScr: mode,\n type: 'text',\n data: { entity1: {} },\n };\n if (entity.ScreensaverEntity && entity.ScreensaverEntity.endsWith(`Relay.${nr}`)) {\n result.data!.entity1!.value = await this.getFieldAsDataItemConfig(entity.ScreensaverEntity, true);\n } else {\n result.data!.entity1!.value = {\n type: 'internal',\n dp: `cmd/power${nr}`,\n };\n }\n result.data!.icon = {\n true: {\n value: {\n type: 'const',\n constVal: 'lightbulb',\n },\n color: {\n type: 'const',\n constVal: Color.Yellow,\n },\n },\n false: {\n value: {\n type: 'const',\n constVal: 'lightbulb-outline',\n },\n color: {\n type: 'const',\n constVal: Color.HMIOff,\n },\n },\n scale: undefined,\n maxBri: undefined,\n minBri: undefined,\n };\n if (entity.ScreensaverEntityOnColor) {\n result.data!.icon.true!.color = await this.getIconColor(entity.ScreensaverEntityOnColor || this.colorOn);\n }\n if (entity.ScreensaverEntityOffColor) {\n result.data!.icon.false!.color = await this.getIconColor(entity.ScreensaverEntityOffColor || this.colorOff);\n }\n\n if (entity.ScreensaverEntityIconOn) {\n result.data!.icon.true!.value = await this.getFieldAsDataItemConfig(entity.ScreensaverEntityIconOn);\n }\n if (entity.ScreensaverEntityIconOff) {\n result.data!.icon.true!.value = await this.getFieldAsDataItemConfig(entity.ScreensaverEntityIconOff);\n }\n if (entity.ScreensaverEntityValue) {\n result.data!.icon.false!.text = {\n value: await this.getFieldAsDataItemConfig(entity.ScreensaverEntityValue),\n unit: entity.ScreensaverEntityValueUnit\n ? await this.getFieldAsDataItemConfig(entity.ScreensaverEntityValueUnit)\n : undefined,\n decimal: entity.ScreensaverEntityValueDecimalPlace\n ? { type: 'const', constVal: entity.ScreensaverEntityValueDecimalPlace }\n : undefined,\n factor: undefined,\n };\n result.role = 'combined';\n result.data!.icon.true!.text = result.data!.icon.false!.text;\n }\n if (isPageItemDataItemsOptions(result)) {\n return result;\n }\n throw new Error('Invalid data');\n }\n\n async getEntityData(\n entity: ScriptConfig.ScreenSaverElement,\n mode: Types.ScreenSaverPlaces,\n defaultColors: {\n defaultOffColor: ScriptConfig.RGB;\n defaultOnColor: ScriptConfig.RGB;\n },\n ): Promise {\n const result: Partial = {\n modeScr: mode,\n type: 'text',\n data: { entity1: {} },\n };\n result.data!.entity2 = result.data!.entity1;\n\n let obj;\n if (entity.ScreensaverEntity && !entity.ScreensaverEntity.endsWith('.')) {\n obj = await this.adapter.getObjectAsync(entity.ScreensaverEntity);\n result.data!.entity1!.value = await this.getFieldAsDataItemConfig(entity.ScreensaverEntity, true);\n }\n\n if (entity.ScreensaverEntityUnitText || entity.ScreensaverEntityUnitText === '') {\n result.data!.entity1!.unit = await this.getFieldAsDataItemConfig(entity.ScreensaverEntityUnitText);\n } else if (obj && obj.common && obj.common.unit) {\n result.data!.entity1!.unit = { type: 'const', constVal: obj.common.unit };\n }\n\n if (entity.ScreensaverEntityFactor) {\n result.data!.entity1!.factor = { type: 'const', constVal: entity.ScreensaverEntityFactor };\n }\n\n if (entity.ScreensaverEntityDecimalPlaces) {\n result.data!.entity1!.decimal = { type: 'const', constVal: entity.ScreensaverEntityDecimalPlaces };\n }\n if (entity.ScreensaverEntityDateFormat) {\n result.data!.entity1!.dateFormat = {\n type: 'const',\n constVal: { local: 'de', format: entity.ScreensaverEntityDateFormat },\n };\n }\n\n let color: Types.DataItemsOptions | undefined = undefined;\n if (entity.ScreensaverEntityOnColor) {\n color = await this.getIconColor(entity.ScreensaverEntityOnColor || this.colorOn);\n } else if (entity.ScreensaverEntityIconColor && !isIconScaleElement(entity.ScreensaverEntityIconColor)) {\n color = await this.getIconColor(entity.ScreensaverEntityIconColor || this.colorDefault);\n } else {\n color = await this.getIconColor(defaultColors.defaultOnColor || this.colorDefault);\n }\n\n let colorOff: Types.DataItemsOptions | undefined = undefined;\n if (entity.ScreensaverEntityOffColor) {\n colorOff = await this.getIconColor(entity.ScreensaverEntityOffColor);\n } else {\n colorOff = await this.getIconColor(defaultColors.defaultOffColor);\n }\n\n if (entity.ScreensaverEntityIconOn) {\n result.data!.icon = {\n true: { value: await this.getFieldAsDataItemConfig(entity.ScreensaverEntityIconOn) },\n };\n if (color) {\n result.data!.icon.true!.color = color;\n }\n }\n\n if (entity.ScreensaverEntityIconOff) {\n result.data!.icon = {\n ...result.data!.icon,\n ...{\n false: { value: await this.getFieldAsDataItemConfig(entity.ScreensaverEntityIconOff) },\n },\n };\n if (color) {\n result.data!.icon.false!.color = colorOff;\n }\n }\n if (entity.ScreensaverEntityIconColor && isIconScaleElement(entity.ScreensaverEntityIconColor)) {\n result.data!.icon = {\n ...result.data!.icon,\n\n scale: {\n type: 'const',\n constVal: entity.ScreensaverEntityIconColor,\n },\n };\n }\n\n if (entity.ScreensaverEntityOnText) {\n result.data!.text = { true: await this.getFieldAsDataItemConfig(entity.ScreensaverEntityOnText) };\n } else if (entity.ScreensaverEntityText) {\n result.data!.text = { true: await this.getFieldAsDataItemConfig(entity.ScreensaverEntityText) };\n }\n\n if (entity.ScreensaverEntityOffText) {\n result.data!.text = { false: await this.getFieldAsDataItemConfig(entity.ScreensaverEntityOffText) };\n }\n\n if (isPageItemDataItemsOptions(result)) {\n return result;\n }\n throw new Error('Invalid data');\n }\n\n async getFieldAsDataItemConfig(possibleId: string, isTrigger: boolean = false): Promise {\n const state =\n possibleId === '' || possibleId.endsWith('.')\n ? undefined\n : await this.adapter.getForeignStateAsync(possibleId);\n\n if (state !== undefined && state !== null) {\n if (isTrigger) {\n return { type: 'triggered', dp: possibleId };\n }\n return { type: 'state', dp: possibleId };\n }\n return { type: 'const', constVal: possibleId };\n }\n\n async getIconColor(\n item: ScriptConfig.RGB | RGB | ScriptConfig.IconScaleElement | string,\n ): Promise {\n if (isIconScaleElement(item)) {\n //later\n } else if (typeof item === 'string') {\n return await this.getFieldAsDataItemConfig(item);\n } else if (Color.isRGB(item)) {\n return { type: 'const', constVal: item };\n } else if (Color.isScriptRGB(item)) {\n return { type: 'const', constVal: Color.convertScriptRGBtoRGB(item) };\n }\n this.adapter.log.error(`Invalid color value: ${JSON.stringify(item)}`);\n return undefined;\n }\n}\n\nfunction isIconScaleElement(obj: any): obj is ScriptConfig.IconScaleElement {\n return obj && obj.val_min !== undefined && obj.val_max !== undefined;\n}\nfunction isPageItemDataItemsOptions(obj: any): obj is typePageItem.PageItemDataItemsOptions {\n return obj && obj.modeScr && obj.data;\n}\n"], - "mappings": "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", "names": [] } From b86da323c46a31d31de422bfa05e141c7a1d3227 Mon Sep 17 00:00:00 2001 From: ticaki Date: Sun, 16 Feb 2025 16:16:06 +0100 Subject: [PATCH 2/3] update yml --- .github/workflows/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/action.yml b/.github/workflows/action.yml index dcb1321..e22a8e8 100644 --- a/.github/workflows/action.yml +++ b/.github/workflows/action.yml @@ -8,4 +8,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: kentaro-m/auto-assign-action@v2.0.0 - configuration-path: '.github/some_name_for_configs.yml' # Only needed if you use something other than .github/auto_assign.yml \ No newline at end of file + configuration-path: '.github/workflow/auto_assign.yml' # Only needed if you use something other than .github/auto_assign.yml \ No newline at end of file From 7182a275a25b242902ad8e3131711b5d264d1974 Mon Sep 17 00:00:00 2001 From: ticaki Date: Sun, 16 Feb 2025 16:21:02 +0100 Subject: [PATCH 3/3] maybe now --- .github/{workflows => }/auto_assign.yml | 0 .github/workflows/action.yml | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename .github/{workflows => }/auto_assign.yml (100%) diff --git a/.github/workflows/auto_assign.yml b/.github/auto_assign.yml similarity index 100% rename from .github/workflows/auto_assign.yml rename to .github/auto_assign.yml diff --git a/.github/workflows/action.yml b/.github/workflows/action.yml index e22a8e8..d07b377 100644 --- a/.github/workflows/action.yml +++ b/.github/workflows/action.yml @@ -8,4 +8,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: kentaro-m/auto-assign-action@v2.0.0 - configuration-path: '.github/workflow/auto_assign.yml' # Only needed if you use something other than .github/auto_assign.yml \ No newline at end of file + configuration-path: '.github/auto_assign.yml' # Only needed if you use something other than .github/auto_assign.yml \ No newline at end of file