node-red-contrib-huemagic 3.0.0 → 4.0.3

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 (138) hide show
  1. package/README.md +764 -603
  2. package/examples/Hue Bridge.json +189 -35
  3. package/examples/Hue Brightness.json +124 -14
  4. package/examples/Hue Buttons.json +88 -0
  5. package/examples/Hue Group.json +575 -63
  6. package/examples/Hue Light.json +805 -58
  7. package/examples/Hue Magic.json +69 -24
  8. package/examples/Hue Motion.json +110 -42
  9. package/examples/Hue Rules.json +105 -37
  10. package/examples/Hue Scene.json +145 -28
  11. package/examples/Hue Temperature.json +124 -14
  12. package/huemagic/animations/019-christmas.json +30 -0
  13. package/huemagic/animations/020-superhero.json +56 -0
  14. package/huemagic/animations/021-neoncity.json +52 -0
  15. package/huemagic/animations/previews/006-fireplace.gif +0 -0
  16. package/huemagic/animations/previews/013-strobo.gif +0 -0
  17. package/huemagic/animations/previews/014-randomrainbow.gif +0 -0
  18. package/huemagic/animations/previews/016-milkyway.gif +0 -0
  19. package/huemagic/animations/previews/018-forest.gif +0 -0
  20. package/huemagic/animations/previews/019-christmas.gif +0 -0
  21. package/huemagic/animations/previews/020-superhero.gif +0 -0
  22. package/huemagic/animations/previews/021-neoncity.gif +0 -0
  23. package/huemagic/hue-bridge-config.html +105 -61
  24. package/huemagic/hue-bridge-config.js +631 -319
  25. package/huemagic/hue-bridge.html +41 -21
  26. package/huemagic/hue-bridge.js +190 -396
  27. package/huemagic/hue-brightness.html +127 -59
  28. package/huemagic/hue-brightness.js +111 -55
  29. package/huemagic/hue-buttons.html +197 -0
  30. package/huemagic/hue-buttons.js +158 -0
  31. package/huemagic/hue-group.html +137 -66
  32. package/huemagic/hue-group.js +387 -403
  33. package/huemagic/hue-light.html +132 -64
  34. package/huemagic/hue-light.js +544 -378
  35. package/huemagic/hue-magic.html +36 -20
  36. package/huemagic/hue-magic.js +49 -27
  37. package/huemagic/hue-motion.html +127 -59
  38. package/huemagic/hue-motion.js +105 -101
  39. package/huemagic/hue-rules.html +121 -50
  40. package/huemagic/hue-rules.js +89 -63
  41. package/huemagic/hue-scene.html +95 -114
  42. package/huemagic/hue-scene.js +64 -95
  43. package/huemagic/hue-temperature.html +127 -59
  44. package/huemagic/hue-temperature.js +120 -56
  45. package/huemagic/icons/hue-bridge.png +0 -0
  46. package/huemagic/icons/hue-bridge.svg +3 -0
  47. package/huemagic/icons/hue-brightness.png +0 -0
  48. package/huemagic/icons/hue-brightness.svg +11 -0
  49. package/huemagic/icons/hue-buttons.png +0 -0
  50. package/huemagic/icons/hue-buttons.svg +4 -0
  51. package/huemagic/icons/hue-group.png +0 -0
  52. package/huemagic/icons/hue-group.svg +12 -0
  53. package/huemagic/icons/hue-light.png +0 -0
  54. package/huemagic/icons/hue-light.svg +3 -0
  55. package/huemagic/icons/hue-magic.png +0 -0
  56. package/huemagic/icons/hue-magic.svg +3 -0
  57. package/huemagic/icons/hue-motion.png +0 -0
  58. package/huemagic/icons/hue-motion.svg +9 -0
  59. package/huemagic/icons/hue-rules.png +0 -0
  60. package/huemagic/icons/hue-rules.svg +4 -0
  61. package/huemagic/icons/hue-scene.png +0 -0
  62. package/huemagic/icons/hue-scene.svg +5 -0
  63. package/huemagic/icons/hue-temperature.png +0 -0
  64. package/huemagic/icons/hue-temperature.svg +7 -0
  65. package/huemagic/locales/de/hue-bridge-config.html +17 -12
  66. package/huemagic/locales/de/hue-bridge-config.json +7 -5
  67. package/huemagic/locales/de/hue-bridge.html +64 -145
  68. package/huemagic/locales/de/hue-bridge.json +6 -17
  69. package/huemagic/locales/de/hue-brightness.html +50 -50
  70. package/huemagic/locales/de/hue-brightness.json +6 -5
  71. package/huemagic/locales/de/hue-buttons.html +58 -0
  72. package/huemagic/locales/de/{hue-button.json → hue-buttons.json} +7 -11
  73. package/huemagic/locales/de/hue-group.html +46 -122
  74. package/huemagic/locales/de/hue-group.json +5 -5
  75. package/huemagic/locales/de/hue-light.html +68 -116
  76. package/huemagic/locales/de/hue-light.json +5 -5
  77. package/huemagic/locales/de/hue-magic.html +65 -57
  78. package/huemagic/locales/de/hue-magic.json +2 -1
  79. package/huemagic/locales/de/hue-motion.html +47 -50
  80. package/huemagic/locales/de/hue-motion.json +5 -5
  81. package/huemagic/locales/de/hue-rules.html +68 -73
  82. package/huemagic/locales/de/hue-rules.json +5 -2
  83. package/huemagic/locales/de/hue-scene.html +23 -32
  84. package/huemagic/locales/de/hue-scene.json +5 -2
  85. package/huemagic/locales/de/hue-temperature.html +51 -48
  86. package/huemagic/locales/de/hue-temperature.json +6 -5
  87. package/huemagic/locales/en-US/hue-bridge-config.html +17 -12
  88. package/huemagic/locales/en-US/hue-bridge-config.json +5 -3
  89. package/huemagic/locales/en-US/hue-bridge.html +64 -145
  90. package/huemagic/locales/en-US/hue-bridge.json +5 -16
  91. package/huemagic/locales/en-US/hue-brightness.html +50 -50
  92. package/huemagic/locales/en-US/hue-brightness.json +5 -2
  93. package/huemagic/locales/en-US/hue-buttons.html +58 -0
  94. package/huemagic/locales/en-US/{hue-button.json → hue-buttons.json} +6 -4
  95. package/huemagic/locales/en-US/hue-group.html +46 -122
  96. package/huemagic/locales/en-US/hue-group.json +4 -2
  97. package/huemagic/locales/en-US/hue-light.html +68 -116
  98. package/huemagic/locales/en-US/hue-light.json +4 -2
  99. package/huemagic/locales/en-US/hue-magic.html +65 -57
  100. package/huemagic/locales/en-US/hue-magic.json +3 -1
  101. package/huemagic/locales/en-US/hue-motion.html +47 -50
  102. package/huemagic/locales/en-US/hue-motion.json +4 -2
  103. package/huemagic/locales/en-US/hue-rules.html +68 -73
  104. package/huemagic/locales/en-US/hue-rules.json +5 -2
  105. package/huemagic/locales/en-US/hue-scene.html +23 -32
  106. package/huemagic/locales/en-US/hue-scene.json +5 -2
  107. package/huemagic/locales/en-US/hue-temperature.html +51 -48
  108. package/huemagic/locales/en-US/hue-temperature.json +5 -2
  109. package/huemagic/utils/api.js +290 -0
  110. package/huemagic/utils/color.js +382 -0
  111. package/{utils → huemagic/utils}/merge.js +4 -6
  112. package/huemagic/utils/messages.js +447 -0
  113. package/package.json +9 -15
  114. package/examples/Hue Button.json +0 -40
  115. package/examples/Hue Switch.json +0 -40
  116. package/examples/Hue Tap.json +0 -40
  117. package/huemagic/hue-button.html +0 -132
  118. package/huemagic/hue-button.js +0 -143
  119. package/huemagic/hue-switch.html +0 -132
  120. package/huemagic/hue-switch.js +0 -163
  121. package/huemagic/hue-tap.html +0 -132
  122. package/huemagic/hue-tap.js +0 -123
  123. package/huemagic/icons/hue-button.png +0 -0
  124. package/huemagic/icons/hue-switch.png +0 -0
  125. package/huemagic/icons/hue-tap.png +0 -0
  126. package/huemagic/locales/de/hue-button.html +0 -64
  127. package/huemagic/locales/de/hue-switch.html +0 -64
  128. package/huemagic/locales/de/hue-switch.json +0 -35
  129. package/huemagic/locales/de/hue-tap.html +0 -55
  130. package/huemagic/locales/de/hue-tap.json +0 -27
  131. package/huemagic/locales/en-US/hue-button.html +0 -64
  132. package/huemagic/locales/en-US/hue-switch.html +0 -64
  133. package/huemagic/locales/en-US/hue-switch.json +0 -35
  134. package/huemagic/locales/en-US/hue-tap.html +0 -55
  135. package/huemagic/locales/en-US/hue-tap.json +0 -27
  136. package/utils/color.js +0 -9
  137. package/utils/messages.js +0 -658
  138. package/utils/rgb.js +0 -188
