grenton-ts 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +86 -0
  3. package/dist/analog-din/fv02_01/analog-in.ts +271 -0
  4. package/dist/clu/calendar/v1/calendar.ts +308 -0
  5. package/dist/clu/clu-zwave-2/fv515_03/clu-zwave-2.ts +1302 -0
  6. package/dist/clu/event-scheduler/v1/event-scheduler.ts +537 -0
  7. package/dist/clu/multi-fan-ac-thermostat/v1/multi-fan-ac-thermostat.ts +1163 -0
  8. package/dist/clu/pid-controller/v1/pid-controller.ts +536 -0
  9. package/dist/clu/presence-sensor/v1/presence-sensor.ts +313 -0
  10. package/dist/clu/presence-sensor/v2/presence-sensor.ts +470 -0
  11. package/dist/clu/push/v1/push.ts +261 -0
  12. package/dist/clu/scheduler/v1/scheduler.ts +304 -0
  13. package/dist/clu/statistics/v1/statistics.ts +413 -0
  14. package/dist/clu/statistics-pulse/v1/statistics-pulse.ts +218 -0
  15. package/dist/clu/sunrise-sunset-calendar/v1/sunrise-sunset-calendar.ts +389 -0
  16. package/dist/clu/sunrise-sunset-calendar/v2/sunrise-sunset-calendar.ts +659 -0
  17. package/dist/clu/sunrise-sunset-calendar/v3/sunrise-sunset-calendar.ts +659 -0
  18. package/dist/clu/thermostat/v1/thermostat.ts +768 -0
  19. package/dist/clu/thermostat/v2/thermostat.ts +861 -0
  20. package/dist/clu/timer/v1/timer.ts +369 -0
  21. package/dist/core/execution-builder.ts +55 -0
  22. package/dist/core/remote-gate.ts +17 -0
  23. package/dist/digital-in-din/fv02_01/din.ts +310 -0
  24. package/dist/examples/light_turned_on_by_calendar/Clu_OnInit.ts +26 -0
  25. package/dist/examples/light_turned_on_by_presence_sensor/Clu_OnInit.ts +35 -0
  26. package/dist/examples/light_turned_on_by_switch/Clu_OnInit.ts +16 -0
  27. package/dist/gate/cool-master/v1/cool-master.ts +782 -0
  28. package/dist/gate/cool-master-net/v1/cool-master-net.ts +334 -0
  29. package/dist/gate/denon-marantz-avr/v1/denon-marantz-avr.ts +724 -0
  30. package/dist/gate/heos/v1/heos.ts +1224 -0
  31. package/dist/gate/http/fv1000_03/clu-gate-http.ts +405 -0
  32. package/dist/gate/http/fv1000_03_hv1/clu-gate-http.ts +352 -0
  33. package/dist/gate/http/fv1100_03/clu-gate-http.ts +589 -0
  34. package/dist/gate/http/fv1110_03/clu-gate-http.ts +589 -0
  35. package/dist/gate/http/fv1300_03/clu-gate-http.ts +589 -0
  36. package/dist/gate/http/fv1400_03/clu-gate-http.ts +677 -0
  37. package/dist/gate/http-listener/v1/http-listener.ts +299 -0
  38. package/dist/gate/http-listener/v2/http-listener.ts +325 -0
  39. package/dist/gate/http-request/v1/http-request.ts +645 -0
  40. package/dist/gate/http-request/v2/http-request.ts +709 -0
  41. package/dist/gate/input/v1/input.ts +171 -0
  42. package/dist/gate/jablotron/v1/jablotron.ts +100 -0
  43. package/dist/gate/jablotron-device/v1/jablotron-device.ts +171 -0
  44. package/dist/gate/jablotron-output/v1/jablotron-output.ts +240 -0
  45. package/dist/gate/jablotron-section/v1/jablotron-section.ts +260 -0
  46. package/dist/gate/modbus/v1/modbus.ts +609 -0
  47. package/dist/gate/modbus/v2/modbus.ts +690 -0
  48. package/dist/gate/modbus-client/v1/modbus-client.ts +827 -0
  49. package/dist/gate/modbus-rtu/v1/modbus-rtu.ts +911 -0
  50. package/dist/gate/modbus-server/v1/modbus-server.ts +405 -0
  51. package/dist/gate/modbus-slave-config-rtu/v1/modbus-slave-config-rtu.ts +160 -0
  52. package/dist/gate/modbus-slave-rtu/v1/modbus-slave-rtu.ts +371 -0
  53. package/dist/gate/modbus-value/v1/modbus-value.ts +856 -0
  54. package/dist/gate/music-cast/v1/music-cast.ts +1298 -0
  55. package/dist/gate/output/v1/output.ts +240 -0
  56. package/dist/gate/satel/v1/satel.ts +359 -0
  57. package/dist/gate/satel-input/v1/satel-input.ts +171 -0
  58. package/dist/gate/satel-output/v1/satel-output.ts +240 -0
  59. package/dist/gate/satel-zone/v1/satel-zone.ts +235 -0
  60. package/dist/gate/sonos/v1/sonos.ts +934 -0
  61. package/dist/gate/timer/v2/timer.ts +253 -0
  62. package/dist/gate/zone/v1/zone.ts +235 -0
  63. package/dist/io-module-din-8/fv02_02/din.ts +354 -0
  64. package/dist/io-module-din-8/fv02_02/dout.ts +360 -0
  65. package/dist/one-wire/fv01_10/onew-sensor.ts +269 -0
  66. package/dist/one-wire/fv01_28/onew-sensor.ts +269 -0
  67. package/dist/one-wire/fv02_28/onew-sensor.ts +350 -0
  68. package/dist/one-wire/fv03_28/onew-sensor.ts +435 -0
  69. package/dist/relay-din-2/fv02_02/dout.ts +544 -0
  70. package/dist/relay-din-4/fv01_02/dout.ts +340 -0
  71. package/dist/relay-din-4/fv02_02/dout.ts +368 -0
  72. package/dist/roller-shutter-din-3/fv03_02/roller-shutter.ts +1078 -0
  73. package/dist/smart-panel-fm-4/fv03_03/panel-button.ts +550 -0
  74. package/dist/smart-panel-fm-4/fv03_03/panel-sens-light.ts +238 -0
  75. package/dist/smart-panel-fm-4/fv03_03/panel-sens-temp.ts +239 -0
  76. package/dist/smart-panel-fm-4/fv03_03/panel.ts +700 -0
  77. package/dist/smart-panel-fm-4/fv04_03/panel-button.ts +567 -0
  78. package/dist/smart-panel-fm-4/fv04_03/panel-page.ts +516 -0
  79. package/dist/smart-panel-fm-4/fv04_03/panel-sens-light.ts +238 -0
  80. package/dist/smart-panel-fm-4/fv04_03/panel-sens-temp.ts +239 -0
  81. package/dist/smart-panel-fm-4/fv04_03/panel.ts +1026 -0
  82. package/dist/smart-panel-fm-4/fv05_03/panel-button.ts +567 -0
  83. package/dist/smart-panel-fm-4/fv05_03/panel-page.ts +620 -0
  84. package/dist/smart-panel-fm-4/fv05_03/panel-sens-light.ts +238 -0
  85. package/dist/smart-panel-fm-4/fv05_03/panel-sens-temp.ts +266 -0
  86. package/dist/smart-panel-fm-4/fv05_03/panel.ts +1109 -0
  87. package/dist/smart-panel-fm-4/fv06_03/panel-button.ts +567 -0
  88. package/dist/smart-panel-fm-4/fv06_03/panel-page.ts +877 -0
  89. package/dist/smart-panel-fm-4/fv06_03/panel-sens-light.ts +238 -0
  90. package/dist/smart-panel-fm-4/fv06_03/panel-sens-temp.ts +297 -0
  91. package/dist/smart-panel-fm-4/fv06_03/panel.ts +1138 -0
  92. package/dist/smart-panel-fm-4/fv07_03/panel-button.ts +567 -0
  93. package/dist/smart-panel-fm-4/fv07_03/panel-page.ts +864 -0
  94. package/dist/smart-panel-fm-4/fv07_03/panel-sens-light.ts +238 -0
  95. package/dist/smart-panel-fm-4/fv07_03/panel-sens-temp.ts +297 -0
  96. package/dist/smart-panel-fm-4/fv07_03/panel.ts +1135 -0
  97. package/dist/touch-panel-fm-4/fv01_02/panel-button.ts +418 -0
  98. package/dist/touch-panel-fm-4/fv01_02/panel-sens-light.ts +238 -0
  99. package/dist/touch-panel-fm-4/fv01_02/panel-sens-temp.ts +257 -0
  100. package/dist/touch-panel-fm-4/fv01_02/panel.ts +75 -0
  101. package/dist/touch-panel-fm-4/fv01_02/power-supply-voltage.ts +322 -0
  102. package/dist/touch-panel-fm-8/fv01_02/panel-button.ts +418 -0
  103. package/dist/touch-panel-fm-8/fv01_02/panel-sens-light.ts +238 -0
  104. package/dist/touch-panel-fm-8/fv01_02/panel-sens-temp.ts +270 -0
  105. package/dist/touch-panel-fm-8/fv01_02/panel.ts +75 -0
  106. package/dist/touch-panel-fm-8/fv01_02/power-supply-voltage.ts +322 -0
  107. package/package.json +16 -0
