zigbee-herdsman-converters
Version:
Collection of device converters to be used with zigbee-herdsman
163 lines • 8.22 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.definitions = void 0;
const exposes = __importStar(require("../lib/exposes"));
const legacy = __importStar(require("../lib/legacy"));
const tuya = __importStar(require("../lib/tuya"));
const e = exposes.presets;
const ea = exposes.access;
exports.definitions = [
{
fingerprint: tuya.fingerprint("TS0601", ["_TZE200_wt9agwf3", "_TZE200_5uodvhgc", "_TZE200_1n2zev06"]),
model: "FK_V02",
vendor: "FrankEver",
description: "Zigbee smart water valve",
fromZigbee: [legacy.fz.frankever_valve],
toZigbee: [legacy.tz.tuya_switch_state, legacy.tz.frankever_threshold, legacy.tz.frankever_timer],
exposes: [
e.switch().setAccess("state", ea.STATE_SET),
e
.numeric("threshold", exposes.access.STATE_SET)
.withValueMin(0)
.withValueMax(100)
.withUnit("%")
.withDescription("Valve open percentage (multiple of 10)"),
e
.numeric("timer", exposes.access.STATE_SET)
.withValueMin(0)
.withValueMax(600)
.withUnit("min")
.withDescription("Countdown timer in minutes"),
],
},
{
fingerprint: [{ modelID: "TS0601", manufacturerName: "_TZE200_nbqnmkee" }],
model: "FK-BV05",
vendor: "FrankEver",
description: "Zigbee smart water valve with flow meter and temperature sensor",
extend: [tuya.modernExtend.tuyaBase({ dp: true })],
exposes: [
// --- Valve Controls ---
e.switch().setAccess("state", ea.STATE_SET),
e
.numeric("threshold", ea.STATE_SET)
.withUnit("%")
.withValueMin(0)
.withValueMax(100)
.withValueStep(10)
.withDescription("Target valve opening percentage"),
e.numeric("position", ea.STATE).withUnit("%").withDescription("Current valve position"),
e.enum("power_off_state", ea.STATE_SET, ["off", "on", "maintain"]).withDescription("Power-off status behavior"),
e.enum("weather_delay", ea.STATE_SET, ["cancel", "24h", "48h", "72h"]).withDescription("Weather delay"),
e
.numeric("countdown", ea.STATE_SET)
.withUnit("s")
.withValueMin(0)
.withValueMax(86400)
.withDescription("Irrigation Duration (countdown in seconds)"),
// --- Sensors ---
e.numeric("water_temperature", ea.STATE).withUnit("°C").withDescription("Water temperature"),
e.numeric("water_consumed_last", ea.STATE).withUnit("L").withDescription("Single water consumption (Last irrigation)"),
e.numeric("water_consumed_total", ea.STATE).withUnit("L").withDescription("Daily water consumption total"),
e.enum("water_leakage_state", ea.STATE, ["water_leakage_yes", "water_leakage_no"]).withDescription("Leak detection status"),
// --- Irrigation Volume Limits ---
e.binary("single_irrigation_switch", ea.STATE_SET, "ON", "OFF").withDescription("Enable single irrigation volume limit"),
e
.numeric("single_irrigation_set", ea.STATE_SET)
.withUnit("L")
.withValueMin(0)
.withValueMax(1000)
.withDescription("Single irrigation water volume setting"),
e.binary("day_irrigation_switch", ea.STATE_SET, "ON", "OFF").withDescription("Enable daily irrigation volume limit"),
e
.numeric("day_irrigation_set", ea.STATE_SET)
.withUnit("L")
.withValueMin(0)
.withValueMax(1000)
.withDescription("Daily irrigation water volume setting"),
// --- Alarms and Thresholds ---
e.binary("water_volume_alarm_switch", ea.STATE_SET, "ON", "OFF").withDescription("Water volume alarm switch"),
e
.numeric("water_volume_alarm_set", ea.STATE_SET)
.withUnit("L")
.withValueMin(0)
.withValueMax(1000)
.withDescription("Alarm water volume setting value"),
e.binary("water_temp_alarm_switch", ea.STATE_SET, "ON", "OFF").withDescription("Water temperature alarm switch"),
e
.numeric("water_temp_alarm_max", ea.STATE_SET)
.withUnit("°C")
.withValueMin(0)
.withValueMax(120)
.withDescription("Alarm water temperature maximum setting"),
e
.numeric("water_temp_alarm_min", ea.STATE_SET)
.withUnit("°C")
.withValueMin(0)
.withValueMax(120)
.withDescription("Alarm water temperature minimum setting"),
// --- Maintenance ---
e
.binary("creep_switch", ea.STATE_SET, "ON", "OFF")
.withDescription("Peristaltic function switch (Auto cycle anti-calc) - KEEP OFF for normal use"),
],
meta: {
tuyaDatapoints: [
[1, "state", tuya.valueConverter.onOff],
[2, "threshold", tuya.valueConverter.raw],
[3, "position", tuya.valueConverter.raw],
[5, "water_consumed_last", tuya.valueConverter.raw],
[6, "water_consumed_total", tuya.valueConverter.raw],
[10, "weather_delay", tuya.valueConverterBasic.lookup({ cancel: 0, "24h": 1, "48h": 2, "72h": 3 })],
[11, "countdown", tuya.valueConverter.raw],
[22, "water_temperature", tuya.valueConverter.raw],
[101, "water_leakage_state", tuya.valueConverterBasic.lookup({ water_leakage_yes: 0, water_leakage_no: 1 })],
[102, "single_irrigation_switch", tuya.valueConverter.onOff],
[103, "single_irrigation_set", tuya.valueConverter.raw],
[104, "day_irrigation_switch", tuya.valueConverter.onOff],
[105, "day_irrigation_set", tuya.valueConverter.raw],
[106, "water_volume_alarm_switch", tuya.valueConverter.onOff],
[107, "water_volume_alarm_set", tuya.valueConverter.raw],
[108, "water_temp_alarm_switch", tuya.valueConverter.onOff],
[109, "water_temp_alarm_max", tuya.valueConverter.raw],
[110, "power_off_state", tuya.valueConverterBasic.lookup({ off: 0, on: 1, maintain: 2 })],
[112, "creep_switch", tuya.valueConverter.onOff],
[113, "water_temp_alarm_min", tuya.valueConverter.raw],
],
},
},
];
//# sourceMappingURL=frankever.js.map