Skip to content

Instantly share code, notes, and snippets.

@Koenkk
Last active April 22, 2026 19:20
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

  • #31663 Home Assistant: add group entities in discovery config (@hoellen)
  • #11987 Aqara W600: add external temperature support (@nilvanis)
  • #11985 Danfoss Icon2: support OTA (@Maxxis20)
  • #11970 Plugwise 170-01: expose more features (@svhelge)
  • #11969 Add SLZB-06MG26U router variant (@Nerivec)
  • #11948 Mumubiz TYZGTH4CH-D1RF: expose inching switch (@DooMMasteR)
  • #11960 Third Reality 3RPL01084Z: expose color temp (@3reality-support)
  • #11870 Inovelli: add new dumb switch detection parameter (fw 3.07+) (@InovelliUSA)
  • #11938 Third Reality 3RDP01072Z: support red_led_brightness (@3reality-support)
  • #11883 Inovelli: add per-model firmware gating for device attributes (@rohankapoorcom)
  • #11912 Third Reality 3RPL01084Z: expose more features (@3reality-support)
  • #11861 Sinope TH1300ZB: expose floor_temperature and room_temperature (@arsenicks)
  • #11858 Danfoss 014G2461: expose scheduling functionality (@svhelge)
  • #11856 Shelly SBHT-103C: support light level (@benmaximov)
  • #11832 SONOFF SWV: expose more features (@vitalybibikov)

Fixes

  • #31668 Clarify units of pause_on_backoff_gt (@toastedcornflakes)
  • #11993 SONOFF S60ZBTPF and S60ZBTPG: add labels for energy today, yesterday and month (@toastedcornflakes)
  • #11977 Clean up redundant tuyaBase usage caused by moving manuSpecificTuya3 from ZH to ZHC (@svhelge)
  • #11989 Gledopto GL-B-003P: support power on behaviour (@amoledwatchfaces)
  • #11971 Fix percentageAttribute typo (@jeremiahpslewis)
  • #11953 Add typing for power source (@adriweb)
  • #11957 BTIcino K4003C/L4003C/N4003C/NT4003C: fix state not updating (@murarustefaan)
  • #11958 Shelly SBBT-104CUS: fix detection (@andrei-lazarov)
  • #11959 Smarli. S-ZB-COV1-R251: fix endponts (@loocd)
  • #11947 Easyiot ZB-RS485: expose rs485_config (@xsp1989)
  • #31369 AVATTO TRV26: fix running_state not updating (@Koenkk)
  • #11931 Bosch BMCT-SLZ: missing action in decoupled mode (@KostAlex07)
  • #11926 Develco EMIZB-141: fix pulse configuration (@andrei-lazarov)
  • #11918 Müller Licht: add 404026 and 404075 whitelabel (@sebmuc99)
  • #11887 Namron 4512793: fix no action published (@andrei-lazarov)
  • #31587 Danfoss 014G2461: fix various attributes not working (@Koenkk)
  • #11915 Inovelli: fix mmWave target info report (@kbuck1)
  • #11911 Lumi ZNCLBL01LM: fix position incorrect after stop (@martinfrancois)
  • #11916 Move Tuya specific attributes in lightingColorCtrl cluster from ZH to ZHC - implemented in tuyaLight (@svhelge)
  • #11910 CTM: Add custom clusters and attributes to devices (@svhelge)
  • #11904 Develco EMIZB-132: Simplify and hopefully improve the power issue (@svhelge)
  • #11900 Improve type arguments for Ubisys (@svhelge)
  • #11894 Move Tuya related attributes in cluster closuresWindowCovering from ZH to ZHC (@svhelge)
  • #11892 Qa QAT42Z2B and QAT42Z3B: fix multi-channel scene switches (@queroautomacao)
  • #31183 Shelly S4PL-00416EU: fix excessive reporting (@Koenkk)
  • #11898 Colorock CR-MNZ1: fix energy reporting (@andrei-lazarov)
  • #31595 Danfoss Ally 014G2461: fix programming_operation_mode expose (@Koenkk)
  • #11890 Develco EMIZB-132: fix develcoInterfaceMode (@svhelge)
  • #31626 Execllux ZG-104PLV: fix typo in illuminance exposes (@Koenkk)
  • #11761 Inovelli: refactor (@rohankapoorcom)
  • #11886 Shelly S4PL-00416EU: expose ac_frequency (@mellgoth88-eng)
  • #11897 Tuya TS0505A: fix control (@andrei-lazarov)
  • #11862 Tuya TS0601_heat_meter: fix battery_voltage (@Liionboy)
  • #11888 Tuya TYBAC-006: extend calibration range to -9..9 (@kuposcar)
  • #11895 Zemismart ZMS-206EU-X: fix time sync (@andrei-lazarov)
  • #11879 ZG-204ZK changed motion_detection_sensitivity and detection_distance (@cknost)
  • #31587 Danfoss 014G2461: revert breaking changes (@Koenkk)
  • #11871 Philips 929004581901: expose more gradient effects (@Koenkk)
  • #11875 Tongou TO-Q-SYS-JZT: fix ac_frequency (@andrei-lazarov)
  • #11840 Disable enhanced hue by default & convert HS to XY, on XY-only bulbs (@andrei-lazarov)
  • #11866 Fix illuminance lux value calculated incorrectly (@Koenkk)
  • #11836 Improve readability and tests for lookup utility functions (@jpaju)
  • #11824 Move custom commands from ZH to ZHC (@svhelge)
  • #11837 Single source of truth for thermostat enum values (@jpaju)
  • #11864 Third Reality 3RPL01084Z: fix totalVolatileOrganicCompounds (@3reality-support)
  • #11854 Change onOffTransitionTime unit to seconds (@andrei-lazarov)
  • #11786 Custom read responses cleanup (@Nerivec)
  • #30861 Tuya _TZ3000_wol32olt: fix humidity value off by factor 10 (@Koenkk)
  • #1734 Move Legrand and Tuya attributes from ZH to ZHC (@svhelge)
  • #1743 Move Tuya specific attributes in lightingColorCtrl cluster from ZH to ZHC (@svhelge)
  • #1720 defaultRsp command ID matching when sending (@Nerivec)
  • #1726 Move custom attributes (fournoks) and command (plugwise) from ZH to ZHC (@svhelge)
  • #1728 Move more custom attributes and commands from ZH to ZHC (@svhelge)
  • #1716 Proper readRsp & defaultRsp spec behavior (@Nerivec)
  • #1736 Set max illuminance measured value to 0xfffe (@andrei-lazarov)

