homebridge-salus-cloud 0.1.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.
- package/LICENSE +176 -0
- package/README.md +112 -0
- package/config.schema.json +148 -0
- package/dist/deviceCatalog.d.ts +10 -0
- package/dist/deviceCatalog.js +237 -0
- package/dist/deviceCatalog.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/platform.d.ts +27 -0
- package/dist/platform.js +329 -0
- package/dist/platform.js.map +1 -0
- package/dist/platformAccessory.d.ts +62 -0
- package/dist/platformAccessory.js +820 -0
- package/dist/platformAccessory.js.map +1 -0
- package/dist/propertyUtils.d.ts +15 -0
- package/dist/propertyUtils.js +185 -0
- package/dist/propertyUtils.js.map +1 -0
- package/dist/salusCloudClient.d.ts +52 -0
- package/dist/salusCloudClient.js +1447 -0
- package/dist/salusCloudClient.js.map +1 -0
- package/dist/settings.d.ts +2 -0
- package/dist/settings.js +3 -0
- package/dist/settings.js.map +1 -0
- package/dist/types.d.ts +56 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +52 -0
- package/scripts/publish.sh +117 -0
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
/* eslint-disable max-len */
|
|
2
|
+
export const MODEL_CATALOG = {
|
|
3
|
+
'3041': { model: '3041', layout: 'Motion_Sensor', categoryId: '18', categoryName: 'Motion Sensor' },
|
|
4
|
+
'3043': { model: '3043', layout: 'Motion_Sensor', categoryId: '18', categoryName: 'Motion Sensor' },
|
|
5
|
+
'3315_G': { model: '3315_G', layout: 'Water_Leak_Sensor', categoryId: '5', categoryName: 'Water Leak Sensors' },
|
|
6
|
+
'3315_S': { model: '3315_S', layout: 'Water_Leak_Sensor', categoryId: '5', categoryName: 'Water Leak Sensors' },
|
|
7
|
+
'43102': { model: '43102', layout: 'Smart_Relay', categoryId: '34', categoryName: 'Smart Outlets' },
|
|
8
|
+
'45856': { model: '45856', layout: 'Smart_Relay', categoryId: '32', categoryName: 'Fan Coil Thermostats' },
|
|
9
|
+
'45857': { model: '45857', layout: 'light_switches', categoryId: '27', categoryName: 'Light Switches' },
|
|
10
|
+
'A60_TW_Z3': { model: 'A60_TW_Z3', layout: 'Common_Light', categoryId: '14', categoryName: 'Light' },
|
|
11
|
+
'AJSQ605RF': { model: 'AJSQ605RF', layout: 'Thermostat_dial_rf', categoryId: '15', categoryName: 'Dial RF Thermostats' },
|
|
12
|
+
'ALTHCSQ605RF': { model: 'ALTHCSQ605RF', layout: 'Thermostat_dial_rf', categoryId: '15', categoryName: 'Dial RF Thermostats' },
|
|
13
|
+
'ALTHRCU800': { model: 'ALTHRCU800', layout: 'control_box', categoryId: '37', categoryName: 'Control Box' },
|
|
14
|
+
'ALTHRSQ800WRF': { model: 'ALTHRSQ800WRF', layout: 'Thermostat_RF', categoryId: '38', categoryName: 'RF Thermostats' },
|
|
15
|
+
'AnionStop': { model: 'AnionStop', layout: 'AnionStop', categoryId: '201', categoryName: 'ArStop Valve' },
|
|
16
|
+
'Arjonstop': { model: 'Arjonstop', layout: 'Arjonstop', categoryId: '201', categoryName: 'ArStop Valve' },
|
|
17
|
+
'AVA10M30RF': { model: 'AVA10M30RF', layout: 'IT600TRV', categoryId: '10', categoryName: 'TRVs' },
|
|
18
|
+
'AWC_Z': { model: 'AWC_Z', layout: 'wireless_uncontrollable_device_repeater', categoryId: '6', categoryName: 'Wireless Uncontrollable Devices' },
|
|
19
|
+
'B40_DIM_Z3': { model: 'B40_DIM_Z3', layout: 'Common_Light', categoryId: '14', categoryName: 'Light' },
|
|
20
|
+
'B40_TW_Z3': { model: 'B40_TW_Z3', layout: 'Common_Light', categoryId: '14', categoryName: 'Light' },
|
|
21
|
+
'C900T': { model: 'C900T', layout: 'Thermostat_C900T', categoryId: '202', categoryName: 'Elypso Thermostats' },
|
|
22
|
+
'CB12RF_IT600': { model: 'CB12RF_IT600', layout: 'wireless_uncontrollable_device_repeater', categoryId: '6', categoryName: 'Wireless Uncontrollable Devices' },
|
|
23
|
+
'CB12RF_Z3': { model: 'CB12RF_Z3', layout: 'cb12rf_z3_wiring_centre', categoryId: '207', categoryName: 'CB12RF ZB3 Wiring Centre' },
|
|
24
|
+
'CLA60_RGBW_OSRAM': { model: 'CLA60_RGBW_OSRAM', layout: 'Common_Light', categoryId: '14', categoryName: 'Light' },
|
|
25
|
+
'Classic_A60_W_clear___LIGHTIFY': { model: 'Classic_A60_W_clear___LIGHTIFY', layout: 'Common_Light', categoryId: '14', categoryName: 'Light' },
|
|
26
|
+
'CSB600': { model: 'CSB600', layout: 'smart_button_csb600', categoryId: '6', categoryName: 'Wireless Uncontrollable Devices' },
|
|
27
|
+
'CTLP631': { model: 'CTLP631', layout: 'Smart_Plugs', categoryId: '7', categoryName: 'Smart Plugs' },
|
|
28
|
+
'CTLP632': { model: 'CTLP632', layout: 'Smart_Plugs', categoryId: '7', categoryName: 'Smart Plugs' },
|
|
29
|
+
'CTLS631': { model: 'CTLS631', layout: 'remote_temperature_sensors', categoryId: '20', categoryName: 'Remote Temperature Sensors' },
|
|
30
|
+
'CTLS631E': { model: 'CTLS631E', layout: 'remote_temperature_sensors', categoryId: '20', categoryName: 'Remote Temperature Sensors' },
|
|
31
|
+
'CTLS632': { model: 'CTLS632', layout: 'remote_temperature_sensors', categoryId: '20', categoryName: 'Remote Temperature Sensors' },
|
|
32
|
+
'CTLS632E': { model: 'CTLS632E', layout: 'temp_humid_sensors', categoryId: '20', categoryName: 'Remote Temperature Sensors' },
|
|
33
|
+
'CTLS633': { model: 'CTLS633', layout: 'remote_temperature_sensors', categoryId: '20', categoryName: 'Remote Temperature Sensors' },
|
|
34
|
+
'CTLS633E': { model: 'CTLS633E', layout: 'co2_temp_humid_sensors', categoryId: '20', categoryName: 'Remote Temperature Sensors' },
|
|
35
|
+
'CTLS634': { model: 'CTLS634', layout: 'window_sensor', categoryId: '9', categoryName: 'Window Monitors' },
|
|
36
|
+
'CTLS634_': { model: 'CTLS634_', layout: 'window_sensor', categoryId: '9', categoryName: 'Window Monitors' },
|
|
37
|
+
'CTLV630': { model: 'CTLV630', layout: 'trv_v630', categoryId: '11', categoryName: 'TRVs' },
|
|
38
|
+
'DI600': { model: 'DI600', layout: 'ac_phase_cut_zigbee_dimmers', categoryId: '19', categoryName: 'AC Phase Cut ZigBee Dimmers' },
|
|
39
|
+
'EasyFingerTouch': { model: 'EasyFingerTouch', layout: 'Door_Locks', categoryId: '300', categoryName: 'Door Locks' },
|
|
40
|
+
'ECM600': { model: 'ECM600', layout: 'energy_meters', categoryId: '21', categoryName: 'Energy Meters' },
|
|
41
|
+
'EL600T': { model: 'EL600T', layout: 'Thermostat_C900T', categoryId: '202', categoryName: 'Elypso Thermostats' },
|
|
42
|
+
'FC600': { model: 'FC600', layout: 'thermostat_fan_coil', categoryId: '32', categoryName: 'Fan Coil Thermostats' },
|
|
43
|
+
'FC600NH': { model: 'FC600NH', layout: 'thermostat_fan_coil', categoryId: '32', categoryName: 'Fan Coil Thermostats' },
|
|
44
|
+
'FLEX_RGBW_Z3': { model: 'FLEX_RGBW_Z3', layout: 'Common_Light', categoryId: '14', categoryName: 'Light' },
|
|
45
|
+
'HDW10ZB': { model: 'HDW10ZB', layout: 'window_sensor', categoryId: '9', categoryName: 'Window Monitors' },
|
|
46
|
+
'HESZB_120': { model: 'HESZB_120', layout: 'develco_heat_sensor', categoryId: '209', categoryName: 'Heat Detector' },
|
|
47
|
+
'HTR_RF_20_': { model: 'HTR_RF_20_', layout: 'Thermostat_it600', categoryId: '12', categoryName: 'iT600 Thermostats' },
|
|
48
|
+
'HTRP_RF_50_': { model: 'HTRP_RF_50_', layout: 'Thermostat_it600', categoryId: '12', categoryName: 'iT600 Thermostats' },
|
|
49
|
+
'HTRS_RF_30_': { model: 'HTRS_RF_30_', layout: 'Thermostat_it600', categoryId: '12', categoryName: 'iT600 Thermostats' },
|
|
50
|
+
'HTS10ZB': { model: 'HTS10ZB', layout: 'remote_temperature_sensors', categoryId: '20', categoryName: 'Remote Temperature Sensors' },
|
|
51
|
+
'it600HW': { model: 'it600HW', layout: 'hot_water_timer', categoryId: '28', categoryName: 'Hot Water Timers' },
|
|
52
|
+
'it600HW_AC': { model: 'it600HW_AC', layout: 'hot_water_timer', categoryId: '28', categoryName: 'Hot Water Timers' },
|
|
53
|
+
'it600HWNH': { model: 'it600HWNH', layout: 'hot_water_timer', categoryId: '28', categoryName: 'Hot Water Timers' },
|
|
54
|
+
'it600HWNH_AC': { model: 'it600HWNH_AC', layout: 'hot_water_timer', categoryId: '28', categoryName: 'Hot Water Timers' },
|
|
55
|
+
'it600MINITRV': { model: 'it600MINITRV', layout: 'IT600TRV', categoryId: '10', categoryName: 'TRVs' },
|
|
56
|
+
'it600MINITRVNH': { model: 'it600MINITRVNH', layout: 'IT600TRV', categoryId: '10', categoryName: 'TRVs' },
|
|
57
|
+
'IT600PumpWC': { model: 'IT600PumpWC', layout: 'wireless_uncontrollable_device_repeater', categoryId: '6', categoryName: 'Wireless Uncontrollable Devices' },
|
|
58
|
+
'it600Receiver': { model: 'it600Receiver', layout: 'wireless_uncontrollable_equipment', categoryId: '6', categoryName: 'Wireless Uncontrollable Devices' },
|
|
59
|
+
'it600Repeater': { model: 'it600Repeater', layout: 'wireless_uncontrollable_device_repeater', categoryId: '6', categoryName: 'Wireless Uncontrollable Devices' },
|
|
60
|
+
'it600ThermHW': { model: 'it600ThermHW', layout: 'Thermostat_it600', categoryId: '12', categoryName: 'iT600 Thermostats' },
|
|
61
|
+
'it600ThermHW_AC': { model: 'it600ThermHW_AC', layout: 'Thermostat_it600', categoryId: '12', categoryName: 'iT600 Thermostats' },
|
|
62
|
+
'it600ThermHWNH': { model: 'it600ThermHWNH', layout: 'Thermostat_it600', categoryId: '12', categoryName: 'iT600 Thermostats' },
|
|
63
|
+
'it600ThermHWNH_AC': { model: 'it600ThermHWNH_AC', layout: 'Thermostat_it600', categoryId: '12', categoryName: 'iT600 Thermostats' },
|
|
64
|
+
'it600TRV': { model: 'it600TRV', layout: 'IT600TRV', categoryId: '10', categoryName: 'TRVs' },
|
|
65
|
+
'it600WC': { model: 'it600WC', layout: 'wireless_uncontrollable_device_repeater', categoryId: '6', categoryName: 'Wireless Uncontrollable Devices' },
|
|
66
|
+
'it600WCNH': { model: 'it600WCNH', layout: 'wireless_uncontrollable_device_repeater', categoryId: '6', categoryName: 'Wireless Uncontrollable Devices' },
|
|
67
|
+
'IT700TX': { model: 'IT700TX', layout: 'Thermostat_quantum', categoryId: '205', categoryName: 'IT700TX Thermostats' },
|
|
68
|
+
'IT710TX': { model: 'IT710TX', layout: 'Thermostat_quantum', categoryId: '208', categoryName: 'IT710TX Thermostats' },
|
|
69
|
+
'IT800TX': { model: 'IT800TX', layout: 'Thermostat_iT800Tx', categoryId: '47', categoryName: 'iT800Tx Thermostats' },
|
|
70
|
+
'KEPZB_110': { model: 'KEPZB_110', layout: 'key_pad', categoryId: '45', categoryName: 'Keypad' },
|
|
71
|
+
'KEPZB_112': { model: 'KEPZB_112', layout: 'key_pad', categoryId: '45', categoryName: 'Keypad' },
|
|
72
|
+
'moisturev4': { model: 'moisturev4', layout: 'Water_Leak_Sensor', categoryId: '5', categoryName: 'Water Leak Sensors' },
|
|
73
|
+
'Motion_Sensor_A_': { model: 'Motion_Sensor_A_', layout: 'Motion_Sensor', categoryId: '18', categoryName: 'Motion Sensor' },
|
|
74
|
+
'MR16_TW_OSRAM': { model: 'MR16_TW_OSRAM', layout: 'Common_Light', categoryId: '14', categoryName: 'Light' },
|
|
75
|
+
'MS600': { model: 'MS600', layout: 'Motion_Sensor', categoryId: '18', categoryName: 'Motion Sensor' },
|
|
76
|
+
'MS610': { model: 'MS610', layout: 'Motion_Sensor', categoryId: '18', categoryName: 'Motion Sensor' },
|
|
77
|
+
'NimlyCode': { model: 'NimlyCode', layout: 'Door_Locks', categoryId: '300', categoryName: 'Door Locks' },
|
|
78
|
+
'NTSQ605RF': { model: 'NTSQ605RF', layout: 'Thermostat_dial_rf', categoryId: '15', categoryName: 'Dial RF Thermostats' },
|
|
79
|
+
'NTSQ610NH': { model: 'NTSQ610NH', layout: 'Thermostat_quantum', categoryId: '13', categoryName: 'Quantum Thermostats' },
|
|
80
|
+
'NTSQ610RFNH': { model: 'NTSQ610RFNH', layout: 'Thermostat_quantum', categoryId: '13', categoryName: 'Quantum Thermostats' },
|
|
81
|
+
'NTSW600': { model: 'NTSW600', layout: 'window_sensor', categoryId: '9', categoryName: 'Window Monitors' },
|
|
82
|
+
'NTVS41': { model: 'NTVS41', layout: 'Thermostat_it600', categoryId: '12', categoryName: 'iT600 Thermostats' },
|
|
83
|
+
'NTVS41HW': { model: 'NTVS41HW', layout: 'hot_water_timer', categoryId: '28', categoryName: 'Hot Water Timers' },
|
|
84
|
+
'OS600': { model: 'OS600', layout: 'window_sensor', categoryId: '9', categoryName: 'Window Monitors' },
|
|
85
|
+
'Outdoor_FLEX_RGBW_Z3': { model: 'Outdoor_FLEX_RGBW_Z3', layout: 'Common_Light', categoryId: '14', categoryName: 'Light' },
|
|
86
|
+
'PAR16_DIM_Z3': { model: 'PAR16_DIM_Z3', layout: 'Common_Light', categoryId: '14', categoryName: 'Light' },
|
|
87
|
+
'PAR16_RGBW_Z3': { model: 'PAR16_RGBW_Z3', layout: 'Common_Light', categoryId: '14', categoryName: 'Light' },
|
|
88
|
+
'PAR16_TW_Z3': { model: 'PAR16_TW_Z3', layout: 'Common_Light', categoryId: '14', categoryName: 'Light' },
|
|
89
|
+
'PIRSensor_EM': { model: 'PIRSensor_EM', layout: 'Motion_Sensor', categoryId: '18', categoryName: 'Motion Sensor' },
|
|
90
|
+
'PS600': { model: 'PS600', layout: 'remote_temperature_sensors', categoryId: '20', categoryName: 'Remote Temperature Sensors' },
|
|
91
|
+
'RCU800': { model: 'RCU800', layout: 'control_box', categoryId: '37', categoryName: 'Control Box' },
|
|
92
|
+
'RE600': { model: 'RE600', layout: 'wireless_uncontrollable_device_repeater', categoryId: '6', categoryName: 'Wireless Uncontrollable Devices' },
|
|
93
|
+
'RS600': { model: 'RS600', layout: 'roller_shutter', categoryId: '30', categoryName: 'Roller Shutters' },
|
|
94
|
+
'RSQ800WRF': { model: 'RSQ800WRF', layout: 'Thermostat_RF', categoryId: '38', categoryName: 'RF Thermostats' },
|
|
95
|
+
'RX30RF': { model: 'RX30RF', layout: 'Receiver_RX30RF', categoryId: '203', categoryName: 'Receivers' },
|
|
96
|
+
'SAL2EM1': { model: 'SAL2EM1', layout: 'energy_meters', categoryId: '21', categoryName: 'Energy Meters' },
|
|
97
|
+
'SAL3AG1': { model: 'SAL3AG1', layout: 'SAU2AG1_GW', categoryId: '1', categoryName: 'Gateways' },
|
|
98
|
+
'SAL3AG1_GW': { model: 'SAL3AG1_GW', layout: 'SAU2AG1_GW', categoryId: '1', categoryName: 'Gateways' },
|
|
99
|
+
'SAL3AG1_ZC': { model: 'SAL3AG1_ZC', layout: 'SAU2AG1_GW', categoryId: '1', categoryName: 'Gateways' },
|
|
100
|
+
'SAL3AG1AT': { model: 'SAL3AG1AT', layout: 'SAU2AG1_GW', categoryId: '1', categoryName: 'Gateways' },
|
|
101
|
+
'SAL3AG1AT_GW': { model: 'SAL3AG1AT_GW', layout: 'SAU2AG1_GW', categoryId: '1', categoryName: 'Gateways' },
|
|
102
|
+
'SAL3AG1AT_ZC': { model: 'SAL3AG1AT_ZC', layout: 'SAU2AG1_GW', categoryId: '1', categoryName: 'Gateways' },
|
|
103
|
+
'SAL3AG1ATGW': { model: 'SAL3AG1ATGW', layout: 'SAU2AG1_GW', categoryId: '1', categoryName: 'Gateways' },
|
|
104
|
+
'SAL3AG1ATZC': { model: 'SAL3AG1ATZC', layout: 'SAU2AG1_GW', categoryId: '1', categoryName: 'Gateways' },
|
|
105
|
+
'SAL3AG1GW': { model: 'SAL3AG1GW', layout: 'SAU2AG1_GW', categoryId: '1', categoryName: 'Gateways' },
|
|
106
|
+
'SAL3AG1ZC': { model: 'SAL3AG1ZC', layout: 'SAU2AG1_GW', categoryId: '1', categoryName: 'Gateways' },
|
|
107
|
+
'SAU2AG1_GW': { model: 'SAU2AG1_GW', layout: 'SAU2AG1_GW', categoryId: '1', categoryName: 'Gateways' },
|
|
108
|
+
'SAU2AG1_ZC': { model: 'SAU2AG1_ZC', layout: 'SAU2AG1_GW', categoryId: '1', categoryName: 'Gateways' },
|
|
109
|
+
'SAU3AG1': { model: 'SAU3AG1', layout: 'SAU2AG1_GW', categoryId: '1', categoryName: 'Gateways' },
|
|
110
|
+
'SAU3AG1_GW': { model: 'SAU3AG1_GW', layout: 'SAU2AG1_GW', categoryId: '1', categoryName: 'Gateways' },
|
|
111
|
+
'SAU3AG1_ZC': { model: 'SAU3AG1_ZC', layout: 'SAU2AG1_GW', categoryId: '1', categoryName: 'Gateways' },
|
|
112
|
+
'SAU3AG1GW': { model: 'SAU3AG1GW', layout: 'SAU2AG1_GW', categoryId: '1', categoryName: 'Gateways' },
|
|
113
|
+
'SAU3AG1ZC': { model: 'SAU3AG1ZC', layout: 'SAU2AG1_GW', categoryId: '1', categoryName: 'Gateways' },
|
|
114
|
+
'SAWZ600GW': { model: 'SAWZ600GW', layout: 'WZ600', categoryId: '1', categoryName: 'Gateways' },
|
|
115
|
+
'SAWZ600ZC': { model: 'SAWZ600ZC', layout: 'WZ600', categoryId: '1', categoryName: 'Gateways' },
|
|
116
|
+
'SB600': { model: 'SB600', layout: 'smart_button_sb600', categoryId: '6', categoryName: 'Wireless Uncontrollable Devices' },
|
|
117
|
+
'SC812ZB': { model: 'SC812ZB', layout: 'Smart_Relay', categoryId: '4', categoryName: 'Smart Relays' },
|
|
118
|
+
'SC824ZB': { model: 'SC824ZB', layout: 'Smart_Relay', categoryId: '4', categoryName: 'Smart Relays' },
|
|
119
|
+
'SIR600': { model: 'SIR600', layout: 'smart_ir_ac_controllers', categoryId: '206', categoryName: 'Smart IR AC Controllers' },
|
|
120
|
+
'SIRZB_110': { model: 'SIRZB_110', layout: 'Siren', categoryId: '46', categoryName: 'Siren' },
|
|
121
|
+
'SIRZB_112': { model: 'SIRZB_112', layout: 'Siren', categoryId: '46', categoryName: 'Siren' },
|
|
122
|
+
'SmokeSensor_EM': { model: 'SmokeSensor_EM', layout: 'smoke_sensor', categoryId: '23', categoryName: 'Smoke Detector' },
|
|
123
|
+
'SMSZB_120': { model: 'SMSZB_120', layout: 'develco_smoke_sensor', categoryId: '23', categoryName: 'Smoke Detector' },
|
|
124
|
+
'SP600': { model: 'SP600', layout: 'Smart_Plugs', categoryId: '7', categoryName: 'Smart Plugs' },
|
|
125
|
+
'SPE600': { model: 'SPE600', layout: 'Smart_Plugs', categoryId: '7', categoryName: 'Smart Plugs' },
|
|
126
|
+
'SQ605RF_WB_': { model: 'SQ605RF_WB_', layout: 'Thermostat_dial_rf', categoryId: '15', categoryName: 'Dial RF Thermostats' },
|
|
127
|
+
'SQ610': { model: 'SQ610', layout: 'Thermostat_quantum', categoryId: '13', categoryName: 'Quantum Thermostats' },
|
|
128
|
+
'SQ610_WB_': { model: 'SQ610_WB_', layout: 'Thermostat_quantum', categoryId: '13', categoryName: 'Quantum Thermostats' },
|
|
129
|
+
'SQ610NH': { model: 'SQ610NH', layout: 'Thermostat_quantum', categoryId: '13', categoryName: 'Quantum Thermostats' },
|
|
130
|
+
'SQ610NH_WB_': { model: 'SQ610NH_WB_', layout: 'Thermostat_quantum', categoryId: '13', categoryName: 'Quantum Thermostats' },
|
|
131
|
+
'SQ610RF': { model: 'SQ610RF', layout: 'Thermostat_quantum', categoryId: '13', categoryName: 'Quantum Thermostats' },
|
|
132
|
+
'SQ610RF_WB_': { model: 'SQ610RF_WB_', layout: 'Thermostat_quantum', categoryId: '13', categoryName: 'Quantum Thermostats' },
|
|
133
|
+
'SQ610RFNH': { model: 'SQ610RFNH', layout: 'Thermostat_quantum', categoryId: '13', categoryName: 'Quantum Thermostats' },
|
|
134
|
+
'SQ610RFNH_WB_': { model: 'SQ610RFNH_WB_', layout: 'Thermostat_quantum', categoryId: '13', categoryName: 'Quantum Thermostats' },
|
|
135
|
+
'SQ610RFNH1': { model: 'SQ610RFNH1', layout: 'Thermostat_quantum', categoryId: '13', categoryName: 'Quantum Thermostats' },
|
|
136
|
+
'SQ620B': { model: 'SQ620B', layout: 'thermostat_quantum_plus', categoryId: '210', categoryName: 'Quantum Plus Thermostats' },
|
|
137
|
+
'SQ620BRF': { model: 'SQ620BRF', layout: 'thermostat_quantum_plus', categoryId: '210', categoryName: 'Quantum Plus Thermostats' },
|
|
138
|
+
'SR600': { model: 'SR600', layout: 'Smart_Relay', categoryId: '4', categoryName: 'Smart Relays' },
|
|
139
|
+
'SS881ZB': { model: 'SS881ZB', layout: 'door_sensor', categoryId: '24', categoryName: 'Door Monitors' },
|
|
140
|
+
'SS882ZB': { model: 'SS882ZB', layout: 'window_sensor', categoryId: '9', categoryName: 'Window Monitors' },
|
|
141
|
+
'SS883ZB': { model: 'SS883ZB', layout: 'smart_button_csb600', categoryId: '6', categoryName: 'Wireless Uncontrollable Devices' },
|
|
142
|
+
'SS884ZB': { model: 'SS884ZB', layout: 'smart_button_sb600', categoryId: '6', categoryName: 'Wireless Uncontrollable Devices' },
|
|
143
|
+
'SS901ZB': { model: 'SS901ZB', layout: 'Water_Leak_Sensor', categoryId: '5', categoryName: 'Water Leak Sensors' },
|
|
144
|
+
'SS909ZB': { model: 'SS909ZB', layout: 'remote_temperature_sensors', categoryId: '20', categoryName: 'Remote Temperature Sensors' },
|
|
145
|
+
'SS912ZB': { model: 'SS912ZB', layout: 'window_sensor', categoryId: '9', categoryName: 'Window Monitors' },
|
|
146
|
+
'SW600': { model: 'SW600', layout: 'window_sensor', categoryId: '9', categoryName: 'Window Monitors' },
|
|
147
|
+
'SX885ZB': { model: 'SX885ZB', layout: 'Smart_Plugs', categoryId: '7', categoryName: 'Smart Plugs' },
|
|
148
|
+
'Tibea_TW_Z3': { model: 'Tibea_TW_Z3', layout: 'Common_Light', categoryId: '14', categoryName: 'Light' },
|
|
149
|
+
'TRV10RFM': { model: 'TRV10RFM', layout: 'IT600TRV', categoryId: '10', categoryName: 'TRVs' },
|
|
150
|
+
'TRV10RFMNH': { model: 'TRV10RFMNH', layout: 'IT600TRV', categoryId: '10', categoryName: 'TRVs' },
|
|
151
|
+
'TRV3RF': { model: 'TRV3RF', layout: 'TRV_TRV3RF', categoryId: '204', categoryName: 'TRVs' },
|
|
152
|
+
'TS600': { model: 'TS600', layout: 'Thermostat_it600', categoryId: '12', categoryName: 'iT600 Thermostats' },
|
|
153
|
+
'TS600HW': { model: 'TS600HW', layout: 'hot_water_timer', categoryId: '28', categoryName: 'Hot Water Timers' },
|
|
154
|
+
'WLS600': { model: 'WLS600', layout: 'Water_Leak_Sensor', categoryId: '5', categoryName: 'Water Leak Sensors' },
|
|
155
|
+
'ZB_MotionSensor_D0000': { model: 'ZB_MotionSensor_D0000', layout: 'Motion_Sensor', categoryId: '18', categoryName: 'Motion Sensor' },
|
|
156
|
+
'ZB_MotionSensor_S00000001': { model: 'ZB_MotionSensor_S00000001', layout: 'Motion_Sensor', categoryId: '18', categoryName: 'Motion Sensor' },
|
|
157
|
+
'ZB_SMART_PIR_ALL_ONOFV2': { model: 'ZB_SMART_PIR_ALL_ONOFV2', layout: 'Motion_Sensor', categoryId: '18', categoryName: 'Motion Sensor' },
|
|
158
|
+
'ZG9101SAC_HP': { model: 'ZG9101SAC_HP', layout: 'ac_phase_cut_zigbee_dimmers', categoryId: '19', categoryName: 'AC Phase Cut ZigBee Dimmers' },
|
|
159
|
+
};
|
|
160
|
+
function canonicalizeModelKey(model) {
|
|
161
|
+
return model
|
|
162
|
+
.trim()
|
|
163
|
+
.replaceAll(/[^A-Za-z0-9]/g, '_')
|
|
164
|
+
.replaceAll(/_+/g, '_')
|
|
165
|
+
.replaceAll(/^_+|_+$/g, '')
|
|
166
|
+
.toUpperCase();
|
|
167
|
+
}
|
|
168
|
+
const MODEL_CATALOG_BY_CANONICAL_KEY = new Map(Object.values(MODEL_CATALOG).map((entry) => [canonicalizeModelKey(entry.model), entry]));
|
|
169
|
+
function resolveCatalogEntry(model) {
|
|
170
|
+
const direct = MODEL_CATALOG[model];
|
|
171
|
+
if (direct) {
|
|
172
|
+
return direct;
|
|
173
|
+
}
|
|
174
|
+
return MODEL_CATALOG_BY_CANONICAL_KEY.get(canonicalizeModelKey(model));
|
|
175
|
+
}
|
|
176
|
+
const THERMOSTAT_CATEGORY_IDS = new Set(['12', '13', '15', '32', '38', '47', '202', '205', '208', '210']);
|
|
177
|
+
const SWITCH_CATEGORY_IDS = new Set(['4', '7', '8', '28', '33', '34', '37', '45', '46', '203', '206', '207']);
|
|
178
|
+
const LIGHT_CATEGORY_IDS = new Set(['14', '19', '27']);
|
|
179
|
+
const CONTACT_CATEGORY_IDS = new Set(['9', '24']);
|
|
180
|
+
const MOTION_CATEGORY_IDS = new Set(['18']);
|
|
181
|
+
const LEAK_CATEGORY_IDS = new Set(['5']);
|
|
182
|
+
const SMOKE_CATEGORY_IDS = new Set(['23', '209']);
|
|
183
|
+
// Category 6 is "Wireless Uncontrollable Devices" and includes repeaters/buttons,
|
|
184
|
+
// so carbon-monoxide must be inferred from live properties instead of category id.
|
|
185
|
+
const CO_CATEGORY_IDS = new Set();
|
|
186
|
+
const LOCK_CATEGORY_IDS = new Set(['300']);
|
|
187
|
+
const VALVE_CATEGORY_IDS = new Set(['201']);
|
|
188
|
+
const WINDOW_COVERING_CATEGORY_IDS = new Set(['30']);
|
|
189
|
+
const TEMP_SENSOR_CATEGORY_IDS = new Set(['20']);
|
|
190
|
+
export function inferKindFromCatalog(model) {
|
|
191
|
+
const entry = resolveCatalogEntry(model);
|
|
192
|
+
if (!entry) {
|
|
193
|
+
return undefined;
|
|
194
|
+
}
|
|
195
|
+
const categoryId = entry.categoryId;
|
|
196
|
+
if (THERMOSTAT_CATEGORY_IDS.has(categoryId)) {
|
|
197
|
+
return 'thermostat';
|
|
198
|
+
}
|
|
199
|
+
if (WINDOW_COVERING_CATEGORY_IDS.has(categoryId)) {
|
|
200
|
+
return 'windowCovering';
|
|
201
|
+
}
|
|
202
|
+
if (VALVE_CATEGORY_IDS.has(categoryId)) {
|
|
203
|
+
return 'valve';
|
|
204
|
+
}
|
|
205
|
+
if (LOCK_CATEGORY_IDS.has(categoryId)) {
|
|
206
|
+
return 'lock';
|
|
207
|
+
}
|
|
208
|
+
if (LIGHT_CATEGORY_IDS.has(categoryId)) {
|
|
209
|
+
return 'lightbulb';
|
|
210
|
+
}
|
|
211
|
+
if (SWITCH_CATEGORY_IDS.has(categoryId)) {
|
|
212
|
+
return 'switch';
|
|
213
|
+
}
|
|
214
|
+
if (CONTACT_CATEGORY_IDS.has(categoryId)) {
|
|
215
|
+
return 'contactSensor';
|
|
216
|
+
}
|
|
217
|
+
if (MOTION_CATEGORY_IDS.has(categoryId)) {
|
|
218
|
+
return 'motionSensor';
|
|
219
|
+
}
|
|
220
|
+
if (LEAK_CATEGORY_IDS.has(categoryId)) {
|
|
221
|
+
return 'leakSensor';
|
|
222
|
+
}
|
|
223
|
+
if (SMOKE_CATEGORY_IDS.has(categoryId)) {
|
|
224
|
+
return 'smokeSensor';
|
|
225
|
+
}
|
|
226
|
+
if (CO_CATEGORY_IDS.has(categoryId)) {
|
|
227
|
+
return 'carbonMonoxideSensor';
|
|
228
|
+
}
|
|
229
|
+
if (TEMP_SENSOR_CATEGORY_IDS.has(categoryId)) {
|
|
230
|
+
return 'temperatureSensor';
|
|
231
|
+
}
|
|
232
|
+
return undefined;
|
|
233
|
+
}
|
|
234
|
+
export function getCatalogEntry(model) {
|
|
235
|
+
return resolveCatalogEntry(model);
|
|
236
|
+
}
|
|
237
|
+
//# sourceMappingURL=deviceCatalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deviceCatalog.js","sourceRoot":"","sources":["../src/deviceCatalog.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,eAAe,CAAC,GAAQ,EAAE,EAAE;IAC1B,GAAG,CAAC,gBAAgB,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;AAC/D,CAAC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { API, Characteristic, DynamicPlatformPlugin, Logging, PlatformAccessory, PlatformConfig, Service } from 'homebridge';
|
|
2
|
+
import type { SalusDevice } from './types.js';
|
|
3
|
+
export declare class SalusHomebridgePlatform implements DynamicPlatformPlugin {
|
|
4
|
+
readonly log: Logging;
|
|
5
|
+
readonly api: API;
|
|
6
|
+
readonly Service: typeof Service;
|
|
7
|
+
readonly Characteristic: typeof Characteristic;
|
|
8
|
+
readonly accessories: Map<string, PlatformAccessory>;
|
|
9
|
+
private readonly accessoryHandlers;
|
|
10
|
+
private readonly configTyped;
|
|
11
|
+
private readonly cloudClient;
|
|
12
|
+
private readonly pollIntervalMs;
|
|
13
|
+
private readonly maxParallelPropertyRequests;
|
|
14
|
+
private pollTimer;
|
|
15
|
+
private pollInProgress;
|
|
16
|
+
private launchCompleted;
|
|
17
|
+
constructor(log: Logging, config: PlatformConfig, api: API);
|
|
18
|
+
configureAccessory(accessory: PlatformAccessory): void;
|
|
19
|
+
writeDeviceProperty(device: SalusDevice, propertyName: string, value: unknown): Promise<void>;
|
|
20
|
+
getUnmappedConstraintList(): string[];
|
|
21
|
+
private schedulePoll;
|
|
22
|
+
private pollDevices;
|
|
23
|
+
private addAccessory;
|
|
24
|
+
private restoreOrUpdateAccessory;
|
|
25
|
+
private removeStaleAccessories;
|
|
26
|
+
private deriveProfile;
|
|
27
|
+
}
|