@hurenkam/hue-services 0.6.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 (162) hide show
  1. package/.github/workflows/node.js.yml +31 -0
  2. package/.nyc_output/ecb1b16f-015c-458b-96d5-32cb9569c1e8.json +1 -0
  3. package/.nyc_output/processinfo/ecb1b16f-015c-458b-96d5-32cb9569c1e8.json +1 -0
  4. package/.nyc_output/processinfo/index.json +1 -0
  5. package/.vscode/settings.json +15 -0
  6. package/.vscode/sftp.json +11 -0
  7. package/LICENSE +201 -0
  8. package/README.md +340 -0
  9. package/Todo.txt +18 -0
  10. package/coverage/BaseNode.js.html +379 -0
  11. package/coverage/base.css +224 -0
  12. package/coverage/block-navigation.js +87 -0
  13. package/coverage/favicon.png +0 -0
  14. package/coverage/index.html +101 -0
  15. package/coverage/lcov-report/base.css +224 -0
  16. package/coverage/lcov-report/block-navigation.js +87 -0
  17. package/coverage/lcov-report/favicon.png +0 -0
  18. package/coverage/lcov-report/index.html +161 -0
  19. package/coverage/lcov-report/prettify.css +1 -0
  20. package/coverage/lcov-report/prettify.js +2 -0
  21. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  22. package/coverage/lcov-report/sorter.js +196 -0
  23. package/coverage/lcov-report/src/RestApi.js.html +499 -0
  24. package/coverage/lcov-report/src/all.js.html +208 -0
  25. package/coverage/lcov-report/src/clip/ClipApi.js.html +1096 -0
  26. package/coverage/lcov-report/src/clip/Resource.js.html +481 -0
  27. package/coverage/lcov-report/src/clip/index.html +131 -0
  28. package/coverage/lcov-report/src/debug.js.html +253 -0
  29. package/coverage/lcov-report/src/files.js.html +118 -0
  30. package/coverage/lcov-report/src/index.html +161 -0
  31. package/coverage/lcov-report/src/nodes/BaseNode.js.html +381 -0
  32. package/coverage/lcov-report/src/nodes/BridgeConfigNode.js.html +817 -0
  33. package/coverage/lcov-report/src/nodes/ButtonNode.js.html +241 -0
  34. package/coverage/lcov-report/src/nodes/DevicePowerNode.js.html +199 -0
  35. package/coverage/lcov-report/src/nodes/GroupedLightNode.js.html +226 -0
  36. package/coverage/lcov-report/src/nodes/LightLevelNode.js.html +205 -0
  37. package/coverage/lcov-report/src/nodes/LightNode.js.html +226 -0
  38. package/coverage/lcov-report/src/nodes/MotionNode.js.html +205 -0
  39. package/coverage/lcov-report/src/nodes/RelativeRotaryNode.js.html +253 -0
  40. package/coverage/lcov-report/src/nodes/ResourceNode.js.html +388 -0
  41. package/coverage/lcov-report/src/nodes/SceneNode.js.html +124 -0
  42. package/coverage/lcov-report/src/nodes/ServiceNode.js.html +124 -0
  43. package/coverage/lcov-report/src/nodes/TemperatureNode.js.html +205 -0
  44. package/coverage/lcov-report/src/nodes/ZigbeeConnectivityNode.js.html +199 -0
  45. package/coverage/lcov-report/src/nodes/index.html +311 -0
  46. package/coverage/lcov-report/src/ui/BaseUI.js.html +484 -0
  47. package/coverage/lcov-report/src/ui/BridgeConfigUI.js.html +475 -0
  48. package/coverage/lcov-report/src/ui/ButtonUI.js.html +166 -0
  49. package/coverage/lcov-report/src/ui/DevicePowerUI.js.html +166 -0
  50. package/coverage/lcov-report/src/ui/GroupedLightUI.js.html +178 -0
  51. package/coverage/lcov-report/src/ui/LightLevelUI.js.html +166 -0
  52. package/coverage/lcov-report/src/ui/LightUI.js.html +178 -0
  53. package/coverage/lcov-report/src/ui/MotionUI.js.html +166 -0
  54. package/coverage/lcov-report/src/ui/RelativeRotaryUI.js.html +166 -0
  55. package/coverage/lcov-report/src/ui/ResourceUI.js.html +511 -0
  56. package/coverage/lcov-report/src/ui/SceneUI.js.html +160 -0
  57. package/coverage/lcov-report/src/ui/ServiceUI.js.html +868 -0
  58. package/coverage/lcov-report/src/ui/TemperatureUI.js.html +166 -0
  59. package/coverage/lcov-report/src/ui/ZigbeeConnectivityUI.js.html +166 -0
  60. package/coverage/lcov-report/src/ui/index.html +311 -0
  61. package/coverage/lcov.info +2217 -0
  62. package/coverage/prettify.css +1 -0
  63. package/coverage/prettify.js +2 -0
  64. package/coverage/sort-arrow-sprite.png +0 -0
  65. package/coverage/sorter.js +196 -0
  66. package/coverage/src/RestApi.js.html +499 -0
  67. package/coverage/src/all.js.html +208 -0
  68. package/coverage/src/clip/ClipApi.js.html +1183 -0
  69. package/coverage/src/clip/Resource.js.html +481 -0
  70. package/coverage/src/clip/index.html +131 -0
  71. package/coverage/src/debug.js.html +253 -0
  72. package/coverage/src/files.js.html +118 -0
  73. package/coverage/src/index.html +116 -0
  74. package/coverage/src/nodes/BaseNode.js.html +379 -0
  75. package/coverage/src/nodes/BridgeConfigNode.js.html +517 -0
  76. package/coverage/src/nodes/ButtonNode.js.html +238 -0
  77. package/coverage/src/nodes/DevicePowerNode.js.html +196 -0
  78. package/coverage/src/nodes/GroupedLightNode.js.html +223 -0
  79. package/coverage/src/nodes/LightLevelNode.js.html +202 -0
  80. package/coverage/src/nodes/LightNode.js.html +223 -0
  81. package/coverage/src/nodes/MotionNode.js.html +202 -0
  82. package/coverage/src/nodes/RelativeRotaryNode.js.html +250 -0
  83. package/coverage/src/nodes/ResourceNode.js.html +373 -0
  84. package/coverage/src/nodes/SceneNode.js.html +124 -0
  85. package/coverage/src/nodes/ServiceNode.js.html +124 -0
  86. package/coverage/src/nodes/TemperatureNode.js.html +202 -0
  87. package/coverage/src/nodes/ZigbeeConnectivityNode.js.html +199 -0
  88. package/coverage/src/nodes/index.html +311 -0
  89. package/coverage/src/ui/BaseUI.js.html +484 -0
  90. package/coverage/src/ui/BridgeConfigUI.js.html +475 -0
  91. package/coverage/src/ui/ButtonUI.js.html +166 -0
  92. package/coverage/src/ui/DevicePowerUI.js.html +166 -0
  93. package/coverage/src/ui/GroupedLightUI.js.html +178 -0
  94. package/coverage/src/ui/LightLevelUI.js.html +166 -0
  95. package/coverage/src/ui/LightUI.js.html +178 -0
  96. package/coverage/src/ui/MotionUI.js.html +166 -0
  97. package/coverage/src/ui/RelativeRotaryUI.js.html +166 -0
  98. package/coverage/src/ui/ResourceUI.js.html +511 -0
  99. package/coverage/src/ui/SceneUI.js.html +160 -0
  100. package/coverage/src/ui/ServiceUI.js.html +868 -0
  101. package/coverage/src/ui/TemperatureUI.js.html +166 -0
  102. package/coverage/src/ui/ZigbeeConnectivityUI.js.html +166 -0
  103. package/coverage/src/ui/index.html +311 -0
  104. package/examples/flows.json +959 -0
  105. package/package.json +53 -0
  106. package/screenshots/Screenshot from 2022-11-29 00-29-23.png +0 -0
  107. package/screenshots/Screenshot from 2022-11-29 00-30-16.png +0 -0
  108. package/screenshots/Screenshot from 2022-11-29 00-30-58.png +0 -0
  109. package/screenshots/Screenshot from 2022-11-29 00-31-29.png +0 -0
  110. package/src/RestApi.js +138 -0
  111. package/src/all.html +52 -0
  112. package/src/all.js +42 -0
  113. package/src/clip/ClipApi.js +367 -0
  114. package/src/clip/Resource.js +132 -0
  115. package/src/debug.js +56 -0
  116. package/src/files.js +12 -0
  117. package/src/hue.js +98 -0
  118. package/src/nodes/BaseNode.js +98 -0
  119. package/src/nodes/BridgeConfigNode.js +144 -0
  120. package/src/nodes/ButtonNode.js +51 -0
  121. package/src/nodes/DevicePowerNode.js +37 -0
  122. package/src/nodes/GroupedLightNode.js +46 -0
  123. package/src/nodes/LightLevelNode.js +39 -0
  124. package/src/nodes/LightNode.js +46 -0
  125. package/src/nodes/MotionNode.js +39 -0
  126. package/src/nodes/RelativeRotaryNode.js +55 -0
  127. package/src/nodes/ResourceNode.js +95 -0
  128. package/src/nodes/SceneNode.js +13 -0
  129. package/src/nodes/ServiceNode.js +13 -0
  130. package/src/nodes/TemperatureNode.js +39 -0
  131. package/src/nodes/ZigbeeConnectivityNode.js +38 -0
  132. package/src/ui/BaseUI.js +133 -0
  133. package/src/ui/BridgeConfigUI.js +130 -0
  134. package/src/ui/ButtonUI.js +27 -0
  135. package/src/ui/DevicePowerUI.js +27 -0
  136. package/src/ui/GroupedLightUI.js +31 -0
  137. package/src/ui/LightLevelUI.js +27 -0
  138. package/src/ui/LightUI.js +31 -0
  139. package/src/ui/MotionUI.js +27 -0
  140. package/src/ui/RelativeRotaryUI.js +27 -0
  141. package/src/ui/ResourceUI.js +142 -0
  142. package/src/ui/SceneUI.js +25 -0
  143. package/src/ui/ServiceUI.js +261 -0
  144. package/src/ui/TemperatureUI.js +27 -0
  145. package/src/ui/ZigbeeConnectivityUI.js +27 -0
  146. package/test/BaseNode_spec.js +246 -0
  147. package/test/BaseUI_spec.js +17 -0
  148. package/test/BridgeConfigNode_spec.js +184 -0
  149. package/test/ButtonNode_spec.js +178 -0
  150. package/test/ClipApi_spec.js +769 -0
  151. package/test/DevicePowerNode_spec.js +186 -0
  152. package/test/GroupedLightNode_spec.js +218 -0
  153. package/test/LightLevelNode_spec.js +154 -0
  154. package/test/LightNode_spec.js +218 -0
  155. package/test/MotionNode_spec.js +186 -0
  156. package/test/RelativeRotataryNode_spec.js +325 -0
  157. package/test/ResourceNode_spec.js +308 -0
  158. package/test/Resource_spec.js +392 -0
  159. package/test/SceneNode_spec.js +33 -0
  160. package/test/ServiceNode_spec.js +33 -0
  161. package/test/TemperatureNode_spec.js +153 -0
  162. package/test/ZigbeeConnectivityNode_spec.js +186 -0
