Witam.
Kupiłem taki moduł jak w temacie, lecz niestety w zigbee2mqtt jest jako “niewspierany”.
Jak dodać takie urządzenie od zera? Z wyglądu przypomina Tuya PJ-ZGD01 control via MQTT | Zigbee2MQTT
Witam.
Kupiłem taki moduł jak w temacie, lecz niestety w zigbee2mqtt jest jako “niewspierany”.
Jak dodać takie urządzenie od zera? Z wyglądu przypomina Tuya PJ-ZGD01 control via MQTT | Zigbee2MQTT
OK, tylko przydałoby mi się na czymś bazować, podobnym. Bo nie wiem, jak się za to zabrać.
OK, chyba się udało i działa. Bazowałem na Tuya TS0603 control via MQTT | Zigbee2MQTT
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 = {
// 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: 'TS0601',
// The manufacturer name from: Device with modelID 'TS0601' is not supported.
manufacturerName: '_TZE20C_qw6nyd2u',
},
],
model: 'TS0601',
vendor: 'Tuya',
description: 'Fill in a description of the device here',
fromZigbee: [tuya.fz.datapoints],
toZigbee: [tuya.tz.datapoints],
onEvent: tuya.onEventSetTime, // Add this if you are getting no converter for 'commandMcuSyncTime'
configure: async (device, coordinatorEndpoint) => {
await tuya.configureMagicPacket(device, coordinatorEndpoint);
const endpoint = device.getEndpoint(1);
await reporting.bind(endpoint, coordinatorEndpoint, ['genBasic']);
},
exposes: [
e.binary('state', ea.STATE_SET, true, false).withDescription('Trigger the door movement'),
e.binary('garage_door_contact', ea.STATE, true, false).withDescription('Indicates if the garage door contact is closed (= true) or open (= false)'),
],
meta: {
tuyaDatapoints: [
[1, 'state', tuya.valueConverter.raw],
[3, 'garage_door_contact', tuya.valueConverter.trueFalseInvert],
[12, null, null],
],
},
extend: [
// A preferred new way of extending functionality.
],
};
module.exports = definition;
Jeszcze jedno, jak synchronizować stan przełącznika, gdy np brama jest zamknięta ?
Czyli udało się ale nie w całości, to powinien zapewnić konwerter, ktory napisałeś.
Co więc proponujesz ? Jestem w tym temacie bez doświadczenia, więc liczę na konstruktywne uwagi.
Podałeś jakiś model “bliźniaczy” do twojego - odszukaj go w kodzie na repozytorium i spróbuj znaleźć czy czegoś nie brakuje.
Znalazłem ten kod w zigbee-herdsman-converters/src/devices/tuya.ts at dff93c38faf5c8b31e14d60a9e208290b81eb711 · Koenkk/zigbee-herdsman-converters · GitHub
Może inaczej zadam pytanie, chciałbym by w dashboard, funkcja “state” była jako przycisk, coś jak toggle. Bo urządzenie po naciśnięciu przycisku działa monostabilne, czyli odpala przekaźnik na około 2 sekundy.