Skip to content

Instantly share code, notes, and snippets.

@Koenkk
Last active October 9, 2026 23:23
Show Gist options
  • Select an option

  • Save Koenkk/bfd4c3d1725a2cccacc11d6ba51008ba to your computer and use it in GitHub Desktop.

Select an option

Save Koenkk/bfd4c3d1725a2cccacc11d6ba51008ba to your computer and use it in GitHub Desktop.
Zigbee2MQTT latest-dev changelog

Improvements

  • #13417 Namron 4512768, 4512791 and 4512792: support firmware updates (@xses79)
  • #13421 NodOn IRB-4-1-00: support infrared remote control learning (@GalleonLimitless)
  • #13430 Sber SBDV-00123: fix local_temperature_calibration range (@emolenev)
  • #13423 Tuya MTG275-ZB-RL: expose distance_report (@andi-at-1)
  • #13382 Bosch BTH-RA: expose weekly schedule (@dierochade)
  • #13389 NEO NAS-WV03B: support OTA updates (@andrei-lazarov)
  • #13392 Sber thermostat: allow temperature calibration from -10 to 10 °C (@emolenev)
  • #13364 Schneider Electric EKO07259: expose regulator level in P9 mode (@J0st1)
  • #13402 Tuya TS0002_power: support OTA updates (@andrei-lazarov)
  • #13388 Tuya TS0601_soil: support over-the-air firmware updates (@andrei-lazarov)
  • #13357 Schneider Electric: enable OTA for multiple devices (@peroo)
  • #1878 Accept explicit manufacturer-specific cluster definitions (@SisyphusMD)
  • #1872 Unified transport (@Nerivec)

Fixes

  • #33275 Do not let a malformed WebSocket frame escape the message listener (@arpitjain099)
  • #33071 Home Assistant: guard value templates against missing properties (@deviantintegral)
  • #33116 Update zigbee-herdsman to 11.0.0 with new transport (@Nerivec)
  • #13373 Aqara DS-K02D and DS-K02E: restore original wireless button actions (@smeyerspam-coder)
  • #13426 Aqara WSDCGQ12LM: restore precise pressure reporting (@LuisFigueroaG)
  • #13432 AVATTO ZDMS16-1: correct white label vendor name (@bernardesarthur)
  • #13431 Danfoss Icon2: fix endpoint-specific settings being unavailable (@9colai)
  • #13400 Gledopto GL-SPI-206P: fix brightness and color temperature control and report color correctly (@rlcamargos)
  • #13346 Moes BHT-002: ignore data points with an unknown datatype (@Diaoul)
  • #13386 Namron Zigbee Edge thermostat (4566702 / 4566703 / 4512783 / 4512784, HZC T11_ZG): various improvements (@xses79)
  • #13379 Sercomm XHS2-SE and Universal Electronics Inc XHS2-UE: set long poll intervals to reduce battery drain (@molant)
  • #13420 Shelly WS90: report pressure correctly (@Burki24)
  • #13416 SONOFF S60ZBTPF: stop repeated power updates when power is unchanged (@limes007)
  • #13399 SONOFF TRV-ZBT: report battery level (@timemaster5)
  • #13384 Aqara FP310: fix occupancy freezing after idle (@rexcfnghk)
  • #13372 Aqara PS-S04D: stop taking presence and PIR detection from the 0x00F7 struct (@theseus-elysium)
  • #13362 Aqara ZNJLBL01LM: skip optimistic position updates (@belzadur)
  • #13366 ENGO EONE-230W and EONE-BATB: use 1970 time base for thermostat time sync (@falkenhawk)
  • #13363 HYSYIOT HS208Z: fix occupancy and battery reporting (@olegos37)
  • #13404 LinknLink eMotion Air: report battery power source correctly (@andrei-lazarov)
  • #13390 Mercator Ikuü SPP04G: report power, current and voltage after pairing (@corrin)
  • #13406 ModernExtend: report pressure in hPa (@svhelge)
  • #13393 Shelly WS90: correct sensor measurement ranges (@Burki24)
  • #13409 STREDA SN3-1TB5K-03/PW: report correct rocker and doorbell actions (@mbchristoff)
  • #13381 TS130F: allow setting position on groups (@blvosh2)
  • #13378 Tuya ZG-103Z: Corrected axes' values (@MPX4132)
  • #13359 Ubisys LD6: fix input configuration writes and reads, read start-up settings, update write hint (@mberglun)
  • #13352 Philips Hue gradient lights: honor transition for gradient colors (@beaugbolle)
  • #33248 Develco SMSZB-120: don't configure zoneStatus reporting (@Koenkk)
  • #13350 EGLO 901471: fix CCT panel and RGB ring controls (@lmai95)
  • #33249 HOBEIAN ZG-102ZA: expose battery_low and tamper (@Koenkk)
  • #1901 Deconz decoder context (@Nerivec)
  • #1900 Deconz transport connection (@Nerivec)
  • #1898 Tuya: mcuOtaBlockDataRequest size is 1 byte (@andi-at-1)

