Koenkk / zigbee2mqtt

Zigbee 🐝 to MQTT bridge 🌉, get rid of your proprietary Zigbee bridges 🔨
https://www.zigbee2mqtt.io
GNU General Public License v3.0
12.19k stars 1.68k forks source link

[New device support]: Zigbee Model TS0601, vendor _TZE200_mua6ucdj Wall Scene Panel with 3 gang Switch #18982

Open Rust-Shch opened 1 year ago

Rust-Shch commented 1 year ago

Link

https://aliexpress.ru/item/1005005857660356.html?sku_id=12000034596948081&spm=a2g2w.stores.seller_list.0.19d82adcf3RsL7

Database entry

"0xa4c138d8360bbc12": { "date_code": "", "definition": null, "disabled": false, "endpoints": { "1": { "bindings": [], "clusters": { "input": [ "genGroups", "genScenes", "manuSpecificTuya", "genBasic" ], "output": [ "genOta", "genTime" ] }, "configured_reportings": [], "scenes": [] }, "242": { "bindings": [], "clusters": { "input": [], "output": [ "greenPower" ] }, "configured_reportings": [], "scenes": [] } }, "friendly_name": "0xa4c138d8360bbc12", "ieee_address": "0xa4c138d8360bbc12", "interview_completed": true, "interviewing": false, "manufacturer": "_TZE200_mua6ucdj", "model_id": "TS0601", "network_address": 8985, "power_source": "Mains (single phase)", "supported": false, "type": "Router" }

Comments

Looks very similar to https://www.zudsec.com/products/Zigbee_Smart_Wall_Switch__Scene_Panel_478.html##

I have tried to find similar converter to edit, but failed.

External converter

No response

Supported color modes

No response

Color temperature range

No response

Rust-Shch commented 1 year ago

Correct DB entry:

{"id":40,"type":"Router","ieeeAddr":"0xa4c138d8360bbc12","nwkAddr":8985,"manufId":4417,"manufName":"_TZE200_mua6ucdj","powerSource":"Mains (single phase)","modelId":"TS0601","epList":[1,242],"endpoints":{"1":{"profId":260,"epId":1,"devId":81,"inClusterList":[4,5,61184,0],"outClusterList":[25,10],"clusters":{"genBasic":{"attributes":{"65503":"5�,f�5�,\u0012\b\u0000\u0000\u0000i\b\u0000\u0000\u0000i\b\u0000\u0000\u0000i\t\u0000\u0000\u0000i\t\u0000\u0000\u0000i\n\u0000\u0000\u0000i�6�,f�6�,\u0012�6�,\u0016","65506":53,"65508":0,"appVersion":65}}},"binds":[],"configuredReportings":[],"meta":{}},"242":{"profId":41440,"epId":242,"devId":97,"inClusterList":[],"outClusterList":[33],"clusters":{},"binds":[],"configuredReportings":[],"meta":{}}},"appVersion":65,"stackVersion":0,"hwVersion":1,"dateCode":"","zclVersion":3,"interviewCompleted":true,"meta":{},"lastSeen":1694798013349,"defaultSendRequestWhen":"immediate"}

github-actions[bot] commented 1 year ago

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 7 days

nickmcgill commented 1 year ago

Hi, Dumb question, but how to I insert the database entry? Thanks

kkossev commented 7 months ago

This is a very promising Zigbee device, using Tuya Data Points for communication with any Zigbee coordinator; it is not Tuya cloud dependent.

github-actions[bot] commented 1 month ago

This issue is stale because it has been open 180 days with no activity. Remove stale label or comment or this will be closed in 30 days

sebekhtc commented 1 month ago

any news on the device? I bought received it today and found no support.

sebekhtc commented 1 month ago

So far I developed the below three switch working external converter. funny, have clock working correctly but the date shows today and the year of 1994 (exactly 30 years ago).

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: '_TZE200_mua6ucdj',
        },
    ],
    model: 'TS0601_new',
    vendor: 'Tuya',
    description: 'Fill in a description of the device here',
    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: [
        tuya.exposes.switch().withEndpoint('l1'),
        tuya.exposes.switch().withEndpoint('l2'),
        tuya.exposes.switch().withEndpoint('l3'),
    ],
    endpoint: (device) => {
        return {l1: 1, l2: 1, l3: 1};
    },
    meta: {
        multiEndpoint: true,
    tuyaDatapoints: [
        [24, 'state_l1', tuya.valueConverter.onOff],
        [25, 'state_l2', tuya.valueConverter.onOff],
        [26, 'state_l3', tuya.valueConverter.onOff],
    ],

    },
    extend: [
        // A preferred new way of extending functionality.
    ],
};

module.exports = definition;
sebekhtc commented 1 month ago

BTW. the product description:

https://www.openhasp.com/0.7.0/hardware/golden-security/gs-t3e/

sebekhtc commented 1 month ago

changed onEvent: tuya.onEventSetTime, to onEvent: tuya.onEventSetLocalTime, and got the correct time and date

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: '_TZE200_mua6ucdj',
        },
    ],
    model: 'TS0601_new',
    vendor: 'Tuya',
    description: 'Fill in a description of the device here',
    fromZigbee: [tuya.fz.datapoints],
    toZigbee: [tuya.tz.datapoints],
    onEvent: tuya.onEventSetLocalTime, // Add this if you are getting no converter for 'commandMcuSyncTime'
    configure: tuya.configureMagicPacket,
    exposes: [
        tuya.exposes.switch().withEndpoint('l1'),
        tuya.exposes.switch().withEndpoint('l2'),
        tuya.exposes.switch().withEndpoint('l3'),
    ],
    endpoint: (device) => {
        return {l1: 1, l2: 1, l3: 1};
    },
    meta: {
        multiEndpoint: true,
    tuyaDatapoints: [
        [24, 'state_l1', tuya.valueConverter.onOff],
        [25, 'state_l2', tuya.valueConverter.onOff],
        [26, 'state_l3', tuya.valueConverter.onOff],
    ],

    },
    extend: [
        // A preferred new way of extending functionality.
    ],
};

module.exports = definition;
Rust-Shch commented 3 weeks ago

Have used your converter and got support in z2m - great! But somehow the device is not appear in MQTT integration...

upd: got it after HA restart