@@ -1,61 +1,178 @@
1
1
  [
2
2
  {
3
- "id": "e3a959fd.39da6",
3
+ "id": "16cd74edb3f2c03d",
4
4
  "type": "tab",
5
5
  "label": "Hue Scene (example)",
6
6
  "disabled": false,
7
7
  "info": "Example use of the Hue Scene node"
8
8
  },
9
9
  {
10
- "id": "a1e00b08.a8bf38",
10
+ "id": "ef6d38e72af773f7",
11
+ "type": "comment",
12
+ "z": "16cd74edb3f2c03d",
13
+ "name": "FIRST STEPS (double click me)",
14
+ "info": "Click on the \"Hue Scene\" nodes and select both your bridge and a scene from the list. If you have not yet set up a bridge, you will be asked to set one up before you can finish configuring the node.\n\nAs soon as the node is connected to your bridge and you have deployed the changes in Node-RED, the node can receive and execute your commands. The \"Hue Scene\" node can optionally also be connected to one or more groups in order to execute a scene on a specific group.\n\nIf you would like to receive more information about this node, the possible commands and output values, then click on it once in your flow and navigate to the Node-RED book icon (top right corner).",
15
+ "x": 150,
16
+ "y": 40,
17
+ "wires": [],
18
+ "icon": "font-awesome/fa-question-circle"
19
+ },
20
+ {
21
+ "id": "9212dea7c3727082",
22
+ "type": "comment",
23
+ "z": "16cd74edb3f2c03d",
24
+ "name": "Activate predefined scene on predefined group",
25
+ "info": "",
26
+ "x": 200,
27
+ "y": 120,
28
+ "wires": []
29
+ },
30
+ {
31
+ "id": "a42551dfa1115aa2",
11
32
  "type": "inject",
12
- "z": "e3a959fd.39da6",
33
+ "z": "16cd74edb3f2c03d",
13
34
  "name": "Activate",
35
+ "props": [
36
+ {
37
+ "p": "payload"
38
+ }
39
+ ],
40
+ "repeat": "",
41
+ "crontab": "",
42
+ "once": false,
43
+ "onceDelay": 0.1,
14
44
  "topic": "",
15
45
  "payload": "true",
16
46
  "payloadType": "bool",
47
+ "x": 120,
48
+ "y": 160,
49
+ "wires": [
50
+ [
51
+ "928cb8d82cdf8977"
52
+ ]
53
+ ],
54
+ "icon": "font-awesome/fa-circle"
55
+ },
56
+ {
57
+ "id": "928cb8d82cdf8977",
58
+ "type": "hue-scene",
59
+ "z": "16cd74edb3f2c03d",
60
+ "x": 550,
61
+ "y": 160,
62
+ "wires": [
63
+ []
64
+ ]
65
+ },
66
+ {
67
+ "id": "2f1b9a5cd1ebfe07",
68
+ "type": "comment",
69
+ "z": "16cd74edb3f2c03d",
70
+ "name": "Activate predefined scene on specific groups",
71
+ "info": "",
72
+ "x": 190,
73
+ "y": 220,
74
+ "wires": []
75
+ },
76
+ {
77
+ "id": "fe2561642d86c7a2",
78
+ "type": "inject",
79
+ "z": "16cd74edb3f2c03d",
80
+ "name": "Activate on wired group",
81
+ "props": [
82
+ {
83
+ "p": "payload"
84
+ }
85
+ ],
17
86
  "repeat": "",
18
87
  "crontab": "",
19
88
  "once": false,
20
89
  "onceDelay": 0.1,
90
+ "topic": "",
91
+ "payload": "true",
92
+ "payloadType": "bool",
21
93
  "x": 160,
22
- "y": 60,
94
+ "y": 260,
23
95
  "wires": [
24
96
  [
25
- "b6988edd.8d6e3"
97
+ "fd51b418323a798b"
26
98
  ]
27
99
  ],
28
- "icon": "font-awesome/fa-power-off"
100
+ "icon": "font-awesome/fa-circle"
29
101
  },
30
102
  {
31
- "id": "d481c97b.56f63",
32
- "type": "debug",
33
- "z": "e3a959fd.39da6",
34
- "name": "Information",
35
- "active": true,
36
- "tosidebar": true,
37
- "console": false,
38
- "tostatus": false,
39
- "complete": "payload",
40
- "targetType": "msg",
103
+ "id": "fd51b418323a798b",
104
+ "type": "hue-scene",
105
+ "z": "16cd74edb3f2c03d",
41
106
  "x": 550,
42
- "y": 60,
43
- "wires": [],
44
- "icon": "font-awesome/fa-info-circle"
107
+ "y": 260,
108
+ "wires": [
109
+ [
110
+ "d73af7394dd870e1"
111
+ ]
112
+ ]
45
113
  },
46
114
  {
47
- "id": "b6988edd.8d6e3",
48
- "type": "hue-scene",
49
- "z": "e3a959fd.39da6",
50
- "name": "",
51
- "sceneid": "",
115
+ "id": "d73af7394dd870e1",
116
+ "type": "hue-group",
117
+ "z": "16cd74edb3f2c03d",
52
118
  "skipevents": false,
53
- "x": 350,
54
- "y": 60,
119
+ "initevents": false,
120
+ "x": 770,
121
+ "y": 260,
122
+ "wires": [
123
+ []
124
+ ]
125
+ },
126
+ {
127
+ "id": "91046bac5ac2b796",
128
+ "type": "inject",
129
+ "z": "16cd74edb3f2c03d",
130
+ "name": "Activate on wired group + custom group",
131
+ "props": [
132
+ {
133
+ "p": "payload"
134
+ }
135
+ ],
136
+ "repeat": "",
137
+ "crontab": "",
138
+ "once": false,
139
+ "onceDelay": 0.1,
140
+ "topic": "",
141
+ "payload": "{\"group\":\"{ENTER_ADDITIONAL_GROUP_ID_HERE}\"}",
142
+ "payloadType": "json",
143
+ "x": 220,
144
+ "y": 300,
55
145
  "wires": [
56
146
  [
57
- "d481c97b.56f63"
147
+ "fd51b418323a798b"
58
148
  ]
59
- ]
149
+ ],
150
+ "icon": "font-awesome/fa-circle"
151
+ },
152
+ {
153
+ "id": "8afa0a3ca466788a",
154
+ "type": "inject",
155
+ "z": "16cd74edb3f2c03d",
156
+ "name": "Activate on wired group + custom groups",
157
+ "props": [
158
+ {
159
+ "p": "payload"
160
+ }
161
+ ],
162
+ "repeat": "",
163
+ "crontab": "",
164
+ "once": false,
165
+ "onceDelay": 0.1,
166
+ "topic": "",
167
+ "payload": "{\"group\":[\"{ENTER_GROUP_ID_NO1_HERE}\",\"{ENTER_GROUP_ID_NO2_HERE}\"]}",
168
+ "payloadType": "json",
169
+ "x": 220,
170
+ "y": 340,
171
+ "wires": [
172
+ [
173
+ "fd51b418323a798b"
174
+ ]
175
+ ],
176
+ "icon": "font-awesome/fa-circle"
60
177
  }