Windfront

  • #675 fix: race condition with websocket populating store (@Nerivec)
  • #677 fix: prevent fractional groups IDs (@andrei-lazarov)
  • #679 fix: improve reconnection notifications (@andrei-lazarov)
  • #680 fix: remove 'analog_in_' and 'analog_out_' prefixes for icons (@luar123)

Frontend

New supported devices

This release adds support for 13 devices:

  • #13433 929003853601 Philips Hue white and color ambiance A67 1600lm E27 (@seraphblade2010)
  • #13435 929004320901 Philips Hue Play Table lamp (@JFS-HA)
  • #13428 FH9127 Futurehome In-wall dimmer (@Bekkenes)
  • #13429 MIR-SR100 MultIR Zigbee SR100 siren (@LotusRou)
  • #13348 AirWick_nRF52840 Custom devices (DiY) AirWick smart aerosol dispenser (@OstrokolovNikita)
  • #13369 MG-AU01ZLMV01-XX MakeGood 1 gang light switch, energy monitoring and RGB backlights (@slim008)
  • #13365 NimlyCodePRO Onesti Products AS Zigbee module for Nimly Code PRO (@eirikman)
  • #13376 SR-ZG9001K8-CCT Sunricher CCT wireless wall switch with 2 scene buttons (@bgschuetze)
  • #13367 TRV602WZ Topband Smart Thermostat (@Bastel-Bodo)
  • #13356 OXT-4CH-RELAY-AC Tuya 4 channel relay module (@piotrf-hub)
  • #13356 OXT-4CH-RELAY-DC Tuya 4 channel relay module DC (@piotrf-hub)
  • #13344 TS0505B_hs Tuya Smart LED bulb (RGBCW) (@Kivi-Berlin)
  • #13344 TS0503B_hs Tuya RGB COB LED Strip (@Kivi-Berlin)

Fixed device detections

  • #13427 Detect _TZE2841000000_nt4pquef as Tuya SGS02Z (@LuisFigueroaG)
  • #13424 Detect Mill Wi-Fi Panel Heater Gen4 as Mill Mill-gen-4 (@benjaminkjh)
  • #13414 Detect SLZB-07MG26 as SMLIGHT SLZB-07MG26 (@Nerivec)
  • #13401 Detect _TZ3000_hopb2kjm as Nous B3Z (@andrei-lazarov)
  • #13411 Detect _TZE200_3ymoslep, _TZE204_3ymoslep, _TZE284_3ymoslep, _TZE2841000000_3ymoslep as Nous H1Z (@andrei-lazarov)
  • #13407 Detect _TZE204_zpvusbtv as Tuya ZN2S-RS02E (@andrei-lazarov)
  • #32940 Detect _TZE28C1000000_gt5al3bl as Gledopto GL-SPI-206P (@Koenkk)
  • #33259 Detect ADUROLIGHT as Trust ZCTS-808 (@Koenkk)
  • #13370 Detect PIIC51104 as Paulmann 291.50 (@open-sourced)
  • #13412 Detect ZTM2-EN as IMOU ZTM1-EN (@dan-danache)
  • #13342 Detect _TZE204_rfpyqax9 as Tervix Pro Line X10 (@Koenkk)
  • #33260 Detect _TZE284_goecjd1t as AVATTO ZWPM16 (@Koenkk)
  • #32725#issuecomment-5921955508 Detect _TZE284_adlblwab as Tuya TS0601_switch_8_2 (@Koenkk)
  • #33239#issuecomment-5933963506 Detect _TZE284_xc7dve2g as Tuya TS0601_dimmer_1_gang_1 (@Koenkk)

