Skip to content

Commit ec45a2d

Browse files
author
ticaki
committed
dp checks fixed
1 parent b007082 commit ec45a2d

10 files changed

+54
-38
lines changed

ALIAS.md

+7-7
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767
| :---: | :--- | :--- | :--- | :---: | :---: | :--- |
6868
| **window** | ACTUAL | boolean| sensor.window | X | | |
6969
| **"** | COLORDEC | number| state | | | |
70-
| **"** | BUTTONTEXT | string| state | | | |
70+
| **"** | BUTTONTEXT | string| state, text | | | |
7171
### humidity
7272
| Channel role | State ID | common.type | common.role | required | common.write | description |
7373
| :---: | :--- | :--- | :--- | :---: | :---: | :--- |
@@ -86,7 +86,7 @@
8686
| :---: | :--- | :--- | :--- | :---: | :---: | :--- |
8787
| **info** | ACTUAL | mixed| state | X | | |
8888
| **"** | COLORDEC | number| state | | | |
89-
| **"** | BUTTONTEXT | string| state | | | |
89+
| **"** | BUTTONTEXT | string| state, text | | | |
9090
| **"** | USERICON | string| state | | | |
9191
### blind
9292
| Channel role | State ID | common.type | common.role | required | common.write | description |
@@ -123,18 +123,18 @@
123123
### socket
124124
| Channel role | State ID | common.type | common.role | required | common.write | description |
125125
| :---: | :--- | :--- | :--- | :---: | :---: | :--- |
126-
| **socket** | ACTUAL | boolean| switch | | | |
127-
| **"** | SET | boolean| switch | X | X | |
126+
| **socket** | ACTUAL | boolean| switch | X | | |
127+
| **"** | SET | boolean| switch | | X | |
128128
| **"** | COLORDEC | number| state | | | |
129-
| **"** | BUTTONTEXT | string| state | | | |
129+
| **"** | BUTTONTEXT | string| state, text | | | |
130130
| **"** | STATE | boolean| state | | X | |
131131
### light
132132
| Channel role | State ID | common.type | common.role | required | common.write | description |
133133
| :---: | :--- | :--- | :--- | :---: | :---: | :--- |
134134
| **light** | ACTUAL | boolean| sensor.light | X | | |
135135
| **"** | SET | boolean| switch.light | X | X | |
136136
| **"** | COLORDEC | number| state | | | |
137-
| **"** | BUTTONTEXT | string| state | | | |
137+
| **"** | BUTTONTEXT | string| state, text | | | |
138138
| **"** | VALUE | number| state | | X | |
139139
### volume
140140
| Channel role | State ID | common.type | common.role | required | common.write | description |
@@ -221,7 +221,7 @@
221221
| :---: | :--- | :--- | :--- | :---: | :---: | :--- |
222222
| **door** | ACTUAL | boolean| sensor.door | X | | |
223223
| **"** | COLORDEC | number| state | | | |
224-
| **"** | BUTTONTEXT | string| state | | | |
224+
| **"** | BUTTONTEXT | string| state, text | | | |
225225
### level.mode.fan
226226
| Channel role | State ID | common.type | common.role | required | common.write | description |
227227
| :---: | :--- | :--- | :--- | :---: | :---: | :--- |

build/lib/classes/config-manager.js

+9-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build/lib/classes/config-manager.js.map

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build/lib/const/config-manager-const.js

+7-7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build/lib/const/config-manager-const.js.map

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build/lib/pages/pageItem.js

+3-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build/lib/pages/pageItem.js.map

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/lib/classes/config-manager.ts

+12-3
Original file line numberDiff line numberDiff line change
@@ -856,6 +856,7 @@ export class ConfigManager extends BaseClass {
856856
case 'light': {
857857
const tempItem: typePageItem.PageItemDataItemsOptions = {
858858
type: 'light',
859+
role: 'light',
859860
data: {
860861
icon: {
861862
true: {
@@ -1922,10 +1923,15 @@ export class ConfigManager extends BaseClass {
19221923
item: ScriptConfig.PageItem,
19231924
): Promise<boolean> => {
19241925
let error = '';
1925-
1926-
for (const dp in (requiredFeatureDatapoints[role] || {}).data) {
1926+
if (!requiredScriptDataPoints[role]) {
1927+
throw new Error(`Role ${role} is not supported!`);
1928+
}
1929+
for (const dp in (requiredScriptDataPoints[role] || {}).data) {
19271930
try {
1928-
const o = dp !== '' ? await this.adapter.getForeignObjectAsync(`${item.id}.${dp}`) : undefined;
1931+
const o =
1932+
dp !== '' && !dp.endsWith('.')
1933+
? await this.adapter.getForeignObjectAsync(`${item.id}.${dp}`)
1934+
: undefined;
19291935

19301936
if (!o && !requiredScriptDataPoints[role].data[dp].required) {
19311937
continue;
@@ -1959,6 +1965,9 @@ export class ConfigManager extends BaseClass {
19591965
};
19601966
const _checkDataPoints = async (role: ScriptConfig.roles, item: ScriptConfig.PageItem): Promise<boolean> => {
19611967
let error = '';
1968+
if (!requiredFeatureDatapoints[role]) {
1969+
return false;
1970+
}
19621971
for (const dp in (requiredFeatureDatapoints[role] || {}).data) {
19631972
try {
19641973
const o = dp !== '' ? await this.adapter.getForeignObjectAsync(`${item.id}.${dp}`) : undefined;

src/lib/const/config-manager-const.ts

+7-7
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ export const requiredScriptDataPoints: requiredDatapoints = {
206206
data: {
207207
ACTUAL: { role: 'sensor.window', type: 'boolean', required: true, writeable: false },
208208
COLORDEC: { role: 'state', type: 'number', required: false, writeable: false }, //Farbcode über DP steuern
209-
BUTTONTEXT: { role: 'state', type: 'string', required: false, writeable: false }, //Button-Text über DP steuern
209+
BUTTONTEXT: { role: ['state', 'text'], type: 'string', required: false, writeable: false }, //Button-Text über DP steuern
210210
},
211211
},
212212
humidity: {
@@ -232,7 +232,7 @@ export const requiredScriptDataPoints: requiredDatapoints = {
232232
data: {
233233
ACTUAL: { role: 'state', type: 'mixed', required: true, writeable: false },
234234
COLORDEC: { role: 'state', type: 'number', required: false, writeable: false }, //Farbcode über DP senden
235-
BUTTONTEXT: { role: 'state', type: 'string', required: false, writeable: false }, //Button-Text über DP senden bei cardEntity
235+
BUTTONTEXT: { role: ['state', 'text'], type: 'string', required: false, writeable: false }, //Button-Text über DP senden bei cardEntity
236236
USERICON: { role: 'state', type: 'string', required: false, writeable: false }, //Benutzerdefinierte Iconnamen über DP senden
237237
},
238238
},
@@ -278,10 +278,10 @@ export const requiredScriptDataPoints: requiredDatapoints = {
278278
name: 'socket',
279279
description: 'Steckdosen, Schalter, Relais, usw. schalten',
280280
data: {
281-
ACTUAL: { role: 'switch', type: 'boolean', required: false, writeable: false },
282-
SET: { role: 'switch', type: 'boolean', required: true, writeable: true },
281+
ACTUAL: { role: 'switch', type: 'boolean', required: true, writeable: false },
282+
SET: { role: 'switch', type: 'boolean', required: false, writeable: true },
283283
COLORDEC: { role: 'state', type: 'number', required: false, writeable: false }, //Farbcode über DP steuern
284-
BUTTONTEXT: { role: 'state', type: 'string', required: false, writeable: false }, //Button-Text über DP steuern bei cardEntity
284+
BUTTONTEXT: { role: ['state', 'text'], type: 'string', required: false, writeable: false }, //Button-Text über DP steuern bei cardEntity
285285
STATE: { role: 'state', type: 'boolean', required: false, writeable: true }, // für monobutton
286286
},
287287
},
@@ -292,7 +292,7 @@ export const requiredScriptDataPoints: requiredDatapoints = {
292292
ACTUAL: { role: 'sensor.light', type: 'boolean', required: true, writeable: false },
293293
SET: { role: 'switch.light', type: 'boolean', required: true, writeable: true },
294294
COLORDEC: { role: 'state', type: 'number', required: false, writeable: false }, //Farbcode über DP steuern
295-
BUTTONTEXT: { role: 'state', type: 'string', required: false, writeable: false }, //Button-Text über DP steuern bei cardEntity
295+
BUTTONTEXT: { role: ['state', 'text'], type: 'string', required: false, writeable: false }, //Button-Text über DP steuern bei cardEntity
296296
VALUE: { role: 'state', type: 'number', required: false, writeable: true }, //für popupInSel
297297
},
298298
},
@@ -409,7 +409,7 @@ export const requiredScriptDataPoints: requiredDatapoints = {
409409
data: {
410410
ACTUAL: { role: 'sensor.door', type: 'boolean', required: true, writeable: false },
411411
COLORDEC: { role: 'state', type: 'number', required: false, writeable: false }, // Farbcode über DP steuern
412-
BUTTONTEXT: { role: 'state', type: 'string', required: false, writeable: false }, // Button-Text über DP steuern
412+
BUTTONTEXT: { role: ['state', 'text'], type: 'string', required: false, writeable: false }, // Button-Text über DP steuern
413413
},
414414
},
415415
'level.mode.fan': {

src/lib/pages/pageItem.ts

+3-4
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ export class PageItem extends BaseClassTriggerd {
170170
switch (entry.type) {
171171
case 'light': {
172172
const item = entry.data;
173-
message.type = 'light';
173+
message.type = this.config.role === 'light' || this.config.role === 'socket' ? 'button' : 'light';
174174

175175
const v = await tools.getValueEntryBoolean(item.entity1);
176176
const dimmer = (item.dimmer && item.dimmer.value && (await item.dimmer.value.getNumber())) ?? null;
@@ -716,7 +716,6 @@ export class PageItem extends BaseClassTriggerd {
716716
switch (this.config.role) {
717717
case 'light':
718718
case 'socket':
719-
return null;
720719
case 'dimmer':
721720
case 'hue':
722721
case 'ct':
@@ -761,8 +760,8 @@ export class PageItem extends BaseClassTriggerd {
761760
)) ?? 'disable';
762761
let rgb = null;
763762
switch (this.config.role) {
764-
//case 'socket':
765-
//case 'light':
763+
case 'socket':
764+
case 'light':
766765
case 'dimmer':
767766
case 'ct':
768767
break;

0 commit comments

Comments
 (0)