Olá Pessoal, Tudo bem?
Fiquei até tarde ontem, e apesar de não ter nenhuma experiência com isso, eu mesmo consegui criar um external converter pra esse T25ZB…
Segue em anexo…
1 - Antes de usar ele, tente primeiro parear o seu dispositivo…
2 - Ao parear…Veja se ele vai aparecer com o nome _vjhcenzo,
3A - Se aparecer, exclui o aparelho novamente do zigbee2mqtt, joga o arquivo pra dentro do HA na pasta \config\zigbee2mqtt
3B - ***Se aparecer com outro nome, renomeie o arquivo substituindo o _vjhcenzo pelo o que aparecer, e dentro do arquivo, também faça essa troca, e salve na pasta \config\zigbee2mqtt…com o final .js
4 - Anote o nome do arquivo completo.
5 - Independente do caso, estando com arquivo dentro da pasta \config\zigbee2mqtt Exclua o aparelho no Zigbee2MQTT, valide as configurações, e reinicie o HA para carregar esse arquivo.
6 - Eu estou usando a versão estável mais atual do Zigbee2mqtt, que dispensa fazer apontamento do external converter dentro do ajustes do plugin, então…no FrontEnd do Zigbee2mQTT, basta ir em Configurações, Configurações, Conversor Externo ou External Converter…
7 - Coloque exatamente o nome do arquivo que você havia colado ou criado dentro de \config\zigbee2mqtt, clique em submit, reinicie o Zigbee2MQTT
8 - E faça um novo pareamento.
POR AQUI, TUDO FUNCIONOU…
OBS, coloquei uma linha do power_on_behavior, para testar, pra ele iniciar desligado ao subir a energia, mas estava cansado d+ para fazer mais testes e remover depois…kkkkk, deixei por lá mesmo…e como sou preguiçoso e sem experiência com isso, eu deixei algumas informações com o nome da moes no concat, já que foi da li que usei de parâmetro para usar as sintaxes…quem quiser corrigir isso, sintam-se a vontade.
Fiz aqui, e tudo funcionou perfeitamente…
Segue o código dele:
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 extend = require(‘zigbee-herdsman-converters/lib/extend’);
const e = exposes.presets;
const ea = exposes.access;
const definition = {
fingerprint: [
{
modelID: ‘TS0003’,
manufacturerName: ‘_TZ3000_vjhcenzo’
}
],
model: ‘ZM-L03E-Z’,
vendor: ‘Zemismart’,
description: ‘Smart light switch - 3 gang with neutral wire’,
toZigbee: extend.switch().toZigbee.concat([tz.moes_power_on_behavior]),
fromZigbee: extend.switch().fromZigbee.concat([fz.moes_power_on_behavior]),
exposes: [
e.switch().withEndpoint(‘left’),
e.switch().withEndpoint(‘center’),
e.switch().withEndpoint(‘right’),
exposes.enum(‘power_on_behavior’, ea.ALL, [‘on’, ‘off’, ‘previous’]),
],
endpoint: () => {
return {‘left’: 1, ‘center’: 2, ‘right’: 3};
},
meta: {multiEndpoint: true},
configure: async (device, coordinatorEndpoint) => {
const firstEndpoint = device.getEndpoint(1);
await firstEndpoint.read(‘genBasic’, [‘manufacturerName’, ‘zclVersion’, ‘appVersion’, ‘modelId’, ‘powerSource’, 0xfffe]);
await reporting.bind(firstEndpoint, coordinatorEndpoint, [‘genOnOff’]);
const secondEndpoint = device.getEndpoint(2);
await reporting.bind(secondEndpoint, coordinatorEndpoint, ['genOnOff']);
await reporting.onOff(secondEndpoint);
const thirdEndpoint = device.getEndpoint(3);
await reporting.bind(thirdEndpoint, coordinatorEndpoint, ['genOnOff']);
await reporting.onOff(thirdEndpoint);
}
};
module.exports = definition;