@switchbot/homebridge-switchbot 4.3.1-beta.1 → 4.3.1-beta.10

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.
@@ -67,7 +67,7 @@
67
67
  "title": "Device ID",
68
68
  "type": "string",
69
69
  "placeholder": "81F3UT59513F",
70
- "pattern": "^[0-9A-F]{12}$"
70
+ "pattern": "^[0-9A-F]{12}$|^[0-9A-Z0-9]{18}$"
71
71
  },
72
72
  "hide_device": {
73
73
  "title": "Hide Device",
@@ -205,23 +205,41 @@
205
205
  ]
206
206
  },
207
207
  {
208
- "title": "K10+",
208
+ "title": "Meter Pro",
209
+ "enum": [
210
+ "MeterPro"
211
+ ]
212
+ },
213
+ {
214
+ "title": "Meter Pro (CO2)",
215
+ "enum": [
216
+ "MeterPro(CO2)"
217
+ ]
218
+ },
219
+ {
220
+ "title": "Mini Robot Vacuum K10+",
209
221
  "enum": [
210
222
  "K10+"
211
223
  ]
212
224
  },
213
225
  {
214
- "title": "K10+ Pro",
226
+ "title": "Mini Robot Vacuum K10+ Pro",
215
227
  "enum": [
216
228
  "K10+ Pro"
217
229
  ]
218
230
  },
219
231
  {
220
- "title": "Mini Robot Vacuum K10+",
232
+ "title": "Mini Robot Vacuum K10+ (WoSweeperMini)",
221
233
  "enum": [
222
234
  "WoSweeperMini"
223
235
  ]
224
236
  },
237
+ {
238
+ "title": "Mini Robot Vacuum K10+ Pro (WoSweeperMiniPro)",
239
+ "enum": [
240
+ "WoSweeperMiniPro"
241
+ ]
242
+ },
225
243
  {
226
244
  "title": "Motion Sensor",
227
245
  "enum": [
@@ -249,13 +267,13 @@
249
267
  {
250
268
  "title": "Robot Vacuum Cleaner S1",
251
269
  "enum": [
252
- "Robot Vacuum Cleaner S1"
270
+ "WoSweeper"
253
271
  ]
254
272
  },
255
273
  {
256
274
  "title": "Robot Vacuum Cleaner S1 Plus",
257
275
  "enum": [
258
- "Robot Vacuum Cleaner S1 Plus"
276
+ "WoSweeperPlus"
259
277
  ]
260
278
  },
261
279
  {
@@ -293,6 +311,12 @@
293
311
  "enum": [
294
312
  "Strip Light"
295
313
  ]
314
+ },
315
+ {
316
+ "title": "Wallet Finder",
317
+ "enum": [
318
+ "WalletFinder"
319
+ ]
296
320
  }
297
321
  ]
298
322
  },
@@ -547,14 +571,14 @@
547
571
  "title": "Hide Temperature Sensor",
548
572
  "type": "boolean",
549
573
  "condition": {
550
- "functionBody": "return (model.options && model.options.devices && !model.options.devices[arrayIndices].hide_device && (model.options.devices[arrayIndices].configDeviceType === 'Hub 2' || model.options.devices[arrayIndices].configDeviceType === 'Humidifier' || model.options.devices[arrayIndices].configDeviceType === 'Humidifier2' || model.options.devices[arrayIndices].configDeviceType === 'WoIOSensor' || model.options.devices[arrayIndices].configDeviceType === 'Meter' || model.options.devices[arrayIndices].configDeviceType === 'MeterPlus' || model.options.devices[arrayIndices].configDeviceType === 'Meter Plus (JP)') && model.options.devices[arrayIndices].deviceId);"
574
+ "functionBody": "return (model.options && model.options.devices && !model.options.devices[arrayIndices].hide_device && (model.options.devices[arrayIndices].configDeviceType === 'Hub 2' || model.options.devices[arrayIndices].configDeviceType === 'Humidifier' || model.options.devices[arrayIndices].configDeviceType === 'Humidifier2' || model.options.devices[arrayIndices].configDeviceType === 'WoIOSensor' || model.options.devices[arrayIndices].configDeviceType === 'Meter' || model.options.devices[arrayIndices].configDeviceType === 'MeterPlus' || model.options.devices[arrayIndices].configDeviceType === 'Meter Plus (JP)' || model.options.devices[arrayIndices].configDeviceType === 'MeterPro' || model.options.devices[arrayIndices].configDeviceType === 'MeterPro(CO2)') && model.options.devices[arrayIndices].deviceId);"
551
575
  }
552
576
  },