Changelog generator error

  • #33244 Bump ip-address from 10.7.0 to 10.7.2 (@dependabot[bot])
  • add: TS0003_QS-Zigbee-S10-3C (#13394) (789ab4d) (model 'TS0003_QS-Zigbee-S10-3C' does not exist)
  • NO_ISSUE Unified transport (@null)
@MattiaMarchiorato

Copy link
Copy Markdown

Hi purchased this Zigbee Room Thermostat recently and unfortunately it's not currently supported https://www.aliexpress.com/item/1005007126805419.html?spm=a2g0o.order_list.order_list_main.28.6b2c18024rzB2W Zigbee Model: TS0601 Zigbee Manufacturer: _TZE284_zjhoqbrd Hope it can be added and I'm struggling to sort out a work around Regards Graham

i have the same problem

@xion2000

Copy link
Copy Markdown

Hi purchased this Zigbee Room Thermostat recently and unfortunately it's not currently supported https://www.aliexpress.com/item/1005007126805419.html?spm=a2g0o.order_list.order_list_main.28.6b2c18024rzB2W Zigbee Model: TS0601 Zigbee Manufacturer: _TZE284_zjhoqbrd Hope it can be added and I'm struggling to sort out a work around Regards Graham

i have the same problem

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'),

    e.binary('dp105', ea.STATE_SET, 'ON', 'OFF')
        .withDescription('dp105 is not listed in Tuya, but device sends datapoint, binary: true/false'),

    e.binary('dp111', ea.STATE_SET, 'ON', 'OFF')
        .withDescription('dp111 is not listed in Tuya, but device sends datapoint, binary: true/false'),
    */
],
meta: {
    tuyaDatapoints: [
        [1, "system_mode", tuya.valueConverterBasic.lookup({heat: true, off: false})],
        [2, "current_heating_setpoint", tuya.valueConverter.divideBy10],
        [3, "local_temperature", tuya.valueConverter.divideBy10],
        [
            4,
            "preset",
            tuya.valueConverterBasic.lookup((_, device) => {
                // https://github.com/Koenkk/zigbee2mqtt/issues/21353#issuecomment-1938328429
                // https://github.com/Koenkk/zigbee2mqtt/issues/28035
                if (device.manufacturerName === "_TZE204_lzriup1j" || device.manufacturerName === "_TZE204_gops3slb") {
                    return {
                        auto: tuya.enum(1),
                        manual: tuya.enum(0),
                        temporary_manual: tuya.enum(2),
                    };
                }
                return {
                    auto: tuya.enum(0),
                    manual: tuya.enum(1),
                    temporary_manual: tuya.enum(2),
                };
            }),
        ],
        [9, "child_lock", tuya.valueConverter.lockUnlock],
        [11, "faultalarm", tuya.valueConverter.raw],
        [15, "max_temperature_limit", tuya.valueConverter.divideBy10],
        [19, "local_temperature_calibration", tuya.valueConverter.localTempCalibration3],
        [
            101,
            "running_state",
            tuya.valueConverterBasic.lookup({
                heat: tuya.enum(1),
                idle: tuya.enum(0),
            }),
        ],
        [102, "frost_protection", tuya.valueConverter.onOff],
        [103, "factory_reset", tuya.valueConverter.onOff],
        [
            104,
            "working_day",
            tuya.valueConverterBasic.lookup((_, device) => {
                // https://github.com/Koenkk/zigbee2mqtt/issues/23979
                if (device.manufacturerName === "_TZE200_viy9ihs7") {
                    return {
                        disabled: tuya.enum(0),
                        "6-1": tuya.enum(1),
                        "5-2": tuya.enum(2),
                        "7": tuya.enum(3),
                    };
                }
                return {
                    disabled: tuya.enum(0),
                    "6-1": tuya.enum(2),
                    "5-2": tuya.enum(1),
                    "7": tuya.enum(3),
                };
            }),
        ],
        [
            106,
            "sensor",
            tuya.valueConverterBasic.lookup({
                internal: tuya.enum(0),
                external: tuya.enum(1),
                both: tuya.enum(2),
            }),
        ],
        [107, "deadzone_temperature", tuya.valueConverter.divideBy10],
        [109, null, tuya.valueConverter.ZWT198_schedule],
        [109, "schedule_weekday", tuya.valueConverter.ZWT198_schedule],
        [109, "schedule_holiday", tuya.valueConverter.ZWT198_schedule],
        [110, "backlight_mode", tuya.valueConverter.backlightModeOffLowMediumHigh],
        // ============== found but not functional datapoints:

        // [16, 'min_temperature_limit', tuya.valueConverter.divideBy10],  // datapoint listed in Tuya, but no communication from device
        // [105, 'dp105', tuya.valueConverter.onOff],                      // not listed in Tuya, but device sends datapoint
        // [111, 'dp111', tuya.valueConverter.onOff],                      // not listed in Tuya, but device sends datapoint

        // These are the schedule values in bytes, 8 periods in total (4 bytes per period).
        // For each period:
        // 1st byte: hour
        // 2nd byte: minute
        // 3rd, 4th bytes: temperature multiplied by 10
        // On the device last 2 periods are ignored if schedule_mode is 7day. When schedule_mode is disabled,
        // scheduling can't be configured at all on the device.
        // For example, if schedule_mode is weekday/sat+sun and this byte array is received:
        // [6,10,1,144,8,10,0,170,11,40,0,170,12,40,0,170,17,10,0,230,22,10,0,170,8,5,0,200,23,0,0,160]
        // Then the schedule is:
        // Mon-Fri: 6:10 --> 40C, 8:10 --> 17C, 11:40 --> 17C, 12:40 --> 17C, 17:10 --> 23C, 22:10 --> 17C
        // Sat-Sun: 8:05 --> 20C, 23:00 --> 16C
    ],
},

};

