loupedeck-commander 1.0.2 → 1.2.1

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.
package/profile-1.json CHANGED
@@ -1,5 +1,15 @@
1
1
  {
2
2
  "profile": "sample",
3
+ "parameters": {
4
+ "hostname": "localhost",
5
+ "user": "httpuser",
6
+ "password": "httppasswd",
7
+ "verbose" : false,
8
+ "endpointurl": "opc.tcp://localhost:4840",
9
+ "nodeid" : "ns=0;s=OpcUaNode-{customarg}",
10
+ "value" : "value",
11
+ "customarg": "1"
12
+ },
3
13
  "description": "",
4
14
  "config": {},
5
15
  "touch": {
@@ -19,45 +29,248 @@
19
29
  "cmd": "echo \"{id} {state}\""
20
30
  }
21
31
  },
22
- "group": "kvm1"
32
+ "group": "group1"
23
33
  },
24
34
  "1": {
25
35
  "states": {
26
36
  "off": {
27
37
  "color": "#aaaaaa",
28
- "image": "icons/bulb.png",
29
- "cmd": "echo \"{id} {state}\""
38
+ "image": "icons/bulb.png"
30
39
  },
31
40
  "on": {
32
41
  "color": "#11ff11",
33
42
  "image": "icons/bulb.png",
34
- "cmd": "echo \"{id} {state}\""
43
+ "http": "http://{user}:{password}@{hostname}:7778/control/connections",
44
+ "value": "{key}"
35
45
  }
36
46
  },
37
- "group": "kvm1"
47
+ "group": "group1"
48
+ },
49
+ "2": {
50
+ "states": {
51
+ "off": {
52
+ "color": "#aaaaaa",
53
+ "image": "icons/mountain.png"
54
+ },
55
+ "on": {
56
+ "color": "#11ff11",
57
+ "image": "icons/mountain.png",
58
+ "opcua": "ns=0;s=Node{simnbr}",
59
+ "value": "{key}"
60
+ }
61
+ },
62
+ "group": "group1"
63
+ },
64
+ "8": {
65
+ "states": {
66
+ "off": {
67
+ "color": "#aaaaaa",
68
+ "cmd": "echo \"{id} {state} {event} {value}\"",
69
+ "value": "custom-value-{key}" },
70
+ "on": {
71
+ "color": "#11ff11",
72
+ "cmd": "echo \"{id} {state} {event} {value}\"",
73
+ "value": "custom-value-{key}"
74
+ }
75
+ },
76
+ "group": "group2"
77
+ },
78
+ "9": {
79
+ "states": {
80
+ "off": {
81
+ "color": "#bbbbbb",
82
+ "cmd": "echo \"{id} {state} {event} {value}\"",
83
+ "value": "custom-value-{key}" },
84
+ "on": {
85
+ "color": "#33ff33",
86
+ "cmd": "echo \"{id} {state} {event} {value}\"",
87
+ "value": "custom-value-{key}"
88
+ }
89
+ },
90
+ "group": "group2"
38
91
  }
39
- },
40
- "knob": {}
41
- },
42
- "knobs": {
43
- "left": {},
44
- "right": {}
92
+
93
+
94
+ }
45
95
  },