553
577
  "convertUnitTo": {
554
578
  "title": "Convert Temperature Unit To",
555
579
  "type": "string",
556
580
  "condition": {
557
- "functionBody": "return (model.options && model.options.devices && !model.options.devices[arrayIndices].hide_device && (model.options.devices[arrayIndices].configDeviceType === 'Hub 2' || model.options.devices[arrayIndices].configDeviceType === 'Humidifier' || model.options.devices[arrayIndices].configDeviceType === 'Humidifier2' || model.options.devices[arrayIndices].configDeviceType === 'WoIOSensor' || model.options.devices[arrayIndices].configDeviceType === 'Meter' || model.options.devices[arrayIndices].configDeviceType === 'MeterPlus' || model.options.devices[arrayIndices].configDeviceType === 'Meter Plus (JP)') && model.options.devices[arrayIndices].deviceId && !model.options.devices[arrayIndices].hide_temperature);"
581
+ "functionBody": "return (model.options && model.options.devices && !model.options.devices[arrayIndices].hide_device && (model.options.devices[arrayIndices].configDeviceType === 'Hub 2' || model.options.devices[arrayIndices].configDeviceType === 'Humidifier' || model.options.devices[arrayIndices].configDeviceType === 'Humidifier2' || model.options.devices[arrayIndices].configDeviceType === 'WoIOSensor' || model.options.devices[arrayIndices].configDeviceType === 'Meter' || model.options.devices[arrayIndices].configDeviceType === 'MeterPlus' || model.options.devices[arrayIndices].configDeviceType === 'Meter Plus (JP)' || model.options.devices[arrayIndices].configDeviceType === 'MeterPro' || model.options.devices[arrayIndices].configDeviceType === 'MeterPro(CO2)') && model.options.devices[arrayIndices].deviceId && !model.options.devices[arrayIndices].hide_temperature);"
558
582
  },
559
583
  "oneOf": [
560
584
  {
@@ -575,7 +599,7 @@
575
599
  "title": "Hide Humidity Sensor",
576
600
  "type": "boolean",
577
601
  "condition": {
578
- "functionBody": "return (model.options && model.options.devices && !model.options.devices[arrayIndices].hide_device && (model.options.devices[arrayIndices].configDeviceType === 'Hub 2' || model.options.devices[arrayIndices].configDeviceType === 'WoIOSensor' || model.options.devices[arrayIndices].configDeviceType === 'Meter' || model.options.devices[arrayIndices].configDeviceType === 'MeterPlus' || model.options.devices[arrayIndices].configDeviceType === 'Meter Plus (JP)') && model.options.devices[arrayIndices].deviceId);"
602
+ "functionBody": "return (model.options && model.options.devices && !model.options.devices[arrayIndices].hide_device && (model.options.devices[arrayIndices].configDeviceType === 'Hub 2' || model.options.devices[arrayIndices].configDeviceType === 'WoIOSensor' || model.options.devices[arrayIndices].configDeviceType === 'Meter' || model.options.devices[arrayIndices].configDeviceType === 'MeterPlus' || model.options.devices[arrayIndices].configDeviceType === 'Meter Plus (JP)' || model.options.devices[arrayIndices].configDeviceType === 'MeterPro' || model.options.devices[arrayIndices].configDeviceType === 'MeterPro(CO2)') && model.options.devices[arrayIndices].deviceId);"
579
603
  }
580
604
  },
581
605
  "hide_lightsensor": {
@@ -765,28 +789,28 @@
765
789
  "type": "string",
766
790
  "placeholder": "192.168.7.1",
767
791
  "condition": {
768
- "functionBody": "return (model.options && model.options.devices && !model.options.devices[arrayIndices].hide_device && model.options.devices[arrayIndices].deviceId && (model.options.devices[arrayIndices].configDeviceType === 'Curtain' || model.options.devices[arrayIndices].configDeviceType === 'Water Detector' || model.options.devices[arrayIndices].configDeviceType === 'WoIOSensor' || model.options.devices[arrayIndices].configDeviceType === 'Hub 2' || model.options.devices[arrayIndices].configDeviceType === 'Meter' || model.options.devices[arrayIndices].configDeviceType === 'MeterPlus' || model.options.devices[arrayIndices].configDeviceType === 'Meter Plus (JP)'));"
792
+ "functionBody": "return (model.options && model.options.devices && !model.options.devices[arrayIndices].hide_device && model.options.devices[arrayIndices].deviceId && (model.options.devices[arrayIndices].configDeviceType === 'Curtain' || model.options.devices[arrayIndices].configDeviceType === 'Water Detector' || model.options.devices[arrayIndices].configDeviceType === 'WoIOSensor' || model.options.devices[arrayIndices].configDeviceType === 'Hub 2' || model.options.devices[arrayIndices].configDeviceType === 'Meter' || model.options.devices[arrayIndices].configDeviceType === 'MeterPlus' || model.options.devices[arrayIndices].configDeviceType === 'Meter Plus (JP)' || model.options.devices[arrayIndices].configDeviceType === 'MeterPro' || model.options.devices[arrayIndices].configDeviceType === 'MeterPro(CO2)'));"
769
793
  }
770
794
  },
771
795
  "mqttOptions": {
772
796
  "title": "MQTT Options (Device Specific)",
773
797
  "type": "string",
774
798
  "condition": {
775
- "functionBody": "return (model.options && model.options.devices && !model.options.devices[arrayIndices].hide_device && model.options.devices[arrayIndices].deviceId && model.options.devices[arrayIndices].mqttURL && (model.options.devices[arrayIndices].configDeviceType === 'Curtain' || model.options.devices[arrayIndices].configDeviceType === 'Water Detector' || model.options.devices[arrayIndices].configDeviceType === 'WoIOSensor' || model.options.devices[arrayIndices].configDeviceType === 'Hub 2' || model.options.devices[arrayIndices].configDeviceType === 'Meter' || model.options.devices[arrayIndices].configDeviceType === 'MeterPlus' || model.options.devices[arrayIndices].configDeviceType === 'Meter Plus (JP)'));"
799
+ "functionBody": "return (model.options && model.options.devices && !model.options.devices[arrayIndices].hide_device && model.options.devices[arrayIndices].deviceId && model.options.devices[arrayIndices].mqttURL && (model.options.devices[arrayIndices].configDeviceType === 'Curtain' || model.options.devices[arrayIndices].configDeviceType === 'Water Detector' || model.options.devices[arrayIndices].configDeviceType === 'WoIOSensor' || model.options.devices[arrayIndices].configDeviceType === 'Hub 2' || model.options.devices[arrayIndices].configDeviceType === 'Meter' || model.options.devices[arrayIndices].configDeviceType === 'MeterPlus' || model.options.devices[arrayIndices].configDeviceType === 'Meter Plus (JP)' || model.options.devices[arrayIndices].configDeviceType === 'MeterPro' || model.options.devices[arrayIndices].configDeviceType === 'MeterPro(CO2)'));"
776
800
  }
777
801
  },
778
802
  "mqttPubOptions": {
779
803
  "title": "MQTT Pub Options (Device Specific)",
780
804
  "type": "string",
781
805
  "condition": {
782
- "functionBody": "return (model.options && model.options.devices && !model.options.devices[arrayIndices].hide_device && model.options.devices[arrayIndices].deviceId && model.options.devices[arrayIndices].mqttURL && (model.options.devices[arrayIndices].configDeviceType === 'Curtain' || model.options.devices[arrayIndices].configDeviceType === 'Water Detector' || model.options.devices[arrayIndices].configDeviceType === 'WoIOSensor' || model.options.devices[arrayIndices].configDeviceType === 'Hub 2' || model.options.devices[arrayIndices].configDeviceType === 'Meter' || model.options.devices[arrayIndices].configDeviceType === 'MeterPlus' || model.options.devices[arrayIndices].configDeviceType === 'Meter Plus (JP)'));"
806
+ "functionBody": "return (model.options && model.options.devices && !model.options.devices[arrayIndices].hide_device && model.options.devices[arrayIndices].deviceId && model.options.devices[arrayIndices].mqttURL && (model.options.devices[arrayIndices].configDeviceType === 'Curtain' || model.options.devices[arrayIndices].configDeviceType === 'Water Detector' || model.options.devices[arrayIndices].configDeviceType === 'WoIOSensor' || model.options.devices[arrayIndices].configDeviceType === 'Hub 2' || model.options.devices[arrayIndices].configDeviceType === 'Meter' || model.options.devices[arrayIndices].configDeviceType === 'MeterPlus' || model.options.devices[arrayIndices].configDeviceType === 'Meter Plus (JP)' || model.options.devices[arrayIndices].configDeviceType === 'MeterPro' || model.options.devices[arrayIndices].configDeviceType === 'MeterPro(CO2)'));"
783
807
  }
784
808
  },
785
809
  "history": {
786
810
  "title": "EVE History",
787
811
  "type": "boolean",
788
812
  "condition": {
789
- "functionBody": "return (model.options && model.options.devices && !model.options.devices[arrayIndices].hide_device && model.options.devices[arrayIndices].deviceId && (model.options.devices[arrayIndices].configDeviceType === 'Curtain' || model.options.devices[arrayIndices].configDeviceType === 'Water Detector' || model.options.devices[arrayIndices].configDeviceType === 'WoIOSensor' || model.options.devices[arrayIndices].configDeviceType === 'Hub 2' || model.options.devices[arrayIndices].configDeviceType === 'Meter' || model.options.devices[arrayIndices].configDeviceType === 'MeterPlus' || model.options.devices[arrayIndices].configDeviceType === 'Meter Plus (JP)'));"
813
+ "functionBody": "return (model.options && model.options.devices && !model.options.devices[arrayIndices].hide_device && model.options.devices[arrayIndices].deviceId && (model.options.devices[arrayIndices].configDeviceType === 'Curtain' || model.options.devices[arrayIndices].configDeviceType === 'Water Detector' || model.options.devices[arrayIndices].configDeviceType === 'WoIOSensor' || model.options.devices[arrayIndices].configDeviceType === 'Hub 2' || model.options.devices[arrayIndices].configDeviceType === 'Meter' || model.options.devices[arrayIndices].configDeviceType === 'MeterPlus' || model.options.devices[arrayIndices].configDeviceType === 'Meter Plus (JP)' || model.options.devices[arrayIndices].configDeviceType === 'MeterPro' || model.options.devices[arrayIndices].configDeviceType === 'MeterPro(CO2)'));"
790
814
  }
791
815
  },
792
816
  "offline": {
@@ -2843,6 +2867,448 @@
2843
2867
  }
2844
2868
  }
2845
2869
  },
