-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Open
Labels
Description
Link
Database entry
N/A
Zigbee2MQTT version
2.6.3 (unknown)
External converter
const fz = require('zigbee-herdsman-converters/converters/fromZigbee');
const tz = require('zigbee-herdsman-converters/converters/toZigbee');
const exposes = require('zigbee-herdsman-converters/lib/exposes');
const tuya = require('zigbee-herdsman-converters/lib/tuya');
const ea = exposes.access;
const definition = {
fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE204_wc2w9t1s'}],
model: 'BOT-R9V-ZB',
vendor: 'Tuya',
description: 'Wall-mount thermostat',
whiteLabel: [
{vendor: 'Beok', model: 'BOT-R9V-ZB'},
{vendor: 'AVATTO', model: 'ZWT-100-16A'},
],
fromZigbee: [tuya.fz.datapoints],
toZigbee: [tuya.tz.datapoints],
configure: tuya.configureMagicPacket,
onEvent: tuya.onEventSetTime,
exposes: [
exposes.climate()
.withSetpoint('current_heating_setpoint', 5, 60, 0.5, ea.STATE_SET)
.withLocalTemperature(ea.STATE)
.withLocalTemperatureCalibration(-9.9, 9.9, 0.1, ea.STATE_SET)
.withSystemMode(['off', 'heat'], ea.STATE_SET)
.withRunningState(['idle', 'heat'], ea.STATE),
exposes.enum('preset', ea.STATE_SET, ['auto', 'manual'])
.withDescription('Preset mode'),
exposes.enum('child_lock', ea.STATE_SET, ['LOCK', 'UNLOCK'])
.withDescription('Child lock'),
exposes.enum('battery_low', ea.STATE, [true, false])
.withDescription('Low battery indicator'),
exposes.numeric('deadzone_temperature', ea.STATE_SET)
.withUnit('Β°C')
.withValueMin(0)
.withValueMax(5)
.withValueStep(0.5)
.withDescription('The delta between local_temperature and current_heating_setpoint to trigger activity'),
],
meta: {
tuyaDatapoints: [
[1, 'system_mode', {
from: (v) => {
if (v === true || v === 1) return 'heat';
if (v === false || v === 0 || v === 2) return 'off';
return 'heat';
},
to: (v) => {
if (v === 'off') return false;
if (v === 'heat') return true;
return true;
},
}],
[36, 'running_state', {
from: (v) => {
if (v === true || v === 1) return 'heat';
if (v === false || v === 0) return 'idle';
return 'idle';
},
}],
[16, 'current_heating_setpoint', tuya.valueConverter.divideBy10],
[4, 'preset', tuya.valueConverterBasic.lookup({manual: true, auto: false})],
[24, 'local_temperature', tuya.valueConverter.divideBy10],
[27, 'local_temperature_calibration', tuya.valueConverter.divideBy10],
[40, 'child_lock', tuya.valueConverter.lockUnlock],
[26, 'deadzone_temperature', tuya.valueConverter.raw],
[14, 'battery_low', tuya.valueConverter.trueFalse],
],
},
};
module.exports = definition;What does/doesn't work with the external definition?
This converter works with BOT-R9V-ZB thermostat, and similar battery operated zigbee thermostats. The battery status still doesn't work properly, you can remove it. However, temp set, deadzone temp, childloock, temp calibration, and running status are all working perfectly.
Notes
BOT-R9V-ZB external converter.