Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[New device support]: Mercator Ikuu Switch Mechanism (SSWM-DIMZ) #17913

Closed
loopback007 opened this issue Jun 5, 2023 · 1 comment
Closed
Labels
new device support New device support request

Comments

@loopback007
Copy link

Link

https://www.ikuu.com.au/product/switch-mechanism-3/

Database entry

{"id":29,"type":"Router","ieeeAddr":"0xcc86ecfffe937201","nwkAddr":36458,"manufId":4098,"manufName":"_TZE200_9cxuhakf","powerSource":"Mains (single phase)","modelId":"TS0601","epList":[1],"endpoints":{"1":{"profId":260,"epId":1,"devId":81,"inClusterList":[0,4,5,61184],"outClusterList":[25,10],"clusters":{"genBasic":{"attributes":{"modelId":"TS0601","manufacturerName":"_TZE200_9cxuhakf","stackVersion":0,"dateCode":"","zclVersion":3}},"genOnOff":{"attributes":{}}},"binds":[{"cluster":6,"type":"endpoint","deviceIeeeAddress":"0x00124b0024c7c592","endpointID":1},{"cluster":8,"type":"endpoint","deviceIeeeAddress":"0x00124b0024c7c592","endpointID":1}],"configuredReportings":[],"meta":{}}},"appVersion":64,"stackVersion":0,"hwVersion":1,"dateCode":"","zclVersion":3,"interviewCompleted":true,"meta":{"configured":1},"lastSeen":1685930472399,"defaultSendRequestWhen":"immediate"}

Comments

I had an external converter for this zigbee dimmer that worked prior, as of a couple of days ago, had Z2M stop working (not by any change), and tried to restart Z2M but had errors. Specifically,
/app/node_modules/zigbee-herdsman-converters/index.js:79 if (converter.options) { ^ TypeError: Cannot read properties of undefined (reading 'options'), which after some research, led me to remove the external adapters. Z2M was able to start normally after removing external adapter configuration, but obviously no control for my dimmers which shows up as paired but unsupported.

Another issue I came across was #17036 but not resolved.

External converter

const fz = {...require('zigbee-herdsman-converters/converters/fromZigbee'), legacy: require('zigbee-herdsman-converters/lib/legacy').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 extend = require('zigbee-herdsman-converters/lib/extend');
const e = exposes.presets;
const ea = exposes.access;
const tuya = require('zigbee-herdsman-converters/lib/tuya');
const utils = require('zigbee-herdsman-converters/lib/utils');

const tzLocal = {
tuya_dimmer_level: {
key: ['brightness_min', 'brightness', 'brightness_percent', 'level'],
convertSet: async (entity, key, value, meta) => {
// upscale to 1000
let newValue;
let dp = tuya.dataPoints.dimmerLevel;
if (meta.device.manufacturerName === '_TZE200_3p5ydos3') {
dp = tuya.dataPoints.eardaDimmerLevel;
}
if (key === 'brightness_min') {
if (value >= 0 && value <= 100) {
newValue = utils.mapNumberRange(value, 0, 100, 0, 1000);
dp = tuya.dataPoints.dimmerLevel;
} else {
throw new Error('Dimmer brightness_min is out of range 0..100');
}
} else if (key === 'level') {
if (value >= 0 && value <= 1000) {
newValue = Math.round(Number(value));
} else {
throw new Error('Dimmer level is out of range 0..1000');
}
} else if (key === 'brightness_percent') {
if (value >= 0 && value <= 100) {
newValue = utils.mapNumberRange(value, 0, 100, 0, 1000);
} else {
throw new Error('Dimmer brightness_percent is out of range 0..100');
}
} else {
if (value >= 0 && value <= 255) {
newValue = utils.mapNumberRange(value, 0, 255, 0, 1000);
} else {
throw new Error('Dimmer brightness is out of range 0..255');
}
}
// Always use same transid as tuya_dimmer_state (#6366)
await tuya.sendDataPointValue(entity, dp, newValue, 'dataRequest', 1);
},
},
};

const definition = {
fingerprint: [
{modelID: 'TS0601', manufacturerName: '_TZE200_9cxuhakf'},
],
model: 'TS0601_dimmer',
vendor: 'TuYa',
description: 'Zigbee smart dimmer',
fromZigbee: [fz.tuya_dimmer, fz.ignore_basic_report],
toZigbee: [tz.tuya_dimmer_state, tzLocal.tuya_dimmer_level],
configure: async (device, coordinatorEndpoint, logger) => {
const endpoint = device.getEndpoint(1);
await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'genLevelCtrl']);
},
exposes: [e.light_brightness().setAccess('state', ea.STATE_SET).setAccess('brightness', ea.STATE_SET)],
whiteLabel: [
{vendor: 'Larkkey', model: 'ZSTY-SM-1DMZG-EU'},
{vendor: 'Earda', model: 'EDM-1ZAA-EU'},
{vendor: 'Earda', model: 'EDM-1ZAB-EU'},
{vendor: 'Earda', model: 'EDM-1ZBA-EU'},
{vendor: 'Mercator Ikuü', model: 'SSWM-DIMZ'},
],
};

module.exports = definition;

Supported color modes

No response

Color temperature range

No response

@loopback007 loopback007 added the new device support New device support request label Jun 5, 2023
Koenkk added a commit to Koenkk/zigbee-herdsman-converters that referenced this issue Jun 5, 2023
@Koenkk
Copy link
Owner

Koenkk commented Jun 5, 2023

Added!

Changes will be available in the dev branch in a few hours from now. (https://www.zigbee2mqtt.io/advanced/more/switch-to-dev-branch.html)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new device support New device support request
Projects
None yet
Development

No branches or pull requests

2 participants