- #10903 LiXee ZLinky: use reportable attribute for pricing period (LTARF) (@sbraz)
- #11458 Schneider Electric 545D6102: add support for indicators and switch actions (@lajtmaN)
- #11437 Shelly WS90: expose more sensors (@danielpetrovic)
- #11455 Zemismart ZMS-206US-X: add support for setting switches names with UTF8 support (@aryelevin)
- #11416 Moes ZHT-S01: improve schedule handling (@mr-brune)
- #11438 Schneider Electric EKO07259: remove attributes not present and implement Schneider Electric custom clusters and attributes (@svhelge)
- #30862 Home Assistant: discover
temperature_probeastemperaturedevice_class(@Koenkk) - #30901 Bosch BTH-RA: fix
local_temperature_calibrationrange (@Koenkk) - #11454 Sinope TH1123ZB-G2 and TH1124ZB-G2: swap sensing and off values for backlight dimming modes (@lemoinem)
- #11457 Vesterent VES-ZB-REM-013: fix battery % divided by 2 (@mik-laj)
- #11375 OSRAM 4058075816459: fix action for the long-press (@miltschek)
- #11435 SONOFF SNZB-06P: fix occupancy_timeout description (@kstewart-lab)
This release adds support for 8 devices:
- #11450
4512776/4512777Namron Zigbee thermostat for panel heater PRO (white 4512776 / black 4512777) (@danielcherubini) - #11446
PM2.5_airboxTuya PM2.5 air quality sensor (@tiankakeji-cloud) - #11447
ROB_200-030-1ROBB Zigbee AC in wall switch 400W (2-wire) (normal switch) (@pieterhartgerink) - #11440
1005314SLV QPAR111 GU10 tunable smart (@chris-1243) - #11433
9290031509Philips Hue white PAR38 outdoor (@shawnheide) - #11439
MG1_5RZSONOFF Zigbee human presence radar (5.8 GHz) (@nicdolgov) - #11436
ZBPB10BKNedis Smart Zigbee SOS / Panic Button (@hwde) - #11441
ZNDDQDQ13LMAqara T1 light strip controller (@thebants)
- #30889 Detect
_TZ3210_nhqka112as Tuya TS011F_plug_2 (@Koenkk) - #11449 Detect
_TZE200_k1tumq4tas Tuya TV02-Zigbee (@FoerschS) - #30927 Detect
_TZE284_kdqrazmyas Tuya TS0601_temperature_humidity_sensor_3 (@Koenkk) - #30930 Detect
_TZE284_ozf4e02oas Merrytek MSA201Z (@Koenkk) - #11453 Detect
KAJPLATS E27 470lm smart WSas IKEA LED2411G3 (@lennartjoh) - #27188 Detect
_TZE204_wzre8hu2as Tuya TS0601_cover_1 (@Koenkk)








I've managed to get it working with zigbee2mqtt using an external converter
I named to file "_TZE284_zjhoqbrd.js"
then put it in /homeassistant/zigbee2mqtt/external_converters/
Below is the contents of the .js file
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 reporting = require('zigbee-herdsman-converters/lib/reporting');
const modernExtend = require('zigbee-herdsman-converters/lib/modernExtend');
const e = exposes.presets;
const ea = exposes.access;
const tuya = require('zigbee-herdsman-converters/lib/tuya');
const definition = {
// Since a lot of Tuya devices use the same modelID, but use different datapoints
// it's necessary to provide a fingerprint instead of a zigbeeModel
fingerprint: [
{
// The model ID from: Device with modelID 'TS0601' is not supported
// You may need to add \u0000 at the end of the name in some cases
modelID: 'TS0601',
// The manufacturer name from: Device with modelID 'TS0601' is not supported.
manufacturerName: '_TZE284_zjhoqbrd',
},
],
model: 'TS0601_ZWT198',
vendor: 'Tuya',
icon: '/icons/ts0601_zwt198.jpg',
description: 'Central Heating Thermostat',
fromZigbee: [tuya.fz.datapoints],
toZigbee: [tuya.tz.datapoints],
onEvent: tuya.onEventSetTime, // Add this if you are getting no converter for 'commandMcuSyncTime'
configure: tuya.configureMagicPacket,
exposes: [
e.binary("factory_reset", ea.STATE_SET, "ON", "OFF").withDescription("Full factory reset, use with caution!"),
e.child_lock(),
e.temperature_sensor_select(["internal", "external", "both"]),
e
.climate()
.withSystemMode(["off", "heat"], ea.STATE_SET)
.withPreset(["manual", "auto", "temporary_manual"])
.withSetpoint("current_heating_setpoint", 5, 35, 0.5, ea.STATE_SET)
.withRunningState(["idle", "heat"], ea.STATE)
.withLocalTemperature(ea.STATE)
.withLocalTemperatureCalibration(-9.9, 9.9, 0.1, ea.STATE_SET),
e.binary("frost_protection", ea.STATE_SET, "ON", "OFF").withDescription("Antifreeze function"),
e
.max_temperature_limit()
.withUnit("°C")
.withValueMin(15)
.withValueMax(90)
.withValueStep(0.5)
.withPreset("default", 60, "Default value")
.withDescription("Maximum upper temperature"),
e
.numeric("deadzone_temperature", ea.STATE_SET)
.withUnit("°C")
.withValueMax(10)
.withValueMin(0.1)
.withValueStep(0.1)
.withPreset("default", 1, "Default value")
.withDescription("The delta between local_temperature (5<t<35)and current_heating_setpoint to trigger Heat"),
e.enum("backlight_mode", ea.STATE_SET, ["off", "low", "medium", "high"]).withDescription("Intensity of the backlight"),
e.enum("working_day", ea.STATE_SET, ["disabled", "6-1", "5-2", "7"]).withDescription("Workday setting"),
e.text("schedule_weekday", ea.STATE_SET).withDescription("Workdays (6 times
hh:mm/cc.c°C)"),e
.text("schedule_holiday", ea.STATE_SET)
.withDescription("Holidays (2 times
hh:mm/cc.c°C)"),// ============== exposes for found, but not functional datapoints:
/*
e.min_temperature_limit() // dp 16
.withValueMin(5)
.withValueMax(15)
.withValueStep(0.5)
.withPreset('default', 10, 'Default value')
.withDescription('dp16 is listed in Tuya, but no communication from device'),
};
module.exports = definition;