mirror of
https://github.com/joBr99/nspanel-lovelace-ui.git
synced 2025-12-21 06:54:24 +01:00
Merge branch 'main' of github.com:joBr99/nspanel-lovelace-ui
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
+++ /dev/fd/62 2023-11-19 11:50:01.948444798 +0000
|
+++ /dev/fd/62 2023-11-20 12:00:30.030688688 +0000
|
||||||
+le list
|
+le list
|
||||||
+ +1,9 @@
|
+ +1,9 @@
|
||||||
+.s.txt
|
+.s.txt
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*-----------------------------------------------------------------------
|
/*-----------------------------------------------------------------------
|
||||||
TypeScript v4.3.3.5 zur Steuerung des SONOFF NSPanel mit dem ioBroker by @Armilar / @TT-Tom / @Sternmiere / @Britzelpuf / @ravenS0ne
|
TypeScript v4.3.3.7 zur Steuerung des SONOFF NSPanel mit dem ioBroker by @Armilar / @TT-Tom / @Sternmiere / @Britzelpuf / @ravenS0ne
|
||||||
- abgestimmt auf TFT 53 / v4.3.3 / BerryDriver 9 / Tasmota 13.2.0
|
- abgestimmt auf TFT 53 / v4.3.3 / BerryDriver 9 / Tasmota 13.2.0
|
||||||
@joBr99 Projekt: https://github.com/joBr99/nspanel-lovelace-ui/tree/main/ioBroker
|
@joBr99 Projekt: https://github.com/joBr99/nspanel-lovelace-ui/tree/main/ioBroker
|
||||||
NsPanelTs.ts (dieses TypeScript in ioBroker) Stable: https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/NsPanelTs.ts
|
NsPanelTs.ts (dieses TypeScript in ioBroker) Stable: https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/NsPanelTs.ts
|
||||||
@@ -53,7 +53,11 @@ ReleaseNotes:
|
|||||||
- 13.11.2023 - v4.3.3.3 if setOption = false, do not create autoAlias (Functional/Servicemenu) and Datapoints
|
- 13.11.2023 - v4.3.3.3 if setOption = false, do not create autoAlias (Functional/Servicemenu) and Datapoints
|
||||||
- 15.11.2023 - v4.3.3.4 New Service Page -> ioBroker Info
|
- 15.11.2023 - v4.3.3.4 New Service Page -> ioBroker Info
|
||||||
- 16.11.2023 - v4.3.3.5 Add Multilingualism to Service Menu (39 languages)
|
- 16.11.2023 - v4.3.3.5 Add Multilingualism to Service Menu (39 languages)
|
||||||
- 17.11.2023 - v4.3.3.5 Add Multilingualism to cardQR, popupFan, popupTimer (39 languages)
|
- 17.11.2023 - v4.3.3.5 Add Multilingualism to cardQR, popupFan, popupTimer (39 languages)
|
||||||
|
- 18.11.2023 - v4.3.3.6 Add autoCreateALias to PageAlarm
|
||||||
|
- 20.11.2023 - v4.3.3.6 Add actionStringArray to PageAlarm
|
||||||
|
- 20.11.2023 - v4.3.3.6 Add Add Multilingualism to cardAlarm (39 languages)
|
||||||
|
- 20.11.2023 - v4.3.3.7 Add Add Multilingualism to cardMedia (39 languages)
|
||||||
|
|
||||||
Todo:
|
Todo:
|
||||||
- XX.XX.XXXX - v4.4.0 Change the bottomScreensaverEntity (rolling) if more than 6 entries are defined
|
- XX.XX.XXXX - v4.4.0 Change the bottomScreensaverEntity (rolling) if more than 6 entries are defined
|
||||||
@@ -261,7 +265,18 @@ const swWindy: RGB = { red: 150, green: 150, blue: 150};
|
|||||||
|
|
||||||
//-- Anfang der Beispiele für Seitengestaltung -- Selbstdefinierte Aliase erforderlich -----------------------
|
//-- Anfang der Beispiele für Seitengestaltung -- Selbstdefinierte Aliase erforderlich -----------------------
|
||||||
//-- siehe https://github.com/joBr99/nspanel-lovelace-ui/wiki/NSPanel-Page-%E2%80%90-Typen_How-2_Beispiele
|
//-- siehe https://github.com/joBr99/nspanel-lovelace-ui/wiki/NSPanel-Page-%E2%80%90-Typen_How-2_Beispiele
|
||||||
|
let Alarmseite = <PageAlarm>
|
||||||
|
{
|
||||||
|
"type": "cardAlarm",
|
||||||
|
"heading": "Alarm",
|
||||||
|
"useColor": true,
|
||||||
|
"subPage": false,
|
||||||
|
"items": [
|
||||||
|
<PageItem>{ id: 'alias.0.NSPanel.Alarm',
|
||||||
|
actionStringArray: ['Vollschutz','Zuhause','Nacht','Besuch','Ausschalten'],
|
||||||
|
autoCreateALias: true }
|
||||||
|
]
|
||||||
|
}
|
||||||
//-- ENDE der Beispiele für Seitengestaltung -- Selbstdefinierte Aliase erforderlich -------------------------
|
//-- ENDE der Beispiele für Seitengestaltung -- Selbstdefinierte Aliase erforderlich -------------------------
|
||||||
|
|
||||||
|
|
||||||
@@ -757,7 +772,7 @@ export const config = <Config> {
|
|||||||
defaultColor: Off,
|
defaultColor: Off,
|
||||||
defaultBackgroundColor: HMIDark, // Default-Hintergrundfarbe HMIDark oder Black
|
defaultBackgroundColor: HMIDark, // Default-Hintergrundfarbe HMIDark oder Black
|
||||||
pages: [
|
pages: [
|
||||||
|
Alarmseite,
|
||||||
NSPanel_Service //Auto-Alias Service Page
|
NSPanel_Service //Auto-Alias Service Page
|
||||||
//Unlock_Service //Auto-Alias Service Page (Service Pages used with cardUnlock)
|
//Unlock_Service //Auto-Alias Service Page (Service Pages used with cardUnlock)
|
||||||
],
|
],
|
||||||
@@ -820,7 +835,7 @@ let globalTracklist: any;
|
|||||||
let weatherAdapterInstanceNumber: number = 0;
|
let weatherAdapterInstanceNumber: number = 0;
|
||||||
let isSetOptionActive: boolean = false;
|
let isSetOptionActive: boolean = false;
|
||||||
|
|
||||||
const scriptVersion: string = 'v4.3.3.5';
|
const scriptVersion: string = 'v4.3.3.7';
|
||||||
let nodeVersion: string = '';
|
let nodeVersion: string = '';
|
||||||
let javaScriptVersion: string = '';
|
let javaScriptVersion: string = '';
|
||||||
|
|
||||||
@@ -4374,7 +4389,7 @@ function GenerateMediaPage(page: PageMedia): Payload[] {
|
|||||||
author = getState(id + '.ARTIST').val;
|
author = getState(id + '.ARTIST').val;
|
||||||
}
|
}
|
||||||
if ((getState(id + '.ARTIST').val).length == 0) {
|
if ((getState(id + '.ARTIST').val).length == 0) {
|
||||||
author = 'no music to control';
|
author = findLocale('media','no_music_to_control');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4388,7 +4403,7 @@ function GenerateMediaPage(page: PageMedia): Payload[] {
|
|||||||
}
|
}
|
||||||
author = getState(id + '.ARTIST').val + ' | ' + getState(id + '.ALBUM').val;
|
author = getState(id + '.ARTIST').val + ' | ' + getState(id + '.ALBUM').val;
|
||||||
if ((getState(id + '.ARTIST').val).length == 0) {
|
if ((getState(id + '.ARTIST').val).length == 0) {
|
||||||
author = 'no music to control';
|
author = findLocale('media','no_music_to_control');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4421,7 +4436,7 @@ function GenerateMediaPage(page: PageMedia): Payload[] {
|
|||||||
author = getState(id + '.ARTIST').val;
|
author = getState(id + '.ARTIST').val;
|
||||||
}
|
}
|
||||||
if ((getState(id + '.ARTIST').val).length == 0) {
|
if ((getState(id + '.ARTIST').val).length == 0) {
|
||||||
author = 'no music to control';
|
author = findLocale('media','no_music_to_control');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4471,7 +4486,7 @@ function GenerateMediaPage(page: PageMedia): Payload[] {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let currentSpeaker = 'kein Speaker gefunden';
|
let currentSpeaker = findLocale('media','no_speaker_found');
|
||||||
|
|
||||||
if (v2Adapter == 'alexa2') {
|
if (v2Adapter == 'alexa2') {
|
||||||
currentSpeaker = getState(([page.items[0].adapterPlayerInstance, 'Echo-Devices.', page.items[0].mediaDevice, '.Info.name'].join(''))).val;
|
currentSpeaker = getState(([page.items[0].adapterPlayerInstance, 'Echo-Devices.', page.items[0].mediaDevice, '.Info.name'].join(''))).val;
|
||||||
@@ -4525,7 +4540,7 @@ function GenerateMediaPage(page: PageMedia): Payload[] {
|
|||||||
id + '?speakerlist' + '~' +
|
id + '?speakerlist' + '~' +
|
||||||
Icons.GetIcon('speaker') + '~' +
|
Icons.GetIcon('speaker') + '~' +
|
||||||
speakerListIconCol + '~' +
|
speakerListIconCol + '~' +
|
||||||
'Speaker' + '~' +
|
findLocale('media','speaker') + '~' +
|
||||||
'media0~'
|
'media0~'
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4553,7 +4568,8 @@ function GenerateMediaPage(page: PageMedia): Payload[] {
|
|||||||
id + '?playlist' + '~' +
|
id + '?playlist' + '~' +
|
||||||
Icons.GetIcon('playlist-play') + '~' +
|
Icons.GetIcon('playlist-play') + '~' +
|
||||||
playListIconCol + '~' +
|
playListIconCol + '~' +
|
||||||
'PlayL ' + page.heading + '~' +
|
//'PlayL ' + page.heading + '~' +
|
||||||
|
findLocale('media','playlist') + '~' +
|
||||||
'media1~'
|
'media1~'
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4586,7 +4602,7 @@ function GenerateMediaPage(page: PageMedia): Payload[] {
|
|||||||
id + '?tracklist' + '~' +
|
id + '?tracklist' + '~' +
|
||||||
Icons.GetIcon('animation-play-outline') + '~' +
|
Icons.GetIcon('animation-play-outline') + '~' +
|
||||||
trackListIconCol + '~' +
|
trackListIconCol + '~' +
|
||||||
'Tracklist' + '~' +
|
findLocale('media','tracklist') + '~' + + '~' +
|
||||||
'media2~'
|
'media2~'
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4599,7 +4615,7 @@ function GenerateMediaPage(page: PageMedia): Payload[] {
|
|||||||
id + '?equalizer' + '~' +
|
id + '?equalizer' + '~' +
|
||||||
Icons.GetIcon('equalizer-outline') + '~' +
|
Icons.GetIcon('equalizer-outline') + '~' +
|
||||||
equalizerListIconCol + '~' +
|
equalizerListIconCol + '~' +
|
||||||
'Equalizer' + '~' +
|
findLocale('media','equalizer') + '~' + + '~' +
|
||||||
'media3~'
|
'media3~'
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4689,6 +4705,34 @@ function GenerateMediaPage(page: PageMedia): Payload[] {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function createAutoAlarmAlias (id: string, nsPath: string){
|
||||||
|
try {
|
||||||
|
if (Debug){
|
||||||
|
console.log('Alarm Alias Path: ' + id);
|
||||||
|
console.log('Alarm 0_userdata Path: ' + nsPath);
|
||||||
|
}
|
||||||
|
if (autoCreateAlias) {
|
||||||
|
if (isSetOptionActive) {
|
||||||
|
if (existsState(nsPath + '.AlarmPin') == false || existsState(nsPath + '.AlarmState') == false || existsState(nsPath + '.AlarmType') == false || existsState(nsPath + '.PIN_Failed') == false || existsState(nsPath + '.PANEL') == false) {
|
||||||
|
await createStateAsync(nsPath + '.AlarmPin', '0000', { type: 'string' });
|
||||||
|
await createStateAsync(nsPath + '.AlarmState', 'disarmed', { type: 'string' });
|
||||||
|
await createStateAsync(nsPath + '.AlarmType', 'D1', { type: 'string' });
|
||||||
|
await createStateAsync(nsPath + '.PIN_Failed', 0, { type: 'number' });
|
||||||
|
await createStateAsync(nsPath + '.PANEL', NSPanel_Path, { type: 'string' });
|
||||||
|
setObject(id, {_id: id, type: 'channel', common: {role: 'sensor.fire.alarm', name:'alarm'}, native: {}});
|
||||||
|
await createAliasAsync(id + '.ACTUAL', nsPath + '.AlarmState', true, <iobJS.StateCommon>{ type: 'string', role: 'state', name: 'ACTUAL' });
|
||||||
|
await createAliasAsync(id + '.PIN', nsPath + '.AlarmPin', true, <iobJS.StateCommon>{ type: 'string', role: 'state', name: 'PIN' });
|
||||||
|
await createAliasAsync(id + '.TYPE', nsPath + '.AlarmType', true, <iobJS.StateCommon>{ type: 'string', role: 'state', name: 'TYPE' });
|
||||||
|
await createAliasAsync(id + '.PIN_Failed', nsPath + '.PIN_Failed', true, <iobJS.StateCommon>{ type: 'number', role: 'state', name: 'PIN_Failed' });
|
||||||
|
await createAliasAsync(id + '.PANEL', nsPath + '.PANEL', true, <iobJS.StateCommon>{ type: 'string', role: 'state', name: 'PANEL' });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
console.warn('error at function createAutoAlarmAlias: ' + err.message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function GenerateAlarmPage(page: PageAlarm): Payload[] {
|
function GenerateAlarmPage(page: PageAlarm): Payload[] {
|
||||||
try {
|
try {
|
||||||
activePage = page;
|
activePage = page;
|
||||||
@@ -4697,19 +4741,15 @@ function GenerateAlarmPage(page: PageAlarm): Payload[] {
|
|||||||
|
|
||||||
let out_msgs: Array<Payload> = [];
|
let out_msgs: Array<Payload> = [];
|
||||||
out_msgs.push({ payload: 'pageType~cardAlarm' });
|
out_msgs.push({ payload: 'pageType~cardAlarm' });
|
||||||
let nsPath = NSPanel_Alarm_Path + 'Alarm.';
|
let nsPath = NSPanel_Alarm_Path + 'Alarm';
|
||||||
|
|
||||||
if (existsState(nsPath + 'AlarmPin') == false || existsState(nsPath + 'AlarmState') == false || existsState(nsPath + 'AlarmType') == false || existsState(nsPath + 'PIN_Failed') == false || existsState(nsPath + 'PANEL') == false) {
|
if (page.items[0].autoCreateALias) {
|
||||||
createState(nsPath + 'AlarmPin', '0000', { type: 'string' }, function () { setState(nsPath + 'AlarmPin', '0000') });
|
createAutoAlarmAlias(id, nsPath);
|
||||||
createState(nsPath + 'AlarmState', 'disarmed', { type: 'string' }, function () { setState(nsPath + 'AlarmState', 'disarmed') });
|
|
||||||
createState(nsPath + 'AlarmType', 'D1', { type: 'string' }, function () { setState(nsPath + 'AlarmType', 'D1') });
|
|
||||||
createState(nsPath + 'PIN_Failed', 0, { type: 'number' }, function () { setState(nsPath + 'PIN_Failed', 0) });
|
|
||||||
createState(nsPath + 'PANEL', NSPanel_Path, { type: 'string' }, function () { setState(nsPath + 'PANEL', NSPanel_Path) });
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (existsState(nsPath + 'AlarmPin') && existsState(nsPath + 'AlarmState') && existsState(nsPath + 'AlarmType')) {
|
if (existsState(nsPath + '.AlarmPin') && existsState(nsPath + '.AlarmState') && existsState(nsPath + '.AlarmType')) {
|
||||||
//let entityPin = getState(nsPath + 'AlarmPin').val;
|
//let entityPin = getState(nsPath + 'AlarmPin').val;
|
||||||
let entityState = getState(nsPath + 'AlarmState').val;
|
let entityState = getState(nsPath + '.AlarmState').val;
|
||||||
//let entityType = getState(nsPath + 'AlarmType').val;
|
//let entityType = getState(nsPath + 'AlarmType').val;
|
||||||
let arm1: string, arm2: string, arm3: string, arm4: string;
|
let arm1: string, arm2: string, arm3: string, arm4: string;
|
||||||
let arm1ActionName: string, arm2ActionName: string, arm3ActionName: string, arm4ActionName: string;
|
let arm1ActionName: string, arm2ActionName: string, arm3ActionName: string, arm4ActionName: string;
|
||||||
@@ -4723,7 +4763,11 @@ function GenerateAlarmPage(page: PageAlarm): Payload[] {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (entityState == 'armed' || entityState == 'triggered') {
|
if (entityState == 'armed' || entityState == 'triggered') {
|
||||||
arm1 = 'Deaktivieren'; //arm1*~*
|
if (page.items[0].actionStringArray !== undefined && page.items[0].actionStringArray[4] !== '') {
|
||||||
|
arm1 = page.items[0].actionStringArray[4];
|
||||||
|
} else {
|
||||||
|
arm1 = findLocale('alarm_control_panel', 'disarm'); //'Deaktivieren'; //arm1*~*
|
||||||
|
}
|
||||||
arm1ActionName = 'D1'; //arm1ActionName*~*
|
arm1ActionName = 'D1'; //arm1ActionName*~*
|
||||||
arm2 = ''; //arm2*~*
|
arm2 = ''; //arm2*~*
|
||||||
arm2ActionName = ''; //arm2ActionName*~*
|
arm2ActionName = ''; //arm2ActionName*~*
|
||||||
@@ -4734,14 +4778,34 @@ function GenerateAlarmPage(page: PageAlarm): Payload[] {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (entityState == 'disarmed' || entityState == 'arming' || entityState == 'pending') {
|
if (entityState == 'disarmed' || entityState == 'arming' || entityState == 'pending') {
|
||||||
arm1 = 'Vollschutz'; //arm1*~*
|
if (page.items[0].actionStringArray !== undefined && page.items[0].actionStringArray[0] !== '') {
|
||||||
arm1ActionName = 'A1'; //arm1ActionName*~*
|
arm1 = page.items[0].actionStringArray[0];
|
||||||
arm2 = 'Zuhause'; //arm2*~*
|
} else {
|
||||||
arm2ActionName = 'A2'; //arm2ActionName*~*
|
arm1 = findLocale('alarm_control_panel', 'arm_away'); //'Vollschutz' //arm1*~*
|
||||||
arm3 = 'Nacht'; //arm3*~*
|
}
|
||||||
arm3ActionName = 'A3'; //arm3ActionName*~*
|
arm1ActionName = 'A1'; //arm1ActionName*~*
|
||||||
arm4 = 'Besuch'; //arm4*~*
|
if (page.items[0].actionStringArray !== undefined && page.items[0].actionStringArray[1] !== '') {
|
||||||
arm4ActionName = 'A4'; //arm4ActionName*~*
|
arm2 = page.items[0].actionStringArray[1];
|
||||||
|
} else {
|
||||||
|
arm2 = findLocale('alarm_control_panel', 'arm_home'); //'Zuhause'; //arm2*~*
|
||||||
|
}
|
||||||
|
arm2ActionName = 'A2'; //arm2ActionName*~*
|
||||||
|
if (page.items[0].actionStringArray !== undefined && page.items[0].actionStringArray[2] !== '') {
|
||||||
|
arm3 = page.items[0].actionStringArray[2];
|
||||||
|
} else {
|
||||||
|
arm3 = findLocale('alarm_control_panel', 'arm_night'); //'Nacht'; //arm3*~*
|
||||||
|
}
|
||||||
|
arm3ActionName = 'A3'; //arm3ActionName*~*
|
||||||
|
if (page.items[0].actionStringArray !== undefined && page.items[0].actionStringArray[3] !== '') {
|
||||||
|
arm4 = page.items[0].actionStringArray[3];
|
||||||
|
} else {
|
||||||
|
arm4 = findLocale('alarm_control_panel', 'arm_vacation'); //'Besuch'; //arm4*~*
|
||||||
|
}
|
||||||
|
arm4ActionName = 'A4'; //arm4ActionName*~*
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Debug) {
|
||||||
|
console.log('GenerateAlarmPage String for arm1: ' + arm1 + ', arm2: ' + arm2 + ', arm3: ' + arm3 + ', arm4: ' + arm4);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (entityState == 'armed') {
|
if (entityState == 'armed') {
|
||||||
@@ -8244,6 +8308,7 @@ type PageItem = {
|
|||||||
inSel_ChoiceState: (boolean | undefined),
|
inSel_ChoiceState: (boolean | undefined),
|
||||||
iconArray: (string[] | undefined),
|
iconArray: (string[] | undefined),
|
||||||
fontSize: (number | undefined),
|
fontSize: (number | undefined),
|
||||||
|
actionStringArray: (string[] | undefined),
|
||||||
}
|
}
|
||||||
|
|
||||||
type DimMode = {
|
type DimMode = {
|
||||||
|
|||||||
@@ -2409,86 +2409,112 @@
|
|||||||
},
|
},
|
||||||
"qr":{
|
"qr":{
|
||||||
"ssid":{
|
"ssid":{
|
||||||
"en-US":"SSID",
|
"en-US":"SSID",
|
||||||
"de-DE":"SSID",
|
"de-DE":"SSID",
|
||||||
"nl-NL":"SSID",
|
"nl-NL":"SSID",
|
||||||
"da-DK":"SSID",
|
"da-DK":"SSID",
|
||||||
"es-ES":"SSID",
|
"es-ES":"SSID",
|
||||||
"fr-FR":"SSID",
|
"fr-FR":"SSID",
|
||||||
"it-IT":"SSID",
|
"it-IT":"SSID",
|
||||||
"ru-RU":"SSID",
|
"ru-RU":"SSID",
|
||||||
"nb-NO":"SSID",
|
"nb-NO":"SSID",
|
||||||
"nn-NO":"SSID",
|
"nn-NO":"SSID",
|
||||||
"pl-PL":"SSID",
|
"pl-PL":"SSID",
|
||||||
"pt-PT":"SSID",
|
"pt-PT":"SSID",
|
||||||
"af-ZA":"SSID",
|
"af-ZA":"SSID",
|
||||||
"ar-SY":"SSID",
|
"ar-SY":"SSID",
|
||||||
"bg-BG":"SSID",
|
"bg-BG":"SSID",
|
||||||
"ca-ES":"SSID",
|
"ca-ES":"SSID",
|
||||||
"cs-CZ":"SSID",
|
"cs-CZ":"SSID",
|
||||||
"el-GR":"SSID",
|
"el-GR":"SSID",
|
||||||
"et-EE":"SSID",
|
"et-EE":"SSID",
|
||||||
"fa-IR":"SSID",
|
"fa-IR":"SSID",
|
||||||
"fi-FI":"SSID",
|
"fi-FI":"SSID",
|
||||||
"he-IL":"SSID",
|
"he-IL":"SSID",
|
||||||
"hr-xx":"SSID",
|
"hr-xx":"SSID",
|
||||||
"hu-HU":"SSID",
|
"hu-HU":"SSID",
|
||||||
"hy-AM":"SSID",
|
"hy-AM":"SSID",
|
||||||
"id-ID":"SSID",
|
"id-ID":"SSID",
|
||||||
"is-IS":"SSID",
|
"is-IS":"SSID",
|
||||||
"lb-xx":"SSID",
|
"lb-xx":"SSID",
|
||||||
"lt-LT":"SSID",
|
"lt-LT":"SSID",
|
||||||
"ro-RO":"SSID",
|
"ro-RO":"SSID",
|
||||||
"sk-SK":"SSID",
|
"sk-SK":"SSID",
|
||||||
"sl-SI":"SSID",
|
"sl-SI":"SSID",
|
||||||
"sv-SE":"SSID",
|
"sv-SE":"SSID",
|
||||||
"th-TH":"SSID",
|
"th-TH":"SSID",
|
||||||
"tr-TR":"SSID",
|
"tr-TR":"SSID",
|
||||||
"uk-UA":"SSID",
|
"uk-UA":"SSID",
|
||||||
"vi-VN":"SSID",
|
"vi-VN":"SSID",
|
||||||
"zh-CN":"SSID",
|
"zh-CN":"SSID",
|
||||||
"zh-TW":"SSID"
|
"zh-TW":"SSID"
|
||||||
},
|
},
|
||||||
"password":{
|
"password":{
|
||||||
"en-US":"Password",
|
"en-US":"Password",
|
||||||
"de-DE":"Passwort",
|
"de-DE":"Passwort",
|
||||||
"nl-NL":"Wachtwoord",
|
"nl-NL":"Wachtwoord",
|
||||||
"da-DK":"Adgangskode",
|
"da-DK":"Adgangskode",
|
||||||
"es-ES":"Contraseña",
|
"es-ES":"Contraseña",
|
||||||
"fr-FR":"Mot de passe",
|
"fr-FR":"Mot de passe",
|
||||||
"it-IT":"Parola d'ordine",
|
"it-IT":"Parola d'ordine",
|
||||||
"ru-RU":"Пароль",
|
"ru-RU":"Пароль",
|
||||||
"nb-NO":"Passord",
|
"nb-NO":"Passord",
|
||||||
"nn-NO":"Passord",
|
"nn-NO":"Passord",
|
||||||
"pl-PL":"Hasło",
|
"pl-PL":"Hasło",
|
||||||
"pt-PT":"Senha",
|
"pt-PT":"Senha",
|
||||||
"af-ZA":"Wagwoord",
|
"af-ZA":"Wagwoord",
|
||||||
"ar-SY":"كلمة المرور",
|
"ar-SY":"كلمة المرور",
|
||||||
"bg-BG":"Парола",
|
"bg-BG":"Парола",
|
||||||
"ca-ES":"Contrasenya",
|
"ca-ES":"Contrasenya",
|
||||||
"cs-CZ":"Heslo",
|
"cs-CZ":"Heslo",
|
||||||
"el-GR":"Κωδικός πρόσβασης",
|
"el-GR":"Κωδικός πρόσβασης",
|
||||||
"et-EE":"Parool",
|
"et-EE":"Parool",
|
||||||
"fa-IR":"کلمه عبور",
|
"fa-IR":"کلمه عبور",
|
||||||
"fi-FI":"Salasana",
|
"fi-FI":"Salasana",
|
||||||
"he-IL":"סיסמה",
|
"he-IL":"סיסמה",
|
||||||
"hr-xx":"Lozinka",
|
"hr-xx":"Lozinka",
|
||||||
"hu-HU":"Jelszó",
|
"hu-HU":"Jelszó",
|
||||||
"hy-AM":"Գաղտնաբառ",
|
"hy-AM":"Գաղտնաբառ",
|
||||||
"id-ID":"Kata sandi",
|
"id-ID":"Kata sandi",
|
||||||
"is-IS":"Lykilorð",
|
"is-IS":"Lykilorð",
|
||||||
"lb-xx":"Passwuert",
|
"lb-xx":"Passwuert",
|
||||||
"lt-LT":"Slaptažodis",
|
"lt-LT":"Slaptažodis",
|
||||||
"ro-RO":"Parola",
|
"ro-RO":"Parola",
|
||||||
"sk-SK":"heslo",
|
"sk-SK":"heslo",
|
||||||
"sl-SI":"Geslo",
|
"sl-SI":"Geslo",
|
||||||
"sv-SE":"Lösenord",
|
"sv-SE":"Lösenord",
|
||||||
"th-TH":"รหัสผ่าน",
|
"th-TH":"รหัสผ่าน",
|
||||||
"tr-TR":"Şifre",
|
"tr-TR":"Şifre",
|
||||||
"uk-UA":"Пароль",
|
"uk-UA":"Пароль",
|
||||||
"vi-VN":"Mật khẩu",
|
"vi-VN":"Mật khẩu",
|
||||||
"zh-CN":"密码",
|
"zh-CN":"密码",
|
||||||
"zh-TW":"密碼"
|
"zh-TW":"密碼"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"media":{
|
||||||
|
"no_music_to_control":{
|
||||||
|
"en-US":"No music to control",
|
||||||
|
"de-DE":"Keine Musik zum Steuern"
|
||||||
|
},
|
||||||
|
"speaker":{
|
||||||
|
"en-US":"Speakerlist",
|
||||||
|
"de-DE":"Wiedergabegeräte"
|
||||||
|
},
|
||||||
|
"playlist":{
|
||||||
|
"en-US":"Playlist",
|
||||||
|
"de-DE":"Playlist"
|
||||||
|
},
|
||||||
|
"tracklist":{
|
||||||
|
"en-US":"Tracklist",
|
||||||
|
"de-DE":"Titelliste"
|
||||||
|
},
|
||||||
|
"equalizer":{
|
||||||
|
"en-US":"Equalizer",
|
||||||
|
"de-DE":"Equalizer"
|
||||||
|
},
|
||||||
|
"no_speaker_found":{
|
||||||
|
"en-US":"No Speaker found",
|
||||||
|
"de-DE":"Kein Latsprecher gefunden"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2409,86 +2409,108 @@
|
|||||||
},
|
},
|
||||||
"qr":{
|
"qr":{
|
||||||
"ssid":{
|
"ssid":{
|
||||||
"en-US":"SSID",
|
"en-US":"SSID",
|
||||||
"de-DE":"SSID",
|
"de-DE":"SSID",
|
||||||
"nl-NL":"SSID",
|
"nl-NL":"SSID",
|
||||||
"da-DK":"SSID",
|
"da-DK":"SSID",
|
||||||
"es-ES":"SSID",
|
"es-ES":"SSID",
|
||||||
"fr-FR":"SSID",
|
"fr-FR":"SSID",
|
||||||
"it-IT":"SSID",
|
"it-IT":"SSID",
|
||||||
"ru-RU":"SSID",
|
"ru-RU":"SSID",
|
||||||
"nb-NO":"SSID",
|
"nb-NO":"SSID",
|
||||||
"nn-NO":"SSID",
|
"nn-NO":"SSID",
|
||||||
"pl-PL":"SSID",
|
"pl-PL":"SSID",
|
||||||
"pt-PT":"SSID",
|
"pt-PT":"SSID",
|
||||||
"af-ZA":"SSID",
|
"af-ZA":"SSID",
|
||||||
"ar-SY":"SSID",
|
"ar-SY":"SSID",
|
||||||
"bg-BG":"SSID",
|
"bg-BG":"SSID",
|
||||||
"ca-ES":"SSID",
|
"ca-ES":"SSID",
|
||||||
"cs-CZ":"SSID",
|
"cs-CZ":"SSID",
|
||||||
"el-GR":"SSID",
|
"el-GR":"SSID",
|
||||||
"et-EE":"SSID",
|
"et-EE":"SSID",
|
||||||
"fa-IR":"SSID",
|
"fa-IR":"SSID",
|
||||||
"fi-FI":"SSID",
|
"fi-FI":"SSID",
|
||||||
"he-IL":"SSID",
|
"he-IL":"SSID",
|
||||||
"hr-xx":"SSID",
|
"hr-xx":"SSID",
|
||||||
"hu-HU":"SSID",
|
"hu-HU":"SSID",
|
||||||
"hy-AM":"SSID",
|
"hy-AM":"SSID",
|
||||||
"id-ID":"SSID",
|
"id-ID":"SSID",
|
||||||
"is-IS":"SSID",
|
"is-IS":"SSID",
|
||||||
"lb-xx":"SSID",
|
"lb-xx":"SSID",
|
||||||
"lt-LT":"SSID",
|
"lt-LT":"SSID",
|
||||||
"ro-RO":"SSID",
|
"ro-RO":"SSID",
|
||||||
"sk-SK":"SSID",
|
"sk-SK":"SSID",
|
||||||
"sl-SI":"SSID",
|
"sl-SI":"SSID",
|
||||||
"sv-SE":"SSID",
|
"sv-SE":"SSID",
|
||||||
"th-TH":"SSID",
|
"th-TH":"SSID",
|
||||||
"tr-TR":"SSID",
|
"tr-TR":"SSID",
|
||||||
"uk-UA":"SSID",
|
"uk-UA":"SSID",
|
||||||
"vi-VN":"SSID",
|
"vi-VN":"SSID",
|
||||||
"zh-CN":"SSID",
|
"zh-CN":"SSID",
|
||||||
"zh-TW":"SSID"
|
"zh-TW":"SSID"
|
||||||
},
|
},
|
||||||
"password":{
|
"password":{
|
||||||
"en-US":"Password",
|
"en-US":"Password",
|
||||||
"de-DE":"Passwort",
|
"de-DE":"Passwort",
|
||||||
"nl-NL":"Wachtwoord",
|
"nl-NL":"Wachtwoord",
|
||||||
"da-DK":"Adgangskode",
|
"da-DK":"Adgangskode",
|
||||||
"es-ES":"Contraseña",
|
"es-ES":"Contraseña",
|
||||||
"fr-FR":"Mot de passe",
|
"fr-FR":"Mot de passe",
|
||||||
"it-IT":"Parola d'ordine",
|
"it-IT":"Parola d'ordine",
|
||||||
"ru-RU":"Пароль",
|
"ru-RU":"Пароль",
|
||||||
"nb-NO":"Passord",
|
"nb-NO":"Passord",
|
||||||
"nn-NO":"Passord",
|
"nn-NO":"Passord",
|
||||||
"pl-PL":"Hasło",
|
"pl-PL":"Hasło",
|
||||||
"pt-PT":"Senha",
|
"pt-PT":"Senha",
|
||||||
"af-ZA":"Wagwoord",
|
"af-ZA":"Wagwoord",
|
||||||
"ar-SY":"كلمة المرور",
|
"ar-SY":"كلمة المرور",
|
||||||
"bg-BG":"Парола",
|
"bg-BG":"Парола",
|
||||||
"ca-ES":"Contrasenya",
|
"ca-ES":"Contrasenya",
|
||||||
"cs-CZ":"Heslo",
|
"cs-CZ":"Heslo",
|
||||||
"el-GR":"Κωδικός πρόσβασης",
|
"el-GR":"Κωδικός πρόσβασης",
|
||||||
"et-EE":"Parool",
|
"et-EE":"Parool",
|
||||||
"fa-IR":"کلمه عبور",
|
"fa-IR":"کلمه عبور",
|
||||||
"fi-FI":"Salasana",
|
"fi-FI":"Salasana",
|
||||||
"he-IL":"סיסמה",
|
"he-IL":"סיסמה",
|
||||||
"hr-xx":"Lozinka",
|
"hr-xx":"Lozinka",
|
||||||
"hu-HU":"Jelszó",
|
"hu-HU":"Jelszó",
|
||||||
"hy-AM":"Գաղտնաբառ",
|
"hy-AM":"Գաղտնաբառ",
|
||||||
"id-ID":"Kata sandi",
|
"id-ID":"Kata sandi",
|
||||||
"is-IS":"Lykilorð",
|
"is-IS":"Lykilorð",
|
||||||
"lb-xx":"Passwuert",
|
"lb-xx":"Passwuert",
|
||||||
"lt-LT":"Slaptažodis",
|
"lt-LT":"Slaptažodis",
|
||||||
"ro-RO":"Parola",
|
"ro-RO":"Parola",
|
||||||
"sk-SK":"heslo",
|
"sk-SK":"heslo",
|
||||||
"sl-SI":"Geslo",
|
"sl-SI":"Geslo",
|
||||||
"sv-SE":"Lösenord",
|
"sv-SE":"Lösenord",
|
||||||
"th-TH":"รหัสผ่าน",
|
"th-TH":"รหัสผ่าน",
|
||||||
"tr-TR":"Şifre",
|
"tr-TR":"Şifre",
|
||||||
"uk-UA":"Пароль",
|
"uk-UA":"Пароль",
|
||||||
"vi-VN":"Mật khẩu",
|
"vi-VN":"Mật khẩu",
|
||||||
"zh-CN":"密码",
|
"zh-CN":"密码",
|
||||||
"zh-TW":"密碼"
|
"zh-TW":"密碼"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"media":{
|
||||||
|
"no_music_to_control":{
|
||||||
|
"en-US":"No music to control",
|
||||||
|
"de-DE":"Keine Musik zum Steuern"
|
||||||
|
},
|
||||||
|
"speaker":{
|
||||||
|
"en-US":"Speaker",
|
||||||
|
"de-DE":"Lautsprecher"
|
||||||
|
},
|
||||||
|
"playlist":{
|
||||||
|
"en-US":"Playlist",
|
||||||
|
"de-DE":"Playlist"
|
||||||
|
},
|
||||||
|
"tracklist":{
|
||||||
|
"en-US":"Tracks",
|
||||||
|
"de-DE":"Titel"
|
||||||
|
},
|
||||||
|
"equalizer":{
|
||||||
|
"en-US":"Equalizer",
|
||||||
|
"de-DE":"Equalizer"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -131,11 +131,9 @@ class LovelaceUIPanel:
|
|||||||
self.privious_cards.append(
|
self.privious_cards.append(
|
||||||
list(self.cards.values())[0])
|
list(self.cards.values())[0])
|
||||||
self.current_card = self.privious_cards.pop()
|
self.current_card = self.privious_cards.pop()
|
||||||
libs.panel_cmd.page_type(
|
libs.panel_cmd.page_type(self.sendTopic, self.current_card.type)
|
||||||
self.sendTopic, self.current_card.type)
|
libs.panel_cmd.entityUpd(self.sendTopic, self.current_card.render())
|
||||||
libs.panel_cmd.entityUpd(
|
return
|
||||||
self.sendTopic, self.current_card.render()
|
|
||||||
)
|
|
||||||
|
|
||||||
# replace iid with real entity id
|
# replace iid with real entity id
|
||||||
if entity_id.startswith("iid."):
|
if entity_id.startswith("iid."):
|
||||||
|
|||||||
Reference in New Issue
Block a user