@pmouli/isy-matter-server
Version:
Service to expose an ISY device as a Matter Border router
243 lines (237 loc) • 8.62 kB
text/typescript
/* 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'
}
}