@@ -0,0 +1,270 @@
1
+ // Created from: packages/grenton-api/interfaces/module_2_0_TOUCH_PANEL_FM_8_fv01_02.xml, object name="PANELSENSTEMP" version="01.02"
2
+
3
+ import { rawExecutionBuilderFactory } from "../../core/execution-builder"
4
+ import { RemoteGate } from "../../core/remote-gate"
5
+
6
+ enum EventType {
7
+ OnValueChange = 0,
8
+ OnValueRise = 1,
9
+ OnValueLower = 2,
10
+ OnOutOfRange = 3,
11
+ }
12
+
13
+ enum PropertyType {
14
+ Value = 0,
15
+ Threshold = 1,
16
+ Sensitivity = 2,
17
+ MinValue = 3,
18
+ MaxValue = 4,
19
+ StatisticState = 9,
20
+ }
21
+
22
+ enum StatisticStateType {
23
+ Off = 0,
24
+ On = 1,
25
+ }
26
+
27
+ declare class PanelSensTempRaw {
28
+ add_event(event: EventType, callback: () => void): void;
29
+ get(property: PropertyType): any;
30
+ set(property: PropertyType, value: any): void;
31
+ }
32
+
33
+ interface IPanelSensTemp {
34
+ /**
35
+ * Zdarzenie wywoływane w przypadku zmiany wartości cechy Value
36
+ * @param callback
37
+ */
38
+ addOnValueChange: (callback: () => void) => void
39
+ /**
40
+ * Zdarzenie wywoływane przy zmianie wartości na wyższą (zbocze narastające)
41
+ * @param callback
42
+ */
43
+ addOnValueRise: (callback: () => void) => void
44
+ /**
45
+ * Zdarzenie wywoływane przy zmianie wartości na niższą (zbocze opadające)
46
+ * @param callback
47
+ */
48
+ addOnValueLower: (callback: () => void) => void
49
+ /**
50
+ * Zdarzenie wywoływane, gdy wartość na wejściu znajduje się poza wyznaczonym zakresem (MinValue - MaxValue)
51
+ * @param callback
52
+ */
53
+ addOnOutOfRange: (callback: () => void) => void
54
+ /** Wartość wejścia w zakresie od 0.0 do 40.0 (°C) */
55
+ readonly value: number
56
+ /** Wielkość histerezy (dokładność 0.1°C) określająca czułość, przy której następuje wygenerowanie zdarzeń: OnValueChange, OnValueLower, OnValueRise */
57
+ threshold: number
58
+ /** Czas (w ms) dla którego próbkowane wartości są uśredniane */
59
+ sensitivity: number
60
+ /** Minimalna wartość cechy Value, której przekroczenie wywołuje zdarzenie OnOutOfRange */
61
+ minValue: number
62
+ /** Maksymalna wartość cechy Value, której przekroczenie wywołuje zdarzenie OnOutOfRange */
63
+ maxValue: number
64
+ /** Włącza raportowanie pomiaru do modułu statystyk */
65
+ statisticState: StatisticStateType
66
+ }
67
+
68
+ class PanelSensTempRemote implements IPanelSensTemp {
69
+ constructor(private objectName: string, private gate: RemoteGate) {
70
+ }
71
+
72
+ addOnValueChange(_callback: () => void): void {
73
+ // Remote events are not supported
74
+ }
75
+ addOnValueRise(_callback: () => void): void {
76
+ // Remote events are not supported
77
+ }
78
+ addOnValueLower(_callback: () => void): void {
79
+ // Remote events are not supported
80
+ }
81
+ addOnOutOfRange(_callback: () => void): void {
82
+ // Remote events are not supported
83
+ }
84
+
85
+ /** Wartość wejścia w zakresie od 0.0 do 40.0 (°C) */
86
+ get value(): number {
87
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
88
+ .get()
89
+ .addParameter(PropertyType.Value)
90
+ .build();
91
+ return this.gate.runScript(cmd!);
92
+ }
93
+
94
+ /** Wielkość histerezy (dokładność 0.1°C) określająca czułość, przy której następuje wygenerowanie zdarzeń: OnValueChange, OnValueLower, OnValueRise */
95
+ get threshold(): number {
96
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
97
+ .get()
98
+ .addParameter(PropertyType.Threshold)
99
+ .build();
100
+ return this.gate.runScript(cmd!);
101
+ }
102
+ set threshold(value: number) {
103
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
104
+ .set()
105
+ .addParameter(PropertyType.Threshold)
106
+ .addParameter(value)
107
+ .build();
108
+ this.gate.runScript(cmd!);
109
+ }
110
+
111
+ /** Czas (w ms) dla którego próbkowane wartości są uśredniane */
112
+ get sensitivity(): number {
113
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
114
+ .get()
115
+ .addParameter(PropertyType.Sensitivity)
116
+ .build();
117
+ return this.gate.runScript(cmd!);
118
+ }
119
+ set sensitivity(value: number) {
120
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
121
+ .set()
122
+ .addParameter(PropertyType.Sensitivity)
123
+ .addParameter(value)
124
+ .build();
125
+ this.gate.runScript(cmd!);
126
+ }
127
+
128
+ /** Minimalna wartość cechy Value, której przekroczenie wywołuje zdarzenie OnOutOfRange */
129
+ get minValue(): number {
130
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
131
+ .get()
132
+ .addParameter(PropertyType.MinValue)
133
+ .build();
134
+ return this.gate.runScript(cmd!);
135
+ }
136
+ set minValue(value: number) {
137
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
138
+ .set()
139
+ .addParameter(PropertyType.MinValue)
140
+ .addParameter(value)
141
+ .build();
142
+ this.gate.runScript(cmd!);
143
+ }
144
+
145
+ /** Maksymalna wartość cechy Value, której przekroczenie wywołuje zdarzenie OnOutOfRange */
146
+ get maxValue(): number {
147
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
148
+ .get()
149
+ .addParameter(PropertyType.MaxValue)
150
+ .build();
151
+ return this.gate.runScript(cmd!);
152
+ }
153
+ set maxValue(value: number) {
154
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
155
+ .set()
156
+ .addParameter(PropertyType.MaxValue)
157
+ .addParameter(value)
158
+ .build();
159
+ this.gate.runScript(cmd!);
160
+ }
161
+
162
+ /** Włącza raportowanie pomiaru do modułu statystyk */
163
+ get statisticState(): StatisticStateType {
164
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
165
+ .get()
166
+ .addParameter(PropertyType.StatisticState)
167
+ .build();
168
+ return this.gate.runScript(cmd!);
169
+ }
170
+ set statisticState(value: StatisticStateType) {
171
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
172
+ .set()
173
+ .addParameter(PropertyType.StatisticState)
174
+ .addParameter(value)
175
+ .build();
176
+ this.gate.runScript(cmd!);
177
+ }
178
+ }
179
+
180
+ class PanelSensTemp implements IPanelSensTemp {
181
+ private onValueChangeCallbacks: Array<() => void> = [];
182
+ private onValueRiseCallbacks: Array<() => void> = [];
183
+ private onValueLowerCallbacks: Array<() => void> = [];
184
+ private onOutOfRangeCallbacks: Array<() => void> = [];
185
+
186
+ constructor(private raw: PanelSensTempRaw) {
187
+ this.raw.add_event(EventType.OnValueChange, () => {
188
+ this.onValueChangeCallbacks.forEach(callback => { callback(); });
189
+ });
190
+ this.raw.add_event(EventType.OnValueRise, () => {
191
+ this.onValueRiseCallbacks.forEach(callback => { callback(); });
192
+ });
193
+ this.raw.add_event(EventType.OnValueLower, () => {
194
+ this.onValueLowerCallbacks.forEach(callback => { callback(); });
195
+ });
196
+ this.raw.add_event(EventType.OnOutOfRange, () => {
197
+ this.onOutOfRangeCallbacks.forEach(callback => { callback(); });
198
+ });
199
+ }
200
+
201
+ /**
202
+ * Zdarzenie wywoływane w przypadku zmiany wartości cechy Value
203
+ * @param callback
204
+ */
205
+ addOnValueChange(callback: () => void): void {
206
+ this.onValueChangeCallbacks.push(callback);
207
+ }
208
+ /**
209
+ * Zdarzenie wywoływane przy zmianie wartości na wyższą (zbocze narastające)
210
+ * @param callback
211
+ */
212
+ addOnValueRise(callback: () => void): void {
213
+ this.onValueRiseCallbacks.push(callback);
214
+ }
215
+ /**
216
+ * Zdarzenie wywoływane przy zmianie wartości na niższą (zbocze opadające)
217
+ * @param callback
218
+ */
219
+ addOnValueLower(callback: () => void): void {
220
+ this.onValueLowerCallbacks.push(callback);
221
+ }
222
+ /**
223
+ * Zdarzenie wywoływane, gdy wartość na wejściu znajduje się poza wyznaczonym zakresem (MinValue - MaxValue)
224
+ * @param callback
225
+ */
226
+ addOnOutOfRange(callback: () => void): void {
227
+ this.onOutOfRangeCallbacks.push(callback);
228
+ }
229
+ /** Wartość wejścia w zakresie od 0.0 do 40.0 (°C) */
230
+ get value(): number {
231
+ return this.raw.get(PropertyType.Value);
232
+ }
233
+ /** Wielkość histerezy (dokładność 0.1°C) określająca czułość, przy której następuje wygenerowanie zdarzeń: OnValueChange, OnValueLower, OnValueRise */
234
+ get threshold(): number {
235
+ return this.raw.get(PropertyType.Threshold);
236
+ }
237
+ set threshold(value: number) {
238
+ this.raw.set(PropertyType.Threshold, value);
239
+ }
240
+ /** Czas (w ms) dla którego próbkowane wartości są uśredniane */
241
+ get sensitivity(): number {
242
+ return this.raw.get(PropertyType.Sensitivity);
243
+ }
244
+ set sensitivity(value: number) {
245
+ this.raw.set(PropertyType.Sensitivity, value);
246
+ }
247
+ /** Minimalna wartość cechy Value, której przekroczenie wywołuje zdarzenie OnOutOfRange */
248
+ get minValue(): number {
249
+ return this.raw.get(PropertyType.MinValue);
250
+ }
251
+ set minValue(value: number) {
252
+ this.raw.set(PropertyType.MinValue, value);
253
+ }
254
+ /** Maksymalna wartość cechy Value, której przekroczenie wywołuje zdarzenie OnOutOfRange */
255
+ get maxValue(): number {
256
+ return this.raw.get(PropertyType.MaxValue);
257
+ }
258
+ set maxValue(value: number) {
259
+ this.raw.set(PropertyType.MaxValue, value);
260
+ }
261
+ /** Włącza raportowanie pomiaru do modułu statystyk */
262
+ get statisticState(): StatisticStateType {
263
+ return this.raw.get(PropertyType.StatisticState);
264
+ }
265
+ set statisticState(value: StatisticStateType) {
266
+ this.raw.set(PropertyType.StatisticState, value);
267
+ }
268
+ }
269
+
270
+ export { PanelSensTemp, PanelSensTempRaw, PanelSensTempRemote, StatisticStateType }
@@ -0,0 +1,75 @@
1
+ // Created from: packages/grenton-api/interfaces/module_2_0_TOUCH_PANEL_FM_8_fv01_02.xml, object name="PANEL" version="01.02"
2
+
3
+ import { rawExecutionBuilderFactory } from "../../core/execution-builder"
4
+ import { RemoteGate } from "../../core/remote-gate"
5
+
6
+ enum PropertyType {
7
+ BuzzerValue = 13,
8
+ }
9
+
10
+ enum BuzzerValueType {
11
+ Off = 0,
12
+ On = 1,
13
+ }
14
+
15
+ declare class PanelRaw {
16
+ get(property: PropertyType): any;
17
+ set(property: PropertyType, value: any): void;
18
+ }
19
+
20
+ interface IPanel {
21
+ /** Sterowanie sygnalizacją dźwiękową: 0 - Off, 1 - On */
22
+ readonly buzzerValue: BuzzerValueType
23
+ /**
24
+ * Ustawia wartość BuzzerValue: 0 - Off, 1 - On
25
+ * @param {BuzzerValueType} value
26
+ */
27
+ setBuzzerValue: (value: BuzzerValueType) => void
28
+ }
29
+
30
+ class PanelRemote implements IPanel {
31
+ constructor(private objectName: string, private gate: RemoteGate) {
32
+ }
33
+
34
+ /** Sterowanie sygnalizacją dźwiękową: 0 - Off, 1 - On */
35
+ get buzzerValue(): BuzzerValueType {
36
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
37
+ .get()
38
+ .addParameter(PropertyType.BuzzerValue)
39
+ .build();
40
+ return this.gate.runScript(cmd!);
41
+ }
42
+
43
+ /**
44
+ * Ustawia wartość BuzzerValue: 0 - Off, 1 - On
45
+ * @param {BuzzerValueType} value
46
+ */
47
+ setBuzzerValue(value: BuzzerValueType): void {
48
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
49
+ .set()
50
+ .addParameter(PropertyType.BuzzerValue)
51
+ .addParameter(value)
52
+ .build();
53
+ this.gate.runScript(cmd!);
54
+ }
55
+ }
56
+
57
+ class Panel implements IPanel {
58
+ constructor(private raw: PanelRaw) {
59
+ }
60
+
61
+ /** Sterowanie sygnalizacją dźwiękową: 0 - Off, 1 - On */
62
+ get buzzerValue(): BuzzerValueType {
63
+ return this.raw.get(PropertyType.BuzzerValue);
64
+ }
65
+
66
+ /**
67
+ * Ustawia wartość BuzzerValue: 0 - Off, 1 - On
68
+ * @param {BuzzerValueType} value
69
+ */
70
+ setBuzzerValue(value: BuzzerValueType): void {
71
+ this.raw.set(PropertyType.BuzzerValue, value);
72
+ }
73
+ }
74
+
75
+ export { Panel, PanelRaw, PanelRemote, BuzzerValueType }
@@ -0,0 +1,322 @@
1
+ // Created from: packages/grenton-api/interfaces/module_2_0_TOUCH_PANEL_FM_8_fv01_02.xml, object name="PowerSupplyVoltage" version="01.02"
2
+
3
+ import { rawExecutionBuilderFactory } from "../../core/execution-builder"
4
+ import { RemoteGate } from "../../core/remote-gate"
5
+
6
+ enum EventType {
7
+ OnValueChange = 0,
8
+ OnValueLower = 1,
9
+ OnValueRise = 2,
10
+ OnOutOfRange = 3,
11
+ OnInRange = 6,
12
+ }
13
+
14
+ enum PropertyType {
15
+ Value = 0,
16
+ ValuePercent = 1,
17
+ Sensitivity = 3,
18
+ MinValue = 5,
19
+ MaxValue = 6,
20
+ }
21
+
22
+ declare class PowerSupplyVoltageRaw {
23
+ add_event(event: EventType, callback: () => void): void;
24
+ get(property: PropertyType): any;
25
+ set(property: PropertyType, value: any): void;
26
+ }
27
+
28
+ interface IPowerSupplyVoltage {
29
+ /**
30
+ * Zdarzenie wywoływane przy zmianie wartości napięcia zasilania o wartość cechy Sensitivity
31
+ * @param callback
32
+ */
33
+ addOnValueChange: (callback: () => void) => void
34
+ /**
35
+ * Zdarzenie wywoływane przy zmianie wartości napięcia zasilania na niższą o wartość cechy Sensitivity (zbocze opadające)
36
+ * @param callback
37
+ */
38
+ addOnValueLower: (callback: () => void) => void
39
+ /**
40
+ * Zdarzenie wywoływane przy zmianie wartości napięcia zasilania na wyższą o wartość cechy Sensitivity (zbocze narastające)
41
+ * @param callback
42
+ */
43
+ addOnValueRise: (callback: () => void) => void
44
+ /**
45
+ * Zdarzenie wywoływane gdy wartość napięcia zasilania znajduje się poza wyznaczonym zakresem (MinValue - MaxValue)
46
+ * @param callback
47
+ */
48
+ addOnOutOfRange: (callback: () => void) => void
49
+ /**
50
+ * Zdarzenie wywoływane gdy wartość napięcia zasilania powróci do wyznaczonego zakresu (MinValue - MaxValue)
51
+ * @param callback
52
+ */
53
+ addOnInRange: (callback: () => void) => void
54
+ /** Wartość napięcia zasilania */
55
+ readonly value: number
56
+ /** Wartość napięcia zasilania jako procent wartości maksymalnej (MaxValue) */
57
+ readonly valuePercent: number
58
+ /** Czułość - minimalna zmiana wartości napięcia zasilania, która wywołuje zdarzenia OnValueChange, OnValueLower lub OnValueRise */
59
+ sensitivity: number
60
+ /**
61
+ * Ustawia czułość pomiaru napięcia zasilania
62
+ * @param {number} value
63
+ */
64
+ setSensitivity: (value: number) => void
65
+ /** Wartość minimalna napięcia zasilania po przekroczeniu której generowane jest zdarzenie OnOutOfRange */
66
+ minValue: number
67
+ /**
68
+ * Ustawia wartość MinValue
69
+ * @param {number} value
70
+ */
71
+ setMinValue: (value: number) => void
72
+ /** Wartość maksymalna napięcia zasilania po przekroczeniu której generowane jest zdarzenie OnOutOfRange */
73
+ maxValue: number
74
+ /**
75
+ * Ustawia wartość MaxValue
76
+ * @param {number} value
77
+ */
78
+ setMaxValue: (value: number) => void
79
+ }
80
+
81
+ class PowerSupplyVoltageRemote implements IPowerSupplyVoltage {
82
+ constructor(private objectName: string, private gate: RemoteGate) {
83
+ }
84
+
85
+ addOnValueChange(_callback: () => void): void {
86
+ // Remote events are not supported
87
+ }
88
+ addOnValueLower(_callback: () => void): void {
89
+ // Remote events are not supported
90
+ }
91
+ addOnValueRise(_callback: () => void): void {
92
+ // Remote events are not supported
93
+ }
94
+ addOnOutOfRange(_callback: () => void): void {
95
+ // Remote events are not supported
96
+ }
97
+ addOnInRange(_callback: () => void): void {
98
+ // Remote events are not supported
99
+ }
100
+
101
+ /** Wartość napięcia zasilania */
102
+ get value(): number {
103
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
104
+ .get()
105
+ .addParameter(PropertyType.Value)
106
+ .build();
107
+ return this.gate.runScript(cmd!);
108
+ }
109
+
110
+ /** Wartość napięcia zasilania jako procent wartości maksymalnej (MaxValue) */
111
+ get valuePercent(): number {
112
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
113
+ .get()
114
+ .addParameter(PropertyType.ValuePercent)
115
+ .build();
116
+ return this.gate.runScript(cmd!);
117
+ }
118
+
119
+ /** Czułość - minimalna zmiana wartości napięcia zasilania, która wywołuje zdarzenia OnValueChange, OnValueLower lub OnValueRise */
120
+ get sensitivity(): number {
121
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
122
+ .get()
123
+ .addParameter(PropertyType.Sensitivity)
124
+ .build();
125
+ return this.gate.runScript(cmd!);
126
+ }
127
+ set sensitivity(value: number) {
128
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
129
+ .set()
130
+ .addParameter(PropertyType.Sensitivity)
131
+ .addParameter(value)
132
+ .build();
133
+ this.gate.runScript(cmd!);
134
+ }
135
+
136
+ /**
137
+ * Ustawia czułość pomiaru napięcia zasilania
138
+ * @param {number} value
139
+ */
140
+ setSensitivity(value: number): void {
141
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
142
+ .set()
143
+ .addParameter(PropertyType.Sensitivity)
144
+ .addParameter(value)
145
+ .build();
146
+ this.gate.runScript(cmd!);
147
+ }
148
+
149
+ /** Wartość minimalna napięcia zasilania po przekroczeniu której generowane jest zdarzenie OnOutOfRange */
150
+ get minValue(): number {
151
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
152
+ .get()
153
+ .addParameter(PropertyType.MinValue)
154
+ .build();
155
+ return this.gate.runScript(cmd!);
156
+ }
157
+ set minValue(value: number) {
158
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
159
+ .set()
160
+ .addParameter(PropertyType.MinValue)
161
+ .addParameter(value)
162
+ .build();
163
+ this.gate.runScript(cmd!);
164
+ }
165
+
166
+ /**
167
+ * Ustawia wartość MinValue
168
+ * @param {number} value
169
+ */
170
+ setMinValue(value: number): void {
171
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
172
+ .set()
173
+ .addParameter(PropertyType.MinValue)
174
+ .addParameter(value)
175
+ .build();
176
+ this.gate.runScript(cmd!);
177
+ }
178
+
179
+ /** Wartość maksymalna napięcia zasilania po przekroczeniu której generowane jest zdarzenie OnOutOfRange */
180
+ get maxValue(): number {
181
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
182
+ .get()
183
+ .addParameter(PropertyType.MaxValue)
184
+ .build();
185
+ return this.gate.runScript(cmd!);
186
+ }
187
+ set maxValue(value: number) {
188
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
189
+ .set()
190
+ .addParameter(PropertyType.MaxValue)
191
+ .addParameter(value)
192
+ .build();
193
+ this.gate.runScript(cmd!);
194
+ }
195
+
196
+ /**
197
+ * Ustawia wartość MaxValue
198
+ * @param {number} value
199
+ */
200
+ setMaxValue(value: number): void {
201
+ const cmd: string | null = rawExecutionBuilderFactory(this.objectName)
202
+ .set()
203
+ .addParameter(PropertyType.MaxValue)
204
+ .addParameter(value)
205
+ .build();
206
+ this.gate.runScript(cmd!);
207
+ }
208
+ }
209
+
210
+ class PowerSupplyVoltage implements IPowerSupplyVoltage {
211
+ private onValueChangeCallbacks: Array<() => void> = [];
212
+ private onValueLowerCallbacks: Array<() => void> = [];
213
+ private onValueRiseCallbacks: Array<() => void> = [];
214
+ private onOutOfRangeCallbacks: Array<() => void> = [];
215
+ private onInRangeCallbacks: Array<() => void> = [];
216
+
217
+ constructor(private raw: PowerSupplyVoltageRaw) {
218
+ this.raw.add_event(EventType.OnValueChange, () => {
219
+ this.onValueChangeCallbacks.forEach(callback => { callback(); });
220
+ });
221
+ this.raw.add_event(EventType.OnValueLower, () => {
222
+ this.onValueLowerCallbacks.forEach(callback => { callback(); });
223
+ });
224
+ this.raw.add_event(EventType.OnValueRise, () => {
225
+ this.onValueRiseCallbacks.forEach(callback => { callback(); });
226
+ });
227
+ this.raw.add_event(EventType.OnOutOfRange, () => {
228
+ this.onOutOfRangeCallbacks.forEach(callback => { callback(); });
229
+ });
230
+ this.raw.add_event(EventType.OnInRange, () => {
231
+ this.onInRangeCallbacks.forEach(callback => { callback(); });
232
+ });
233
+ }
234
+
235
+ /**
236
+ * Zdarzenie wywoływane przy zmianie wartości napięcia zasilania o wartość cechy Sensitivity
237
+ * @param callback
238
+ */
239
+ addOnValueChange(callback: () => void): void {
240
+ this.onValueChangeCallbacks.push(callback);
241
+ }
242
+ /**
243
+ * Zdarzenie wywoływane przy zmianie wartości napięcia zasilania na niższą o wartość cechy Sensitivity (zbocze opadające)
244
+ * @param callback
245
+ */
246
+ addOnValueLower(callback: () => void): void {
247
+ this.onValueLowerCallbacks.push(callback);
248
+ }
249
+ /**
250
+ * Zdarzenie wywoływane przy zmianie wartości napięcia zasilania na wyższą o wartość cechy Sensitivity (zbocze narastające)
251
+ * @param callback
252
+ */
253
+ addOnValueRise(callback: () => void): void {
254
+ this.onValueRiseCallbacks.push(callback);
255
+ }
256
+ /**
257
+ * Zdarzenie wywoływane gdy wartość napięcia zasilania znajduje się poza wyznaczonym zakresem (MinValue - MaxValue)
258
+ * @param callback
259
+ */
260
+ addOnOutOfRange(callback: () => void): void {
261
+ this.onOutOfRangeCallbacks.push(callback);
262
+ }
263
+ /**
264
+ * Zdarzenie wywoływane gdy wartość napięcia zasilania powróci do wyznaczonego zakresu (MinValue - MaxValue)
265
+ * @param callback
266
+ */
267
+ addOnInRange(callback: () => void): void {
268
+ this.onInRangeCallbacks.push(callback);
269
+ }
270
+ /** Wartość napięcia zasilania */
271
+ get value(): number {
272
+ return this.raw.get(PropertyType.Value);
273
+ }
274
+ /** Wartość napięcia zasilania jako procent wartości maksymalnej (MaxValue) */
275
+ get valuePercent(): number {
276
+ return this.raw.get(PropertyType.ValuePercent);
277
+ }
278
+ /** Czułość - minimalna zmiana wartości napięcia zasilania, która wywołuje zdarzenia OnValueChange, OnValueLower lub OnValueRise */
279
+ get sensitivity(): number {
280
+ return this.raw.get(PropertyType.Sensitivity);
281
+ }
282
+ set sensitivity(value: number) {
283
+ this.raw.set(PropertyType.Sensitivity, value);
284
+ }
285
+ /**
286
+ * Ustawia czułość pomiaru napięcia zasilania
287
+ * @param {number} value
288
+ */
289
+ setSensitivity(value: number): void {
290
+ this.raw.set(PropertyType.Sensitivity, value);
291
+ }
292
+ /** Wartość minimalna napięcia zasilania po przekroczeniu której generowane jest zdarzenie OnOutOfRange */
293
+ get minValue(): number {
294
+ return this.raw.get(PropertyType.MinValue);
295
+ }
296
+ set minValue(value: number) {
297
+ this.raw.set(PropertyType.MinValue, value);
298
+ }
299
+ /**
300
+ * Ustawia wartość MinValue
301
+ * @param {number} value
302
+ */
303
+ setMinValue(value: number): void {
304
+ this.raw.set(PropertyType.MinValue, value);
305
+ }
306
+ /** Wartość maksymalna napięcia zasilania po przekroczeniu której generowane jest zdarzenie OnOutOfRange */
307
+ get maxValue(): number {
308
+ return this.raw.get(PropertyType.MaxValue);
309
+ }
310
+ set maxValue(value: number) {
311
+ this.raw.set(PropertyType.MaxValue, value);
312
+ }
313
+ /**
314
+ * Ustawia wartość MaxValue
315
+ * @param {number} value
316
+ */
317
+ setMaxValue(value: number): void {
318
+ this.raw.set(PropertyType.MaxValue, value);
319
+ }
320
+ }
321
+
322
+ export { PowerSupplyVoltage, PowerSupplyVoltageRaw, PowerSupplyVoltageRemote }
package/package.json ADDED
@@ -0,0 +1,16 @@
1
+ {
2
+ "scripts": {
3
+ "build": "tsc -p src/tsconfig.json && rm -rf dist && mkdir -p dist && (cd src && find . -name '*.ts' -exec cp --parents {} ../dist/ \\;)",
4
+ "watch": "tsc -p src/tsconfig.json --watch"
5
+ },
6
+ "devDependencies": {
7
+ "typescript": "^5.9.3"
8
+ },
9
+ "files": [ "dist", "LICENSE", "README.md" ],
10
+ "name": "grenton-ts",
11
+ "version": "1.0.0",
12
+ "main": "index.ts",
13
+ "author": "Rajmund Paczkowski <rajmund.paczkowski@gmail.com>",
14
+ "license": "MIT",
15
+ "description": "TypeScript API library providing type-safe wrappers for Grenton smart home hardware modules"
16
+ }