UNPKG

@pmouli/isy-matter-server

Version:

Service to expose an ISY device as a Matter Border router

243 lines (237 loc) 8.62 kB
/* THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT EDIT DIRECTLY. */ import { Family, UnitOfMeasure } from "../../../Definitions/Global/index.js"; import type { NodeInfo } from "../../../Model/NodeInfo.js"; import { ISY } from "../../../ISY.js"; import { ISYNode } from "../../../ISYNode.js"; import { ISYDeviceNode } from "../../ISYDeviceNode.js"; import { Base } from "../index.js"; import { Driver } from "../../../Definitions/Global/Drivers.js"; import { Insteon } from "../../../Definitions/index.js"; import { NodeFactory } from "../../NodeFactory.js"; type Commands = I3KeypadFlags.Commands.Type; type Drivers = I3KeypadFlags.Drivers.Type; export class I3KeypadFlags extends Base<Drivers, Commands> implements I3KeypadFlags.Interface { public override readonly commands = { GV0: this.updateMode, GV1: this.updateProgramLock, GV2: this.updateResumeDim, GV3: this.updateRelayAtFullOn, GV4: this.updateKeyBeep, GV5: this.updateDisableRf, GV6: this.updateButtonLock, GV7: this.updateErrorBlink, GV8: this.updateCleanupReports, QUERY: this.query, WDU: this.writeChanges }; static override nodeDefId = "I3KeypadFlags"; static override implements = ['I3KeypadFlags']; declare readonly nodeDefId: 'I3KeypadFlags'; constructor (isy: ISY, nodeInfo: NodeInfo<Family.Insteon>) { super(isy, nodeInfo); this.drivers.ST = Driver.create("ST", this, nodeInfo.state['ST'], { uom: UnitOfMeasure.Boolean, label: "Mode", name: "mode" }); this.drivers.GV1 = Driver.create("GV1", this, nodeInfo.state['GV1'], { uom: UnitOfMeasure.Boolean, label: "Program Lock", name: "programLock" }); this.drivers.GV2 = Driver.create("GV2", this, nodeInfo.state['GV2'], { uom: UnitOfMeasure.Boolean, label: "Resume Dim", name: "resumeDim" }); this.drivers.GV3 = Driver.create("GV3", this, nodeInfo.state['GV3'], { uom: UnitOfMeasure.Boolean, label: "Relay at Full On", name: "relayAtFullOn" }); this.drivers.GV4 = Driver.create("GV4", this, nodeInfo.state['GV4'], { uom: UnitOfMeasure.Boolean, label: "Key Beep", name: "keyBeep" }); this.drivers.GV5 = Driver.create("GV5", this, nodeInfo.state['GV5'], { uom: UnitOfMeasure.Boolean, label: "Disable RF", name: "disableRf" }); this.drivers.GV6 = Driver.create("GV6", this, nodeInfo.state['GV6'], { uom: UnitOfMeasure.Boolean, label: "Button Lock", name: "buttonLock" }); this.drivers.GV7 = Driver.create("GV7", this, nodeInfo.state['GV7'], { uom: UnitOfMeasure.Boolean, label: "Error Blink", name: "errorBlink" }); this.drivers.GV8 = Driver.create("GV8", this, nodeInfo.state['GV8'], { uom: UnitOfMeasure.Boolean, label: "Cleanup Reports", name: "cleanupReports" }); this.drivers.ERR = Driver.create("ERR", this, nodeInfo.state['ERR'], { uom: UnitOfMeasure.Index, label: "Responding", name: "responding" }); } async updateMode(value: Insteon.I3RelayDim) { return this.sendCommand("GV0", [value, UnitOfMeasure.Boolean]); } async updateProgramLock(value: Insteon.I3OnOff) { return this.sendCommand("GV1", [value, UnitOfMeasure.Boolean]); } async updateResumeDim(value: Insteon.I3OnOff) { return this.sendCommand("GV2", [value, UnitOfMeasure.Boolean]); } async updateRelayAtFullOn(value: Insteon.I3OnOff) { return this.sendCommand("GV3", [value, UnitOfMeasure.Boolean]); } async updateKeyBeep(value: Insteon.I3OnOff) { return this.sendCommand("GV4", [value, UnitOfMeasure.Boolean]); } async updateDisableRf(value: Insteon.I3OnOff) { return this.sendCommand("GV5", [value, UnitOfMeasure.Boolean]); } async updateButtonLock(value: Insteon.I3OnOff) { return this.sendCommand("GV6", [value, UnitOfMeasure.Boolean]); } async updateErrorBlink(value: Insteon.I3OnOff) { return this.sendCommand("GV7", [value, UnitOfMeasure.Boolean]); } async updateCleanupReports(value: Insteon.I3OnOff) { return this.sendCommand("GV8", [value, UnitOfMeasure.Boolean]); } async query() { return this.sendCommand("QUERY"); } async writeChanges() { return this.sendCommand("WDU"); } public get mode(): Insteon.I3RelayDim { return this.drivers.ST?.value; } public get programLock(): Insteon.I3OnOff { return this.drivers.GV1?.value; } public get resumeDim(): Insteon.I3OnOff { return this.drivers.GV2?.value; } public get relayAtFullOn(): Insteon.I3OnOff { return this.drivers.GV3?.value; } public get keyBeep(): Insteon.I3OnOff { return this.drivers.GV4?.value; } public get disableRf(): Insteon.I3OnOff { return this.drivers.GV5?.value; } public get buttonLock(): Insteon.I3OnOff { return this.drivers.GV6?.value; } public get errorBlink(): Insteon.I3OnOff { return this.drivers.GV7?.value; } public get cleanupReports(): Insteon.I3OnOff { return this.drivers.GV8?.value; } public get responding(): Insteon.Error { return this.drivers.ERR?.value; } } NodeFactory.register(I3KeypadFlags); export namespace I3KeypadFlags { export interface Interface extends Omit<InstanceType<typeof I3KeypadFlags>, keyof ISYDeviceNode<any, any, any, any>> { } export function is(node: ISYNode<any, any, any, any>): node is I3KeypadFlags { return ['I3KeypadFlags'].includes(node.nodeDefId); } export function isImplementedBy(node: ISYNode<any, any, any, any>): node is I3KeypadFlags { return ['I3KeypadFlags'].includes(node.nodeDefId); } export function create(isy: ISY, nodeInfo: NodeInfo<Family.Insteon>) { return new I3KeypadFlags(isy, nodeInfo); } export const Node = I3KeypadFlags; export const Class = I3KeypadFlags; export namespace Commands { export type Type = { GV0: ((value: Insteon.I3RelayDim) => Promise<boolean>) & { label: "Mode"; name: "updateMode"; }; GV1: ((value: Insteon.I3OnOff) => Promise<boolean>) & { label: "Program Lock"; name: "updateProgramLock"; }; GV2: ((value: Insteon.I3OnOff) => Promise<boolean>) & { label: "Resume Dim"; name: "updateResumeDim"; }; GV3: ((value: Insteon.I3OnOff) => Promise<boolean>) & { label: "Relay at Full On"; name: "updateRelayAtFullOn"; }; GV4: ((value: Insteon.I3OnOff) => Promise<boolean>) & { label: "Key Beep"; name: "updateKeyBeep"; }; GV5: ((value: Insteon.I3OnOff) => Promise<boolean>) & { label: "Disable RF"; name: "updateDisableRf"; }; GV6: ((value: Insteon.I3OnOff) => Promise<boolean>) & { label: "Button Lock"; name: "updateButtonLock"; }; GV7: ((value: Insteon.I3OnOff) => Promise<boolean>) & { label: "Error Blink"; name: "updateErrorBlink"; }; GV8: ((value: Insteon.I3OnOff) => Promise<boolean>) & { label: "Cleanup Reports"; name: "updateCleanupReports"; }; QUERY: (() => Promise<boolean>) & { label: "Query"; name: "query"; }; WDU: (() => Promise<boolean>) & { label: "Write Changes"; name: "writeChanges"; }; }; } export enum Commands { updateMode = 'GV0', updateProgramLock = 'GV1', updateResumeDim = 'GV2', updateRelayAtFullOn = 'GV3', updateKeyBeep = 'GV4', updateDisableRf = 'GV5', updateButtonLock = 'GV6', updateErrorBlink = 'GV7', updateCleanupReports = 'GV8', query = 'QUERY', writeChanges = 'WDU' } export namespace Drivers { export type Type = { ST: { uom: UnitOfMeasure.Boolean; value: Insteon.I3RelayDim; label: "Mode"; name: "mode"; }; GV1: { uom: UnitOfMeasure.Boolean; value: Insteon.I3OnOff; label: "Program Lock"; name: "programLock"; }; GV2: { uom: UnitOfMeasure.Boolean; value: Insteon.I3OnOff; label: "Resume Dim"; name: "resumeDim"; }; GV3: { uom: UnitOfMeasure.Boolean; value: Insteon.I3OnOff; label: "Relay at Full On"; name: "relayAtFullOn"; }; GV4: { uom: UnitOfMeasure.Boolean; value: Insteon.I3OnOff; label: "Key Beep"; name: "keyBeep"; }; GV5: { uom: UnitOfMeasure.Boolean; value: Insteon.I3OnOff; label: "Disable RF"; name: "disableRf"; }; GV6: { uom: UnitOfMeasure.Boolean; value: Insteon.I3OnOff; label: "Button Lock"; name: "buttonLock"; }; GV7: { uom: UnitOfMeasure.Boolean; value: Insteon.I3OnOff; label: "Error Blink"; name: "errorBlink"; }; GV8: { uom: UnitOfMeasure.Boolean; value: Insteon.I3OnOff; label: "Cleanup Reports"; name: "cleanupReports"; }; ERR: { uom: UnitOfMeasure.Index; value: Insteon.Error; label: "Responding"; name: "responding"; }; }; } export enum Drivers { mode = 'ST', programLock = 'GV1', resumeDim = 'GV2', relayAtFullOn = 'GV3', keyBeep = 'GV4', disableRf = 'GV5', buttonLock = 'GV6', errorBlink = 'GV7', cleanupReports = 'GV8', responding = 'ERR' } }