node-red-contrib-homekit-bridged 2.0.0-dev.4 → 2.0.0-dev.7

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 (125) hide show
  1. package/build/lib/HAPHostNode.js +183 -141
  2. package/build/lib/HAPServiceNode.js +199 -172
  3. package/build/lib/HAPServiceNode2.js +207 -172
  4. package/build/lib/NRCHKBError.js +23 -2
  5. package/build/lib/PairingQRCode.js +62 -0
  6. package/build/lib/Storage.js +157 -92
  7. package/build/lib/api.js +654 -288
  8. package/build/lib/camera/CameraControl.js +125 -0
  9. package/build/lib/camera/CameraDelegate.js +507 -0
  10. package/build/lib/camera/MP4StreamingServer.js +159 -0
  11. package/build/lib/hap/HAPCharacteristic.js +25 -4
  12. package/build/lib/hap/HAPService.js +25 -4
  13. package/build/lib/hap/eve-app/EveCharacteristics.js +124 -81
  14. package/build/lib/hap/eve-app/EveServices.js +50 -17
  15. package/build/lib/hap/hap-nodejs.js +32 -0
  16. package/build/lib/migration/HomeKitService2Migration.js +34 -0
  17. package/build/lib/migration/NodeMigration.js +75 -0
  18. package/build/lib/types/AccessoryInformationType.js +15 -1
  19. package/build/lib/types/CameraConfigType.js +15 -1
  20. package/build/lib/types/CustomCharacteristicType.js +15 -1
  21. package/build/lib/types/HAPHostConfigType.js +15 -1
  22. package/build/lib/types/HAPHostNodeType.js +15 -1
  23. package/build/lib/types/HAPService2ConfigType.js +15 -1
  24. package/build/lib/types/HAPService2NodeType.js +15 -1
  25. package/build/lib/types/HAPServiceConfigType.js +15 -1
  26. package/build/lib/types/HAPServiceNodeType.js +15 -1
  27. package/build/lib/types/HAPStatusConfigType.js +15 -1
  28. package/build/lib/types/HAPStatusNodeType.js +15 -1
  29. package/build/lib/types/HostType.js +28 -7
  30. package/build/lib/types/NodeType.js +15 -1
  31. package/build/lib/types/PublishTimersType.js +15 -1
  32. package/build/lib/types/UniFiControllerConfigType.js +16 -0
  33. package/build/lib/types/hap-nodejs/HapAdaptiveLightingControllerMode.js +28 -7
  34. package/build/lib/types/hap-nodejs/HapCategories.js +64 -43
  35. package/build/lib/types/storage/SerializedHostType.js +15 -1
  36. package/build/lib/types/storage/StorageType.js +34 -10
  37. package/build/lib/unifi/ProtectDiscovery.js +80 -0
  38. package/build/lib/utils/AccessoryUtils.js +152 -110
  39. package/build/lib/utils/BridgeUtils.js +82 -39
  40. package/build/lib/utils/CharacteristicUtils.js +5 -49
  41. package/build/lib/utils/CharacteristicUtils2.js +5 -49
  42. package/build/lib/utils/CharacteristicUtilsBase.js +81 -0
  43. package/build/lib/utils/NodeStatusUtils.js +89 -40
  44. package/build/lib/utils/ServiceUtils.js +434 -373
  45. package/build/lib/utils/ServiceUtils2.js +514 -307
  46. package/build/lib/utils/index.js +10 -11
  47. package/build/nodes/bridge.html +184 -166
  48. package/build/nodes/bridge.js +27 -9
  49. package/build/nodes/locales/en-US/node-red-contrib-homekit-bridged.json +22 -0
  50. package/build/nodes/nrchkb.html +1601 -88
  51. package/build/nodes/nrchkb.js +66 -88
  52. package/build/nodes/plugin-instance.html +499 -0
  53. package/build/nodes/plugin-instance.js +46 -0
  54. package/build/nodes/service.html +517 -299
  55. package/build/nodes/service.js +5 -6
  56. package/build/nodes/service2.html +1683 -460
  57. package/build/nodes/service2.js +5 -8
  58. package/build/nodes/standalone.html +187 -174
  59. package/build/nodes/standalone.js +27 -9
  60. package/build/nodes/status.html +51 -18
  61. package/build/nodes/status.js +47 -40
  62. package/build/nodes/unifi-controller.html +92 -0
  63. package/build/nodes/unifi-controller.js +20 -0
  64. package/build/plugins/embedded/homebridge-camera-ffmpeg/index.js +479 -0
  65. package/build/plugins/embedded/homebridge-unifi-protect/index.js +521 -0
  66. package/build/plugins/embedded/index.js +58 -0
  67. package/build/plugins/nrchkb-homekit-plugins.js +17 -0
  68. package/build/plugins/registry/index.js +203 -0
  69. package/build/plugins/registry/types.js +16 -0
  70. package/build/scripts/migrate-homekit-service-flows.js +47 -0
  71. package/examples/demo/01 - ALL Demos single import.json +1885 -1885
  72. package/examples/demo/02 - Air Purifier.json +279 -279
  73. package/examples/demo/03 - Air Quality sensor with Battery.json +254 -254
  74. package/examples/demo/04 - Dimmable Bulb.json +172 -172
  75. package/examples/demo/05 - Color Bulb (HSV).json +195 -195
  76. package/examples/demo/06 - Fan (simple, 3 speeds).json +240 -240
  77. package/examples/demo/07 - Fan (with speed, oscillate, rotation direction).json +175 -175
  78. package/examples/demo/08 - CO2 detector.json +224 -224
  79. package/examples/demo/09 - CO (carbon monoxide) example.json +255 -255
  80. package/examples/demo/10 - Door window contact sensor.json +234 -234
  81. package/examples/demos (advanced)/01 - Television with inputs and speaker.json +541 -541
  82. package/examples/switch/01 - Plain Switch.json +178 -178
  83. package/package.json +95 -84
  84. package/build/lib/HAPHostNode.d.ts +0 -1
  85. package/build/lib/HAPServiceNode.d.ts +0 -1
  86. package/build/lib/HAPServiceNode2.d.ts +0 -1
  87. package/build/lib/NRCHKBError.d.ts +0 -3
  88. package/build/lib/Storage.d.ts +0 -30
  89. package/build/lib/api.d.ts +0 -1
  90. package/build/lib/hap/HAPCharacteristic.d.ts +0 -9
  91. package/build/lib/hap/HAPService.d.ts +0 -6
  92. package/build/lib/hap/eve-app/EveCharacteristics.d.ts +0 -20
  93. package/build/lib/hap/eve-app/EveServices.d.ts +0 -5
  94. package/build/lib/types/AccessoryInformationType.d.ts +0 -11
  95. package/build/lib/types/CameraConfigType.d.ts +0 -24
  96. package/build/lib/types/CustomCharacteristicType.d.ts +0 -6
  97. package/build/lib/types/HAPHostConfigType.d.ts +0 -22
  98. package/build/lib/types/HAPHostNodeType.d.ts +0 -14
  99. package/build/lib/types/HAPService2ConfigType.d.ts +0 -6
  100. package/build/lib/types/HAPService2NodeType.d.ts +0 -7
  101. package/build/lib/types/HAPServiceConfigType.d.ts +0 -26
  102. package/build/lib/types/HAPServiceNodeType.d.ts +0 -38
  103. package/build/lib/types/HAPStatusConfigType.d.ts +0 -5
  104. package/build/lib/types/HAPStatusNodeType.d.ts +0 -12
  105. package/build/lib/types/HostType.d.ts +0 -5
  106. package/build/lib/types/NodeType.d.ts +0 -3
  107. package/build/lib/types/PublishTimersType.d.ts +0 -4
  108. package/build/lib/types/hap-nodejs/HapAdaptiveLightingControllerMode.d.ts +0 -5
  109. package/build/lib/types/hap-nodejs/HapCategories.d.ts +0 -41
  110. package/build/lib/types/storage/SerializedHostType.d.ts +0 -5
  111. package/build/lib/types/storage/StorageType.d.ts +0 -8
  112. package/build/lib/utils/AccessoryUtils.d.ts +0 -1
  113. package/build/lib/utils/BridgeUtils.d.ts +0 -1
  114. package/build/lib/utils/CharacteristicUtils.d.ts +0 -1
  115. package/build/lib/utils/CharacteristicUtils2.d.ts +0 -1
  116. package/build/lib/utils/NodeStatusUtils.d.ts +0 -17
  117. package/build/lib/utils/ServiceUtils.d.ts +0 -1
  118. package/build/lib/utils/ServiceUtils2.d.ts +0 -1
  119. package/build/lib/utils/index.d.ts +0 -1
  120. package/build/nodes/bridge.d.ts +0 -1
  121. package/build/nodes/nrchkb.d.ts +0 -1
  122. package/build/nodes/service.d.ts +0 -1
  123. package/build/nodes/service2.d.ts +0 -1
  124. package/build/nodes/standalone.d.ts +0 -1
  125. package/build/nodes/status.d.ts +0 -1