2870
+ "MeterPro": {
2871
+ "type": "object",
2872
+ "properties": {
2873
+ "hide_device": {
2874
+ "title": "Hide All Meter Pluses",
2875
+ "type": "boolean",
2876
+ "description": "If true, device will be removed or hidden from HomeKit."
2877
+ },
2878
+ "hide_temperature": {
2879
+ "title": "Hide Temperature Sensor",
2880
+ "type": "boolean",
2881
+ "condition": {
2882
+ "functionBody": "return (model.options && model.options.deviceConfig && model.options.deviceConfig['MeterPro'] && !model.options.deviceConfig['MeterPro'].hide_device);"
2883
+ }
2884
+ },
2885
+ "convertUnitTo": {
2886
+ "title": "Convert Temperature Unit To",
2887
+ "type": "string",
2888
+ "condition": {
2889
+ "functionBody": "return (model.options && model.options.deviceConfig && model.options.deviceConfig['MeterPro'] && !model.options.deviceConfig['MeterPro'].hide_device);"
2890
+ },
2891
+ "oneOf": [
2892
+ {
2893
+ "title": "Celsius",
2894
+ "enum": [
2895
+ "CELSIUS"
2896
+ ]
2897
+ },
2898
+ {
2899
+ "title": "Fahrenheit",
2900
+ "enum": [
2901
+ "FAHRENHEIT"
2902
+ ]
2903
+ }
2904
+ ]
2905
+ },
2906
+ "hide_humidity": {
2907
+ "title": "Hide Humidity Sensor",
2908
+ "type": "boolean",
2909
+ "condition": {
2910
+ "functionBody": "return (model.options && model.options.deviceConfig && model.options.deviceConfig['MeterPro'] && !model.options.deviceConfig['MeterPro'].hide_device);"
2911
+ }
2912
+ },
2913
+ "connectionType": {
2914
+ "title": "Connection Type",
2915
+ "type": "string",
2916
+ "description": "Bluetooth (BLE) API is only available on certain Device Types, see the Wiki for more information.",
2917
+ "condition": {
2918
+ "functionBody": "return (model.options && model.options.deviceConfig && model.options.deviceConfig['MeterPro'] && !model.options.deviceConfig['MeterPro'].hide_device);"
2919
+ },
2920
+ "oneOf": [
2921
+ {
2922
+ "title": "BLE",
2923
+ "enum": [
2924
+ "BLE"
2925
+ ]
2926
+ },
2927
+ {
2928
+ "title": "BLE/OpenAPI",
2929
+ "enum": [
2930
+ "BLE/OpenAPI"
2931
+ ]
2932
+ },
2933
+ {
2934
+ "title": "Disable",
2935
+ "enum": [
2936
+ "Disabled"
2937
+ ]
2938
+ },
2939
+ {
2940
+ "title": "OpenAPI",
2941
+ "enum": [
2942
+ "OpenAPI"
2943
+ ]
2944
+ }
2945
+ ]
2946
+ },
2947
+ "disablePlatformBLE": {
2948
+ "title": "Disable Platform BLE",
2949
+ "type": "boolean",
2950
+ "condition": {
2951
+ "functionBody": "return (model.options && model.options.deviceConfig && model.options.deviceConfig['MeterPro'] && !model.options.deviceConfig['MeterPro'].hide_device && model.options.deviceConfig['MeterPlus'].connectionType !== 'Disabled');"
2952
+ }
2953
+ },
2954
+ "scanDuration": {
2955
+ "title": "Scan Duration (Default is 1 Second) for BLE",
2956
+ "type": "number",
2957
+ "placeholder": 1,
2958
+ "condition": {
2959
+ "functionBody": "return (model.options && model.options.deviceConfig && model.options.deviceConfig['MeterPro'] && !model.options.deviceConfig['MeterPro'].hide_device && (model.options.deviceConfig['MeterPlus'].connectionType === 'BLE' || model.options.deviceConfig['MeterPro'].connectionType === 'BLE/OpenAPI'));"
2960
+ }
2961
+ },
2962
+ "webhook": {
2963
+ "title": "Enable Webhook for all Meter Pluses",
2964
+ "type": "boolean",
2965
+ "condition": {
2966
+ "functionBody": "return (model.options && model.options.deviceConfig && model.options.deviceConfig['MeterPro'] && !model.options.deviceConfig['MeterPro'].hide_device && (model.options.deviceConfig['MeterPlus'].connectionType === 'OpenAPI' || model.options.deviceConfig['MeterPro'].connectionType === 'BLE/OpenAPI'));"
2967
+ }
2968
+ },
2969
+ "external": {
2970
+ "title": "External Accessory",
2971
+ "type": "boolean",
2972
+ "condition": {
2973
+ "functionBody": "return (model.options && model.options.deviceConfig && model.options.deviceConfig['MeterPro'] && !model.options.deviceConfig['MeterPro'].hide_device);"
2974
+ }
2975
+ },
2976
+ "maxRetry": {
2977
+ "title": "Max Retries for BLE",
2978
+ "type": "number",
2979
+ "placeholder": "5",
2980
+ "condition": {
2981
+ "functionBody": "return (model.options && model.options.deviceConfig && model.options.deviceConfig['MeterPro'] && !model.options.deviceConfig['MeterPro'].hide_device && (model.options.deviceConfig['MeterPro'].connectionType === 'BLE' || model.options.deviceConfig['MeterPro'].connectionType === 'BLE/OpenAPI'));"
2982
+ }
2983
+ },
2984
+ "maxRetries": {
2985
+ "title": "Device Max Retries for OpenAPI",
2986
+ "type": "number",
2987
+ "placeholder": 5,
2988
+ "condition": {
2989
+ "functionBody": "return (model.options && model.options.deviceConfig && model.options.deviceConfig['MeterPro'] && !model.options.deviceConfig['MeterPro'].hide_device && (model.options.deviceConfig['MeterPro'].connectionType === 'OpenAPI' || model.options.deviceConfig['MeterPro'].connectionType === 'BLE/OpenAPI'));"
2990
+ }
2991
+ },
2992
+ "delayBetweenRetries": {
2993
+ "title": "Device Delay Between Retries for OpenAPI (In Seconds)",
2994
+ "type": "number",
2995
+ "placeholder": 3,
2996
+ "condition": {
2997
+ "functionBody": "return (model.options && model.options.deviceConfig && model.options.deviceConfig['MeterPro'] && !model.options.deviceConfig['MeterPro'].hide_device && (model.options.deviceConfig['MeterPro'].connectionType === 'OpenAPI' || model.options.deviceConfig['MeterPro'].connectionType === 'BLE/OpenAPI'));"
2998
+ }
2999
+ },
3000
+ "disableCaching": {
3001
+ "title": "Disable Caching",
3002
+ "type": "boolean",
3003
+ "condition": {
3004
+ "functionBody": "return (model.options && model.options.deviceConfig && model.options.deviceConfig['MeterPro'] && !model.options.deviceConfig['MeterPro'].hide_device);"
3005
+ }
3006
+ },
3007
+ "offline": {
3008
+ "title": "Offline as Off",
3009
+ "type": "boolean",
3010
+ "condition": {
3011
+ "functionBody": "return (model.options && model.options.deviceConfig && !model.options.deviceConfig['MeterPro'].hide_device);"
3012
+ }
3013
+ },
3014
+ "history": {
3015
+ "title": "EVE History",
3016
+ "type": "boolean",
3017
+ "condition": {
3018
+ "functionBody": "return (model.options && model.options.deviceConfig && !model.options.deviceConfig['MeterPro'].hide_device);"
3019
+ }
3020
+ },
3021
+ "firmware": {
3022
+ "title": "Firmware Override",
3023
+ "type": "string",
3024
+ "placeholder": "1.2.8",
3025
+ "condition": {
3026
+ "functionBody": "return (model.options && model.options.deviceConfig && !model.options.deviceConfig['MeterPro'].hide_device);"
3027
+ }
3028
+ },
3029
+ "logging": {
3030
+ "title": "Logging by Device Type",
3031
+ "type": "string",
3032
+ "default": "",
3033
+ "condition": {
3034
+ "functionBody": "return (model.options && model.options.deviceConfig && !model.options.deviceConfig['MeterPro'].hide_device);"
3035
+ },
3036
+ "oneOf": [
3037
+ {
3038
+ "title": "Debug Logging",
3039
+ "enum": [
3040
+ "debug"
3041
+ ]
3042
+ },
3043
+ {
3044
+ "title": "Default Logging",
3045
+ "enum": [
3046
+ ""
3047
+ ]
3048
+ },
3049
+ {
3050
+ "title": "No Logging",
3051
+ "enum": [
3052
+ "none"
3053
+ ]
3054
+ },
3055
+ {
3056
+ "title": "Standard Logging",
3057
+ "enum": [
3058
+ "standard"
3059
+ ]
3060
+ }
3061
+ ]
3062
+ },
3063
+ "refreshRate": {
3064
+ "title": "Device Refresh Rate",
3065
+ "type": "number",
3066
+ "placeholder": 5,
3067
+ "condition": {
3068
+ "functionBody": "return (model.options && model.options.deviceConfig && !model.options.deviceConfig['MeterPro'].hide_device);"
3069
+ }
3070
+ },
3071
+ "updateRate": {
3072
+ "title": "Update Rate",
3073
+ "type": "number",
3074
+ "minimum": 1,
3075
+ "placeholder": 5,
3076
+ "description": "Indicates the number of seconds before refreshing status while updating progress.",
3077
+ "condition": {
3078
+ "functionBody": "return (model.options && model.options.deviceConfig && !model.options.deviceConfig['MeterPro'].hide_device);"
3079
+ }
3080
+ },
3081
+ "pushRate": {
3082
+ "title": "Device Push Rate",
3083
+ "type": "number",
3084
+ "placeholder": 360,
3085
+ "condition": {
3086
+ "functionBody": "return (model.options && model.options.deviceConfig && !model.options.deviceConfig['MeterPro'].hide_device);"
3087
+ }
3088
+ }
3089
+ }
3090
+ },
3091
+ "MeterPro(CO2)": {
3092
+ "type": "object",
3093
+ "properties": {
3094
+ "hide_device": {
3095
+ "title": "Hide All Meter Pluses",
3096
+ "type": "boolean",
3097
+ "description": "If true, device will be removed or hidden from HomeKit."
3098
+ },
3099
+ "hide_temperature": {
3100
+ "title": "Hide Temperature Sensor",
3101
+ "type": "boolean",
3102
+ "condition": {
3103
+ "functionBody": "return (model.options && model.options.deviceConfig && model.options.deviceConfig['MeterPro(CO2)'] && !model.options.deviceConfig['MeterPro(CO2)'].hide_device);"
3104
+ }
3105
+ },
3106
+ "convertUnitTo": {
3107
+ "title": "Convert Temperature Unit To",
3108
+ "type": "string",
3109
+ "condition": {
3110
+ "functionBody": "return (model.options && model.options.deviceConfig && model.options.deviceConfig['MeterPro(CO2)'] && !model.options.deviceConfig['MeterPro(CO2)'].hide_device);"
3111
+ },
3112
+ "oneOf": [
3113
+ {
3114
+ "title": "Celsius",
3115
+ "enum": [
3116
+ "CELSIUS"
3117
+ ]
3118
+ },
3119
+ {
3120
+ "title": "Fahrenheit",
3121
+ "enum": [
3122
+ "FAHRENHEIT"
3123
+ ]
3124
+ }
3125
+ ]
3126
+ },
3127
+ "hide_humidity": {
3128
+ "title": "Hide Humidity Sensor",
3129
+ "type": "boolean",
3130
+ "condition": {
3131
+ "functionBody": "return (model.options && model.options.deviceConfig && model.options.deviceConfig['MeterPro(CO2)'] && !model.options.deviceConfig['MeterPro(CO2)'].hide_device);"
3132
+ }
3133
+ },
3134
+ "connectionType": {
3135
+ "title": "Connection Type",
3136
+ "type": "string",
3137
+ "description": "Bluetooth (BLE) API is only available on certain Device Types, see the Wiki for more information.",
3138
+ "condition": {
3139
+ "functionBody": "return (model.options && model.options.deviceConfig && model.options.deviceConfig['MeterPro(CO2)'] && !model.options.deviceConfig['MeterPro(CO2)'].hide_device);"
3140
+ },
3141
+ "oneOf": [
3142
+ {
3143
+ "title": "BLE",
3144
+ "enum": [
3145
+ "BLE"
3146
+ ]
3147
+ },
3148
+ {
3149
+ "title": "BLE/OpenAPI",
3150
+ "enum": [
3151
+ "BLE/OpenAPI"
3152
+ ]
3153
+ },
3154
+ {
3155
+ "title": "Disable",
3156
+ "enum": [
3157
+ "Disabled"
3158
+ ]
3159
+ },
3160
+ {
3161
+ "title": "OpenAPI",
3162
+ "enum": [
3163
+ "OpenAPI"
3164
+ ]
3165
+ }
3166
+ ]
3167
+ },
3168
+ "disablePlatformBLE": {
3169
+ "title": "Disable Platform BLE",
3170
+ "type": "boolean",
3171
+ "condition": {
3172
+ "functionBody": "return (model.options && model.options.deviceConfig && model.options.deviceConfig['MeterPro(CO2)'] && !model.options.deviceConfig['MeterPro(CO2)'].hide_device && model.options.deviceConfig['MeterPro(CO2)'].connectionType !== 'Disabled');"
3173
+ }
3174
+ },
3175
+ "scanDuration": {
3176
+ "title": "Scan Duration (Default is 1 Second) for BLE",
3177
+ "type": "number",
3178
+ "placeholder": 1,
3179
+ "condition": {
3180
+ "functionBody": "return (model.options && model.options.deviceConfig && model.options.deviceConfig['MeterPro(CO2)'] && !model.options.deviceConfig['MeterPro(CO2)'].hide_device && (model.options.deviceConfig['MeterPro(CO2)'].connectionType === 'BLE' || model.options.deviceConfig['MeterPro(CO2)'].connectionType === 'BLE/OpenAPI'));"
3181
+ }
3182
+ },
3183
+ "webhook": {
3184
+ "title": "Enable Webhook for all Meter Pluses",
3185
+ "type": "boolean",
3186
+ "condition": {
3187
+ "functionBody": "return (model.options && model.options.deviceConfig && model.options.deviceConfig['MeterPro(CO2)'] && !model.options.deviceConfig['MeterPro(CO2)'].hide_device && (model.options.deviceConfig['MeterPro(CO2)'].connectionType === 'OpenAPI' || model.options.deviceConfig['MeterPro(CO2)'].connectionType === 'BLE/OpenAPI'));"
3188
+ }
3189
+ },
3190
+ "external": {
3191
+ "title": "External Accessory",
3192
+ "type": "boolean",
3193
+ "condition": {
3194
+ "functionBody": "return (model.options && model.options.deviceConfig && model.options.deviceConfig['MeterPro(CO2)'] && !model.options.deviceConfig['MeterPro(CO2)'].hide_device);"
3195
+ }
3196
+ },
3197
+ "maxRetry": {
3198
+ "title": "Max Retries for BLE",
3199
+ "type": "number",
3200
+ "placeholder": "5",
3201
+ "condition": {
3202
+ "functionBody": "return (model.options && model.options.deviceConfig && model.options.deviceConfig['MeterPro(CO2)'] && !model.options.deviceConfig['MeterPro(CO2)'].hide_device && (model.options.deviceConfig['MeterPro(CO2)'].connectionType === 'BLE' || model.options.deviceConfig['MeterPro(CO2)'].connectionType === 'BLE/OpenAPI'));"
3203
+ }
3204
+ },
3205
+ "maxRetries": {
3206
+ "title": "Device Max Retries for OpenAPI",
3207
+ "type": "number",
3208
+ "placeholder": 5,
3209
+ "condition": {
3210
+ "functionBody": "return (model.options && model.options.deviceConfig && model.options.deviceConfig['MeterPro(CO2)'] && !model.options.deviceConfig['MeterPro(CO2)'].hide_device && (model.options.deviceConfig['MeterPro(CO2)'].connectionType === 'OpenAPI' || model.options.deviceConfig['MeterPro(CO2)'].connectionType === 'BLE/OpenAPI'));"
3211
+ }
3212
+ },
3213
+ "delayBetweenRetries": {
3214
+ "title": "Device Delay Between Retries for OpenAPI (In Seconds)",
3215
+ "type": "number",
3216
+ "placeholder": 3,
3217
+ "condition": {
3218
+ "functionBody": "return (model.options && model.options.deviceConfig && model.options.deviceConfig['MeterPro(CO2)'] && !model.options.deviceConfig['MeterPro(CO2)'].hide_device && (model.options.deviceConfig['MeterPro(CO2)'].connectionType === 'OpenAPI' || model.options.deviceConfig['MeterPro(CO2)'].connectionType === 'BLE/OpenAPI'));"
3219
+ }
3220
+ },
3221
+ "disableCaching": {
3222
+ "title": "Disable Caching",
3223
+ "type": "boolean",
3224
+ "condition": {
3225
+ "functionBody": "return (model.options && model.options.deviceConfig && model.options.deviceConfig['MeterPro(CO2)'] && !model.options.deviceConfig['MeterPro(CO2)'].hide_device);"
3226
+ }
3227
+ },
3228
+ "offline": {
3229
+ "title": "Offline as Off",
3230
+ "type": "boolean",
3231
+ "condition": {
3232
+ "functionBody": "return (model.options && model.options.deviceConfig && !model.options.deviceConfig['MeterPro(CO2)'].hide_device);"
3233
+ }
3234
+ },
3235
+ "history": {
3236
+ "title": "EVE History",
3237
+ "type": "boolean",
3238
+ "condition": {
3239
+ "functionBody": "return (model.options && model.options.deviceConfig && !model.options.deviceConfig['MeterPro(CO2)'].hide_device);"
3240
+ }
3241
+ },
3242
+ "firmware": {
3243
+ "title": "Firmware Override",
3244
+ "type": "string",
3245
+ "placeholder": "1.2.8",
3246
+ "condition": {
3247
+ "functionBody": "return (model.options && model.options.deviceConfig && !model.options.deviceConfig['MeterPro(CO2)'].hide_device);"
3248
+ }
3249
+ },
3250
+ "logging": {
3251
+ "title": "Logging by Device Type",
3252
+ "type": "string",
3253
+ "default": "",
3254
+ "condition": {
3255
+ "functionBody": "return (model.options && model.options.deviceConfig && !model.options.deviceConfig['MeterPro(CO2)'].hide_device);"
3256
+ },
3257
+ "oneOf": [
3258
+ {
3259
+ "title": "Debug Logging",
3260
+ "enum": [
3261
+ "debug"
3262
+ ]
3263
+ },
3264
+ {
3265
+ "title": "Default Logging",
3266
+ "enum": [
3267
+ ""
3268
+ ]
3269
+ },
3270
+ {
3271
+ "title": "No Logging",
3272
+ "enum": [
3273
+ "none"
3274
+ ]
3275
+ },
3276
+ {
3277
+ "title": "Standard Logging",
3278
+ "enum": [
3279
+ "standard"
3280
+ ]
3281
+ }
3282
+ ]
3283
+ },
3284
+ "refreshRate": {
3285
+ "title": "Device Refresh Rate",
3286
+ "type": "number",
3287
+ "placeholder": 5,
3288
+ "condition": {
3289
+ "functionBody": "return (model.options && model.options.deviceConfig && !model.options.deviceConfig['MeterPro(CO2)'].hide_device);"
3290
+ }
3291
+ },
3292
+ "updateRate": {
3293
+ "title": "Update Rate",
3294
+ "type": "number",
3295
+ "minimum": 1,
3296
+ "placeholder": 5,
3297
+ "description": "Indicates the number of seconds before refreshing status while updating progress.",
3298
+ "condition": {
3299
+ "functionBody": "return (model.options && model.options.deviceConfig && !model.options.deviceConfig['MeterPro(CO2)'].hide_device);"
3300
+ }
3301
+ },
3302
+ "pushRate": {
3303
+ "title": "Device Push Rate",
3304
+ "type": "number",
3305
+ "placeholder": 360,
3306
+ "condition": {
3307
+ "functionBody": "return (model.options && model.options.deviceConfig && !model.options.deviceConfig['MeterPro(CO2)'].hide_device);"
3308
+ }
3309
+ }
3310
+ }
3311
+ },
2846
3312
  "WoIOSensor": {
2847
3313
  "type": "object",
2848
3314
  "properties": {
@@ -8488,7 +8954,7 @@
8488
8954
  "title": "Device ID",
8489
8955
  "type": "string",
8490
8956
  "placeholder": "81F3UT59513F",
8491
- "pattern": "^[0-9A-Za-z]{2}-[0-9A-Za-z]{12}-[0-9A-Za-z]{8}$"
8957
+ "pattern": "^[0-9A-Za-z]{2}-[0-9A-Za-z]{12}-[0-9A-Za-z]{8}$|^[0-9A-Za-z]{18}$"
8492
8958
  },
8493
8959
  "hide_device": {
8494
8960
  "title": "Hide Device",
@@ -12961,6 +13427,62 @@
12961
13427
  "options.deviceConfig['Meter Plus (JP)'].pushRate"
12962
13428
  ]
12963
13429
  },
