Skip to content

Instantly share code, notes, and snippets.

@Koenkk
Last active July 18, 2026 18:50
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

  • #12659 Shelly WS90: expose solar capacitor voltage (@sschwieb)
  • #12690 EWeLink CK-BL702-MSW-01(7010) / Mumubiz CZV20: expose countdown auto-off timer (@juslex)
  • #12670 Shelly WS90: expose battery voltage (@andrei-lazarov)
  • #12687 SONOFF SWV Gen 2: add unified imperial gallon support (@CubeZ2mDeveloper)
  • #12691 Tuya TS0002_power: expose per-endpoint countdown auto-off timer (@juslex)
  • #12662 Aqara SSWQD22LM: support more features (@blakegong)
  • #12665 Philips 929004308301: support color (@mrtncode)
  • #12654 Wiren Board WB-MSW-ZIGBEE_v.4_official: expose IR transceiver controls (@u236)
  • #12634 Zozung/Tuya based IR blasters: add support for Home Assistant infrared timings (@jbouwh)

Fixes

  • #32535 experimental_event_entities and legacy_action_sensor require restart (@andrei-lazarov)
  • #32544 Home Assistant: fix action published to wrong topic (@luar123)
  • #32486 Refresh exposes after manual device configure (@MaxRink)
  • #32579 Replace rimraf with native fs.rmSync (@cany748)
  • #32508 Support Node 26, remove Node 20 support (@Koenkk)
  • #12708 Allow schema and type override for Home Assistant infrared discovery type (@jbouwh)
  • #12715 BTicino F20T60A and FC80GCS: remove unused converters (@andrei-lazarov)
  • #12704 Aqara DS-K02D/DS-K02E: fix ghost events (@glueckstein)
  • #12699 Aqara T3: improve definition (@blakegong)
  • #12701 EGLO 900878: add whitelabel of 900024/12253 (@krobipd)
  • #12648 HEIMAN M1-PE : optimize reporting config (@Leo2442926161)
  • #12676 Aqara ZNCLBL01LM: normalize terminal drift (@martinfrancois)
  • #12675 Change action_transition_time unit to seconds (@andrei-lazarov)
  • #12686 Innr RB 279 T: fix color temperature range (@Burki24)
  • #12685 Leviton DG3HL: expose and preserve dimmer configuration (@PaulMcMillan)
  • #12668 Paul Neuhaus lights: fix color and temperature control (@andrei-lazarov)
  • #12689 Tuya: TS1201: fix discovery and add expose zosung learned timings (@jbouwh)
  • #12650 Moes ZC-LS02: battery polling + stop mcuVersion flood (@Rhaiderr)
  • #12656 SONOFF MINIZB1GS: update inchingControlSet timeout (@CubeZ2mDeveloper)
  • #12647 SONOFF: restore composite exposes for irrigation settings (@CubeZ2mDeveloper)
  • #12651 Tuya RB-SRAIN01: invert cleaning_reminder (@andrei-lazarov)
  • #12644 HEIMAN HS1SA-E Plus: fix smoke level (@Leo2442926161)
  • #12646 Tuya: fix negative numbers in datapoints (@andrei-lazarov)
  • #12624 Aqara PS-S04D: fix battery never reporting (@hajarada)
  • #12626 Definition generator: fix occupancy sensor on multi endpoint device (@luar123)
  • #12628 ENGO E40: expose battery information of TRV and firmware info TRV (@henkiejan1)
  • #12629 Tuya ZN2S-RS02E: fix endpoints (@hesham1216)
  • #12605 Develco ZHEMI101: fix incorrect power report (@derabbink)
  • #12616 Moes BHT-002: fix max current_heating_setpoint (@emolenev)
  • #12622 Moes ZC-LS02: fix motor_direction (@Rhaiderr)
  • #32460 Müller Licht 404021: fix detection (@Koenkk)
  • #12612 Namron Simplify: refactor dimmer converter functions (@xses79)
  • #12615 NYCE NCZ-3011-HA: fix IAS enrollment during reconfigure (@derabbink)
  • #12620 Shelly: keep cover tilt controls visible when supported (@MaxRink)
  • #12593 Third Reality 3RVS01031Z: improve definition (@3reality-support)
  • #12619 Tuya cover moesCalibrationTime ENUM8 -> UINT16 (@junaidsurve)
  • #32204 Tuya TS0505B_2: fix color control (@Koenkk)
  • #12603 Tuya TS0726_1_gang and TS0726_2_gang: expose indicator_mode (@chou0706)
  • #12609 Universal Electronics Inc XHS2-UE: fix battery voltage curve (@klinquist)
  • #12597 Soma SmartShades3: remove tilt control (@smenzer)
  • #12600 SONOFF SWV: fix configure when optional attribute is unsupported (@klinquist)
  • #12598 Tuya TS011F_with_threshold: expose child_lock (@olegos37)
  • #12595 Tuya: fix weather crash due to missing await (@Nerivec)
  • #1804 Greenpower: fix attr parsing (@Nerivec)
  • #1809 NYCE NCZ-3011-HA: enable interviewQuirks (@derabbink)

