zigbee-herdsman-converters 14.0.681 → 14.0.682
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 +11 -3
- package/devices/awox.js +1 -0
- package/devices/sinope.js +58 -0
- package/devices/sonoff.js +22 -0
- package/devices/tuya.js +1 -0
- package/package.json +1 -1
package/converters/fromZigbee.js
CHANGED
|
@@ -3435,14 +3435,22 @@ const converters = {
|
|
|
3435
3435
|
cluster: 'hvacThermostat',
|
|
3436
3436
|
type: ['readResponse'],
|
|
3437
3437
|
convert: (model, msg, publish, options, meta) => {
|
|
3438
|
-
const lookup = {0: 'unoccupied', 1: 'occupied'};
|
|
3439
|
-
const lookup1 = {0: 'on_demand', 1: 'sensing'};
|
|
3440
3438
|
const result = {};
|
|
3439
|
+
const cycleOutputLookup = {15: '15_sec', 300: '5_min', 600: '10_min',
|
|
3440
|
+
900: '15_min', 1200: '20_min', 1800: '30_min', 65535: 'off'};
|
|
3441
3441
|
if (msg.data.hasOwnProperty('1024')) {
|
|
3442
|
+
const lookup = {0: 'unoccupied', 1: 'occupied'};
|
|
3442
3443
|
result.thermostat_occupancy = lookup[msg.data['1024']];
|
|
3443
3444
|
}
|
|
3445
|
+
if (msg.data.hasOwnProperty('1025')) {
|
|
3446
|
+
result.main_cycle_output = cycleOutputLookup[msg.data['1025']];
|
|
3447
|
+
}
|
|
3444
3448
|
if (msg.data.hasOwnProperty('1026')) {
|
|
3445
|
-
|
|
3449
|
+
const lookup = {0: 'on_demand', 1: 'sensing'};
|
|
3450
|
+
result.backlight_auto_dim = lookup[msg.data['1026']];
|
|
3451
|
+
}
|
|
3452
|
+
if (msg.data.hasOwnProperty('1028')) {
|
|
3453
|
+
result.aux_cycle_output = cycleOutputLookup[msg.data['1028']];
|
|
3446
3454
|
}
|
|
3447
3455
|
return result;
|
|
3448
3456
|
},
|
package/devices/awox.js
CHANGED
|
@@ -172,5 +172,6 @@ module.exports = [
|
|
|
172
172
|
vendor: 'AwoX',
|
|
173
173
|
description: 'LED light with color temperature',
|
|
174
174
|
extend: extend.light_onoff_brightness_colortemp({colorTempRange: [153, 370]}),
|
|
175
|
+
whiteLabel: [{vendor: 'EGLO', model: '900316'}, {vendor: 'EGLO', model: '900317'}, {vendor: 'EGLO', model: '900053'}],
|
|
175
176
|
},
|
|
176
177
|
];
|
package/devices/sinope.js
CHANGED
|
@@ -132,6 +132,64 @@ module.exports = [
|
|
|
132
132
|
await reporting.temperature(endpoint, {min: 1, max: 0xFFFF}); // Disable default reporting
|
|
133
133
|
},
|
|
134
134
|
},
|
|
135
|
+
{
|
|
136
|
+
zigbeeModel: ['TH1123ZB-G2'],
|
|
137
|
+
model: 'TH1123ZB-G2',
|
|
138
|
+
vendor: 'Sinopé',
|
|
139
|
+
description: 'Zigbee line volt thermostat',
|
|
140
|
+
meta: {thermostat: {dontMapPIHeatingDemand: true}},
|
|
141
|
+
fromZigbee: [fz.legacy.sinope_thermostat_att_report, fz.legacy.hvac_user_interface, fz.electrical_measurement, fz.metering,
|
|
142
|
+
fz.ignore_temperature_report, fz.legacy.sinope_thermostat_state, fz.sinope_thermostat],
|
|
143
|
+
toZigbee: [tz.thermostat_local_temperature, tz.thermostat_occupied_heating_setpoint, tz.thermostat_temperature_display_mode,
|
|
144
|
+
tz.thermostat_keypad_lockout, tz.thermostat_system_mode, tz.thermostat_running_state,
|
|
145
|
+
tz.sinope_thermostat_time, tz.sinope_thermostat_enable_outdoor_temperature, tz.sinope_thermostat_outdoor_temperature,
|
|
146
|
+
tz.thermostat_pi_heating_demand, tz.acvoltage, tz.sinope_time_format],
|
|
147
|
+
exposes: [
|
|
148
|
+
exposes.climate()
|
|
149
|
+
.withSetpoint('occupied_heating_setpoint', 5, 30, 0.5)
|
|
150
|
+
.withLocalTemperature()
|
|
151
|
+
.withSystemMode(['off', 'heat'], ea.ALL, 'Mode of the thermostat')
|
|
152
|
+
.withPiHeatingDemand(ea.STATE_GET)
|
|
153
|
+
.withRunningState(['idle', 'heat']),
|
|
154
|
+
exposes.enum('keypad_lockout', ea.ALL, ['unlock', 'lock1'])
|
|
155
|
+
.withDescription('Enables or disables the device buttons'),
|
|
156
|
+
e.power(), e.current(), e.voltage().withAccess(ea.STATE_GET), e.energy(),
|
|
157
|
+
],
|
|
158
|
+
|
|
159
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
160
|
+
const endpoint = device.getEndpoint(1);
|
|
161
|
+
const binds = [
|
|
162
|
+
'genBasic', 'genIdentify', 'genGroups', 'hvacThermostat', 'hvacUserInterfaceCfg',
|
|
163
|
+
'msTemperatureMeasurement', 'haElectricalMeasurement', 'seMetering',
|
|
164
|
+
'manuSpecificSinope'];
|
|
165
|
+
await reporting.bind(endpoint, coordinatorEndpoint, binds);
|
|
166
|
+
await reporting.thermostatTemperature(endpoint);
|
|
167
|
+
await reporting.thermostatPIHeatingDemand(endpoint);
|
|
168
|
+
await reporting.thermostatOccupiedHeatingSetpoint(endpoint);
|
|
169
|
+
|
|
170
|
+
try {
|
|
171
|
+
await reporting.thermostatSystemMode(endpoint);
|
|
172
|
+
} catch (error) {/* Not all support this */}
|
|
173
|
+
try {
|
|
174
|
+
await reporting.thermostatRunningState(endpoint);
|
|
175
|
+
} catch (error) {/* Not all support this */}
|
|
176
|
+
|
|
177
|
+
await reporting.readMeteringMultiplierDivisor(endpoint);
|
|
178
|
+
await reporting.currentSummDelivered(endpoint, {min: 10, max: 303, change: [1, 1]});
|
|
179
|
+
await reporting.readEletricalMeasurementMultiplierDivisors(endpoint);
|
|
180
|
+
try {
|
|
181
|
+
await reporting.activePower(endpoint, {min: 10, max: 305, change: 1});
|
|
182
|
+
} catch (error) {/* Do nothing*/}
|
|
183
|
+
try {
|
|
184
|
+
await reporting.rmsCurrent(endpoint, {min: 10, max: 306, change: 100}); // divider 1000: 0.1Arms
|
|
185
|
+
} catch (error) {/* Do nothing*/}
|
|
186
|
+
try {
|
|
187
|
+
await reporting.rmsVoltage(endpoint, {min: 10, max: 307, change: 5}); // divider 10: 0.5Vrms
|
|
188
|
+
} catch (error) {/* Do nothing*/}
|
|
189
|
+
|
|
190
|
+
await reporting.temperature(endpoint, {min: 1, max: 0xFFFF}); // Disable default reporting
|
|
191
|
+
},
|
|
192
|
+
},
|
|
135
193
|
{
|
|
136
194
|
zigbeeModel: ['TH1300ZB'],
|
|
137
195
|
model: 'TH1300ZB',
|
package/devices/sonoff.js
CHANGED
|
@@ -179,6 +179,28 @@ module.exports = [
|
|
|
179
179
|
}
|
|
180
180
|
},
|
|
181
181
|
},
|
|
182
|
+
{
|
|
183
|
+
zigbeeModel: ['SNZB-02D'],
|
|
184
|
+
model: 'SNZB-02D',
|
|
185
|
+
vendor: 'SONOFF',
|
|
186
|
+
description: 'Temperature and humidity sensor with screen',
|
|
187
|
+
exposes: [e.battery(), e.temperature(), e.humidity(), e.battery_voltage()],
|
|
188
|
+
fromZigbee: [fz.temperature, fz.humidity, fz.battery],
|
|
189
|
+
toZigbee: [],
|
|
190
|
+
configure: async (device, coordinatorEndpoint, logger) => {
|
|
191
|
+
try {
|
|
192
|
+
const endpoint = device.getEndpoint(1);
|
|
193
|
+
const bindClusters = ['msTemperatureMeasurement', 'msRelativeHumidity', 'genPowerCfg'];
|
|
194
|
+
await reporting.bind(endpoint, coordinatorEndpoint, bindClusters);
|
|
195
|
+
await reporting.temperature(endpoint, {min: 5, max: constants.repInterval.MINUTES_30, change: 20});
|
|
196
|
+
await reporting.humidity(endpoint);
|
|
197
|
+
await reporting.batteryVoltage(endpoint);
|
|
198
|
+
await reporting.batteryPercentageRemaining(endpoint);
|
|
199
|
+
} catch (e) {/* Not required for all: https://github.com/Koenkk/zigbee2mqtt/issues/5562 */
|
|
200
|
+
logger.error(`Configure failed: ${e}`);
|
|
201
|
+
}
|
|
202
|
+
},
|
|
203
|
+
},
|
|
182
204
|
{
|
|
183
205
|
fingerprint: [
|
|
184
206
|
{type: 'EndDevice', manufacturerName: 'eWeLink', modelID: '66666', endpoints: [
|
package/devices/tuya.js
CHANGED
|
@@ -2028,6 +2028,7 @@ module.exports = [
|
|
|
2028
2028
|
'_TZE200_mudxchsu', /* model: 'TV05-ZG curve', vendor: 'TuYa' */
|
|
2029
2029
|
'_TZE200_7yoranx2', /* model: 'TV01-ZB', vendor: 'Moes' */
|
|
2030
2030
|
'_TZE200_kds0pmmv', /* model: 'TV01-ZB', vendor: 'Moes' */
|
|
2031
|
+
'_TZE200_bvu2wnxz', /* model: 'ME167', vendor: 'Avatto' */
|
|
2031
2032
|
]),
|
|
2032
2033
|
model: 'TV02-Zigbee',
|
|
2033
2034
|
vendor: 'TuYa',
|