Skip to content

Instantly share code, notes, and snippets.

@Koenkk
Last active May 8, 2026 18:34
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

  • #31826 Allow to disable external JS extensions (@Nerivec)

Fixes

  • #12132 Allow whiteLabels of whiteLabels (@andrei-lazarov)
  • #12147 Danfoss Ally: fix weekly schedule not settable (@storm1ng)
  • #12076 Move Heiman‑specific converters to local and leverage cluster definitions (@svhelge)
  • #12117 Namron thermostat: refactor converters to use typed cluster definitions (@svhelge)
  • #12146 Plugwise 170-01: fix humidity reporting (@michelotten)
  • #12133 Third Reality 3RAP0149BZ: make pressure conditional (@3reality-support)
  • #31905 Tuya TS0505B_2: fix control (@Koenkk)
  • #12142 Tuya TS0601_din_4: expose more features (@GrumpyMeow)
  • #12144 Tuya TS1201: fix detection (@andrei-lazarov)
  • #12150 Tuya: fix DND description (@andrei-lazarov)
  • #1752 MoveToLevel min and max (@andrei-lazarov)
  • #1753 Preserve genBasic attributes when re-read returns undefined (@rohankapoorcom)

Windfront

Frontend

New supported devices

This release adds support for 2 devices:

  • #12139 ZRM01 Novato Smart relay 1 channel (@bilgi-source)
  • #12139 ZRM02 Novato Smart relay 2 channel (@bilgi-source)

Fixed device detections

  • #12148 Detect _TZ3040_o4mkahkc as Tuya ZP01 (@andrei-lazarov)
  • #12143 Detect _TZ3210_cyuyd5az as Tuya TS110E_1gang_1 (@andrei-lazarov)

Changelog generator error

@douternitou
Copy link
Copy Markdown

douternitou commented Oct 7, 2025

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
Copy link
Copy Markdown

mattia9508 commented Oct 13, 2025 via email

@Norbertcb
Copy link
Copy Markdown

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

@lalik77
Copy link
Copy Markdown

lalik77 commented Oct 23, 2025

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
Copy link
Copy Markdown

raduten commented Oct 26, 2025

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
Copy link
Copy Markdown

Frikk commented Nov 23, 2025

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
Copy link
Copy Markdown

m-shafiq commented Feb 4, 2026 via email

@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
Copy link
Copy Markdown

m-shafiq commented Feb 5, 2026 via email

@mmarts
Copy link
Copy Markdown

mmarts commented Mar 22, 2026

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
Copy link
Copy Markdown

m-shafiq commented Mar 24, 2026 via email

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