klf-200-api
Version:
This module provides a wrapper to the socket API of a Velux KLF-200 interface. You will need at least firmware 0.2.0.0.71 on your KLF interface for this library to work.
44 lines • 1.77 kB
JavaScript
"use strict";
import { GW_FRAME_COMMAND_REQ } from "./common.js";
export class GW_SET_LIMITATION_REQ extends GW_FRAME_COMMAND_REQ {
Nodes;
LimitationValueMin;
LimitationValueMax;
LimitationTime;
PriorityLevel;
CommandOriginator;
ParameterActive;
constructor(Nodes, LimitationValueMin, LimitationValueMax, LimitationTime, PriorityLevel = 3, CommandOriginator = 1, ParameterActive = 0) {
super(31);
this.Nodes = Nodes;
this.LimitationValueMin = LimitationValueMin;
this.LimitationValueMax = LimitationValueMax;
this.LimitationTime = LimitationTime;
this.PriorityLevel = PriorityLevel;
this.CommandOriginator = CommandOriginator;
this.ParameterActive = ParameterActive;
const buff = this.Data.subarray(this.offset);
buff.writeUInt16BE(this.SessionID, 0);
buff.writeUInt8(this.CommandOriginator, 2);
buff.writeUInt8(this.PriorityLevel, 3);
buff.writeUInt8(this.ParameterActive, 25);
buff.writeUInt16BE(this.LimitationValueMin, 26);
buff.writeUInt16BE(this.LimitationValueMax, 28);
buff.writeUInt8(this.LimitationTime, 30);
// Multiple nodes are provided
if (Array.isArray(this.Nodes)) {
if (this.Nodes.length > 20)
throw new Error("Too many nodes.");
buff.writeUInt8(this.Nodes.length, 4);
for (let nodeIndex = 0; nodeIndex < this.Nodes.length; nodeIndex++) {
const node = this.Nodes[nodeIndex];
buff.writeUInt8(node, 5 + nodeIndex);
}
}
else {
buff.writeUInt8(1, 4);
buff.writeUInt8(this.Nodes, 5);
}
}
}
//# sourceMappingURL=GW_SET_LIMITATION_REQ.js.map