@zwave-js/config 15.20.0 → 15.21.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/build/cjs/_version.d.ts +1 -1
- package/build/cjs/_version.js +1 -1
- package/build/cjs/_version.js.map +1 -1
- package/build/cjs/configDir.node.js.map +1 -1
- package/build/cjs/devices/DeviceConfig.d.ts +15 -4
- package/build/cjs/devices/DeviceConfig.js +71 -14
- package/build/cjs/devices/DeviceConfig.js.map +2 -2
- package/build/cjs/devices/ParamInformation.d.ts +3 -2
- package/build/cjs/devices/ParamInformation.js +8 -1
- package/build/cjs/devices/ParamInformation.js.map +2 -2
- package/build/esm/_version.d.ts +1 -1
- package/build/esm/_version.js +1 -1
- package/build/esm/devices/DeviceConfig.d.ts +15 -4
- package/build/esm/devices/DeviceConfig.d.ts.map +1 -1
- package/build/esm/devices/DeviceConfig.js +94 -18
- package/build/esm/devices/DeviceConfig.js.map +1 -1
- package/build/esm/devices/ParamInformation.d.ts +3 -2
- package/build/esm/devices/ParamInformation.d.ts.map +1 -1
- package/build/esm/devices/ParamInformation.js +8 -0
- package/build/esm/devices/ParamInformation.js.map +1 -1
- package/config/devices/0x000c/hs-fls100-g2.json +2 -0
- package/config/devices/0x000c/hs-hsm200.json +5 -6
- package/config/devices/0x000c/hs-ls100.json +1 -0
- package/config/devices/0x000c/hs-ms100.json +2 -0
- package/config/devices/0x000c/templates/homeseer_template.json +3 -0
- package/config/devices/0x001a/rf9501.json +2 -5
- package/config/devices/0x001a/rf9536-n.json +3 -5
- package/config/devices/0x001a/rf9537.json +3 -5
- package/config/devices/0x001a/rf9540-n_0.0_1.1.json +3 -5
- package/config/devices/0x001a/rf9540-n_1.2.json +3 -5
- package/config/devices/0x001a/rf9542.json +3 -5
- package/config/devices/0x001a/rf9642.json +1 -0
- package/config/devices/0x001a/rfldm.json +1 -0
- package/config/devices/0x001a/rftr9505.json +1 -0
- package/config/devices/0x001a/rftr9605-t.json +1 -0
- package/config/devices/0x001d/templates/leviton_template.json +6 -0
- package/config/devices/0x001e/ezmultipli.json +2 -6
- package/config/devices/0x0039/39336_39443_zw3104.json +1 -0
- package/config/devices/0x0039/39339_39346_zw3107.json +3 -0
- package/config/devices/0x0039/39351_39458_zw3005.json +3 -0
- package/config/devices/0x0039/39351_39458_zw3010.json +3 -0
- package/config/devices/0x0039/39357_39464_zw3011.json +3 -0
- package/config/devices/0x003b/fe599nx.json +3 -6
- package/config/devices/0x0059/bbk001-z00.json +2 -0
- package/config/devices/0x0059/max10y-376.json +1 -0
- package/config/devices/0x0059/ses_302.json +2 -0
- package/config/devices/0x0059/ses_303.json +4 -0
- package/config/devices/0x0059/sir-321.json +1 -0
- package/config/devices/0x0059/swm301.json +1 -0
- package/config/devices/0x0060/ac301.json +1 -0
- package/config/devices/0x0060/ad146.json +1 -2
- package/config/devices/0x0060/an179.json +2 -10
- package/config/devices/0x0060/an180.json +2 -10
- package/config/devices/0x0060/an184.json +7 -10
- package/config/devices/0x0060/an188.json +7 -10
- package/config/devices/0x0060/hsp02.json +2 -0
- package/config/devices/0x0060/sp814.json +2 -0
- package/config/devices/0x0060/sp815.json +1 -0
- package/config/devices/0x0060/sp816.json +2 -0
- package/config/devices/0x0060/sp817.json +2 -0
- package/config/devices/0x0060/st814.json +25 -15
- package/config/devices/0x0063/38957_zw6305.json +1 -0
- package/config/devices/0x0063/38959_zw6306.json +3 -0
- package/config/devices/0x0063/43973_zw6305.json +1 -0
- package/config/devices/0x0063/43985_zw6306.json +3 -0
- package/config/devices/0x0063/52247_zw6309.json +3 -0
- package/config/devices/0x0063/52251_zw6307.json +2 -0
- package/config/devices/0x0063/templates/jasco_template.json +6 -2
- package/config/devices/0x0064/duwi_z-wave_plugin_switch.json +1 -0
- package/config/devices/0x0068/td13010.json +8 -6
- package/config/devices/0x0068/tr1b120z1.json +4 -3
- package/config/devices/0x0077/smartdimmer.json +1 -0
- package/config/devices/0x0084/fts05p.json +6 -10
- package/config/devices/0x0086/templates/aeotec_template.json +42 -21
- package/config/devices/0x0086/zw062.json +7 -2
- package/config/devices/0x0086/zw074.json +8 -0
- package/config/devices/0x0086/zw097.json +1 -1
- package/config/devices/0x0086/zw098.json +7 -5
- package/config/devices/0x0086/zw100.json +12 -1
- package/config/devices/0x0086/zw112.json +1 -1
- package/config/devices/0x0086/zw120.json +1 -1
- package/config/devices/0x0086/zw121.json +7 -5
- package/config/devices/0x0086/zw122.json +2 -1
- package/config/devices/0x0086/zw129.json +1 -1
- package/config/devices/0x0086/zw130.json +1 -1
- package/config/devices/0x008a/doorsensor.json +1 -0
- package/config/devices/0x008a/molite.json +2 -0
- package/config/devices/0x008b/zw111.json +3 -0
- package/config/devices/0x0097/multisensor.json +2 -0
- package/config/devices/0x0098/ct100.json +2 -0
- package/config/devices/0x0098/ct101.json +2 -0
- package/config/devices/0x0098/ct200.json +2 -0
- package/config/devices/0x0098/ct200x.json +3 -0
- package/config/devices/0x0098/ct32.json +2 -0
- package/config/devices/0x0107/fibefgs-213.json +6 -0
- package/config/devices/0x0108/dch-z110.json +5 -0
- package/config/devices/0x0108/dch-z120.json +5 -0
- package/config/devices/0x0109/zd2201.json +3 -0
- package/config/devices/0x0109/zd2301eu-5.json +7 -3
- package/config/devices/0x0109/zp3102.json +1 -0
- package/config/devices/0x0109/zp3111-5.json +5 -0
- package/config/devices/0x0109/zp3113-7.json +14 -6
- package/config/devices/0x010f/fgbs001.json +1 -0
- package/config/devices/0x010f/fgbs222.json +4 -0
- package/config/devices/0x010f/fgcd001.json +1 -0
- package/config/devices/0x010f/fgd212.json +11 -2
- package/config/devices/0x010f/fgdw002.json +3 -0
- package/config/devices/0x010f/fgfs101.json +1 -0
- package/config/devices/0x010f/fgk101.json +4 -0
- package/config/devices/0x010f/fgms001.json +15 -0
- package/config/devices/0x010f/fgpb101.json +26 -20
- package/config/devices/0x010f/fgr-224.json +8 -6
- package/config/devices/0x010f/fgs213.json +6 -0
- package/config/devices/0x010f/fgs223.json +24 -4
- package/config/devices/0x010f/fgsd002.json +1 -0
- package/config/devices/0x010f/fgss001.json +1 -0
- package/config/devices/0x010f/fgwdeu.json +24 -4
- package/config/devices/0x010f/fgwdseu-221.json +66 -17
- package/config/devices/0x010f/fgwp102.json +4 -0
- package/config/devices/0x010f/fgwpb-111.json +1 -0
- package/config/devices/0x010f/fgwpb-121.json +6 -0
- package/config/devices/0x010f/fgwpg-111.json +4 -0
- package/config/devices/0x010f/fgwpg-121.json +4 -0
- package/config/devices/0x010f/fgwreu-111.json +24 -4
- package/config/devices/0x010f/templates/fibaro_template.json +2 -12
- package/config/devices/0x0116/itemp.json +1 -0
- package/config/devices/0x0118/tsm02.json +6 -6
- package/config/devices/0x0118/tz04.json +1 -0
- package/config/devices/0x0118/tz88.json +3 -0
- package/config/devices/0x011a/plug-in_smart_meter_dimmer_switch.json +2 -0
- package/config/devices/0x011a/zw20rm.json +1 -0
- package/config/devices/0x011a/zw500dm.json +2 -0
- package/config/devices/0x012a/iq_outlet.json +1 -0
- package/config/devices/0x012a/qz2140-840.json +2 -2
- package/config/devices/0x012a/qz2142-840.json +2 -0
- package/config/devices/0x0131/ah-nas-pd07u1.json +7 -0
- package/config/devices/0x0131/ah-neo-ds07z.json +4 -0
- package/config/devices/0x0131/mh-p220.json +3 -0
- package/config/devices/0x0131/ne-nas-ds01z.json +2 -15
- package/config/devices/0x0131/ne-nas-pd01z.json +1 -0
- package/config/devices/0x0131/psp02.json +8 -15
- package/config/devices/0x0131/vs-zd2301.json +7 -3
- package/config/devices/0x013c/nsg-ab-02.json +1 -0
- package/config/devices/0x013c/pad02.json +1 -0
- package/config/devices/0x013c/pad15.json +2 -0
- package/config/devices/0x013c/pan03.json +1 -0
- package/config/devices/0x013c/pan04.json +1 -0
- package/config/devices/0x013c/pan05-1b.json +1 -0
- package/config/devices/0x013c/pan11.json +1 -0
- package/config/devices/0x013c/pan15-1-nes.json +1 -0
- package/config/devices/0x013c/pan16.json +1 -0
- package/config/devices/0x013c/pan30.json +35 -33
- package/config/devices/0x013c/pan34.json +1 -0
- package/config/devices/0x013c/pat02-a.json +4 -0
- package/config/devices/0x013c/pat02-b.json +6 -0
- package/config/devices/0x013c/pse04.json +4 -3
- package/config/devices/0x013c/psm02.json +4 -0
- package/config/devices/0x013c/psp05.json +2 -0
- package/config/devices/0x013c/psr03-a.json +3 -1
- package/config/devices/0x013c/psr03-b.json +3 -1
- package/config/devices/0x013c/pst02-a-br.json +2 -0
- package/config/devices/0x013c/pst02a.json +8 -0
- package/config/devices/0x013c/pst02b.json +9 -6
- package/config/devices/0x013c/pst02c.json +5 -0
- package/config/devices/0x013c/templates/philio_template.json +5 -22
- package/config/devices/0x0140/sc428zw.json +2 -0
- package/config/devices/0x0148/cometz_700.json +1 -0
- package/config/devices/0x0148/eur_airquality.json +2 -0
- package/config/devices/0x0148/spirit.json +2 -0
- package/config/devices/0x0148/temp_humidity_sensor.json +2 -0
- package/config/devices/0x0149/c7.json +3 -0
- package/config/devices/0x0149/dry.json +9 -18
- package/config/devices/0x0149/ums2.json +12 -36
- package/config/devices/0x0149/wps104.json +6 -12
- package/config/devices/0x0149/wsp1.json +8 -24
- package/config/devices/0x0149/wte.json +5 -6
- package/config/devices/0x014a/iszw7-eco.json +1 -0
- package/config/devices/0x014a/tstat-tbz500.json +5 -0
- package/config/devices/0x014f/pir200.json +2 -0
- package/config/devices/0x014f/zwn-bpc.json +1 -0
- package/config/devices/0x0154/005107_0.0-1.4.json +1 -0
- package/config/devices/0x0154/05438.json +1 -0
- package/config/devices/0x0154/123580.json +2 -0
- package/config/devices/0x0159/smart_plug_16a.json +4 -0
- package/config/devices/0x0159/zmnhaa.json +2 -0
- package/config/devices/0x0159/zmnhad.json +6 -1
- package/config/devices/0x0159/zmnhba.json +2 -0
- package/config/devices/0x0159/zmnhbd.json +8 -1
- package/config/devices/0x0159/zmnhca.json +2 -0
- package/config/devices/0x0159/zmnhcd.json +7 -2
- package/config/devices/0x0159/zmnhda.json +4 -0
- package/config/devices/0x0159/zmnhdd.json +11 -2
- package/config/devices/0x0159/zmnhhd.json +6 -0
- package/config/devices/0x0159/zmnhia.json +2 -0
- package/config/devices/0x0159/zmnhkd.json +4 -1
- package/config/devices/0x0159/zmnhla.json +3 -0
- package/config/devices/0x0159/zmnhld.json +6 -1
- package/config/devices/0x0159/zmnhnd.json +4 -1
- package/config/devices/0x0159/zmnhod.json +7 -1
- package/config/devices/0x0159/zmnhqd.json +2 -0
- package/config/devices/0x0159/zmnhsd.json +9 -2
- package/config/devices/0x0159/zmnhtd.json +6 -3
- package/config/devices/0x0159/zmnhvd.json +8 -1
- package/config/devices/0x0159/zmnkad1.json +14 -9
- package/config/devices/0x0159/zmnkid.json +6 -0
- package/config/devices/0x015d/nzw39.json +2 -0
- package/config/devices/0x015d/zen20.json +2 -0
- package/config/devices/0x015d/zw97.json +2 -0
- package/config/devices/0x015f/a8-9.json +45 -27
- package/config/devices/0x015f/mh-5900.json +16 -0
- package/config/devices/0x015f/mh-c221.json +2 -0
- package/config/devices/0x015f/mh-ds221.json +1 -0
- package/config/devices/0x015f/mh-dt311_411.json +3 -0
- package/config/devices/0x015f/mh-p220.json +3 -0
- package/config/devices/0x015f/mh-p311.json +1 -0
- package/config/devices/0x015f/mh-s220_3.2.json +1 -0
- package/config/devices/0x015f/mh10-pm2_5-wa_wd.json +15 -18
- package/config/devices/0x015f/mh9-co2.json +2 -0
- package/config/devices/0x015f/templates/mcohome_template.json +14 -3
- package/config/devices/0x016a/ft100.json +12 -1
- package/config/devices/0x016a/ft112.json +1 -1
- package/config/devices/0x016a/ft130-k.json +1 -0
- package/config/devices/0x016a/ft130.json +1 -0
- package/config/devices/0x016a/ufa01.json +2 -0
- package/config/devices/0x0175/mt02646.json +1 -0
- package/config/devices/0x0175/mt02647.json +6 -0
- package/config/devices/0x0175/mt02648.json +8 -6
- package/config/devices/0x0175/mt02755.json +6 -1
- package/config/devices/0x0175/mt02792.json +1 -0
- package/config/devices/0x0175/mt2759.json +3 -0
- package/config/devices/0x0175/mt2760.json +5 -0
- package/config/devices/0x0175/mt2761.json +4 -0
- package/config/devices/0x0175/pan11.json +1 -0
- package/config/devices/0x0175/pst02-1b.json +6 -6
- package/config/devices/0x0176/tzwp-102.json +22 -12
- package/config/devices/0x0178/ZSENS930.json +9 -0
- package/config/devices/0x0178/th100nx.json +11 -0
- package/config/devices/0x0179/ch-201.json +1 -0
- package/config/devices/0x017f/wink_d_w_sensor.json +2 -16
- package/config/devices/0x017f/wink_motion_sensor.json +5 -16
- package/config/devices/0x0184/ws-100.json +1 -0
- package/config/devices/0x0189/117001.json +7 -0
- package/config/devices/0x018c/pm-b400zw-n.json +1 -0
- package/config/devices/0x018c/ssd-105.json +2 -0
- package/config/devices/0x018c/ssd-205.json +2 -0
- package/config/devices/0x018c/ssd-305.json +2 -0
- package/config/devices/0x0190/adc-s2000-t-ra.json +7 -0
- package/config/devices/0x0190/adc-t_2000.json +45 -33
- package/config/devices/0x0190/adc-t_3000.json +63 -45
- package/config/devices/0x019a/11_02_022.json +19 -34
- package/config/devices/0x019a/11_04_21_22_28.json +3 -0
- package/config/devices/0x019b/heatit_z-trm_2_0.0_2.255.json +1 -0
- package/config/devices/0x019b/heatit_zdim.json +2 -0
- package/config/devices/0x019b/leakage-stopper.json +1 -0
- package/config/devices/0x019b/tf016_tf021.json +1 -0
- package/config/devices/0x019b/z-dim2.json +5 -0
- package/config/devices/0x019b/z-han2.json +1 -0
- package/config/devices/0x019b/z-temp2.json +12 -6
- package/config/devices/0x019b/z-temp3.json +6 -3
- package/config/devices/0x019b/z-trm2fx_3.0_255.255.json +1 -0
- package/config/devices/0x019b/z-trm3.json +1 -0
- package/config/devices/0x019b/z-trm6.json +1 -0
- package/config/devices/0x019b/z-trm6_dc.json +2 -0
- package/config/devices/0x019b/z-water2.json +1 -0
- package/config/devices/0x019b/zm_dimmer.json +6 -0
- package/config/devices/0x019b/zm_thermostat_16.json +1 -0
- package/config/devices/0x0208/hkzw-so01.json +2 -0
- package/config/devices/0x0208/hkzw-so05.json +2 -0
- package/config/devices/0x0208/hkzw-so08.json +6 -0
- package/config/devices/0x0208/hkzw_ms01.json +1 -0
- package/config/devices/0x0208/hkzw_ms02.json +1 -0
- package/config/devices/0x0208/hkzw_so03.json +6 -0
- package/config/devices/0x0208/pid15654.json +2 -0
- package/config/devices/0x0208/za-216001.json +6 -0
- package/config/devices/0x021d/ddl240x_15hzw.json +1 -0
- package/config/devices/0x021d/ddl240x_1hzw.json +1 -0
- package/config/devices/0x021d/ml2.json +1 -0
- package/config/devices/0x021f/dmdp1.json +1 -0
- package/config/devices/0x021f/dmms1.json +5 -1
- package/config/devices/0x021f/dmof1.json +1 -0
- package/config/devices/0x022c/osr-01.json +1 -0
- package/config/devices/0x022c/osr-02.json +1 -0
- package/config/devices/0x022c/sa08.json +1 -0
- package/config/devices/0x0233/sse-304.json +2 -0
- package/config/devices/0x0234/templates/logic_group_template.json +3 -0
- package/config/devices/0x024f/fms01.json +6 -0
- package/config/devices/0x024f/fwc01.json +6 -0
- package/config/devices/0x0258/nas-pd02z-2.json +5 -0
- package/config/devices/0x0258/nas-pd07u1.json +9 -0
- package/config/devices/0x0258/nas-pd07z.json +8 -0
- package/config/devices/0x0258/nas-rp01z1.json +3 -0
- package/config/devices/0x0258/nas-wr01z.json +1 -0
- package/config/devices/0x0258/nas-wr01ze.json +1 -0
- package/config/devices/0x0258/nas-wr02zu.json +3 -0
- package/config/devices/0x0258/neo-ds07z.json +4 -0
- package/config/devices/0x0258/templates/shenzhen_neo_template.json +5 -0
- package/config/devices/0x025d/da_vinci_switch_default.json +657 -130
- package/config/devices/0x0267/10002020-13x.json +3 -0
- package/config/devices/0x0267/10002041-130.json +2 -0
- package/config/devices/0x0267/10003041-13x.json +2 -0
- package/config/devices/0x0270/bvs-zwu.json +2 -0
- package/config/devices/0x0271/templates/steinel_template.json +16 -9
- package/config/devices/0x0273/osli-01.json +1 -0
- package/config/devices/0x027a/templates/zooz_template.json +131 -20
- package/config/devices/0x027a/zac36.json +1 -0
- package/config/devices/0x027a/zac38.json +1 -0
- package/config/devices/0x027a/zen04.json +10 -0
- package/config/devices/0x027a/zen06.json +6 -0
- package/config/devices/0x027a/zen07.json +2 -0
- package/config/devices/0x027a/zen14.json +29 -1
- package/config/devices/0x027a/zen15.json +15 -3
- package/config/devices/0x027a/zen20.json +15 -6
- package/config/devices/0x027a/zen22.json +1 -0
- package/config/devices/0x027a/zen24.json +1 -0
- package/config/devices/0x027a/zen25.json +5 -0
- package/config/devices/0x027a/zen26.json +1 -0
- package/config/devices/0x027a/zen31.json +4 -0
- package/config/devices/0x027a/zen32.json +21 -13
- package/config/devices/0x027a/zen35.json +18 -0
- package/config/devices/0x027a/zen37.json +1 -0
- package/config/devices/0x027a/zen54.json +2 -0
- package/config/devices/0x027a/zen56.json +238 -0
- package/config/devices/0x027a/zen57.json +96 -0
- package/config/devices/0x027a/zen71.json +13 -0
- package/config/devices/0x027a/zen72.json +18 -0
- package/config/devices/0x027a/zen77.json +34 -0
- package/config/devices/0x027a/zen78.json +9 -0
- package/config/devices/0x027a/zse09.json +4 -0
- package/config/devices/0x027a/zse11.json +11 -0
- package/config/devices/0x027a/zse29.json +3 -0
- package/config/devices/0x027a/zse40.json +10 -0
- package/config/devices/0x027a/zse42.json +32 -1
- package/config/devices/0x027a/zse44.json +8 -0
- package/config/devices/0x027a/zse50.json +1 -0
- package/config/devices/0x027a/zse70_800lr.json +10 -0
- package/config/devices/0x028c/pwly-7828-a1.json +1 -0
- package/config/devices/0x0299/1a90.json +1 -0
- package/config/devices/0x0299/1a91.json +1 -0
- package/config/devices/0x0299/1a92.json +9 -4
- package/config/devices/0x0299/1a93.json +1 -0
- package/config/devices/0x0300/7aa-ss-ve-a0.json +2 -0
- package/config/devices/0x0300/7ba-kp-v-b-a0.json +1 -0
- package/config/devices/0x0300/7ca-ss-ve-a0.json +3 -0
- package/config/devices/0x0307/86_102.json +1 -0
- package/config/devices/0x030f/ds100.json +1 -0
- package/config/devices/0x030f/mt-100.json +4 -12
- package/config/devices/0x0312/mse30z.json +4 -0
- package/config/devices/0x0312/templates/minoston_template.json +10 -0
- package/config/devices/0x0312/zw30.json +2 -0
- package/config/devices/0x0312/zw31.json +4 -0
- package/config/devices/0x0313/e0400z-ef.json +4 -30
- package/config/devices/0x0315/wd-100.json +1 -0
- package/config/devices/0x0315/ws-100.json +1 -0
- package/config/devices/0x0315/zl-ld-100.json +1 -0
- package/config/devices/0x0315/zl-pd-100.json +1 -0
- package/config/devices/0x031e/lzw30-sn.json +3 -0
- package/config/devices/0x031e/lzw30.json +1 -0
- package/config/devices/0x031e/lzw31-bsd.json +3 -0
- package/config/devices/0x031e/lzw31-sn.json +7 -0
- package/config/devices/0x031e/lzw40.json +1 -0
- package/config/devices/0x031e/lzw41.json +1 -0
- package/config/devices/0x031e/lzw42.json +1 -0
- package/config/devices/0x031e/lzw45.json +3 -0
- package/config/devices/0x031e/lzw60.json +11 -0
- package/config/devices/0x031e/vzw31-sn.json +8 -4
- package/config/devices/0x031e/vzw32-sn.json +11 -4
- package/config/devices/0x0329/lizy0005.json +1 -2
- package/config/devices/0x032e/dat-101.json +1 -0
- package/config/devices/0x0330/homemech-200X.json +8 -0
- package/config/devices/0x0330/sr-zv9021a.json +14 -6
- package/config/devices/0x0330/sr-zv9032a-eu.json +27 -35
- package/config/devices/0x0330/sr-zv9080a-a.json +9 -3
- package/config/devices/0x0330/sr-zv9092a.json +21 -12
- package/config/devices/0x0330/ves-zw-dim-001.json +8 -0
- package/config/devices/0x0330/ves-zw-hld-016.json +3 -0
- package/config/devices/0x0330/ves-zw-mot-018.json +3 -0
- package/config/devices/0x0330/ves-zw-swi-014.json +3 -0
- package/config/devices/0x0330/zv-9101.json +1 -0
- package/config/devices/0x0330/zv2400tac-sl-a.json +10 -0
- package/config/devices/0x0330/zv2835rac-nf.json +8 -0
- package/config/devices/0x0344/he-ft01.json +1 -0
- package/config/devices/0x0344/he-hls01.json +6 -0
- package/config/devices/0x0344/he-ht01.json +1 -0
- package/config/devices/0x0344/he-rs01.json +1 -0
- package/config/devices/0x0344/he-tps01.json +1 -0
- package/config/devices/0x0344/he-tps02.json +1 -0
- package/config/devices/0x0344/he-tps03.json +1 -0
- package/config/devices/0x0344/he-tps04.json +1 -0
- package/config/devices/0x0344/he-tps05.json +1 -0
- package/config/devices/0x0344/templates/heltun_template.json +1 -0
- package/config/devices/0x0345/templates/swidget_template.json +13 -0
- package/config/devices/0x0346/4aw1sz-0en0.json +1 -0
- package/config/devices/0x0346/alarm_keypad_gen1.json +1 -0
- package/config/devices/0x0346/contact_sensor_gen1.json +1 -0
- package/config/devices/0x0346/glass_break_sensor.json +1 -0
- package/config/devices/0x0346/keypad_v2.json +2 -1
- package/config/devices/0x0346/motion_sensor_gen1.json +1 -0
- package/config/devices/0x0346/motion_sensor_gen2.json +1 -0
- package/config/devices/0x0346/range_extender_gen1.json +1 -0
- package/config/devices/0x0346/ring_outdoor_siren.json +1 -0
- package/config/devices/0x0346/ring_smoke_co_listener.json +3 -0
- package/config/devices/0x0357/upowerswitch_1.json +2 -0
- package/config/devices/0x0357/upowerswitch_2.json +2 -0
- package/config/devices/0x0357/upowerswitch_3.json +2 -0
- package/config/devices/0x0371/zw175.json +5 -7
- package/config/devices/0x0371/zw187.json +1 -1
- package/config/devices/0x0371/zwa002.json +1 -0
- package/config/devices/0x0371/zwa003.json +1 -1
- package/config/devices/0x0371/zwa004.json +1 -1
- package/config/devices/0x0371/zwa005.json +7 -1
- package/config/devices/0x0371/zwa009_0.0_1.255.json +16 -30
- package/config/devices/0x0371/zwa009_11.0_255.255.json +16 -30
- package/config/devices/0x0371/zwa019.json +2 -0
- package/config/devices/0x0371/zwa021.json +6 -3
- package/config/devices/0x0371/zwa022.json +1 -0
- package/config/devices/0x0371/zwa023.json +9 -6
- package/config/devices/0x0371/zwa024.json +18 -5
- package/config/devices/0x0371/zwa039.json +16 -27
- package/config/devices/0x0371/zwa042.json +2 -0
- package/config/devices/0x0371/zwa045.json +13 -10
- package/config/devices/0x0371/zwa050.json +1 -1
- package/config/devices/0x0384/ha-zw-5sab.json +11 -0
- package/config/devices/0x0384/ha-zw-5sf.json +1 -0
- package/config/devices/0x039a/INT-SMDWD-01.json +1 -0
- package/config/devices/0x039a/INT-SMMD-N1.json +4 -0
- package/config/devices/0x039a/nas-wr01z.json +1 -0
- package/config/devices/0x0403/shbw10000.json +11 -1
- package/config/devices/0x0403/shha10000.json +3 -0
- package/config/devices/0x041b/39446_zw3107.json +2 -0
- package/config/devices/0x041b/39458_zw3010.json +2 -0
- package/config/devices/0x0431/ecodim.json +1 -0
- package/config/devices/0x0433/q-light_puck.json +3 -0
- package/config/devices/0x0433/q-light_zerodim.json +3 -0
- package/config/devices/0x0433/q-light_zerodim_2pol.json +3 -0
- package/config/devices/0x0438/4512725.json +26 -15
- package/config/devices/0x0438/4512744.json +17 -12
- package/config/devices/0x0438/4512745.json +17 -12
- package/config/devices/0x0438/4512746.json +4 -0
- package/config/devices/0x0438/4512757.json +35 -158
- package/config/devices/0x0438/dimmer-200w.json +2 -0
- package/config/devices/0x0438/dimmer-400w.json +1 -0
- package/config/devices/0x0438/dimmer2-400w.json +8 -0
- package/config/devices/0x0438/sr-zv9032a-eu.json +27 -35
- package/config/devices/0x045a/WB04V.json +3 -0
- package/config/devices/0x045a/WM25C.json +3 -0
- package/config/devices/0x045a/WM25L.json +3 -0
- package/config/devices/0x045a/Z-CM-V01.json +3 -0
- package/config/devices/0x045a/Z-DWS-V01.json +1 -0
- package/config/devices/0x045a/Z-TRV-V01.json +5 -0
- package/config/devices/0x0460/qnsh-001P10.json +9 -6
- package/config/devices/0x0460/templates/wave_template.json +21 -6
- package/config/devices/0x046a/WB04V.json +3 -0
- package/config/devices/0x046a/WM25L.json +3 -0
- package/config/devices/0x4118/tsm02.json +6 -6
- package/config/devices/0x5254/zdm-80.json +2 -0
- package/config/devices/0x5254/zds-210na.json +2 -0
- package/config/devices/0x5254/zts-110.json +1 -0
- package/config/devices/0x5254/zxt-800.json +3 -0
- package/config/devices/templates/honeywell_template.json +2 -0
- package/config/devices/templates/master_template.json +38 -0
- package/package.json +7 -7
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/devices/ParamInformation.ts"],
|
|
4
|
-
"sourcesContent": ["/* oxlint-disable typescript/no-unnecessary-type-assertion */\nimport { type AllowedConfigValue, tryParseParamNumber } from \"@zwave-js/core\";\nimport {\n\ttype JSONObject,\n\tObjectKeyMap,\n\ttype ReadonlyObjectKeyMap,\n\tpick,\n} from \"@zwave-js/shared\";\nimport { isArray, isObject } from \"alcalzone-shared/typeguards\";\nimport { throwInvalidConfig } from \"../utils_safe.js\";\nimport {\n\ttype ConditionalItem,\n\tconditionApplies,\n\tevaluateDeep,\n\tvalidateCondition,\n} from \"./ConditionalItem.js\";\nimport type { ConditionalDeviceConfig } from \"./DeviceConfig.js\";\nimport type { DeviceID } from \"./shared.js\";\n\nexport class ConditionalParamInformation\n\timplements ConditionalItem<ParamInformation>\n{\n\tpublic constructor(\n\t\tparent: ConditionalDeviceConfig,\n\t\tparameterNumber: number,\n\t\tvalueBitMask: number | undefined,\n\t\tdefinition: JSONObject,\n\t) {\n\t\tthis.parent = parent;\n\t\tthis.parameterNumber = parameterNumber;\n\t\tthis.valueBitMask = valueBitMask;\n\t\t// No need to validate here, this should be done one level higher\n\t\tthis.condition = definition.$if;\n\n\t\tif (typeof definition.label !== \"string\") {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-string label`,\n\t\t\t);\n\t\t}\n\t\tthis.label = definition.label;\n\n\t\tif (\n\t\t\tdefinition.description != undefined\n\t\t\t&& typeof definition.description !== \"string\"\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-string description`,\n\t\t\t);\n\t\t}\n\t\tthis.description = definition.description;\n\n\t\tif (\n\t\t\ttypeof definition.valueSize !== \"number\"\n\t\t\t|| definition.valueSize <= 0\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has an invalid value size`,\n\t\t\t);\n\t\t}\n\t\tthis.valueSize = definition.valueSize;\n\n\t\tif (\n\t\t\tdefinition.minValue != undefined\n\t\t\t&& typeof definition.minValue !== \"number\"\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-numeric property minValue`,\n\t\t\t);\n\t\t}\n\t\tthis.minValue = definition.minValue;\n\n\t\tif (\n\t\t\tdefinition.maxValue != undefined\n\t\t\t&& typeof definition.maxValue !== \"number\"\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-numeric property maxValue`,\n\t\t\t);\n\t\t}\n\t\tthis.maxValue = definition.maxValue;\n\n\t\tif (\n\t\t\tdefinition.unsigned != undefined\n\t\t\t&& typeof definition.unsigned !== \"boolean\"\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-boolean property unsigned`,\n\t\t\t);\n\t\t}\n\t\tthis.unsigned = definition.unsigned === true;\n\n\t\tif (\n\t\t\tdefinition.unit != undefined\n\t\t\t&& typeof definition.unit !== \"string\"\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-string unit`,\n\t\t\t);\n\t\t}\n\t\tthis.unit = definition.unit;\n\n\t\tif (definition.readOnly != undefined && definition.readOnly !== true) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\n\t\tParameter #${parameterNumber}: readOnly must true or omitted!`,\n\t\t\t);\n\t\t}\n\t\tthis.readOnly = definition.readOnly;\n\n\t\tif (\n\t\t\tdefinition.writeOnly != undefined\n\t\t\t&& definition.writeOnly !== true\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\n\t\tParameter #${parameterNumber}: writeOnly must be true or omitted!`,\n\t\t\t);\n\t\t}\n\t\tthis.writeOnly = definition.writeOnly;\n\n\t\tif (definition.defaultValue == undefined) {\n\t\t\tif (!this.readOnly) {\n\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\"devices\",\n\t\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} is missing defaultValue, which is required unless the parameter is readOnly`,\n\t\t\t\t);\n\t\t\t}\n\t\t} else if (typeof definition.defaultValue !== \"number\") {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-numeric property defaultValue`,\n\t\t\t);\n\t\t}\n\t\tthis.defaultValue = definition.defaultValue;\n\n\t\tif (\n\t\t\tdefinition.recommendedValue != undefined\n\t\t\t&& typeof definition.recommendedValue !== \"number\"\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-numeric property recommendedValue`,\n\t\t\t);\n\t\t}\n\t\tthis.recommendedValue = definition.recommendedValue;\n\n\t\tif (\n\t\t\tdefinition.allowManualEntry != undefined\n\t\t\t&& definition.allowManualEntry !== false\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber}: allowManualEntry must be false or omitted!`,\n\t\t\t);\n\t\t}\n\t\t// Default to allowing manual entry, except if the param is readonly\n\t\tthis.allowManualEntry = definition.allowManualEntry ?? !this.readOnly;\n\n\t\tif (\n\t\t\tdefinition.destructive != undefined\n\t\t\t&& typeof definition.destructive !== \"boolean\"\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-boolean property destructive`,\n\t\t\t);\n\t\t}\n\t\tthis.destructive = definition.destructive;\n\n\t\tif (\n\t\t\tisArray(definition.options)\n\t\t\t&& !definition.options.every(\n\t\t\t\t(opt: unknown) =>\n\t\t\t\t\tisObject(opt)\n\t\t\t\t\t&& typeof opt.label === \"string\"\n\t\t\t\t\t&& typeof opt.value === \"number\",\n\t\t\t)\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber}: options is malformed!`,\n\t\t\t);\n\t\t}\n\n\t\tthis.options = definition.options?.map(\n\t\t\t(opt: any) =>\n\t\t\t\tnew ConditionalConfigOption(opt.value, opt.label, opt.$if),\n\t\t) ?? [];\n\n\t\tif (\n\t\t\tdefinition.hidden != undefined\n\t\t\t&& typeof definition.hidden !== \"boolean\"\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-boolean property hidden`,\n\t\t\t);\n\t\t}\n\t\tthis.hidden = definition.hidden;\n\n\t\t// Parse and validate the allowed field\n\t\tif (definition.allowed != undefined) {\n\t\t\t// Validate mutual exclusivity with minValue/maxValue\n\t\t\tif (this.minValue != undefined || this.maxValue != undefined) {\n\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\"devices\",\n\t\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber}: \"allowed\" cannot be used together with \"minValue\" or \"maxValue\"!`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Validate mutual exclusivity with allowManualEntry: false\n\t\t\tif (this.allowManualEntry === false) {\n\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\"devices\",\n\t\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber}: \"allowed\" cannot be used with \"allowManualEntry: false\"!`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Validate it's an array\n\t\t\tif (!isArray(definition.allowed)) {\n\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\"devices\",\n\t\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber}: \"allowed\" must be an array!`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Validate array is not empty\n\t\t\tif (definition.allowed.length === 0) {\n\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\"devices\",\n\t\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber}: \"allowed\" array must contain at least one entry!`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Parse each value definition\n\t\t\tconst parsedValues: AllowedConfigValue[] = [];\n\t\t\tfor (let i = 0; i < definition.allowed.length; i++) {\n\t\t\t\tconst def = definition.allowed[i];\n\n\t\t\t\tif (!isObject(def)) {\n\t\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\t\"devices\",\n\t\t\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber}: allowed[${i}] must be an object!`,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Check for single value\n\t\t\t\tif (\"value\" in def) {\n\t\t\t\t\tif (typeof def.value !== \"number\") {\n\t\t\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\t\t\"devices\",\n\t\t\t\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber}: allowed[${i}].value must be a number!`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tparsedValues.push({ value: def.value });\n\t\t\t\t} // Check for range\n\t\t\t\telse if (\"range\" in def) {\n\t\t\t\t\tif (!isArray(def.range)) {\n\t\t\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\t\t\"devices\",\n\t\t\t\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber}: allowed[${i}].range must be an array!`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (def.range.length !== 2) {\n\t\t\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\t\t\"devices\",\n\t\t\t\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber}: allowed[${i}].range must have exactly 2 elements [from, to]!`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tconst [from, to] = def.range;\n\t\t\t\t\tconst step = def.step;\n\n\t\t\t\t\tif (typeof from !== \"number\" || typeof to !== \"number\") {\n\t\t\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\t\t\"devices\",\n\t\t\t\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber}: allowed[${i}].range elements must be numbers!`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (step !== undefined && typeof step !== \"number\") {\n\t\t\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\t\t\"devices\",\n\t\t\t\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber}: allowed[${i}].step must be a number if provided!`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tparsedValues.push({\n\t\t\t\t\t\tfrom,\n\t\t\t\t\t\tto,\n\t\t\t\t\t\t...(step !== undefined && { step }),\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\t\"devices\",\n\t\t\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber}: allowed[${i}] must have either \"value\" or \"range\" property!`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.allowed = parsedValues;\n\t\t}\n\t}\n\n\t// IMPORTANT: Changes to these properties can affect the device config hash,\n\t// which may prompt users to re-interview their devices.\n\t//\n\t// Whenever adding, removing or changing properties of this class,\n\t// make sure that these changes do not cause the hash to change unintentionally.\n\t// For example, adding a new optional property with a default value of `undefined`\n\t// is fine, unless the constructor always sets it to a concrete value.\n\t//\n\t// In all other case, make sure to increase the `maxHashVersion` in DeviceConfig.ts\n\t// and add appropriate, backwards-compatible handling for the new version\n\t// in `areHashesEqual`\n\n\tprivate parent: ConditionalDeviceConfig;\n\tpublic readonly parameterNumber: number;\n\tpublic readonly valueBitMask?: number;\n\tpublic readonly label: string;\n\tpublic readonly description?: string;\n\tpublic readonly valueSize: number;\n\tpublic readonly allowed?: readonly AllowedConfigValue[];\n\tpublic readonly minValue?: number;\n\tpublic readonly maxValue?: number;\n\tpublic readonly unsigned?: boolean;\n\tpublic readonly defaultValue: number;\n\tpublic readonly recommendedValue?: number;\n\tpublic readonly unit?: string;\n\tpublic readonly readOnly?: true;\n\tpublic readonly writeOnly?: true;\n\tpublic readonly allowManualEntry: boolean;\n\tpublic readonly destructive?: boolean;\n\tpublic readonly options: readonly ConditionalConfigOption[];\n\tpublic readonly hidden?: boolean;\n\n\tpublic readonly condition?: string;\n\n\tpublic evaluateCondition(\n\t\tdeviceId?: DeviceID,\n\t): ParamInformation | undefined {\n\t\tif (!conditionApplies(this, deviceId)) return;\n\n\t\tconst ret = {\n\t\t\t...pick(this, [\n\t\t\t\t\"parameterNumber\",\n\t\t\t\t\"valueBitMask\",\n\t\t\t\t\"label\",\n\t\t\t\t\"description\",\n\t\t\t\t\"valueSize\",\n\t\t\t\t\"allowed\",\n\t\t\t\t\"minValue\",\n\t\t\t\t\"maxValue\",\n\t\t\t\t\"unsigned\",\n\t\t\t\t\"defaultValue\",\n\t\t\t\t\"recommendedValue\",\n\t\t\t\t\"unit\",\n\t\t\t\t\"readOnly\",\n\t\t\t\t\"writeOnly\",\n\t\t\t\t\"allowManualEntry\",\n\t\t\t\t\"destructive\",\n\t\t\t\t\"hidden\",\n\t\t\t]),\n\t\t\toptions: evaluateDeep(this.options, deviceId, true),\n\t\t};\n\n\t\t// If allowed is defined, compute the envelope (minValue/maxValue) for backwards compatibility\n\t\tif (ret.allowed && ret.allowed.length > 0) {\n\t\t\tlet globalMin = Infinity;\n\t\t\tlet globalMax = -Infinity;\n\n\t\t\tfor (const def of ret.allowed) {\n\t\t\t\tif (\"value\" in def) {\n\t\t\t\t\tglobalMin = Math.min(globalMin, def.value);\n\t\t\t\t\tglobalMax = Math.max(globalMax, def.value);\n\t\t\t\t} else {\n\t\t\t\t\tglobalMin = Math.min(globalMin, def.from);\n\t\t\t\t\tglobalMax = Math.max(globalMax, def.to);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tret.minValue = globalMin;\n\t\t\tret.maxValue = globalMax;\n\t\t} // Infer minValue from options if possible\n\t\telse if (ret.minValue == undefined) {\n\t\t\tif (ret.allowManualEntry === false && ret.options.length > 0) {\n\t\t\t\tret.minValue = Math.min(...ret.options.map((o) => o.value));\n\t\t\t} else {\n\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\"devices\",\n\t\t\t\t\t`packages/config/config/devices/${this.parent.filename}:\nParameter #${this.parameterNumber} is missing required property \"minValue\"!`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (ret.allowed == undefined && ret.maxValue == undefined) {\n\t\t\tif (ret.allowManualEntry === false && ret.options.length > 0) {\n\t\t\t\tret.maxValue = Math.max(...ret.options.map((o) => o.value));\n\t\t\t} else {\n\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\"devices\",\n\t\t\t\t\t`packages/config/config/devices/${this.parent.filename}:\nParameter #${this.parameterNumber} is missing required property \"maxValue\"!`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\t// After inferring minValue/maxValue, create the allowed array if not already set\n\t\tif (ret.allowed == undefined) {\n\t\t\tret.allowed = [{ from: ret.minValue!, to: ret.maxValue! }];\n\t\t}\n\n\t\t// @ts-expect-error TS doesn't understand that we set min/maxValue and allowed\n\t\treturn ret;\n\t}\n}\n\nexport type ParamInformation =\n\t& Omit<\n\t\tConditionalParamInformation,\n\t\t| \"condition\"\n\t\t| \"evaluateCondition\"\n\t\t| \"options\"\n\t\t| \"minValue\"\n\t\t| \"maxValue\"\n\t\t| \"allowed\"\n\t>\n\t& {\n\t\toptions: readonly ConfigOption[];\n\t\tminValue: NonNullable<ConditionalParamInformation[\"minValue\"]>;\n\t\tmaxValue: NonNullable<ConditionalParamInformation[\"maxValue\"]>;\n\t\tallowed: NonNullable<ConditionalParamInformation[\"allowed\"]>;\n\t};\n\nexport class ConditionalConfigOption implements ConditionalItem<ConfigOption> {\n\tpublic constructor(\n\t\tpublic readonly value: number,\n\t\tpublic readonly label: string,\n\t\tpublic readonly condition?: string,\n\t) {}\n\n\tpublic evaluateCondition(deviceId?: DeviceID): ConfigOption | undefined {\n\t\tif (!conditionApplies(this, deviceId)) return;\n\n\t\treturn pick(this, [\"value\", \"label\"]);\n\t}\n}\n\nexport interface ConfigOption {\n\tvalue: number;\n\tlabel: string;\n}\n\nexport type ConditionalParamInfoMap = ReadonlyObjectKeyMap<\n\t{ parameter: number; valueBitMask?: number },\n\tConditionalParamInformation[]\n>;\n\nexport type ParamInfoMap = ReadonlyObjectKeyMap<\n\t{ parameter: number; valueBitMask?: number },\n\tParamInformation\n>;\n\nexport function parseConditionalParamInformationMap(\n\tdefinition: JSONObject,\n\tparent: ConditionalDeviceConfig,\n\terrorPrefix: string = \"\",\n): ConditionalParamInfoMap {\n\tconst paramInformation = new ObjectKeyMap<\n\t\t{ parameter: number; valueBitMask?: number },\n\t\tConditionalParamInformation[]\n\t>();\n\n\tconst filename = parent.filename;\n\n\tif (isArray(definition.paramInformation)) {\n\t\t// Check that every param has a param number\n\t\tif (!definition.paramInformation.every((entry: any) => \"#\" in entry)) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t`device`,\n\t\t\t\t`packages/config/config/devices/${filename}: \n${errorPrefix}required property \"#\" missing in at least one entry of paramInformation`,\n\t\t\t);\n\t\t}\n\n\t\t// And a valid $if condition\n\t\tfor (const entry of definition.paramInformation) {\n\t\t\tvalidateCondition(\n\t\t\t\tfilename,\n\t\t\t\tentry,\n\t\t\t\t`${errorPrefix}At least one entry of paramInformation contains an`,\n\t\t\t);\n\t\t}\n\n\t\tfor (const paramDefinition of definition.paramInformation) {\n\t\t\tconst { [\"#\"]: paramNo, ...defn } = paramDefinition;\n\t\t\tconst key = tryParseParamNumber(paramNo);\n\t\t\tif (!key) {\n\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t`device`,\n\t\t\t\t\t`packages/config/config/devices/${filename}: \n${errorPrefix}found invalid param number \"${paramNo}\" in paramInformation`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (!paramInformation.has(key)) paramInformation.set(key, []);\n\t\t\tparamInformation\n\t\t\t\t.get(key)!\n\t\t\t\t.push(\n\t\t\t\t\tnew ConditionalParamInformation(\n\t\t\t\t\t\tparent,\n\t\t\t\t\t\tkey.parameter,\n\t\t\t\t\t\tkey.valueBitMask,\n\t\t\t\t\t\tdefn,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t}\n\t} else if (isObject(definition.paramInformation)) {\n\t\t// Silently ignore this old format\n\t} else {\n\t\tthrowInvalidConfig(\n\t\t\t`device`,\n\t\t\t`packages/config/config/devices/${filename}:\n${errorPrefix}paramInformation must be an array!`,\n\t\t);\n\t}\n\n\treturn paramInformation;\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;;;;;;;AACA,
|
|
4
|
+
"sourcesContent": ["/* oxlint-disable typescript/no-unnecessary-type-assertion */\nimport { type AllowedValue, tryParseParamNumber } from \"@zwave-js/core\";\nimport {\n\ttype JSONObject,\n\tObjectKeyMap,\n\ttype ReadonlyObjectKeyMap,\n\tpick,\n} from \"@zwave-js/shared\";\nimport { isArray, isObject } from \"alcalzone-shared/typeguards\";\nimport { throwInvalidConfig } from \"../utils_safe.js\";\nimport {\n\ttype ConditionalItem,\n\tconditionApplies,\n\tevaluateDeep,\n\tvalidateCondition,\n} from \"./ConditionalItem.js\";\nimport type { ConditionalDeviceConfig } from \"./DeviceConfig.js\";\nimport type { DeviceID } from \"./shared.js\";\n\nexport class ConditionalParamInformation\n\timplements ConditionalItem<ParamInformation>\n{\n\tpublic constructor(\n\t\tparent: ConditionalDeviceConfig,\n\t\tparameterNumber: number,\n\t\tvalueBitMask: number | undefined,\n\t\tdefinition: JSONObject,\n\t) {\n\t\tthis.parent = parent;\n\t\tthis.parameterNumber = parameterNumber;\n\t\tthis.valueBitMask = valueBitMask;\n\t\t// No need to validate here, this should be done one level higher\n\t\tthis.condition = definition.$if;\n\n\t\tif (typeof definition.label !== \"string\") {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-string label`,\n\t\t\t);\n\t\t}\n\t\tthis.label = definition.label;\n\n\t\tif (\n\t\t\tdefinition.description != undefined\n\t\t\t&& typeof definition.description !== \"string\"\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-string description`,\n\t\t\t);\n\t\t}\n\t\tthis.description = definition.description;\n\n\t\tif (\n\t\t\ttypeof definition.valueSize !== \"number\"\n\t\t\t|| definition.valueSize <= 0\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has an invalid value size`,\n\t\t\t);\n\t\t}\n\t\tthis.valueSize = definition.valueSize;\n\n\t\tif (\n\t\t\tdefinition.minValue != undefined\n\t\t\t&& typeof definition.minValue !== \"number\"\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-numeric property minValue`,\n\t\t\t);\n\t\t}\n\t\tthis.minValue = definition.minValue;\n\n\t\tif (\n\t\t\tdefinition.maxValue != undefined\n\t\t\t&& typeof definition.maxValue !== \"number\"\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-numeric property maxValue`,\n\t\t\t);\n\t\t}\n\t\tthis.maxValue = definition.maxValue;\n\n\t\tif (\n\t\t\tdefinition.unsigned != undefined\n\t\t\t&& typeof definition.unsigned !== \"boolean\"\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-boolean property unsigned`,\n\t\t\t);\n\t\t}\n\t\tthis.unsigned = definition.unsigned === true;\n\n\t\tif (\n\t\t\tdefinition.unit != undefined\n\t\t\t&& typeof definition.unit !== \"string\"\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-string unit`,\n\t\t\t);\n\t\t}\n\t\tthis.unit = definition.unit;\n\n\t\tif (definition.readOnly != undefined && definition.readOnly !== true) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\n\t\tParameter #${parameterNumber}: readOnly must true or omitted!`,\n\t\t\t);\n\t\t}\n\t\tthis.readOnly = definition.readOnly;\n\n\t\tif (\n\t\t\tdefinition.writeOnly != undefined\n\t\t\t&& definition.writeOnly !== true\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\n\t\tParameter #${parameterNumber}: writeOnly must be true or omitted!`,\n\t\t\t);\n\t\t}\n\t\tthis.writeOnly = definition.writeOnly;\n\n\t\tif (definition.defaultValue == undefined) {\n\t\t\tif (!this.readOnly) {\n\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\"devices\",\n\t\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} is missing defaultValue, which is required unless the parameter is readOnly`,\n\t\t\t\t);\n\t\t\t}\n\t\t} else if (typeof definition.defaultValue !== \"number\") {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-numeric property defaultValue`,\n\t\t\t);\n\t\t}\n\t\tthis.defaultValue = definition.defaultValue;\n\n\t\tif (\n\t\t\tdefinition.recommendedValue != undefined\n\t\t\t&& typeof definition.recommendedValue !== \"number\"\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-numeric property recommendedValue`,\n\t\t\t);\n\t\t}\n\t\tthis.recommendedValue = definition.recommendedValue;\n\n\t\tif (\n\t\t\tdefinition.allowManualEntry != undefined\n\t\t\t&& definition.allowManualEntry !== false\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber}: allowManualEntry must be false or omitted!`,\n\t\t\t);\n\t\t}\n\t\t// Default to allowing manual entry, except if the param is readonly\n\t\tthis.allowManualEntry = definition.allowManualEntry ?? !this.readOnly;\n\n\t\tif (\n\t\t\tdefinition.destructive != undefined\n\t\t\t&& typeof definition.destructive !== \"boolean\"\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-boolean property destructive`,\n\t\t\t);\n\t\t}\n\t\tthis.destructive = definition.destructive;\n\n\t\tif (\n\t\t\tisArray(definition.options)\n\t\t\t&& !definition.options.every(\n\t\t\t\t(opt: unknown) =>\n\t\t\t\t\tisObject(opt)\n\t\t\t\t\t&& typeof opt.label === \"string\"\n\t\t\t\t\t&& typeof opt.value === \"number\",\n\t\t\t)\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber}: options is malformed!`,\n\t\t\t);\n\t\t}\n\n\t\tthis.options = definition.options?.map(\n\t\t\t(opt: any) =>\n\t\t\t\tnew ConditionalConfigOption(opt.value, opt.label, opt.$if),\n\t\t) ?? [];\n\n\t\tif (\n\t\t\tdefinition.hidden != undefined\n\t\t\t&& typeof definition.hidden !== \"boolean\"\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-boolean property hidden`,\n\t\t\t);\n\t\t}\n\t\tthis.hidden = definition.hidden;\n\n\t\tif (\n\t\t\tdefinition[\"$purpose\"] != undefined\n\t\t\t&& typeof definition[\"$purpose\"] !== \"string\"\n\t\t) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"devices\",\n\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber} has a non-string property $purpose`,\n\t\t\t);\n\t\t}\n\t\tthis.purpose = definition[\"$purpose\"];\n\n\t\t// Parse and validate the allowed field\n\t\tif (definition.allowed != undefined) {\n\t\t\t// Validate mutual exclusivity with minValue/maxValue\n\t\t\tif (this.minValue != undefined || this.maxValue != undefined) {\n\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\"devices\",\n\t\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber}: \"allowed\" cannot be used together with \"minValue\" or \"maxValue\"!`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Validate mutual exclusivity with allowManualEntry: false\n\t\t\tif (this.allowManualEntry === false) {\n\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\"devices\",\n\t\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber}: \"allowed\" cannot be used with \"allowManualEntry: false\"!`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Validate it's an array\n\t\t\tif (!isArray(definition.allowed)) {\n\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\"devices\",\n\t\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber}: \"allowed\" must be an array!`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Validate array is not empty\n\t\t\tif (definition.allowed.length === 0) {\n\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\"devices\",\n\t\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber}: \"allowed\" array must contain at least one entry!`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Parse each value definition\n\t\t\tconst parsedValues: AllowedValue[] = [];\n\t\t\tfor (let i = 0; i < definition.allowed.length; i++) {\n\t\t\t\tconst def = definition.allowed[i];\n\n\t\t\t\tif (!isObject(def)) {\n\t\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\t\"devices\",\n\t\t\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber}: allowed[${i}] must be an object!`,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Check for single value\n\t\t\t\tif (\"value\" in def) {\n\t\t\t\t\tif (typeof def.value !== \"number\") {\n\t\t\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\t\t\"devices\",\n\t\t\t\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber}: allowed[${i}].value must be a number!`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tparsedValues.push({ value: def.value });\n\t\t\t\t} // Check for range\n\t\t\t\telse if (\"range\" in def) {\n\t\t\t\t\tif (!isArray(def.range)) {\n\t\t\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\t\t\"devices\",\n\t\t\t\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber}: allowed[${i}].range must be an array!`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (def.range.length !== 2) {\n\t\t\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\t\t\"devices\",\n\t\t\t\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber}: allowed[${i}].range must have exactly 2 elements [from, to]!`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tconst [from, to] = def.range;\n\t\t\t\t\tconst step = def.step;\n\n\t\t\t\t\tif (typeof from !== \"number\" || typeof to !== \"number\") {\n\t\t\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\t\t\"devices\",\n\t\t\t\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber}: allowed[${i}].range elements must be numbers!`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (step !== undefined && typeof step !== \"number\") {\n\t\t\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\t\t\"devices\",\n\t\t\t\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber}: allowed[${i}].step must be a number if provided!`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tparsedValues.push({\n\t\t\t\t\t\tfrom,\n\t\t\t\t\t\tto,\n\t\t\t\t\t\t...(step !== undefined && { step }),\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\t\"devices\",\n\t\t\t\t\t\t`packages/config/config/devices/${parent.filename}:\nParameter #${parameterNumber}: allowed[${i}] must have either \"value\" or \"range\" property!`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.allowed = parsedValues;\n\t\t}\n\t}\n\n\t// IMPORTANT: Changes to these properties can affect the device config hash,\n\t// which may prompt users to re-interview their devices.\n\t//\n\t// Whenever adding, removing or changing properties of this class,\n\t// make sure that these changes do not cause the hash to change unintentionally.\n\t// For example, adding a new optional property with a default value of `undefined`\n\t// is fine, unless the constructor always sets it to a concrete value.\n\t//\n\t// In all other case, make sure to increase the `maxHashVersion` in DeviceConfig.ts\n\t// and add appropriate, backwards-compatible handling for the new version\n\t// in `areHashesEqual`\n\n\tprivate parent: ConditionalDeviceConfig;\n\tpublic readonly parameterNumber: number;\n\tpublic readonly valueBitMask?: number;\n\tpublic readonly label: string;\n\tpublic readonly description?: string;\n\tpublic readonly valueSize: number;\n\tpublic readonly allowed?: readonly AllowedValue[];\n\tpublic readonly minValue?: number;\n\tpublic readonly maxValue?: number;\n\tpublic readonly unsigned?: boolean;\n\tpublic readonly defaultValue: number;\n\tpublic readonly recommendedValue?: number;\n\tpublic readonly unit?: string;\n\tpublic readonly readOnly?: true;\n\tpublic readonly writeOnly?: true;\n\tpublic readonly allowManualEntry: boolean;\n\tpublic readonly destructive?: boolean;\n\tpublic readonly options: readonly ConditionalConfigOption[];\n\tpublic readonly hidden?: boolean;\n\tpublic readonly purpose?: string;\n\n\tpublic readonly condition?: string;\n\n\tpublic evaluateCondition(\n\t\tdeviceId?: DeviceID,\n\t): ParamInformation | undefined {\n\t\tif (!conditionApplies(this, deviceId)) return;\n\n\t\tconst ret = {\n\t\t\t...pick(this, [\n\t\t\t\t\"parameterNumber\",\n\t\t\t\t\"valueBitMask\",\n\t\t\t\t\"label\",\n\t\t\t\t\"description\",\n\t\t\t\t\"valueSize\",\n\t\t\t\t\"allowed\",\n\t\t\t\t\"minValue\",\n\t\t\t\t\"maxValue\",\n\t\t\t\t\"unsigned\",\n\t\t\t\t\"defaultValue\",\n\t\t\t\t\"recommendedValue\",\n\t\t\t\t\"unit\",\n\t\t\t\t\"readOnly\",\n\t\t\t\t\"writeOnly\",\n\t\t\t\t\"allowManualEntry\",\n\t\t\t\t\"destructive\",\n\t\t\t\t\"hidden\",\n\t\t\t\t\"purpose\",\n\t\t\t]),\n\t\t\toptions: evaluateDeep(this.options, deviceId, true),\n\t\t};\n\n\t\t// If allowed is defined, compute the envelope (minValue/maxValue) for backwards compatibility\n\t\tif (ret.allowed && ret.allowed.length > 0) {\n\t\t\tlet globalMin = Infinity;\n\t\t\tlet globalMax = -Infinity;\n\n\t\t\tfor (const def of ret.allowed) {\n\t\t\t\tif (\"value\" in def) {\n\t\t\t\t\tglobalMin = Math.min(globalMin, def.value);\n\t\t\t\t\tglobalMax = Math.max(globalMax, def.value);\n\t\t\t\t} else {\n\t\t\t\t\tglobalMin = Math.min(globalMin, def.from);\n\t\t\t\t\tglobalMax = Math.max(globalMax, def.to);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tret.minValue = globalMin;\n\t\t\tret.maxValue = globalMax;\n\t\t} // Infer minValue from options if possible\n\t\telse if (ret.minValue == undefined) {\n\t\t\tif (ret.allowManualEntry === false && ret.options.length > 0) {\n\t\t\t\tret.minValue = Math.min(...ret.options.map((o) => o.value));\n\t\t\t} else {\n\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\"devices\",\n\t\t\t\t\t`packages/config/config/devices/${this.parent.filename}:\nParameter #${this.parameterNumber} is missing required property \"minValue\"!`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (ret.allowed == undefined && ret.maxValue == undefined) {\n\t\t\tif (ret.allowManualEntry === false && ret.options.length > 0) {\n\t\t\t\tret.maxValue = Math.max(...ret.options.map((o) => o.value));\n\t\t\t} else {\n\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\"devices\",\n\t\t\t\t\t`packages/config/config/devices/${this.parent.filename}:\nParameter #${this.parameterNumber} is missing required property \"maxValue\"!`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\t// After inferring minValue/maxValue, create the allowed array if not already set\n\t\tif (ret.allowed == undefined) {\n\t\t\tret.allowed = [{ from: ret.minValue!, to: ret.maxValue! }];\n\t\t}\n\n\t\t// @ts-expect-error TS doesn't understand that we set min/maxValue and allowed\n\t\treturn ret;\n\t}\n}\n\nexport type ParamInformation =\n\t& Omit<\n\t\tConditionalParamInformation,\n\t\t| \"condition\"\n\t\t| \"evaluateCondition\"\n\t\t| \"options\"\n\t\t| \"minValue\"\n\t\t| \"maxValue\"\n\t\t| \"allowed\"\n\t>\n\t& {\n\t\toptions: readonly ConfigOption[];\n\t\tminValue: NonNullable<ConditionalParamInformation[\"minValue\"]>;\n\t\tmaxValue: NonNullable<ConditionalParamInformation[\"maxValue\"]>;\n\t\tallowed: NonNullable<ConditionalParamInformation[\"allowed\"]>;\n\t};\n\nexport class ConditionalConfigOption implements ConditionalItem<ConfigOption> {\n\tpublic constructor(\n\t\tpublic readonly value: number,\n\t\tpublic readonly label: string,\n\t\tpublic readonly condition?: string,\n\t) {}\n\n\tpublic evaluateCondition(deviceId?: DeviceID): ConfigOption | undefined {\n\t\tif (!conditionApplies(this, deviceId)) return;\n\n\t\treturn pick(this, [\"value\", \"label\"]);\n\t}\n}\n\nexport interface ConfigOption {\n\tvalue: number;\n\tlabel: string;\n}\n\nexport type ConditionalParamInfoMap = ReadonlyObjectKeyMap<\n\t{ parameter: number; valueBitMask?: number },\n\tConditionalParamInformation[]\n>;\n\nexport type ParamInfoMap = ReadonlyObjectKeyMap<\n\t{ parameter: number; valueBitMask?: number },\n\tParamInformation\n>;\n\nexport function parseConditionalParamInformationMap(\n\tdefinition: JSONObject,\n\tparent: ConditionalDeviceConfig,\n\terrorPrefix: string = \"\",\n): ConditionalParamInfoMap {\n\tconst paramInformation = new ObjectKeyMap<\n\t\t{ parameter: number; valueBitMask?: number },\n\t\tConditionalParamInformation[]\n\t>();\n\n\tconst filename = parent.filename;\n\n\tif (isArray(definition.paramInformation)) {\n\t\t// Check that every param has a param number\n\t\tif (!definition.paramInformation.every((entry: any) => \"#\" in entry)) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t`device`,\n\t\t\t\t`packages/config/config/devices/${filename}: \n${errorPrefix}required property \"#\" missing in at least one entry of paramInformation`,\n\t\t\t);\n\t\t}\n\n\t\t// And a valid $if condition\n\t\tfor (const entry of definition.paramInformation) {\n\t\t\tvalidateCondition(\n\t\t\t\tfilename,\n\t\t\t\tentry,\n\t\t\t\t`${errorPrefix}At least one entry of paramInformation contains an`,\n\t\t\t);\n\t\t}\n\n\t\tfor (const paramDefinition of definition.paramInformation) {\n\t\t\tconst { [\"#\"]: paramNo, ...defn } = paramDefinition;\n\t\t\tconst key = tryParseParamNumber(paramNo);\n\t\t\tif (!key) {\n\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t`device`,\n\t\t\t\t\t`packages/config/config/devices/${filename}: \n${errorPrefix}found invalid param number \"${paramNo}\" in paramInformation`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (!paramInformation.has(key)) paramInformation.set(key, []);\n\t\t\tparamInformation\n\t\t\t\t.get(key)!\n\t\t\t\t.push(\n\t\t\t\t\tnew ConditionalParamInformation(\n\t\t\t\t\t\tparent,\n\t\t\t\t\t\tkey.parameter,\n\t\t\t\t\t\tkey.valueBitMask,\n\t\t\t\t\t\tdefn,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t}\n\t} else if (isObject(definition.paramInformation)) {\n\t\t// Silently ignore this old format\n\t} else {\n\t\tthrowInvalidConfig(\n\t\t\t`device`,\n\t\t\t`packages/config/config/devices/${filename}:\n${errorPrefix}paramInformation must be an array!`,\n\t\t);\n\t}\n\n\treturn paramInformation;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/build/esm/_version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const PACKAGE_VERSION = "15.
|
|
1
|
+
export declare const PACKAGE_VERSION = "15.21.0";
|
|
2
2
|
//# sourceMappingURL=_version.d.ts.map
|
package/build/esm/_version.js
CHANGED
|
@@ -73,7 +73,7 @@ export declare class ConditionalDeviceConfig {
|
|
|
73
73
|
readonly isEmbedded: boolean;
|
|
74
74
|
evaluate(deviceId?: DeviceID): DeviceConfig;
|
|
75
75
|
}
|
|
76
|
-
export type DeviceConfigHashVersion = 0 | 1 | 2 | 3;
|
|
76
|
+
export type DeviceConfigHashVersion = 0 | 1 | 2 | 3 | 4;
|
|
77
77
|
export declare class DeviceConfig {
|
|
78
78
|
static from(fs: ReadFileSystemInfo & ReadFile, filename: string, isEmbedded: boolean, options: {
|
|
79
79
|
rootDir: string;
|
|
@@ -116,10 +116,21 @@ export declare class DeviceConfig {
|
|
|
116
116
|
getAssociationConfigForEndpoint(endpointIndex: number, group: number): AssociationConfig | undefined;
|
|
117
117
|
private getHashable;
|
|
118
118
|
/**
|
|
119
|
-
* Returns a hash code that can be used to check whether a device config
|
|
119
|
+
* Returns a hash code that can be used to check whether a device config
|
|
120
|
+
* has changed enough to require a re-interview.
|
|
120
121
|
*/
|
|
121
122
|
getHash(version?: DeviceConfigHashVersion): Promise<BytesView>;
|
|
122
|
-
static get maxHashVersion():
|
|
123
|
-
|
|
123
|
+
static get maxHashVersion(): 4;
|
|
124
|
+
/**
|
|
125
|
+
* Compares a cached device config hash against the current one.
|
|
126
|
+
* @param currentHash must be at the latest hash version
|
|
127
|
+
* @param cachedHash may be at any version and will be normalized for comparison
|
|
128
|
+
*/
|
|
129
|
+
static areHashesEqual(currentHash: BytesView, cachedHash: BytesView): boolean;
|
|
124
130
|
}
|
|
131
|
+
declare function parseHash(hash: BytesView): {
|
|
132
|
+
version: number;
|
|
133
|
+
hashData: BytesView;
|
|
134
|
+
} | undefined;
|
|
135
|
+
export { parseHash as parseDeviceConfigHash };
|
|
125
136
|
//# sourceMappingURL=DeviceConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeviceConfig.d.ts","sourceRoot":"","sources":["../../../src/devices/DeviceConfig.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DeviceConfig.d.ts","sourceRoot":"","sources":["../../../src/devices/DeviceConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { configDir } from "#config_dir";
|
|
2
|
-
import { ZWaveError, ZWaveErrorCodes, deflateSync, digest, } from "@zwave-js/core";
|
|
2
|
+
import { ZWaveError, ZWaveErrorCodes, deflateSync, digest, inflateSync, } from "@zwave-js/core";
|
|
3
3
|
import { Bytes, cloneDeep, enumFilesRecursive, formatId, getenv, num2hex, padVersion, pathExists, pick, readTextFile, stringify, writeTextFile, } from "@zwave-js/shared";
|
|
4
4
|
import { isArray, isObject } from "alcalzone-shared/typeguards";
|
|
5
5
|
import JSON5 from "json5";
|
|
@@ -581,11 +581,12 @@ export class DeviceConfig {
|
|
|
581
581
|
}
|
|
582
582
|
}
|
|
583
583
|
if (version >= 2) {
|
|
584
|
-
// From version 2 and on, we ignore labels and
|
|
584
|
+
// From version 2 and on, we ignore labels, descriptions and $purpose, and load them dynamically
|
|
585
585
|
for (const ep of Object.values(hashable.endpoints ?? {})) {
|
|
586
586
|
for (const param of ep.paramInformation ?? []) {
|
|
587
587
|
delete param.label;
|
|
588
588
|
delete param.description;
|
|
589
|
+
delete param.$purpose; // added later, but the point still stands
|
|
589
590
|
for (const opt of param.options ?? []) {
|
|
590
591
|
delete opt.label;
|
|
591
592
|
}
|
|
@@ -613,13 +614,36 @@ export class DeviceConfig {
|
|
|
613
614
|
}
|
|
614
615
|
}
|
|
615
616
|
}
|
|
617
|
+
if (version >= 4) {
|
|
618
|
+
// From version 4 and on, all param information is applied dynamically
|
|
619
|
+
// so it does not need to be part of the hash anymore.
|
|
620
|
+
if (hashable.endpoints) {
|
|
621
|
+
for (const [key, ep] of Object.entries(hashable.endpoints)) {
|
|
622
|
+
delete ep.paramInformation;
|
|
623
|
+
if (Object.keys(ep).length === 0) {
|
|
624
|
+
delete hashable.endpoints[key];
|
|
625
|
+
}
|
|
626
|
+
}
|
|
627
|
+
if (Object.keys(hashable.endpoints).length === 0) {
|
|
628
|
+
delete hashable.endpoints;
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
}
|
|
616
632
|
hashable = sortObject(hashable);
|
|
617
633
|
return hashable;
|
|
618
634
|
}
|
|
619
635
|
/**
|
|
620
|
-
* Returns a hash code that can be used to check whether a device config
|
|
636
|
+
* Returns a hash code that can be used to check whether a device config
|
|
637
|
+
* has changed enough to require a re-interview.
|
|
621
638
|
*/
|
|
622
639
|
async getHash(version = DeviceConfig.maxHashVersion) {
|
|
640
|
+
// As of hash version 4, this includes:
|
|
641
|
+
// - Association settings (maxNodes, isLifeline, multiChannel)
|
|
642
|
+
// - Compat flags (addCCs, removeCCs, mapBasicSet, etc.)
|
|
643
|
+
// - Proprietary config
|
|
644
|
+
//
|
|
645
|
+
// Configuration parameter metadata is NOT included, as changes
|
|
646
|
+
// to it are applied dynamically without requiring re-interview.
|
|
623
647
|
// Figure out what to hash
|
|
624
648
|
const hashable = this.getHashable(version);
|
|
625
649
|
// And create a "hash" from it. Older versions used a non-cryptographic hash,
|
|
@@ -643,33 +667,49 @@ export class DeviceConfig {
|
|
|
643
667
|
return Bytes.concat([prefixBytes, hash]);
|
|
644
668
|
}
|
|
645
669
|
static get maxHashVersion() {
|
|
646
|
-
return
|
|
670
|
+
return 4;
|
|
647
671
|
}
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
672
|
+
/**
|
|
673
|
+
* Compares a cached device config hash against the current one.
|
|
674
|
+
* @param currentHash must be at the latest hash version
|
|
675
|
+
* @param cachedHash may be at any version and will be normalized for comparison
|
|
676
|
+
*/
|
|
677
|
+
static areHashesEqual(currentHash, cachedHash) {
|
|
678
|
+
const current = parseHash(currentHash);
|
|
679
|
+
const cached = parseHash(cachedHash);
|
|
651
680
|
// If one of the hashes could not be parsed, they are not equal
|
|
652
|
-
if (!
|
|
681
|
+
if (!current || !cached)
|
|
653
682
|
return false;
|
|
654
683
|
// For legacy hashes, we only compare the hash data. We already make sure during
|
|
655
684
|
// parsing of the cache files that we only need to compare hashes of the same version,
|
|
656
685
|
// so simply comparing the contents is sufficient.
|
|
657
|
-
if (
|
|
658
|
-
return Bytes.view(
|
|
686
|
+
if (current.version < 2 && cached.version < 2) {
|
|
687
|
+
return Bytes.view(current.hashData).equals(cached.hashData);
|
|
659
688
|
}
|
|
660
689
|
// We take care during loading to downlevel the current config hash to legacy versions if needed.
|
|
661
690
|
// If we end up with just one legacy hash here, something went wrong. Just bail in that case.
|
|
662
|
-
if (
|
|
691
|
+
if (current.version < 2 || cached.version < 2) {
|
|
663
692
|
return false;
|
|
664
693
|
}
|
|
665
|
-
//
|
|
666
|
-
|
|
667
|
-
|
|
694
|
+
// The cached hash may need normalization (v2 fix, version upgrade)
|
|
695
|
+
let hashable;
|
|
696
|
+
try {
|
|
697
|
+
hashable = JSON.parse(Bytes.view(inflateSync(Bytes.view(cached.hashData), { dictionary: deflateDict })).toString("utf8"));
|
|
698
|
+
}
|
|
699
|
+
catch {
|
|
700
|
+
return false;
|
|
668
701
|
}
|
|
669
|
-
//
|
|
670
|
-
//
|
|
671
|
-
|
|
672
|
-
|
|
702
|
+
// Some Z-Wave JS versions had an issue where the optional "hidden"
|
|
703
|
+
// property was included in the hashable, causing incorrect hashes.
|
|
704
|
+
fixBrokenV2Hashable(hashable, cached.version);
|
|
705
|
+
// If the cached hash has an older version, we need to upgrade it to
|
|
706
|
+
// the current version. This is necessary because some of the version upgrades
|
|
707
|
+
// remove the need for some information to be included in the hash, so
|
|
708
|
+
// a newer version gets by with less information than an older version.
|
|
709
|
+
upgradeHashable(hashable, cached.version, current.version);
|
|
710
|
+
// Recompress and compare against the current hash
|
|
711
|
+
const normalizedData = deflateSync(Bytes.from(JSON.stringify(hashable), "utf8"), { level: 9, dictionary: deflateDict });
|
|
712
|
+
return Bytes.view(normalizedData).equals(current.hashData);
|
|
673
713
|
}
|
|
674
714
|
}
|
|
675
715
|
function parseHash(hash) {
|
|
@@ -703,4 +743,40 @@ function parseHash(hash) {
|
|
|
703
743
|
return undefined;
|
|
704
744
|
}
|
|
705
745
|
}
|
|
746
|
+
export { parseHash as parseDeviceConfigHash };
|
|
747
|
+
/**
|
|
748
|
+
* Fixes broken v2 hashables that incorrectly included `hidden: false`.
|
|
749
|
+
* Mutates the hashable in place.
|
|
750
|
+
*/
|
|
751
|
+
function fixBrokenV2Hashable(hashable, version) {
|
|
752
|
+
if (version !== 2)
|
|
753
|
+
return;
|
|
754
|
+
for (const ep of Object.values(hashable.endpoints ?? {})) {
|
|
755
|
+
for (const param of ep.paramInformation ?? []) {
|
|
756
|
+
if (param.hidden === false) {
|
|
757
|
+
delete param.hidden;
|
|
758
|
+
}
|
|
759
|
+
}
|
|
760
|
+
}
|
|
761
|
+
}
|
|
762
|
+
/**
|
|
763
|
+
* Upgrades a hashable to a newer version by stripping fields that are
|
|
764
|
+
* now applied dynamically. Mutates the hashable in place.
|
|
765
|
+
*/
|
|
766
|
+
function upgradeHashable(hashable, fromVersion, targetVersion) {
|
|
767
|
+
if (fromVersion >= targetVersion)
|
|
768
|
+
return;
|
|
769
|
+
if (targetVersion >= 4 && fromVersion < 4 && hashable.endpoints) {
|
|
770
|
+
for (const [key, ep] of Object.entries(hashable.endpoints)) {
|
|
771
|
+
delete ep.paramInformation;
|
|
772
|
+
if (Object.keys(ep).length === 0) {
|
|
773
|
+
delete hashable.endpoints[key];
|
|
774
|
+
}
|
|
775
|
+
}
|
|
776
|
+
if (Object.keys(hashable.endpoints).length === 0) {
|
|
777
|
+
delete hashable.endpoints;
|
|
778
|
+
}
|
|
779
|
+
fromVersion = 4;
|
|
780
|
+
}
|
|
781
|
+
}
|
|
706
782
|
//# sourceMappingURL=DeviceConfig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeviceConfig.js","sourceRoot":"","sources":["../../../src/devices/DeviceConfig.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DeviceConfig.js","sourceRoot":"","sources":["../../../src/devices/DeviceConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type AllowedValue } from "@zwave-js/core";
|
|
2
2
|
import { type JSONObject, type ReadonlyObjectKeyMap } from "@zwave-js/shared";
|
|
3
3
|
import { type ConditionalItem } from "./ConditionalItem.js";
|
|
4
4
|
import type { ConditionalDeviceConfig } from "./DeviceConfig.js";
|
|
@@ -11,7 +11,7 @@ export declare class ConditionalParamInformation implements ConditionalItem<Para
|
|
|
11
11
|
readonly label: string;
|
|
12
12
|
readonly description?: string;
|
|
13
13
|
readonly valueSize: number;
|
|
14
|
-
readonly allowed?: readonly
|
|
14
|
+
readonly allowed?: readonly AllowedValue[];
|
|
15
15
|
readonly minValue?: number;
|
|
16
16
|
readonly maxValue?: number;
|
|
17
17
|
readonly unsigned?: boolean;
|
|
@@ -24,6 +24,7 @@ export declare class ConditionalParamInformation implements ConditionalItem<Para
|
|
|
24
24
|
readonly destructive?: boolean;
|
|
25
25
|
readonly options: readonly ConditionalConfigOption[];
|
|
26
26
|
readonly hidden?: boolean;
|
|
27
|
+
readonly purpose?: string;
|
|
27
28
|
readonly condition?: string;
|
|
28
29
|
evaluateCondition(deviceId?: DeviceID): ParamInformation | undefined;
|
|
29
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParamInformation.d.ts","sourceRoot":"","sources":["../../../src/devices/ParamInformation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"ParamInformation.d.ts","sourceRoot":"","sources":["../../../src/devices/ParamInformation.ts"],"names":[],"mappings":"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"}
|
|
@@ -107,6 +107,12 @@ Parameter #${parameterNumber}: options is malformed!`);
|
|
|
107
107
|
Parameter #${parameterNumber} has a non-boolean property hidden`);
|
|
108
108
|
}
|
|
109
109
|
this.hidden = definition.hidden;
|
|
110
|
+
if (definition["$purpose"] != undefined
|
|
111
|
+
&& typeof definition["$purpose"] !== "string") {
|
|
112
|
+
throwInvalidConfig("devices", `packages/config/config/devices/${parent.filename}:
|
|
113
|
+
Parameter #${parameterNumber} has a non-string property $purpose`);
|
|
114
|
+
}
|
|
115
|
+
this.purpose = definition["$purpose"];
|
|
110
116
|
// Parse and validate the allowed field
|
|
111
117
|
if (definition.allowed != undefined) {
|
|
112
118
|
// Validate mutual exclusivity with minValue/maxValue
|
|
@@ -208,6 +214,7 @@ Parameter #${parameterNumber}: allowed[${i}] must have either "value" or "range"
|
|
|
208
214
|
destructive;
|
|
209
215
|
options;
|
|
210
216
|
hidden;
|
|
217
|
+
purpose;
|
|
211
218
|
condition;
|
|
212
219
|
evaluateCondition(deviceId) {
|
|
213
220
|
if (!conditionApplies(this, deviceId))
|
|
@@ -231,6 +238,7 @@ Parameter #${parameterNumber}: allowed[${i}] must have either "value" or "range"
|
|
|
231
238
|
"allowManualEntry",
|
|
232
239
|
"destructive",
|
|
233
240
|
"hidden",
|
|
241
|
+
"purpose",
|
|
234
242
|
]),
|
|
235
243
|
options: evaluateDeep(this.options, deviceId, true),
|
|
236
244
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParamInformation.js","sourceRoot":"","sources":["../../../src/devices/ParamInformation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ParamInformation.js","sourceRoot":"","sources":["../../../src/devices/ParamInformation.ts"],"names":[],"mappings":"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"}
|