UNPKG

@pmouli/isy-matter-server

Version:

Service to expose an ISY device as a Matter Border router

80 lines (74 loc) 3.35 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 { NodeFactory } from "../../NodeFactory.js"; type Commands = Shade.Commands.Type; type Drivers = Shade.Drivers.Type; class ShadeNode extends Base<Drivers, Commands> implements Shade.Interface { public override readonly commands = { DON: this.open, DOF: this.close }; static override nodeDefId = "SHADE"; static override implements = ['SHADE']; declare readonly nodeDefId: 'SHADE'; constructor (isy: ISY, nodeInfo: NodeInfo<Family.Poly>) { super(isy, nodeInfo); this.drivers.ST = Driver.create("ST", this, nodeInfo.state['ST'], { uom: UnitOfMeasure.BarrierStatus, label: "Status", name: "status" }); } async open() { return this.sendCommand("DON"); } async close() { return this.sendCommand("DOF"); } public get status(): (0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101) { return this.drivers.ST?.value; } } NodeFactory.register(ShadeNode); export namespace Shade { export interface Interface extends Omit<InstanceType<typeof ShadeNode>, keyof ISYDeviceNode<any, any, any, any>> { } export function is(node: ISYNode<any, any, any, any>): node is ShadeNode { return ['SHADE'].includes(node.nodeDefId); } export function isImplementedBy(node: ISYNode<any, any, any, any>): node is ShadeNode { return ['SHADE'].includes(node.nodeDefId); } export function create(isy: ISY, nodeInfo: NodeInfo<Family.Poly>) { return new ShadeNode(isy, nodeInfo); } export const Node = ShadeNode; export const Class = ShadeNode; export namespace Commands { export type Type = { DON: (() => Promise<boolean>) & { label: "Open"; name: "open"; }; DOF: (() => Promise<boolean>) & { label: "Close"; name: "close"; }; }; } export enum Commands { open = 'DON', close = 'DOF' } export namespace Drivers { export type Type = { ST: { uom: UnitOfMeasure.BarrierStatus; value: (0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101); label: "Status"; name: "status"; }; }; } export enum Drivers { status = 'ST' } }