Skip to content

Instantly share code, notes, and snippets.

@Koenkk
Last active January 8, 2026 20:09
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

  • #11188 Tuya TS0601_dimmer_3: expose backlight brightness and color (@kalitek999)
  • #11162 Bosch BTH-RM*: enable auto mode via operating_mode for Home Assistant (@burmistrzak)
  • #11176 TCL P2-WT: expose battery (@ryangu)
  • #11182 Yandex: support ota (@kirovilya)

Fixes

  • #30439 Home Assisant: set state class to measurement for illuminane_raw (@Koenkk)
  • #11240 Home Assistant: mark load_estimate as state_class measurement (@Koenkk)
  • #30436 Log error before renaming failed to load converters (@rhysfred)
  • #11242 EFEKTA: various fixes (@smartboxchannel)
  • #11230 KEA TRETAKT and INSPELNING: expose child lock and led control for all versions (@andrei-lazarov)
  • #11236 Revert "fix: Sinope TH1123ZB-G2 and TH1124ZB-G2: swap sensing and off values for backlight dimming modes" (@lemoinem)
  • #11206 Sonoff TRVZB: allow updating multiple schedule days with batch processing (@abaddon)
  • #13973 Tuya _TZ3000_yupc0pb7: fix humidity multiplied by 10 (@Koenkk)
  • #11232 Tuya TS0001_switch_module: restore memory and backlight (@andrei-lazarov)
  • #11216 AwoX 33951/33948: narrow detection (@Koenkk)
  • #11223 BITUO TECHNIK: add clear energy function (@script0803)
  • #11204 Bosch Twinguard 8750001213: rework air quality feature (@burmistrzak)
  • #11218 Niko: fix datatype of switchAction attribute (@vdkeybus)
  • #11212 Tuya ZG-2002-RF: fix integration (@andrei-lazarov)
  • #11205 Beok BOT-R9V-ZB: remove preset to climate expose (@hvdort)
  • #30411 Nous E13: fix water leak state (@Koenkk)
  • #11209 Revert "Add full support for Tuya BAC-002-ALZB (schedule_text, improved off behavior, calibration -9/+9)" (@Koenkk)
  • #11200 Add E2206 as a whitelabel of IKEA E22xx (@phiphi060)
  • #11195 Endpoint configuration limitation for some modernextend's (@kirovilya)
  • #11190 J.XUAN WSZ01: fix no action (@ryangu)
  • #30439 Tuya RB-SRAIN01: add illuminance_raw unit (@Koenkk)
  • #11171 Add IKEA E2223 as a whitelabel of IKEA E2206 (@onurece)
  • #11181 Paulmann 948.47/29165: fix color temperature (@chris-1243)
  • #11090 Third Reality 3RSM0147Z: remove broken humidity expose (@kbuck1)
  • #30424 Third Reality 3RSMR01067Z: fix configure failing (@Koenkk)
  • #11180 Tuya M8Pro: fix time (@l1berat0r)
  • #11167 Tuya TS0601_smart_scene_knob: adjust brightness and color_temp value ranges (@Bjk8kds)
  • #11177 Ubisys J1: fix attribute writing (@andrewandneil)
  • #1601 Allow literal (RFC2732) IPv6 addresses in TCP URI (@spike77453)
  • #1609 Fix transitionTime not always present in genScenes recall (@Nerivec)

Windfront

Frontend

New supported devices