Windfront

Frontend

New supported devices

This release adds support for 37 devices:

  • #11974 DWZTCGQ11LM Aqara Multi-state sensor P100 (@absent42)
  • #11983 HD-T1000 Heat Decor Floor thermostat (@plenczewski)
  • #11982 HS9MS-E Heiman Smart motion sensor (@Leo2442926161)
  • #11982 HS1SA-E Lover Heiman Smoke detector (@Leo2442926161)
  • #11982 HM-636THV-AC-M Heiman Smoke detector (@Leo2442926161)
  • #11973 TB25-DC-10/25Z Trublockout Zigbee + RG roller blind motor (@pantsman0)
  • #11964 PFMOT001 LDS Hive Pet Friendly Motion sensor (@smeester18)
  • #11956 929004582001 Philips Hue Festavia globe outdoor string lights (21 meter with 30 bulbs) (@psde)
  • #11950 OSL 232 C Innr Outdoor Smart Spot White & Colour (@kauthmbt)
  • #11962 SBDV-00197 Sber Smart Wall Switch (optional neutral wire, single button) (@avzasorin-sd)
  • #11962 SBDV-00200 Sber Smart Wall Switch (optional neutral wire, two buttons) (@avzasorin-sd)
  • #11955 VES-ZB-PIR-21 Vesternet Zigbee motion sensor (@kingswindsor)
  • #11941 Co019 Develco Smart relay 16A (@ChillZwix)
  • #11937 OK-AC-H-TCL-3-ZB-S-A ONOKOM Adapter for semi industrial TCL systems (@zwg3)
  • #11937 OK-AC-H-TCL-1-ZB-S-A ONOKOM Adapter for household TCL systems (@zwg3)
  • #11937 TCL-1-ZB-S ONOKOM Adapter for household TCL systems (@zwg3)
  • #11937 OK-AC-H-ME-1-ZB-S-A ONOKOM Adapter for household and semi-industrial Mitsubishi Electric systems (@zwg3)
  • #11937 ME-1-ZB-S ONOKOM Adapter for household and semi-industrial Mitsubishi Electric systems (@zwg3)
  • #11937 OK-AC-H-MD-3-ZB-S-A ONOKOM Adapter for semi-industrial MDV systems (@zwg3)
  • #11937 MD-3-ZB-S ONOKOM Adapter for semi-industrial MDV systems (@zwg3)
  • #11937 OK-AC-H-MD-1-ZB-S-A ONOKOM Adapter for household MDV systems (@zwg3)
  • #11937 MD-1-ZB-S ONOKOM Adapter for household MDV systems (@zwg3)
  • #11937 OK-AC-H-HT-1-ZB-S-A ONOKOM Adapter for household Hitachi systems (@zwg3)
  • #11937 HT-1-ZB-S ONOKOM Adapter for household Hitachi systems (@zwg3)
  • #11937 OK-AC-H-HS-3-ZB-S-A ONOKOM Adapter for household Hisesnse systems (@zwg3)
  • #11889 929004611002 Philips Hue Flux Outdoor strip light (6m) (@Holgeretti)
  • #11913 3RAQ1096Z Third Reality Smart air quality sensor (@3reality-support)
  • #31642 CK-BL702-AL-01(7008_Z102LG01-1) Tuya Zigbee LED bulb (@Koenkk)
  • #11908 DS-K02D/DS-K02E Aqara Aqara Shutter Switch H2 EU (@sbstnkng)
  • #11899 R12LM-Z11T Lincukoo Human motion & presence sensor (@joliam)
  • #11905 TS0045 Tuya Wireless switch with 5 buttons (@wobondar)
  • #11909 ZBEK-37 Adeo ENKI LEXMAN Vizzini ENKI D40 (@Adorem)
  • #11880 ZS-SF-EUC-WH-MS Moes Star feather Zigbee curtain switch (@alefrenz)
  • #11873 MFTWIFI Mill Smart floor thermostat WiFi & Zigbee (@codingMonkey2000)
  • #11878 0190015 Shada LED dimmer (@andrei-lazarov)
  • #11820 4512785 Namron Zigbee 30A relay with NTC temperature sensors and water leak detection (@strips)
  • #11796 FFZB1-SM-ECO Ecolink Audio Detector: Listens for the siren tone from a UL listed smoke detector in your home and sends signal to your Zigbee HUB (@rfg81)

