Licznik zigbee na szynę din ZBN- JT-63 - niewspierany :(

Cześć
Czy ktoś pomoże mi napisać external_definition do takiego licznika?


Mam taki kod wygenerowany. Co dalej?

const definition = {
    zigbeeModel: ['TS0601'],
    model: 'TS0601',
    vendor: '_TZE204_m64smti7',
    description: 'Automatically generated definition',
    extend: [],
    meta: {},
};

module.exports = definition;

Ten licznik/bezpiecznik/przełącznik czy jak to tam nazwać działa na wprost jako EARU EAKCB-T-M-Z. To znaczy nie testowałem nic oprócz działania wyłącznika, pokazuje też napięcie, moc i energie ale nie wiem czy dobrze. Inne parametry też trzeba pewnie dostosować. Traktuj bardziej jako punkt wyjścia.

Ja bym raczej stawiał na coś zbliżonego do

Dziękuje za porady.
Utworzyłem plik licznik.js i dodałem go w pliku configuration.yaml jednak nic to nie zmieniło. Mój plik licznik.js wygląda tak:

const {} = require('zigbee-herdsman-converters/lib/modernExtend');
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 ota = require('zigbee-herdsman-converters/lib/ota');
const utils = require('zigbee-herdsman-converters/lib/utils');
const globalStore = require('zigbee-herdsman-converters/lib/store');
const e = exposes.presets;
const ea = exposes.access;


const definition = {
    zigbeeModel: ['TS0601'],
    model: 'TS0601',
    vendor: '_TZE204_m64smti7',
    description: 'Automatically generated definition',
     fromZigbee: [tuya.fz.datapoints],
        toZigbee: [tuya.tz.datapoints],
        configure: tuya.configureMagicPacket,
        exposes: [e.voltage(), e.power(), e.current(),
            e.energy().withDescription('Total forward active energy'),
            e.produced_energy().withDescription('Total reverse active energy'),
            e.power_factor().withUnit('%'), e.ac_frequency(),
        ],
        meta: {
            tuyaDatapoints: [
                [1, 'energy', tuya.valueConverter.divideBy100],
                [2, 'produced_energy', tuya.valueConverter.divideBy100],
                // [6, null, tuya.valueConverter.phaseVariant3],
                [15, 'power_factor', tuya.valueConverter.raw],
                // [16, 'clear_energy', tuya.valueConverter.onOff],
                [101, 'ac_frequency', tuya.valueConverter.divideBy100],
                [102, 'voltage', tuya.valueConverter.divideBy10],
                [103, 'current', tuya.valueConverter.divideBy1000],
                [104, 'power', tuya.valueConverter.raw],
            ],
        }
};
module.exports = definition;

Proszę o poradę co robię nie tak.

A załadowałeś go w Z2M ?

Nie za bardzo wiem co powinienem jeszcze dodatkowo zrobić oprócz wpisania go w pliku configuration.yaml

external_converters:
  - licznik.js

w logu Z2M wydaje się że został załadowany

Logi daj na Debug będziesz więcej widział.

Widzę mniej na debug. Te logi w ogóle są jakieś dziwne. Dzisiaj nie mam w ogóle nic w logach…
Jak mogę sprawdzić czy załadował się ten plik konwertera licznik.js
Czy ogólnie tak jak jest on napisany to jest poprawnie? Czy nie powinienem mieć jakich kolwiek zmian w urządzeniu ( chodzi że widziec jakieś parametry, nawet jeśli one by wyświetlały głupoty)

Sprawdź logi wdodatku Z2M:


Może są jakieś błędy i Z2M uruchamia się z błędem.

Będzie ci pokazywał jeżeli wszystko będzie poprawnie w twoim pliku licznik.js

Znajdź jakiś podobny i porównaj z twoim licznik.js

Możesz też spróbować Zigbee2MQTT Edge zawiera nie publikowaną obsługę urządzeń.

Siedzę kombinuje rozszerzenie nie działa bo nie ma tam w stałych odwołania do

const tuya = require('zigbee-herdsman-converters/lib/tuya');

Jak dodam tą linijkę to Z2M nie wstaje. W logach mam tak:

W wielu różnych przykładach jest stosowane.
bez tej linijki reszta nie pójdzie. Jak wykasuje tą linię to w logach mam tak

To tylko przykłady,

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 ota = require('zigbee-herdsman-converters/lib/ota');
const tuya = require('zigbee-herdsman-converters/lib/tuya');
const e = exposes.presets;
const ea = exposes.access;
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 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: 'TY0A01',
            // The manufacturer name from: Device with modelID 'TS0601' is not supported.
            manufacturerName: '_TYST12_bfejtdig',
        },
    ],
    model: 'TY0A01',
    vendor: 'TuYa',
    description: 'Smart Lock',
	powerSource: 'Battery',
	supports: 'inserted',
	ota: 'ota.zigbeeOTA',
    onEvent: tuya.onEventSetTime, // Add this if you are getting no converter for 'commandMcuSyncTime'
    fromZigbee: [fz.javis_lock_report, fz.battery],
    toZigbee: [],
    exposes: [e.battery(), e.action(['unlock'])],
};

module.exports = definition;