zigbee-herdsman-converters 24.11.0 → 24.13.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.
Files changed (40) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/dist/devices/bosch.d.ts.map +1 -1
  3. package/dist/devices/bosch.js +1 -0
  4. package/dist/devices/bosch.js.map +1 -1
  5. package/dist/devices/frient.d.ts.map +1 -1
  6. package/dist/devices/frient.js +7 -0
  7. package/dist/devices/frient.js.map +1 -1
  8. package/dist/devices/index.d.ts.map +1 -1
  9. package/dist/devices/index.js +2 -0
  10. package/dist/devices/index.js.map +1 -1
  11. package/dist/devices/inovelli.d.ts.map +1 -1
  12. package/dist/devices/inovelli.js +54 -7
  13. package/dist/devices/inovelli.js.map +1 -1
  14. package/dist/devices/moes.d.ts.map +1 -1
  15. package/dist/devices/moes.js +572 -2
  16. package/dist/devices/moes.js.map +1 -1
  17. package/dist/devices/philips.d.ts.map +1 -1
  18. package/dist/devices/philips.js +16 -2
  19. package/dist/devices/philips.js.map +1 -1
  20. package/dist/devices/shelly.js +1 -1
  21. package/dist/devices/shelly.js.map +1 -1
  22. package/dist/devices/simpla_home.d.ts +7 -0
  23. package/dist/devices/simpla_home.d.ts.map +1 -0
  24. package/dist/devices/simpla_home.js +114 -0
  25. package/dist/devices/simpla_home.js.map +1 -0
  26. package/dist/devices/stello.d.ts.map +1 -1
  27. package/dist/devices/stello.js +8 -0
  28. package/dist/devices/stello.js.map +1 -1
  29. package/dist/devices/tuya.d.ts.map +1 -1
  30. package/dist/devices/tuya.js +78 -15
  31. package/dist/devices/tuya.js.map +1 -1
  32. package/dist/devices/ysrsai.js +1 -1
  33. package/dist/devices/ysrsai.js.map +1 -1
  34. package/dist/lib/legacy.d.ts.map +1 -1
  35. package/dist/lib/legacy.js +1 -7
  36. package/dist/lib/legacy.js.map +1 -1
  37. package/dist/lib/tuya.js +1 -1
  38. package/dist/lib/tuya.js.map +1 -1
  39. package/dist/models-index.json +1 -1
  40. package/package.json +4 -4
@@ -69,7 +69,7 @@ exports.definitions = [
69
69
  model: "2PM",
70
70
  vendor: "Shelly",
71
71
  description: "2PM Gen4",
72
- extend: [m.windowCovering({ controls: ["lift"] })],
72
+ extend: [m.windowCovering({ controls: ["lift", "tilt"] })],
73
73
  },
74
74
  ];
75
75
  //# sourceMappingURL=shelly.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shelly.js","sourceRoot":"","sources":["../../src/devices/shelly.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAyC;AAG5B,QAAA,WAAW,GAA2B;IAC/C;QACI,WAAW,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;QAChC,KAAK,EAAE,cAAc;QACrB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,cAAc;QAC3B,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAC,eAAe,EAAE,KAAK,EAAC,CAAC,CAAC;KAC9C;IACD;QACI,WAAW,EAAE,CAAC,EAAC,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,QAAQ,EAAC,CAAC;QACzD,KAAK,EAAE,eAAe;QACtB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,SAAS;QACtB,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAC,eAAe,EAAE,KAAK,EAAC,CAAC,CAAC;KAC9C;IACD;QACI,WAAW,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;QACpC,KAAK,EAAE,cAAc;QACrB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,gBAAgB;QAC7B,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAC,eAAe,EAAE,KAAK,EAAC,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,EAAC,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAC,CAAC,CAAC;KAC7G;IACD;QACI,WAAW,EAAE,CAAC,KAAK,CAAC;QACpB,KAAK,EAAE,eAAe;QACtB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,WAAW;QACxB,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAC,eAAe,EAAE,KAAK,EAAC,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,EAAC,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAC,CAAC,CAAC;KAC7G;IACD;QACI,WAAW,EAAE,CAAC,KAAK,CAAC;QACpB,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,UAAU;QACvB,MAAM,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,EAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAC,CAAC,CAAC;KACnD;CACJ,CAAC"}