Fixed device detections

  • #11994 Detect _TZ3210_2uollq9d as BSEED TS011F_plug_1_2 (@andrei-lazarov)
  • #31740 Detect _TZE284_2nhqasjh as Tuya TS0601_soil (@Koenkk)
  • #11990 Detect _TZB210_ue01a0s2 as MiBoxer E2-ZR (@mikelauskas)
  • #11981 Detect _TZE284_hgeqeyuv as ZT24 and _TZE284_pzm3wab5 as ZX24 (@tiankakeji-cloud)
  • #11975 Detect _TZE284_r731zlxk as Tuya TS0601_switch_6_gang (@Koenkk)
  • #11984 Detect 7099930PH as Philips 7099930PH (@FoxRomeo)
  • #11966 Detect _TZE284_4fblxpma as NEO NAS-WV03B (@andrei-lazarov)
  • #11967 Detect _TZE284_xuflgcnz as RTX ZVG1 (@andrei-lazarov)
  • #31724 Detect _TZE204_4fblxpma as NEO NAS-WV03B (@Koenkk)
  • #11961 Detect _TZE284_sndkanfr as Lincukoo SZLMR10 (@pauloromeira)
  • #31731 Detect Dimmer US as Shelly S4DM-0A101WWL (@Koenkk)
  • #11942 Detect _TZ3000_a37eix1s as Zemismart KES-606US-L4 (@andrei-lazarov)
  • #11943 Detect _TZ3000_ko6v90pg as BSEED TS011F_plug_1_2 (@andrei-lazarov)
  • #11946 Detect _TZE200_vawy74yh as Moes ZSS-HM-SSD01 (@andrei-lazarov)
  • #11922 Detect _TZ3000_ehgouyvu as Lonsonho X701A (@L0rDoCH)
  • #11919 Detect _TZ3000_viqwamhn as Tuya TS011F_din_smart_relay_polling (@vitalybibikov)
  • #11927 Detect _TZ3002_eda6eitk as BSEED EC-SL-FK86ZPCS41 (@andrei-lazarov)
  • #11903 Detect _TZE204_ai4rqhky as Heiman HS2SA-1 (@andrei-lazarov)
  • #11877 Detect _TZ3210_2putqrmw as Nous A1Z (@andrei-lazarov)
  • #31588 Detect _TZE284_uo8qcagc as Tuya TS0601_gas_sensor_4 (@Koenkk)
  • #11874 Detect NimlyCodePRO as Onesti Products AS Nimly (@robin-wallberg)
  • #11860 Detect _TZ32101000000_5oy7cysk as ONENUO TS0210_5oy7cysk (@BrunoKrugel)
  • #31584 Detect _TZE284_1fuxihti as Tuya TS0601_cover_1 (@Koenkk)
  • #31369 Detect _TZE284_xdtnpp1a as AVATTO TRV26 (@Koenkk)
  • #11851 Detect _TZ3210_imaccztnas TYWB 4ch-RF (@andrei-lazarov)
  • #11859 Detect CK-BL702-MSW-01(7010) as Mumubiz CZV20 (@juslex)
  • #11853 Detect IKEA TOFSMYGGA as E2435/E2491 (@andrei-lazarov)