@@ -1,227 +1,227 @@
1
1
  [
2
- {
3
- "id": "ab48426e.25466",
4
- "type": "group",
5
- "z": "60b06629.a2ebd",
6
- "name": "CO2 Sensor: input only sensor",
7
- "style": {
8
- "stroke": "#999999",
9
- "fill": "none",
10
- "label": true,
11
- "label-position": "nw",
12
- "color": "#a4a4a4"
2
+ {
3
+ "id": "ab48426e.25466",
4
+ "type": "group",
5
+ "z": "60b06629.a2ebd",
6
+ "name": "CO2 Sensor: input only sensor",
7
+ "style": {
8
+ "stroke": "#999999",
9
+ "fill": "none",
10
+ "label": true,
11
+ "label-position": "nw",
12
+ "color": "#a4a4a4"
13
+ },
14
+ "nodes": [
15
+ "88892b4.8a61bd8",
16
+ "3611c654.8a42f2",
17
+ "62cafcb0.8ade9c",
18
+ "a0171cdb.f209b",
19
+ "6f7de764.a6a688",
20
+ "8758b463.afb0f",
21
+ "69e8161b.74b7a",
22
+ "40010b09.c73cdc"
23
+ ],
24
+ "x": 14,
25
+ "y": 839,
26
+ "w": 752,
27
+ "h": 202,
28
+ "info": "# CO2 Sensor\n\nThere are three inputs to this example, one for each level of Carbon Dioxide in the air. Options are:\n\n**0 ppm:** this will assume no CO2 <br/>\n**Safe level:** this will assume a level between 1 and 999 ppm, inclusive <br/>\n**Dangerous level:** this will assume a level between 1,000 and 100,000, inclusive; this will also trigger an alert"
13
29
  },
14
- "nodes": [
15
- "88892b4.8a61bd8",
16
- "3611c654.8a42f2",
17
- "62cafcb0.8ade9c",
18
- "a0171cdb.f209b",
19
- "6f7de764.a6a688",
20
- "8758b463.afb0f",
21
- "69e8161b.74b7a",
22
- "40010b09.c73cdc"
23
- ],
24
- "x": 14,
25
- "y": 839,
26
- "w": 752,
27
- "h": 202,
28
- "info": "# CO2 Sensor\n\nThere are three inputs to this example, one for each level of Carbon Dioxide in the air. Options are:\n\n**0 ppm:** this will assume no CO2 <br/>\n**Safe level:** this will assume a level between 1 and 999 ppm, inclusive <br/>\n**Dangerous level:** this will assume a level between 1,000 and 100,000, inclusive; this will also trigger an alert"
29
- },
30
- {
31
- "id": "88892b4.8a61bd8",
32
- "type": "homekit-service",
33
- "z": "60b06629.a2ebd",
34
- "g": "ab48426e.25466",
35
- "isParent": true,
36
- "bridge": "409001a1.3e7a78",
37
- "parentService": "",
38
- "name": "CO2 Sensor",
39
- "serviceName": "CarbonDioxideSensor",
40
- "topic": "",
41
- "filter": false,
42
- "manufacturer": "Default Manufacturer",
43
- "model": "Carbon",
44
- "serialNo": "Default Serial Number",
45
- "firmwareRev": "22",
46
- "hardwareRev": "11",
47
- "cameraConfigVideoProcessor": "",
48
- "cameraConfigSource": "",
49
- "cameraConfigStillImageSource": "",
50
- "cameraConfigMaxStreams": "",
51
- "cameraConfigMaxWidth": "",
52
- "cameraConfigMaxHeight": "",
53
- "cameraConfigMaxFPS": "",
54
- "cameraConfigMaxBitrate": "",
55
- "cameraConfigVideoCodec": "",
56
- "cameraConfigAudioCodec": "",
57
- "cameraConfigAudio": false,
58
- "cameraConfigPacketSize": "",
59
- "cameraConfigVerticalFlip": false,
60
- "cameraConfigHorizontalFlip": false,
61
- "cameraConfigMapVideo": "",
62
- "cameraConfigMapAudio": "",
63
- "cameraConfigVideoFilter": "",
64
- "cameraConfigAdditionalCommandLine": "",
65
- "cameraConfigDebug": false,
66
- "cameraConfigSnapshotOutput": "disabled",
67
- "cameraConfigInterfaceName": "",
68
- "characteristicProperties": "{\n \"CarbonDioxideLevel\" : true,\n \"CarbonDioxidePeakLevel\": true,\n \"StatusActive\" : true\n}",
69
- "outputs": 2,
70
- "x": 670,
71
- "y": 880,
72
- "wires": [[], []]
73
- },
74
- {
75
- "id": "3611c654.8a42f2",
76
- "type": "function",
77
- "z": "60b06629.a2ebd",
78
- "g": "ab48426e.25466",
79
- "name": "Random values, peak value",
80
- "func": "// Reset all values to 0 if 0ppm input\nif(msg.payload === 0){\n context.set('lastPeak',0);\n newMsg = {\n payload: {\n \"CarbonDioxideLevel\":0,\n \"CarbonDioxidePeakLevel\":0,\n \"CarbonDioxideDetected\":0\n }\n };\n return newMsg;\n}\n\n// Initialize vars\nvar CurrentLevel = 0;\nvar lastPeak = context.get('lastPeak');\n\n// Set random safe or dangerous levels\nif(msg.payload === \"Safe\"){\n CurrentLevel = Math.floor(Math.random() * (999 - 1 + 1) + 1);\n}\nif(msg.payload === \"Danger\"){\n CurrentLevel = Math.floor(Math.random() * (100000 - 1000 + 1) + 1000);\n}\n\n// Formulate output message\nvar newMsg = {\n payload: {\n \"CarbonDioxideLevel\" : CurrentLevel,\n \"CarbonDioxideDetected\" : 0\n }\n};\n\n// Set new peak level\nif(CurrentLevel > lastPeak){\n lastPeak = CurrentLevel;\n context.set('lastPeak',CurrentLevel);\n newMsg.payload.CarbonDioxidePeakLevel = CurrentLevel;\n}\n\n// Set warning if dangerous\nif (CurrentLevel >= 1000) {\n newMsg.payload.CarbonDioxideDetected = 1;\n} \n\nreturn newMsg;",
81
- "outputs": 1,
82
- "noerr": 0,
83
- "initialize": "// Code added here will be run once\n// whenever the node is deployed.\ncontext.set('lastPeak',0);\n",
84
- "finalize": "",
85
- "x": 400,
86
- "y": 880,
87
- "wires": [["88892b4.8a61bd8"]]
88
- },
89
- {
90
- "id": "62cafcb0.8ade9c",
91
- "type": "inject",
92
- "z": "60b06629.a2ebd",
93
- "g": "ab48426e.25466",
94
- "name": "Active",
95
- "repeat": "",
96
- "crontab": "",
97
- "once": false,
98
- "onceDelay": 0.1,
99
- "topic": "",
100
- "payload": "{\"StatusActive\":true}",
101
- "payloadType": "json",
102
- "x": 470,
103
- "y": 920,
104
- "wires": [["88892b4.8a61bd8"]]
105
- },
106
- {
107
- "id": "a0171cdb.f209b",
108
- "type": "inject",
109
- "z": "60b06629.a2ebd",
110
- "g": "ab48426e.25466",
111
- "name": "Inactive",
112
- "repeat": "",
113
- "crontab": "",
114
- "once": false,
115
- "onceDelay": 0.1,
116
- "topic": "",
117
- "payload": "{\"StatusActive\":false}",
118
- "payloadType": "json",
119
- "x": 470,
120
- "y": 960,
121
- "wires": [["88892b4.8a61bd8"]]
122
- },
123
- {
124
- "id": "6f7de764.a6a688",
125
- "type": "inject",
126
- "z": "60b06629.a2ebd",
127
- "g": "ab48426e.25466",
128
- "name": "NO RESPONSE",
129
- "repeat": "",
130
- "crontab": "",
131
- "once": false,
132
- "onceDelay": 0.1,
133
- "topic": "",
134
- "payload": "{\"CarbonDioxideLevel\":\"NO_RESPONSE\"}",
135
- "payloadType": "json",
136
- "x": 440,
137
- "y": 1000,
138
- "wires": [["88892b4.8a61bd8"]]
139
- },
140
- {
141
- "id": "8758b463.afb0f",
142
- "type": "inject",
143
- "z": "60b06629.a2ebd",
144
- "g": "ab48426e.25466",
145
- "name": "0 ppm",
146
- "props": [
147
- {
148
- "p": "payload"
149
- }
150
- ],
151
- "repeat": "",
152
- "crontab": "",
153
- "once": false,
154
- "onceDelay": 0.1,
155
- "topic": "",
156
- "payload": "0",
157
- "payloadType": "num",
158
- "x": 110,
159
- "y": 880,
160
- "wires": [["3611c654.8a42f2"]]
161
- },
162
- {
163
- "id": "69e8161b.74b7a",
164
- "type": "inject",
165
- "z": "60b06629.a2ebd",
166
- "g": "ab48426e.25466",
167
- "name": "Safe Level",
168
- "props": [
169
- {
170
- "p": "payload"
171
- }
172
- ],
173
- "repeat": "",
174
- "crontab": "",
175
- "once": false,
176
- "onceDelay": 0.1,
177
- "topic": "",
178
- "payload": "Safe",
179
- "payloadType": "str",
180
- "x": 120,
181
- "y": 920,
182
- "wires": [["3611c654.8a42f2"]]
183
- },
184
- {
185
- "id": "40010b09.c73cdc",
186
- "type": "inject",
187
- "z": "60b06629.a2ebd",
188
- "g": "ab48426e.25466",
189
- "name": "Dangerous level",
190
- "props": [
191
- {
192
- "p": "payload"
193
- }
194
- ],
195
- "repeat": "",
196
- "crontab": "",
197
- "once": false,
198
- "onceDelay": 0.1,
199
- "topic": "",
200
- "payload": "Danger",
201
- "payloadType": "str",
202
- "x": 140,
203
- "y": 960,
204
- "wires": [["3611c654.8a42f2"]]
205
- },
206
- {
207
- "id": "409001a1.3e7a78",
208
- "type": "homekit-bridge",
209
- "z": "",
210
- "bridgeName": "Demo 1",
211
- "pinCode": "153-10-538",
212
- "port": "",
213
- "allowInsecureRequest": false,
214
- "manufacturer": "NRCHKB",
215
- "model": "Demo",
216
- "serialNo": "1.1.2",
217
- "customMdnsConfig": false,
218
- "mdnsMulticast": true,
219
- "mdnsInterface": "",
220
- "mdnsPort": "",
221
- "mdnsIp": "",
222
- "mdnsTtl": "",
223
- "mdnsLoopback": true,
224
- "mdnsReuseAddr": true,
225
- "allowMessagePassthrough": true
226
- }
30
+ {
31
+ "id": "88892b4.8a61bd8",
32
+ "type": "homekit-service",
33
+ "z": "60b06629.a2ebd",
34
+ "g": "ab48426e.25466",
35
+ "isParent": true,
36
+ "bridge": "409001a1.3e7a78",
37
+ "parentService": "",
38
+ "name": "CO2 Sensor",
39
+ "serviceName": "CarbonDioxideSensor",
40
+ "topic": "",
41
+ "filter": false,
42
+ "manufacturer": "Default Manufacturer",
43
+ "model": "Carbon",
44
+ "serialNo": "Default Serial Number",
45
+ "firmwareRev": "22",
46
+ "hardwareRev": "11",
47
+ "cameraConfigVideoProcessor": "",
48
+ "cameraConfigSource": "",
49
+ "cameraConfigStillImageSource": "",
50
+ "cameraConfigMaxStreams": "",
51
+ "cameraConfigMaxWidth": "",
52
+ "cameraConfigMaxHeight": "",
53
+ "cameraConfigMaxFPS": "",
54
+ "cameraConfigMaxBitrate": "",
55
+ "cameraConfigVideoCodec": "",
56
+ "cameraConfigAudioCodec": "",
57
+ "cameraConfigAudio": false,
58
+ "cameraConfigPacketSize": "",
59
+ "cameraConfigVerticalFlip": false,
60
+ "cameraConfigHorizontalFlip": false,
61
+ "cameraConfigMapVideo": "",
62
+ "cameraConfigMapAudio": "",
63
+ "cameraConfigVideoFilter": "",
64
+ "cameraConfigAdditionalCommandLine": "",
65
+ "cameraConfigDebug": false,
66
+ "cameraConfigSnapshotOutput": "disabled",
67
+ "cameraConfigInterfaceName": "",
68
+ "characteristicProperties": "{\n \"CarbonDioxideLevel\" : true,\n \"CarbonDioxidePeakLevel\": true,\n \"StatusActive\" : true\n}",
69
+ "outputs": 2,
70
+ "x": 670,
71
+ "y": 880,
72
+ "wires": [[], []]
73
+ },
74
+ {
75
+ "id": "3611c654.8a42f2",
76
+ "type": "function",
77
+ "z": "60b06629.a2ebd",
78
+ "g": "ab48426e.25466",
79
+ "name": "Random values, peak value",
80
+ "func": "// Reset all values to 0 if 0ppm input\nif(msg.payload === 0){\n context.set('lastPeak',0);\n newMsg = {\n payload: {\n \"CarbonDioxideLevel\":0,\n \"CarbonDioxidePeakLevel\":0,\n \"CarbonDioxideDetected\":0\n }\n };\n return newMsg;\n}\n\n// Initialize vars\nvar CurrentLevel = 0;\nvar lastPeak = context.get('lastPeak');\n\n// Set random safe or dangerous levels\nif(msg.payload === \"Safe\"){\n CurrentLevel = Math.floor(Math.random() * (999 - 1 + 1) + 1);\n}\nif(msg.payload === \"Danger\"){\n CurrentLevel = Math.floor(Math.random() * (100000 - 1000 + 1) + 1000);\n}\n\n// Formulate output message\nvar newMsg = {\n payload: {\n \"CarbonDioxideLevel\" : CurrentLevel,\n \"CarbonDioxideDetected\" : 0\n }\n};\n\n// Set new peak level\nif(CurrentLevel > lastPeak){\n lastPeak = CurrentLevel;\n context.set('lastPeak',CurrentLevel);\n newMsg.payload.CarbonDioxidePeakLevel = CurrentLevel;\n}\n\n// Set warning if dangerous\nif (CurrentLevel >= 1000) {\n newMsg.payload.CarbonDioxideDetected = 1;\n} \n\nreturn newMsg;",
81
+ "outputs": 1,
82
+ "noerr": 0,
83
+ "initialize": "// Code added here will be run once\n// whenever the node is deployed.\ncontext.set('lastPeak',0);\n",
84
+ "finalize": "",
85
+ "x": 400,
86
+ "y": 880,
87
+ "wires": [["88892b4.8a61bd8"]]
88
+ },
89
+ {
90
+ "id": "62cafcb0.8ade9c",
91
+ "type": "inject",
92
+ "z": "60b06629.a2ebd",
93
+ "g": "ab48426e.25466",
94
+ "name": "Active",
95
+ "repeat": "",
96
+ "crontab": "",
97
+ "once": false,
98
+ "onceDelay": 0.1,
99
+ "topic": "",
100
+ "payload": "{\"StatusActive\":true}",
101
+ "payloadType": "json",
102
+ "x": 470,
103
+ "y": 920,
104
+ "wires": [["88892b4.8a61bd8"]]
105
+ },
106
+ {
107
+ "id": "a0171cdb.f209b",
108
+ "type": "inject",
109
+ "z": "60b06629.a2ebd",
110
+ "g": "ab48426e.25466",
111
+ "name": "Inactive",
112
+ "repeat": "",
113
+ "crontab": "",
114
+ "once": false,
115
+ "onceDelay": 0.1,
116
+ "topic": "",
117
+ "payload": "{\"StatusActive\":false}",
118
+ "payloadType": "json",
119
+ "x": 470,
120
+ "y": 960,
121
+ "wires": [["88892b4.8a61bd8"]]
122
+ },
123
+ {
124
+ "id": "6f7de764.a6a688",
125
+ "type": "inject",
126
+ "z": "60b06629.a2ebd",
127
+ "g": "ab48426e.25466",
128
+ "name": "NO RESPONSE",
129
+ "repeat": "",
130
+ "crontab": "",
131
+ "once": false,
132
+ "onceDelay": 0.1,
133
+ "topic": "",
134
+ "payload": "{\"CarbonDioxideLevel\":\"NO_RESPONSE\"}",
135
+ "payloadType": "json",
136
+ "x": 440,
137
+ "y": 1000,
138
+ "wires": [["88892b4.8a61bd8"]]
139
+ },
140
+ {
141
+ "id": "8758b463.afb0f",
142
+ "type": "inject",
143
+ "z": "60b06629.a2ebd",
144
+ "g": "ab48426e.25466",
145
+ "name": "0 ppm",
146
+ "props": [
147
+ {
148
+ "p": "payload"
149
+ }
150
+ ],
151
+ "repeat": "",
152
+ "crontab": "",
153
+ "once": false,
154
+ "onceDelay": 0.1,
155
+ "topic": "",
156
+ "payload": "0",
157
+ "payloadType": "num",
158
+ "x": 110,
159
+ "y": 880,
160
+ "wires": [["3611c654.8a42f2"]]
161
+ },
162
+ {
163
+ "id": "69e8161b.74b7a",
164
+ "type": "inject",
165
+ "z": "60b06629.a2ebd",
166
+ "g": "ab48426e.25466",
167
+ "name": "Safe Level",
168
+ "props": [
169
+ {
170
+ "p": "payload"
171
+ }
172
+ ],
173
+ "repeat": "",
174
+ "crontab": "",
175
+ "once": false,
176
+ "onceDelay": 0.1,
177
+ "topic": "",
178
+ "payload": "Safe",
179
+ "payloadType": "str",
180
+ "x": 120,
181
+ "y": 920,
182
+ "wires": [["3611c654.8a42f2"]]
183
+ },
184
+ {
185
+ "id": "40010b09.c73cdc",
186
+ "type": "inject",
187
+ "z": "60b06629.a2ebd",
188
+ "g": "ab48426e.25466",
189
+ "name": "Dangerous level",
190
+ "props": [
191
+ {
192
+ "p": "payload"
193
+ }
194
+ ],
195
+ "repeat": "",
196
+ "crontab": "",
197
+ "once": false,
198
+ "onceDelay": 0.1,
199
+ "topic": "",
200
+ "payload": "Danger",
201
+ "payloadType": "str",
202
+ "x": 140,
203
+ "y": 960,
204
+ "wires": [["3611c654.8a42f2"]]
205
+ },
206
+ {
207
+ "id": "409001a1.3e7a78",
208
+ "type": "homekit-bridge",
209
+ "z": "",
210
+ "bridgeName": "Demo 1",
211
+ "pinCode": "153-10-538",
212
+ "port": "",
213
+ "allowInsecureRequest": false,
214
+ "manufacturer": "NRCHKB",
215
+ "model": "Demo",
216
+ "serialNo": "1.1.2",
217
+ "customMdnsConfig": false,
218
+ "mdnsMulticast": true,
219
+ "mdnsInterface": "",
220
+ "mdnsPort": "",
221
+ "mdnsIp": "",
222
+ "mdnsTtl": "",
223
+ "mdnsLoopback": true,
224
+ "mdnsReuseAddr": true,
225
+ "allowMessagePassthrough": true
226
+ }
227
227
  ]