zigbee-herdsman-converters 14.0.652 → 14.0.654
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/converters/fromZigbee.js +2 -2
- package/converters/toZigbee.js +1 -1
- package/devices/lidl.js +33 -12
- package/devices/moes.js +6 -3
- package/devices/m/303/274ller_licht.js +2 -2
- package/devices/tuya.js +25 -1
- package/package.json +1 -1
package/converters/fromZigbee.js
CHANGED
|
@@ -4039,7 +4039,7 @@ const converters = {
|
|
|
4039
4039
|
const presetLookup = {0: 'programming', 1: 'manual', 2: 'temporary_manual', 3: 'holiday'};
|
|
4040
4040
|
switch (dp) {
|
|
4041
4041
|
case tuya.dataPoints.moesSsystemMode:
|
|
4042
|
-
return {preset: presetLookup[value]};
|
|
4042
|
+
return {preset: presetLookup[value], system_mode: 'heat'};
|
|
4043
4043
|
case tuya.dataPoints.moesSheatingSetpoint:
|
|
4044
4044
|
return {current_heating_setpoint: value};
|
|
4045
4045
|
case tuya.dataPoints.moesSlocalTemp:
|
|
@@ -4049,7 +4049,7 @@ const converters = {
|
|
|
4049
4049
|
case tuya.dataPoints.moesSboostHeatingCountdown:
|
|
4050
4050
|
return {boost_heating_countdown: value};
|
|
4051
4051
|
case tuya.dataPoints.moesSreset:
|
|
4052
|
-
return {valve_state: value ? 'CLOSED' : 'OPEN'};
|
|
4052
|
+
return {running_state: value ? 'idle' : 'heat', valve_state: value ? 'CLOSED' : 'OPEN'};
|
|
4053
4053
|
case tuya.dataPoints.moesSwindowDetectionFunktion_A2:
|
|
4054
4054
|
return {window_detection: value ? 'ON' : 'OFF'};
|
|
4055
4055
|
case tuya.dataPoints.moesSwindowDetection:
|
package/converters/toZigbee.js
CHANGED
|
@@ -3420,7 +3420,7 @@ const converters = {
|
|
|
3420
3420
|
return tuya.sendDataPointRaw(entity, tuya.dataPoints.moesSchedule, payload);
|
|
3421
3421
|
},
|
|
3422
3422
|
},
|
|
3423
|
-
|
|
3423
|
+
moesS_thermostat_preset: {
|
|
3424
3424
|
key: ['preset'],
|
|
3425
3425
|
convertSet: async (entity, key, value, meta) => {
|
|
3426
3426
|
const lookup = {'programming': 0, 'manual': 1, 'temporary_manual': 2, 'holiday': 3};
|
package/devices/lidl.js
CHANGED
|
@@ -7,6 +7,8 @@ const e = exposes.presets;
|
|
|
7
7
|
const ea = exposes.access;
|
|
8
8
|
const tuya = require('../lib/tuya');
|
|
9
9
|
const globalStore = require('../lib/store');
|
|
10
|
+
const ota = require('../lib/ota');
|
|
11
|
+
const utils = require('../lib/utils');
|
|
10
12
|
|
|
11
13
|
const tuyaLocal = {
|
|
12
14
|
dataPoints: {
|
|
@@ -140,6 +142,20 @@ const fzLocal = {
|
|
|
140
142
|
}
|
|
141
143
|
},
|
|
142
144
|
},
|
|
145
|
+
metering_skip_duplicate: {
|
|
146
|
+
...fz.metering,
|
|
147
|
+
convert: (model, msg, publish, options, meta) => {
|
|
148
|
+
if (utils.hasAlreadyProcessedMessage(msg)) return;
|
|
149
|
+
return fz.metering.convert(model, msg, publish, options, meta);
|
|
150
|
+
},
|
|
151
|
+
},
|
|
152
|
+
electrical_measurement_skip_duplicate: {
|
|
153
|
+
...fz.electrical_measurement,
|
|
154
|
+
convert: (model, msg, publish, options, meta) => {
|
|
155
|
+
if (utils.hasAlreadyProcessedMessage(msg)) return;
|
|
156
|
+
return fz.electrical_measurement.convert(model, msg, publish, options, meta);
|
|
157
|
+
},
|
|
158
|
+
},
|
|
143
159
|
};
|
|
144
160
|
const tzLocal = {
|
|
145
161
|
zs_thermostat_child_lock: {
|
|
@@ -383,22 +399,27 @@ module.exports = [
|
|
|
383
399
|
model: 'HG08673-FR',
|
|
384
400
|
vendor: 'Lidl',
|
|
385
401
|
description: 'Silvercrest smart plug FR with power monitoring',
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
.withDescription('Recover state after power outage')],
|
|
402
|
+
ota: ota.zigbeeOTA, // Even though it's a Lidl Device it supports Tuya OTA
|
|
403
|
+
fromZigbee: [fz.on_off, fzLocal.electrical_measurement_skip_duplicate, fzLocal.metering_skip_duplicate, fz.ignore_basic_report,
|
|
404
|
+
fz.tuya_switch_power_outage_memory, fz.ts011f_plug_indicator_mode, fz.ts011f_plug_child_mode],
|
|
405
|
+
toZigbee: [tz.on_off, tz.tuya_switch_power_outage_memory, tz.ts011f_plug_indicator_mode, tz.ts011f_plug_child_mode],
|
|
391
406
|
configure: async (device, coordinatorEndpoint, logger) => {
|
|
392
407
|
const endpoint = device.getEndpoint(1);
|
|
393
|
-
await
|
|
408
|
+
await endpoint.read('genBasic', ['manufacturerName', 'zclVersion', 'appVersion', 'modelId', 'powerSource', 0xfffe]);
|
|
409
|
+
await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'haElectricalMeasurement', 'seMetering']);
|
|
410
|
+
await reporting.rmsVoltage(endpoint, {change: 5});
|
|
411
|
+
await reporting.rmsCurrent(endpoint, {change: 50});
|
|
412
|
+
await reporting.activePower(endpoint, {change: 10});
|
|
413
|
+
await reporting.currentSummDelivered(endpoint);
|
|
414
|
+
endpoint.saveClusterAttributeKeyValue('haElectricalMeasurement', {acCurrentDivisor: 1000, acCurrentMultiplier: 1});
|
|
394
415
|
endpoint.saveClusterAttributeKeyValue('seMetering', {divisor: 100, multiplier: 1});
|
|
395
|
-
|
|
396
|
-
acVoltageMultiplier: 1, acVoltageDivisor: 1, acCurrentMultiplier: 1, acCurrentDivisor: 1000, acPowerMultiplier: 1,
|
|
397
|
-
acPowerDivisor: 1,
|
|
398
|
-
});
|
|
416
|
+
device.save();
|
|
399
417
|
},
|
|
400
|
-
|
|
401
|
-
|
|
418
|
+
exposes: [e.switch(), e.power(), e.current(), e.voltage().withAccess(ea.STATE),
|
|
419
|
+
e.energy(), exposes.enum('power_outage_memory', ea.ALL, ['on', 'off', 'restore'])
|
|
420
|
+
.withDescription('Recover state after power outage'),
|
|
421
|
+
exposes.enum('indicator_mode', ea.ALL, ['off', 'off/on', 'on/off', 'on'])
|
|
422
|
+
.withDescription('Plug LED indicator mode'), e.child_lock()],
|
|
402
423
|
},
|
|
403
424
|
{
|
|
404
425
|
fingerprint: [{modelID: 'TS004F', manufacturerName: '_TZ3000_rco1yzb1'}],
|
package/devices/moes.js
CHANGED
|
@@ -299,14 +299,17 @@ module.exports = [
|
|
|
299
299
|
tz.moesS_thermostat_boost_heating, tz.moesS_thermostat_boostHeatingCountdownTimeSet,
|
|
300
300
|
tz.moesS_thermostat_eco_temperature, tz.moesS_thermostat_max_temperature,
|
|
301
301
|
tz.moesS_thermostat_min_temperature, tz.moesS_thermostat_moesSecoMode,
|
|
302
|
-
tz.
|
|
302
|
+
tz.moesS_thermostat_preset, tz.moesS_thermostat_schedule_programming],
|
|
303
303
|
exposes: [
|
|
304
|
-
e.battery(), e.child_lock(), e.eco_mode(),
|
|
304
|
+
e.battery(), e.child_lock(), e.eco_mode(),
|
|
305
|
+
e.eco_temperature().withValueMin(5), e.max_temperature().withValueMax(45), e.min_temperature().withValueMin(5),
|
|
305
306
|
e.valve_state(), e.position(), e.window_detection(),
|
|
306
307
|
exposes.binary('window', ea.STATE, 'OPEN', 'CLOSED').withDescription('Window status closed or open '),
|
|
307
308
|
exposes.climate()
|
|
308
|
-
.withLocalTemperature(ea.STATE).withSetpoint('current_heating_setpoint', 5, 35,
|
|
309
|
+
.withLocalTemperature(ea.STATE).withSetpoint('current_heating_setpoint', 5, 35, 1, ea.STATE_SET)
|
|
309
310
|
.withLocalTemperatureCalibration(-9, 9, 1, ea.STATE_SET)
|
|
311
|
+
.withSystemMode(['heat'], ea.STATE)
|
|
312
|
+
.withRunningState(['idle', 'heat'], ea.STATE)
|
|
310
313
|
.withPreset(['programming', 'manual', 'temporary_manual', 'holiday'],
|
|
311
314
|
'MANUAL MODE ☝ - In this mode, the device executes manual temperature setting. '+
|
|
312
315
|
'When the set temperature is lower than the "minimum temperature", the valve is closed (forced closed). ' +
|
|
@@ -125,8 +125,8 @@ module.exports = [
|
|
|
125
125
|
fromZigbee: [fz.command_on, fz.command_off, fz.command_toggle, fz.legacy.tint404011_brightness_updown_click,
|
|
126
126
|
fz.legacy.tint404011_move_to_color_temp, fz.legacy.tint404011_move_to_color, fz.tint_scene,
|
|
127
127
|
fz.legacy.tint404011_brightness_updown_release, fz.legacy.tint404011_brightness_updown_hold],
|
|
128
|
-
exposes: [e.action(['on', 'off', '
|
|
129
|
-
'
|
|
128
|
+
exposes: [e.action(['on', 'off', 'brightness_step_up', 'brightness_step_down', 'brightness_move_up', 'brightness_move_down',
|
|
129
|
+
'brightness_stop', 'color_temperature_move', 'color_move', 'scene_1', 'scene_2', 'scene_3', 'scene_4', 'scene_5', 'scene_6'])],
|
|
130
130
|
toZigbee: [],
|
|
131
131
|
},
|
|
132
132
|
{
|
package/devices/tuya.js
CHANGED
|
@@ -960,6 +960,7 @@ module.exports = [
|
|
|
960
960
|
{modelID: 'TS0504B', manufacturerName: '_TZ3210_i2i0bsnv'},
|
|
961
961
|
{modelID: 'TS0504B', manufacturerName: '_TZ3210_elzv6aia'},
|
|
962
962
|
{modelID: 'TS0504B', manufacturerName: '_TZ3210_1elppmba'},
|
|
963
|
+
{modelID: 'TS0504B', manufacturerName: '_TZB210_5jn6an2y'},
|
|
963
964
|
{modelID: 'TS0504B', manufacturerName: '_TZ3210_onejz0gt'}],
|
|
964
965
|
model: 'TS0504B',
|
|
965
966
|
vendor: 'TuYa',
|
|
@@ -993,6 +994,28 @@ module.exports = [
|
|
|
993
994
|
vendor: 'TuYa',
|
|
994
995
|
extend: extend.light_onoff_brightness(),
|
|
995
996
|
},
|
|
997
|
+
{
|
|
998
|
+
fingerprint: tuya.fingerprint('TS0202', ['_TZ3210_cwamkvua']),
|
|
999
|
+
model: 'TS0202_2',
|
|
1000
|
+
vendor: 'TuYa',
|
|
1001
|
+
description: 'Motion sensor with scene switch',
|
|
1002
|
+
fromZigbee: [tuya.fzDataPoints, fz.ias_occupancy_alarm_1, fz.battery],
|
|
1003
|
+
toZigbee: [tuya.tzDataPoints],
|
|
1004
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
1005
|
+
const endpoint = device.getEndpoint(1);
|
|
1006
|
+
await reporting.batteryPercentageRemaining(endpoint);
|
|
1007
|
+
await reporting.batteryVoltage(endpoint);
|
|
1008
|
+
},
|
|
1009
|
+
whiteLabel: [{vendor: 'Linkoze', model: 'LKMSZ001'}],
|
|
1010
|
+
exposes: [e.battery(), e.battery_voltage(), e.occupancy(), e.action(['single', 'double', 'hold']),
|
|
1011
|
+
exposes.enum('light', ea.STATE, ['dark', 'bright'])],
|
|
1012
|
+
meta: {
|
|
1013
|
+
tuyaDatapoints: [
|
|
1014
|
+
[102, 'light', tuya.valueConverterBasic.lookup({'dark': true, 'bright': false})],
|
|
1015
|
+
[101, 'action', tuya.valueConverterBasic.lookup({'single': 0, 'hold': 1, 'double': 2})],
|
|
1016
|
+
],
|
|
1017
|
+
},
|
|
1018
|
+
},
|
|
996
1019
|
{
|
|
997
1020
|
fingerprint: [{modelID: 'TS0202', manufacturerName: '_TYZB01_jytabjkb'},
|
|
998
1021
|
{modelID: 'TS0202', manufacturerName: '_TZ3000_lltemgsf'},
|
|
@@ -3531,7 +3554,8 @@ module.exports = [
|
|
|
3531
3554
|
},
|
|
3532
3555
|
{
|
|
3533
3556
|
fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_0u3bj3rc'},
|
|
3534
|
-
{modelID: 'TS0601', manufacturerName: '_TZE200_v6ossqfy'}
|
|
3557
|
+
{modelID: 'TS0601', manufacturerName: '_TZE200_v6ossqfy'},
|
|
3558
|
+
{modelID: 'TS0601', manufacturerName: '_TZE200_mx6u6l4y'}],
|
|
3535
3559
|
model: 'TS0601_human_presence_sensor',
|
|
3536
3560
|
vendor: 'TuYa',
|
|
3537
3561
|
description: 'Human presence sensor Zigbee',
|