This release adds support for 42 devices:

  • #11234 M9-zigbee-SL-2 Tuya Smart switch (4 gang + 4 scene) with neutral wire and motion sensing (@andrei-lazarov)
  • #11229 SR-ZG9101SAC-HP2 Sunricher Zigbee 2 channel AC phase-cut dimmer (@dipe)
  • #11214 V04-Z20T Lincukoo Vibration alarm sensor (@joliam)
  • #11214 GEZ65 Lincukoo Zigbee Repeater (@joliam)
  • #11214 R12LM-Z10T Lincukoo Human motion & presence sensor (@joliam)
  • #11214 E02C-Z10T Lincukoo Smart air quality monitor (CO2) (@joliam)
  • #11214 EZC04 Lincukoo Smart air quality monitor (CO2) (@joliam)
  • #11214 EZCP04 Lincukoo Smart air quality monitor (CO2+PM2.5) (@joliam)
  • #11214 E04CF-Z10T Lincukoo Smart gas and CO sensor (@joliam)
  • #11214 A08-Z10T Lincukoo Smart sound and flash siren (@joliam)
  • #11106 AC221 OWON AC controller / IR blaster (@jacky202509)
  • #11070 BN-600085 Dresden Elektronik 3 part zigbee powered scene switch (@fst-dresden-elektronik)
  • #11071 BN-600087 Dresden Elektronik 2 part zigbee powered light switch (@fst-dresden-elektronik)
  • #11224 ECO-DIM.13 EcoDim Dimmer (@Albatros2409)
  • #11072 Kobold Dresden Elektronik Zigbee 3.0 dimm actuator (@fst-dresden-elektronik)
  • #11225 MIR-MC100-E MultIR Door sensor (@zhiweiyuan-crypto)
  • #11174 TS0601_smart_temperature_switch Tuya Smart temperature switch with manual and automatic modes: heating & cooling (@bnowak)
  • #11201 929003048201 Philips Hue white ambiance Buckram quadruple spotlight with Bluetooth (White) (@chris-1243)
  • #11210 ME202WZ Tuya Water level sensor (@DeltaEvo)
  • #11213 TS0601_airbox Tuya zigbee air quality sensor (@tiankakeji-cloud)
  • #10922 G91E-ZH Lincukoo Zigbee Router (@joliam)
  • #10922 G94E Lincukoo Zigbee Router (@joliam)
  • #10922 W04-Z10T Lincukoo Smart water leakage alarm sensor (@joliam)
  • #10922 W10-Z10T Lincukoo Smart water leakage alarm sensor (@joliam)
  • #10922 V04-Z10T Lincukoo Smart vibration alarm sensor (@joliam)
  • #10922 V06-Z10T Lincukoo Mini vibration sensor (@joliam)
  • #11189 3RAP0149BZ Third Reality Smart air pressure sensor (@3reality-support)
  • #11191 3RPL01084Z Third Reality Multi-function smart presence sensor R3 (@3reality-support)
  • #11186 50394 Paulmann LED Filament Bulb tuneable white (@raveit65)
  • #11199 929003115901 Philips Hue Perifo cylinder pendant (Black) (@chris-1243)
  • #11198 929004611501 Philips Hue white ambiance bathroom ceiling light Adore with Bluetooth (@AntiQliMax-stack)
  • #11185 EFEKTA_eAir_Monitor EFEKTA Smart digital carbon dioxide detector with e-ink display. (@smartboxchannel)
  • #11192 GA01 Meian Gas sensor (@fenio)
  • #11168 BOT-R9V-ZB Beok Wall-mount thermostat (@hvdort)
  • #11149 zFlora_X_Max EFEKTA Plant watering sensor zFlora X Max with signal amplifier (@smartboxchannel)
  • #11149 MODKAM_Flower EFEKTA Soil moisture sensor MODKAM_Flower, mod DIYRuZ Flower (@smartboxchannel)
  • #11149 EFEKTA_ePST_POW_V2 EFEKTA Smart water/gas pressure monitor with e-ink display. (@smartboxchannel)
  • #11149 Netuya_CO2_Smart_Box Efektalab CO2 Smart Monitor, rgb indicator, alarm, can control the relay (@smartboxchannel)
  • #11149 EFEKTA_PS_POW_PRO EFEKTA Gas, water smart pressure monitor, high-precision and high-stability. (@smartboxchannel)
  • #11149 EFEKTA_T1_POW_NTC10K EFEKTA Temperature smart monitor with NTC sensor (@smartboxchannel)
  • #11149 EFEKTA_T1_NTC10K EFEKTA Temperature smart monitor with NTC sensor (@smartboxchannel)
  • #11149 EFEKTA_DigiBaro EFEKTA Smart digital barometer with e-ink display. (@smartboxchannel)

Fixed device detections

  • #11231 Detect _TZ3000_iv4eq7eh as AVATTO ZWSM16-3-Zigbee (@andrei-lazarov)
  • #11241 Detect _TZ3000_sgpbz53b as TS0207_repeater (@andrei-lazarov)
  • #11237 Detect _TZE204_bvfld3xc as Tuya MIR-HE200-TY (@suspended)
  • #11235 Detect LTC009 as Philips 6109231C5 (@Ih0rd)
  • #11227 Detect SMOK_YDLV10N as Heiman HS1SA (@MaticKonecnik)
  • #11222 Detect _TZB210_uoiqhjqe as MiBoxer FUT105ZR (@Bjk8kds)
  • #11211 Detect _TZ3000_3n2minvf as AVATTO ZWSM16-4-Zigbee (@andrei-lazarov)
  • #11217 Detect _TZE200_dcnsggvz as Tuya TS0601_dimmer_5 (@curtash)
  • #11207 Detect _TZ3000_gdsvhfao as Tuya TS0207_repeater (@Manichee)
  • #11202 Detect SmokeSensor-EF-3.0 as Heiman HS1SA-E (@chris-1243)
  • #30490 Detect _TZE284_q22avxbv as Tongou TOQCB2-80 (@Koenkk)
  • #10612 Detect _TZE284_waa352qv as Tuya TS0601_cover_5 (@Koenkk)
  • #11172 Detect _TZ3000_8utxxtzr as Tuya TS0215A_remote (@LucasTor)
  • #11179 Detect _TZ3210_dkul5xix as Moes ZB-TDA14-RCW-E27-MS (@Bjk8kds)
  • #11183 Detect _TZE200_hvaxb2tc as Tuya TS0601_thermostat_5 (@Offebaescher)
  • #30438 Detect _TZE200_hyhl5y36 as Merrytek MSA201Z (@Koenkk)
  • #30427 Detect _TZE284_9yapgbuv as Tuya TS0601_temperature_humidity_sensor_2 (@Koenkk)

Changelog generator error

@MattiaMarchiorato
Copy link

@xion2000 many thanks, is working!

@rytecbe
Copy link

rytecbe commented Sep 26, 2025

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

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

@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

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

@mattia9508 ciao,

puoi usare un external converter

guarda qui

@mattia9508
Copy link

mattia9508 commented Oct 13, 2025 via email

@Norbertcb
Copy link

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

@lalik77
Copy link

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

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

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

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

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

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"
}

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