+
+## TypeScript (NSPanel.ts) Konstanten
+
+nachfolgende Konstante ist für die Menüfarbe reserviert und kann individuell durch eigene RGB-Farbwerte angepasst werden.
+```typescript
+//Menu Icon Colors
+const Menu: RGB = { red: 150, green: 150, blue: 100 };
+```
+
+## PageItem - Parameter
+### colorScale
+
+
+
+innerhalb des PageItems kann das Icon im Alias des Gerätetypen "info" ebenfalls einen Indikatorwert annehmen:
+> _**Wenn colorScale im PageItem vorhanden ist, werden gesetzte `offColor` und `onColor` dabei ignoriert. Es wird dann auschließlich der Parameter colorScale ausgewertet.**_
+```typescript
+colorScale: {'val_min': 0, 'val_max': 100, 'val_best': 50 }
+```
+> _**val_best ist hierbei Optional und stellt den Idealwert dar!**_
+
+weiter Beispiele:
+```typescript
+{ id: AliasPath + 'Tasmota.Wifi.RSSI', name: 'RSSI', icon: 'signal', unit: '%', colorScale: {'val_min': 100, 'val_max': 0} },
+{ id: AliasPath + 'Tasmota.Wifi.Signal', name: 'Wifi-Signal', icon: 'signal-distance-variant', unit: 'dBm', colorScale: {'val_min': 0, 'val_max': -100} },
+{ id: AliasPath + 'Sensor.ANALOG.Temperature', name: 'Raum Temperatur', icon: 'home-thermometer-outline', unit: '°C', colorScale: {'val_min': 0, 'val_max': 40, 'val_best': 22 } },
+{ id: AliasPath + 'Sensor.ESP32.Temperature', name: 'ESP Temperatur', icon: 'thermometer', unit: '°C', colorScale: {'val_min': 0, 'val_max': 100, 'val_best': 50 } },
+```
+
+## TypeScript (NSPanel.ts) Variablendefinition
+
+nachfolgend die Seiten- und Menüdefinition aus dem TS-Script ab v4.3.3
+```typescript
+/***********************************************************************************************
+ ** Service Pages mit Auto-Alias (Nachfolgende Seiten werden mit Alias automatisch angelegt) **
+ ** https://github.com/joBr99/nspanel-lovelace-ui/wiki/NSPanel-Service-Men%C3%BC **
+ ***********************************************************************************************/
+
+/* DE: German
+ Wenn das Service Menü abgesichert werden soll, kann eine cardUnlock vorgeschaltet werden.
+ Für diesen Fall ist folgende Vorgehensweise erforderlich:
+ - cardUnlock Seite "Unlock_Service" in der Config unter pages auskommentieren ("//" entfernen)
+ - Servicemenü aus pages "NSPanel_Service" unter pages kommentieren ("//" hinzufügen)
+*/
+
+/*************************************************************************************************
+ ** Service pages with auto alias (subsequent pages are automatically created with alias) **
+ ** https://github.com/joBr99/nspanel-lovelace-ui/wiki/NSPanel-Service-Men%C3%BC **
+ ************************************************************************************************/
+
+/* EN: English
+ If the service menu needs to be secured, a cardUnlock can be installed upstream.
+ In this case, the following procedure is required:
+ - comment out cardUnlock page "Unlock_Service" in the config under pages (remove "//")
+ - Comment service menu from pages "NSPanel_Service" under pages (add "//")
+*/
+
+//Level 0 (if service pages are used with cardUnlock)
+let Unlock_Service: PageType = {
+ type: 'cardUnlock',
+ heading: findLocaleServMenu('service_pages'),
+ useColor: true,
+ items: [{ id: 'alias.0.NSPanel.Unlock', targetPage: 'NSPanel_Service_SubPage', autoCreateALias: true }],
+};
+
+//Level_0 (if service pages are used without cardUnlock)
+let NSPanel_Service: PageType = {
+ type: 'cardEntities',
+ heading: findLocaleServMenu('service_menu'),
+ useColor: true,
+ items: [
+ { navigate: true, id: 'NSPanel_Infos', icon: 'information-outline', offColor: Menu, onColor: Menu, name: findLocaleServMenu('infos'), buttonText: findLocaleServMenu('more') },
+ { navigate: true, id: 'NSPanel_Einstellungen', icon: 'monitor-edit', offColor: Menu, onColor: Menu, name: findLocaleServMenu('settings'), buttonText: findLocaleServMenu('more') },
+ { navigate: true, id: 'NSPanel_Firmware', icon: 'update', offColor: Menu, onColor: Menu, name: findLocaleServMenu('firmware'), buttonText: findLocaleServMenu('more') },
+ { id: AliasPath + 'Config.rebootNSPanel', name: findLocaleServMenu('reboot'), icon: 'refresh', offColor: MSRed, onColor: MSGreen, buttonText: findLocaleServMenu('start') },
+ ],
+};
+
+//Level_0 (if service pages are used with cardUnlock)
+let NSPanel_Service_SubPage: PageType = {
+ type: 'cardEntities',
+ heading: findLocaleServMenu('service_menu'),
+ useColor: true,
+ subPage: true,
+ parent: Unlock_Service,
+ home: 'Unlock_Service',
+ items: [
+ { navigate: true, id: 'NSPanel_Infos', icon: 'information-outline', offColor: Menu, onColor: Menu, name: findLocaleServMenu('infos'), buttonText: findLocaleServMenu('more') },
+ { navigate: true, id: 'NSPanel_Einstellungen', icon: 'monitor-edit', offColor: Menu, onColor: Menu, name: findLocaleServMenu('settings'), buttonText: findLocaleServMenu('more') },
+ { navigate: true, id: 'NSPanel_Firmware', icon: 'update', offColor: Menu, onColor: Menu, name: findLocaleServMenu('firmware'), buttonText: findLocaleServMenu('more') },
+ { id: AliasPath + 'Config.rebootNSPanel', name: findLocaleServMenu('reboot'), icon: 'refresh', offColor: MSRed, onColor: MSGreen, buttonText: findLocaleServMenu('start') },
+ ],
+};
+
+//Level_1
+let NSPanel_Infos: PageType = {
+ type: 'cardEntities',
+ heading: findLocaleServMenu('nspanel_infos'),
+ useColor: true,
+ subPage: true,
+ parent: NSPanel_Service,
+ home: 'NSPanel_Service',
+ items: [
+ { navigate: true, id: 'NSPanel_Wifi_Info_1', icon: 'wifi', offColor: Menu, onColor: Menu, name: findLocaleServMenu('wifi'), buttonText: findLocaleServMenu('more') },
+ { navigate: true, id: 'NSPanel_Sensoren', icon: 'memory', offColor: Menu, onColor: Menu, name: findLocaleServMenu('sensors_hardware'), buttonText: findLocaleServMenu('more') },
+ {
+ navigate: true,
+ id: 'NSPanel_IoBroker',
+ icon: 'information-outline',
+ offColor: Menu,
+ onColor: Menu,
+ name: findLocaleServMenu('info_iobroker'),
+ buttonText: findLocaleServMenu('more'),
+ },
+ { id: AliasPath + 'Config.Update.UpdateMessage', name: findLocaleServMenu('update_message'), icon: 'message-alert-outline', offColor: HMIOff, onColor: MSGreen },
+ ],
+};
+//Level_2
+let NSPanel_Wifi_Info_1: PageType = {
+ type: 'cardEntities',
+ heading: findLocaleServMenu('nspanel_wifi1'),
+ useColor: true,
+ subPage: true,
+ parent: NSPanel_Infos,
+ next: 'NSPanel_Wifi_Info_2',
+ items: [
+ { id: AliasPath + 'ipAddress', name: findLocaleServMenu('ip_address'), icon: 'ip-network-outline', offColor: Menu, onColor: Menu },
+ { id: AliasPath + 'Tasmota.Wifi.BSSId', name: findLocaleServMenu('mac_address'), icon: 'check-network', offColor: Menu, onColor: Menu },
+ { id: AliasPath + 'Tasmota.Wifi.RSSI', name: findLocaleServMenu('rssi'), icon: 'signal', unit: '%', colorScale: { val_min: 100, val_max: 0 } },
+ { id: AliasPath + 'Tasmota.Wifi.Signal', name: findLocaleServMenu('wifi_signal'), icon: 'signal-distance-variant', unit: 'dBm', colorScale: { val_min: 0, val_max: -100 } },
+ ],
+};
+
+let NSPanel_Wifi_Info_2: PageType = {
+ type: 'cardEntities',
+ heading: findLocaleServMenu('nspanel_wifi2'),
+ useColor: true,
+ subPage: true,
+ prev: 'NSPanel_Wifi_Info_1',
+ home: 'NSPanel_Service',
+ items: [
+ { id: AliasPath + 'Tasmota.Wifi.SSId', name: findLocaleServMenu('ssid'), icon: 'signal-distance-variant', offColor: Menu, onColor: Menu },
+ { id: AliasPath + 'Tasmota.Wifi.Mode', name: findLocaleServMenu('mode'), icon: 'signal-distance-variant', offColor: Menu, onColor: Menu },
+ { id: AliasPath + 'Tasmota.Wifi.Channel', name: findLocaleServMenu('channel'), icon: 'timeline-clock-outline', offColor: Menu, onColor: Menu },
+ { id: AliasPath + 'Tasmota.Wifi.AP', name: findLocaleServMenu('accesspoint'), icon: 'router-wireless-settings', offColor: Menu, onColor: Menu },
+ ],
+};
+
+let NSPanel_Sensoren: PageType = {
+ type: 'cardEntities',
+ heading: findLocaleServMenu('sensors1'),
+ useColor: true,
+ subPage: true,
+ parent: NSPanel_Infos,
+ next: 'NSPanel_Hardware',
+ items: [
+ {
+ id: AliasPath + 'Sensor.ANALOG.Temperature',
+ name: findLocaleServMenu('room_temperature'),
+ icon: 'home-thermometer-outline',
+ unit: '°C',
+ colorScale: { val_min: 0, val_max: 40, val_best: 22 },
+ },
+ {
+ id: AliasPath + 'Sensor.ESP32.Temperature',
+ name: findLocaleServMenu('esp_temperature'),
+ icon: 'thermometer',
+ unit: '°C',
+ colorScale: { val_min: 0, val_max: 100, val_best: 50 },
+ },
+ { id: AliasPath + 'Sensor.TempUnit', name: findLocaleServMenu('temperature_unit'), icon: 'temperature-celsius', offColor: Menu, onColor: Menu },
+ { id: AliasPath + 'Sensor.Time', name: findLocaleServMenu('refresh'), icon: 'clock-check-outline', offColor: Menu, onColor: Menu },
+ ],
+};
+
+let NSPanel_Hardware: PageType = {
+ type: 'cardEntities',
+ heading: findLocaleServMenu('hardware2'),
+ useColor: true,
+ subPage: true,
+ prev: 'NSPanel_Sensoren',
+ home: 'NSPanel_Service',
+ items: [
+ { id: AliasPath + 'Tasmota.Product', name: findLocaleServMenu('product'), icon: 'devices', offColor: Menu, onColor: Menu },
+ { id: AliasPath + 'Tasmota.Hardware', name: findLocaleServMenu('esp32_hardware'), icon: 'memory', offColor: Menu, onColor: Menu },
+ { id: AliasPath + 'Display.Model', name: findLocaleServMenu('nspanel_version'), offColor: Menu, onColor: Menu },
+ { id: AliasPath + 'Tasmota.Uptime', name: findLocaleServMenu('operating_time'), icon: 'timeline-clock-outline', offColor: Menu, onColor: Menu },
+ ],
+};
+
+let NSPanel_IoBroker: PageType = {
+ type: 'cardEntities',
+ heading: findLocaleServMenu('info_iobroker'),
+ useColor: true,
+ subPage: true,
+ parent: NSPanel_Infos,
+ home: 'NSPanel_Service',
+ items: [
+ { id: AliasPath + 'IoBroker.ScriptVersion', name: findLocaleServMenu('script_version_nspanelts'), offColor: Menu, onColor: Menu },
+ { id: AliasPath + 'IoBroker.NodeJSVersion', name: findLocaleServMenu('nodejs_version'), offColor: Menu, onColor: Menu },
+ { id: AliasPath + 'IoBroker.JavaScriptVersion', name: findLocaleServMenu('instance_javascript'), offColor: Menu, onColor: Menu },
+ { id: AliasPath + 'IoBroker.ScriptName', name: findLocaleServMenu('scriptname'), offColor: Menu, onColor: Menu },
+ ],
+};
+
+//Level_1
+let NSPanel_Einstellungen: PageType = {
+ type: 'cardGrid',
+ heading: findLocaleServMenu('settings'),
+ useColor: true,
+ subPage: true,
+ parent: NSPanel_Service,
+ home: 'NSPanel_Service',
+ items: [
+ {
+ navigate: true,
+ id: 'NSPanel_Screensaver',
+ icon: 'monitor-dashboard',
+ offColor: Menu,
+ onColor: Menu,
+ name: findLocaleServMenu('screensaver'),
+ buttonText: findLocaleServMenu('more'),
+ },
+ { navigate: true, id: 'NSPanel_Relays', icon: 'electric-switch', offColor: Menu, onColor: Menu, name: findLocaleServMenu('relays'), buttonText: findLocaleServMenu('more') },
+ { id: AliasPath + 'Config.temperatureUnitNumber', icon: 'gesture-double-tap', name: findLocaleServMenu('temp_unit'), offColor: Menu, onColor: Menu, modeList: ['°C', '°F', 'K'] },
+ {
+ id: AliasPath + 'Config.localeNumber',
+ icon: 'select-place',
+ name: findLocaleServMenu('language'),
+ offColor: Menu,
+ onColor: Menu,
+ modeList: [
+ 'en-US',
+ 'de-DE',
+ 'nl-NL',
+ 'da-DK',
+ 'es-ES',
+ 'fr-FR',
+ 'it-IT',
+ 'ru-RU',
+ 'nb-NO',
+ 'nn-NO',
+ 'pl-PL',
+ 'pt-PT',
+ 'af-ZA',
+ 'ar-SY',
+ 'bg-BG',
+ 'ca-ES',
+ 'cs-CZ',
+ 'el-GR',
+ 'et-EE',
+ 'fa-IR',
+ 'fi-FI',
+ 'he-IL',
+ 'hr-xx',
+ 'hu-HU',
+ 'hy-AM',
+ 'id-ID',
+ 'is-IS',
+ 'lb-xx',
+ 'lt-LT',
+ 'ro-RO',
+ 'sk-SK',
+ 'sl-SI',
+ 'sv-SE',
+ 'th-TH',
+ 'tr-TR',
+ 'uk-UA',
+ 'vi-VN',
+ 'zh-CN',
+ 'zh-TW',
+ ],
+ },
+ { navigate: true, id: 'NSPanel_Script', icon: 'code-json', offColor: Menu, onColor: Menu, name: findLocaleServMenu('script'), buttonText: findLocaleServMenu('more') },
+ ],
+};
+
+//Level_2
+let NSPanel_Screensaver: PageType = {
+ type: 'cardGrid',
+ heading: findLocaleServMenu('screensaver'),
+ useColor: true,
+ subPage: true,
+ parent: NSPanel_Einstellungen,
+ home: 'NSPanel_Service',
+ items: [
+ { navigate: true, id: 'NSPanel_ScreensaverDimmode', icon: 'sun-clock', offColor: Menu, onColor: Menu, name: findLocaleServMenu('dimmode') },
+ { navigate: true, id: 'NSPanel_ScreensaverBrightness', icon: 'brightness-5', offColor: Menu, onColor: Menu, name: findLocaleServMenu('brightness') },
+ { navigate: true, id: 'NSPanel_ScreensaverLayout', icon: 'page-next-outline', offColor: Menu, onColor: Menu, name: findLocaleServMenu('layout') },
+ { navigate: true, id: 'NSPanel_ScreensaverWeather', icon: 'weather-partly-rainy', offColor: Menu, onColor: Menu, name: findLocaleServMenu('weather') },
+ { navigate: true, id: 'NSPanel_ScreensaverDateformat', icon: 'calendar-expand-horizontal', offColor: Menu, onColor: Menu, name: findLocaleServMenu('date_format') },
+ { navigate: true, id: 'NSPanel_ScreensaverIndicators', icon: 'monitor-edit', offColor: Menu, onColor: Menu, name: findLocaleServMenu('indicators') },
+ ],
+};
+
+//Level_3
+let NSPanel_ScreensaverDimmode: PageType = {
+ type: 'cardEntities',
+ heading: findLocaleServMenu('dimmode'),
+ useColor: true,
+ subPage: true,
+ parent: NSPanel_Screensaver,
+ home: 'NSPanel_Service',
+ items: [
+ { id: AliasPath + 'Dimmode.brightnessDay', name: findLocaleServMenu('brightness_day'), icon: 'brightness-5', offColor: Menu, onColor: Menu, minValue: 5, maxValue: 10 },
+ { id: AliasPath + 'Dimmode.brightnessNight', name: findLocaleServMenu('brightness_night'), icon: 'brightness-4', offColor: Menu, onColor: Menu, minValue: 0, maxValue: 4 },
+ { id: AliasPath + 'Dimmode.hourDay', name: findLocaleServMenu('hour_day'), icon: 'sun-clock', offColor: Menu, onColor: Menu, minValue: 0, maxValue: 23 },
+ { id: AliasPath + 'Dimmode.hourNight', name: findLocaleServMenu('hour_night'), icon: 'sun-clock-outline', offColor: Menu, onColor: Menu, minValue: 0, maxValue: 23 },
+ ],
+};
+
+//Level_3
+let NSPanel_ScreensaverBrightness: PageType = {
+ type: 'cardEntities',
+ heading: findLocaleServMenu('brightness'),
+ useColor: true,
+ subPage: true,
+ parent: NSPanel_Screensaver,
+ home: 'NSPanel_Service',
+ items: [
+ {
+ id: AliasPath + 'ScreensaverInfo.activeBrightness',
+ name: findLocaleServMenu('brightness_activ'),
+ icon: 'brightness-5',
+ offColor: Menu,
+ onColor: Menu,
+ minValue: 20,
+ maxValue: 100,
+ },
+ {
+ id: AliasPath + 'Config.Screensaver.timeoutScreensaver',
+ name: findLocaleServMenu('screensaver_timeout'),
+ icon: 'clock-end',
+ offColor: Menu,
+ onColor: Menu,
+ minValue: 0,
+ maxValue: 60,
+ },
+ { id: AliasPath + 'Config.Screensaver.screenSaverDoubleClick', name: findLocaleServMenu('wakeup_doublecklick'), icon: 'gesture-two-double-tap', offColor: HMIOff, onColor: HMIOn },
+ ],
+};
+
+//Level_3
+let NSPanel_ScreensaverLayout: PageType = {
+ type: 'cardEntities',
+ heading: findLocaleServMenu('layout'),
+ useColor: true,
+ subPage: true,
+ parent: NSPanel_Screensaver,
+ home: 'NSPanel_Service',
+ items: [
+ {
+ id: AliasPath + 'Config.Screensaver.alternativeScreensaverLayout',
+ name: findLocaleServMenu('alternative_layout'),
+ icon: 'page-previous-outline',
+ offColor: HMIOff,
+ onColor: HMIOn,
+ },
+ { id: AliasPath + 'Config.Screensaver.ScreensaverAdvanced', name: findLocaleServMenu('advanced_layout'), icon: 'page-next-outline', offColor: HMIOff, onColor: HMIOn },
+ ],
+};
+
+//Level_3
+let NSPanel_ScreensaverWeather: PageType = {
+ type: 'cardEntities',
+ heading: findLocaleServMenu('weather_parameters'),
+ useColor: true,
+ subPage: true,
+ parent: NSPanel_Screensaver,
+ home: 'NSPanel_Service',
+ items: [
+ { id: AliasPath + 'ScreensaverInfo.weatherForecast', name: findLocaleServMenu('weather_forecast_offon'), icon: 'weather-sunny-off', offColor: HMIOff, onColor: HMIOn },
+ { id: AliasPath + 'ScreensaverInfo.weatherForecastTimer', name: findLocaleServMenu('weather_forecast_change_switch'), icon: 'devices', offColor: HMIOff, onColor: HMIOn },
+ {
+ id: AliasPath + 'ScreensaverInfo.entityChangeTime',
+ name: findLocaleServMenu('weather_forecast_change_time'),
+ icon: 'cog-sync',
+ offColor: Menu,
+ onColor: Menu,
+ minValue: 15,
+ maxValue: 60,
+ },
+ {
+ id: AliasPath + 'Config.Screensaver.autoWeatherColorScreensaverLayout',
+ name: findLocaleServMenu('weather_forecast_icon_colors'),
+ icon: 'format-color-fill',
+ offColor: HMIOff,
+ onColor: HMIOn,
+ },
+ ],
+};
+
+//Level_3
+let NSPanel_ScreensaverDateformat: PageType = {
+ type: 'cardEntities',
+ heading: findLocaleServMenu('date_format'),
+ useColor: true,
+ subPage: true,
+ parent: NSPanel_Screensaver,
+ home: 'NSPanel_Service',
+ items: [
+ { id: AliasPath + 'Config.Dateformat.Switch.weekday', name: findLocaleServMenu('weekday_large'), icon: 'calendar-expand-horizontal', offColor: HMIOff, onColor: HMIOn },
+ { id: AliasPath + 'Config.Dateformat.Switch.month', name: findLocaleServMenu('month_large'), icon: 'calendar-expand-horizontal', offColor: HMIOff, onColor: HMIOn },
+ ],
+};
+
+//Level_3
+let NSPanel_ScreensaverIndicators: PageType = {
+ type: 'cardEntities',
+ heading: findLocaleServMenu('indicators'),
+ useColor: true,
+ subPage: true,
+ parent: NSPanel_Screensaver,
+ home: 'NSPanel_Service',
+ items: [
+ { id: AliasPath + 'Config.MRIcons.alternateMRIconSize.1', name: findLocaleServMenu('mr_icon1_size'), icon: 'format-size', offColor: HMIOff, onColor: HMIOn },
+ { id: AliasPath + 'Config.MRIcons.alternateMRIconSize.2', name: findLocaleServMenu('mr_icon2_size'), icon: 'format-size', offColor: HMIOff, onColor: HMIOn },
+ ],
+};
+
+//Level_2
+let NSPanel_Relays: PageType = {
+ type: 'cardEntities',
+ heading: findLocaleServMenu('relays'),
+ useColor: true,
+ subPage: true,
+ parent: NSPanel_Einstellungen,
+ home: 'NSPanel_Service',
+ items: [
+ { id: AliasPath + 'Relay.1', name: findLocaleServMenu('relay1_onoff'), icon: 'power', offColor: HMIOff, onColor: HMIOn },
+ { id: AliasPath + 'Relay.2', name: findLocaleServMenu('relay2_onoff'), icon: 'power', offColor: HMIOff, onColor: HMIOn },
+ ],
+};
+
+//Level_2
+let NSPanel_Script: PageType = {
+ type: 'cardEntities',
+ heading: findLocaleServMenu('script'),
+ useColor: true,
+ subPage: true,
+ parent: NSPanel_Einstellungen,
+ home: 'NSPanel_Service',
+ items: [
+ { id: AliasPath + 'Config.ScripgtDebugStatus', name: findLocaleServMenu('debugmode_offon'), icon: 'code-tags-check', offColor: HMIOff, onColor: HMIOn },
+ { id: AliasPath + 'Config.MQTT.portCheck', name: findLocaleServMenu('port_check_offon'), icon: 'check-network', offColor: HMIOff, onColor: HMIOn },
+ { id: AliasPath + 'Config.hiddenCards', name: findLocaleServMenu('hiddencards_offon'), icon: 'check-network', offColor: HMIOff, onColor: HMIOn },
+ ],
+};
+
+//Level_1
+let NSPanel_Firmware: PageType = {
+ type: 'cardEntities',
+ heading: findLocaleServMenu('firmware'),
+ useColor: true,
+ subPage: true,
+ parent: NSPanel_Service,
+ home: 'NSPanel_Service',
+ items: [
+ { id: AliasPath + 'autoUpdate', name: findLocaleServMenu('automatically_updates'), icon: 'power', offColor: HMIOff, onColor: HMIOn },
+ {
+ navigate: true,
+ id: 'NSPanel_FirmwareTasmota',
+ icon: 'usb-flash-drive',
+ offColor: Menu,
+ onColor: Menu,
+ name: findLocaleServMenu('tasmota_firmware'),
+ buttonText: findLocaleServMenu('more'),
+ },
+ {
+ navigate: true,
+ id: 'NSPanel_FirmwareBerry',
+ icon: 'usb-flash-drive',
+ offColor: Menu,
+ onColor: Menu,
+ name: findLocaleServMenu('berry_driver'),
+ buttonText: findLocaleServMenu('more'),
+ },
+ {
+ navigate: true,
+ id: 'NSPanel_FirmwareNextion',
+ icon: 'cellphone-cog',
+ offColor: Menu,
+ onColor: Menu,
+ name: findLocaleServMenu('nextion_tft_firmware'),
+ buttonText: findLocaleServMenu('more'),
+ },
+ ],
+};
+
+let NSPanel_FirmwareTasmota: PageType = {
+ type: 'cardEntities',
+ heading: findLocaleServMenu('tasmota'),
+ useColor: true,
+ subPage: true,
+ parent: NSPanel_Firmware,
+ home: 'NSPanel_Service',
+ items: [
+ { id: AliasPath + 'Tasmota.Version', name: findLocaleServMenu('installed_release'), offColor: Menu, onColor: Menu },
+ { id: AliasPath + 'Tasmota_Firmware.onlineVersion', name: findLocaleServMenu('available_release'), offColor: Menu, onColor: Menu },
+ { id: 'Divider' },
+ {
+ id: AliasPath + 'Config.Update.UpdateTasmota',
+ name: findLocaleServMenu('update_tasmota'),
+ icon: 'refresh',
+ offColor: HMIOff,
+ onColor: MSGreen,
+ buttonText: findLocaleServMenu('start'),
+ },
+ ],
+};
+
+let NSPanel_FirmwareBerry: PageType = {
+ type: 'cardEntities',
+ heading: findLocaleServMenu('berry_driver'),
+ useColor: true,
+ subPage: true,
+ parent: NSPanel_Firmware,
+ home: 'NSPanel_Service',
+ items: [
+ { id: AliasPath + 'Display.BerryDriver', name: findLocaleServMenu('installed_release'), offColor: Menu, onColor: Menu },
+ { id: AliasPath + 'Berry_Driver.onlineVersion', name: findLocaleServMenu('available_release'), offColor: Menu, onColor: Menu },
+ { id: 'Divider' },
+ {
+ id: AliasPath + 'Config.Update.UpdateBerry',
+ name: findLocaleServMenu('update_berry_driver'),
+ icon: 'refresh',
+ offColor: HMIOff,
+ onColor: MSGreen,
+ buttonText: findLocaleServMenu('start'),
+ },
+ ],
+};
+
+let NSPanel_FirmwareNextion: PageType = {
+ type: 'cardEntities',
+ heading: findLocaleServMenu('nextion_tft'),
+ useColor: true,
+ subPage: true,
+ parent: NSPanel_Firmware,
+ home: 'NSPanel_Service',
+ items: [
+ { id: AliasPath + 'Display_Firmware.TFT.currentVersion', name: findLocaleServMenu('installed_release'), offColor: Menu, onColor: Menu },
+ { id: AliasPath + 'Display_Firmware.TFT.desiredVersion', name: findLocaleServMenu('desired_release'), offColor: Menu, onColor: Menu },
+ { id: AliasPath + 'Display.Model', name: findLocaleServMenu('nspanel_model'), offColor: Menu, onColor: Menu },
+ { id: AliasPath + 'Config.Update.UpdateNextion', name: 'Nextion TFT Update', icon: 'refresh', offColor: HMIOff, onColor: MSGreen, buttonText: findLocaleServMenu('start') },
+ ],
+};
+
+// End of Service Pages
+
+```
+
+## TypeScript (NSPanel.ts) Config
+```typescript
+export const config: Config = {
+ // Seiteneinteilung / Page division
+ // Hauptseiten / Mainpages
+ pages: [
+ NSPanel_Service, //Auto-Alias Service Page
+ //Unlock_Service, //Auto-Alias Service Page (Service Pages used with cardUnlock)
+ ],
+ // Unterseiten / Subpages
+ subPages: [
+ //NSPanel_Service_SubPage, //Auto-Alias Service Page (only used with cardUnlock)
+ NSPanel_Infos, //Auto-Alias Service Page
+ NSPanel_Wifi_Info_1, //Auto-Alias Service Page
+ NSPanel_Wifi_Info_2, //Auto-Alias Service Page
+ NSPanel_Sensoren, //Auto-Alias Service Page
+ NSPanel_Hardware, //Auto-Alias Service Page
+ NSPanel_IoBroker, //Auot-Alias Service Page
+ NSPanel_Einstellungen, //Auto-Alias Service Page
+ NSPanel_Screensaver, //Auto-Alias Service Page
+ NSPanel_ScreensaverDimmode, //Auto-Alias Service Page
+ NSPanel_ScreensaverBrightness, //Auto-Alias Service Page
+ NSPanel_ScreensaverLayout, //Auto-Alias Service Page
+ NSPanel_ScreensaverWeather, //Auto-Alias Service Page
+ NSPanel_ScreensaverDateformat, //Auto-Alias Service Page
+ NSPanel_ScreensaverIndicators, //Auto-Alias Service Page
+ NSPanel_Relays, //Auto-Alias Service Page
+ NSPanel_Script, //Auto-Alias Service Page
+ NSPanel_Firmware, //Auto-Alias Service Page
+ NSPanel_FirmwareTasmota, //Auto-Alias Service Page
+ NSPanel_FirmwareBerry, //Auto-Alias Service Page
+ NSPanel_FirmwareNextion, //Auto-Alias Service Page
+ ],
+
+```
\ No newline at end of file
diff --git a/new/NSPanel-Starthilfe-FAQ.md b/new/NSPanel-Starthilfe-FAQ.md
new file mode 100644
index 0000000..0f58546
--- /dev/null
+++ b/new/NSPanel-Starthilfe-FAQ.md
@@ -0,0 +1,179 @@
+Starthilfe - Die häufigsten User-Fehler
+
+# **Index**
+
+ **1.)** [Anleitung Update/Upgarde](https://github.com/joBr99/nspanel-lovelace-ui/wiki/NSPanel-Starthilfe-FAQ#hilfe-bei-update--upgrade)
+ **2.)** [Achtung!! Ändrungen bei Variablen und Konstanten](https://github.com/joBr99/nspanel-lovelace-ui/wiki/NSPanel-Starthilfe-FAQ#type-änderungen)
+ **3.)** ["Waiting for Content" -> es geht nicht weiter](https://github.com/joBr99/nspanel-lovelace-ui/wiki/NSPanel-Starthilfe-FAQ#waiting-for-content---es-geht-nicht-weiter)
+ **4.)** [Berry-Driver nicht oder falsch installiert](https://github.com/joBr99/nspanel-lovelace-ui/wiki/NSPanel-Starthilfe-FAQ#berry-driver-nicht-oder-falsch-installiert)
+**5.)** [MQTT Adaptereinstellungen](https://github.com/joBr99/nspanel-lovelace-ui/wiki/NSPanel-Starthilfe-FAQ#mqtt-adapter-einstellungen)
+**6.)** [Tasmota - MQTT Einstellungen ](https://github.com/joBr99/nspanel-lovelace-ui/wiki/NSPanel-Starthilfe-FAQ#mqtt-tasmota-einstellungen)
+**7.)** [der Datenpunkt "CustomSend" fehlt](https://github.com/joBr99/nspanel-lovelace-ui/wiki/NSPanel-Starthilfe-FAQ#customsend-fehlt)
+
+## Hilfe bei Update / Upgrade
+
+Variante für ein Update der NSPanelTS.ts
+
+1. aktuelle Script anhalten
+2. unter [diesen Link](https://raw.githubusercontent.com/joBr99/nspanel-lovelace-ui/main/ioBroker/NsPanelTs.ts) das aktuelle Script kopieren
+3. ein neues TS Script anlegen, als Name nutze ich immer NSPanel_Version z.B. NSPanel_43310
+4. diese Parameter müssen als erstes angepasst werden
+```typescript
+/***** 1. Tasmota-Config *****/
+
+ // DE: Anpassen an die Verzeichnisse der MQTT-Adapter-Instanz
+ // EN: Adapt to the MQTT adapter instance directories
+ const NSPanelReceiveTopic: string = 'mqtt.0.SmartHome.NSPanel_1.tele.RESULT';
+ const NSPanelSendTopic: string = 'mqtt.0.SmartHome.NSPanel_1.cmnd.CustomSend';
+
+/***** 2. Directories in 0_userdata.0... *****/
+
+ // DE: Anpassen an das jeweilige NSPanel
+ // EN: Adapt to the respective NSPanel
+ const NSPanel_Path = '0_userdata.0.NSPanel.1.';
+```
+
+5. jetzt starten wir zum erstenmal die neue Script Version, sie sollte ohne Fehlermeldung starten.
+6. jetzt kopieren wir die eigenen Seiten aus den alten Script, vorher wird das neue Script gestoppt
+ Die eigenen Seiten werden zwischen diesen zwei Zeilen eingefügt.
+```typescript
+//-- Anfang für eigene Seiten -- z.T. selbstdefinierte Aliase erforderlich ----------------
+//-- Start for your own pages -- some self-defined aliases required ----------------
+
+ //-- https://github.com/joBr99/nspanel-lovelace-ui/wiki/NSPanel-Page-%E2%80%90-Typen_How-2_Beispiele
+
+//-- ENDE für eigene Seiten -- z.T. selbstdefinierte Aliase erforderlich -------------------------
+//-- END for your own pages -- some self-defined aliases required ------------------------
+```
+
+dann müssen die Pages auch in diesen Bereich eingefügt werden. Hauptseiten kommen zu den pages und die Unterseiten zu den subPages
+
+```typescript
+ // Seiteneinteilung / Page division
+ // Hauptseiten / Mainpages
+ pages: [
+
+ NSPanel_Service //Auto-Alias Service Page
+ //Unlock_Service //Auto-Alias Service Page (Service Pages used with cardUnlock)
+ ],
+
+ // Unterseiten / Subpages
+ subPages: [
+
+ NSPanel_Service_SubPage, //Auto-Alias Service Page (only used with cardUnlock)
+ NSPanel_Infos, //Auto-Alias Service Page
+```
+
+7. das Script starten und prüfen auf Fehlermeldungen, danach wird es wieder gestop.
+8. jetzt kopieren wir noch die ScreensaverEntity, die Einstellungen für die Hardwarebutton und erstezen die im neuen Script
+```typescript
+/***********************************************************************
+ ** **
+ ** Screensaver Configuration **
+ ** **
+ ***********************************************************************/
+
+```
+
+### Type-Änderungen
+mit der v4.3.3.30 gibt es Änderungen in der Syntax der Variablen und Konstanten im oberen Teil. Auch wenn die alte Nomenklatur nicht zu Fehlern führt, wird dennoch empfohlen nachfolgende Schritte durchzuführen:
+
+9. Änderung der Config-Zeile
+```
+export const config =
+
+c) **Hinweis**: Unter Umständen macht es Sinn, die NSPanel Temperatursensoren noch zu konfiguirieren / kalibrieren. Wir haben dies in der [Tasmota FAQ](https://github.com/joBr99/nspanel-lovelace-ui/wiki/NSPanel-Tasmota-FAQ#2-sensoren) erklärt.
+
+***
+
+## **3.) Berry-Treiber installieren**
+Im Tasmota findest du unter „Konsolen“ den Button „Verwalte Dateisystem“. Wenn du diesen anklickst, siehst du einen weiteren Button „Datei erstellen und bearbeiten“. Du änderst den Dateinamen „neue-datei.txt“ in „autoexec.be“ und fügst den Inhalt aus dem folgenden Link ein:
+**https://raw.githubusercontent.com/joBr99/nspanel-lovelace-ui/main/tasmota/autoexec.be**
+
+
+
+Danach klickst du auf „Speichern“ und dann solltest du Tasmota rebooten.
+
+Wenn das Panel bereits unter einer anderen Variante installiert war, dann bitte alle Dateien (insbesondere autoexec.be und autoexec.bec) vorher über das Flammensymbol hinter dem Dateinamen löschen. Und von vorne mit dem Punkt 3 beginnen.
+
+
+
+***
+
+## **4.) MQTT (Tasmota) Config**
+
+Im Tasmota unter „Einstellungen/MQTT konfigurieren“:
+
+**Host** -> die IP deines ioBrokers / MQTT-Server
+**Port** deiner ioBroker-MQTT-Adapter-Instanz eingeben (für mqtt.0.). Wenn du noch keinen MQTT-Adapter installiert hast, dann verwende bitte nicht unbedingt den Standard-Port 1883. Dieser Port wird auch von anderen Pseudo-MQTT-Adaptern (Sonoff/Shelly/etc.) ebenfalls verwendet und führt im parallelen Betrieb mit anderen MQTT-Devices später unweigerlich zu Komplikationen. Verwende für die MQTT-Instanzen einen Port ab 1886 oder 1887 oder 1888 oder höher. Das Problem zeigt sich in der Regel ab dem Zeitpunkt, an dem der Topic „CustomSend“ nicht von deiner MQTT-Instanz abonniert wird.
+**Client** Name der in der Connect Meldung vom MQTT-Adapter angezeigt werden soll (mqtt.0.info.connection)
+**Benutzer** und **Passwort** Wenn in der ioBroker-MQTT-Instanz vergeben wurde, hier auch eintagen
+**Topic** Name für die Variable `%topic%` , diese wird für die Hierarchie im MQTT genutzt
+**Full Topic** verwende in der Regel „SmartHome/%topic%/%prefix%/“. Eine Erklärung dazu, warum es anders sein soll als wie in der Tasmota vorgeschlagen, [findest du hier](https://github.com/joBr99/nspanel-lovelace-ui/wiki/NSPanel-Starthilfe-FAQ#mqtt-tasmota-einstellungen).
+
+Speichern klicken und Einstellungen verlassen
+
+
+
+***
+
+## **5.) TFT-Firmware flashen**
+
+> [!IMPORTANT]
+> Es gab Probleme mit der Tasmota-Version 14.2.X beim Flashen. Daher bitte vor dem Flashen des Displays (TFT) auf die Tasmota-Version >= 14.3.0 upgraden. Ansonsten kann es zu Fehlern beim FlashNextion kommen!
+
+> **Achtung !!!**
+>Zum Flashen ist es wichtig, dass Ihr die aktuelle TFT-Firmware-Version nutzt, sonst kann es zu ungewollten Fehlern kommen und ggf. müsst Ihr den Flashvorgang dann wiederholen. Ihr findet die aktuelle Version immer im aktuellen [NsPanelTS.ts-Skript](https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/NsPanelTs.ts) am Ende des ioBroker TypeScript Header:**
+
+```json
+
+Upgrades in Konsole:
+ Tasmota BerryDriver : Backlog UpdateDriverVersion https://raw.githubusercontent.com/joBr99/nspanel-lovelace-ui/main/tasmota/autoexec.be; Restart 1
+>> TFT EU STABLE Version : FlashNextion http://nspanel.pky.eu/lovelace-ui/github/nspanel-v4.4.0.tft <<
+---------------------------------------------------------------------------------------
+*/
+
+
+/******************************* Begin CONFIG Parameter *******************************/
+```
+
+Zum Flashen müsst Ihr dann die Tasmota Konsole öffnen und in die Kommandozeile
+`FlashNextion
+
+
+***
+
+## **6.) MQTT (ioBroker) Config**
+
+### 6a) Standard-Variante mit MQTT Broker/Client Adapter
+
+
+
+Wenn du bereits eine Instanz des MQTT-Adapters (z.B. mqtt.0.) nutzt, dann bitte den Port der MQTT-Adapter-Instanz auch im Tasmota-MQTT verwenden. Bitte auch hier den Hinweis aus Punkt 4b beachten und ggf. einen anderen Port für die Kommunikation eintragen.
+Ansonsten wählst du im ioBroker-Menü unter „Adapter“ den mqtt-Adapter aus und erstellst wie gewohnt eine Instanz des Adapters. Du kannst dir natürlich auch eine zusätzliche Instanz (z.B. mqtt.1. oder mqtt.2. etc.) erstellen.
+
+Einstellungen im Reiter Verbindung
+a) IP = Server/Broker
+b) Zugriff von allen IPs zulassen auswählen
+c) Port 1886 (analog Port aus Tasmota/MQTT)
+d) Benutzer (analog Benutzer aus Tasmota/MQTT)
+e) Kennwort + Kennwort wiederholen (analog Passwort aus Tasmota/MQTT)
+
+Einstellungen im Reiter Server-Einstellungen
+f) States bei subscribe publizieren (angehakt)
+g) Leere Session erzwingen: Client-Einstellungen verwenden
+
+Einstellungen im Reiter MQTT-Einstellungen
+h) Maske zum Bekanntgeben eigener States: **mqtt.0.*** (Bei zusätzlicher Instanz entsprechend höher (mqtt.1.* etc.)
+i) Eigene States beim Verbinden publizieren (angehakt)
+
+
+> **!!! ACHTUNG: !!!**
+> Der haken bei "**Nur bei Änderungen publizieren**" darf nicht aktiv sein, da es sonst zu Problemen in der Navigation kommen kann!
+> Es wird oft das Sternchen * hinter der Zahl vergessen mqtt.0.*
+
+______
+
+
+### 6b) Abweichende Variante **mit** extern betriebenem Mosquitto MQTT-Broker --> mit MQTT-Client Adapter
+
+
+
+> [!NOTE]
+> Nur befolgen, wenn ein **externer MQTT-Broker** "außerhalb der ioBroker-Umgebung" betriebsbereit installiert wurde!
+
+**Wichtig** ist bei `Zusätzliche subscriptions` das Topic einzutragen.
+
+
+Einstellungen für die Datenpunkte, hier am Beispiel von .../cmnd/CustomSend
+
+
+Kurzanleitung mit dem MQTT-Client Adapter unter:
+https://forum.iobroker.net/post/1204391
+
+***
+
+## **7.) CustomSend anlegen**
+
+Der MQTT Datenpunkt wird benötigt und muss vom MQTT-Adapter angelegt werden.
+
+**Es gibt drei Varianten um diesen Datenpunkt zu erzeugen:**
+
+Variante 1:
+Gehe in das Objeckt-Verzeichnis "**mqtt.0.SmartHome.NSPanel_1.cmnd**" und legst in diesem Verzeichnis mit Hilfe des "Expertenmodus" einen Datenpunkt **CustomSend** (Achtung auf korrekte Schreibweise achten) an. Nachdem der Datenpunkt angelegt wurde, sollte der Expertenmodus wieder deaktiviert werden.
+
+> Im Video wird die Variante 1 direkt in den Objekten des mqtt.0. gezeigt!
+
+Variante 2:
+Um den Datenpunkt zu erzeugen, öffnest du im Tasmota die Konsole und gibst
+`CustomSend time~12:00`
+ein.
+
+Variante 3:
+Alternativ kann auch der MQTT-Explorer (http://mqtt-explorer.com/) genutzt werden und ein payload unter .../cmnd abgesendet werden.
+im Feld Topic wird er koplette Topic eingetragen.
+`SmartHome/NSPanel_1/cmnd/CustomSend`
+den Punkt `raw` auswählen und als Wert `time~12:00` eintragen. Zum Schluß den Button `PUBLISH` drücken.
+
+
+Danach sollte im MQTT-Adapter unter Objekte ein Datenpunkt: „SmartHome/NSPanel_1/cmnd/CustomSend“ erscheinen. Falls nicht, solange wiederholen bis dieser Datenpunkt abonniert wurde, oder ggfs. Nochmals die MQTT-Einstellungen überprüfen.
+
+**Achtung:** Wenn man den MQTT-Client Adapter einsetzt, wird der Wert '12:00' **NICHT** im ioBroker gesetzt - dh. der MQTT-Pfad wird erzeugt, aber der Wert steht auf (null) und nicht auf '12:00'. Es muss zuerst für 'CustomSend' die Publish-Funktion aktiviert werden (Zahnrad rechte Seite) - erst jetzt kann man nochmal den Wert mit dem MQTT-Explorer publischen oder den Wert '12:00' direkt im ioBroker unter 'CustomSend' eingeben.
+
+***
+
+## **8.) Einstellungen in JS-Adapter Instanz**
+
+Für den erfolgreichen Start des NSPanelTs.ts (siehe Punkt 10) TypeScript sind noch nachfolgende Einstellungen in der JavaScript-Adapter-Instanz erforderlich:
+
+* Hinzufügen der npm Module: `moment` und `moment-parseformat`
+* Aktivierung der Option `Kommando "setObject" erlauben`
+* Aktivierung der Option `Kommando "exec" erlauben`
+
+
+
+***
+
+## **9.) Icon „TypeScript“ anlegen**
+
+Wie bereits in der Einleitung erwähnt, werden zwei TypeScripts (TS) benötigt. Das erste ist das Icon-Skript. Das Icon-Skript dient zur Übersetzung von Schriftzeichensymbolen zwischen dem Skript und der TFT-Firmware.
+Unter dem grünen Vezeichnisbaum „global“ im ioBroker-Menüpunkt Skripte erzeugst du ein Skript mit dem Namen „IconsSelector“ vom Typ: TypeScript (TS). Dort fügst du den Inhalt der Datei:
+**https://raw.githubusercontent.com/joBr99/nspanel-lovelace-ui/main/ioBroker/icon_mapping.ts**
+ein und startest das Skript.
+
+**Nur zur Info:**
+Du kannst die einzelnen Icon-Symbolnamen (aktuell 6896 unterschiedliche Icon-Symbole) auf
+**https://htmlpreview.github.io/?https://github.com/jobr99/Generate-HASP-Fonts/blob/master/cheatsheet.html**
+einsehen und später (kommen wir bei der Alias-Erstellung noch zu) auch jedes Icon in deinem Panel an entsprechender Stelle verwenden. Für die Einbindung sind die „Namen“ der Icons wichtig.
+
+***
+
+## **10.) „NSPanelTs.ts“ anlegen**
+Unter dem regulären Vezeichnisbaum „common“ im ioBroker-Menüpunkt Skripte erzeugst du (gerne auch in weiteren Unterverzeichnissen) ein weiteres TypeScript mit dem Inhalt:
+**https://raw.githubusercontent.com/joBr99/nspanel-lovelace-ui/main/ioBroker/NsPanelTs.ts**
+
+Dieses Script enthält nur die Grundstruktur und ist nach der Parametereinstellung lauffähig.
+
+Für jedes einzelne NSPanel das du konfigurieren möchtest, musst du dieses Skript anlegen und speziell für dieses jeweilige NSPanel entsprechende Einstellungen vornehmen. Für den Skriptnamen verwende in der Regel eine Kombination aus Panel und Skriptversion, wie z.B.: NSPANEL_1_3.9.0
+
+(Es kommen in regelmäßigen Abständen weitere NSPanel-Features und Bug-Fixes in das GitHub-Skript in denen dann nur noch der untere Teil `(--- ab hier keine Konfiguration mehr ---)` ausgetauscht werden muss und die NSPanel-Parameter erhalten bleiben)
+
+Im oberen Teil des Skripts sind die grundsätzlichen Teile der zu erstellenden Aliase, Konstanten und Variablen (auch Seiten) enthalten. An dieser Stelle ist zunächst wichtig, die Kommunikationsparameter für die MQTT-Kommunikation anzupassen, beginnend mit
+
+```typescript
+/***** 1. Tasmota-Config *****/
+
+ // DE: Anpassen an die Verzeichnisse der MQTT-Adapter-Instanz
+ // EN: Adapt to the MQTT adapter instance directories
+ const NSPanelReceiveTopic: string = 'mqtt.0.SmartHome.NSPanel_1.tele.RESULT';
+ const NSPanelSendTopic: string = 'mqtt.0.SmartHome.NSPanel_1.cmnd.CustomSend';
+
+....
+
+/***** 2. Directories in 0_userdata.0... *****/
+
+ // DE: Anpassen an das jeweilige NSPanel
+ // EN: Adapt to the respective NSPanel
+ const NSPanel_Path = '0_userdata.0.NSPanel.1.';
+```
+
+Bitte starte das Skript. Alle weiteren Parameter stellen wir später ein. Ab jetzt sollte der Startup-Screen „Waiting for Connection“ in den Sreensaver wechseln und minütlich die Uhrzeit an den Screensaver übertragen und das Datum aktualisiert werden.
+
+***
+
+## **11.) „NSPanelTs.ts“ konfigurieren**
+
+Im Punkt 9 haben wir zunächst die nur Kommunikation zwischen Panel und Skript über MQTT hergestellt. Jetzt kommen wir zum Inhalt des Panels:
+
+**a) Screensaver einstellen**
+
+das Aussehen des Screensaver kannst du ganz nach deinen Wüschen gestallten. Dafür haben wir im Wiki ein eigenes Thema erstellt, da sich im Laufe der Zeit die Möglichkeiten immer erweitert haben. [Hier lang zu den Einstellungen](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-Config-Screensaver)
+
+
+**b) Diverse Datenpunkte**
+Beim ersten Start des Scripts erzeugt das Skript unter 0_userdata diverse Datenpunkte für Screensaver Dimmode, interne Sensoren, Tasmota-Statuswerte, etc.
+Der Pfad kann im Skript unter „NSPanel_Path“ angepasst werden.
+
+> **Achtung!**
+> Ab TS-Script-Version 3.5.0.5 und mit installiertem JavaScript-Adapter ab Version v6.1.3 können auch weitere Alias automatisch erzeugt werden, wenn die Konstante **autoCreateAlias** auf **true** steht.
+
+***
+
+## **12.) Aliase Anlegen**
+Jetzt kommt der eigentliche Teil der Seitengestaltung. Es werden keine Datenpunkte benötigt, sondern Aliase.
+Ein Alias ist „kein“ Datenpunkt, sondern ein Objekt mit mehreren Datenpunkten.
+Das Skript setzt entsprechende Trigger auf die Alias-Datenpunkte .SET, .GET, .ACTUAL usw. Deshalb werden deine Steuerelemente im Panel nicht greifen, wenn du mit einzelnen Datenpunkten aus den verschiedenen Adaptern arbeitest.
+Eine genaue Beschreibung für die diversen Alias-Typen findest du [hier.](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen)
+
+
+***
+
+## **13.) Seitengestaltung**
+Die Seitengestaltung ist nun in einen eigenen Bereich hier in der Wiki gewandert.
+Die unten aufgeführten Beispiele sind **nicht** mehr im Skript enthalten.
+
+[Bitte hier klicken](https://github.com/joBr99/nspanel-lovelace-ui/wiki/NSPanel-Page-%E2%80%90-Typen_How-2_Beispiele)
+
+
+***
+**Der Folgende bereich stammt aus einer früheren Version der Wiki, bitte den Link oben beachten!**
+Am Besten benutzt ihr die Beispiele im Skript und legt entsprechende Aliase hierzu an, die auch in diesem ioBroker-Community-Topic innerhalb der letzten Wochen beschrieben wurden.
+
+cardEntities mit Alias Lampe/Dimmer/Switch
+
+
+cardEntities mit RGB und HUE Aliasen (Color)
+
+
+popupLight mit Farbtemperatur und Brightness
+
+
+popupLight mit ColorWheel
+
+
+cardGrid mit Radiosendern/Playlists (Alias Taste)
+
+
+cardEntities mit Aliasen Lautstärke und Info
+
+
+cardEntities mit Fenster, Tür, Jalousie und Verschluss
+
+
+cardEntities mit Abfallkalender
+
+
+cardMedia
+
+
+cardAlarm
+
+
+cardGrid
+
+
+cardEntities
+
+
+cardEntities als Subpage unter cardEntities (verschachtelt)
+
+
+cardNotify
+
+
+Steuerung von Klimageräten/Klimaanlagen
+
+
+QR-Code für z.B. Gäste WLAN
+
+
+Neues Design für Thermostate
+
+
+***
\ No newline at end of file
diff --git a/new/ioBroker-ALIAS-Definitionen.md b/new/ioBroker-ALIAS-Definitionen.md
new file mode 100644
index 0000000..d7aecc6
--- /dev/null
+++ b/new/ioBroker-ALIAS-Definitionen.md
@@ -0,0 +1,872 @@
+> **Seite befindet sich noch im Aufbau
+> Sollte aktuell ein Alias nicht vollständig beschrieben werden, dann gerne eine Frage am Ende des nachfolgenden Thread stellen:**
+> https://forum.iobroker.net/topic/58170/sonoff-nspanel-mit-lovelace-ui
+
+# Einleitung:
+
+## Alias-Hilfsmittel
+**Welche Hilfsmittel werden zur Erstellung eines Alias benötigt?:**
+
+Der "Geräte verwalten"-Adapter für die meisten Alias-Typen:
+
+
+
+Der "Alias-Manager"-Adapter für spezielle Alias-Typen, wie dem Alias "Media":
+
+
+**Ich habe die zwei Adapter installiert. Wie bekomme ich die in das ioBroker-Menü:**
+Über das Stift-Symbol im ioBroker-Hauptmenü lassen sich die Adapter individuell für jeden Benutzer ein- oder ausschalten.
+
+
+
+Es sollte ein Haken bei Geräte und Alias-Manager gesetzt sein.
+
+**Was sind Aliase:**
+Aliase (Pseudonyme) sind die virtuellen Zustandsobjekte, die mit realen Zuständen (Datenpunkten) verknüpft sind.
+
+**Warum benötige ich im TS-Skript überhaupt Aliase und keine Datenpunkte?**
+Das TS-Script für das Sonoff NSPanel ist so aufgebaut, dass eigentlich jeder Adapter zur Steuerung benutzt werden kann. Hierbei haben die Entwickler von Adaptern für gleiche Funktionen unterschiedliche Namen verwendet:
+
+Beispiel:
+* Sonoff-Adapter: **.power** (aus Tasmota übertragen)
+* MQTT-Adapter: **.power** (aus Tasmota übertragen)
+* Shelly-Adapter: **.switch**
+* KNX-Adapter: **.switch**
+* Deconz-Adapter: **.on**
+* etc.
+
+Also immer der Wunsch, einen Zustand eines Aktors mit true/false zu verändern.
+
+> Innerhalb der Licht-Adapter wird das später noch deutlicher
+
+Der Alias benötigt also anstatt **.Power** oder **.Switch** oder **.On** immer nur ein **.SET**, damit der Zustand des Schalt-Aktor's unabhängig vom installierten Adapter geschaltet werden kann. In diesem Fall meldet der im Skript eingebundene Alias ein true oder false in den Alias-Datenpunkt .SET und reicht den Zustandswert an den zugewiesenen spezifischen Adapter-Datenpunkt (ganz egal welcher Typ erwartet wird) weiter.
+
+# "Geräte verwalten"-Adapter
+
+
+Zunächst sollt man sich überlegen, welche Aliase nur für ein bestimmtes NSPanel gelten sollen oder für mehrere NSPanels oder sogar innerhalb anderer Visualisierungsarten z.B. ioBroker VIS mitverwendet werden sollen. Dann kann man die Alias Struktur entsprechend mit Ordnern und Unterordnern verfeinern. Das Bürolicht soll z.B. nur über NSPanel_1 geschaltet werden, aber nicht über NS_Panel_2. Das Wetter hingegen ist für alle NSPanel gleich.
+
+
+## Alias erzeugen - Schritt 1 - Tab "Allgemein"
+Der erste Schritt in der Alias Erstellung mit dem "Geräte verwalten"-Adapter ist fast immer der gleiche.
+
+Es wird über die "+" Schaltfläche folgender Dialog aufgeschaltet:
+
+Jetzt gibst vergibst du einen "sprechenden Namen" für den Alias in der Zeile "Gerätename" und wählst einen der nachfolgenden "Alias-Typen" unter Gerätetyp aus (Auswahlliste wird aufgeschaltet und beinhaltet auch noch weitere Typen als im Bild gezeigt (Momentaufnahme)):
+
+
+
+> Achtung:
+> Nicht jeder Gerätetyp (Alias-Typ) funktioniert mit dem NSPanel, sondern nur die, die entweder im weiteren Verlauf benannt sin, oder die im Header des TypeScript definiert sind.
+
+Die Zeilen Funktion und Raum können ebenfalls ausgewählt werden, haben jedoch keinen Einfluss auf die Funktionalität des NSPAnel's
+
+## Alias erzeugen - Schritt 2 - Tab "Zustände"
+
+**Index**
+
+[Dimmer (channel-dimmer)](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#dimmer-channel-dimmer)
+[Farbtemperatur (channel ct)](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#farbtemperatur-channel-ct)
+[Fenster (channel window)](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#fenster-channel-window)
+[Feuchtigkeit (channel humidity)](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#feuchtigkeit-channel-humidity)
+[HUE Licht (channel hue)](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#hue-licht-channel-hue)
+[Info (channel info)](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#info-channel-info)
+[Jalousien / Rollo / Markisen (channel blind)](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#jalousien-channel-blind)
+[Lautstärke (channel volume)](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#lautstärke-channel-volume)
+[Lautstärke Gruppe (channel volumegrouup)](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#lautstärke-gruppe-channel-volumegroup)
+[Licht (channel light)](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#licht-channel-light)
+[Licht RGB (channel rgb)](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#rgb-licht-channel-rgb)
+[Licht RGB seperat (channel rgbsingle) ](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#rgb-licht-einzeln-channel-rgbsingle)
+[Schieberegler (channel slider)](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#schieberegler-channel-slider)
+[Steckdose (channel socket)](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#steckdose-channel-socket)
+[Taster (channel buttonsensor)](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#tastensensor----popupinsel-channel-buttonsensor)
+[Temperatur (channel temperature)](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#temperatur-channel-temperature)
+[Timer (channel timer.level)](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#timer---popuptimer---leveltimer)
+[Tür (channel door)](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#tür-channel-door)
+[Ventilator (channel level.mode.fan)](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#ventilator---fan---channel-levelmodefan)
+[Schloss / Verschluss (channel lock)](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#verschluss-channel-lock)
+[Warnungen (channel warning)](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#warnung-channel-warning)
+[Wettervorhersage](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#wettervorhersage)
+
+
+### Alarm - cardAlarm
+
+siehe auch das Beispiel zur vollständigen Integration der cardAlarm in den ioBroker:
+https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker---FAQ-&-Anleitungen#2-alarm-page
+
+
+
+***
+### Dimmer (channel dimmer)
+
+Der Alias "Dimmer" hat 2 relevante Eigenschaften.
+* Schalter (an/aus) über Adapter-Datenpunkte on, switch, power, etc.
+* Helligkeit (dunkel/hell) über Adapter-Datenpunkte level, brightness, bri, etc.
+
+**Im Beispiel ist eine dimmbare Deckenbeleuchtung über den DeConz-Adapter (Zigbee)**
+
+Der Schalter im DeConz wird über den Datenpunkt "on" (true/false), d.h Datentyp "boolean" gesteuert.
+Die Helligkeit wird im Deconz-Adapter über "level" 0-100 oder "bri" 0-255 gesteuert. Für uns bietet sich also der Datenpunkt **level** an, da dieser bereits die Helligkeit in % von 0% bis 100% beinhaltet. Jedoch könnten wir auch mit dem Datentyp **bri** arbeiten und im TypeScript die Umrechnung von 255 (absolut) auf 100 (%) parametrieren.
+
+Der Dimmer kann in einer cardEntities oder in einer cardGrid platziert werden. (Nachfolgende Abb. cardEntities):
+
+
+Zunächst legen wir analog "[Schritt 1](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#alias-erzeugen---schritt-1---tab-allgemein)" (Tab Allgemein) einen Alias vom Typ Dimmer an. Im "Schritt 2" (Tab Zustände) weisen wir jetzt die Datenpunkte des DeConz-Adapters zu:
+
+
+Jetzt speicherst du den neu erstellten Alias. Unter ioBroker Objekte (Verzeichnisbaum alias.0.NSPanel.X...) siehst du jetzt folgende Darstellung.
+
+
+Der Schaltzustand (Lampe an/aus) kann direkt aus der cardEntities oder carGrid erfolgen. Für die Regelung der Helligkeit hat der Alias-Gerätetyp "Dimmer" bereits eine Unterseite (siehe nachfolgende Abb.). Diese kann über einen Klick auf den Dimmer-Bezeichner (in diesem Fall "Deckenbeleuchtung") aufgeschaltet werden:
+
+
+
+Das zugehörige PageItem im TypeScript:
+```typescript
+{id: 'alias.0.NSPanel.Licht.WZ', interpolateColor: true}
+```
+Mit dem Parameter "name" legen wir den Anzeigenamen fest.
+Mit dem Parameter "interpolateColor" (optional), soll die abgebildete Lampe (Icon) den An/Aus und die Helligkeit emulieren.
+
+Es können noch weitere Parameter übergeben werden:
+* icon
+* onColor
+* offColor
+* minValueBrightness (Default = 0)
+* maxValueBrightness (Default = 100; im Beispiel mit dem Datenpunkt "bri" also 255)
+
+***
+
+### Farbtemperatur (channel ct)
+
+Der Alias "Farbtemperatur" hat 3 relevante Eigenschaften.
+* Schalter (an/aus) über Adapter-Datenpunkte on, switch, power, etc.
+* Helligkeit (dunkel/hell) über Adapter-Datenpunkte level, brightness, bri, etc.
+* Farbtemperatur (K = Kelvin) über Adapter-Datenpunkte ct, colortemp, etc.
+
+Der Alias "Farbtemperatur" kann in einer cardEntities oder in einer cardGrid platziert werden. (Nachfolgende Abb. cardEntities):
+
+
+Zunächst legen wir analog "[Schritt 1](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#alias-erzeugen---schritt-1---tab-allgemein)" (Tab Allgemein) einen Alias vom Typ **Farbtemperatur** an. Im "Schritt 2" (Tab Zustände) weisen wir jetzt die Datenpunkte des Adapters zu:
+
+
+
+Jetzt speicherst du den neu erstellten Alias. Unter ioBroker Objekte (Verzeichnisbaum alias.0.NSPanel.X...) siehst du jetzt folgende Darstellung.
+
+
+Der Schaltzustand (Lampe an/aus) kann direkt aus der cardEntities oder carGrid erfolgen. Für die Regelung der Helligkeit und CT hat der Alias-Gerätetyp "Farbtemperatur" bereits eine Unterseite (siehe nachfolgende Abb.). Diese kann über einen Klick auf den Bezeichner (in diesem Fall "Farbtemperatur") aufgeschaltet werden:
+
+
+Das zugehörige PageItem im TypeScript:
+```typescipt
+{id: 'alias.0.NSPanel.testFarbtemperatur', name: 'lampe', interpolateColor: true}
+```
+Mit dem Parameter "name" legen wir den Anzeigenamen fest.
+Mit dem Parameter "interpolateColor" (optional), soll die abgebildete Lampe (Icon) den An/Aus und die Helligkeit emulieren.
+
+Es können noch weitere Parameter übergeben werden:
+* icon
+* onColor
+* offColor
+* minValueBrightness (Default = 0)
+* maxValueBrightness (Default = 100; im Beispiel mit dem Datenpunkt "bri" also 255)
+* minValueColorTemp (z.B. 500 - in Abhängigkeit des jeweiligen Adapters)
+* maxValueColorTemp: (z.B. 6500 - in Abhängigkeit des jeweiligen Adapters)
+
+> Hinweis: Es kann auch der HUE-CT verwendet werden
+
+***
+
+### Fenster (channel window)
+
+Der Alias "Fenster" hat 1 relevante Eigenschaft.
+* Zustand (offen/geschlossen) über Adapter-Datenpunkte open, etc.
+
+Darstellung in einer "cardGrid"
+
+Darstellung in einer "cardEntities"
+
+
+Zunächst legen wir analog "[Schritt 1](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#alias-erzeugen---schritt-1---tab-allgemein)" (Tab Allgemein) einen Alias vom Typ **Fenster** an. Im "Schritt 2" (Tab Zustände) weisen wir jetzt den Datenpunkt des Adapters zu:
+
+Jetzt speicherst du den neu erstellten Alias. Unter ioBroker Objekte (Verzeichnisbaum alias.0.NSPanel.X...) siehst du jetzt folgende Darstellung:
+
+
+Das zugehörige PageItem im TypeScript:
+```typesript
+{id: 'alias.0.NSPanel.Fenster', onColor: MSGreen, offColor: MSRed, name: 'Fenster Büro'}
+```
+
+***
+
+### Feuchtigkeit (channel humidity)
+
+Der Alias "Feuchtigkeit" hat 1 relevante Eigenschaft.
+* Zustand (Sensorwert)
+
+
+
+**Im Beispiel ist ein Homatic IP Sensor über den hmip-Adapter (Funk).** Es kann aber auch jeder andere Sensor (z.B. Zigbee oder WLAN) oder ein Datenpunkt aus einem Wetter-Adapter verwendet werden.
+
+Zunächst legen wir analog "[Schritt 1](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#alias-erzeugen---schritt-1---tab-allgemein)" (Tab Allgemein) einen Alias vom Typ **Feuchtigkeit** an. Im "Schritt 2" (Tab Zustände) weisen wir jetzt die Datenpunkte des Adapters zu:
+
+
+Jetzt speicherst du den neu erstellten Alias. Unter ioBroker Objekte (Verzeichnisbaum alias.0.NSPanel.X...) siehst du jetzt folgende Darstellung:
+
+
+
+Das zugehörige PageItem im TypeScript:
+```typescript
+{ id: "alias.0.NSPanel_1.TestFeuchtigkeit", name: "Luftfeuchte außen", icon: "water-percent", unit: "%H", onColor: White},
+```
+
+Folgende Parameter können verwendet werden:
+* name: legt den Anzeigenamen fest
+* icon: Symbol
+* unit: Einheit der Luftfeuchte
+* onColor: Farbe des Icons
+
+
+> **Hinweis**
+> **Alternativ kann auch der Alias-Typ "Info" verwendet werden.**
+
+***
+
+### HUE-Licht (channel hue)
+
+> Der Alias Geräte-Typ **HUE-Licht** funktioniert **mit und ohne** dem Wert **"HUE"**. Wenn der Datenpunkt **.HUE** nicht vorhanden ist, wird durch das TypeScript automatisch eine CT (ColorTemperature-Steuerung emuliert)
+
+
+
+Zunächst legen wir analog "[Schritt 1](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#alias-erzeugen---schritt-1---tab-allgemein)" (Tab Allgemein) einen Alias vom Typ **HUE-Licht** an. Im "Schritt 2" (Tab Zustände) weisen wir jetzt die Datenpunkte des Adapters zu:
+
+
+Jetzt speicherst du den neu erstellten Alias. Unter ioBroker Objekte (Verzeichnisbaum alias.0.NSPanel.X...) siehst du jetzt folgende Darstellung:
+
+
+Der Schaltzustand (Lampe an/aus) kann direkt aus der cardEntities oder carGrid erfolgen. Für die Regelung der Helligkeit, Farbtemperatur und (wenn vorhanden) Farbe hat der Alias-Gerätetyp "HUE-Licht" bereits eine Unterseite (siehe nachfolgende Abb.). Diese kann über einen Klick auf den Bezeichner aufgeschaltet werden:
+
+
+
+Es können noch weitere Parameter übergeben werden:
+* icon
+* onColor
+* offColor
+* minValueBrightness (Default = 0)
+* maxValueBrightness (Default = 100; im Beispiel mit dem Datenpunkt "bri" also 255)
+* minValueColorTemp (z.B. 500 - in Abhängigkeit des jeweiligen Adapters)
+* maxValueColorTemp: (z.B. 6500 - in Abhängigkeit des jeweiligen Adapters)
+
+
+***
+
+### Info (channel info)
+
+
+
+Zunächst legen wir analog "[Schritt 1](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#alias-erzeugen---schritt-1---tab-allgemein)" (Tab Allgemein) einen Alias vom Typ **Info** an. Im "Schritt 2" (Tab Zustände) weisen wir jetzt die Datenpunkte des Adapters zu:
+
+
+Jetzt speicherst du den neu erstellten Alias. Unter ioBroker Objekte (Verzeichnisbaum alias.0.NSPanel.X...) siehst du jetzt folgende Darstellung:
+
+
+Beispiel für das PageItem
+```
+{ id: "alias.0.NSPanel_1.TestInfo", name: "Windstärke", icon: "wind-power-outline", offColor: MSRed, onColor: MSGreen, unit: "bft", minValue: 0, maxValue: 12, interpolateColor: true, useColor: true }
+```
+
+**Parameter**
+* name:
+* icon:
+* offcolor:
+* oncolor:
+* unit:
+* minValue:
+* maxValue:
+* interpolateColor:
+* colorScale:
+* useValue:
+* useColor:
+
+***
+
+### Jalousien (channel blind)
+
+
+Und die zugehörige Detailseite
+
+
+Zunächst legen wir analog "[Schritt 1](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#alias-erzeugen---schritt-1---tab-allgemein)" (Tab Allgemein) einen Alias vom Typ **Jalousie** an. Im "Schritt 2" (Tab Zustände) weisen wir jetzt die Datenpunkte des Adapters zu:
+
+
+Jetzt speicherst du den neu erstellten Alias. Unter ioBroker Objekte (Verzeichnisbaum alias.0.NSPanel.X...) siehst du jetzt folgende Darstellung:
+
+
+Die Konfiguration für Rollo / Jalousie / Markise wurde um die Parameter minValueLevel, maxValueLevel, minValueTilt und maxValueTilt erweitert. Damit können jetzt die Standardwerte überschrieben werden.
+Es muss immer min und max angegeben werden.
+
+**Parameter**
+* name:
+* icon:
+* minValueLevel: -> Postion unten -> Standard 0%
+* maxValueLevel: -> Position oben -> Standard 100%
+* minValueTilt: -> verdrehen der Lamellen linksrum -> Standard 0%
+* maxValueTilt: ->verdrehen der Lamellen rechtsrum -> Standard 100%
+* secondRow: im Detailbild die Zeile unter dem Namen
+
+Beispiel für das PageItem:
+```
+{ id: 'alias.0.NSPanel.allgemein.Rollo', name: "Test Rollo", secondRow: "Hier Text für 2. Zeile", minValueLevel: 100, maxValueLevel: 0, minValueTilt: 100, maxValueTilt: 0},
+```
+
+> Wenn die Steuererung nur über die Position möglich ist, gibt es hier eine Beschreibung: https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker---FAQ-&-Anleitungen#8-rolladen--jalousie--shutter
+
+***
+
+### Klimaanlage - cardThermo - (channel airCondition)
+
+***
+
+### Lautstärke (channel volume)
+
+
+> **Analog zum Alias "Lautstärkegruppe", jedoch mit dem Alias-Gerätetypen "Lautstärke**"
+
+***
+
+### Lautstärke-Gruppe (channel volumeGroup)
+
+
+Zunächst legen wir analog "[Schritt 1](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#alias-erzeugen---schritt-1---tab-allgemein)" (Tab Allgemein) einen Alias vom Typ **HUE-Licht** an. Im "Schritt 2" (Tab Zustände) weisen wir jetzt die Datenpunkte des Adapters zu:
+
+
+Jetzt speicherst du den neu erstellten Alias. Unter ioBroker Objekte (Verzeichnisbaum alias.0.NSPanel.X...) siehst du jetzt folgende Darstellung:
+
+
+Das zugehörige PageItem im TypeScript:
+```typescript
+{id: 'alias.0.NSPanel_1.Testlautstärke', onColor: MSGreen, offColor:MSRed, minValue: 0, maxValue: 100, name: 'Echo Spot Küche'}
+```
+
+**Parameter:**
+name: Vom Alias abweichender Name
+offColor: wenn Muted
+onColor: wenn nicht Muted
+minValue: Minimale Lautstärkewert (Default 0)
+maxValue: Minimale Lautstärkewert (Default 100)
+
+***
+
+### Licht (channel light)
+
+
+
+**Zur Steuerung von Leuchtmitteln ohne Farbtemperatur oder Farbeffekten (Alternativ kann auch Socket verwendet werden)**.
+
+Zunächst legen wir analog "[Schritt 1](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#alias-erzeugen---schritt-1---tab-allgemein)" (Tab Allgemein) einen Alias vom Typ **Licht** an. Im "Schritt 2" (Tab Zustände) weisen wir jetzt die Datenpunkte des Adapters zu:
+
+
+Jetzt speicherst du den neu erstellten Alias. Unter ioBroker Objekte (Verzeichnisbaum alias.0.NSPanel.X...) siehst du jetzt folgende Darstellung:
+
+
+***
+
+### Medien - cardMedia
+
+Der Alias-Medien für die cardMedia lässt sich mit dem Geräte-Manager nicht erstellen. Auch mit dem Alias-Manager unter "Automatisch erstellen" aus einem Player-Pfad ist das je nach Adapter eher eine Zufallsproduktion.
+> Es gibt von britzelpuf bereits einen noch offenen github-Issue: https://github.com/ioBroker/ioBroker.devices/issues/152 seit dem 17.03.2022
+
+Der Alias gibt aktuell nur einen .ACTUAL her. Das ist jedoch für einen Media-Player definitiv zu wenig.
+
+> **Es wird bis auf die Aliase für die Squeezebox kein manuell erstellter Alias mehr benötigt. In der Javascript Instanz muss "Kommando SetObject erlauben" aktiviert werden!**
+
+
+Obwohl das alles Aliase vom Typ Medien sind, sehen bis auf zwei alle anderen nicht korrekt aus, sind aber in der Objektstruktur korrekt und funktionieren auch mit dem NSPanel
+
+
+#### Spotify-Premium-Adapter
+
+
+
+> Anleitung:
+> * Wenn das erste mal die Seite aufgerufen wird, wird der Alias automatisch erzeugt. Die Seite ist zu diesem Zeitpunkt schwarz.
+> * Sobald der Screensaver aufgeschaltet und wieder entfernt wird, ist der Player einsatzbereit.
+
+
+
+#### Alexa2-Adapter
+
+
+
+> Anleitung:
+> * Wenn das erste mal die Seite aufgerufen wird, wird der Alias automatisch erzeugt. Die Seite ist zu diesem Zeitpunkt schwarz.
+> * Sobald der Screensaver aufgeschaltet und wieder entfernt wird, ist der Player einsatzbereit.
+
+
+
+#### Sonos-Adapter
+
+> Anleitung:
+> * Wenn das erste mal die Seite aufgerufen wird, wird der Alias automatisch erzeugt. Die Seite ist zu diesem Zeitpunkt schwarz.
+> * Sobald der Screensaver aufgeschaltet und wieder entfernt wird, ist der Player einsatzbereit.
+
+[weitere Beschreibung hier](https://github.com/joBr99/nspanel-lovelace-ui/wiki/NSPanel-‐-cardMedia-‐-Der-SONOS-Player)
+
+
+
+
+
+#### Volumio-Player
+
+> Anleitung:
+> * Wenn das erste mal die Seite aufgerufen wird, wird der Alias automatisch erzeugt. Die Seite ist zu diesem Zeitpunkt schwarz.
+> * Sobald der Screensaver aufgeschaltet und wieder entfernt wird, ist der Player einsatzbereit.
+
+
+
+#### Chromecast-Adpter (Google home)
+
+> Anleitung:
+> * Wenn das erste mal die Seite aufgerufen wird, wird der Alias automatisch erzeugt. Die Seite ist zu diesem Zeitpunkt schwarz.
+> * Sobald der Screensaver aufgeschaltet und wieder entfernt wird, ist der Player einsatzbereit.
+
+
+
+#### Logitech SqueezeBoxRPC-Adapter
+**Skript zum Anlegen eines SqueezeBoxRPC - media-Alias (ab Version 3.4.0.6)**
+
+
+
+| Nr. | +Alias-Type (german) | +Rolle (channel) | +Alias Datenpunkt | +required | +Datentyp | +Rolle (state) | +Datenpunkt (typisch) | +On-Icon | +Off-Icon | +Usericon | +
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | +Bewegung | +motion | +ACTUAL | +X | +boolean | +sensor.motion | +Open | +motion-sensor | ++ | X | +
| 2 | +CIE Farblicht | +cie | +CIE | +X | +number | +level.color.cie | ++ | lightbulb | ++ | + |
| DIMMER | +X | +boolean | +level.dimmer | ++ | ||||||
| ON | +X | +boolean | +switch.light | ++ | ||||||
| ON_ACTUAL | +X | +boolean | +state.light | ++ | ||||||
| TEMPERATURE | +X | +number | +level.color.temperature | ++ | ||||||
| 3 | +Dimmer | +dimmer | +SET | +X | +number | +level.dimmer | +Level/Brightness | +lightbulb | ++ | + |
| ACTUAL | +X | +number | +value.dimmer | +Level/Brightness | +||||||
| ON_SET | +X | +boolean | +switch.light | +On/Switch/Power (Tasmota) | +||||||
| ON_ACTUAL | +X | +boolean | +switch.light | +On/Switch/Power (Tasmota) | +||||||
| 4 | +Fahrplan | +timeTable | +ACTUAL | +X | +string | +state | ++ | + | + | + |
| VEHICLE | +X | +string | +state | ++ | ||||||
| DIRECTION | +X | +string | +state | ++ | ||||||
| DELAY | +X | +boolean | +state | ++ | ||||||
| 5 | +Farbtemperatur | +ct | +DIMMER | +X | +number | +level.dimmer | +Level/Brightness | +lightbulb | ++ | + |
| ON | +X | +boolean | ++ | On/Switch/Power (Tasmota) | +||||||
| TEMPERATURE | +X | +number | +level.color.temperature | +Level/Color | +||||||
| 6 | +Fenster | +window | +ACTUAL | +X | +boolean | +sensor.window | +Open | +information-outline | ++ | X | +
| 7 | +Feuchtigkeit | +humidity | +ACTUAL | +X | +number | +value.humidity | +Humidity | +information-outline | ++ | X | +
| 8 | +HUE-Licht | +hue | +DIMMER | +X | +number | +level.dimmer | +Level/Brightness | +lightbulb | ++ | + |
| HUE | ++ | number | +level.color.hue | +Hue | +||||||
| ON | +X | +boolean | +switch.light | +On/Switch/Power (Tasmota) | +||||||
| ON_ACTUAL | +X | +boolean | +state.light | +On/Switch/Power (Tasmota) | +||||||
| TEMPERATURE | +X | +number | +level.color.temperature | +Level/Color | +||||||
| 9 | +Info | +info | +ACTUAL | +X | +string | +state | +Alle Werte | +information-outline | ++ | X | +
| 10 | +Jalousien | +blind | +ACTUAL | +X | +number | +value.blind | ++ | window-open | ++ | + |
| CLOSE | +X | +boolean | +button.close.blind | ++ | ||||||
| OPEN | +X | +boolean | +button.open.blind | ++ | ||||||
| SET | +X | +number | +level.blind | ++ | ||||||
| STOP | +X | +boolean | +button.stop.blind | ++ | ||||||
| TILT_ACTUAL | ++ | number | +value.blind | ++ | ||||||
| TILT_CLOSE | ++ | boolean | +button.close.blind | ++ | ||||||
| TILT_OPEN | ++ | boolean | +button.open.blind | ++ | ||||||
| TILT_SET | ++ | number | +level.blind | ++ | ||||||
| TILT_STOP | ++ | boolean | +button.stop.blind | ++ | ||||||
| 11 | +Klimaanlage | +airCondition | +ACTUAL | +X | +number | +value.temperature | ++ | + | + | + |
| AUTO | ++ | boolean | +state | ++ | + | + | + | |||
| BOOST | ++ | boolean | +switch.boost | ++ | + | + | + | |||
| COOL | ++ | boolean | +state | ++ | + | + | + | |||
| ERROR | ++ | boolean | +indicator.error | ++ | + | + | + | |||
| HEAT | ++ | boolean | +state | ++ | + | + | + | |||
| HUMIDITY | ++ | number | +value.humidity | ++ | + | + | + | |||
| MAINTAIN | ++ | boolean | +indicator.maintainance | ++ | + | + | + | |||
| MODE | +X | +number | +level.mode.aircondition | ++ | + | + | + | |||
| OFF | +X | +boolean | +state | ++ | + | + | + | |||
| POWER | +X | +boolean | +state | ++ | + | + | + | |||
| SET | +X | +number | +level.temperatur | ++ | + | + | + | |||
| SPEED | ++ | number | +level.mode.fan | ++ | + | + | + | |||
| SWING | ++ | boolean | +sitch.mode.swing | ++ | + | + | + | |||
| UNREACH | ++ | boolean | +indicator.maintainance | ++ | + | + | + | |||
| 12 | +Lautstärke | +volume | +ACTUAL | +X | +number | +value.volume | +alexa2.0.Player.volume | +volume-low/ volume-medium/ volume-high/volume-mute |
+ + | + |
| MUTE | +X | +boolean | +media.mute | +alexa2.0.Player.muted | +||||||
| SET | +X | +number | +level.volume | +alexa2.0.Player.volume | +||||||
| 13 | +Lautstärkegruppe | +volumeGroup | +ACTUAL | +X | +number | +value.volume | ++ | volume-low/ volume-medium/ volume-high/volume-mute |
+ + | + |
| MUTE | +X | +boolean | +media.mute | ++ | ||||||
| SET | +X | +number | +level.volume | ++ | ||||||
| 14 | +Licht | +light | +SET | +X | +boolean | +switch.light | +On/Switch/Power (Tasmota) | +lightbulb | +lightbulb | ++ |
| 15 | +Medien | +media | +ACTUAL | +X | +number | +value.volume | +
+
|
+ + | + | + |
| ALBUM | +X | +string | +media.album | +
+
|
+ + | + | + | |||
| ARTIST | +X | +string | +media.artist | +
+
|
+ + | + | + | |||
| CONTENT_DESCRIPTION | +X | +string | +media.station | +
+
|
+ + | + | + | |||
| NEXT | +X | +boolean | +button.next | +
+
|
+ + | + | + | |||
| PAUSE | +X | +boolean | +button.pause | +
+
|
+ + | + | + | |||
| PLAY | +X | +boolean | +button.play | +
+
|
+ + | + | + | |||
| PREV | +X | +boolean | +button.prev | +
+
|
+ + | + | + | |||
| SHUFFLE | +X | +boolean | +media.mode.shuffle | +
+
|
+ + | + | + | |||
| REPEAT | +X | +boolean | +media.mode.repeat | +
+
|
+ + | + | + | |||
| STATE | +X | +boolean | +media.state | +
+
|
+ + | + | + | |||
| status | +X | +string | +media.state | +
+
|
+ + | + | + | |||
| STOP | +X | +boolean | +button.stop | +
+
|
+ + | + | + | |||
| TITLE | +X | +string | +media.title | +
+
|
+ + | + | + | |||
| VOLUME | +X | +number | +level.volume | +
+
|
+ + | + | + | |||
| VOLUME_ACTUAL | +X | +number | +value.volume | +
+
|
+ + | + | + | |||
| 16 | +RGB-Licht | +rgb | +BLUE | +X | +number | +level.color.blue | ++ | lightbulb | ++ | + |
| DIMMER | +X | +number | +level.dimmer | ++ | ||||||
| GREEN | +X | +number | +level.color.green | ++ | ||||||
| ON | +X | +boolean | +switch.light | ++ | ||||||
| ON_ACTUAL | +X | +boolean | +state.light | ++ | ||||||
| RED | +X | +number | +level.color.red | ++ | ||||||
| TEMPERATURE | +X | +number | +level.color.temperature | ++ | ||||||
| WHITE | ++ | number | +level.color.white | ++ | ||||||
| 17 | +RGB-Licht-einzeln | +rgbSingle | +DIMMER | +X | +number | +level.dimmer | ++ | lightbulb | ++ | + |
| ON | +X | +boolean | +switch.light | ++ | ||||||
| ON_ACTUAL | +X | +boolean | +state.light | ++ | ||||||
| RGB | +X | +string | +level.color.rgb | +HEX Color like #da43ff | +||||||
| TEMPERATURE | +X | +number | +level.color.temperature | ++ | ||||||
| 18 | +Schieberegler | +slider | +ACTUAL | +X | +number | +value | ++ | plus-minus-variant | ++ | + |
| SET | +X | +number | +level | ++ | ||||||
| 19 | +Steckdose | +socket | +ACTUAL | +X | +boolean | +switch | ++ | power-socket-de | +power-socket-de | ++ |
| SET | +X | +boolean | +switch | ++ | ||||||
| 20 | +Taste | +button | +SET | +X | +boolean | +button | ++ | + | + | + |
| 21 | +Tastensensor | +buttonSensor | +ACTUAL | +X | +boolean | +state | ++ | gesture-tap-button | ++ | + |
| 22 | +Temperatur | +temperature oder value.temperature | +ACTUAL | +X | +number | +value.temperature | ++ | information-outline | ++ | + |
| SECOND | ++ | number | +value.humidity | ++ | ||||||
| 23 | +Thermostat | +thermostat | +ACTUAL | +X | +number | +value.temperature | ++ | thermometer | ++ | X | +
| AUTOMATIC | +X | +boolean | +state | ++ | ||||||
| BOOST | ++ | boolean | +state | ++ | ||||||
| ERROR | ++ | boolean | +state | ++ | ||||||
| HUMIDITY | ++ | number | +value.humidity | ++ | ||||||
| LOWBAT | ++ | boolean | +indicator.maintainance | ++ | ||||||
| MANUAL | ++ | boolean | +state | ++ | ||||||
| MAINTAIN | ++ | boolean | +indicator.maintainance | ++ | ||||||
| MODE | +X | +number | +level.mode.thermostat | ++ | ||||||
| PARTY | ++ | boolean | +state | ++ | ||||||
| POWER | ++ | boolean | +state | ++ | ||||||
| SET | +X | +number | +level.temperature | ++ | ||||||
| UNREACH | ++ | boolean | +indicator.maintainance | ++ | ||||||
| VACATION | ++ | boolean | +state | ++ | ||||||
| WINDOWOPEN | ++ | boolean | +state | ++ | ||||||
| WORKING | ++ | boolean | +state | ++ | ||||||
| 24 | +Timer | +level.timer | +ACTUAL | +X | +number | +timestamp | ++ | + | + | + |
| STATE | +X | +string | +state | ++ | ||||||
| 25 | +Tor | +gate | +ACTUAL | +X | +boolean | +switch.gate | ++ | garage | +garage-open | ++ |
| SET | +X | +boolean | +switch.gate | ++ | ||||||
| STOP | +X | +boolean | +button.stop | ++ | ||||||
| 26 | +Tür | +door | +ACTUAL | +X | +boolean | +sensor.door | +Open | +door-open | +door-closed | ++ |
| 27 | +Ventilator | +level.mode.fan | +ACTUAL | +X | +boolean | +state | ++ | fan | ++ | + |
| MODE | +X | +number | +state | ++ | ||||||
| SET | +X | +boolean | +state | ++ | ||||||
| SPEED | +X | +number | +state | ++ | ||||||
| 28 | +Verschluss | +lock | +ACTUAL | +X | +boolean | +state | ++ | lock | +lock-open-variant | ++ |
| OPEN | +X | +boolean | +button | ++ | ||||||
| SET | +X | +boolean | +switch.lock | ++ | ||||||
| 29 | +Warnung | +warning | +INFO | +X | +string | +weather.title | ++ | + | + | + |
| LEVEL | +X | +number | +value.warning | ++ | ||||||
| TITLE | +X | +string | +weather.title.short | ++ | ||||||
| 30 | +Wettervorhersage | +weatherforecast | +ICON | +X | +number | +weather.icon.forecast.0 | +accuweather.0.Current.WeatherIcon | ++ | + | + |
| TEMP | +X | +number | +value.temperature.forecast.0 | +accuweather.0.Current.Temperature | ++ | + | + | |||
| 31 | +Wifi | +info | +ACTUAL | +X | +string | +state | +Example 0_userdata.0.Datapoint: + "WIFI:T:WPA;S:Test-SSID-Guest;P:guestaccess;H:;" |
+ + | + | + |