Windfront

  • #612 fix: fix "disable periodic reporting" label (@andrei-lazarov)
  • #610 feat: change "support" display to use definition source (@Nerivec)
  • #614 fix: cleanup i18n (@Nerivec)
  • #615 fix: improve source labeling (@Nerivec)
  • #620 fix: fix rounded corners on some buttons (@andrei-lazarov)
  • #623 feat: Add "Zigbee manufacturer" tooltip (@andrei-lazarov)
  • #580 feat: Improve firmware versions display (@andrei-lazarov)
  • #613 feat: add vendor image lookup (@luar123)
  • #574 fix: use regions in icon_map and fix typo (@andrei-lazarov)
  • #576 fix: add Develco OUI (@burmistrzak)
  • #592 fix: min and max Group ID (@andrei-lazarov)

Frontend

New supported devices

This release adds support for 28 devices:

  • #12712 CCT-I Paulmann Tunable white light controller with integrated motion sensor (tested with Skyla 948.64) (@SeoFood)
  • #12705 TP-WGZBA SONOFF Zigbee thermostat panel (@CubeZ2mDeveloper)
  • #12714 ZSS-QT-LTH-C Moes Smart 3-in-1 brightness, temperature and humidity sensor (@Hotelk52339)
  • #12700 TO-DM-W/B Nova Digital Topazio 1 gang Zigbee dimmer switch (@raphic-nh)
  • #12695 ZNYB01LM Aqara Smart bathroom heater T1 (@Kevin6872)
  • #12693 LPC-V1 Pulsar LLC Leak protection controller (@DmitryMolokanov)
  • #12658 NFZB-2 Nova Digital 2-Gang switch with backlight, countdown and inching (@trzenaro)
  • #12684 SR-2421-Z2D8C Sunricher Zigbee to DALI controller (@niracler)
  • #12678 TO-WK-1W/B Nova Digital Topazio 1 gang switch with socket (@raphic-nh)
  • #12663 SSWQDYH02 Aqara Spotlight V1 (@blakegong)
  • #11734 _TZE284_0kihjsys EyZEE 5-Gang TZExxx Zigbee Touch Switch (@shsurury)
  • #12649 100050060900 Atlantic Group Galapagos electric radiator (@ptondereau)
  • #12637 SMRZB-342 Frient Smart DIN Relay 2 (@OudeKaas69)
  • #12521 AY-601ZL AOYAN 1 gang switch module - without neutral wire (@zyjsmile857)
  • #12521 AY-602ZL AOYAN 2 gang switch module - without neutral wire (@zyjsmile857)
  • #12521 AY-603ZL AOYAN 3 gang switch module - without neutral wire (@zyjsmile857)
  • #12633 Dongle-PP10 SONOFF Dongle Plus CC2674P10 (CC2674P10) with router firmware (@CubeZ2mDeveloper)
  • #12630 ZRS-USC-WH Moes Smart curtain switch (@radinsky)
  • #12520 AY02SZ AOYAN Vibration sensor (@zyjsmile857)
  • #12518 AY205Z AOYAN PIR 24Ghz human presence sensor (@zyjsmile857)
  • #12519 AY208Z AOYAN 24G millimeter wave human presence sensor (@zyjsmile857)
  • #12623 EC1366 Villeroy & Boch My View mirror cabinet (@mkrle)
  • #12613 RCL 242 C Innr Round ceilng light (42cm) - white and colour (@hidrissi-hass)
  • #12604 SE-RZ11 Sercomm Boiler control relay module used in Enel Homix system (@matitalatina)
  • #12618 ZM6LT1 Moes Smart 1-phase energy power meter with CT sensor clamp (@pranjal-joshi)
  • #12517 AY-204ZX AOYAN 24Ghz millimeter wave and T&H sensor (@zyjsmile857)
  • #12602 TOQCB2-80-2P Tongou Smart circuit breaker (2P) (@aavdberg)
  • #12594 ZSN-03P Novato Temperature & humidity sensor (@bilgi-source)

Fixed device detections

  • #12698 Detect _TZ3000_w0qqde0g as Nous A1Z (@andrei-lazarov)
  • #12702 Detect _TZE28C1000000_68utemio as Tuya TS0601_dimmer_1_gang_1 (@andrei-lazarov)
  • #12703 Detect _TZE28C1000000_xvywzhmi as Zemismart ZN-USC1U-HT (@andrei-lazarov)
  • #12696 Detect Shyugj MotionSensor-ZB3.0 as HZC Electric S902M-ZG (@andrei-lazarov)
  • #12692 Detect AY-101Z as Tuya TS0203 and AY301Z as Tuya WHD02 (@zyjsmile857)
  • #12661 Detect AY222Z as TS0207_water_leak_detector and AY201Z as ZG-227ZL (@zyjsmile857)
  • #12664 Detect FB56-COS02HM1.4 as Feibit SCA01ZB (@svhelge)
  • #12660 Detect LGT011 as Philips 046677590161 (@Koenkk)
  • #12645 Detect _TZE204_qtnjuoae as RTX ZVG1 (@molusk)
  • #12636 Detect _TZE28C1000000_hgeqeyuv as ZT24 and _TZE28C1000000_pzm3wab5 as ZX24 (@tiankakeji-cloud)
  • #32496 Detect _TZE2841000000_rccxox8p as Tuya PA-44Z (@Koenkk)
  • #12610 Detect _TZ3210_lqb7lcq9 as Nova Digital SA-WK (@felipemathies)
  • #12621 Detect LIGHTIFY Conv Under Cabinet TW as Sylvania 72569 (@SiliconAvatar)

Changelog generator error

@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