46
96
  "buttons": {
97
+ "knobTL": {
98
+ "states": {
99
+ "off": {
100
+ "cmd": "echo \"{id} {state} Val: {value} Event: {event}\""
101
+ },
102
+ "on": {
103
+ "cmd": "echo \"{id} {state} Val: {value} Event: {event}\""
104
+ }
105
+ }
106
+ },
107
+ "knobCL": {
108
+ "states": {
109
+ "off": {
110
+ "cmd": "echo \"{id} {state} Val: {value} Event: {event}\""
111
+ },
112
+ "on": {
113
+ "cmd": "echo \"{id} {state} Val: {value} Event: {event}\""
114
+ }
115
+ }
116
+ },
117
+ "knobBL": {
118
+ "states": {
119
+ "off": {
120
+ "cmd": "echo \"{id} {state} Val: {value} Event: {event}\""
121
+ },
122
+ "on": {
123
+ "cmd": "echo \"{id} {state} Val: {value} Event: {event}\""
124
+ }
125
+ }
126
+ },
127
+ "knobTR": {
128
+ "states": {
129
+ "off": {
130
+ "cmd": "echo \"{id} {state} Val: {value} Event: {event}\""
131
+ },
132
+ "on": {
133
+ "cmd": "echo \"{id} {state} Val: {value} Event: {event}\""
134
+ }
135
+ }
136
+ },
137
+ "knobCR": {
138
+ "states": {
139
+ "off": {
140
+ "cmd": "echo \"{id} {state} Val: {value} Event: {event}\""
141
+ },
142
+ "on": {
143
+ "cmd": "echo \"{id} {state} Val: {value} Event: {event}\""
144
+ }
145
+ }
146
+ },
147
+ "knobBR": {
148
+ "states": {
149
+ "off": {
150
+ "cmd": "echo \"{id} {state} Val: {value} Event: {event}\""
151
+ },
152
+ "on": {
153
+ "cmd": "echo \"{id} {state} Val: {value} Event: {event}\""
154
+ }
155
+ }
156
+ },
157
+ "0": {
158
+ "states": {
159
+ "off": {
160
+ "color": "#aaaaaa",
161
+ "cmd": "echo \"{id} {state} {event}\""
162
+ },
163
+ "med": {
164
+ "color": "ff11ff",
165
+ "cmd": "echo \"{id} {state} {event}\""
166
+ },
167
+ "on": {
168
+ "color": "#11ff11",
169
+ "cmd": "echo \"{id} {state} {event}\""
170
+ }
171
+ },
172
+ "group": "group1"
173
+ },
47
174
  "1": {
48
175
  "states": {
49
176
  "off": {
50
177
  "color": "#aaaaaa",
51
- "image": "icons/bulb.png",
52
- "cmd": "echo \"{id} {state}\""
178
+ "cmd": "echo \"{id} {state} {event}\""
179
+ },
180
+ "med": {
181
+ "color": "ff11ff",
182
+ "cmd": "echo \"{id} {state} {event}\""
53
183
  },
54
184
  "on": {
55
185
  "color": "#11ff11",
56
- "image": "icons/bulb.png",
57
- "cmd": "echo \"{id} {state}\""
186
+ "cmd": "echo \"{id} {state} {event}\""
187
+ }
188
+ },
189
+ "group": "group1"
190
+ },
191
+ "2": {
192
+ "states": {
193
+ "off": {
194
+ "color": "#aaaaaa",
195
+ "cmd": "echo \"{id} {key} {state} {event}\"",
196
+ "filter": "released" },
197
+ "on": {
198
+ "color": "#11ff11",
199
+ "cmd": "echo \"{id} {key} {state} {event}\"",
200
+ "filter": "released"
201
+ }
202
+ },
203
+ "group": "group1"
204
+ },
205
+ "3": {
206
+ "states": {
207
+ "off": {
208
+ "color": "#aaaaaa",
209
+ "cmd": "echo \"{id} {key} {state} {event}\"",
210
+ "filter": "released" },
211
+ "on": {
212
+ "color": "#11ff11",
213
+ "cmd": "echo \"{id} {key} {state} {event}\"",
214
+ "filter": "released"
215
+ }
216
+ },
217
+ "group": "group1"
218
+ },
219
+ "4": {
220
+ "states": {
221
+ "off": {
222
+ "color": "#aaaaaa",
223
+ "cmd": "echo \"{id} {key} {state} {event}\"",
224
+ "filter": "released" },
225
+ "on": {
226
+ "color": "#11ff11",
227
+ "cmd": "echo \"{id} {key} {state} {event}\"",
228
+ "filter": "released"
229
+ }
230
+ },
231
+ "group": "group1"
232
+ },
233
+ "5": {
234
+ "states": {
235
+ "off": {
236
+ "color": "#aaaaaa",
237
+ "cmd": "echo \"{id} {key} {state} {event}\"",
238
+ "filter": "released" },
239
+ "on": {
240
+ "color": "#11ff11",
241
+ "cmd": "echo \"{id} {key} {state} {event}\"",
242
+ "filter": "released"
243
+ }
244
+ },
245
+ "group": "group1"
246
+ },
247
+ "6": {
248
+ "states": {
249
+ "off": {
250
+ "color": "#aaaaaa",
251
+ "cmd": "echo \"{id} {key} {state} {event}\"",
252
+ "filter": "released" },
253
+ "on": {
254
+ "color": "#11ff11",
255
+ "cmd": "echo \"{id} {key} {state} {event}\"",
256
+ "filter": "released"
257
+ }
258
+ },
259
+ "group": "group1"
260
+ },
261
+ "7": {
262
+ "states": {
263
+ "off": {
264
+ "color": "#aaaaaa",
265
+ "cmd": "echo \"{id} {key} {state} {event}\"",
266
+ "filter": "released" },
267
+ "on": {
268
+ "color": "#11ff11",
269
+ "cmd": "echo \"{id} {key} {state} {event}\"",
270
+ "filter": "released"
58
271
  }
59
272
  },
60
- "group": "kvm1"
273
+ "group": "group1"
61
274
  }
62
275
  }
63
276
  }
package/test.mjs ADDED
@@ -0,0 +1,23 @@
1
+ import { BaseLoupeDeckHandler } from './common/BaseLoupeDeckHandler.mjs'
2
+ //import { BaseLoupeDeckHandler } from 'loupedeck-commander'
3
+
4
+ const handler = new BaseLoupeDeckHandler('config.json')
5
+
6
+ /**
7
+ * Stop the handlers when a signal like SIGINT or SIGTERM arrive
8
+ * @param {*} signal
9
+ */
10
+ const stopHandler = async(signal) => {
11
+ console.log(`Receiving ${signal} => Stopping processes.`)
12
+ await handler.stop()
13
+ }
14
+
15
+ // Initiating the signal handlers:
16
+ // see https://www.tutorialspoint.com/unix/unix-signals-traps.htm
17
+ process.on('SIGINT', async (signal) => { stopHandler(signal) })
18
+ process.on('SIGTERM', async (signal) => { stopHandler(signal) })
19
+
20
+
21
+ await handler.start()
22
+
23
+ await new Promise((resolve) => process.once("SIGINT", resolve));