module.exports = definition;

@MattiaMarchiorato

Copy link
Copy Markdown

@xion2000 many thanks, is working!

@rytecbe

rytecbe commented Sep 26, 2025

Copy link
Copy Markdown

@xion2000 thank you very much to made this and info where to place this in the system. It worked for me too. The only thing which is not showing is the battery, I don't have it connected with an USB-C cable but working with 3x AAA batteries.
Is there a possibility to have this info working in your file?

@douternitou

douternitou commented Oct 7, 2025 •

Copy link
Copy Markdown

Hi,

I just purchased the EcoDim DIM.06 dimmer but found that is not supported yet.
Would it be possible to add this one?
Thanks in advance.

https://www.123led.nl/EcoDim-Zigbee-stekkerdimmer-0-100W-Fase-afsnijding-RC-EcoDim-DIM-06-i7926-t4329.html

image image

{
"description": "Automatically generated definition",
"exposes": [
{
"features": [
{
"access": 7,
"description": "On/off state of this light",
"label": "State",
"name": "state",
"property": "state",
"type": "binary",
"value_off": "OFF",
"value_on": "ON",
"value_toggle": "TOGGLE"
},
{
"access": 7,
"description": "Brightness of this light",
"label": "Brightness",
"name": "brightness",
"property": "brightness",
"type": "numeric",
"value_max": 254,
"value_min": 0
}
],
"type": "light"
},
{
"access": 2,
"description": "Triggers an effect on the light (e.g. make light blink for a few seconds)",
"label": "Effect",
"name": "effect",
"property": "effect",
"type": "enum",
"values": [
"blink",
"breathe",
"okay",
"channel_change",
"finish_effect",
"stop_effect"
]
},
{
"access": 7,
"category": "config",
"description": "Controls the behavior when the device is powered on after power loss",
"label": "Power-on behavior",
"name": "power_on_behavior",
"property": "power_on_behavior",
"type": "enum",
"values": [
"off",
"on",
"toggle",
"previous"
]
},
{
"access": 1,
"category": "diagnostic",
"description": "Link quality (signal strength)",
"label": "Linkquality",
"name": "linkquality",
"property": "linkquality",
"type": "numeric",
"unit": "lqi",
"value_max": 255,
"value_min": 0
}
],
"model": "eco-dim06-zigbee",
"options": [
{
"access": 2,
"description": "Controls the transition time (in seconds) of on/off, brightness, color temperature (if applicable) and color (if applicable) changes. Defaults to 0 (no transition).",
"label": "Transition",
"name": "transition",
"property": "transition",
"type": "numeric",
"value_min": 0
},
{
"access": 2,
"description": "State actions will also be published as 'action' when true (default false).",
"label": "State action",
"name": "state_action",
"property": "state_action",
"type": "binary",
"value_off": false,
"value_on": true
}
],
"source": "generated",
"supports_ota": false,
"vendor": "EcoDim BV"
}