61
178
  ]
@@ -1,39 +1,149 @@
1
1
  [
2
2
  {
3
- "id": "d081bb24.81a8d",
3
+ "id": "4e9f59149660a0d5",
4
4
  "type": "tab",
5
5
  "label": "Hue Temperature (example)",
6
6
  "disabled": false,
7
7
  "info": "Example use of the Hue Temperature node"
8
8
  },
9
9
  {
10
- "id": "a9304ae0.8a9bf",
10
+ "id": "3a0ce323d25bbb89",
11
+ "type": "comment",
12
+ "z": "4e9f59149660a0d5",
13
+ "name": "FIRST STEPS (double click me)",
14
+ "info": "Click on the \"Hue Temperature\" node and select both your bridge and a sensor from the list. If you have not yet set up a bridge, you will be asked to set one up before you can finish configuring the node.\n\nAs soon as the node is connected to your bridge and the sensor and you have deployed the changes in Node-RED, the node can receive and execute your commands. The \"Hue Temperature\" node automatically outputs a message as soon as the status of the sensor on the bridge has been updated (temperature change). You will receive the updated status and all of its information in the message that is issued.\n\nIf you would like to receive more information about this node, the possible commands and output values, then click on it once in your flow and navigate to the Node-RED book icon (top right corner).",
15
+ "x": 150,
16
+ "y": 40,
17
+ "wires": [],
18
+ "icon": "font-awesome/fa-question-circle"
19
+ },
20
+ {
21
+ "id": "0ebb67a61954b5d7",
11
22
  "type": "debug",
12
- "z": "d081bb24.81a8d",
23
+ "z": "4e9f59149660a0d5",
13
24
  "name": "Information",
14
25
  "active": true,
15
26
  "tosidebar": true,
16
27
  "console": false,
17
28
  "tostatus": false,
18
- "complete": "payload",
19
- "targetType": "msg",
20
- "x": 450,
21
- "y": 60,
29
+ "complete": "true",
30
+ "targetType": "full",
31
+ "statusVal": "",
32
+ "statusType": "auto",
33
+ "x": 690,
34
+ "y": 160,
22
35
  "wires": [],
23
36
  "icon": "font-awesome/fa-info-circle"
24
37
  },
25
38
  {
26
- "id": "8fae232b.888b5",
39
+ "id": "61bd0f6cab995030",
40
+ "type": "comment",
41
+ "z": "4e9f59149660a0d5",
42
+ "name": "Get the current status",
43
+ "info": "",
44
+ "x": 120,
45
+ "y": 120,
46
+ "wires": []
47
+ },
48
+ {
49
+ "id": "266a95ec791a4434",
50
+ "type": "inject",
51
+ "z": "4e9f59149660a0d5",
52
+ "name": "Status",
53
+ "props": [
54
+ {
55
+ "p": "payload"
56
+ }
57
+ ],
58
+ "repeat": "",
59
+ "crontab": "",
60
+ "once": false,
61
+ "onceDelay": 0.1,
62
+ "topic": "",
63
+ "payload": "{\"status\":true}",
64
+ "payloadType": "json",
65
+ "x": 110,
66
+ "y": 160,
67
+ "wires": [
68
+ [
69
+ "20a19938c9eb011c"
70
+ ]
71
+ ],
72
+ "icon": "node-red/alert.svg"
73
+ },
74
+ {
75
+ "id": "64d6a759a6ee3c70",
76
+ "type": "comment",
77
+ "z": "4e9f59149660a0d5",
78
+ "name": "Turn on / off the device",
79
+ "info": "",
80
+ "x": 120,
81
+ "y": 220,
82
+ "wires": []
83
+ },
84
+ {
85
+ "id": "ede50c625f3d6870",
86
+ "type": "inject",
87
+ "z": "4e9f59149660a0d5",
88
+ "name": "Turn on",
89
+ "props": [
90
+ {
91
+ "p": "payload"
92
+ }
93
+ ],
94
+ "repeat": "",
95
+ "crontab": "",
96
+ "once": false,
97
+ "onceDelay": 0.1,
98
+ "topic": "",
99
+ "payload": "true",
100
+ "payloadType": "bool",
101
+ "x": 110,
102
+ "y": 260,
103
+ "wires": [
104
+ [
105
+ "20a19938c9eb011c"
106
+ ]
107
+ ],
108
+ "icon": "font-awesome/fa-circle"
109
+ },
110
+ {
111
+ "id": "e8cf23462e2c1f9a",
112
+ "type": "inject",
113
+ "z": "4e9f59149660a0d5",
114
+ "name": "Turn off",
115
+ "props": [
116
+ {
117
+ "p": "payload"
118
+ }
119
+ ],
120
+ "repeat": "",
121
+ "crontab": "",
122
+ "once": false,
123
+ "onceDelay": 0.1,
124
+ "topic": "",
125
+ "payload": "false",
126
+ "payloadType": "bool",
127
+ "x": 110,
128
+ "y": 300,
129
+ "wires": [
130
+ [
131
+ "20a19938c9eb011c"
132
+ ]
133
+ ],
134
+ "icon": "font-awesome/fa-circle-o"
135
+ },
136
+ {
137
+ "id": "20a19938c9eb011c",
27
138
  "type": "hue-temperature",
28
- "z": "d081bb24.81a8d",
29
- "name": "",
30
- "sensorid": "",
139
+ "z": "4e9f59149660a0d5",
31
140
  "skipevents": false,
32
- "x": 170,
33
- "y": 60,
141
+ "initevents": false,
142
+ "x": 500,
143
+ "y": 160,
34
144
  "wires": [
35
145
  [
36
- "a9304ae0.8a9bf"
146
+ "0ebb67a61954b5d7"
37
147
  ]
38
148
  ]
39
149
  }
@@ -0,0 +1,30 @@
1
+ {
2
+ "info":{
3
+ "name":"Christmas",
4
+ "author":"HueMagic"
5
+ },
6
+ "steps":[
7
+ {
8
+ "delay":5000,
9
+ "animation":{
10
+ "hex":"#0ca90c",
11
+ "brightness":100,
12
+ "transitionTime":2
13
+ }
14
+ },
15
+ {
16
+ "delay":5000,
17
+ "animation":{
18
+ "hex":"#ce0d0d",
19
+ "transitionTime":2
20
+ }
21
+ },
22
+ {
23
+ "delay":5000,
24
+ "animation":{
25
+ "hex":"#3225de",
26
+ "transitionTime":2
27
+ }
28
+ }
29
+ ]
30
+ }
@@ -0,0 +1,56 @@
1
+ {
2
+ "info":{
3
+ "name":"Superhero",
4
+ "author":"HueMagic"
5
+ },
6
+ "steps":[
7
+ {
8
+ "delay":1000,
9
+ "animation":{
10
+ "hex":"#000000",
11
+ "brightness":1,
12
+ "transitionTime":2
13
+ }
14
+ },
15
+ {
16
+ "delay":500,
17
+ "animation":{
18
+ "hex":"#09387A",
19
+ "brightness":50,
20
+ "transitionTime":0.5
21
+ }
22
+ },
23
+ {
24
+ "delay":500,
25
+ "animation":{
26
+ "hex":"#126CB3",
27
+ "brightness":70,
28
+ "transitionTime":0.5
29
+ }
30
+ },
31
+ {
32
+ "delay":500,
33
+ "animation":{
34
+ "hex":"#D4E226",
35
+ "brightness":70,
36
+ "transitionTime":0.5
37
+ }
38
+ },
39
+ {
40
+ "delay":500,
41
+ "animation":{
42
+ "hex":"#FFF024",
43
+ "brightness":100,
44
+ "transitionTime":2
45
+ }
46
+ },
47
+ {
48
+ "delay":2000,
49
+ "animation":{
50
+ "hex":"#F5131F",
51
+ "brightness":100,
52
+ "transitionTime":0.5
53
+ }
54
+ }
55
+ ]
56
+ }
@@ -0,0 +1,52 @@
1
+ {
2
+ "info":{
3
+ "name":"Neon City",
4
+ "author":"HueMagic"
5
+ },
6
+ "specials":{
7
+ "randomOrder": true
8
+ },
9
+ "steps":
10
+ [
11
+ {
12
+ "delay":700,
13
+ "animation":{
14
+ "hex":"#fa448c",
15
+ "brightness":100,
16
+ "transitionTime":0.5
17
+ }
18
+ },
19
+ {
20
+ "delay":500,
21
+ "animation":{
22
+ "hex":"#fec859",
23
+ "brightness":100,
24
+ "transitionTime":0.5
25
+ }
26
+ },
27
+ {
28
+ "delay":1000,
29
+ "animation":{
30
+ "hex":"#0a1045",
31
+ "brightness":100,
32
+ "transitionTime":0.5
33
+ }
34
+ },
35
+ {
36
+ "delay":700,
37
+ "animation":{
38
+ "hex":"#43b5a0",
39
+ "brightness":100,
40
+ "transitionTime":0.5
41
+ }
42
+ },
43
+ {
44
+ "delay":1000,
45
+ "animation":{
46
+ "hex":"#491d88",
47
+ "brightness":90,
48
+ "transitionTime":0.6
49
+ }
50
+ }
51
+ ]
52
+ }