13430
+ {
13431
+ "type": "fieldset",
13432
+ "title": "Meter Pro Settings",
13433
+ "expandable": true,
13434
+ "expanded": false,
13435
+ "items": [
13436
+ "options.deviceConfig['MeterPro'].hide_device",
13437
+ "options.deviceConfig['MeterPro'].hide_temperature",
13438
+ "options.deviceConfig['MeterPro'].convertUnitTo",
13439
+ "options.deviceConfig['MeterPro'].hide_humidity",
13440
+ "options.deviceConfig['MeterPro'].connectionType",
13441
+ "options.deviceConfig['MeterPro'].disablePlatformBLE",
13442
+ "options.deviceConfig['MeterPro'].scanDuration",
13443
+ "options.deviceConfig['MeterPro'].webhook",
13444
+ "options.deviceConfig['MeterPro'].external",
13445
+ "options.deviceConfig['MeterPro'].maxRetry",
13446
+ "options.deviceConfig['MeterPro'].maxRetries",
13447
+ "options.deviceConfig['MeterPro'].delayBetweenRetries",
13448
+ "options.deviceConfig['MeterPro'].disableCaching",
13449
+ "options.deviceConfig['MeterPro'].offline",
13450
+ "options.deviceConfig['MeterPro'].history",
13451
+ "options.deviceConfig['MeterPro'].firmware",
13452
+ "options.deviceConfig['MeterPro'].logging",
13453
+ "options.deviceConfig['MeterPro'].refreshRate",
13454
+ "options.deviceConfig['MeterPro'].updateRate",
13455
+ "options.deviceConfig['MeterPro'].pushRate"
13456
+ ]
13457
+ },
13458
+ {
13459
+ "type": "fieldset",
13460
+ "title": "Meter Pro (CO2) Settings",
13461
+ "expandable": true,
13462
+ "expanded": false,
13463
+ "items": [
13464
+ "options.deviceConfig['MeterPro(CO2)'].hide_device",
13465
+ "options.deviceConfig['MeterPro(CO2)'].hide_temperature",
13466
+ "options.deviceConfig['MeterPro(CO2)'].convertUnitTo",
13467
+ "options.deviceConfig['MeterPro(CO2)'].hide_humidity",
13468
+ "options.deviceConfig['MeterPro(CO2)'].connectionType",
13469
+ "options.deviceConfig['MeterPro(CO2)'].disablePlatformBLE",
13470
+ "options.deviceConfig['MeterPro(CO2)'].scanDuration",
13471
+ "options.deviceConfig['MeterPro(CO2)'].webhook",
13472
+ "options.deviceConfig['MeterPro(CO2)'].external",
13473
+ "options.deviceConfig['MeterPro(CO2)'].maxRetry",
13474
+ "options.deviceConfig['MeterPro(CO2)'].maxRetries",
13475
+ "options.deviceConfig['MeterPro(CO2)'].delayBetweenRetries",
13476
+ "options.deviceConfig['MeterPro(CO2)'].disableCaching",
13477
+ "options.deviceConfig['MeterPro(CO2)'].offline",
13478
+ "options.deviceConfig['MeterPro(CO2)'].history",
13479
+ "options.deviceConfig['MeterPro(CO2)'].firmware",
13480
+ "options.deviceConfig['MeterPro(CO2)'].logging",
13481
+ "options.deviceConfig['MeterPro(CO2)'].refreshRate",
13482
+ "options.deviceConfig['MeterPro(CO2)'].updateRate",
13483
+ "options.deviceConfig['MeterPro(CO2)'].pushRate"
13484
+ ]
13485
+ },
12964
13486
  {
12965
13487
  "type": "fieldset",
12966
13488
  "title": "Indoor Outdoor Sensor Settings",