@xion2000

Copy link
Copy Markdown

@xion2000 thank you very much to made this and info where to place this in the system. It worked for me too. The only thing which is not showing is the battery, I don't have it connected with an USB-C cable but working with 3x AAA batteries. Is there a possibility to have this info working in your file?

I have mine working of batteries only also and have the same problem with batteries NOT showing in Zigbee2MQTT unfortunately

@mattia9508

Copy link
Copy Markdown

Buonasera a tutti, chiedo gentilmente se è possibile aggiungere il seguente dispositivo:

image

https://italian.alibaba.com/product-detail/subject-1600753083531.html?from=share&ckvia=share_80DFED87F71A45E98E35F2B59887F5D0&needReward=true

export default {
zigbeeModel: ['TS0601'],
model: 'TS0601',
vendor: '_TZE204_o9d1hdma',
description: 'Automatically generated definition',
extend: [],
meta: {},
};

il dispositivo in questione è praticamente identico ad un dispositivo presente nella lista dispositivi supportati, ne ho 6 in casa mi piacerebbe tantissimo vederli funzionare
https://www.zigbee2mqtt.io/devices/AE-669K.html

Grazie per il vostro prezioso aiuto

Mattia

@MattiaMarchiorato

Copy link
Copy Markdown

@mattia9508 ciao,

puoi usare un external converter

guarda qui

@mattia9508

mattia9508 commented Oct 13, 2025 via email

Copy link
Copy Markdown

@Norbertcb

Copy link
Copy Markdown

Bonjour
Pouvez vous ajouter cet appareil SMT10020 de schneider svp, c'est un capteur d'echauffement des cables

@lalik77

lalik77 commented Oct 23, 2025

Copy link
Copy Markdown

Hi can you add motion and light sensor.
This is the generated external converter :

const {identify, iasZoneAlarm, battery, illuminance} = require('zigbee-herdsman-converters/lib/modernExtend');


const definition = {
    zigbeeModel: ['TS0601'],
    model: 'TS0601',
    vendor: '_TZE200_na5qlzow',
    description: 'Automatically generated definition',
    extend: [identify(), iasZoneAlarm({"zoneType":"generic","zoneAttributes":["alarm_1","alarm_2","tamper","battery_low"]}), battery(), illuminance()],
    meta: {},
};

module.exports = definition;
2025-10-20_19-06-18 2025-10-20_19-24-36

@raduten