Changelog generator error

  • #11944 Grant pull-requests write for requires_review workflow (@rohankapoorcom)
  • NO_ISSUE Danfoss duplicate tz (@Nerivec)
@maiandrei
Copy link
Copy Markdown

maiandrei commented Sep 5, 2025

Hi!
Please add Tongou RCBO TOQSMR1, similar to TOWSMR1
image

It might seem a little confusing, as the picture shows the same TOWSMR1, but there is a tiny difference:
image
TOQSMR1 is Type AC RCBO and identifies with vendor: '_TZE204_432zhuwe',
TOWSMR1 is Type A RCBO and identifies with vendor: '_TZE284_432zhuwe' and others.

OR it might be enough to add "_TZE204_432zhuwe" to fingerprint for TOWSMR1?

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

Meanwhile, for n00bs like me:

  1. Using Studio Code Server or other editor, locate zigbee2mqttt/configuration.yaml and add (pay attention to indentation):
external_converters:
  - rcbo_tongou.js
  1. Create a new folder external_converters . Here you create the new rcbo_tongou.js file: /homeassistant/zigbee2mqtt/external_converters/rcbo_tongou.js and

  2. Paste this code into the new 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: '_TZE204_432zhuwe',
        },
    ],
    model: 'TO-Q-SMR1-40JZT',
    vendor: 'Tongou',
    description: 'Single-phase RCBO 30-100mA 1-40A (DIN Module)',
    fromZigbee: [tuya.fz.datapoints],
    toZigbee: [tuya.tz.datapoints],
    onEvent: tuya.onEvent({
        respondToMcuVersionResponse: false,
        queryIntervalSeconds: 10,
        }),
    configure: tuya.configureMagicPacket,
    exposes: [
        tuya.exposes.switch(), 
        e.energy(), 
        e.temperature(), 
        e.power(), 
        e.voltage(), 
        e.current(),
        e.numeric("leakage_current", ea.STATE).withUnit("mA").withDescription("Current leakage"),
        e
            .enum("event", ea.STATE, [
                "normal",
                "over_current_trip",
                "over_power_trip",
                "high_temp_trip",
                "over_voltage_trip",
                "under_voltage_trip",
                "over_current_alarm",
                "over_power_alarm",
                "high_temp_alarm",
                "over_voltage_alarm",
                "under_voltage_alarm",
                "remote_on",
                "remote_off",
                "manual_on",
                "manual_off",
                "leakage_trip",
                "leakage_alarm",
                "restore_default",
                "automatic_closing",
                "electricity_shortage",
                "electricity_shortage_alarm",
                "timing_switch_On",
                "timing_switch_off",
            ])
            .withDescription("Last event of the device"),
        e.enum("over_current_setting", ea.STATE_SET, ["Ignore", "Alarm", "Trip"]).withDescription("Over current setting"),
        e
            .numeric("over_current_threshold", ea.STATE_SET)
            .withUnit("A")
            .withDescription("Setup the value on the device")
            .withValueMin(1)
            .withValueMax(40),
        e.enum("over_voltage_setting", ea.STATE_SET, ["Ignore", "Alarm", "Trip"]).withDescription("Over voltage setting"),
        e
            .numeric("over_voltage_threshold", ea.STATE_SET)
            .withUnit("V")
            .withDescription("Setup value on the device")
            .withValueMin(240)
            .withValueMax(295),
        e.enum("under_voltage_setting", ea.STATE_SET, ["Ignore", "Alarm", "Trip"]).withDescription("Under voltage setting"),
        e
            .numeric("under_voltage_threshold", ea.STATE_SET)
            .withUnit("V")
            .withDescription("Setup value on the device")
            .withValueMin(145)
            .withValueMax(220),
        e.enum("leakage_setting", ea.STATE_SET, ["Ignore", "Alarm", "Trip"]).withDescription("Leakage setting"),
        e
            .numeric("leakage_threshold", ea.STATE_SET)
            .withUnit("mA")
            .withDescription("Setup value on the device")
            .withValueMin(30)
            .withValueMax(100),
        e.enum("temperature_setting", ea.STATE_SET, ["Ignore", "Alarm", "Trip"]).withDescription("Temperature setting"),
        e
            .numeric("temperature_threshold", ea.STATE_SET)
            .withUnit("°C")
            .withDescription("Setup value on the device")
            .withValueMin(-25)
            .withValueMax(100),
        e.enum("over_power_setting", ea.STATE_SET, ["Ignore", "Alarm", "Trip"]).withDescription("Over power setting"),
        e
            .numeric("over_power_threshold", ea.STATE_SET)
            .withUnit("W")
            .withDescription("Setup value on the device")
            .withValueMin(1)
            .withValueMax(25000),
        e
            .binary("auto_reclosing", ea.STATE_SET, "ON", "OFF")
            .withLabel("Auto reclosing")
            .withDescription(
                "When the circuit breaker trips due to voltage protection, it will automatically close when the circuit voltage returns to normal",
            ),
        e
            .binary("overcurrent_recloser", ea.STATE_SET, "ON", "OFF")
            .withLabel("Overcurrent Recloser")
            .withDescription(
                "When the circuit breaker trips due to overcurrent protection, it will automatically close when the circuit voltage returns to normal",
            ),
        e
            .binary("leakage_recloser", ea.STATE_SET, "ON", "OFF")
            .withLabel("Leakage Recloser")
            .withDescription(
                "When the circuit breaker trips due to leakage protection, it will automatically close when the circuit voltage returns to normal",
            ),
        e
            .binary("overpower_recloser", ea.STATE_SET, "ON", "OFF")
            .withLabel("Overpower Recloser")
            .withDescription(
                "When the circuit breaker trips due to overpower protection, it will automatically close when the circuit voltage returns to normal",
            ),
        e.binary("restore_default", ea.STATE_SET, "ON", "OFF").withDescription("Turn ON to restore default settings"),
    ],
    meta: {
        tuyaDatapoints: [
            [1, "energy", tuya.valueConverter.divideBy100],
            [6, null, tuya.valueConverter.phaseVariant2], // voltage and current
            [15, "leakage_current", tuya.valueConverter.raw],
            [16, "state", tuya.valueConverter.onOff],
            [
                110,
                "event",
                tuya.valueConverterBasic.lookup({
                    normal: 0,
                    over_current_trip: 1,
                    over_power_trip: 2,
                    high_temp_trip: 3,
                    over_voltage_trip: 4,
                    under_voltage_trip: 5,
                    over_current_alarm: 6,
                    over_power_alarm: 7,
                    high_temp_alarm: 8,
                    over_voltage_alarm: 9,
                    under_voltage_alarm: 10,
                    remote_on: 11,
                    remote_off: 12,
                    manual_on: 13,
                    manual_off: 14,
                    leakage_trip: 15,
                    leakage_alarm: 16,
                    restore_default: 17,
                    automatic_closing: 18,
                    electricity_shortage: 19,
                    electricity_shortage_alarm: 20,
                    timing_switch_on: 21,
                    timing_switch_off: 22,
                }),
            ],
            [
                102,
                "over_voltage_setting",
                tuya.valueConverterBasic.lookup({
                    Ignore: tuya.enum(0),
                    Alarm: tuya.enum(1),
                    Trip: tuya.enum(2),
                }),
            ],
            [
                103,
                "under_voltage_setting",
                tuya.valueConverterBasic.lookup({
                    Ignore: tuya.enum(0),
                    Alarm: tuya.enum(1),
                    Trip: tuya.enum(2),
                }),
            ],
            [
                104,
                "over_current_setting",
                tuya.valueConverterBasic.lookup({
                    Ignore: tuya.enum(0),
                    Alarm: tuya.enum(1),
                    Trip: tuya.enum(2),
                }),
            ],
            [
                105,
                "over_power_setting",
                tuya.valueConverterBasic.lookup({
                    Ignore: tuya.enum(0),
                    Alarm: tuya.enum(1),
                    Trip: tuya.enum(2),
                }),
            ],
            [
                107,
                "temperature_setting",
                tuya.valueConverterBasic.lookup({
                    Ignore: tuya.enum(0),
                    Alarm: tuya.enum(1),
                    Trip: tuya.enum(2),
                }),
            ],
            [
                108,
                "leakage_setting",
                tuya.valueConverterBasic.lookup({
                    Ignore: tuya.enum(0),
                    Alarm: tuya.enum(1),
                    Trip: tuya.enum(2),
                }),
            ],
            [112, "auto_reclosing", tuya.valueConverter.onOff],
            [113, "restore_default", tuya.valueConverter.onOff],
            [114, "over_current_threshold", tuya.valueConverter.raw],
            [115, "over_voltage_threshold", tuya.valueConverter.raw],
            [116, "under_voltage_threshold", tuya.valueConverter.raw],
            [117, "leakage_threshold", tuya.valueConverter.raw],
            [118, "temperature_threshold", tuya.valueConverter.divideBy10],
            [119, "over_power_threshold", tuya.valueConverter.raw],
            [131, "temperature", tuya.valueConverter.divideBy10],
            [143, "overcurrent_recloser", tuya.valueConverter.onOff],
            [144, "leakage_recloser", tuya.valueConverter.onOff],
            [145, "overpower_recloser", tuya.valueConverter.onOff],
        ],
    },
};