1
+ {"version":3,"file":"shelly.js","sourceRoot":"","sources":["../../src/devices/shelly.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAyC;AAG5B,QAAA,WAAW,GAA2B;IAC/C;QACI,WAAW,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;QAChC,KAAK,EAAE,cAAc;QACrB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,cAAc;QAC3B,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAC,eAAe,EAAE,KAAK,EAAC,CAAC,CAAC;KAC9C;IACD;QACI,WAAW,EAAE,CAAC,EAAC,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,QAAQ,EAAC,CAAC;QACzD,KAAK,EAAE,eAAe;QACtB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,SAAS;QACtB,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAC,eAAe,EAAE,KAAK,EAAC,CAAC,CAAC;KAC9C;IACD;QACI,WAAW,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;QACpC,KAAK,EAAE,cAAc;QACrB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,gBAAgB;QAC7B,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAC,eAAe,EAAE,KAAK,EAAC,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,EAAC,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAC,CAAC,CAAC;KAC7G;IACD;QACI,WAAW,EAAE,CAAC,KAAK,CAAC;QACpB,KAAK,EAAE,eAAe;QACtB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,WAAW;QACxB,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAC,eAAe,EAAE,KAAK,EAAC,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,EAAC,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAC,CAAC,CAAC;KAC7G;IACD;QACI,WAAW,EAAE,CAAC,KAAK,CAAC;QACpB,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,UAAU;QACvB,MAAM,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,EAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAC,CAAC,CAAC;KAC3D;CACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import * as m from "../lib/modernExtend";
2
+ import type { DefinitionWithExtend, ModernExtend } from "../lib/types";
3
+ export declare const simplaHomeModernExtend: {
4
+ measurementInterval: (args?: Partial<m.NumericArgs>) => ModernExtend;
5
+ };
6
+ export declare const definitions: DefinitionWithExtend[];
7
+ //# sourceMappingURL=simpla_home.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simpla_home.d.ts","sourceRoot":"","sources":["../../src/devices/simpla_home.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,qBAAqB,CAAC;AACzC,OAAO,KAAK,EAAC,oBAAoB,EAAU,YAAY,EAAC,MAAM,cAAc,CAAC;AAM7E,eAAO,MAAM,sBAAsB;iCACF,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;CA8BtD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,oBAAoB,EA6C7C,CAAC"}
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.definitions = exports.simplaHomeModernExtend = void 0;
37
+ const m = __importStar(require("../lib/modernExtend"));
38
+ const utils = __importStar(require("../lib/utils"));
39
+ const measurementIntervalMin = 5;
40
+ const measurementIntervalMax = 4 * 60 * 60;
41
+ exports.simplaHomeModernExtend = {
42
+ measurementInterval: (args) => {
43
+ const resultName = "measurement_interval";
44
+ const resultUnit = "s";
45
+ const resultDescription = "Defines how often the device performs measurements";
46
+ const result = m.numeric({
47
+ name: resultName,
48
+ access: "ALL",
49
+ unit: resultUnit,
50
+ cluster: "genAnalogOutput",
51
+ attribute: "presentValue",
52
+ scale: 1,
53
+ valueMin: measurementIntervalMin,
54
+ valueMax: measurementIntervalMax,
55
+ description: resultDescription,
56
+ ...args,
57
+ });
58
+ // exposes is dynamic based on fw version
59
+ result.exposes = [
60
+ (device) => {
61
+ if (!utils.isDummyDevice(device) && device.softwareBuildID && Number(`0x${device?.softwareBuildID}`) > 0x01010101) {
62
+ return result.exposes;
63
+ }
64
+ return [];
65
+ },
66
+ ];
67
+ return result;
68
+ },
69
+ };
70
+ exports.definitions = [
71
+ {
72
+ zigbeeModel: ["Soil Pro"],
73
+ model: "Soil Pro",
74
+ vendor: "Simpla Home",
75
+ description: "Soil Pro",
76
+ extend: [
77
+ m.deviceEndpoints({ endpoints: { "1": 1, z1_top: 2, z2_bottom: 3 } }),
78
+ m.identify(),
79
+ m.temperature({
80
+ // the device allows to set the internal measurement interval in the specified range
81
+ // the Min/Max reporting interval needs to be aligned in order to synchronize the
82
+ // value reporting interval to the measurements
83
+ reporting: { min: measurementIntervalMin, max: measurementIntervalMax, change: 10 },
84
+ }),
85
+ m.soilMoisture({
86
+ description: "Soil Moisture of Zone 1 (Top Zone)",
87
+ endpointNames: ["z1_top"],
88
+ reporting: { min: measurementIntervalMin, max: measurementIntervalMax, change: 100 },
89
+ }),
90
+ m.soilMoisture({
91
+ description: "Soil Moisture of Zone 2 (Bottom Zone)",
92
+ endpointNames: ["z2_bottom"],
93
+ reporting: { min: measurementIntervalMin, max: measurementIntervalMax, change: 100 },
94
+ }),
95
+ m.battery(),
96
+ exports.simplaHomeModernExtend.measurementInterval(),
97
+ m.illuminance({
98
+ reporting: { min: measurementIntervalMin, max: measurementIntervalMax, change: 5 },
99
+ }),
100
+ ],
101
+ configure: async (device, coordinatorEndpoint, logger) => {
102
+ const endpointId = device.getEndpoint(1);
103
+ await endpointId.read("genBasic", ["swBuildId"]);
104
+ if (Number(`0x${device?.softwareBuildID}`) > 0x01010101) {
105
+ const endpointAnalogOutput = device.getEndpoint(2);
106
+ await endpointAnalogOutput.bind("genAnalogOutput", coordinatorEndpoint);
107
+ await endpointAnalogOutput.read("genAnalogOutput", ["presentValue"]);
108
+ }
109
+ },
110
+ meta: { multiEndpoint: true },
111
+ ota: true,
112
+ },
113
+ ];
114
+ //# sourceMappingURL=simpla_home.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simpla_home.js","sourceRoot":"","sources":["../../src/devices/simpla_home.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stello.d.ts","sourceRoot":"","sources":["../../src/devices/stello.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,oBAAoB,EAAK,MAAM,cAAc,CAAC;AAyB3D,eAAO,MAAM,WAAW,EAAE,oBAAoB,EA2C7C,CAAC"}
1
+ {"version":3,"file":"stello.d.ts","sourceRoot":"","sources":["../../src/devices/stello.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,oBAAoB,EAAK,MAAM,cAAc,CAAC;AAyB3D,eAAO,MAAM,WAAW,EAAE,oBAAoB,EAkD7C,CAAC"}
@@ -37,6 +37,7 @@ exports.definitions = void 0;
37
37
  const fz = __importStar(require("../converters/fromZigbee"));
38
38
  const tz = __importStar(require("../converters/toZigbee"));
39
39
  const exposes = __importStar(require("../lib/exposes"));
40
+ const m = __importStar(require("../lib/modernExtend"));
40
41
  const reporting = __importStar(require("../lib/reporting"));
41
42
  const e = exposes.presets;
42
43
  const fzLocal = {
@@ -102,5 +103,12 @@ exports.definitions = [
102
103
  device.save();
103
104
  },
104
105
  },
106
+ {
107
+ zigbeeModel: ["STLO-23"],
108
+ model: "STLO-23",
109
+ vendor: "Stello",
110
+ description: "Hilo water heater controller",
111
+ extend: [m.onOff({ powerOnBehavior: false }), m.electricityMeter({ cluster: "metering" })],
112
+ },
105
113
  ];
106
114
  //# sourceMappingURL=stello.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stello.js","sourceRoot":"","sources":["../../src/devices/stello.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6DAA+C;AAC/C,2DAA6C;AAC7C,wDAA0C;AAC1C,4DAA8C;AAG9C,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;AAE1B,MAAM,OAAO,GAAG;IACZ,KAAK,EAAE;QACH,OAAO,EAAE,gBAAgB;QACzB,IAAI,EAAE,CAAC,iBAAiB,EAAE,cAAc,CAAC;QACzC,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;YAC5C,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;gBAClC,OAAO,EAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAC,CAAC;YACtC,CAAC;QACL,CAAC;KACmB;IACxB,MAAM,EAAE;QACJ,OAAO,EAAE,gBAAgB;QACzB,IAAI,EAAE,CAAC,iBAAiB,EAAE,cAAc,CAAC;QACzC,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;YAC5C,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;gBAClC,OAAO,EAAC,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,EAAC,CAAC;YACjE,CAAC;QACL,CAAC;KACmB;CAC3B,CAAC;AAEW,QAAA,WAAW,GAA2B;IAC/C;QACI,WAAW,EAAE,CAAC,SAAS,CAAC;QACxB,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,iBAAiB;QAC9B,UAAU,EAAE,CAAC,EAAE,CAAC,kBAAkB,EAAE,EAAE,CAAC,mBAAmB,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC;QAC1F,QAAQ,EAAE;YACN,EAAE,CAAC,4BAA4B;YAC/B,EAAE,CAAC,oBAAoB;YACvB,EAAE,CAAC,oCAAoC;YACvC,EAAE,CAAC,mCAAmC;YACtC,EAAE,CAAC,yBAAyB;YAC5B,EAAE,CAAC,sBAAsB;YACzB,EAAE,CAAC,wBAAwB;YAC3B,EAAE,CAAC,sCAAsC;SAC5C;QACD,OAAO,EAAE;YACL,CAAC,CAAC,iBAAiB,EAAE;YACrB,CAAC,CAAC,cAAc,EAAE;YAClB,CAAC,CAAC,KAAK,EAAE;YACT,CAAC,CAAC,MAAM,EAAE;YACV,CAAC;iBACI,OAAO,EAAE;iBACT,YAAY,CAAC,2BAA2B,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;iBACrD,oBAAoB,EAAE;iBACtB,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;iBACxB,gBAAgB,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SAC1C;QACD,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,EAAE;YAC7C,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACxC,MAAM,KAAK,GAAG,CAAC,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,0BAA0B,CAAC,CAAC;YAC7H,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,EAAE,KAAK,CAAC,CAAC;YAC3D,MAAM,SAAS,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,SAAS,CAAC,iCAAiC,CAAC,QAAQ,CAAC,CAAC;YAC5D,MAAM,SAAS,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YAC/C,MAAM,SAAS,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;YACpD,MAAM,SAAS,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;YACnD,sCAAsC;YACtC,MAAM,CAAC,WAAW,GAAG,sBAAsB,CAAC;YAC5C,MAAM,CAAC,IAAI,EAAE,CAAC;QAClB,CAAC;KACJ;CACJ,CAAC"}
1
+ {"version":3,"file":"stello.js","sourceRoot":"","sources":["../../src/devices/stello.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6DAA+C;AAC/C,2DAA6C;AAC7C,wDAA0C;AAC1C,uDAAyC;AACzC,4DAA8C;AAG9C,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;AAE1B,MAAM,OAAO,GAAG;IACZ,KAAK,EAAE;QACH,OAAO,EAAE,gBAAgB;QACzB,IAAI,EAAE,CAAC,iBAAiB,EAAE,cAAc,CAAC;QACzC,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;YAC5C,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;gBAClC,OAAO,EAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAC,CAAC;YACtC,CAAC;QACL,CAAC;KACmB;IACxB,MAAM,EAAE;QACJ,OAAO,EAAE,gBAAgB;QACzB,IAAI,EAAE,CAAC,iBAAiB,EAAE,cAAc,CAAC;QACzC,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;YAC5C,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;gBAClC,OAAO,EAAC,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,EAAC,CAAC;YACjE,CAAC;QACL,CAAC;KACmB;CAC3B,CAAC;AAEW,QAAA,WAAW,GAA2B;IAC/C;QACI,WAAW,EAAE,CAAC,SAAS,CAAC;QACxB,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,iBAAiB;QAC9B,UAAU,EAAE,CAAC,EAAE,CAAC,kBAAkB,EAAE,EAAE,CAAC,mBAAmB,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC;QAC1F,QAAQ,EAAE;YACN,EAAE,CAAC,4BAA4B;YAC/B,EAAE,CAAC,oBAAoB;YACvB,EAAE,CAAC,oCAAoC;YACvC,EAAE,CAAC,mCAAmC;YACtC,EAAE,CAAC,yBAAyB;YAC5B,EAAE,CAAC,sBAAsB;YACzB,EAAE,CAAC,wBAAwB;YAC3B,EAAE,CAAC,sCAAsC;SAC5C;QACD,OAAO,EAAE;YACL,CAAC,CAAC,iBAAiB,EAAE;YACrB,CAAC,CAAC,cAAc,EAAE;YAClB,CAAC,CAAC,KAAK,EAAE;YACT,CAAC,CAAC,MAAM,EAAE;YACV,CAAC;iBACI,OAAO,EAAE;iBACT,YAAY,CAAC,2BAA2B,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;iBACrD,oBAAoB,EAAE;iBACtB,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;iBACxB,gBAAgB,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SAC1C;QACD,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,EAAE;YAC7C,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACxC,MAAM,KAAK,GAAG,CAAC,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,0BAA0B,CAAC,CAAC;YAC7H,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,EAAE,KAAK,CAAC,CAAC;YAC3D,MAAM,SAAS,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,SAAS,CAAC,iCAAiC,CAAC,QAAQ,CAAC,CAAC;YAC5D,MAAM,SAAS,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YAC/C,MAAM,SAAS,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;YACpD,MAAM,SAAS,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;YACnD,sCAAsC;YACtC,MAAM,CAAC,WAAW,GAAG,sBAAsB,CAAC;YAC5C,MAAM,CAAC,IAAI,EAAE,CAAC;QAClB,CAAC;KACJ;IACD;QACI,WAAW,EAAE,CAAC,SAAS,CAAC;QACxB,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,8BAA8B;QAC3C,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAC,eAAe,EAAE,KAAK,EAAC,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,EAAC,OAAO,EAAE,UAAU,EAAC,CAAC,CAAC;KACzF;CACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tuya.d.ts","sourceRoot":"","sources":["../../src/devices/tuya.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAC,oBAAoB,EAA4D,MAAM,cAAc,CAAC;AA+3BlH,eAAO,MAAM,WAAW,EAAE,oBAAoB,EAgwiB7C,CAAC"}
1
+ {"version":3,"file":"tuya.d.ts","sourceRoot":"","sources":["../../src/devices/tuya.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAC,oBAAoB,EAA4D,MAAM,cAAc,CAAC;AA+3BlH,eAAO,MAAM,WAAW,EAAE,oBAAoB,EAy0iB7C,CAAC"}
@@ -1260,6 +1260,7 @@ exports.definitions = [
1260
1260
  "_TZE284_d7lpruvi",
1261
1261
  "_TZE284_upagmta9",
1262
1262
  "_TZE204_1wnh8bqp",
1263
+ "_TZE284_1wnh8bqp",
1263
1264
  ]),
1264
1265
  model: "TS0601_temperature_humidity_sensor_2",
1265
1266
  vendor: "Tuya",
@@ -4675,6 +4676,7 @@ exports.definitions = [
4675
4676
  "_TZE200_7shyddj3",
4676
4677
  "_TZE204_a2jcoyuk",
4677
4678
  "_TZE204_zuq5xxib",
4679
+ "_TZE200_ba69l9ol",
4678
4680
  ]),
4679
4681
  ...tuya.fingerprint("zo2pocs\u0000", ["_TYST11_fzo2pocs"]),
4680
4682
  ...tuya.fingerprint("dank5zs\u0000", ["_TYST11_udank5zs"]),
@@ -6089,10 +6091,26 @@ exports.definitions = [
6089
6091
  "OFF - In this mode, the thermostat stays closed")
6090
6092
  .withSystemMode(["auto", "heat", "off"], ea.STATE)
6091
6093
  .withRunningState(["idle", "heat"], ea.STATE),
6094
+ e.enum("screen_orientation", ea.STATE_SET, ["up", "down"]).withDescription("How do you look at the display (up and down supported only)"),
6095
+ e
6096
+ .enum("display_brightness", ea.STATE_SET, ["high", "middle", "low"])
6097
+ .withDescription("How strong the LED diplay is light up (high is default)"),
6098
+ e
6099
+ .enum("mode", ea.STATE_SET, ["comfort", "eco"])
6100
+ .withDescription("Hysteresis - comfort > switches off/on exactly at reached " +
6101
+ "temperature with valve smooth from 0 to 100%, eco > 0.5 degrees above or below, valve either 0 or 100%"),
6102
+ e
6103
+ .numeric("switch_deviation_eco", ea.STATE_SET)
6104
+ .withValueMin(0.5)
6105
+ .withValueMax(5.0)
6106
+ .withValueStep(0.1)
6107
+ .withUnit("°C")
6108
+ .withDescription("Switch deviation (energy-saving mode only)"),
6092
6109
  ...tuya.exposes.scheduleAllDays(ea.STATE_SET, "HH:MM/C HH:MM/C HH:MM/C HH:MM/C"),
6093
6110
  e
6094
6111
  .binary("boost_heating", ea.STATE_SET, "ON", "OFF")
6095
- .withDescription('Boost Heating: press and hold "+" for 3 seconds, ' +
6112
+ .withDescription("Boost Heating: press and hold " +
6113
+ " for 3 seconds, " +
6096
6114
  "the device will enter the boost heating mode, and the ▷╵◁ will flash. The countdown will be displayed in the APP"),
6097
6115
  e.numeric("boost_time", ea.STATE_SET).withUnit("min").withDescription("Countdown in minutes").withValueMin(0).withValueMax(1000),
6098
6116
  ],
@@ -6122,6 +6140,10 @@ exports.definitions = [
6122
6140
  [23, "schedule_sunday", tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(7)],
6123
6141
  [101, "local_temperature_calibration", tuya.valueConverter.localTempCalibration1],
6124
6142
  [102, "position", tuya.valueConverter.divideBy10],
6143
+ [116, "screen_orientation", tuya.valueConverterBasic.lookup({ up: tuya.enum(0), down: tuya.enum(2) })],
6144
+ [152, "display_brightness", tuya.valueConverterBasic.lookup({ high: tuya.enum(0), middle: tuya.enum(1), low: tuya.enum(2) })],
6145
+ [153, "mode", tuya.valueConverterBasic.lookup({ comfort: tuya.enum(0), eco: tuya.enum(1) })],
6146
+ [154, "switch_deviation_eco", tuya.valueConverter.divideBy10],
6125
6147
  ],
6126
6148
  },
6127
6149
  },
@@ -6130,7 +6152,7 @@ exports.definitions = [
6130
6152
  model: "TRV601",
6131
6153
  vendor: "Tuya",
6132
6154
  whiteLabel: [tuya.whitelabel("Sber", "SBDV-00185", "Thermostatic radiator valve", ["_TZE204_cvcu2p6e"])],
6133
- description: "Thermostatic radiator valve.",
6155
+ description: "Thermostatic radiator valve",
6134
6156
  onEvent: tuya.onEventSetLocalTime,
6135
6157
  fromZigbee: [tuya.fz.datapoints],
6136
6158
  toZigbee: [tuya.tz.datapoints],
@@ -6157,10 +6179,21 @@ exports.definitions = [
6157
6179
  .withSystemMode(["auto", "heat", "off"], ea.STATE)
6158
6180
  .withRunningState(["idle", "heat"], ea.STATE),
6159
6181
  ...tuya.exposes.scheduleAllDays(ea.STATE_SET, "HH:MM/C HH:MM/C HH:MM/C HH:MM/C"),
6182
+ e.enum("screen_orientation", ea.STATE_SET, ["up", "down"]).withDescription("How do you look at the display (up and down supported only)"),
6183
+ e
6184
+ .enum("display_brightness", ea.STATE_SET, ["high", "middle", "low"])
6185
+ .withDescription("How strong the LED diplay is light up (high is default)"),
6160
6186
  e
6161
6187
  .enum("mode", ea.STATE_SET, ["comfort", "eco"])
6162
6188
  .withDescription("Hysteresis - comfort > switches off/on exactly at reached " +
6163
6189
  "temperature with valve smooth from 0 to 100%, eco > 0.5 degrees above or below, valve either 0 or 100%"),
6190
+ e
6191
+ .numeric("switch_deviation_eco", ea.STATE_SET)
6192
+ .withValueMin(0.5)
6193
+ .withValueMax(5.0)
6194
+ .withValueStep(0.1)
6195
+ .withUnit("°C")
6196
+ .withDescription("Switch deviation (energy-saving mode only)"),
6164
6197
  ],
6165
6198
  meta: {
6166
6199
  tuyaDatapoints: [
@@ -6186,14 +6219,10 @@ exports.definitions = [
6186
6219
  [23, "schedule_sunday", tuya.valueConverter.thermostatScheduleDayMultiDPWithDayNumber(7)],
6187
6220
  [101, "local_temperature_calibration", tuya.valueConverter.localTempCalibration1],
6188
6221
  [108, "position", tuya.valueConverter.divideBy10],
6189
- [
6190
- 114,
6191
- "mode",
6192
- tuya.valueConverterBasic.lookup({
6193
- comfort: tuya.enum(0),
6194
- eco: tuya.enum(1),
6195
- }),
6196
- ],
6222
+ [111, "display_brightness", tuya.valueConverterBasic.lookup({ high: tuya.enum(0), middle: tuya.enum(1), low: tuya.enum(2) })],
6223
+ [113, "screen_orientation", tuya.valueConverterBasic.lookup({ up: tuya.enum(0), down: tuya.enum(2) })],
6224
+ [114, "mode", tuya.valueConverterBasic.lookup({ comfort: tuya.enum(0), eco: tuya.enum(1) })],
6225
+ [115, "switch_deviation_eco", tuya.valueConverter.divideBy10],
6197
6226
  ],
6198
6227
  },
6199
6228
  },
@@ -6706,6 +6735,7 @@ exports.definitions = [
6706
6735
  { vendor: "MODEMIX", model: "MOD048" },
6707
6736
  { vendor: "Coswall", model: "CS-AJ-DE2U-ZG-11" },
6708
6737
  { vendor: "Aubess", model: "TS011F_plug_1" },
6738
+ tuya.whitelabel("BSEED", "FK86ZEUSK1W", "Wall-mounted electrical socket", ["_TZ3000_4ux0ondb"]),
6709
6739
  tuya.whitelabel("Nous", "A1Z", "Smart plug (with power monitoring)", ["_TZ3000_2putqrmw", "_TZ3000_ksw8qtmt"]),
6710
6740
  tuya.whitelabel("Moes", "MOES_plug", "Smart plug (with power monitoring)", ["_TZ3000_yujkchbz"]),
6711
6741
  tuya.whitelabel("Moes", "ZK-EU", "Smart wallsocket (with power monitoring)", ["_TZ3000_ss98ec5d"]),
@@ -8445,7 +8475,14 @@ exports.definitions = [
8445
8475
  onEvent: tuya.onEventSetTime,
8446
8476
  },
8447
8477
  {
8448
- fingerprint: tuya.fingerprint("TS0601", ["_TZE200_viy9ihs7", "_TZE204_lzriup1j", "_TZE204_xnbkhhdr", "_TZE284_xnbkhhdr", "_TZE204_oh8y8pv8"]),
8478
+ fingerprint: tuya.fingerprint("TS0601", [
8479
+ "_TZE200_viy9ihs7",
8480
+ "_TZE204_lzriup1j",
8481
+ "_TZE204_xnbkhhdr",
8482
+ "_TZE284_xnbkhhdr",
8483
+ "_TZE204_oh8y8pv8",
8484
+ "_TZE204_gops3slb",
8485
+ ]),
8449
8486
  model: "ZWT198/ZWT100-BH",
8450
8487
  vendor: "Tuya",
8451
8488
  description: "Wall thermostat",
@@ -8517,7 +8554,8 @@ exports.definitions = [
8517
8554
  "preset",
8518
8555
  tuya.valueConverterBasic.lookup((_, device) => {
8519
8556
  // https://github.com/Koenkk/zigbee2mqtt/issues/21353#issuecomment-1938328429
8520
- if (device.manufacturerName === "_TZE204_lzriup1j") {
8557
+ // https://github.com/Koenkk/zigbee2mqtt/issues/28035
8558
+ if (device.manufacturerName === "_TZE204_lzriup1j" || device.manufacturerName === "_TZE204_gops3slb") {
8521
8559
  return {
8522
8560
  auto: tuya.enum(1),
8523
8561
  manual: tuya.enum(0),
@@ -9369,6 +9407,13 @@ exports.definitions = [
9369
9407
  applicationVersion: 145,
9370
9408
  priority: 1,
9371
9409
  },
9410
+ // https://github.com/Koenkk/zigbee2mqtt/issues/28149
9411
+ {
9412
+ modelID: "TS004F",
9413
+ manufacturerName: "_TZ3000_gwkzibhs",
9414
+ applicationVersion: 147,
9415
+ priority: 1,
9416
+ },
9372
9417
  ],
9373
9418
  model: "ZG-101Z/D",
9374
9419
  vendor: "Tuya",
@@ -13615,9 +13660,9 @@ exports.definitions = [
13615
13660
  // were received. They can be several seconds in the past if
13616
13661
  // the publication was delayed because of the late_energy_flow options.
13617
13662
  e
13618
- .numeric("timestamp_a", ea.STATE)
13663
+ .text("timestamp_a", ea.STATE)
13619
13664
  .withDescription("Timestamp at power measure (phase a)"),
13620
- e.numeric("timestamp_b", ea.STATE).withDescription("Timestamp at power measure (phase b)"),
13665
+ e.text("timestamp_b", ea.STATE).withDescription("Timestamp at power measure (phase b)"),
13621
13666
  ],
13622
13667
  meta: {
13623
13668
  multiEndpointSkip: ["power_factor", "power_factor_phase_b", "power_factor_phase_c", "energy"],
@@ -14212,7 +14257,7 @@ exports.definitions = [
14212
14257
  ],
14213
14258
  },
14214
14259
  {
14215
- fingerprint: tuya.fingerprint("TS0601", ["_TZE204_kobbcyum", "_TZE284_kobbcyum", "_TZE284_hecsejsb"]),
14260
+ fingerprint: tuya.fingerprint("TS0601", ["_TZE204_kobbcyum", "_TZE284_kobbcyum", "_TZE284_hecsejsb", "_TZE284_432zhuwe"]),
14216
14261
  model: "TOWSMR1",
14217
14262
  vendor: "Tongou",
14218
14263
  description: "Single-phase multifunction RCBO (DIN Module)",
@@ -14223,6 +14268,7 @@ exports.definitions = [
14223
14268
  // Required to get the device to start reporting
14224
14269
  await device.getEndpoint(1).command("manuSpecificTuya", "dataQuery", {});
14225
14270
  },
14271
+ whiteLabel: [tuya.whitelabel("Tongou", "TOSA1", "Single-phase multifunction RCBO (DIN Module)", ["_TZE284_432zhuwe"])],
14226
14272
  exposes: [
14227
14273
  tuya.exposes.switch(),
14228
14274
  e.temperature(),
@@ -14305,6 +14351,18 @@ exports.definitions = [
14305
14351
  .withLabel("Auto reclosing")
14306
14352
  .withDescription("When the circuit breaker trips due to voltage protection, it will automatically close when the circuit voltage returns to normal"),
14307
14353
  e.binary("restore_default", ea.STATE_SET, "ON", "OFF").withDescription("Turn ON to restore default settings"),
14354
+ e
14355
+ .binary("overcurrent_recloser", ea.STATE_SET, "ON", "OFF")
14356
+ .withLabel("Overcurrent Recloser")
14357
+ .withDescription("When the circuit breaker trips due to overcurrent protection, it will automatically close when the circuit voltage returns to normal"),
14358
+ e
14359
+ .binary("leakage_recloser", ea.STATE_SET, "ON", "OFF")
14360
+ .withLabel("Leakage Recloser")
14361
+ .withDescription("When the circuit breaker trips due to leakage protection, it will automatically close when the circuit voltage returns to normal"),
14362
+ e
14363
+ .binary("overpower_recloser", ea.STATE_SET, "ON", "OFF")
14364
+ .withLabel("Overpower Recloser")
14365
+ .withDescription("When the circuit breaker trips due to overpower protection, it will automatically close when the circuit voltage returns to normal"),
14308
14366
  ],
14309
14367
  meta: {
14310
14368
  tuyaDatapoints: [
@@ -14404,6 +14462,11 @@ exports.definitions = [
14404
14462
  [118, "temperature_threshold", tuya.valueConverter.divideBy10],
14405
14463
  [119, "over_power_threshold", tuya.valueConverter.raw],
14406
14464
  [131, "temperature", tuya.valueConverter.divideBy10],
14465
+ // The ones below might only work for _TZE284_432zhuwe
14466
+ // https://github.com/Koenkk/zigbee-herdsman-converters/pull/9747
14467
+ [143, "overcurrent_recloser", tuya.valueConverter.onOff],
14468
+ [144, "leakage_recloser", tuya.valueConverter.onOff],
14469
+ [145, "overpower_recloser", tuya.valueConverter.onOff],
14407
14470
  ],
14408
14471
  },
14409
14472
  onEvent: tuya.onEvent({