Tuya Zigbee dwukierunkowy licznik energii model: TS0601 producent: _TZE204_81yrt3lo

Witam wszystkich,
kupiłem u MatSee Plus

i niestety okazało się post factum że na tą chwilę urządzenie nie jest wspierane przez Zigbee2mqtt aczkolwiek są już zgłoszenia aby zostało ono dodane do bazy urządzeń ale do tego potrzebne są DPid z tuya a tak się składa że udało mi się dostać ich listę do tego urządzenia od sprzedawcy ale nie wiem jak to ubrać w te external converter

Czy ktoś mógłby mi pomóc z tym tematem?

Dodam tylko że owe dane dotycząca dpid są poufne i nie mogę ich tu wkleić ale na priv się da. :slight_smile:

Musisz ktoś taką konfigurację dla external converter napisać

Przykładowy config external converter dla innego urządzenia.

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: 'TS0202', manufacturerName: '_TZ3000_wrgn6xrz'}],
  model: 'TS0202',
  vendor: 'TuYa',
  description: 'Motion sensor',
  configure: async (device, coordinatorEndpoint, logger) => {
        const endpoint = device.getEndpoint(1);
        await reporting.bind(endpoint, coordinatorEndpoint, ['ssIasZone']);
    },
  fromZigbee: [fz.ias_occupancy_alarm_1, fz.ias_occupancy_alarm_1_report, fz.ignore_basic_report,
    {
        cluster: 'ssIasZone',
        type: ['attributeReport', 'readResponse'],
        convert: (model, msg, publish, options, meta) => {
            const result = {};
            if (msg.data.hasOwnProperty('currentZoneSensitivityLevel')) {
                const sensitivityLookup = {'low': 0, 'medium': 1, 'high': 2};
                result.sensitivity = sensitivityLookup[msg.data['currentZoneSensitivityLevel']];
            }
            if (msg.data.hasOwnProperty('61441')) {
                const keepTimeLookup = {'30': 0, '60': 1, '120': 2};
                result.keep_time = keepTimeLookup[msg.data['61441']];
            }
            return result;
        },
    }],
  toZigbee: [{
      key: ['sensitivity', 'keep_time'],
      convertSet: async (entity, key, value, meta) => {
            switch (key) {
            case 'sensitivity':
                const sensitivityLookup = {'low': 0, 'medium': 1, 'high': 2};
                await entity.write('ssIasZone', {currentZoneSensitivityLevel: sensitivityLookup[value]}, {disableResponse: true});
                return {readAfterWriteTime: 1000, state: {sensitivity: value}};
            case 'keep_time':
                const keepTimeLookup = {'30': 0, '60': 1, '120': 2};
                await entity.write('ssIasZone', {61441: {value: keepTimeLookup[value], type: 0x20}}, {disableResponse: true});
                return {readAfterWriteTime: 1000, state: {keep_time: value}};
            default: // Unknown key
                throw new Error(`Unhandled key ${key}`);
            }
        },
  }],
  exposes: [e.occupancy(), e.battery_low(), e.tamper(),
    exposes
      .enum('sensitivity', ea.STATE_SET, ['low', 'medium', 'high'])
      .withDescription('PIR sensor sensitivity'),
    exposes
      .enum("keep_time", ea.STATE_SET, ["30", "60", "120"])
      .withDescription("PIR keep time in seconds"),
  ],
};

module.exports = definition;

Wejdź tam gdzie zostało zgłoszone urządzenie może już ktoś dodał konfigurację, lub poszukaj w necie


po Zigbee Manufacturer

No niestety juz szukalem po _TZE204_81yrt3lo i tylko requesty o dodanie urzdzenia do zigbee2mqtt sa.
nikt jeszcze config external converter nie zrobil.