Z2m: No converter available for [...]

Hi, I’ve been trying to add an unsupported device, but Im struggling to make it work.

The extension file has been loaded successfully and I see the Expose elements in Z2M dashboard under the Exposes tab.

I added just 2 elements - child_lock and local_temperature for simplicity and testing. I took the exposes and meta from an almost exact same product (just 230V instead of battery powered) and confirmed both DPs from logs.

But I can’t seem to get the reading of local temperature and whenever I try to lock/unlock the thermostat I get the error of

z2m: No converter available for ‘child_lock’ on ‘E25-1’: (“LOCK”)

So far my external_extension file looks like this:

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 = {
    fingerprint: [
        {
            modelID: 'TS0601',
            manufacturerName: '_TZE204_cg8hdnjv',
        },
    ],
    model: 'E25-BATW',
    vendor: 'ENGO',
    description: 'ENGO E25-BATW battery-powered thermostat',
    extend: [
        tuya.modernExtend.tuyaBase({
            dp: true,
        }),
    ],
    exposes: [
        // Here you should put all functionality that your device exposes
        e
                .climate()
                .withLocalTemperature(ea.STATE),
        e.child_lock(),
    ],
    meta: {
        // All datapoints go in here
        tuyaDatapoints: [
            [16, "current_heating_setpoint", tuya.valueConverter.divideBy10],
            [24, "local_temperature", tuya.valueConverter.divideBy10],
            [40, "child_lock", tuya.valueConverter.lockUnlock],
            ],
    },
    extend: [
        // A preferred new way of extending functionality.
    ],
};

module.exports = definition;

any ideas how to troubleshoot it?

Hello Profile - nomeus1 - Home Assistant Community,
Welcome to the Home Assistant Forum!

  • Well for basics I want to make sure your restart Z2M after copying the file in.
  • The file is in the right folder and the right format.

Details are here Zigbee2MQTT

I did restart Z2M and checked in logs every time after the restart if the file was read correctly.
The issue turns out was in the file itself. The second exposes: [] part was canceling out the first one. Once I removed that, the thermostat was paired and worked well… for couple hours. Then it disconnected. And it keeps disconnecting after 1 to 5h and every time I have to factory reset it. Any ideas how to solve that?

I would suggest it’s dropping off the mesh. Do you have enough mains powered routing devices in your mesh? The Home Assistant Cookbook - Index