module.exports = definition;
  1. Restart Zigbee2MQTT addon;

  2. Enjoy!

This is the AC Type device
This is the A Type device
S123a0b45a6514275b539130772da995dd

@frohaut
Copy link
Copy Markdown

frohaut commented Sep 8, 2025

Hi
I purchased this module
https://fr.aliexpress.com/item/1005009242917566.html?spm=a2g0o.order_list.order_list_main.34.607a5e5bGE77fU&gatewayAdapt=glo2fra
it doesn't seem to be supported, do you have a planned update for this module?
Best regards,
Franck
export default {
zigbeeModel: ['TS0601'],
model: 'TS0601',
vendor: '_TZE284_mxujdmxo',
description: 'Automatically generated definition',
extend: [],
meta: {},
};

@Ankhwatcher
Copy link
Copy Markdown

@maiandrei Thanks for the guide!

I managed to get mine working by following it. I did have to use your original onEvent: tuya.onEventSetTime, // Add this if you are getting no converter for 'commandMcuSyncTime' though.

Otherwise Zigbee2Mqtt kept renaming my file to tongou.js.invalid.

@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

@maiandrei
Copy link
Copy Markdown

maiandrei commented Sep 23, 2025

@maiandrei Thanks for the guide!

I managed to get mine working by following it. I did have to use your original onEvent: tuya.onEventSetTime, // Add this if you are getting no converter for 'commandMcuSyncTime' though.

Otherwise Zigbee2Mqtt kept renaming my file to tongou.js.invalid.

You're right, 2 days later I found the devices unsupported and the file invalid.
With that version of onEvent I didn't receive any feedback from device in HA. Do you?
Now I copied code from https://github.com/Koenkk/zigbee-herdsman-converters/blob/eb0faa7c71c6c184cb925f20145c5b2c619fae79/src/devices/tuya.ts#L14797
and, for the moment, everything is OK again.

@BelkinDzmitry
Copy link
Copy Markdown

Hello! I have 4 gang+2 scene (6 buttons) switch.
Not supported yet. Can you add it?

zigbeeModel: ['TS0601'],
model: 'TS0601',
vendor: '_TZE200_mk3mlurj',
description: 'CombZSwitch4A2',

@bugac
Copy link
Copy Markdown

bugac commented Sep 24, 2025

Please add to supported list:

https://www.aliexpress.com/item/1005009024318979.html

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

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

module.exports = definition;`

image

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

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