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

@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