raduten commented Oct 26, 2025 •

Copy link
Copy Markdown

Another tuya temp/humidity with clock device

export default {
zigbeeModel: ['TS0601'],
model: 'TS0601',
vendor: '_TZE284_cwyqwqbf',
description: 'Automatically generated definition',
extend: [],
};
image

@jeanlouisbiset

Copy link
Copy Markdown

Hello can you add the necessary definition for an AVATTO ZDMS16-2
It is a Zigbee Module 2 channels Dimmer.
This is the generated external converter :

{
"last_seen": "2025-11-04T18:34:39.089Z",
"linkquality": 160,
"device": {
"applicationVersion": 78,
"dateCode": "",
"friendlyName": "0xa4c1385b98ce2ed7",
"hardwareVersion": 1,
"ieeeAddr": "0xa4c1385b98ce2ed7",
"manufacturerID": 4417,
"manufacturerName": "_TZE284_jtbgusdc",
"networkAddress": 12724,
"powerSource": "Mains (single phase)",
"stackVersion": 0,
"type": "Router",
"zclVersion": 3
}
}

const definition = {
zigbeeModel: ['TS0601'],
model: 'TS0601',
vendor: '_TZE284_jtbgusdc',
description: 'Automatically generated definition',
extend: [],
meta: {},
};

module.exports = definition;

Thanks for your efforts.
Kind regards.

@bernardesarthur

Copy link
Copy Markdown

Hello can you add the necessary definition for an AVATTO ZDMS16-2 It is a Zigbee Module 2 channels Dimmer. This is the generated external converter :

{ "last_seen": "2025-11-04T18:34:39.089Z", "linkquality": 160, "device": { "applicationVersion": 78, "dateCode": "", "friendlyName": "0xa4c1385b98ce2ed7", "hardwareVersion": 1, "ieeeAddr": "0xa4c1385b98ce2ed7", "manufacturerID": 4417, "manufacturerName": "_TZE284_jtbgusdc", "networkAddress": 12724, "powerSource": "Mains (single phase)", "stackVersion": 0, "type": "Router", "zclVersion": 3 } }

const definition = { zigbeeModel: ['TS0601'], model: 'TS0601', vendor: '_TZE284_jtbgusdc', description: 'Automatically generated definition', extend: [], meta: {}, };

module.exports = definition;

Thanks for your efforts. Kind regards.

That manufacturerID is already supported. Are you using the last version of Zigbee2MQTT?

@jeanlouisbiset

Copy link
Copy Markdown

Reading your answer I went back to my Jeedom and saw that my Zigbee2MQTT version was 1.42.0.
I upgraded to 2.6.3 and then miracle, the module is correctly working.
Many thanks for your quick reaction. I will now buy several modules to go further.
Have a nice day!
Zigbee2MQTT WindFront

@Frikk

Frikk commented Nov 23, 2025

Copy link
Copy Markdown

Could anyone more skilled than me in Z2M add the new Namron Zigbee Thermostat?
Article No: 4512776
Name: Namron Zigbee termostat for panelovn PRO hvit
Product page link: https://www.elektroimportoren.no/namron-zigbee-termostat-for-panelovn-pro-hvit/4512776/Product.html

