Support Event Actions of dynamic types

This commit is contained in:
bembelstemmer
2023-02-22 21:51:36 +01:00
parent 394e5b4614
commit 5bb932293b
2 changed files with 52 additions and 70 deletions

View File

@@ -5384,42 +5384,33 @@ function HandleButtonEvent(words: any): void {
} }
GeneratePage(config.pages[pageId]); GeneratePage(config.pages[pageId]);
} else { } else {
let HVACMode = 0; let HVACMode = getState(words[2] + '.MODE').val;
switch (words[4]) {
case 'POWER': // Event ist an ein eigenes Objekt gebunden
HVACMode = 0; if(existsObject(words[2] + '.' + words[4])) {
setIfExists(words[2] + '.' + words[4], !getState(words[2] + '.' + words[4]).val); switch(words[4]) {
if (getState(words[2] + '.' + words[4]).val) {
HVACMode = 1;
}
break;
case 'AUTO':
HVACMode = 1;
break;
case 'COOL':
HVACMode = 2;
break;
case 'HEAT':
HVACMode = 3;
break;
case 'ECO':
HVACMode = 4;
break;
case 'FAN':
HVACMode = 5;
break;
case 'DRY':
HVACMode = 6;
break;
case 'SWING': case 'SWING':
HVACMode = getState(words[2] + '.MODE').val;
if (getState(words[2] + '.SWING').val == 0) { if (getState(words[2] + '.SWING').val == 0) {
setIfExists(words[2] + '.SWING', 1); setIfExists(words[2] + '.SWING', 1);
} else { } else {
setIfExists(words[2] + '.' + 'SWING', 0); setIfExists(words[2] + '.' + 'SWING', 0);
} }
break; break;
default: // Power und Eco koennen einfach getoggelt werden
setIfExists(words[2] + '.' + words[4], !getState(words[2] + '.' + words[4]).val);
break;
} }
}
// Event ist ein Modus der Liste (Moduswechsel)
let HVACModeList = getObject(words[2] + '.MODE').common.states;
for(const statekey in HVACModeList) {
if(HVACModeList[statekey] == words[4]) {
HVACMode = parseInt(statekey);
break;
}
}
setIfExists(words[2] + '.' + 'MODE', HVACMode); setIfExists(words[2] + '.' + 'MODE', HVACMode);
GeneratePage(config.pages[pageId]); GeneratePage(config.pages[pageId]);
} }

View File

@@ -5001,42 +5001,33 @@ function HandleButtonEvent(words: any): void {
} }
GeneratePage(config.pages[pageId]); GeneratePage(config.pages[pageId]);
} else { } else {
let HVACMode = 0; let HVACMode = getState(words[2] + '.MODE').val;
switch (words[4]) {
case 'POWER': // Event ist an ein eigenes Objekt gebunden
HVACMode = 0; if(existsObject(words[2] + '.' + words[4])) {
setIfExists(words[2] + '.' + words[4], !getState(words[2] + '.' + words[4]).val); switch(words[4]) {
if (getState(words[2] + '.' + words[4]).val) {
HVACMode = 1;
}
break;
case 'AUTO':
HVACMode = 1;
break;
case 'COOL':
HVACMode = 2;
break;
case 'HEAT':
HVACMode = 3;
break;
case 'ECO':
HVACMode = 4;
break;
case 'FAN':
HVACMode = 5;
break;
case 'DRY':
HVACMode = 6;
break;
case 'SWING': case 'SWING':
HVACMode = getState(words[2] + '.MODE').val;
if (getState(words[2] + '.SWING').val == 0) { if (getState(words[2] + '.SWING').val == 0) {
setIfExists(words[2] + '.SWING', 1); setIfExists(words[2] + '.SWING', 1);
} else { } else {
setIfExists(words[2] + '.' + 'SWING', 0); setIfExists(words[2] + '.' + 'SWING', 0);
} }
break; break;
default: // Power und Eco koennen einfach getoggelt werden
setIfExists(words[2] + '.' + words[4], !getState(words[2] + '.' + words[4]).val);
break;
} }
}
// Event ist ein Modus der Liste (Moduswechsel)
let HVACModeList = getObject(words[2] + '.MODE').common.states;
for(const statekey in HVACModeList) {
if(HVACModeList[statekey] == words[4]) {
HVACMode = parseInt(statekey);
break;
}
}
setIfExists(words[2] + '.' + 'MODE', HVACMode); setIfExists(words[2] + '.' + 'MODE', HVACMode);
GeneratePage(config.pages[pageId]); GeneratePage(config.pages[pageId]);
} }