@@ -0,0 +1,959 @@
1
+ [
2
+ {
3
+ "id": "59b055fd5ee31bb3",
4
+ "type": "tab",
5
+ "label": "Garden Lights",
6
+ "disabled": false,
7
+ "info": "",
8
+ "env": []
9
+ },
10
+ {
11
+ "id": "1336a03fe24437ae",
12
+ "type": "tab",
13
+ "label": "Kitchen Cabinets",
14
+ "disabled": false,
15
+ "info": "",
16
+ "env": []
17
+ },
18
+ {
19
+ "id": "90381766f55e5824",
20
+ "type": "BridgeConfigNode",
21
+ "name": "MyBridge",
22
+ "ip": "192.168.1.41",
23
+ "key": "tStn4dcA-gXxP5PEWfgaoF0ShunGp8wTE1GEosqw"
24
+ },
25
+ {
26
+ "id": "13c1befd57dc9575",
27
+ "type": "BridgeConfigNode",
28
+ "name": "Hallway Hue v2.1",
29
+ "ip": "192.168.1.35",
30
+ "key": "20w-hoZbT6-Ulttb8lOHAcFVHEFZ-h5fuPCUXX-K"
31
+ },
32
+ {
33
+ "id": "d32bc70e11ac82dd",
34
+ "type": "change",
35
+ "z": "59b055fd5ee31bb3",
36
+ "name": "Recall",
37
+ "rules": [
38
+ {
39
+ "t": "set",
40
+ "p": "payload",
41
+ "pt": "msg",
42
+ "to": "{\"recall\":{\"action\":\"active\",\"status\":\"active\"}}",
43
+ "tot": "json"
44
+ },
45
+ {
46
+ "t": "set",
47
+ "p": "rtypes",
48
+ "pt": "msg",
49
+ "to": "[\"scene\"]",
50
+ "tot": "json"
51
+ }
52
+ ],
53
+ "action": "",
54
+ "property": "",
55
+ "from": "",
56
+ "to": "",
57
+ "reg": false,
58
+ "x": 350,
59
+ "y": 420,
60
+ "wires": [
61
+ [
62
+ "ab03af6c14640c87"
63
+ ]
64
+ ]
65
+ },
66
+ {
67
+ "id": "c4da462b4787fc37",
68
+ "type": "change",
69
+ "z": "59b055fd5ee31bb3",
70
+ "name": "Recall",
71
+ "rules": [
72
+ {
73
+ "t": "set",
74
+ "p": "payload",
75
+ "pt": "msg",
76
+ "to": "{\"recall\":{\"action\":\"active\",\"status\":\"active\"}}",
77
+ "tot": "json"
78
+ },
79
+ {
80
+ "t": "set",
81
+ "p": "rtypes",
82
+ "pt": "msg",
83
+ "to": "[\"scene\"]",
84
+ "tot": "json"
85
+ }
86
+ ],
87
+ "action": "",
88
+ "property": "",
89
+ "from": "",
90
+ "to": "",
91
+ "reg": false,
92
+ "x": 350,
93
+ "y": 360,
94
+ "wires": [
95
+ [
96
+ "a8eb6d9c8a26ec46"
97
+ ]
98
+ ]
99
+ },
100
+ {
101
+ "id": "fdbdec48c47608d6",
102
+ "type": "change",
103
+ "z": "59b055fd5ee31bb3",
104
+ "name": "Lights Off",
105
+ "rules": [
106
+ {
107
+ "t": "set",
108
+ "p": "payload",
109
+ "pt": "msg",
110
+ "to": "{\"on\":{\"on\":false}}",
111
+ "tot": "json"
112
+ },
113
+ {
114
+ "t": "set",
115
+ "p": "rtypes",
116
+ "pt": "msg",
117
+ "to": "[\"light\",\"grouped_light\"]",
118
+ "tot": "json"
119
+ }
120
+ ],
121
+ "action": "",
122
+ "property": "",
123
+ "from": "",
124
+ "to": "",
125
+ "reg": false,
126
+ "x": 340,
127
+ "y": 300,
128
+ "wires": [
129
+ [
130
+ "16fac7027c4ffbdf"
131
+ ]
132
+ ]
133
+ },
134
+ {
135
+ "id": "8061a019f67c5c9b",
136
+ "type": "change",
137
+ "z": "59b055fd5ee31bb3",
138
+ "name": "Lights On",
139
+ "rules": [
140
+ {
141
+ "t": "set",
142
+ "p": "payload",
143
+ "pt": "msg",
144
+ "to": "{\"on\":{\"on\":true}}",
145
+ "tot": "json"
146
+ },
147
+ {
148
+ "t": "set",
149
+ "p": "rtypes",
150
+ "pt": "msg",
151
+ "to": "[\"light\",\"grouped_light\"]",
152
+ "tot": "json"
153
+ }
154
+ ],
155
+ "action": "",
156
+ "property": "",
157
+ "from": "",
158
+ "to": "",
159
+ "reg": false,
160
+ "x": 340,
161
+ "y": 240,
162
+ "wires": [
163
+ [
164
+ "16fac7027c4ffbdf"
165
+ ]
166
+ ]
167
+ },
168
+ {
169
+ "id": "ea1e9c4c39633021",
170
+ "type": "switch",
171
+ "z": "59b055fd5ee31bb3",
172
+ "name": "Is Motion Detected?",
173
+ "property": "payload.motion.motion",
174
+ "propertyType": "msg",
175
+ "rules": [
176
+ {
177
+ "t": "true"
178
+ },
179
+ {
180
+ "t": "else"
181
+ }
182
+ ],
183
+ "checkall": "false",
184
+ "repair": false,
185
+ "outputs": 2,
186
+ "x": 340,
187
+ "y": 60,
188
+ "wires": [
189
+ [
190
+ "a906f14e9766131e"
191
+ ],
192
+ []
193
+ ]
194
+ },
195
+ {
196
+ "id": "a906f14e9766131e",
197
+ "type": "trigger",
198
+ "z": "59b055fd5ee31bb3",
199
+ "name": "Lights on, and after 5m off.",
200
+ "op1": "{\"on\":{\"on\":true}}",
201
+ "op2": "{\"on\":{\"on\":false}}",
202
+ "op1type": "json",
203
+ "op2type": "json",
204
+ "duration": "5",
205
+ "extend": true,
206
+ "overrideDelay": false,
207
+ "units": "min",
208
+ "reset": "",
209
+ "bytopic": "all",
210
+ "topic": "topic",
211
+ "outputs": 1,
212
+ "x": 340,
213
+ "y": 120,
214
+ "wires": [
215
+ [
216
+ "01e2571ab76de07a"
217
+ ]
218
+ ]
219
+ },
220
+ {
221
+ "id": "01e2571ab76de07a",
222
+ "type": "change",
223
+ "z": "59b055fd5ee31bb3",
224
+ "name": "Light | Grouped Light",
225
+ "rules": [
226
+ {
227
+ "t": "set",
228
+ "p": "rtypes",
229
+ "pt": "msg",
230
+ "to": "[\"light\",\"grouped_light\"]",
231
+ "tot": "json"
232
+ }
233
+ ],
234
+ "action": "",
235
+ "property": "",
236
+ "from": "",
237
+ "to": "",
238
+ "reg": false,
239
+ "x": 360,
240
+ "y": 180,
241
+ "wires": [
242
+ [
243
+ "16fac7027c4ffbdf"
244
+ ]
245
+ ]
246
+ },
247
+ {
248
+ "id": "552ae35540db6691",
249
+ "type": "ButtonNode",
250
+ "z": "59b055fd5ee31bb3",
251
+ "name": "On",
252
+ "inputs": 1,
253
+ "outputs": 1,
254
+ "bridge": "90381766f55e5824",
255
+ "rtype": "button",
256
+ "owner": "38df30ba-bbc7-43c0-8dbe-4bd22afbabdd",
257
+ "uuid": "cabece5c-ab06-435c-afcd-e4e623f0ad39",
258
+ "x": 130,
259
+ "y": 240,
260
+ "wires": [
261
+ [
262
+ "8061a019f67c5c9b"
263
+ ]
264
+ ]
265
+ },
266
+ {
267
+ "id": "f5d75ef03a262c9e",
268
+ "type": "ButtonNode",
269
+ "z": "59b055fd5ee31bb3",
270
+ "name": "Off",
271
+ "inputs": 1,
272
+ "outputs": 1,
273
+ "bridge": "90381766f55e5824",
274
+ "rtype": "button",
275
+ "owner": "38df30ba-bbc7-43c0-8dbe-4bd22afbabdd",
276
+ "uuid": "48e316ad-3aed-4802-95fc-e6722f0d573a",
277
+ "x": 130,
278
+ "y": 300,
279
+ "wires": [
280
+ [
281
+ "fdbdec48c47608d6"
282
+ ]
283
+ ]
284
+ },
285
+ {
286
+ "id": "209e8d45c7cd868a",
287
+ "type": "ButtonNode",
288
+ "z": "59b055fd5ee31bb3",
289
+ "name": "Up",
290
+ "inputs": 1,
291
+ "outputs": 1,
292
+ "bridge": "90381766f55e5824",
293
+ "rtype": "button",
294
+ "owner": "38df30ba-bbc7-43c0-8dbe-4bd22afbabdd",
295
+ "uuid": "17b3b63f-2466-4ffc-9daa-5c3046f9a003",
296
+ "x": 130,
297
+ "y": 360,
298
+ "wires": [
299
+ [
300
+ "c4da462b4787fc37"
301
+ ]
302
+ ]
303
+ },
304
+ {
305
+ "id": "084962ab7fbc2b50",
306
+ "type": "ButtonNode",
307
+ "z": "59b055fd5ee31bb3",
308
+ "name": "Down",
309
+ "inputs": 1,
310
+ "outputs": 1,
311
+ "bridge": "90381766f55e5824",
312
+ "rtype": "button",
313
+ "owner": "38df30ba-bbc7-43c0-8dbe-4bd22afbabdd",
314
+ "uuid": "c30aa6d5-2c55-405f-a9a5-1630c232e4ab",
315
+ "x": 130,
316
+ "y": 420,
317
+ "wires": [
318
+ [
319
+ "d32bc70e11ac82dd"
320
+ ]
321
+ ]
322
+ },
323
+ {
324
+ "id": "16fac7027c4ffbdf",
325
+ "type": "GroupedLightNode",
326
+ "z": "59b055fd5ee31bb3",
327
+ "name": "Garden",
328
+ "inputs": 1,
329
+ "outputs": 1,
330
+ "bridge": "90381766f55e5824",
331
+ "rtype": "grouped_light",
332
+ "owner": "02edea9e-c4d8-4615-84bd-7056bfb481b8",
333
+ "uuid": "f38f9be7-1ac6-4379-b211-a58a6146c1c6",
334
+ "x": 620,
335
+ "y": 180,
336
+ "wires": [
337
+ []
338
+ ]
339
+ },
340
+ {
341
+ "id": "ce0aa0b70dcbca35",
342
+ "type": "MotionNode",
343
+ "z": "59b055fd5ee31bb3",
344
+ "name": "Garden",
345
+ "inputs": 1,
346
+ "outputs": 1,
347
+ "bridge": "90381766f55e5824",
348
+ "rtype": "motion",
349
+ "owner": "72649499-730c-4574-8752-958291eb71ba",
350
+ "uuid": "86248407-d67b-427f-bb9f-21356a2d3560",
351
+ "x": 120,
352
+ "y": 60,
353
+ "wires": [
354
+ [
355
+ "ea1e9c4c39633021"
356
+ ]
357
+ ]
358
+ },
359
+ {
360
+ "id": "ab03af6c14640c87",
361
+ "type": "SceneNode",
362
+ "z": "59b055fd5ee31bb3",
363
+ "name": "Garden Nightlight",
364
+ "inputs": 1,
365
+ "outputs": 1,
366
+ "bridge": "90381766f55e5824",
367
+ "uuid": "deca66ba-61ca-4ab3-809e-d26b274e2187",
368
+ "x": 590,
369
+ "y": 420,
370
+ "wires": [
371
+ []
372
+ ]
373
+ },
374
+ {
375
+ "id": "a8eb6d9c8a26ec46",
376
+ "type": "SceneNode",
377
+ "z": "59b055fd5ee31bb3",
378
+ "name": "Garden Bright",
379
+ "inputs": 1,
380
+ "outputs": 1,
381
+ "bridge": "90381766f55e5824",
382
+ "uuid": "e4719d0e-f362-45c0-b395-5a4f90b5f94b",
383
+ "x": 580,
384
+ "y": 360,
385
+ "wires": [
386
+ []
387
+ ]
388
+ },
389
+ {
390
+ "id": "1646a0607195a095",
391
+ "type": "DevicePowerNode",
392
+ "z": "59b055fd5ee31bb3",
393
+ "name": "Garden Motion Sensor",
394
+ "inputs": 1,
395
+ "outputs": 1,
396
+ "bridge": "90381766f55e5824",
397
+ "rtype": "device_power",
398
+ "owner": "72649499-730c-4574-8752-958291eb71ba",
399
+ "uuid": "ca6c82fa-3015-4f15-91a9-771edef389fc",
400
+ "x": 160,
401
+ "y": 600,
402
+ "wires": [
403
+ [
404
+ "f4cf667584fc53ee"
405
+ ]
406
+ ]
407
+ },
408
+ {
409
+ "id": "ee1d57164580b251",
410
+ "type": "TemperatureNode",
411
+ "z": "59b055fd5ee31bb3",
412
+ "name": "Garden Motion Sensor",
413
+ "inputs": 1,
414
+ "outputs": 1,
415
+ "bridge": "90381766f55e5824",
416
+ "rtype": "temperature",
417
+ "owner": "72649499-730c-4574-8752-958291eb71ba",
418
+ "uuid": "788229cf-4bed-4072-a3a0-85862a06ff62",
419
+ "x": 160,
420
+ "y": 520,
421
+ "wires": [
422
+ [
423
+ "9aae458dc05b091a"
424
+ ]
425
+ ]
426
+ },
427
+ {
428
+ "id": "93e4968cfc1ec236",
429
+ "type": "ZigbeeConnectivityNode",
430
+ "z": "59b055fd5ee31bb3",
431
+ "name": "Garden Motion Sensor",
432
+ "inputs": 1,
433
+ "outputs": 1,
434
+ "bridge": "90381766f55e5824",
435
+ "rtype": "zigbee_connectivity",
436
+ "owner": "72649499-730c-4574-8752-958291eb71ba",
437
+ "uuid": "feb609a6-7d35-4212-a2ef-08eda00c4eba",
438
+ "x": 160,
439
+ "y": 660,
440
+ "wires": [
441
+ [
442
+ "2edc276cfc0fc5df"
443
+ ]
444
+ ]
445
+ },
446
+ {
447
+ "id": "9aae458dc05b091a",
448
+ "type": "switch",
449
+ "z": "59b055fd5ee31bb3",
450
+ "name": "Cold or Hot?",
451
+ "property": "payload.temperature.temperature",
452
+ "propertyType": "msg",
453
+ "rules": [
454
+ {
455
+ "t": "lt",
456
+ "v": "0",
457
+ "vt": "num"
458
+ },
459
+ {
460
+ "t": "btwn",
461
+ "v": "0",
462
+ "vt": "num",
463
+ "v2": "15",
464
+ "v2t": "num"
465
+ },
466
+ {
467
+ "t": "btwn",
468
+ "v": "15",
469
+ "vt": "num",
470
+ "v2": "25",
471
+ "v2t": "num"
472
+ },
473
+ {
474
+ "t": "btwn",
475
+ "v": "25",
476
+ "vt": "num",
477
+ "v2": "35",
478
+ "v2t": "num"
479
+ },
480
+ {
481
+ "t": "gt",
482
+ "v": "35",
483
+ "vt": "num"
484
+ }
485
+ ],
486
+ "checkall": "true",
487
+ "repair": false,
488
+ "outputs": 5,
489
+ "x": 370,
490
+ "y": 520,
491
+ "wires": [
492
+ [
493
+ "8f0cfd0ec1921355"
494
+ ],
495
+ [
496
+ "e53bb4070c203d57"
497
+ ],
498
+ [
499
+ "fa418e78f9120a1d"
500
+ ],
501
+ [
502
+ "71ae845a6d6b5642"
503
+ ],
504
+ [
505
+ "d93f63cbddb10b4f"
506
+ ]
507
+ ]
508
+ },
509
+ {
510
+ "id": "f4cf667584fc53ee",
511
+ "type": "switch",
512
+ "z": "59b055fd5ee31bb3",
513
+ "name": "Low Battery?",
514
+ "property": "payload.power_state.battery_level",
515
+ "propertyType": "msg",
516
+ "rules": [
517
+ {
518
+ "t": "lt",
519
+ "v": "10",
520
+ "vt": "num"
521
+ }
522
+ ],
523
+ "checkall": "true",
524
+ "repair": false,
525
+ "outputs": 1,
526
+ "x": 370,
527
+ "y": 600,
528
+ "wires": [
529
+ []
530
+ ]
531
+ },
532
+ {
533
+ "id": "2edc276cfc0fc5df",
534
+ "type": "switch",
535
+ "z": "59b055fd5ee31bb3",
536
+ "name": "Is Connected?",
537
+ "property": "payload.status",
538
+ "propertyType": "msg",
539
+ "rules": [
540
+ {
541
+ "t": "eq",
542
+ "v": "connected",
543
+ "vt": "str"
544
+ }
545
+ ],
546
+ "checkall": "true",
547
+ "repair": false,
548
+ "outputs": 1,
549
+ "x": 380,
550
+ "y": 660,
551
+ "wires": [
552
+ []
553
+ ]
554
+ },
555
+ {
556
+ "id": "8f0cfd0ec1921355",
557
+ "type": "change",
558
+ "z": "59b055fd5ee31bb3",
559
+ "name": "Freezing",
560
+ "rules": [
561
+ {
562
+ "t": "set",
563
+ "p": "payload",
564
+ "pt": "msg",
565
+ "to": "It's freezing",
566
+ "tot": "str"
567
+ }
568
+ ],
569
+ "action": "",
570
+ "property": "",
571
+ "from": "",
572
+ "to": "",
573
+ "reg": false,
574
+ "x": 580,
575
+ "y": 500,
576
+ "wires": [
577
+ []
578
+ ]
579
+ },
580
+ {
581
+ "id": "e53bb4070c203d57",
582
+ "type": "change",
583
+ "z": "59b055fd5ee31bb3",
584
+ "name": "Cold",
585
+ "rules": [
586
+ {
587
+ "t": "set",
588
+ "p": "payload",
589
+ "pt": "msg",
590
+ "to": "It's cold",
591
+ "tot": "str"
592
+ }
593
+ ],
594
+ "action": "",
595
+ "property": "",
596
+ "from": "",
597
+ "to": "",
598
+ "reg": false,
599
+ "x": 570,
600
+ "y": 540,
601
+ "wires": [
602
+ []
603
+ ]
604
+ },
605
+ {
606
+ "id": "fa418e78f9120a1d",
607
+ "type": "change",
608
+ "z": "59b055fd5ee31bb3",
609
+ "name": "Nice",
610
+ "rules": [
611
+ {
612
+ "t": "set",
613
+ "p": "payload",
614
+ "pt": "msg",
615
+ "to": "It's nice",
616
+ "tot": "str"
617
+ }
618
+ ],
619
+ "action": "",
620
+ "property": "",
621
+ "from": "",
622
+ "to": "",
623
+ "reg": false,
624
+ "x": 570,
625
+ "y": 580,
626
+ "wires": [
627
+ []
628
+ ]
629
+ },
630
+ {
631
+ "id": "d93f63cbddb10b4f",
632
+ "type": "change",
633
+ "z": "59b055fd5ee31bb3",
634
+ "name": "Hot",
635
+ "rules": [
636
+ {
637
+ "t": "set",
638
+ "p": "payload",
639
+ "pt": "msg",
640
+ "to": "It's hot",
641
+ "tot": "str"
642
+ }
643
+ ],
644
+ "action": "",
645
+ "property": "",
646
+ "from": "",
647
+ "to": "",
648
+ "reg": false,
649
+ "x": 570,
650
+ "y": 660,
651
+ "wires": [
652
+ []
653
+ ]
654
+ },
655
+ {
656
+ "id": "71ae845a6d6b5642",
657
+ "type": "change",
658
+ "z": "59b055fd5ee31bb3",
659
+ "name": "Warm",
660
+ "rules": [
661
+ {
662
+ "t": "set",
663
+ "p": "payload",
664
+ "pt": "msg",
665
+ "to": "It's warm",
666
+ "tot": "str"
667
+ }
668
+ ],
669
+ "action": "",
670
+ "property": "",
671
+ "from": "",
672
+ "to": "",
673
+ "reg": false,
674
+ "x": 570,
675
+ "y": 620,
676
+ "wires": [
677
+ []
678
+ ]
679
+ },
680
+ {
681
+ "id": "7ca000b46c6c8ae7",
682
+ "type": "switch",
683
+ "z": "1336a03fe24437ae",
684
+ "name": "Is It Dark?",
685
+ "property": "payload.light.light_level",
686
+ "propertyType": "msg",
687
+ "rules": [
688
+ {
689
+ "t": "lt",
690
+ "v": "10000",
691
+ "vt": "num"
692
+ },
693
+ {
694
+ "t": "else"
695
+ }
696
+ ],
697
+ "checkall": "false",
698
+ "repair": false,
699
+ "outputs": 2,
700
+ "x": 310,
701
+ "y": 80,
702
+ "wires": [
703
+ [
704
+ "a5ebb5abe7593953"
705
+ ],
706
+ []
707
+ ]
708
+ },
709
+ {
710
+ "id": "a5ebb5abe7593953",
711
+ "type": "change",
712
+ "z": "1336a03fe24437ae",
713
+ "name": "Lights On",
714
+ "rules": [
715
+ {
716
+ "t": "set",
717
+ "p": "payload",
718
+ "pt": "msg",
719
+ "to": "{\"on\":{\"on\":true}}",
720
+ "tot": "json"
721
+ },
722
+ {
723
+ "t": "set",
724
+ "p": "rtypes",
725
+ "pt": "msg",
726
+ "to": "[\"light\",\"grouped_light\"]",
727
+ "tot": "json"
728
+ }
729
+ ],
730
+ "action": "",
731
+ "property": "",
732
+ "from": "",
733
+ "to": "",
734
+ "reg": false,
735
+ "x": 300,
736
+ "y": 140,
737
+ "wires": [
738
+ [
739
+ "881f2b1aacca045e",
740
+ "62dad47cc0acc7f4"
741
+ ]
742
+ ]
743
+ },
744
+ {
745
+ "id": "62dad47cc0acc7f4",
746
+ "type": "debug",
747
+ "z": "1336a03fe24437ae",
748
+ "name": "debug 1",
749
+ "active": true,
750
+ "tosidebar": true,
751
+ "console": false,
752
+ "tostatus": false,
753
+ "complete": "true",
754
+ "targetType": "full",
755
+ "statusVal": "",
756
+ "statusType": "auto",
757
+ "x": 540,
758
+ "y": 80,
759
+ "wires": []
760
+ },
761
+ {
762
+ "id": "881f2b1aacca045e",
763
+ "type": "LightNode",
764
+ "z": "1336a03fe24437ae",
765
+ "name": "Kitchen Cabinet Lights",
766
+ "inputs": 1,
767
+ "outputs": 1,
768
+ "bridge": "13c1befd57dc9575",
769
+ "rtype": "light",
770
+ "owner": "bd12de8c-4215-4158-b992-b2e56c34b81a",
771
+ "uuid": "9c000556-b8ac-4125-960f-7cd7a3990162",
772
+ "x": 580,
773
+ "y": 140,
774
+ "wires": [
775
+ []
776
+ ]
777
+ },
778
+ {
779
+ "id": "06c26e6c21dad049",
780
+ "type": "LightLevelNode",
781
+ "z": "1336a03fe24437ae",
782
+ "name": "Kitchen",
783
+ "inputs": 1,
784
+ "outputs": 1,
785
+ "bridge": "90381766f55e5824",
786
+ "rtype": "light_level",
787
+ "owner": "2a5db80e-28c4-48d8-b743-4ccf5f744fb1",
788
+ "uuid": "61d50ef2-278a-4f64-85cb-98749426fedb",
789
+ "x": 100,
790
+ "y": 80,
791
+ "wires": [
792
+ [
793
+ "7ca000b46c6c8ae7"
794
+ ]
795
+ ]
796
+ },
797
+ {
798
+ "id": "f34bddcae9b7a36f",
799
+ "type": "RelativeRotaryNode",
800
+ "z": "1336a03fe24437ae",
801
+ "name": "",
802
+ "inputs": 1,
803
+ "outputs": 1,
804
+ "bridge": "90381766f55e5824",
805
+ "rtype": "relative_rotary",
806
+ "owner": "452036c4-c383-42f7-811b-ff4d80f13f95",
807
+ "uuid": "ff508046-6e43-4ec1-bde5-1a9d42fe5bc8",
808
+ "x": 120,
809
+ "y": 160,
810
+ "wires": [
811
+ [
812
+ "4608b5100103bb5d"
813
+ ]
814
+ ]
815
+ },
816
+ {
817
+ "id": "4608b5100103bb5d",
818
+ "type": "switch",
819
+ "z": "1336a03fe24437ae",
820
+ "name": "Clockwise?",
821
+ "property": "relative_rotary.last_event.direction",
822
+ "propertyType": "msg",
823
+ "rules": [
824
+ {
825
+ "t": "eq",
826
+ "v": "clock_wise",
827
+ "vt": "str"
828
+ },
829
+ {
830
+ "t": "eq",
831
+ "v": "counter_clock_wise",
832
+ "vt": "str"
833
+ }
834
+ ],
835
+ "checkall": "true",
836
+ "repair": false,
837
+ "outputs": 2,
838
+ "x": 150,
839
+ "y": 220,
840
+ "wires": [
841
+ [
842
+ "f3987ca8dce936fe"
843
+ ],
844
+ [
845
+ "4896962cd8bcfc66"
846
+ ]
847
+ ]
848
+ },
849
+ {
850
+ "id": "f3987ca8dce936fe",
851
+ "type": "change",
852
+ "z": "1336a03fe24437ae",
853
+ "name": "Dim Up",
854
+ "rules": [
855
+ {
856
+ "t": "set",
857
+ "p": "payload",
858
+ "pt": "msg",
859
+ "to": "{\"dimming_delta\":{\"action\":\"up\",\"brightness_delta\":25}}",
860
+ "tot": "json"
861
+ },
862
+ {
863
+ "t": "set",
864
+ "p": "rtypes",
865
+ "pt": "msg",
866
+ "to": "[\"light\",\"grouped_light\"]",
867
+ "tot": "json"
868
+ }
869
+ ],
870
+ "action": "",
871
+ "property": "",
872
+ "from": "",
873
+ "to": "",
874
+ "reg": false,
875
+ "x": 340,
876
+ "y": 200,
877
+ "wires": [
878
+ [
879
+ "881f2b1aacca045e"
880
+ ]
881
+ ]
882
+ },
883
+ {
884
+ "id": "4896962cd8bcfc66",
885
+ "type": "change",
886
+ "z": "1336a03fe24437ae",
887
+ "name": "Dim Down",
888
+ "rules": [
889
+ {
890
+ "t": "set",
891
+ "p": "payload",
892
+ "pt": "msg",
893
+ "to": "{\"dimming_delta\":{\"action\":\"down\",\"brightness_delta\":25}}",
894
+ "tot": "json"
895
+ },
896
+ {
897
+ "t": "set",
898
+ "p": "rtypes",
899
+ "pt": "msg",
900
+ "to": "[\"light\",\"grouped_light\"]",
901
+ "tot": "json"
902
+ }
903
+ ],
904
+ "action": "",
905
+ "property": "",
906
+ "from": "",
907
+ "to": "",
908
+ "reg": false,
909
+ "x": 350,
910
+ "y": 240,
911
+ "wires": [
912
+ [
913
+ "881f2b1aacca045e"
914
+ ]
915
+ ]
916
+ },
917
+ {
918
+ "id": "93db12aa17a445e4",
919
+ "type": "switch",
920
+ "z": "1336a03fe24437ae",
921
+ "name": "Low Battery?",
922
+ "property": "payload.power_state.battery_level",
923
+ "propertyType": "msg",
924
+ "rules": [
925
+ {
926
+ "t": "lt",
927
+ "v": "10",
928
+ "vt": "num"
929
+ }
930
+ ],
931
+ "checkall": "true",
932
+ "repair": false,
933
+ "outputs": 1,
934
+ "x": 350,
935
+ "y": 300,
936
+ "wires": [
937
+ []
938
+ ]
939
+ },
940
+ {
941
+ "id": "d63e9e02ebbb9bfa",
942
+ "type": "ServiceNode",
943
+ "z": "1336a03fe24437ae",
944
+ "name": "Device Power",
945
+ "inputs": 1,
946
+ "outputs": 1,
947
+ "bridge": "90381766f55e5824",
948
+ "rtype": "device_power",
949
+ "owner": "2a5db80e-28c4-48d8-b743-4ccf5f744fb1",
950
+ "uuid": "0601b41f-44aa-45f5-90cf-6b7b3d87807c",
951
+ "x": 140,
952
+ "y": 300,
953
+ "wires": [
954
+ [
955
+ "93db12aa17a445e4"
956
+ ]
957
+ ]
958
+ }
959
+ ]