I have a Namron Zigbee panel heater released before the new thermostats + oven line were released. I suspect this new thermostat would act much the same way as the existing Namron 540139X would (https://www.zigbee2mqtt.io/devices/540139X.html)

If i could help in any way, please let me know.

Generated external definition (from Z2M Dev Console)

import * as m from 'zigbee-herdsman-converters/lib/modernExtend';

export default {
    zigbeeModel: ['Panel Heater'],
    model: 'Panel Heater',
    vendor: 'NAMRON AS',
    description: 'Automatically generated definition',
    extend: [m.electricityMeter()],
};
{
    "description": "Automatically generated definition",
    "exposes": [
        {
            "access": 5,
            "description": "Instantaneous measured power",
            "label": "Power",
            "name": "power",
            "property": "power",
            "type": "numeric",
            "unit": "W"
        },
        {
            "access": 5,
            "description": "Measured electrical potential value",
            "label": "Voltage",
            "name": "voltage",
            "property": "voltage",
            "type": "numeric",
            "unit": "V"
        },
        {
            "access": 5,
            "description": "Instantaneous measured electrical current",
            "label": "Current",
            "name": "current",
            "property": "current",
            "type": "numeric",
            "unit": "A"
        },
        {
            "access": 5,
            "description": "Sum of consumed energy",
            "label": "Energy",
            "name": "energy",
            "property": "energy",
            "type": "numeric",
            "unit": "kWh"
        },
        {
            "access": 1,
            "category": "diagnostic",
            "description": "Link quality (signal strength)",
            "label": "Linkquality",
            "name": "linkquality",
            "property": "linkquality",
            "type": "numeric",
            "unit": "lqi",
            "value_max": 255,
            "value_min": 0
        }
    ],
    "model": "Panel Heater",
    "options": [
        {
            "access": 2,
            "description": "Calibrates the power value (percentual offset), takes into effect on next report of device.",
            "label": "Power calibration",
            "name": "power_calibration",
            "property": "power_calibration",
            "type": "numeric",
            "value_step": 0.1
        },
        {
            "access": 2,
            "description": "Number of digits after decimal point for power, takes into effect on next report of device. This option can only decrease the precision, not increase it.",
            "label": "Power precision",
            "name": "power_precision",
            "property": "power_precision",
            "type": "numeric",
            "value_max": 3,
            "value_min": 0
        },
        {
            "access": 2,
            "description": "Calibrates the voltage value (percentual offset), takes into effect on next report of device.",
            "label": "Voltage calibration",
            "name": "voltage_calibration",
            "property": "voltage_calibration",
            "type": "numeric",
            "value_step": 0.1
        },
        {
            "access": 2,
            "description": "Number of digits after decimal point for voltage, takes into effect on next report of device. This option can only decrease the precision, not increase it.",
            "label": "Voltage precision",
            "name": "voltage_precision",
            "property": "voltage_precision",
            "type": "numeric",
            "value_max": 3,
            "value_min": 0
        },
        {
            "access": 2,
            "description": "Calibrates the current value (percentual offset), takes into effect on next report of device.",
            "label": "Current calibration",
            "name": "current_calibration",
            "property": "current_calibration",
            "type": "numeric",
            "value_step": 0.1
        },
        {
            "access": 2,
            "description": "Number of digits after decimal point for current, takes into effect on next report of device. This option can only decrease the precision, not increase it.",
            "label": "Current precision",
            "name": "current_precision",
            "property": "current_precision",
            "type": "numeric",
            "value_max": 3,
            "value_min": 0
        },
        {
            "access": 2,
            "description": "Calibrates the energy value (percentual offset), takes into effect on next report of device.",
            "label": "Energy calibration",
            "name": "energy_calibration",
            "property": "energy_calibration",
            "type": "numeric",
            "value_step": 0.1
        },
        {
            "access": 2,
            "description": "Number of digits after decimal point for energy, takes into effect on next report of device. This option can only decrease the precision, not increase it.",
            "label": "Energy precision",
            "name": "energy_precision",
            "property": "energy_precision",
            "type": "numeric",
            "value_max": 3,
            "value_min": 0
        }
    ],
    "source": "generated",
    "supports_ota": false,
    "vendor": "NAMRON AS"
}

@OM17-haos

Copy link
Copy Markdown

Any progress, this i working with ZHA??

@richardsg307

Copy link
Copy Markdown

First time I've bought something and it's not been 'Supported'. Is this something I can do myself as a complete numpty? I'll have a look at the Instructions! It's connected as a TS0601, but it looks like every unsupported thing does!

Bi-Directional Power Meter and DIN Circuit Breaker from Ali Express

DINPowerMeter

@m-shafiq

m-shafiq commented Feb 4, 2026 via email

Copy link
Copy Markdown

@richardsg307

Copy link
Copy Markdown

I have 4 of those already and they have been working flawlessly for a couple of years now. But I wanted a bi-directional one.

I'm making progress with a bit of searching and a lot of AI. Got it working for Power, voltage, energy etc but trying to get more of the features like setting trip current. It's slow going as have no idea what i'm doing! Nor the language in the External Definition. I get the feeling AI is guessing most of the time.

@m-shafiq

m-shafiq commented Feb 5, 2026 via email

Copy link
Copy Markdown

@mmarts

mmarts commented Mar 22, 2026

Copy link
Copy Markdown

can you add:

https://www.aliexpress.us/item/3256807805376890.html?spm=a2g0o.order_list.order_list_main.312.30631802RTpkGs&gatewayAdapt=glo2usa4itemAdapt

{
"description": "Automatically generated definition",
"exposes": [
{
"access": 1,
"category": "diagnostic",
"description": "Link quality (signal strength)",
"label": "Linkquality",
"name": "linkquality",
"property": "linkquality",
"type": "numeric",
"unit": "lqi",
"value_max": 255,
"value_min": 0
}
],
"model": "TS0601",
"options": [],
"source": "generated",
"supports_ota": false,
"vendor": "_TZE284_ue6veoat"
}

{"id":107,"type":"Router","ieeeAddr":"0xa4c138e80518b7c7","nwkAddr":14388,"manufId":4417,"manufName":"_TZE284_ue6veoat","powerSource":"Mains (single phase)","modelId":"TS0601","epList":[1,242],"endpoints":{"1":{"profId":260,"epId":1,"devId":81,"inClusterList":[4,5,61184,0,60672],"outClusterList":[25,10],"clusters":{"genBasic":{"attributes":{"65503":"\u0007\u0000\u0000\u0000f\b\u0000\u0000\u0000f\b\u0000\u0000\u0000f\b\u0000\u0000\u0000f\b\u0000\u0000\u0000f\b\u0000\u0000\u0000f\b\u0000\u0000\u0000f\b\u0000\u0000\u0000f","65506":56,"65508":0,"modelId":"TS0601","manufacturerName":"_TZE284_ue6veoat","powerSource":1,"zclVersion":3,"appVersion":68,"stackVersion":0,"hwVersion":1,"dateCode":""}}},"binds":[],"configuredReportings":[],"meta":{}},"242":{"profId":41440,"epId":242,"devId":97,"inClusterList":[],"outClusterList":[33],"clusters":{},"binds":[],"configuredReportings":[],"meta":{}}},"appVersion":68,"stackVersion":0,"hwVersion":1,"dateCode":"","zclVersion":3,"interviewCompleted":true,"interviewState":"SUCCESSFUL","meta":{},"lastSeen":1774199206384}

thanks

@m-shafiq

m-shafiq commented Mar 24, 2026 via email

Copy link
Copy Markdown

@THFNya

THFNya commented May 17, 2026

Copy link
Copy Markdown

Add motor support for curtains: https://www.aliexpress.com/item/1005010579905083.html
It is not supported, such a definition is created automatically:

export default {
zigbeeModel: ['TS0601'],
model: 'TS0601',
vendor: '_TZE204_ztsvgtxf',
description: 'Automatically generated definition',
extend: [],
};

I don't know what to do...

@m-shafiq

m-shafiq commented May 18, 2026 via email

Copy link
Copy Markdown

@m-shafiq

m-shafiq commented May 30, 2026 via email

Copy link
Copy Markdown

@Gfred70

Gfred70 commented Jun 1, 2026

Copy link
Copy Markdown

@b0d0rg4

b0d0rg4 commented Jul 4, 2026

Copy link
Copy Markdown

Hi,

a need support for this device:

INNR - Ceiing Light (RCL 242 C)
link: https://innr.com/products/innr-round-ceiling-light-42cm-white-colour

Thank you

@m-shafiq

m-shafiq commented Jul 6, 2026 via email

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment