iobroker.sonoff 3.2.1 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +95 -149
- package/admin/i18n/de.json +89 -0
- package/admin/i18n/en.json +89 -0
- package/admin/i18n/es.json +89 -0
- package/admin/i18n/fr.json +89 -0
- package/admin/i18n/it.json +89 -0
- package/admin/i18n/nl.json +89 -0
- package/admin/i18n/pl.json +89 -0
- package/admin/i18n/pt.json +89 -0
- package/admin/i18n/ru.json +89 -0
- package/admin/i18n/uk.json +89 -0
- package/admin/i18n/zh-cn.json +89 -0
- package/admin/jsonConfig.json +394 -125
- package/build/lib/bridge.js +512 -0
- package/build/lib/bridge.js.map +1 -0
- package/build/lib/checkStates.js +68 -0
- package/build/lib/checkStates.js.map +1 -0
- package/build/lib/datapoints.js +430 -0
- package/build/lib/datapoints.js.map +1 -0
- package/build/lib/mqttBase.js +1280 -0
- package/build/lib/mqttBase.js.map +1 -0
- package/build/lib/server.js +485 -0
- package/build/lib/server.js.map +1 -0
- package/build/main.js +103 -0
- package/build/main.js.map +1 -0
- package/io-package.json +64 -43
- package/package.json +23 -19
- package/admin/i18n/de/translations.json +0 -54
- package/admin/i18n/en/translations.json +0 -54
- package/admin/i18n/es/translations.json +0 -54
- package/admin/i18n/fr/translations.json +0 -54
- package/admin/i18n/it/translations.json +0 -54
- package/admin/i18n/nl/translations.json +0 -54
- package/admin/i18n/pl/translations.json +0 -54
- package/admin/i18n/pt/translations.json +0 -54
- package/admin/i18n/ru/translations.json +0 -54
- package/admin/i18n/uk/translations.json +0 -54
- package/admin/i18n/zh-cn/translations.json +0 -54
- package/admin/index.html +0 -177
- package/admin/index_m.html +0 -218
- package/admin/words.js +0 -63
- package/lib/datapoints.js +0 -216
- package/lib/server.js +0 -1810
- package/main.js +0 -99
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.findShortenedStates = findShortenedStates;
|
|
7
|
+
const datapoints_1 = __importDefault(require("./datapoints"));
|
|
8
|
+
/** Keys of the data points which contain "_", grouped by their last part */
|
|
9
|
+
function getKeysByLastPart() {
|
|
10
|
+
const keys = {};
|
|
11
|
+
for (const key of Object.keys(datapoints_1.default)) {
|
|
12
|
+
const pos = key.lastIndexOf('_');
|
|
13
|
+
if (pos > 0) {
|
|
14
|
+
const lastPart = key.substring(pos + 1);
|
|
15
|
+
keys[lastPart] ||= [];
|
|
16
|
+
keys[lastPart].push(key);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return keys;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* The versions 3.3.x created the states inside a group with a shortened name (issue #489):
|
|
23
|
+
* only the last part of the key of the data point was used, so "SML_Total_in" was created
|
|
24
|
+
* as "SML_in". Such states are not updated anymore after the correction.
|
|
25
|
+
*
|
|
26
|
+
* They are only reported and never deleted, because they can still contain the history of the user.
|
|
27
|
+
*/
|
|
28
|
+
async function findShortenedStates(adapter) {
|
|
29
|
+
const keysByLastPart = getKeysByLastPart();
|
|
30
|
+
const objects = await adapter.getForeignObjectsAsync(`${adapter.namespace}.*`, 'state');
|
|
31
|
+
const found = [];
|
|
32
|
+
for (const [id, obj] of Object.entries(objects)) {
|
|
33
|
+
const dot = id.lastIndexOf('.');
|
|
34
|
+
const name = id.substring(dot + 1);
|
|
35
|
+
const underscore = name.lastIndexOf('_');
|
|
36
|
+
if (underscore < 1) {
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
const path = name.substring(0, underscore);
|
|
40
|
+
const lastPart = name.substring(underscore + 1);
|
|
41
|
+
// "SML_Volt" is simply the data point "Volt" in the group "SML"
|
|
42
|
+
if (datapoints_1.default[lastPart]) {
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
for (const key of keysByLastPart[lastPart] || []) {
|
|
46
|
+
// "SML_Total_in" already contains the complete key of the data point
|
|
47
|
+
if (name.endsWith(`_${key}`)) {
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
// "VEML6075_UvIndex" in the group "VEML6075" is correct, the path is removed there
|
|
51
|
+
if (key.startsWith(`${path}_`)) {
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
const definition = datapoints_1.default[key];
|
|
55
|
+
const common = obj.common;
|
|
56
|
+
const expected = `${id.substring(0, dot)}.${path}_${key}`;
|
|
57
|
+
// Either the state with the correct name exists already, or the state was created
|
|
58
|
+
// from exactly this data point - otherwise it is a state of the device itself
|
|
59
|
+
if (objects[expected] ||
|
|
60
|
+
(common.type === definition.type && common.role === definition.role && common.unit === definition.unit)) {
|
|
61
|
+
found.push({ id, expected });
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return found;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=checkStates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkStates.js","sourceRoot":"","sources":["../../src/lib/checkStates.ts"],"names":[],"mappings":";;;;;AA8BA,kDAgDC;AA9ED,8DAAiC;AASjC,4EAA4E;AAC5E,SAAS,iBAAiB;IACtB,MAAM,IAAI,GAAqC,EAAE,CAAC;IAClD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,oBAAK,CAAC,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACV,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACxC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,mBAAmB,CAAC,OAAyB;IAC/D,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,sBAAsB,CAAC,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,OAAO,CAAC,CAAC;IACxF,MAAM,KAAK,GAAqB,EAAE,CAAC;IAEnC,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACnC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACjB,SAAS;QACb,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAEhD,gEAAgE;QAChE,IAAI,oBAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClB,SAAS;QACb,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/C,qEAAqE;YACrE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC;gBAC3B,SAAS;YACb,CAAC;YACD,mFAAmF;YACnF,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC7B,SAAS;YACb,CAAC;YAED,MAAM,UAAU,GAAG,oBAAK,CAAC,GAAG,CAAC,CAAC;YAC9B,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;YAC1B,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;YAE1D,kFAAkF;YAClF,8EAA8E;YAC9E,IACI,OAAO,CAAC,QAAQ,CAAC;gBACjB,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC,EACzG,CAAC;gBACC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC7B,MAAM;YACV,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC","sourcesContent":["import types from './datapoints';\n\nexport interface ShortenedState {\n /** ID of the state with the shortened name */\n id: string;\n /** ID this state has with the corrected name */\n expected: string;\n}\n\n/** Keys of the data points which contain \"_\", grouped by their last part */\nfunction getKeysByLastPart(): { [lastPart: string]: string[] } {\n const keys: { [lastPart: string]: string[] } = {};\n for (const key of Object.keys(types)) {\n const pos = key.lastIndexOf('_');\n if (pos > 0) {\n const lastPart = key.substring(pos + 1);\n keys[lastPart] ||= [];\n keys[lastPart].push(key);\n }\n }\n return keys;\n}\n\n/**\n * The versions 3.3.x created the states inside a group with a shortened name (issue #489):\n * only the last part of the key of the data point was used, so \"SML_Total_in\" was created\n * as \"SML_in\". Such states are not updated anymore after the correction.\n *\n * They are only reported and never deleted, because they can still contain the history of the user.\n */\nexport async function findShortenedStates(adapter: ioBroker.Adapter): Promise<ShortenedState[]> {\n const keysByLastPart = getKeysByLastPart();\n const objects = await adapter.getForeignObjectsAsync(`${adapter.namespace}.*`, 'state');\n const found: ShortenedState[] = [];\n\n for (const [id, obj] of Object.entries(objects)) {\n const dot = id.lastIndexOf('.');\n const name = id.substring(dot + 1);\n const underscore = name.lastIndexOf('_');\n if (underscore < 1) {\n continue;\n }\n\n const path = name.substring(0, underscore);\n const lastPart = name.substring(underscore + 1);\n\n // \"SML_Volt\" is simply the data point \"Volt\" in the group \"SML\"\n if (types[lastPart]) {\n continue;\n }\n\n for (const key of keysByLastPart[lastPart] || []) {\n // \"SML_Total_in\" already contains the complete key of the data point\n if (name.endsWith(`_${key}`)) {\n continue;\n }\n // \"VEML6075_UvIndex\" in the group \"VEML6075\" is correct, the path is removed there\n if (key.startsWith(`${path}_`)) {\n continue;\n }\n\n const definition = types[key];\n const common = obj.common;\n const expected = `${id.substring(0, dot)}.${path}_${key}`;\n\n // Either the state with the correct name exists already, or the state was created\n // from exactly this data point - otherwise it is a state of the device itself\n if (\n objects[expected] ||\n (common.type === definition.type && common.role === definition.role && common.unit === definition.unit)\n ) {\n found.push({ id, expected });\n break;\n }\n }\n }\n\n return found;\n}\n"]}
|
|
@@ -0,0 +1,430 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const datapoints = {
|
|
4
|
+
'Approx. Altitude': { type: 'number', role: 'value.altitude', read: true, write: false, unit: 'm' },
|
|
5
|
+
'PM2.5': { type: 'number', role: 'value', read: true, write: false, unit: 'ug/m3' },
|
|
6
|
+
A0: { type: 'number', role: 'value', read: true, write: false },
|
|
7
|
+
A1: { type: 'number', role: 'value', read: true, write: false },
|
|
8
|
+
A2: { type: 'number', role: 'value', read: true, write: false },
|
|
9
|
+
A3: { type: 'number', role: 'value', read: true, write: false },
|
|
10
|
+
Ap: { type: 'number', role: 'value', read: true, write: false },
|
|
11
|
+
APMac: { type: 'number', role: 'state', read: true, write: false },
|
|
12
|
+
Action: { type: 'string', role: 'value', read: true, write: true },
|
|
13
|
+
AirQuality: { type: 'number', role: 'value', read: true, write: false, unit: '%' },
|
|
14
|
+
ANALOG: { type: 'object', role: 'state', read: true, write: false },
|
|
15
|
+
Analog0: { type: 'number', role: 'value', read: true, write: false },
|
|
16
|
+
Analog1: { type: 'number', role: 'value', read: true, write: false },
|
|
17
|
+
Analog2: { type: 'number', role: 'value', read: true, write: false },
|
|
18
|
+
Analog3: { type: 'number', role: 'value', read: true, write: false },
|
|
19
|
+
ApparentPower: { type: 'number', role: 'value.power.consumption', read: true, write: false, unit: 'VA' },
|
|
20
|
+
Arm: { type: 'number', role: 'value', read: true, write: true },
|
|
21
|
+
BSSId: { type: 'string', role: 'state', read: true, write: false },
|
|
22
|
+
BatteryPercentage: { type: 'number', role: 'value', read: true, write: false, unit: '%' },
|
|
23
|
+
BatteryVoltage: { type: 'number', role: 'value.voltage', read: true, write: false, unit: 'V' },
|
|
24
|
+
Bits: { type: 'number', role: 'value', read: true, write: false },
|
|
25
|
+
BuildDateTime: { type: 'string', role: 'state', read: true, write: false },
|
|
26
|
+
Blue: { type: 'number', role: 'level.color.blue', read: true, write: true, min: 0, max: 100 },
|
|
27
|
+
Boiler: { type: 'number', role: 'value.temperature', read: true, write: false, unit: '°C' },
|
|
28
|
+
Burner: { type: 'number', role: 'value', read: true, write: false },
|
|
29
|
+
Button1: { type: 'boolean', role: 'button', read: true, write: false },
|
|
30
|
+
Button2: { type: 'boolean', role: 'button', read: true, write: false },
|
|
31
|
+
Button3: { type: 'boolean', role: 'button', read: true, write: false },
|
|
32
|
+
Button4: { type: 'boolean', role: 'button', read: true, write: false },
|
|
33
|
+
Button5: { type: 'boolean', role: 'button', read: true, write: false },
|
|
34
|
+
Button6: { type: 'boolean', role: 'button', read: true, write: false },
|
|
35
|
+
Button7: { type: 'boolean', role: 'button', read: true, write: false },
|
|
36
|
+
Button8: { type: 'boolean', role: 'button', read: true, write: false },
|
|
37
|
+
C1: { type: 'number', role: 'value', read: true, write: false },
|
|
38
|
+
C2: { type: 'number', role: 'value', read: true, write: false },
|
|
39
|
+
C3: { type: 'number', role: 'value', read: true, write: false },
|
|
40
|
+
C4: { type: 'number', role: 'value', read: true, write: false },
|
|
41
|
+
CT: { type: 'number', role: 'level.color.temp', read: true, write: true, min: 153, max: 500 },
|
|
42
|
+
CW: { type: 'number', role: 'level.color.coldwhite', read: true, write: true },
|
|
43
|
+
CW_POWER: { type: 'boolean', role: 'switch.light', read: true, write: true, storeMap: true },
|
|
44
|
+
CarbonDioxide: { type: 'number', role: 'value.CO2', read: true, write: false, unit: 'ppm' },
|
|
45
|
+
Channel: { type: 'number', role: 'level', read: true, write: true },
|
|
46
|
+
Collector: { type: 'number', role: 'value.temperature', read: true, write: false, unit: '°C' },
|
|
47
|
+
Color: { type: 'string', role: 'level.color.rgb', read: true, write: true },
|
|
48
|
+
Counter1: { type: 'number', role: 'value', read: true, write: false },
|
|
49
|
+
Counter2: { type: 'number', role: 'value', read: true, write: false },
|
|
50
|
+
Counter3: { type: 'number', role: 'value', read: true, write: false },
|
|
51
|
+
Counter4: { type: 'number', role: 'value', read: true, write: false },
|
|
52
|
+
Core: { type: 'string', role: 'state', read: true, write: false },
|
|
53
|
+
CpuFrequency: { type: 'number', role: 'value', read: true, write: false, unit: 'MHz' },
|
|
54
|
+
Current: { type: 'number', role: 'value.current', read: true, write: false, unit: 'A' },
|
|
55
|
+
CurrentNeutral: { type: 'number', role: 'value.current', read: true, write: false, unit: 'A' },
|
|
56
|
+
Data: { type: 'string', role: 'state', read: true, write: true },
|
|
57
|
+
Days: { type: 'string', role: 'state', read: true, write: true },
|
|
58
|
+
DewPoint: { type: 'number', role: 'value.temperature', read: true, write: false, unit: '°C' },
|
|
59
|
+
DNSServer1: { type: 'string', role: 'state', read: true, write: false },
|
|
60
|
+
DNSServer2: { type: 'string', role: 'state', read: true, write: false },
|
|
61
|
+
Dimmer: { type: 'number', role: 'level.dimmer', read: true, write: true, min: 0, max: 100 },
|
|
62
|
+
Distance: { type: 'number', role: 'value', read: true, write: false, unit: 'cm' },
|
|
63
|
+
Downtime: { type: 'string', role: 'state', read: true, write: false },
|
|
64
|
+
Druck: { type: 'number', role: 'value.pressure', read: true, write: false, unit: 'hPa' },
|
|
65
|
+
ExportActive: { type: 'number', role: 'value.power.produced', read: true, write: false, unit: 'kWh' },
|
|
66
|
+
Factor: { type: 'number', role: 'value', read: true, write: false },
|
|
67
|
+
Fade: { type: 'boolean', role: 'switch', read: true, write: true },
|
|
68
|
+
Faktor: { type: 'number', role: 'value', read: true, write: false },
|
|
69
|
+
Feuchtigkeit: { type: 'number', role: 'value.humidity', read: true, write: false, unit: '%' },
|
|
70
|
+
Frequenz: { type: 'number', role: 'value.frequency', read: true, write: false, unit: 'Hz' },
|
|
71
|
+
Frequency: { type: 'number', role: 'value.frequency', read: true, write: false, unit: 'Hz' },
|
|
72
|
+
Gateway: { type: 'string', role: 'state', read: true, write: false },
|
|
73
|
+
Green: { type: 'number', role: 'level.color.green', read: true, write: true, min: 0, max: 100 },
|
|
74
|
+
HTTP_API: { type: 'number', role: 'state', read: true, write: false },
|
|
75
|
+
Hardware: { type: 'string', role: 'state', read: true, write: false },
|
|
76
|
+
HSBColor: { type: 'string', role: 'value.hsb', read: true, write: true },
|
|
77
|
+
Hostname: { type: 'string', role: 'state', read: true, write: false },
|
|
78
|
+
Hue: { type: 'number', role: 'level.color.hue', read: true, write: true, min: 0, max: 360 },
|
|
79
|
+
Humidity: { type: 'number', role: 'value.humidity', read: true, write: false, unit: '%' },
|
|
80
|
+
IPAddress: { type: 'string', role: 'state', read: true, write: false },
|
|
81
|
+
IPaddress: { type: 'string', role: 'state', read: true, write: false },
|
|
82
|
+
IP6Global: { type: 'string', role: 'state', read: true, write: false },
|
|
83
|
+
IP6Local: { type: 'string', role: 'state', read: true, write: false },
|
|
84
|
+
IRSend: { type: 'string', role: 'state', read: true, write: true },
|
|
85
|
+
Illuminance: { type: 'number', role: 'value.illuminance', read: true, write: false, unit: 'lx' },
|
|
86
|
+
IrReceived: { type: 'object', role: 'state', read: true, write: false },
|
|
87
|
+
LED_Mode: { type: 'number', role: 'value', read: true, write: true },
|
|
88
|
+
// OpenBeken LED datapoints - https://github.com/openshwprojects/OpenBK7231T_App/blob/main/docs/mqttTopics.md
|
|
89
|
+
led_enableAll: { type: 'boolean', role: 'switch.light', read: true, write: true },
|
|
90
|
+
led_dimmer: { type: 'number', role: 'level.dimmer', read: true, write: true, min: 0, max: 100, unit: '%' },
|
|
91
|
+
led_temperature: {
|
|
92
|
+
type: 'number',
|
|
93
|
+
role: 'level.color.temperature',
|
|
94
|
+
read: true,
|
|
95
|
+
write: true,
|
|
96
|
+
min: 154,
|
|
97
|
+
max: 500,
|
|
98
|
+
},
|
|
99
|
+
led_basecolor_rgb: { type: 'string', role: 'level.color.rgb', read: true, write: true },
|
|
100
|
+
led_finalcolor_rgbcw: { type: 'string', role: 'level.color.rgbcw', read: true, write: false },
|
|
101
|
+
led_basecolor_rgbcw: { type: 'string', role: 'level.color.rgbcw', read: true, write: true },
|
|
102
|
+
led_hue: { type: 'number', role: 'level.color.hue', read: true, write: true, min: 0, max: 360 },
|
|
103
|
+
led_saturation: {
|
|
104
|
+
type: 'number',
|
|
105
|
+
role: 'level.color.saturation',
|
|
106
|
+
read: true,
|
|
107
|
+
write: true,
|
|
108
|
+
min: 0,
|
|
109
|
+
max: 100,
|
|
110
|
+
unit: '%',
|
|
111
|
+
},
|
|
112
|
+
Latitude: { type: 'number', role: 'value.gps.latitude', read: true, write: false, unit: '°' },
|
|
113
|
+
Laufzeit: { type: 'number', role: 'value.duration', read: true, write: false, unit: 'hours' }, /// ?
|
|
114
|
+
LedBar: { type: 'number', role: 'value', read: true, write: true },
|
|
115
|
+
LedTable: { type: 'string', role: 'state', read: true, write: false },
|
|
116
|
+
Leistung: { type: 'number', role: 'value.power.consumption', read: true, write: false, unit: 'W' },
|
|
117
|
+
Light: { type: 'number', role: 'value', read: true, write: false, unit: 'lx' },
|
|
118
|
+
Longitude: { type: 'number', role: 'value.gps.longitude', read: true, write: false, unit: '°' },
|
|
119
|
+
Mac: { type: 'string', role: 'info.mac', read: true, write: false },
|
|
120
|
+
Mode: { type: 'string', role: 'state', read: true, write: true },
|
|
121
|
+
Module: { type: 'string', role: 'state', read: true, write: false },
|
|
122
|
+
Noise: { type: 'number', role: 'value', read: true, write: false, unit: 'dB' },
|
|
123
|
+
Output: { type: 'number', role: 'value', read: true, write: true },
|
|
124
|
+
Outsidetemp: { type: 'number', role: 'value.temperature', read: true, write: false, unit: '°C' },
|
|
125
|
+
PM10: { type: 'number', role: 'value', read: true, write: false, unit: 'ug/m3' },
|
|
126
|
+
PWM1: { type: 'number', role: 'value', read: true, write: true, min: 0, max: 1023 },
|
|
127
|
+
PWM2: { type: 'number', role: 'value', read: true, write: true, min: 0, max: 1023 },
|
|
128
|
+
PWM3: { type: 'number', role: 'value', read: true, write: true, min: 0, max: 1023 },
|
|
129
|
+
PWM4: { type: 'number', role: 'value', read: true, write: true, min: 0, max: 1023 },
|
|
130
|
+
PWM5: { type: 'number', role: 'value', read: true, write: true, min: 0, max: 1023 },
|
|
131
|
+
PWM6: { type: 'number', role: 'value', read: true, write: true, min: 0, max: 1023 },
|
|
132
|
+
PWM7: { type: 'number', role: 'value', read: true, write: true, min: 0, max: 1023 },
|
|
133
|
+
PWM8: { type: 'number', role: 'value', read: true, write: true, min: 0, max: 1023 },
|
|
134
|
+
PWM9: { type: 'number', role: 'value', read: true, write: true, min: 0, max: 1023 },
|
|
135
|
+
PWM10: { type: 'number', role: 'value', read: true, write: true, min: 0, max: 1023 },
|
|
136
|
+
PWM11: { type: 'number', role: 'value', read: true, write: true, min: 0, max: 1023 },
|
|
137
|
+
PWM12: { type: 'number', role: 'value', read: true, write: true, min: 0, max: 1023 },
|
|
138
|
+
PWM13: { type: 'number', role: 'value', read: true, write: true, min: 0, max: 1023 },
|
|
139
|
+
PWM14: { type: 'number', role: 'value', read: true, write: true, min: 0, max: 1023 },
|
|
140
|
+
PWM15: { type: 'number', role: 'value', read: true, write: true, min: 0, max: 1023 },
|
|
141
|
+
PWM16: { type: 'number', role: 'value', read: true, write: true, min: 0, max: 1023 },
|
|
142
|
+
PulseTime1: { type: 'number', role: 'value', read: true, write: true, min: 0, max: 64900 },
|
|
143
|
+
PulseTime2: { type: 'number', role: 'value', read: true, write: true, min: 0, max: 64900 },
|
|
144
|
+
PulseTime3: { type: 'number', role: 'value', read: true, write: true, min: 0, max: 64900 },
|
|
145
|
+
PulseTime4: { type: 'number', role: 'value', read: true, write: true, min: 0, max: 64900 },
|
|
146
|
+
PulseTime5: { type: 'number', role: 'value', read: true, write: true, min: 0, max: 64900 },
|
|
147
|
+
PulseTime6: { type: 'number', role: 'value', read: true, write: true, min: 0, max: 64900 },
|
|
148
|
+
PulseTime7: { type: 'number', role: 'value', read: true, write: true, min: 0, max: 64900 },
|
|
149
|
+
PulseTime8: { type: 'number', role: 'value', read: true, write: true, min: 0, max: 64900 },
|
|
150
|
+
PulseTime9: { type: 'number', role: 'value', read: true, write: true, min: 0, max: 64900 },
|
|
151
|
+
PulseTime10: { type: 'number', role: 'value', read: true, write: true, min: 0, max: 64900 },
|
|
152
|
+
PulseTime11: { type: 'number', role: 'value', read: true, write: true, min: 0, max: 64900 },
|
|
153
|
+
PulseTime12: { type: 'number', role: 'value', read: true, write: true, min: 0, max: 64900 },
|
|
154
|
+
PulseTime13: { type: 'number', role: 'value', read: true, write: true, min: 0, max: 64900 },
|
|
155
|
+
PulseTime14: { type: 'number', role: 'value', read: true, write: true, min: 0, max: 64900 },
|
|
156
|
+
PulseTime15: { type: 'number', role: 'value', read: true, write: true, min: 0, max: 64900 },
|
|
157
|
+
PulseTime16: { type: 'number', role: 'value', read: true, write: true, min: 0, max: 64900 },
|
|
158
|
+
POWER10: { type: 'boolean', role: 'switch', read: true, write: true, storeMap: true },
|
|
159
|
+
POWER11: { type: 'boolean', role: 'switch', read: true, write: true, storeMap: true },
|
|
160
|
+
POWER12: { type: 'boolean', role: 'switch', read: true, write: true, storeMap: true },
|
|
161
|
+
POWER13: { type: 'boolean', role: 'switch', read: true, write: true, storeMap: true },
|
|
162
|
+
POWER14: { type: 'boolean', role: 'switch', read: true, write: true, storeMap: true },
|
|
163
|
+
POWER15: { type: 'boolean', role: 'switch', read: true, write: true, storeMap: true },
|
|
164
|
+
POWER16: { type: 'boolean', role: 'switch', read: true, write: true, storeMap: true },
|
|
165
|
+
POWER17: { type: 'boolean', role: 'switch', read: true, write: true, storeMap: true },
|
|
166
|
+
POWER18: { type: 'boolean', role: 'switch', read: true, write: true, storeMap: true },
|
|
167
|
+
POWER19: { type: 'boolean', role: 'switch', read: true, write: true, storeMap: true },
|
|
168
|
+
POWER1: { type: 'boolean', role: 'switch', read: true, write: true, storeMap: true },
|
|
169
|
+
POWER20: { type: 'boolean', role: 'switch', read: true, write: true, storeMap: true },
|
|
170
|
+
POWER21: { type: 'boolean', role: 'switch', read: true, write: true, storeMap: true },
|
|
171
|
+
POWER22: { type: 'boolean', role: 'switch', read: true, write: true, storeMap: true },
|
|
172
|
+
POWER23: { type: 'boolean', role: 'switch', read: true, write: true, storeMap: true },
|
|
173
|
+
POWER24: { type: 'boolean', role: 'switch', read: true, write: true, storeMap: true },
|
|
174
|
+
POWER25: { type: 'boolean', role: 'switch', read: true, write: true, storeMap: true },
|
|
175
|
+
POWER26: { type: 'boolean', role: 'switch', read: true, write: true, storeMap: true },
|
|
176
|
+
POWER27: { type: 'boolean', role: 'switch', read: true, write: true, storeMap: true },
|
|
177
|
+
POWER28: { type: 'boolean', role: 'switch', read: true, write: true, storeMap: true },
|
|
178
|
+
POWER29: { type: 'boolean', role: 'switch', read: true, write: true, storeMap: true },
|
|
179
|
+
POWER2: { type: 'boolean', role: 'switch', read: true, write: true, storeMap: true },
|
|
180
|
+
POWER3: { type: 'boolean', role: 'switch', read: true, write: true, storeMap: true },
|
|
181
|
+
POWER4: { type: 'boolean', role: 'switch', read: true, write: true, storeMap: true },
|
|
182
|
+
POWER5: { type: 'boolean', role: 'switch', read: true, write: true, storeMap: true },
|
|
183
|
+
POWER6: { type: 'boolean', role: 'switch', read: true, write: true, storeMap: true },
|
|
184
|
+
POWER7: { type: 'boolean', role: 'switch', read: true, write: true, storeMap: true },
|
|
185
|
+
POWER8: { type: 'boolean', role: 'switch', read: true, write: true, storeMap: true },
|
|
186
|
+
POWER9: { type: 'boolean', role: 'switch', read: true, write: true, storeMap: true },
|
|
187
|
+
POWER: { type: 'boolean', role: 'switch', read: true, write: true, storeMap: true },
|
|
188
|
+
Power: { type: 'number', role: 'value.power', read: true, write: false, unit: 'W' },
|
|
189
|
+
Power_curr: { type: 'number', role: 'value.power.consumption', read: true, write: false, unit: 'W' },
|
|
190
|
+
// Zigbee device controls - special handling for ZbSend commands
|
|
191
|
+
ZbPower: { type: 'boolean', role: 'switch', read: true, write: true, zbDevice: true },
|
|
192
|
+
PowerDelta: { type: 'number', role: 'value', read: true, write: false, unit: 'W' },
|
|
193
|
+
PowerHigh: { type: 'number', role: 'value', read: true, write: false, unit: 'W' },
|
|
194
|
+
PowerLow: { type: 'number', role: 'value', read: true, write: false, unit: 'W' },
|
|
195
|
+
Pressure: { type: 'number', role: 'value.pressure', read: true, write: false, unit: 'hPa' },
|
|
196
|
+
PressureScaledValue: { type: 'number', role: 'value.pressure', read: true, write: false, unit: 'Pa' },
|
|
197
|
+
Protocol: { type: 'string', role: 'state', read: true, write: true },
|
|
198
|
+
Punkt: { type: 'number', role: 'value', read: true, write: false, unit: '?' }, /// ?
|
|
199
|
+
RGB_POWER: { type: 'boolean', role: 'switch.light', read: true, write: true, storeMap: true },
|
|
200
|
+
RSSI: { type: 'number', role: 'value.rssi', read: true, write: false },
|
|
201
|
+
ReactivePower: { type: 'number', role: 'value.power.consumption', read: true, write: false, unit: 'var' },
|
|
202
|
+
Period: { type: 'number', role: 'value', read: true, write: false },
|
|
203
|
+
Red: { type: 'number', role: 'level.color.red', read: true, write: true, min: 0, max: 100 },
|
|
204
|
+
Repeat: { type: 'number', role: 'value', read: true, write: true },
|
|
205
|
+
RestartReason: { type: 'string', role: 'state', read: true, write: false },
|
|
206
|
+
Returns: { type: 'number', role: 'value.temperature', read: true, write: false, unit: '°C' },
|
|
207
|
+
Roomtemp: { type: 'number', role: 'value.temperature', read: true, write: false, unit: '°C' },
|
|
208
|
+
SHUTTER1: { type: 'number', role: 'state', read: true, write: false },
|
|
209
|
+
SHUTTER2: { type: 'number', role: 'state', read: true, write: false },
|
|
210
|
+
SHUTTER3: { type: 'number', role: 'state', read: true, write: false },
|
|
211
|
+
SHUTTER4: { type: 'number', role: 'state', read: true, write: false },
|
|
212
|
+
SHUTTER5: { type: 'number', role: 'state', read: true, write: false },
|
|
213
|
+
SHUTTER6: { type: 'number', role: 'state', read: true, write: false },
|
|
214
|
+
SHUTTER7: { type: 'number', role: 'state', read: true, write: false },
|
|
215
|
+
SHUTTER8: { type: 'number', role: 'state', read: true, write: false },
|
|
216
|
+
SHUTTER9: { type: 'number', role: 'state', read: true, write: false },
|
|
217
|
+
SHUTTER10: { type: 'number', role: 'state', read: true, write: false },
|
|
218
|
+
SHUTTER11: { type: 'number', role: 'state', read: true, write: false },
|
|
219
|
+
SHUTTER12: { type: 'number', role: 'state', read: true, write: false },
|
|
220
|
+
SHUTTER13: { type: 'number', role: 'state', read: true, write: false },
|
|
221
|
+
SHUTTER14: { type: 'number', role: 'state', read: true, write: false },
|
|
222
|
+
SHUTTER15: { type: 'number', role: 'state', read: true, write: false },
|
|
223
|
+
SHUTTER16: { type: 'number', role: 'state', read: true, write: false },
|
|
224
|
+
SSId: { type: 'string', role: 'state', read: true, write: false },
|
|
225
|
+
Saturation: { type: 'number', role: 'level.color.saturation', read: true, write: true, min: 0, max: 255 },
|
|
226
|
+
SDK: { type: 'string', role: 'state', read: true, write: false },
|
|
227
|
+
Subnetmask: { type: 'string', role: 'state', read: true, write: false },
|
|
228
|
+
Scheme: {
|
|
229
|
+
type: 'number',
|
|
230
|
+
role: 'value',
|
|
231
|
+
read: true,
|
|
232
|
+
write: true,
|
|
233
|
+
min: 0,
|
|
234
|
+
max: 4,
|
|
235
|
+
states: { 0: 'Single color', 1: 'Wakeup', 2: 'Cycle UP', 3: 'Cycle DOWN', 4: 'Random cycle' },
|
|
236
|
+
},
|
|
237
|
+
SeaPressure: { type: 'number', role: 'value.pressure', read: true, write: false, unit: 'hPa' },
|
|
238
|
+
SleepMode: { type: 'string', role: 'state', read: true, write: false },
|
|
239
|
+
Solarpump: { type: 'number', role: 'value', read: true, write: false },
|
|
240
|
+
Solarstorage: { type: 'number', role: 'value.temperature', read: true, write: false, unit: '°C' },
|
|
241
|
+
Spannung: { type: 'number', role: 'value.voltage', read: true, write: false, unit: 'V' },
|
|
242
|
+
Speed: { type: 'number', role: 'value', read: true, write: true },
|
|
243
|
+
Status: { type: 'number', role: 'value', read: true, write: false },
|
|
244
|
+
Strom: { type: 'number', role: 'value.current', read: true, write: false, unit: 'A' },
|
|
245
|
+
Switch1: { type: 'boolean', role: 'switch', read: true, write: true },
|
|
246
|
+
Switch2: { type: 'boolean', role: 'switch', read: true, write: true },
|
|
247
|
+
Switch3: { type: 'boolean', role: 'switch', read: true, write: true },
|
|
248
|
+
Switch4: { type: 'boolean', role: 'switch', read: true, write: true },
|
|
249
|
+
Switch5: { type: 'boolean', role: 'switch', read: true, write: true },
|
|
250
|
+
Switch6: { type: 'boolean', role: 'switch', read: true, write: true },
|
|
251
|
+
Switch7: { type: 'boolean', role: 'switch', read: true, write: true },
|
|
252
|
+
Switch8: { type: 'boolean', role: 'switch', read: true, write: true },
|
|
253
|
+
Switch9: { type: 'boolean', role: 'switch', read: true, write: true },
|
|
254
|
+
Switch10: { type: 'boolean', role: 'switch', read: true, write: true },
|
|
255
|
+
Switch11: { type: 'boolean', role: 'switch', read: true, write: true },
|
|
256
|
+
Switch12: { type: 'boolean', role: 'switch', read: true, write: true },
|
|
257
|
+
Switch13: { type: 'boolean', role: 'switch', read: true, write: true },
|
|
258
|
+
Switch14: { type: 'boolean', role: 'switch', read: true, write: true },
|
|
259
|
+
Switch15: { type: 'boolean', role: 'switch', read: true, write: true },
|
|
260
|
+
Switch16: { type: 'boolean', role: 'switch', read: true, write: true },
|
|
261
|
+
Switch17: { type: 'boolean', role: 'switch', read: true, write: true },
|
|
262
|
+
Switch18: { type: 'boolean', role: 'switch', read: true, write: true },
|
|
263
|
+
Switch19: { type: 'boolean', role: 'switch', read: true, write: true },
|
|
264
|
+
Switch20: { type: 'boolean', role: 'switch', read: true, write: true },
|
|
265
|
+
Switch21: { type: 'boolean', role: 'switch', read: true, write: true },
|
|
266
|
+
Switch22: { type: 'boolean', role: 'switch', read: true, write: true },
|
|
267
|
+
Switch23: { type: 'boolean', role: 'switch', read: true, write: true },
|
|
268
|
+
Switch24: { type: 'boolean', role: 'switch', read: true, write: true },
|
|
269
|
+
Switch25: { type: 'boolean', role: 'switch', read: true, write: true },
|
|
270
|
+
Switch26: { type: 'boolean', role: 'switch', read: true, write: true },
|
|
271
|
+
Switch27: { type: 'boolean', role: 'switch', read: true, write: true },
|
|
272
|
+
Switch28: { type: 'boolean', role: 'switch', read: true, write: true },
|
|
273
|
+
TVOC: { type: 'number', role: 'value.tvoc', read: true, write: false, unit: 'ppb' },
|
|
274
|
+
Temperatur: { type: 'number', role: 'value.temperature', read: true, write: false, unit: '°C' },
|
|
275
|
+
Temperature: { type: 'number', role: 'value.temperature', read: true, write: false, unit: '°C' },
|
|
276
|
+
Time: { type: 'string', role: 'state', read: true, write: true },
|
|
277
|
+
Timer10: { type: 'object', role: 'state', read: true, write: true },
|
|
278
|
+
Timer11: { type: 'object', role: 'state', read: true, write: true },
|
|
279
|
+
Timer12: { type: 'object', role: 'state', read: true, write: true },
|
|
280
|
+
Timer13: { type: 'object', role: 'state', read: true, write: true },
|
|
281
|
+
Timer14: { type: 'object', role: 'state', read: true, write: true },
|
|
282
|
+
Timer15: { type: 'object', role: 'state', read: true, write: true },
|
|
283
|
+
Timer16: { type: 'object', role: 'state', read: true, write: true },
|
|
284
|
+
Timer1: { type: 'object', role: 'state', read: true, write: true },
|
|
285
|
+
Timer2: { type: 'object', role: 'state', read: true, write: true },
|
|
286
|
+
Timer3: { type: 'object', role: 'state', read: true, write: true },
|
|
287
|
+
Timer4: { type: 'object', role: 'state', read: true, write: true },
|
|
288
|
+
Timer5: { type: 'object', role: 'state', read: true, write: true },
|
|
289
|
+
Timer6: { type: 'object', role: 'state', read: true, write: true },
|
|
290
|
+
Timer7: { type: 'object', role: 'state', read: true, write: true },
|
|
291
|
+
Timer8: { type: 'object', role: 'state', read: true, write: true },
|
|
292
|
+
Timer9: { type: 'object', role: 'state', read: true, write: true },
|
|
293
|
+
Today: { type: 'number', role: 'value.power.consumption', read: true, write: false, unit: 'kWh' },
|
|
294
|
+
TodaySumExport: { type: 'number', role: 'value.power.produced', read: true, write: false, unit: 'kWh' },
|
|
295
|
+
TodaySumImport: { type: 'number', role: 'value.power.consumption', read: true, write: false, unit: 'kWh' },
|
|
296
|
+
Total: { type: 'number', role: 'value.power.consumption', read: true, write: false, unit: 'kWh' },
|
|
297
|
+
Total_in: { type: 'number', role: 'value.power.consumption', read: true, write: false, unit: 'kWh' },
|
|
298
|
+
Total_out: { type: 'number', role: 'value.power.produced', read: true, write: false, unit: 'kWh' },
|
|
299
|
+
TotalStartTime: { type: 'string', role: 'date', read: true, write: false },
|
|
300
|
+
Uptime: { type: 'mixed', role: 'state', read: true, write: false },
|
|
301
|
+
UvIndex: { type: 'number', role: 'value.uv', read: true, write: false },
|
|
302
|
+
UvIndexText: { type: 'string', role: 'state', read: true, write: false },
|
|
303
|
+
UvLevel: { type: 'number', role: 'value', read: true, write: false },
|
|
304
|
+
UvPower: { type: 'number', role: 'value', read: true, write: false, unit: 'W/m²' },
|
|
305
|
+
UvaIntensity: { type: 'number', role: 'value', read: true, write: false },
|
|
306
|
+
UvbIntensity: { type: 'number', role: 'value', read: true, write: false },
|
|
307
|
+
VCC: { type: 'number', role: 'value.voltage', read: true, write: false, unit: 'V' },
|
|
308
|
+
Vcc: { type: 'number', role: 'value.voltage', read: true, write: false, unit: 'V' },
|
|
309
|
+
Version: { type: 'string', role: 'state', read: true, write: false },
|
|
310
|
+
Voltage: { type: 'number', role: 'value.voltage', read: true, write: false, unit: 'V' },
|
|
311
|
+
WW: { type: 'number', role: 'level.color.white', read: true, write: true },
|
|
312
|
+
WW_POWER: { type: 'boolean', role: 'switch.light', read: true, write: true, storeMap: true },
|
|
313
|
+
Wakeup: { type: 'string', role: 'state', read: true, write: true },
|
|
314
|
+
Webserver: { type: 'number', role: 'state', read: true, write: false },
|
|
315
|
+
WifiConfig: { type: 'number', role: 'state', read: true, write: false },
|
|
316
|
+
WifiPower: { type: 'number', role: 'value', read: true, write: false, unit: 'dBm' },
|
|
317
|
+
Warmwater: { type: 'number', role: 'value.temperature', read: true, write: false, unit: '°C' },
|
|
318
|
+
Window: { type: 'number', role: 'value', read: true, write: true },
|
|
319
|
+
Yesterday: { type: 'number', role: 'value.power.consumption', read: true, write: false, unit: 'kWh' },
|
|
320
|
+
eCO2: { type: 'number', role: 'value.eco2', read: true, write: false, unit: 'ppm' },
|
|
321
|
+
gestern: { type: 'number', role: 'value.power.consumption', read: true, write: false, unit: 'kWh' },
|
|
322
|
+
heute: { type: 'number', role: 'value.power.consumption', read: true, write: false, unit: 'kWh' },
|
|
323
|
+
modeLedExor: {
|
|
324
|
+
type: 'boolean',
|
|
325
|
+
role: 'switch',
|
|
326
|
+
read: true,
|
|
327
|
+
write: true,
|
|
328
|
+
def: false,
|
|
329
|
+
desc: 'exor for white LEDs and color leds => if the white LEDs are switched on, color LEDs are switched off and vice versa',
|
|
330
|
+
},
|
|
331
|
+
modeReadColors: {
|
|
332
|
+
type: 'boolean',
|
|
333
|
+
role: 'switch',
|
|
334
|
+
read: true,
|
|
335
|
+
write: true,
|
|
336
|
+
def: true,
|
|
337
|
+
desc: 'allow for color read from MQTT',
|
|
338
|
+
},
|
|
339
|
+
VEML6075_UvIndex: { type: 'number', role: 'value.uv', read: true, write: false },
|
|
340
|
+
VEML6075_UvaIntensity: { type: 'number', role: 'value', read: true, write: false },
|
|
341
|
+
VEML6075_UvbIntensity: { type: 'number', role: 'value', read: true, write: false },
|
|
342
|
+
VEML6075_UvIndexText: { type: 'string', role: 'state', read: true, write: false },
|
|
343
|
+
VEML6075_UvLevel: { type: 'number', role: 'value', read: true, write: false },
|
|
344
|
+
VEML6075_UvPower: { type: 'number', role: 'value', read: true, write: false, unit: 'W/m²' },
|
|
345
|
+
// IRHVAC specific datapoints to avoid conflicts with general Tasmota fields
|
|
346
|
+
IrReceived_IRHVAC_Power: { type: 'string', role: 'state', read: true, write: false },
|
|
347
|
+
IrReceived_IRHVAC_Light: { type: 'string', role: 'state', read: true, write: false },
|
|
348
|
+
IrReceived_IRHVAC_Mode: { type: 'string', role: 'state', read: true, write: false },
|
|
349
|
+
IrReceived_IRHVAC_Vendor: { type: 'string', role: 'state', read: true, write: false },
|
|
350
|
+
IrReceived_IRHVAC_Model: { type: 'number', role: 'value', read: true, write: false },
|
|
351
|
+
IrReceived_IRHVAC_Temp: { type: 'number', role: 'value.temperature', read: true, write: false, unit: '°C' },
|
|
352
|
+
IrReceived_IRHVAC_FanSpeed: { type: 'string', role: 'state', read: true, write: false },
|
|
353
|
+
IrReceived_IRHVAC_SwingV: { type: 'string', role: 'state', read: true, write: false },
|
|
354
|
+
IrReceived_IRHVAC_SwingH: { type: 'string', role: 'state', read: true, write: false },
|
|
355
|
+
IrReceived_IRHVAC_Quiet: { type: 'string', role: 'state', read: true, write: false },
|
|
356
|
+
IrReceived_IRHVAC_Turbo: { type: 'string', role: 'state', read: true, write: false },
|
|
357
|
+
IrReceived_IRHVAC_Econo: { type: 'string', role: 'state', read: true, write: false },
|
|
358
|
+
IrReceived_IRHVAC_Filter: { type: 'string', role: 'state', read: true, write: false },
|
|
359
|
+
IrReceived_IRHVAC_Clean: { type: 'string', role: 'state', read: true, write: false },
|
|
360
|
+
IrReceived_IRHVAC_Beep: { type: 'string', role: 'state', read: true, write: false },
|
|
361
|
+
IrReceived_IRHVAC_Sleep: { type: 'number', role: 'value', read: true, write: false },
|
|
362
|
+
IrReceived_IRHVAC_Celsius: { type: 'string', role: 'state', read: true, write: false },
|
|
363
|
+
// Shutter control datapoints (Position, Direction, Target, Tilt for shutters 1-16)
|
|
364
|
+
Shutter1_Position: { type: 'number', role: 'level.blind', read: true, write: true, min: 0, max: 100, unit: '%' },
|
|
365
|
+
Shutter1_Direction: { type: 'number', role: 'value', read: true, write: false },
|
|
366
|
+
Shutter1_Target: { type: 'number', role: 'value', read: true, write: false, min: 0, max: 100, unit: '%' },
|
|
367
|
+
Shutter1_Tilt: { type: 'number', role: 'level.tilt', read: true, write: true, min: 0, max: 100, unit: '%' },
|
|
368
|
+
Shutter2_Position: { type: 'number', role: 'level.blind', read: true, write: true, min: 0, max: 100, unit: '%' },
|
|
369
|
+
Shutter2_Direction: { type: 'number', role: 'value', read: true, write: false },
|
|
370
|
+
Shutter2_Target: { type: 'number', role: 'value', read: true, write: false, min: 0, max: 100, unit: '%' },
|
|
371
|
+
Shutter2_Tilt: { type: 'number', role: 'level.tilt', read: true, write: true, min: 0, max: 100, unit: '%' },
|
|
372
|
+
Shutter3_Position: { type: 'number', role: 'level.blind', read: true, write: true, min: 0, max: 100, unit: '%' },
|
|
373
|
+
Shutter3_Direction: { type: 'number', role: 'value', read: true, write: false },
|
|
374
|
+
Shutter3_Target: { type: 'number', role: 'value', read: true, write: false, min: 0, max: 100, unit: '%' },
|
|
375
|
+
Shutter3_Tilt: { type: 'number', role: 'level.tilt', read: true, write: true, min: 0, max: 100, unit: '%' },
|
|
376
|
+
Shutter4_Position: { type: 'number', role: 'level.blind', read: true, write: true, min: 0, max: 100, unit: '%' },
|
|
377
|
+
Shutter4_Direction: { type: 'number', role: 'value', read: true, write: false },
|
|
378
|
+
Shutter4_Target: { type: 'number', role: 'value', read: true, write: false, min: 0, max: 100, unit: '%' },
|
|
379
|
+
Shutter4_Tilt: { type: 'number', role: 'level.tilt', read: true, write: true, min: 0, max: 100, unit: '%' },
|
|
380
|
+
Shutter5_Position: { type: 'number', role: 'level.blind', read: true, write: true, min: 0, max: 100, unit: '%' },
|
|
381
|
+
Shutter5_Direction: { type: 'number', role: 'value', read: true, write: false },
|
|
382
|
+
Shutter5_Target: { type: 'number', role: 'value', read: true, write: false, min: 0, max: 100, unit: '%' },
|
|
383
|
+
Shutter5_Tilt: { type: 'number', role: 'level.tilt', read: true, write: true, min: 0, max: 100, unit: '%' },
|
|
384
|
+
Shutter6_Position: { type: 'number', role: 'level.blind', read: true, write: true, min: 0, max: 100, unit: '%' },
|
|
385
|
+
Shutter6_Direction: { type: 'number', role: 'value', read: true, write: false },
|
|
386
|
+
Shutter6_Target: { type: 'number', role: 'value', read: true, write: false, min: 0, max: 100, unit: '%' },
|
|
387
|
+
Shutter6_Tilt: { type: 'number', role: 'level.tilt', read: true, write: true, min: 0, max: 100, unit: '%' },
|
|
388
|
+
Shutter7_Position: { type: 'number', role: 'level.blind', read: true, write: true, min: 0, max: 100, unit: '%' },
|
|
389
|
+
Shutter7_Direction: { type: 'number', role: 'value', read: true, write: false },
|
|
390
|
+
Shutter7_Target: { type: 'number', role: 'value', read: true, write: false, min: 0, max: 100, unit: '%' },
|
|
391
|
+
Shutter7_Tilt: { type: 'number', role: 'level.tilt', read: true, write: true, min: 0, max: 100, unit: '%' },
|
|
392
|
+
Shutter8_Position: { type: 'number', role: 'level.blind', read: true, write: true, min: 0, max: 100, unit: '%' },
|
|
393
|
+
Shutter8_Direction: { type: 'number', role: 'value', read: true, write: false },
|
|
394
|
+
Shutter8_Target: { type: 'number', role: 'value', read: true, write: false, min: 0, max: 100, unit: '%' },
|
|
395
|
+
Shutter8_Tilt: { type: 'number', role: 'level.tilt', read: true, write: true, min: 0, max: 100, unit: '%' },
|
|
396
|
+
Shutter9_Position: { type: 'number', role: 'level.blind', read: true, write: true, min: 0, max: 100, unit: '%' },
|
|
397
|
+
Shutter9_Direction: { type: 'number', role: 'value', read: true, write: false },
|
|
398
|
+
Shutter9_Target: { type: 'number', role: 'value', read: true, write: false, min: 0, max: 100, unit: '%' },
|
|
399
|
+
Shutter9_Tilt: { type: 'number', role: 'level.tilt', read: true, write: true, min: 0, max: 100, unit: '%' },
|
|
400
|
+
Shutter10_Position: { type: 'number', role: 'level.blind', read: true, write: true, min: 0, max: 100, unit: '%' },
|
|
401
|
+
Shutter10_Direction: { type: 'number', role: 'value', read: true, write: false },
|
|
402
|
+
Shutter10_Target: { type: 'number', role: 'value', read: true, write: false, min: 0, max: 100, unit: '%' },
|
|
403
|
+
Shutter10_Tilt: { type: 'number', role: 'level.tilt', read: true, write: true, min: 0, max: 100, unit: '%' },
|
|
404
|
+
Shutter11_Position: { type: 'number', role: 'level.blind', read: true, write: true, min: 0, max: 100, unit: '%' },
|
|
405
|
+
Shutter11_Direction: { type: 'number', role: 'value', read: true, write: false },
|
|
406
|
+
Shutter11_Target: { type: 'number', role: 'value', read: true, write: false, min: 0, max: 100, unit: '%' },
|
|
407
|
+
Shutter11_Tilt: { type: 'number', role: 'level.tilt', read: true, write: true, min: 0, max: 100, unit: '%' },
|
|
408
|
+
Shutter12_Position: { type: 'number', role: 'level.blind', read: true, write: true, min: 0, max: 100, unit: '%' },
|
|
409
|
+
Shutter12_Direction: { type: 'number', role: 'value', read: true, write: false },
|
|
410
|
+
Shutter12_Target: { type: 'number', role: 'value', read: true, write: false, min: 0, max: 100, unit: '%' },
|
|
411
|
+
Shutter12_Tilt: { type: 'number', role: 'level.tilt', read: true, write: true, min: 0, max: 100, unit: '%' },
|
|
412
|
+
Shutter13_Position: { type: 'number', role: 'level.blind', read: true, write: true, min: 0, max: 100, unit: '%' },
|
|
413
|
+
Shutter13_Direction: { type: 'number', role: 'value', read: true, write: false },
|
|
414
|
+
Shutter13_Target: { type: 'number', role: 'value', read: true, write: false, min: 0, max: 100, unit: '%' },
|
|
415
|
+
Shutter13_Tilt: { type: 'number', role: 'level.tilt', read: true, write: true, min: 0, max: 100, unit: '%' },
|
|
416
|
+
Shutter14_Position: { type: 'number', role: 'level.blind', read: true, write: true, min: 0, max: 100, unit: '%' },
|
|
417
|
+
Shutter14_Direction: { type: 'number', role: 'value', read: true, write: false },
|
|
418
|
+
Shutter14_Target: { type: 'number', role: 'value', read: true, write: false, min: 0, max: 100, unit: '%' },
|
|
419
|
+
Shutter14_Tilt: { type: 'number', role: 'level.tilt', read: true, write: true, min: 0, max: 100, unit: '%' },
|
|
420
|
+
Shutter15_Position: { type: 'number', role: 'level.blind', read: true, write: true, min: 0, max: 100, unit: '%' },
|
|
421
|
+
Shutter15_Direction: { type: 'number', role: 'value', read: true, write: false },
|
|
422
|
+
Shutter15_Target: { type: 'number', role: 'value', read: true, write: false, min: 0, max: 100, unit: '%' },
|
|
423
|
+
Shutter15_Tilt: { type: 'number', role: 'level.tilt', read: true, write: true, min: 0, max: 100, unit: '%' },
|
|
424
|
+
Shutter16_Position: { type: 'number', role: 'level.blind', read: true, write: true, min: 0, max: 100, unit: '%' },
|
|
425
|
+
Shutter16_Direction: { type: 'number', role: 'value', read: true, write: false },
|
|
426
|
+
Shutter16_Target: { type: 'number', role: 'value', read: true, write: false, min: 0, max: 100, unit: '%' },
|
|
427
|
+
Shutter16_Tilt: { type: 'number', role: 'level.tilt', read: true, write: true, min: 0, max: 100, unit: '%' },
|
|
428
|
+
};
|
|
429
|
+
exports.default = datapoints;
|
|
430
|
+
//# sourceMappingURL=datapoints.js.map
|