zigbee-herdsman-converters 20.13.0 → 20.14.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/CHANGELOG.md +23 -0
- package/converters/fromZigbee.d.ts.map +1 -1
- package/converters/fromZigbee.js +345 -334
- package/converters/fromZigbee.js.map +1 -1
- package/converters/toZigbee.d.ts +1 -1
- package/converters/toZigbee.d.ts.map +1 -1
- package/converters/toZigbee.js +80 -82
- package/converters/toZigbee.js.map +1 -1
- package/devices/ITCommander.d.ts.map +1 -1
- package/devices/ITCommander.js +1 -1
- package/devices/ITCommander.js.map +1 -1
- package/devices/acova.d.ts.map +1 -1
- package/devices/acova.js.map +1 -1
- package/devices/akuvox.d.ts.map +1 -1
- package/devices/akuvox.js.map +1 -1
- package/devices/aldi.d.ts.map +1 -1
- package/devices/aldi.js.map +1 -1
- package/devices/alecto.d.ts.map +1 -1
- package/devices/alecto.js.map +1 -1
- package/devices/atlantic.d.ts.map +1 -1
- package/devices/atlantic.js.map +1 -1
- package/devices/aubess.d.ts.map +1 -1
- package/devices/aubess.js.map +1 -1
- package/devices/aurora_lighting.d.ts.map +1 -1
- package/devices/aurora_lighting.js +2 -2
- package/devices/aurora_lighting.js.map +1 -1
- package/devices/avatto.js +0 -1
- package/devices/avatto.js.map +1 -1
- package/devices/axis.d.ts.map +1 -1
- package/devices/axis.js.map +1 -1
- package/devices/bitron.d.ts.map +1 -1
- package/devices/bitron.js +9 -9
- package/devices/bitron.js.map +1 -1
- package/devices/bituo_technik.d.ts.map +1 -1
- package/devices/bituo_technik.js +2 -2
- package/devices/bituo_technik.js.map +1 -1
- package/devices/blaupunkt.d.ts.map +1 -1
- package/devices/blaupunkt.js +1 -1
- package/devices/blaupunkt.js.map +1 -1
- package/devices/blitzwolf.d.ts.map +1 -1
- package/devices/blitzwolf.js.map +1 -1
- package/devices/bosch.d.ts.map +1 -1
- package/devices/bosch.js +25 -25
- package/devices/bosch.js.map +1 -1
- package/devices/brimate.d.ts.map +1 -1
- package/devices/brimate.js.map +1 -1
- package/devices/bseed.d.ts.map +1 -1
- package/devices/bseed.js.map +1 -1
- package/devices/bticino.d.ts.map +1 -1
- package/devices/bticino.js.map +1 -1
- package/devices/busch_jaeger.d.ts.map +1 -1
- package/devices/busch_jaeger.js.map +1 -1
- package/devices/byun.d.ts.map +1 -1
- package/devices/byun.js.map +1 -1
- package/devices/casaia.d.ts.map +1 -1
- package/devices/casaia.js +2 -2
- package/devices/casaia.js.map +1 -1
- package/devices/centralite.d.ts.map +1 -1
- package/devices/centralite.js +5 -5
- package/devices/centralite.js.map +1 -1
- package/devices/cleverio.d.ts.map +1 -1
- package/devices/cleverio.js.map +1 -1
- package/devices/ctm.d.ts.map +1 -1
- package/devices/ctm.js +62 -62
- package/devices/ctm.js.map +1 -1
- package/devices/current_products_corp.d.ts.map +1 -1
- package/devices/current_products_corp.js.map +1 -1
- package/devices/custom_devices_diy.d.ts.map +1 -1
- package/devices/custom_devices_diy.js +12 -12
- package/devices/custom_devices_diy.js.map +1 -1
- package/devices/danalock.d.ts.map +1 -1
- package/devices/danalock.js.map +1 -1
- package/devices/danfoss.d.ts.map +1 -1
- package/devices/danfoss.js +2 -2
- package/devices/danfoss.js.map +1 -1
- package/devices/datek.d.ts.map +1 -1
- package/devices/datek.js +1 -1
- package/devices/datek.js.map +1 -1
- package/devices/dawon_dns.d.ts.map +1 -1
- package/devices/dawon_dns.js.map +1 -1
- package/devices/develco.d.ts.map +1 -1
- package/devices/develco.js +15 -14
- package/devices/develco.js.map +1 -1
- package/devices/digi.d.ts.map +1 -1
- package/devices/digi.js.map +1 -1
- package/devices/dlink.d.ts.map +1 -1
- package/devices/dlink.js.map +1 -1
- package/devices/easyaccess.d.ts.map +1 -1
- package/devices/easyaccess.js.map +1 -1
- package/devices/easyiot.d.ts.map +1 -1
- package/devices/easyiot.js.map +1 -1
- package/devices/echostar.d.ts.map +1 -1
- package/devices/echostar.js.map +1 -1
- package/devices/ecodim.d.ts.map +1 -1
- package/devices/ecodim.js +1 -1
- package/devices/ecodim.js.map +1 -1
- package/devices/ecolink.d.ts.map +1 -1
- package/devices/ecolink.js.map +1 -1
- package/devices/ecozy.d.ts.map +1 -1
- package/devices/ecozy.js.map +1 -1
- package/devices/enocean.d.ts.map +1 -1
- package/devices/enocean.js.map +1 -1
- package/devices/envilar.d.ts.map +1 -1
- package/devices/envilar.js +2 -2
- package/devices/envilar.js.map +1 -1
- package/devices/eurotronic.d.ts.map +1 -1
- package/devices/eurotronic.js.map +1 -1
- package/devices/evanell.d.ts.map +1 -1
- package/devices/evanell.js.map +1 -1
- package/devices/evology.d.ts.map +1 -1
- package/devices/evology.js.map +1 -1
- package/devices/ewelink.d.ts.map +1 -1
- package/devices/ewelink.js +1 -1
- package/devices/ewelink.js.map +1 -1
- package/devices/fantem.d.ts.map +1 -1
- package/devices/fantem.js +2 -2
- package/devices/fantem.js.map +1 -1
- package/devices/fireangel.d.ts.map +1 -1
- package/devices/fireangel.js.map +1 -1
- package/devices/frankever.d.ts.map +1 -1
- package/devices/frankever.js.map +1 -1
- package/devices/frient.d.ts.map +1 -1
- package/devices/frient.js.map +1 -1
- package/devices/gewiss.d.ts.map +1 -1
- package/devices/gewiss.js.map +1 -1
- package/devices/giex.d.ts.map +1 -1
- package/devices/giex.js.map +1 -1
- package/devices/gledopto.js +2 -2
- package/devices/gledopto.js.map +1 -1
- package/devices/gmmts.d.ts.map +1 -1
- package/devices/gmmts.js +23 -23
- package/devices/gmmts.js.map +1 -1
- package/devices/gumax.d.ts +4 -0
- package/devices/gumax.d.ts.map +1 -0
- package/devices/gumax.js +15 -0
- package/devices/gumax.js.map +1 -0
- package/devices/heiman.d.ts.map +1 -1
- package/devices/heiman.js +2 -2
- package/devices/heiman.js.map +1 -1
- package/devices/heimgard_technologies.d.ts.map +1 -1
- package/devices/heimgard_technologies.js +2 -2
- package/devices/heimgard_technologies.js.map +1 -1
- package/devices/hive.js +1 -1
- package/devices/hive.js.map +1 -1
- package/devices/hommyn.d.ts.map +1 -1
- package/devices/hommyn.js.map +1 -1
- package/devices/hzc.d.ts.map +1 -1
- package/devices/hzc.js.map +1 -1
- package/devices/hzc_electric.d.ts.map +1 -1
- package/devices/hzc_electric.js.map +1 -1
- package/devices/ihorn.d.ts.map +1 -1
- package/devices/ihorn.js.map +1 -1
- package/devices/imhotepcreation.d.ts.map +1 -1
- package/devices/index.d.ts.map +1 -1
- package/devices/index.js +4 -2
- package/devices/index.js.map +1 -1
- package/devices/innr.d.ts.map +1 -1
- package/devices/innr.js +2 -2
- package/devices/innr.js.map +1 -1
- package/devices/inovelli.d.ts.map +1 -1
- package/devices/inovelli.js +38 -38
- package/devices/inovelli.js.map +1 -1
- package/devices/insta.d.ts.map +1 -1
- package/devices/insta.js.map +1 -1
- package/devices/iotperfect.d.ts.map +1 -1
- package/devices/iotperfect.js.map +1 -1
- package/devices/iris.d.ts.map +1 -1
- package/devices/iris.js +1 -1
- package/devices/iris.js.map +1 -1
- package/devices/javis.d.ts.map +1 -1
- package/devices/javis.js.map +1 -1
- package/devices/jxuan.d.ts.map +1 -1
- package/devices/jxuan.js +2 -2
- package/devices/jxuan.js.map +1 -1
- package/devices/kami.d.ts.map +1 -1
- package/devices/kami.js.map +1 -1
- package/devices/keen_home.d.ts.map +1 -1
- package/devices/keen_home.js.map +1 -1
- package/devices/kmpcil.d.ts.map +1 -1
- package/devices/kmpcil.js +5 -5
- package/devices/kmpcil.js.map +1 -1
- package/devices/kwikset.d.ts.map +1 -1
- package/devices/kwikset.js.map +1 -1
- package/devices/led_trading.d.ts.map +1 -1
- package/devices/led_trading.js +1 -8
- package/devices/led_trading.js.map +1 -1
- package/devices/legrand.d.ts.map +1 -1
- package/devices/legrand.js +2 -2
- package/devices/legrand.js.map +1 -1
- package/devices/lellki.d.ts.map +1 -1
- package/devices/lellki.js +2 -2
- package/devices/lellki.js.map +1 -1
- package/devices/letv.d.ts.map +1 -1
- package/devices/letv.js.map +1 -1
- package/devices/leviton.d.ts.map +1 -1
- package/devices/leviton.js +1 -1
- package/devices/leviton.js.map +1 -1
- package/devices/lidl.d.ts.map +1 -1
- package/devices/lidl.js +15 -15
- package/devices/lidl.js.map +1 -1
- package/devices/lifecontrol.d.ts.map +1 -1
- package/devices/lifecontrol.js +1 -1
- package/devices/lifecontrol.js.map +1 -1
- package/devices/linkind.d.ts.map +1 -1
- package/devices/linkind.js +2 -2
- package/devices/linkind.js.map +1 -1
- package/devices/linptech.d.ts.map +1 -1
- package/devices/linptech.js +5 -5
- package/devices/linptech.js.map +1 -1
- package/devices/livolo.d.ts.map +1 -1
- package/devices/livolo.js +1 -1
- package/devices/livolo.js.map +1 -1
- package/devices/lixee.d.ts.map +1 -1
- package/devices/lixee.js +29 -28
- package/devices/lixee.js.map +1 -1
- package/devices/ls.d.ts.map +1 -1
- package/devices/ls.js.map +1 -1
- package/devices/lumi.d.ts.map +1 -1
- package/devices/lumi.js +7 -7
- package/devices/lumi.js.map +1 -1
- package/devices/lupus.d.ts.map +1 -1
- package/devices/lupus.js +2 -2
- package/devices/lupus.js.map +1 -1
- package/devices/lutron.d.ts.map +1 -1
- package/devices/lutron.js.map +1 -1
- package/devices/lux.d.ts.map +1 -1
- package/devices/lux.js.map +1 -1
- package/devices/lytko.js +6 -6
- package/devices/lytko.js.map +1 -1
- package/devices/meazon.d.ts.map +1 -1
- package/devices/meazon.js.map +1 -1
- package/devices/mercator.d.ts.map +1 -1
- package/devices/mercator.js +2 -2
- package/devices/mercator.js.map +1 -1
- package/devices/miboxer.d.ts.map +1 -1
- package/devices/miboxer.js +1 -1
- package/devices/miboxer.js.map +1 -1
- package/devices/moes.d.ts.map +1 -1
- package/devices/moes.js +3 -3
- package/devices/moes.js.map +1 -1
- package/devices/multiterm.js +1 -1
- package/devices/multiterm.js.map +1 -1
- package/devices/namron.js +6 -6
- package/devices/namron.js.map +1 -1
- package/devices/neo.d.ts.map +1 -1
- package/devices/neo.js +1 -1
- package/devices/neo.js.map +1 -1
- package/devices/net2grid.d.ts.map +1 -1
- package/devices/net2grid.js.map +1 -1
- package/devices/netvox.d.ts.map +1 -1
- package/devices/netvox.js.map +1 -1
- package/devices/niko.d.ts.map +1 -1
- package/devices/niko.js +10 -10
- package/devices/niko.js.map +1 -1
- package/devices/ninja_blocks.d.ts.map +1 -1
- package/devices/ninja_blocks.js.map +1 -1
- package/devices/nodon.d.ts.map +1 -1
- package/devices/nodon.js +2 -2
- package/devices/nodon.js.map +1 -1
- package/devices/nous.d.ts.map +1 -1
- package/devices/nous.js.map +1 -1
- package/devices/novo.d.ts.map +1 -1
- package/devices/novo.js.map +1 -1
- package/devices/nue_3a.js +2 -2
- package/devices/nue_3a.js.map +1 -1
- package/devices/nyce.d.ts.map +1 -1
- package/devices/nyce.js.map +1 -1
- package/devices/onesti.d.ts.map +1 -1
- package/devices/onesti.js.map +1 -1
- package/devices/openlumi.d.ts.map +1 -1
- package/devices/openlumi.js.map +1 -1
- package/devices/oujiabao.d.ts.map +1 -1
- package/devices/oujiabao.js.map +1 -1
- package/devices/owon.d.ts.map +1 -1
- package/devices/owon.js +35 -26
- package/devices/owon.js.map +1 -1
- package/devices/peq.d.ts.map +1 -1
- package/devices/peq.js.map +1 -1
- package/devices/perenio.d.ts.map +1 -1
- package/devices/perenio.js +21 -21
- package/devices/perenio.js.map +1 -1
- package/devices/philips.d.ts.map +1 -1
- package/devices/philips.js +28 -0
- package/devices/philips.js.map +1 -1
- package/devices/plaid.d.ts.map +1 -1
- package/devices/plaid.js.map +1 -1
- package/devices/plugwise.d.ts.map +1 -1
- package/devices/plugwise.js +1 -1
- package/devices/plugwise.js.map +1 -1
- package/devices/qa.d.ts.map +1 -1
- package/devices/qa.js.map +1 -1
- package/devices/qmotion.d.ts.map +1 -1
- package/devices/qmotion.js +1 -1
- package/devices/qmotion.js.map +1 -1
- package/devices/qoto.d.ts.map +1 -1
- package/devices/qoto.js.map +1 -1
- package/devices/rgb_genie.d.ts.map +1 -1
- package/devices/rgb_genie.js +2 -2
- package/devices/rgb_genie.js.map +1 -1
- package/devices/roome.d.ts.map +1 -1
- package/devices/roome.js.map +1 -1
- package/devices/rtx.d.ts.map +1 -1
- package/devices/rtx.js.map +1 -1
- package/devices/salus_controls.d.ts.map +1 -1
- package/devices/salus_controls.js.map +1 -1
- package/devices/saswell.d.ts.map +1 -1
- package/devices/saswell.js +1 -1
- package/devices/saswell.js.map +1 -1
- package/devices/sber.d.ts.map +1 -1
- package/devices/sber.js.map +1 -1
- package/devices/schlage.d.ts.map +1 -1
- package/devices/schlage.js.map +1 -1
- package/devices/schneider_electric.d.ts.map +1 -1
- package/devices/schneider_electric.js +22 -22
- package/devices/schneider_electric.js.map +1 -1
- package/devices/securifi.d.ts.map +1 -1
- package/devices/securifi.js.map +1 -1
- package/devices/sengled.d.ts.map +1 -1
- package/devices/sercomm.d.ts.map +1 -1
- package/devices/sercomm.js.map +1 -1
- package/devices/shade_control.d.ts.map +1 -1
- package/devices/shade_control.js.map +1 -1
- package/devices/shinasystem.js +1 -1
- package/devices/shinasystem.js.map +1 -1
- package/devices/siglis.d.ts.map +1 -1
- package/devices/siglis.js +4 -5
- package/devices/siglis.js.map +1 -1
- package/devices/sinope.d.ts.map +1 -1
- package/devices/sinope.js +76 -84
- package/devices/sinope.js.map +1 -1
- package/devices/siterwell.d.ts.map +1 -1
- package/devices/siterwell.js.map +1 -1
- package/devices/skydance.d.ts.map +1 -1
- package/devices/skydance.js.map +1 -1
- package/devices/smart9.d.ts.map +1 -1
- package/devices/smart9.js.map +1 -1
- package/devices/smartenit.d.ts.map +1 -1
- package/devices/smartenit.js.map +1 -1
- package/devices/smartthings.js +1 -1
- package/devices/smartthings.js.map +1 -1
- package/devices/smartwings.d.ts.map +1 -1
- package/devices/smartwings.js.map +1 -1
- package/devices/somgoms.d.ts.map +1 -1
- package/devices/somgoms.js.map +1 -1
- package/devices/sonoff.d.ts.map +1 -1
- package/devices/sonoff.js +2 -2
- package/devices/sonoff.js.map +1 -1
- package/devices/stelpro.d.ts.map +1 -1
- package/devices/stelpro.js +3 -3
- package/devices/stelpro.js.map +1 -1
- package/devices/sunricher.d.ts.map +1 -1
- package/devices/sunricher.js +3 -8
- package/devices/sunricher.js.map +1 -1
- package/devices/swann.d.ts.map +1 -1
- package/devices/swann.js.map +1 -1
- package/devices/tapestry.d.ts.map +1 -1
- package/devices/tapestry.js.map +1 -1
- package/devices/technicolor.d.ts.map +1 -1
- package/devices/technicolor.js.map +1 -1
- package/devices/third_reality.d.ts.map +1 -1
- package/devices/third_reality.js +167 -15
- package/devices/third_reality.js.map +1 -1
- package/devices/titan_products.d.ts.map +1 -1
- package/devices/titan_products.js.map +1 -1
- package/devices/tplink.d.ts.map +1 -1
- package/devices/tplink.js.map +1 -1
- package/devices/tuya.d.ts.map +1 -1
- package/devices/tuya.js +20 -20
- package/devices/tuya.js.map +1 -1
- package/devices/ubisys.d.ts.map +1 -1
- package/devices/ubisys.js +30 -27
- package/devices/ubisys.js.map +1 -1
- package/devices/uhome.d.ts.map +1 -1
- package/devices/uhome.js.map +1 -1
- package/devices/universal_electronics_inc.d.ts.map +1 -1
- package/devices/universal_electronics_inc.js +1 -1
- package/devices/universal_electronics_inc.js.map +1 -1
- package/devices/vesternet.d.ts.map +1 -1
- package/devices/vesternet.js.map +1 -1
- package/devices/viessmann.d.ts.map +1 -1
- package/devices/viessmann.js.map +1 -1
- package/devices/vimar.d.ts.map +1 -1
- package/devices/vimar.js.map +1 -1
- package/devices/visonic.d.ts.map +1 -1
- package/devices/visonic.js.map +1 -1
- package/devices/wally.d.ts.map +1 -1
- package/devices/wally.js.map +1 -1
- package/devices/waxman.d.ts.map +1 -1
- package/devices/waxman.js.map +1 -1
- package/devices/weiser.d.ts.map +1 -1
- package/devices/weiser.js.map +1 -1
- package/devices/wirenboard.d.ts.map +1 -1
- package/devices/wirenboard.js +11 -11
- package/devices/wirenboard.js.map +1 -1
- package/devices/woolley.d.ts.map +1 -1
- package/devices/woolley.js +1 -1
- package/devices/woolley.js.map +1 -1
- package/devices/woox.d.ts.map +1 -1
- package/devices/woox.js.map +1 -1
- package/devices/wyze.d.ts.map +1 -1
- package/devices/wyze.js.map +1 -1
- package/devices/xyzroe.d.ts.map +1 -1
- package/devices/xyzroe.js +6 -6
- package/devices/xyzroe.js.map +1 -1
- package/devices/yale.d.ts.map +1 -1
- package/devices/yale.js +3 -3
- package/devices/yale.js.map +1 -1
- package/devices/yookee.d.ts.map +1 -1
- package/devices/yookee.js.map +1 -1
- package/devices/zemismart.d.ts.map +1 -1
- package/devices/zemismart.js +2 -2
- package/devices/zemismart.js.map +1 -1
- package/devices/zen.d.ts.map +1 -1
- package/devices/zen.js.map +1 -1
- package/index.d.ts +5 -5
- package/index.d.ts.map +1 -1
- package/index.js +31 -16
- package/index.js.map +1 -1
- package/lib/color.d.ts +1 -1
- package/lib/color.d.ts.map +1 -1
- package/lib/color.js +47 -50
- package/lib/color.js.map +1 -1
- package/lib/configureKey.js +2 -2
- package/lib/configureKey.js.map +1 -1
- package/lib/develco.d.ts.map +1 -1
- package/lib/develco.js +5 -6
- package/lib/develco.js.map +1 -1
- package/lib/ewelink.d.ts.map +1 -1
- package/lib/exposes.js +1 -1
- package/lib/exposes.js.map +1 -1
- package/lib/ikea.d.ts +1 -1
- package/lib/ikea.d.ts.map +1 -1
- package/lib/ikea.js +10 -10
- package/lib/ikea.js.map +1 -1
- package/lib/ledvance.d.ts +1 -1
- package/lib/ledvance.d.ts.map +1 -1
- package/lib/legacy.d.ts +3 -16
- package/lib/legacy.d.ts.map +1 -1
- package/lib/legacy.js +121 -131
- package/lib/legacy.js.map +1 -1
- package/lib/legrand.d.ts +1 -1
- package/lib/legrand.d.ts.map +1 -1
- package/lib/legrand.js +4 -4
- package/lib/legrand.js.map +1 -1
- package/lib/light.d.ts +1 -1
- package/lib/light.js +5 -5
- package/lib/light.js.map +1 -1
- package/lib/logger.d.ts.map +1 -1
- package/lib/logger.js +4 -4
- package/lib/logger.js.map +1 -1
- package/lib/lumi.d.ts +1 -1
- package/lib/lumi.d.ts.map +1 -1
- package/lib/lumi.js +90 -92
- package/lib/lumi.js.map +1 -1
- package/lib/modernExtend.d.ts +1 -1
- package/lib/modernExtend.d.ts.map +1 -1
- package/lib/modernExtend.js +15 -15
- package/lib/modernExtend.js.map +1 -1
- package/lib/ota/common.d.ts +1 -1
- package/lib/ota/common.d.ts.map +1 -1
- package/lib/ota/common.js +5 -5
- package/lib/ota/common.js.map +1 -1
- package/lib/ota/gmmts.d.ts +1 -1
- package/lib/ota/gmmts.d.ts.map +1 -1
- package/lib/ota/gmmts.js +2 -2
- package/lib/ota/gmmts.js.map +1 -1
- package/lib/ota/index.d.ts +5 -5
- package/lib/ota/index.d.ts.map +1 -1
- package/lib/ota/index.js +7 -7
- package/lib/ota/index.js.map +1 -1
- package/lib/ota/inovelli.d.ts +1 -6
- package/lib/ota/inovelli.d.ts.map +1 -1
- package/lib/ota/inovelli.js +11 -11
- package/lib/ota/inovelli.js.map +1 -1
- package/lib/ota/jethome.d.ts +1 -1
- package/lib/ota/jethome.d.ts.map +1 -1
- package/lib/ota/jethome.js +4 -4
- package/lib/ota/jethome.js.map +1 -1
- package/lib/ota/ledvance.d.ts +1 -1
- package/lib/ota/ledvance.d.ts.map +1 -1
- package/lib/ota/ledvance.js +4 -4
- package/lib/ota/ledvance.js.map +1 -1
- package/lib/ota/lixee.d.ts +1 -1
- package/lib/ota/lixee.d.ts.map +1 -1
- package/lib/ota/lixee.js +3 -3
- package/lib/ota/lixee.js.map +1 -1
- package/lib/ota/salus.d.ts +1 -1
- package/lib/ota/salus.d.ts.map +1 -1
- package/lib/ota/salus.js +5 -5
- package/lib/ota/salus.js.map +1 -1
- package/lib/ota/securifi.d.ts +1 -1
- package/lib/ota/securifi.d.ts.map +1 -1
- package/lib/ota/securifi.js +2 -2
- package/lib/ota/securifi.js.map +1 -1
- package/lib/ota/tradfri.d.ts.map +1 -1
- package/lib/ota/tradfri.js +4 -4
- package/lib/ota/tradfri.js.map +1 -1
- package/lib/ota/ubisys.d.ts.map +1 -1
- package/lib/ota/ubisys.js +4 -4
- package/lib/ota/ubisys.js.map +1 -1
- package/lib/ota/zigbeeOTA.d.ts +1 -1
- package/lib/ota/zigbeeOTA.d.ts.map +1 -1
- package/lib/ota/zigbeeOTA.js +9 -9
- package/lib/ota/zigbeeOTA.js.map +1 -1
- package/lib/philips.js +12 -12
- package/lib/philips.js.map +1 -1
- package/lib/reporting.d.ts +1 -1
- package/lib/reporting.d.ts.map +1 -1
- package/lib/reporting.js +7 -7
- package/lib/reporting.js.map +1 -1
- package/lib/store.d.ts +1 -1
- package/lib/store.d.ts.map +1 -1
- package/lib/store.js +2 -2
- package/lib/store.js.map +1 -1
- package/lib/tuya.d.ts +1 -1
- package/lib/tuya.d.ts.map +1 -1
- package/lib/tuya.js +24 -56
- package/lib/tuya.js.map +1 -1
- package/lib/types.d.ts +4 -4
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js +1 -0
- package/lib/types.js.map +1 -1
- package/lib/ubisys.d.ts +1 -1
- package/lib/ubisys.d.ts.map +1 -1
- package/lib/ubisys.js +1 -1
- package/lib/ubisys.js.map +1 -1
- package/lib/utils.d.ts +1 -1
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +26 -26
- package/lib/utils.js.map +1 -1
- package/package.json +8 -9
package/lib/legacy.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
3
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
4
|
if (k2 === undefined) k2 = k;
|
|
4
5
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -59,16 +60,15 @@ exports.isCoverInverted = isCoverInverted;
|
|
|
59
60
|
exports.convertDecimalValueTo2ByteHexArray = convertDecimalValueTo2ByteHexArray;
|
|
60
61
|
exports.convertTimeTo2ByteHexArray = convertTimeTo2ByteHexArray;
|
|
61
62
|
exports.getMetaValue = getMetaValue;
|
|
62
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
63
63
|
const fs_1 = __importDefault(require("fs"));
|
|
64
64
|
const fromZigbee_1 = __importDefault(require("../converters/fromZigbee"));
|
|
65
|
-
const globalStore = __importStar(require("./store"));
|
|
66
|
-
const utils = __importStar(require("./utils"));
|
|
67
|
-
const fromZigbeeStore = {};
|
|
68
65
|
const constants = __importStar(require("./constants"));
|
|
69
66
|
const exposes = __importStar(require("./exposes"));
|
|
70
67
|
const light = __importStar(require("./light"));
|
|
71
68
|
const logger_1 = require("./logger");
|
|
69
|
+
const globalStore = __importStar(require("./store"));
|
|
70
|
+
const utils = __importStar(require("./utils"));
|
|
71
|
+
const fromZigbeeStore = {};
|
|
72
72
|
// get object property name (key) by it's value
|
|
73
73
|
const getKey = (object, value) => {
|
|
74
74
|
for (const key in object) {
|
|
@@ -249,10 +249,10 @@ function convertRawToCycleTimer(value) {
|
|
|
249
249
|
weekdays = 'once';
|
|
250
250
|
}
|
|
251
251
|
let minsincemidnight = value[4] * 256 + value[5];
|
|
252
|
-
// @ts-ignore
|
|
252
|
+
// @ts-expect-error ignore
|
|
253
253
|
starttime = String(parseInt(minsincemidnight / 60)).padStart(2, '0') + ':' + String(minsincemidnight % 60).padStart(2, '0');
|
|
254
254
|
minsincemidnight = value[6] * 256 + value[7];
|
|
255
|
-
// @ts-ignore
|
|
255
|
+
// @ts-expect-error ignore
|
|
256
256
|
endtime = String(parseInt(minsincemidnight / 60)).padStart(2, '0') + ':' + String(minsincemidnight % 60).padStart(2, '0');
|
|
257
257
|
irrigationDuration = value[8] * 256 + value[9];
|
|
258
258
|
pauseDuration = value[10] * 256 + value[11];
|
|
@@ -473,7 +473,7 @@ function convertRawToTimer(value) {
|
|
|
473
473
|
if (value.length > 12) {
|
|
474
474
|
timernr = value[1];
|
|
475
475
|
const minsincemidnight = value[2] * 256 + value[3];
|
|
476
|
-
// @ts-ignore
|
|
476
|
+
// @ts-expect-error ignore
|
|
477
477
|
starttime = String(parseInt(minsincemidnight / 60)).padStart(2, '0') + ':' + String(minsincemidnight % 60).padStart(2, '0');
|
|
478
478
|
duration = value[4] * 256 + value[5];
|
|
479
479
|
if (value[6] > 0) {
|
|
@@ -1069,7 +1069,7 @@ function getMetaValue(entity, definition, key, groupStrategy = 'first') {
|
|
|
1069
1069
|
if (entity.constructor.name === 'Group' && entity.members.length > 0) {
|
|
1070
1070
|
const values = [];
|
|
1071
1071
|
for (const memberMeta of definition) {
|
|
1072
|
-
if (memberMeta.meta && memberMeta.meta
|
|
1072
|
+
if (memberMeta.meta && memberMeta.meta[key] !== undefined) {
|
|
1073
1073
|
if (groupStrategy === 'first') {
|
|
1074
1074
|
return memberMeta.meta[key];
|
|
1075
1075
|
}
|
|
@@ -1083,7 +1083,7 @@ function getMetaValue(entity, definition, key, groupStrategy = 'first') {
|
|
|
1083
1083
|
return values[0];
|
|
1084
1084
|
}
|
|
1085
1085
|
}
|
|
1086
|
-
else if (definition && definition.meta && definition.meta
|
|
1086
|
+
else if (definition && definition.meta && definition.meta[key] !== undefined) {
|
|
1087
1087
|
return definition.meta[key];
|
|
1088
1088
|
}
|
|
1089
1089
|
return undefined;
|
|
@@ -1122,7 +1122,7 @@ const toPercentage = (value, min, max) => {
|
|
|
1122
1122
|
};
|
|
1123
1123
|
const postfixWithEndpointName = (name, msg, definition) => {
|
|
1124
1124
|
if (definition.meta && definition.meta.multiEndpoint) {
|
|
1125
|
-
const endpointName = definition.
|
|
1125
|
+
const endpointName = definition.endpoint !== undefined ? getKey(definition.endpoint(msg.device), msg.endpoint.ID) : msg.endpoint.ID;
|
|
1126
1126
|
return `${name}_${endpointName}`;
|
|
1127
1127
|
}
|
|
1128
1128
|
else {
|
|
@@ -1504,7 +1504,7 @@ const fromZigbee1 = {
|
|
|
1504
1504
|
break;
|
|
1505
1505
|
}
|
|
1506
1506
|
case 1: // report state
|
|
1507
|
-
// @ts-ignore
|
|
1507
|
+
// @ts-expect-error ignore
|
|
1508
1508
|
result.state = { 0: 'OPEN', 1: 'STOP', 2: 'CLOSE' }[value];
|
|
1509
1509
|
break;
|
|
1510
1510
|
case dataPoints.motorDirection: // reverse direction
|
|
@@ -1514,7 +1514,7 @@ const fromZigbee1 = {
|
|
|
1514
1514
|
result.cycle_time = value;
|
|
1515
1515
|
break;
|
|
1516
1516
|
case 101: // model
|
|
1517
|
-
// @ts-ignore
|
|
1517
|
+
// @ts-expect-error ignore
|
|
1518
1518
|
result.motor_type = {
|
|
1519
1519
|
0: '',
|
|
1520
1520
|
1: 'AM0/6-28R-Sm',
|
|
@@ -1528,11 +1528,11 @@ const fromZigbee1 = {
|
|
|
1528
1528
|
result.cycle_count = value;
|
|
1529
1529
|
break;
|
|
1530
1530
|
case 103: // set or clear bottom limit
|
|
1531
|
-
// @ts-ignore
|
|
1531
|
+
// @ts-expect-error ignore
|
|
1532
1532
|
result.bottom_limit = { 0: 'SET', 1: 'CLEAR' }[value];
|
|
1533
1533
|
break;
|
|
1534
1534
|
case 104: // set or clear top limit
|
|
1535
|
-
// @ts-ignore
|
|
1535
|
+
// @ts-expect-error ignore
|
|
1536
1536
|
result.top_limit = { 0: 'SET', 1: 'CLEAR' }[value];
|
|
1537
1537
|
break;
|
|
1538
1538
|
case 109: // active power
|
|
@@ -1544,7 +1544,7 @@ const fromZigbee1 = {
|
|
|
1544
1544
|
case 116: // report confirmation
|
|
1545
1545
|
break;
|
|
1546
1546
|
case 121: // running state
|
|
1547
|
-
// @ts-ignore
|
|
1547
|
+
// @ts-expect-error ignore
|
|
1548
1548
|
result.motor_state = { 0: 'OPENING', 1: 'STOPPED', 2: 'CLOSING' }[value];
|
|
1549
1549
|
result.running = value !== 1 ? true : false;
|
|
1550
1550
|
break;
|
|
@@ -1753,7 +1753,7 @@ const fromZigbee1 = {
|
|
|
1753
1753
|
cluster: 'manuSpecificTuya',
|
|
1754
1754
|
type: ['commandDataResponse', 'commandDataReport'],
|
|
1755
1755
|
convert: (model, msg, publish, options, meta) => {
|
|
1756
|
-
// @ts-ignore
|
|
1756
|
+
// @ts-expect-error ignore
|
|
1757
1757
|
const modelConverters = giexFzModelConverters[model.model] || {};
|
|
1758
1758
|
for (const dpValue of msg.data.dpValues) {
|
|
1759
1759
|
const value = getDataValue(dpValue);
|
|
@@ -1796,14 +1796,14 @@ const fromZigbee1 = {
|
|
|
1796
1796
|
const value = getDataValue(dpValue);
|
|
1797
1797
|
switch (dp) {
|
|
1798
1798
|
case dataPoints.alectoSmokeState:
|
|
1799
|
-
// @ts-ignore
|
|
1799
|
+
// @ts-expect-error ignore
|
|
1800
1800
|
return { smoke_state: { 0: 'alarm', 1: 'normal' }[value] };
|
|
1801
1801
|
case dataPoints.alectoSmokeValue:
|
|
1802
1802
|
return { smoke_value: value };
|
|
1803
1803
|
case dataPoints.alectoSelfChecking:
|
|
1804
1804
|
return { self_checking: value };
|
|
1805
1805
|
case dataPoints.alectoCheckingResult:
|
|
1806
|
-
// @ts-ignore
|
|
1806
|
+
// @ts-expect-error ignore
|
|
1807
1807
|
return { checking_result: { 0: 'checking', 1: 'check_success', 2: 'check_failure', 3: 'others' }[value] };
|
|
1808
1808
|
case dataPoints.alectoSmokeTest:
|
|
1809
1809
|
return { smoke_test: value };
|
|
@@ -1812,7 +1812,7 @@ const fromZigbee1 = {
|
|
|
1812
1812
|
case dataPoints.alectoBatteryPercentage:
|
|
1813
1813
|
return { battery: value };
|
|
1814
1814
|
case dataPoints.alectoBatteryState:
|
|
1815
|
-
// @ts-ignore
|
|
1815
|
+
// @ts-expect-error ignore
|
|
1816
1816
|
return { battery_state: { 0: 'low', 1: 'middle', 2: 'high' }[value] };
|
|
1817
1817
|
case dataPoints.alectoSilence:
|
|
1818
1818
|
return { silence: value };
|
|
@@ -2022,7 +2022,7 @@ const fromZigbee1 = {
|
|
|
2022
2022
|
2: 'double',
|
|
2023
2023
|
3: 'hold',
|
|
2024
2024
|
};
|
|
2025
|
-
if (msg.data.
|
|
2025
|
+
if (msg.data.data !== undefined) {
|
|
2026
2026
|
const zoneStatus = msg.data.zonestatus;
|
|
2027
2027
|
return { click: buttonStates[zoneStatus] };
|
|
2028
2028
|
}
|
|
@@ -3004,24 +3004,19 @@ const fromZigbee1 = {
|
|
|
3004
3004
|
result[postfixWithEndpointName('remote_sensing', msg, model)] = msg.data['remoteSensing'];
|
|
3005
3005
|
}
|
|
3006
3006
|
const ctrl = msg.data['ctrlSeqeOfOper'];
|
|
3007
|
-
if (typeof ctrl == 'number' && thermostatControlSequenceOfOperations
|
|
3008
|
-
result[postfixWithEndpointName('control_sequence_of_operation', msg, model)] =
|
|
3009
|
-
// @ts-ignore
|
|
3010
|
-
thermostatControlSequenceOfOperations[ctrl];
|
|
3007
|
+
if (typeof ctrl == 'number' && thermostatControlSequenceOfOperations[ctrl] !== undefined) {
|
|
3008
|
+
result[postfixWithEndpointName('control_sequence_of_operation', msg, model)] = thermostatControlSequenceOfOperations[ctrl];
|
|
3011
3009
|
}
|
|
3012
3010
|
const smode = msg.data['systemMode'];
|
|
3013
|
-
if (typeof smode == 'number' && thermostatSystemModes
|
|
3014
|
-
// @ts-ignore
|
|
3011
|
+
if (typeof smode == 'number' && thermostatSystemModes[smode] !== undefined) {
|
|
3015
3012
|
result[postfixWithEndpointName('system_mode', msg, model)] = thermostatSystemModes[smode];
|
|
3016
3013
|
}
|
|
3017
3014
|
const rmode = msg.data['runningMode'];
|
|
3018
|
-
if (typeof rmode == 'number' && thermostatSystemModes
|
|
3019
|
-
// @ts-ignore
|
|
3015
|
+
if (typeof rmode == 'number' && thermostatSystemModes[rmode] !== undefined) {
|
|
3020
3016
|
result[postfixWithEndpointName('running_mode', msg, model)] = thermostatSystemModes[rmode];
|
|
3021
3017
|
}
|
|
3022
3018
|
const state = msg.data['runningState'];
|
|
3023
|
-
if (typeof state == 'number' && constants.thermostatRunningStates
|
|
3024
|
-
// @ts-ignore
|
|
3019
|
+
if (typeof state == 'number' && constants.thermostatRunningStates[state] !== undefined) {
|
|
3025
3020
|
result[postfixWithEndpointName('running_state', msg, model)] = constants.thermostatRunningStates[state];
|
|
3026
3021
|
}
|
|
3027
3022
|
if (typeof msg.data['pIHeatingDemand'] == 'number') {
|
|
@@ -3272,7 +3267,7 @@ const fromZigbee1 = {
|
|
|
3272
3267
|
if (!utils.isLegacyEnabled(options)) {
|
|
3273
3268
|
return fromZigbee_1.default.hue_dimmer_switch.convert(model, msg, publish, options, meta);
|
|
3274
3269
|
}
|
|
3275
|
-
const multiplePressTimeout = options && options.
|
|
3270
|
+
const multiplePressTimeout = options && options.multiple_press_timeout !== undefined ? options.multiple_press_timeout : 0.25;
|
|
3276
3271
|
const getPayload = function (button, pressType, pressDuration, pressCounter, brightnessSend, brightnessValue) {
|
|
3277
3272
|
const payLoad = {};
|
|
3278
3273
|
payLoad['action'] = `${button}-${pressType}`;
|
|
@@ -3290,7 +3285,7 @@ const fromZigbee1 = {
|
|
|
3290
3285
|
const button = buttonLookup[msg.data['button']];
|
|
3291
3286
|
const typeLookup = { 0: 'press', 1: 'hold', 2: 'release', 3: 'release' };
|
|
3292
3287
|
const type = typeLookup[msg.data['type']];
|
|
3293
|
-
const brightnessEnabled = options && options.
|
|
3288
|
+
const brightnessEnabled = options && options.send_brightess !== undefined ? options.send_brightess : true;
|
|
3294
3289
|
const brightnessSend = brightnessEnabled && button && (button == 'up' || button == 'down');
|
|
3295
3290
|
// Initialize store
|
|
3296
3291
|
if (!fromZigbeeStore[deviceID]) {
|
|
@@ -3362,7 +3357,7 @@ const fromZigbee1 = {
|
|
|
3362
3357
|
fromZigbeeStore[deviceID].delayedTimer = setTimeout(() => {
|
|
3363
3358
|
publish(getPayload(fromZigbeeStore[deviceID].delayedButton, fromZigbeeStore[deviceID].delayedType, 0, fromZigbeeStore[deviceID].delayedCounter, fromZigbeeStore[deviceID].delayedBrightnessSend, fromZigbeeStore[deviceID].brightnessValue));
|
|
3364
3359
|
fromZigbeeStore[deviceID].delayedTimer = null;
|
|
3365
|
-
// @ts-expect-error
|
|
3360
|
+
// @ts-expect-error ignore
|
|
3366
3361
|
}, multiplePressTimeout * 1000);
|
|
3367
3362
|
}
|
|
3368
3363
|
else {
|
|
@@ -3543,7 +3538,7 @@ const fromZigbee1 = {
|
|
|
3543
3538
|
const presetLookup = { 0: 'programming', 1: 'manual', 2: 'temporary_manual', 3: 'holiday' };
|
|
3544
3539
|
switch (dp) {
|
|
3545
3540
|
case dataPoints.moesSsystemMode:
|
|
3546
|
-
// @ts-ignore
|
|
3541
|
+
// @ts-expect-error ignore
|
|
3547
3542
|
return { preset: presetLookup[value], system_mode: 'heat' };
|
|
3548
3543
|
case dataPoints.moesSheatingSetpoint:
|
|
3549
3544
|
return { current_heating_setpoint: value };
|
|
@@ -3573,7 +3568,7 @@ const fromZigbee1 = {
|
|
|
3573
3568
|
// local_temperature is now stale: the valve does not report the re-calibrated value until an actual temperature change
|
|
3574
3569
|
// so update local_temperature by subtracting the old calibration and adding the new one
|
|
3575
3570
|
...(meta && meta.state && meta.state.local_temperature != null && meta.state.local_temperature_calibration != null
|
|
3576
|
-
? // @ts-expect-error
|
|
3571
|
+
? // @ts-expect-error ignore
|
|
3577
3572
|
{ local_temperature: meta.state.local_temperature + (value - meta.state.local_temperature_calibration) }
|
|
3578
3573
|
: {}),
|
|
3579
3574
|
};
|
|
@@ -3699,7 +3694,7 @@ const fromZigbee1 = {
|
|
|
3699
3694
|
case dataPoints.connecteTempFloor:
|
|
3700
3695
|
return { external_temperature: value };
|
|
3701
3696
|
case dataPoints.connecteSensorType:
|
|
3702
|
-
// @ts-ignore
|
|
3697
|
+
// @ts-expect-error ignore
|
|
3703
3698
|
return { sensor: { 0: 'internal', 1: 'external', 2: 'both' }[value] };
|
|
3704
3699
|
case dataPoints.connecteHysteresis:
|
|
3705
3700
|
return { hysteresis: value };
|
|
@@ -3754,7 +3749,7 @@ const fromZigbee1 = {
|
|
|
3754
3749
|
return { away_mode: 'OFF', preset_mode: 'none' };
|
|
3755
3750
|
}
|
|
3756
3751
|
case dataPoints.saswellScheduleMode:
|
|
3757
|
-
if (thermostatScheduleMode
|
|
3752
|
+
if (thermostatScheduleMode[value] !== undefined) {
|
|
3758
3753
|
return { schedule_mode: thermostatScheduleMode[value] };
|
|
3759
3754
|
}
|
|
3760
3755
|
else {
|
|
@@ -4012,13 +4007,13 @@ const fromZigbee1 = {
|
|
|
4012
4007
|
return { away_preset_days: value };
|
|
4013
4008
|
case dataPoints.mode: {
|
|
4014
4009
|
const ret = {};
|
|
4015
|
-
const presetOk = getMetaValue(msg.endpoint, model, 'tuyaThermostatPreset')
|
|
4010
|
+
const presetOk = getMetaValue(msg.endpoint, model, 'tuyaThermostatPreset')[value] !== undefined;
|
|
4016
4011
|
if (presetOk) {
|
|
4017
4012
|
ret.preset = getMetaValue(msg.endpoint, model, 'tuyaThermostatPreset')[value];
|
|
4018
4013
|
ret.away_mode = ret.preset == 'away' ? 'ON' : 'OFF'; // Away is special HA mode
|
|
4019
4014
|
const presetToSystemMode = utils.getMetaValue(msg.endpoint, model, 'tuyaThermostatPresetToSystemMode', null, {});
|
|
4020
4015
|
if (value in presetToSystemMode) {
|
|
4021
|
-
// @ts-expect-error
|
|
4016
|
+
// @ts-expect-error ignore
|
|
4022
4017
|
ret.system_mode = presetToSystemMode[value];
|
|
4023
4018
|
}
|
|
4024
4019
|
}
|
|
@@ -4098,7 +4093,7 @@ const fromZigbee1 = {
|
|
|
4098
4093
|
let result = null;
|
|
4099
4094
|
switch (dp) {
|
|
4100
4095
|
case dataPoints.state:
|
|
4101
|
-
// @ts-ignore
|
|
4096
|
+
// @ts-expect-error ignore
|
|
4102
4097
|
result = { occupancy: { 1: true, 0: false }[value] };
|
|
4103
4098
|
break;
|
|
4104
4099
|
case dataPoints.msReferenceLuminance:
|
|
@@ -4111,7 +4106,7 @@ const fromZigbee1 = {
|
|
|
4111
4106
|
result = { v_sensitivity: msLookups.VSensitivity[value] };
|
|
4112
4107
|
break;
|
|
4113
4108
|
case dataPoints.msLedStatus:
|
|
4114
|
-
// @ts-ignore
|
|
4109
|
+
// @ts-expect-error ignore
|
|
4115
4110
|
result = { led_status: { 1: 'OFF', 0: 'ON' }[value] };
|
|
4116
4111
|
break;
|
|
4117
4112
|
case dataPoints.msVacancyDelay:
|
|
@@ -4212,11 +4207,11 @@ const fromZigbee1 = {
|
|
|
4212
4207
|
}
|
|
4213
4208
|
break;
|
|
4214
4209
|
case dataPoints.tvWindowDetection:
|
|
4215
|
-
// @ts-ignore
|
|
4210
|
+
// @ts-expect-error ignore
|
|
4216
4211
|
result = { window_detection: { 1: true, 0: false }[value] };
|
|
4217
4212
|
break;
|
|
4218
4213
|
case dataPoints.tvFrostDetection:
|
|
4219
|
-
// @ts-ignore
|
|
4214
|
+
// @ts-expect-error ignore
|
|
4220
4215
|
result = { frost_detection: { 1: true, 0: false }[value] };
|
|
4221
4216
|
break;
|
|
4222
4217
|
case dataPoints.tvHeatingSetpoint:
|
|
@@ -4236,7 +4231,7 @@ const fromZigbee1 = {
|
|
|
4236
4231
|
result = { battery: value };
|
|
4237
4232
|
break;
|
|
4238
4233
|
case dataPoints.tvChildLock:
|
|
4239
|
-
// @ts-ignore
|
|
4234
|
+
// @ts-expect-error ignore
|
|
4240
4235
|
result = { child_lock: { 1: 'LOCK', 0: 'UNLOCK' }[value] };
|
|
4241
4236
|
break;
|
|
4242
4237
|
case dataPoints.tvErrorStatus:
|
|
@@ -4394,7 +4389,7 @@ const fromZigbee1 = {
|
|
|
4394
4389
|
convert: (model, msg, publish, options, meta) => {
|
|
4395
4390
|
const separateWhite = model.meta && model.meta.separateWhite;
|
|
4396
4391
|
const result = {};
|
|
4397
|
-
for (const
|
|
4392
|
+
for (const dpValue of msg.data.dpValues.values()) {
|
|
4398
4393
|
const dp = dpValue.dp;
|
|
4399
4394
|
const value = getDataValue(dpValue);
|
|
4400
4395
|
if (dp === dataPoints.state) {
|
|
@@ -4558,7 +4553,7 @@ const fromZigbee1 = {
|
|
|
4558
4553
|
let result = null;
|
|
4559
4554
|
switch (dp) {
|
|
4560
4555
|
case dataPoints.tshpsPresenceState:
|
|
4561
|
-
// @ts-ignore
|
|
4556
|
+
// @ts-expect-error ignore
|
|
4562
4557
|
result = { presence: { 0: false, 1: true }[value] };
|
|
4563
4558
|
break;
|
|
4564
4559
|
case dataPoints.tshpscSensitivity:
|
|
@@ -4610,11 +4605,11 @@ const fromZigbee1 = {
|
|
|
4610
4605
|
result.battery = value;
|
|
4611
4606
|
break;
|
|
4612
4607
|
case dataPoints.lmsSensitivity:
|
|
4613
|
-
// @ts-ignore
|
|
4608
|
+
// @ts-expect-error ignore
|
|
4614
4609
|
result.sensitivity = { '0': 'low', '1': 'medium', '2': 'high' }[value];
|
|
4615
4610
|
break;
|
|
4616
4611
|
case dataPoints.lmsKeepTime:
|
|
4617
|
-
// @ts-ignore
|
|
4612
|
+
// @ts-expect-error ignore
|
|
4618
4613
|
result.keep_time = { '0': '10', '1': '30', '2': '60', '3': '120' }[value];
|
|
4619
4614
|
break;
|
|
4620
4615
|
case dataPoints.lmsIlluminance:
|
|
@@ -4644,19 +4639,18 @@ const fromZigbee1 = {
|
|
|
4644
4639
|
break;
|
|
4645
4640
|
}
|
|
4646
4641
|
case dataPoints.state:
|
|
4647
|
-
// @ts-ignore
|
|
4642
|
+
// @ts-expect-error ignore
|
|
4648
4643
|
result = { state: { 0: 'OPEN', 1: 'STOP', 2: 'CLOSE' }[value], running: { 0: true, 1: false, 2: true }[value] };
|
|
4649
4644
|
break;
|
|
4650
4645
|
case dataPoints.moesCoverBacklight:
|
|
4651
|
-
// @ts-ignore
|
|
4652
4646
|
result = { backlight: value ? 'ON' : 'OFF' };
|
|
4653
4647
|
break;
|
|
4654
4648
|
case dataPoints.moesCoverCalibration:
|
|
4655
|
-
// @ts-ignore
|
|
4649
|
+
// @ts-expect-error ignore
|
|
4656
4650
|
result = { calibration: { 0: 'ON', 1: 'OFF' }[value] };
|
|
4657
4651
|
break;
|
|
4658
4652
|
case dataPoints.moesCoverMotorReversal:
|
|
4659
|
-
// @ts-ignore
|
|
4653
|
+
// @ts-expect-error ignore
|
|
4660
4654
|
result = { motor_reversal: { 0: 'OFF', 1: 'ON' }[value] };
|
|
4661
4655
|
break;
|
|
4662
4656
|
default:
|
|
@@ -4679,7 +4673,7 @@ const fromZigbee1 = {
|
|
|
4679
4673
|
return { humidity: value / (['_TZE200_bjawzodf', '_TZE200_zl1kmjqx'].includes(meta.device.manufacturerName) ? 10 : 1) };
|
|
4680
4674
|
case dataPoints.tthBatteryLevel:
|
|
4681
4675
|
return {
|
|
4682
|
-
// @ts-ignore
|
|
4676
|
+
// @ts-expect-error ignore
|
|
4683
4677
|
battery_level: { 0: 'low', 1: 'middle', 2: 'high' }[value],
|
|
4684
4678
|
battery_low: value === 0 ? true : false,
|
|
4685
4679
|
};
|
|
@@ -4709,7 +4703,7 @@ const fromZigbee1 = {
|
|
|
4709
4703
|
result.battery = value;
|
|
4710
4704
|
break;
|
|
4711
4705
|
case dataPoints.nousTempUnitConvert:
|
|
4712
|
-
// @ts-ignore
|
|
4706
|
+
// @ts-expect-error ignore
|
|
4713
4707
|
result.temperature_unit_convert = { 0x00: 'celsius', 0x01: 'fahrenheit' }[value];
|
|
4714
4708
|
break;
|
|
4715
4709
|
case dataPoints.nousMaxTemp:
|
|
@@ -4725,11 +4719,11 @@ const fromZigbee1 = {
|
|
|
4725
4719
|
result.min_humidity = value;
|
|
4726
4720
|
break;
|
|
4727
4721
|
case dataPoints.nousTempAlarm:
|
|
4728
|
-
// @ts-ignore
|
|
4722
|
+
// @ts-expect-error ignore
|
|
4729
4723
|
result.temperature_alarm = { 0x00: 'lower_alarm', 0x01: 'upper_alarm', 0x02: 'canceled' }[value];
|
|
4730
4724
|
break;
|
|
4731
4725
|
case dataPoints.nousHumiAlarm:
|
|
4732
|
-
// @ts-ignore
|
|
4726
|
+
// @ts-expect-error ignore
|
|
4733
4727
|
result.humidity_alarm = { 0x00: 'lower_alarm', 0x01: 'upper_alarm', 0x02: 'canceled' }[value];
|
|
4734
4728
|
break;
|
|
4735
4729
|
case dataPoints.nousTempSensitivity:
|
|
@@ -4876,15 +4870,15 @@ const fromZigbee1 = {
|
|
|
4876
4870
|
case dataPoints.hyLocalTemp: // 0x027F MCU reporting room temperature
|
|
4877
4871
|
return { local_temperature: (value / 10).toFixed(1) };
|
|
4878
4872
|
case dataPoints.hySensor: // Sensor type
|
|
4879
|
-
// @ts-ignore
|
|
4873
|
+
// @ts-expect-error ignore
|
|
4880
4874
|
return { sensor_type: { 0: 'internal', 1: 'external', 2: 'both' }[value] };
|
|
4881
4875
|
case dataPoints.hyPowerOnBehavior: // 0x0475 State after power on
|
|
4882
|
-
// @ts-ignore
|
|
4876
|
+
// @ts-expect-error ignore
|
|
4883
4877
|
return { power_on_behavior: { 0: 'restore', 1: 'off', 2: 'on' }[value] };
|
|
4884
4878
|
case dataPoints.hyWeekFormat: // 0x0476 Week select 0 - 5 days, 1 - 6 days, 2 - 7 days
|
|
4885
4879
|
return { week: thermostatWeekFormat[value] };
|
|
4886
4880
|
case dataPoints.hyMode: // 0x0480 mode
|
|
4887
|
-
// @ts-ignore
|
|
4881
|
+
// @ts-expect-error ignore
|
|
4888
4882
|
return { system_mode: { 0: 'manual', 1: 'auto', 2: 'away' }[value] };
|
|
4889
4883
|
case dataPoints.hyAlarm: // [16] [0]
|
|
4890
4884
|
return { alarm: value > 0 ? true : false };
|
|
@@ -4905,7 +4899,7 @@ const fromZigbee1 = {
|
|
|
4905
4899
|
return { occupancy: value > 0 ? true : false };
|
|
4906
4900
|
case 102:
|
|
4907
4901
|
return {
|
|
4908
|
-
// @ts-ignore
|
|
4902
|
+
// @ts-expect-error ignore
|
|
4909
4903
|
power_type: { 0: 'battery_full', 1: 'battery_high', 2: 'battery_medium', 3: 'battery_low', 4: 'usb' }[value],
|
|
4910
4904
|
battery_low: value === 3,
|
|
4911
4905
|
};
|
|
@@ -4930,7 +4924,7 @@ const fromZigbee1 = {
|
|
|
4930
4924
|
case 112:
|
|
4931
4925
|
return { unknown_112: value ? 'ON' : 'OFF' };
|
|
4932
4926
|
case dataPoints.neoTempHumidityAlarm:
|
|
4933
|
-
// @ts-ignore
|
|
4927
|
+
// @ts-expect-error ignore
|
|
4934
4928
|
return { alarm: { 0: 'over_temperature', 1: 'over_humidity', 2: 'below_min_temperature', 3: 'below_min_humdity', 4: 'off' }[value] };
|
|
4935
4929
|
default: // Unknown code
|
|
4936
4930
|
logger_1.logger.debug(`Unrecognized DP #${dp}: ${JSON.stringify(dpValue)}`, 'zhc:legacy:fz:neo_nas_pd07');
|
|
@@ -4969,7 +4963,7 @@ const fromZigbee1 = {
|
|
|
4969
4963
|
return { humidity_max: value };
|
|
4970
4964
|
case dataPoints.neoPowerType: // 0x0465 [4]
|
|
4971
4965
|
return {
|
|
4972
|
-
// @ts-ignore
|
|
4966
|
+
// @ts-expect-error ignore
|
|
4973
4967
|
power_type: { 0: 'battery_full', 1: 'battery_high', 2: 'battery_medium', 3: 'battery_low', 4: 'usb' }[value],
|
|
4974
4968
|
battery_low: value === 3,
|
|
4975
4969
|
};
|
|
@@ -4978,7 +4972,7 @@ const fromZigbee1 = {
|
|
|
4978
4972
|
case dataPoints.neoUnknown3: // 0x0473 [0]
|
|
4979
4973
|
break;
|
|
4980
4974
|
case dataPoints.neoVolume: // 0x0474 [0]/[1]/[2] Volume 0-max, 2-low
|
|
4981
|
-
// @ts-ignore
|
|
4975
|
+
// @ts-expect-error ignore
|
|
4982
4976
|
return { volume: { 2: 'low', 1: 'medium', 0: 'high' }[value] };
|
|
4983
4977
|
default: // Unknown code
|
|
4984
4978
|
logger_1.logger.debug(`Unrecognized DP #${dp}: ${JSON.stringify(dpValue)}`, 'zhc:legacy:fz:neo_t_h_alarm');
|
|
@@ -5002,7 +4996,7 @@ const fromZigbee1 = {
|
|
|
5002
4996
|
case dataPoints.neoAOMelody: // 0x21 [5] Melody
|
|
5003
4997
|
return { melody: value };
|
|
5004
4998
|
case dataPoints.neoAOVolume: // 0x5 [0]/[1]/[2] Volume 0-low, 2-max
|
|
5005
|
-
// @ts-ignore
|
|
4999
|
+
// @ts-expect-error ignore
|
|
5006
5000
|
return { volume: { 0: 'low', 1: 'medium', 2: 'high' }[value] };
|
|
5007
5001
|
default: // Unknown code
|
|
5008
5002
|
logger_1.logger.debug(`Unrecognized DP #${dp}: ${JSON.stringify(msg.data)}`, 'zhc:legacy:fz:neo_alarm');
|
|
@@ -5018,18 +5012,18 @@ const fromZigbee1 = {
|
|
|
5018
5012
|
const value = getDataValue(dpValue);
|
|
5019
5013
|
switch (dp) {
|
|
5020
5014
|
case dataPoints.fantemPowerSupplyMode:
|
|
5021
|
-
// @ts-ignore
|
|
5015
|
+
// @ts-expect-error ignore
|
|
5022
5016
|
return { power_supply_mode: { 0: 'unknown', 1: 'no_neutral', 2: 'with_neutral' }[value] };
|
|
5023
5017
|
case dataPoints.fantemExtSwitchType:
|
|
5024
|
-
// @ts-ignore
|
|
5018
|
+
// @ts-expect-error ignore
|
|
5025
5019
|
return { switch_type: { 0: 'unknown', 1: 'toggle', 2: 'momentary', 3: 'rotary', 4: 'auto_config' }[value] };
|
|
5026
5020
|
case dataPoints.fantemLoadDetectionMode:
|
|
5027
|
-
// @ts-ignore
|
|
5021
|
+
// @ts-expect-error ignore
|
|
5028
5022
|
return { load_detection_mode: { 0: 'none', 1: 'first_power_on', 2: 'every_power_on' }[value] };
|
|
5029
5023
|
case dataPoints.fantemExtSwitchStatus:
|
|
5030
5024
|
return { switch_status: value };
|
|
5031
5025
|
case dataPoints.fantemControlMode:
|
|
5032
|
-
// @ts-ignore
|
|
5026
|
+
// @ts-expect-error ignore
|
|
5033
5027
|
return { control_mode: { 0: 'ext_switch', 1: 'remote', 2: 'both' }[value] };
|
|
5034
5028
|
case 111:
|
|
5035
5029
|
// Value 0 is received after each device power-on. No idea what it means.
|
|
@@ -5037,10 +5031,10 @@ const fromZigbee1 = {
|
|
|
5037
5031
|
case dataPoints.fantemLoadType:
|
|
5038
5032
|
// Not sure if 0 is 'resistive' and 2 is 'resistive_inductive'.
|
|
5039
5033
|
// If you see 'unknown', pls. check with Tuya gateway and app and update with label shown in Tuya app.
|
|
5040
|
-
// @ts-ignore
|
|
5034
|
+
// @ts-expect-error ignore
|
|
5041
5035
|
return { load_type: { 0: 'unknown', 1: 'resistive_capacitive', 2: 'unknown', 3: 'detecting' }[value] };
|
|
5042
5036
|
case dataPoints.fantemLoadDimmable:
|
|
5043
|
-
// @ts-ignore
|
|
5037
|
+
// @ts-expect-error ignore
|
|
5044
5038
|
return { load_dimmable: { 0: 'unknown', 1: 'dimmable', 2: 'not_dimmable' }[value] };
|
|
5045
5039
|
default:
|
|
5046
5040
|
logger_1.logger.debug(`Unrecognized DP|Value [${dp}|${value}][${JSON.stringify(dpValue)}]`, 'zhc:legacy:fz:zb006x_settings');
|
|
@@ -5459,7 +5453,7 @@ const fromZigbee1 = {
|
|
|
5459
5453
|
}
|
|
5460
5454
|
return result;
|
|
5461
5455
|
}
|
|
5462
|
-
if (thermostatMeta.
|
|
5456
|
+
if (thermostatMeta.weeklyScheduleConversion !== undefined) {
|
|
5463
5457
|
conversion = thermostatMeta.weeklyScheduleConversion;
|
|
5464
5458
|
}
|
|
5465
5459
|
if (conversion == 'saswell') {
|
|
@@ -5471,7 +5465,6 @@ const fromZigbee1 = {
|
|
|
5471
5465
|
return {
|
|
5472
5466
|
// Same as in hvacThermostat:getWeeklyScheduleRsp hvacThermostat:setWeeklySchedule cluster format
|
|
5473
5467
|
weekly_schedule: {
|
|
5474
|
-
// @ts-ignore
|
|
5475
5468
|
days: [constants.thermostatDayOfWeek[dayOfWeek]],
|
|
5476
5469
|
transitions: dataToTransitions(value, maxTransitions, dataOffset),
|
|
5477
5470
|
},
|
|
@@ -5621,7 +5614,6 @@ const fromZigbee2 = {
|
|
|
5621
5614
|
options: [exposes.options.legacy()],
|
|
5622
5615
|
convert: (model, msg, publish, options, meta) => {
|
|
5623
5616
|
if (!utils.isLegacyEnabled(options)) {
|
|
5624
|
-
// @ts-ignore
|
|
5625
5617
|
return fromZigbee1.tuya_thermostat_weekly_schedule_2.convert(model, msg, publish, options, meta);
|
|
5626
5618
|
}
|
|
5627
5619
|
const dpValue = firstDpValue(msg, meta, 'tuya_thermostat_weekly_schedule');
|
|
@@ -5648,7 +5640,7 @@ const fromZigbee2 = {
|
|
|
5648
5640
|
}
|
|
5649
5641
|
return result;
|
|
5650
5642
|
}
|
|
5651
|
-
if (thermostatMeta.
|
|
5643
|
+
if (thermostatMeta.weeklyScheduleConversion !== undefined) {
|
|
5652
5644
|
conversion = thermostatMeta.weeklyScheduleConversion;
|
|
5653
5645
|
}
|
|
5654
5646
|
if (conversion == 'saswell') {
|
|
@@ -5682,7 +5674,6 @@ const toZigbee1 = {
|
|
|
5682
5674
|
SA12IZL_alarm: {
|
|
5683
5675
|
key: ['alarm'],
|
|
5684
5676
|
convertSet: async (entity, key, value, meta) => {
|
|
5685
|
-
// @ts-ignore
|
|
5686
5677
|
await sendDataPointEnum(entity, 20, value ? 0 : 1);
|
|
5687
5678
|
},
|
|
5688
5679
|
},
|
|
@@ -5806,12 +5797,12 @@ const toZigbee2 = {
|
|
|
5806
5797
|
break;
|
|
5807
5798
|
}
|
|
5808
5799
|
case 'top_limit': {
|
|
5809
|
-
// @ts-ignore
|
|
5800
|
+
// @ts-expect-error ignore
|
|
5810
5801
|
await sendDataPointEnum(entity, 104, { SET: 0, CLEAR: 1 }[value]);
|
|
5811
5802
|
break;
|
|
5812
5803
|
}
|
|
5813
5804
|
case 'bottom_limit': {
|
|
5814
|
-
// @ts-ignore
|
|
5805
|
+
// @ts-expect-error ignore
|
|
5815
5806
|
await sendDataPointEnum(entity, 103, { SET: 0, CLEAR: 1 }[value]);
|
|
5816
5807
|
break;
|
|
5817
5808
|
}
|
|
@@ -5826,7 +5817,7 @@ const toZigbee2 = {
|
|
|
5826
5817
|
else {
|
|
5827
5818
|
value = parseInt(value);
|
|
5828
5819
|
}
|
|
5829
|
-
return toZigbee1.tuya_cover_control.convertSet(entity, 'position', value, meta);
|
|
5820
|
+
return await toZigbee1.tuya_cover_control.convertSet(entity, 'position', value, meta);
|
|
5830
5821
|
}
|
|
5831
5822
|
case 'report': {
|
|
5832
5823
|
await sendDataPointBool(entity, 116, 0);
|
|
@@ -6104,11 +6095,11 @@ const toZigbee2 = {
|
|
|
6104
6095
|
'away_preset_days',
|
|
6105
6096
|
]) {
|
|
6106
6097
|
let v = 0;
|
|
6107
|
-
if (value
|
|
6098
|
+
if (value[attrName] !== undefined) {
|
|
6108
6099
|
v = value[attrName];
|
|
6109
6100
|
}
|
|
6110
|
-
else if (meta.state
|
|
6111
|
-
// @ts-expect-error
|
|
6101
|
+
else if (meta.state[attrName] !== undefined) {
|
|
6102
|
+
// @ts-expect-error ignore
|
|
6112
6103
|
v = meta.state[attrName];
|
|
6113
6104
|
}
|
|
6114
6105
|
switch (attrName) {
|
|
@@ -6168,11 +6159,11 @@ const toZigbee2 = {
|
|
|
6168
6159
|
// temperature
|
|
6169
6160
|
const attrName = `${key}_temp_${i}`;
|
|
6170
6161
|
let v = 17;
|
|
6171
|
-
if (value
|
|
6162
|
+
if (value[attrName] !== undefined) {
|
|
6172
6163
|
v = value[attrName];
|
|
6173
6164
|
}
|
|
6174
|
-
else if (meta.state
|
|
6175
|
-
// @ts-expect-error
|
|
6165
|
+
else if (meta.state[attrName] !== undefined) {
|
|
6166
|
+
// @ts-expect-error ignore
|
|
6176
6167
|
v = meta.state[attrName];
|
|
6177
6168
|
}
|
|
6178
6169
|
if (v < 0.5 || v > 29.5)
|
|
@@ -6182,21 +6173,21 @@ const toZigbee2 = {
|
|
|
6182
6173
|
// hour
|
|
6183
6174
|
let attrName = `${key}_hour_${i}`;
|
|
6184
6175
|
let h = 0;
|
|
6185
|
-
if (value
|
|
6176
|
+
if (value[attrName] !== undefined) {
|
|
6186
6177
|
h = value[attrName];
|
|
6187
6178
|
}
|
|
6188
|
-
else if (meta.state
|
|
6189
|
-
// @ts-expect-error
|
|
6179
|
+
else if (meta.state[attrName] !== undefined) {
|
|
6180
|
+
// @ts-expect-error ignore
|
|
6190
6181
|
h = meta.state[attrName];
|
|
6191
6182
|
}
|
|
6192
6183
|
// minute
|
|
6193
6184
|
attrName = `${key}_minute_${i}`;
|
|
6194
6185
|
let m = 0;
|
|
6195
|
-
if (value
|
|
6186
|
+
if (value[attrName] !== undefined) {
|
|
6196
6187
|
m = value[attrName];
|
|
6197
6188
|
}
|
|
6198
|
-
else if (meta.state
|
|
6199
|
-
// @ts-expect-error
|
|
6189
|
+
else if (meta.state[attrName] !== undefined) {
|
|
6190
|
+
// @ts-expect-error ignore
|
|
6200
6191
|
m = meta.state[attrName];
|
|
6201
6192
|
}
|
|
6202
6193
|
let rt = h * 4 + m / 15;
|
|
@@ -6270,8 +6261,8 @@ const toZigbee2 = {
|
|
|
6270
6261
|
matsee_garage_door_opener: {
|
|
6271
6262
|
key: ['trigger'],
|
|
6272
6263
|
convertSet: async (entity, key, value, meta) => {
|
|
6273
|
-
const state = meta.message.
|
|
6274
|
-
// @ts-expect-error
|
|
6264
|
+
const state = meta.message.trigger !== undefined ? meta.message.trigger : true;
|
|
6265
|
+
// @ts-expect-error ignore
|
|
6275
6266
|
await sendDataPointBool(entity, dataPoints.garageDoorTrigger, state);
|
|
6276
6267
|
return { state: { trigger: state } };
|
|
6277
6268
|
},
|
|
@@ -6298,7 +6289,7 @@ const toZigbee2 = {
|
|
|
6298
6289
|
await sendDataPointBool(entity, dataPoints.connecteChildLock, value === 'LOCK');
|
|
6299
6290
|
break;
|
|
6300
6291
|
case 'local_temperature_calibration':
|
|
6301
|
-
// @ts-ignore
|
|
6292
|
+
// @ts-expect-error ignore
|
|
6302
6293
|
if (value < 0)
|
|
6303
6294
|
value = 0xffffffff + value + 1;
|
|
6304
6295
|
await sendDataPointValue(entity, dataPoints.connecteTempCalibration, value);
|
|
@@ -6308,7 +6299,7 @@ const toZigbee2 = {
|
|
|
6308
6299
|
await sendDataPointValue(entity, dataPoints.connecteHysteresis, value);
|
|
6309
6300
|
break;
|
|
6310
6301
|
case 'max_temperature_protection':
|
|
6311
|
-
// @ts-ignore
|
|
6302
|
+
// @ts-expect-error ignore
|
|
6312
6303
|
await sendDataPointValue(entity, dataPoints.connecteMaxProtectTemp, Math.round(value));
|
|
6313
6304
|
break;
|
|
6314
6305
|
case 'current_heating_setpoint':
|
|
@@ -6316,7 +6307,7 @@ const toZigbee2 = {
|
|
|
6316
6307
|
break;
|
|
6317
6308
|
case 'sensor':
|
|
6318
6309
|
await sendDataPointEnum(entity, dataPoints.connecteSensorType,
|
|
6319
|
-
// @ts-ignore
|
|
6310
|
+
// @ts-expect-error ignore
|
|
6320
6311
|
{ internal: 0, external: 1, both: 2 }[value]);
|
|
6321
6312
|
break;
|
|
6322
6313
|
case 'system_mode':
|
|
@@ -6456,7 +6447,7 @@ const toZigbee2 = {
|
|
|
6456
6447
|
}
|
|
6457
6448
|
/* Merge modified value into existing state and send all over in one go */
|
|
6458
6449
|
const newProgram = {
|
|
6459
|
-
// @ts-expect-error
|
|
6450
|
+
// @ts-expect-error ignore
|
|
6460
6451
|
...meta.state.program,
|
|
6461
6452
|
...value,
|
|
6462
6453
|
};
|
|
@@ -6615,12 +6606,12 @@ const toZigbee2 = {
|
|
|
6615
6606
|
switch (key) {
|
|
6616
6607
|
case 'power_on_behavior':
|
|
6617
6608
|
await sendDataPointEnum(entity, dataPoints.moesSwitchPowerOnBehavior,
|
|
6618
|
-
// @ts-expect-error
|
|
6609
|
+
// @ts-expect-error ignore
|
|
6619
6610
|
utils.getKey(moesSwitch.powerOnBehavior, value));
|
|
6620
6611
|
break;
|
|
6621
6612
|
case 'indicate_light':
|
|
6622
6613
|
await sendDataPointEnum(entity, dataPoints.moesSwitchIndicateLight,
|
|
6623
|
-
// @ts-expect-error
|
|
6614
|
+
// @ts-expect-error ignore
|
|
6624
6615
|
utils.getKey(moesSwitch.indicateLight, value));
|
|
6625
6616
|
break;
|
|
6626
6617
|
default:
|
|
@@ -6779,7 +6770,7 @@ const toZigbee2 = {
|
|
|
6779
6770
|
return ret;
|
|
6780
6771
|
}
|
|
6781
6772
|
else {
|
|
6782
|
-
if ((meta.state
|
|
6773
|
+
if ((meta.state[key] !== undefined && meta.state[key] == '') || meta.state[key] === undefined) {
|
|
6783
6774
|
data.push(0x03);
|
|
6784
6775
|
}
|
|
6785
6776
|
else {
|
|
@@ -6835,7 +6826,7 @@ const toZigbee2 = {
|
|
|
6835
6826
|
return ret;
|
|
6836
6827
|
}
|
|
6837
6828
|
else {
|
|
6838
|
-
if ((meta.state
|
|
6829
|
+
if ((meta.state[key] !== undefined && meta.state[key] == '') || meta.state[key] === undefined) {
|
|
6839
6830
|
data.push(0x03);
|
|
6840
6831
|
}
|
|
6841
6832
|
else {
|
|
@@ -6912,15 +6903,14 @@ const toZigbee2 = {
|
|
|
6912
6903
|
key: ['weekly_schedule'],
|
|
6913
6904
|
convertSet: async (entity, key, value, meta) => {
|
|
6914
6905
|
const thermostatMeta = utils.getMetaValue(entity, meta.mapped, 'thermostat');
|
|
6915
|
-
// @ts-expect-error
|
|
6906
|
+
// @ts-expect-error ignore
|
|
6916
6907
|
const maxTransitions = thermostatMeta.weeklyScheduleMaxTransitions;
|
|
6917
|
-
// @ts-expect-error
|
|
6908
|
+
// @ts-expect-error ignore
|
|
6918
6909
|
const supportedModes = thermostatMeta.weeklyScheduleSupportedModes;
|
|
6919
|
-
// @ts-expect-error
|
|
6910
|
+
// @ts-expect-error ignore
|
|
6920
6911
|
const firstDayDpId = thermostatMeta.weeklyScheduleFirstDayDpId;
|
|
6921
6912
|
let conversion = 'generic';
|
|
6922
|
-
if (thermostatMeta.
|
|
6923
|
-
// @ts-expect-error
|
|
6913
|
+
if (utils.isObject(thermostatMeta) && thermostatMeta.weeklyScheduleConversion !== undefined) {
|
|
6924
6914
|
conversion = thermostatMeta.weeklyScheduleConversion;
|
|
6925
6915
|
}
|
|
6926
6916
|
function transitionToData(transition) {
|
|
@@ -7018,7 +7008,7 @@ const toZigbee2 = {
|
|
|
7018
7008
|
convertSet: async (entity, key, value, meta) => {
|
|
7019
7009
|
const modeId = utils.getKey(utils.getMetaValue(entity, meta.mapped, 'tuyaThermostatSystemMode'), value, null, Number);
|
|
7020
7010
|
if (modeId !== null) {
|
|
7021
|
-
// @ts-expect-error
|
|
7011
|
+
// @ts-expect-error ignore
|
|
7022
7012
|
await sendDataPointEnum(entity, dataPoints.mode, parseInt(modeId));
|
|
7023
7013
|
}
|
|
7024
7014
|
else {
|
|
@@ -7031,7 +7021,7 @@ const toZigbee2 = {
|
|
|
7031
7021
|
convertSet: async (entity, key, value, meta) => {
|
|
7032
7022
|
const presetId = utils.getKey(utils.getMetaValue(entity, meta.mapped, 'tuyaThermostatPreset'), value, null, Number);
|
|
7033
7023
|
if (presetId !== null) {
|
|
7034
|
-
// @ts-expect-error
|
|
7024
|
+
// @ts-expect-error ignore
|
|
7035
7025
|
await sendDataPointEnum(entity, dataPoints.mode, parseInt(presetId));
|
|
7036
7026
|
}
|
|
7037
7027
|
else {
|
|
@@ -7043,10 +7033,10 @@ const toZigbee2 = {
|
|
|
7043
7033
|
key: ['away_mode'],
|
|
7044
7034
|
convertSet: async (entity, key, value, meta) => {
|
|
7045
7035
|
// HA has special behavior for the away mode
|
|
7046
|
-
// @ts-expect-error
|
|
7036
|
+
// @ts-expect-error ignore
|
|
7047
7037
|
const awayPresetId = utils.getKey(utils.getMetaValue(entity, meta.mapped, 'tuyaThermostatPreset'), 'away', null, Number);
|
|
7048
7038
|
const schedulePresetId = utils.getKey(utils.getMetaValue(entity, meta.mapped, 'tuyaThermostatPreset'), 'schedule', null,
|
|
7049
|
-
// @ts-expect-error
|
|
7039
|
+
// @ts-expect-error ignore
|
|
7050
7040
|
Number);
|
|
7051
7041
|
if (awayPresetId !== null) {
|
|
7052
7042
|
if (value == 'ON') {
|
|
@@ -7067,7 +7057,7 @@ const toZigbee2 = {
|
|
|
7067
7057
|
convertSet: async (entity, key, value, meta) => {
|
|
7068
7058
|
const modeId = utils.getKey(fanModes, value, null, Number);
|
|
7069
7059
|
if (modeId !== null) {
|
|
7070
|
-
// @ts-expect-error
|
|
7060
|
+
// @ts-expect-error ignore
|
|
7071
7061
|
await sendDataPointEnum(entity, dataPoints.fanMode, parseInt(modeId));
|
|
7072
7062
|
}
|
|
7073
7063
|
else {
|
|
@@ -7080,7 +7070,7 @@ const toZigbee2 = {
|
|
|
7080
7070
|
convertSet: async (entity, key, value, meta) => {
|
|
7081
7071
|
const modeId = utils.getKey(fanModes, value, null, Number);
|
|
7082
7072
|
if (modeId !== null) {
|
|
7083
|
-
// @ts-expect-error
|
|
7073
|
+
// @ts-expect-error ignore
|
|
7084
7074
|
await sendDataPointEnum(entity, dataPoints.bacFanMode, parseInt(modeId));
|
|
7085
7075
|
}
|
|
7086
7076
|
else {
|
|
@@ -7139,7 +7129,7 @@ const toZigbee2 = {
|
|
|
7139
7129
|
convertSet: async (entity, key, value, meta) => {
|
|
7140
7130
|
const modeId = utils.getKey(thermostatForceMode, value, null, Number);
|
|
7141
7131
|
if (modeId !== null) {
|
|
7142
|
-
// @ts-expect-error
|
|
7132
|
+
// @ts-expect-error ignore
|
|
7143
7133
|
await sendDataPointEnum(entity, dataPoints.forceMode, parseInt(modeId));
|
|
7144
7134
|
}
|
|
7145
7135
|
else {
|
|
@@ -7152,7 +7142,7 @@ const toZigbee2 = {
|
|
|
7152
7142
|
convertSet: async (entity, key, value, meta) => {
|
|
7153
7143
|
const modeId = utils.getKey(utils.getMetaValue(entity, meta.mapped, 'tuyaThermostatSystemMode'), value, null, Number);
|
|
7154
7144
|
if (modeId !== null) {
|
|
7155
|
-
// @ts-expect-error
|
|
7145
|
+
// @ts-expect-error ignore
|
|
7156
7146
|
await sendDataPointEnum(entity, dataPoints.forceMode, parseInt(modeId));
|
|
7157
7147
|
}
|
|
7158
7148
|
else {
|
|
@@ -7311,7 +7301,7 @@ const toZigbee2 = {
|
|
|
7311
7301
|
break;
|
|
7312
7302
|
case 'volume':
|
|
7313
7303
|
await sendDataPointEnum(entity, dataPoints.neoVolume,
|
|
7314
|
-
// @ts-ignore
|
|
7304
|
+
// @ts-expect-error ignore
|
|
7315
7305
|
{ low: 2, medium: 1, high: 0 }[value]);
|
|
7316
7306
|
break;
|
|
7317
7307
|
case 'duration':
|
|
@@ -7352,7 +7342,7 @@ const toZigbee2 = {
|
|
|
7352
7342
|
break;
|
|
7353
7343
|
case 'volume':
|
|
7354
7344
|
await sendDataPointEnum(entity, dataPoints.neoAOVolume,
|
|
7355
|
-
// @ts-ignore
|
|
7345
|
+
// @ts-expect-error ignore
|
|
7356
7346
|
{ low: 0, medium: 1, high: 2 }[value]);
|
|
7357
7347
|
break;
|
|
7358
7348
|
case 'duration':
|
|
@@ -7524,9 +7514,9 @@ const toZigbee2 = {
|
|
|
7524
7514
|
}
|
|
7525
7515
|
data = data.concat(convertStringToHexArray(speedString));
|
|
7526
7516
|
let colors = value.colors;
|
|
7527
|
-
// @ts-expect-error
|
|
7517
|
+
// @ts-expect-error ignore
|
|
7528
7518
|
if (!colors && meta.state && meta.state.effect && meta.state.effect.colors) {
|
|
7529
|
-
// @ts-expect-error
|
|
7519
|
+
// @ts-expect-error ignore
|
|
7530
7520
|
colors = meta.state.effect.colors;
|
|
7531
7521
|
}
|
|
7532
7522
|
if (colors) {
|
|
@@ -7620,7 +7610,7 @@ const toZigbee2 = {
|
|
|
7620
7610
|
return hsb;
|
|
7621
7611
|
};
|
|
7622
7612
|
let hsb = {};
|
|
7623
|
-
if (value.
|
|
7613
|
+
if (value.hsb !== undefined) {
|
|
7624
7614
|
const split = value.hsb.split(',').map((i) => parseInt(i));
|
|
7625
7615
|
hsb = fillInHSB(split[0], split[1], split[2], meta.state);
|
|
7626
7616
|
}
|
|
@@ -7739,12 +7729,12 @@ const toZigbee2 = {
|
|
|
7739
7729
|
break;
|
|
7740
7730
|
case 'sensor_type':
|
|
7741
7731
|
await sendDataPointEnum(entity, dataPoints.hySensor,
|
|
7742
|
-
// @ts-ignore
|
|
7732
|
+
// @ts-expect-error ignore
|
|
7743
7733
|
{ internal: 0, external: 1, both: 2 }[value]);
|
|
7744
7734
|
break;
|
|
7745
7735
|
case 'power_on_behavior':
|
|
7746
7736
|
await sendDataPointEnum(entity, dataPoints.hyPowerOnBehavior,
|
|
7747
|
-
// @ts-ignore
|
|
7737
|
+
// @ts-expect-error ignore
|
|
7748
7738
|
{ restore: 0, off: 1, on: 2 }[value]);
|
|
7749
7739
|
break;
|
|
7750
7740
|
case 'week':
|
|
@@ -7752,7 +7742,7 @@ const toZigbee2 = {
|
|
|
7752
7742
|
break;
|
|
7753
7743
|
case 'system_mode':
|
|
7754
7744
|
await sendDataPointEnum(entity, dataPoints.hyMode,
|
|
7755
|
-
// @ts-ignore
|
|
7745
|
+
// @ts-expect-error ignore
|
|
7756
7746
|
{ manual: 0, auto: 1, away: 2 }[value]);
|
|
7757
7747
|
break;
|
|
7758
7748
|
default: // Unknown key
|
|
@@ -7803,11 +7793,11 @@ const toZigbee2 = {
|
|
|
7803
7793
|
await sendDataPointBool(entity, dataPoints.fantemReportingEnable, value, 'sendData');
|
|
7804
7794
|
break;
|
|
7805
7795
|
case 'sensitivity':
|
|
7806
|
-
// @ts-ignore
|
|
7796
|
+
// @ts-expect-error ignore
|
|
7807
7797
|
await entity.write('ssIasZone', { currentZoneSensitivityLevel: { low: 0, medium: 1, high: 2 }[value] });
|
|
7808
7798
|
break;
|
|
7809
7799
|
case 'keep_time':
|
|
7810
|
-
// @ts-ignore
|
|
7800
|
+
// @ts-expect-error ignore
|
|
7811
7801
|
await entity.write('ssIasZone', { 61441: { value: { '0': 0, '30': 1, '60': 2, '120': 3, '240': 4, '480': 5 }[value], type: 0x20 } });
|
|
7812
7802
|
break;
|
|
7813
7803
|
default: // Unknown key
|
|
@@ -7821,16 +7811,16 @@ const toZigbee2 = {
|
|
|
7821
7811
|
switch (key) {
|
|
7822
7812
|
case 'switch_type':
|
|
7823
7813
|
await sendDataPointEnum(entity, dataPoints.fantemExtSwitchType,
|
|
7824
|
-
// @ts-expect-error
|
|
7814
|
+
// @ts-expect-error ignore
|
|
7825
7815
|
{ unknown: 0, toggle: 1, momentary: 2, rotary: 3, auto_config: 4 }[value], 'sendData');
|
|
7826
7816
|
break;
|
|
7827
7817
|
case 'load_detection_mode':
|
|
7828
7818
|
await sendDataPointEnum(entity, dataPoints.fantemLoadDetectionMode,
|
|
7829
|
-
// @ts-expect-error
|
|
7819
|
+
// @ts-expect-error ignore
|
|
7830
7820
|
{ none: 0, first_power_on: 1, every_power_on: 2 }[value], 'sendData');
|
|
7831
7821
|
break;
|
|
7832
7822
|
case 'control_mode':
|
|
7833
|
-
// @ts-expect-error
|
|
7823
|
+
// @ts-expect-error ignore
|
|
7834
7824
|
await sendDataPointEnum(entity, dataPoints.fantemControlMode, { ext_switch: 0, remote: 1, both: 2 }[value], 'sendData');
|
|
7835
7825
|
break;
|
|
7836
7826
|
default: // Unknown key
|
|
@@ -7849,7 +7839,7 @@ const toZigbee2 = {
|
|
|
7849
7839
|
await sendDataPointEnum(entity, dataPoints.msVSensitivity, utils.getKey(msLookups.VSensitivity, value));
|
|
7850
7840
|
break;
|
|
7851
7841
|
case 'led_status':
|
|
7852
|
-
// @ts-ignore
|
|
7842
|
+
// @ts-expect-error ignore
|
|
7853
7843
|
await sendDataPointEnum(entity, dataPoints.msLedStatus, { on: 0, off: 1 }[value.toLowerCase()]);
|
|
7854
7844
|
break;
|
|
7855
7845
|
case 'vacancy_delay':
|
|
@@ -8027,7 +8017,7 @@ const toZigbee2 = {
|
|
|
8027
8017
|
cool: 250,
|
|
8028
8018
|
coolest: colorTempMin,
|
|
8029
8019
|
};
|
|
8030
|
-
// @ts-ignore
|
|
8020
|
+
// @ts-expect-error ignore
|
|
8031
8021
|
if (typeof value === 'string' && isNaN(value)) {
|
|
8032
8022
|
const presetName = value.toLowerCase();
|
|
8033
8023
|
if (presetName in preset) {
|
|
@@ -8198,11 +8188,11 @@ const toZigbee2 = {
|
|
|
8198
8188
|
convertSet: async (entity, key, value, meta) => {
|
|
8199
8189
|
switch (key) {
|
|
8200
8190
|
case 'sensitivity':
|
|
8201
|
-
// @ts-ignore
|
|
8191
|
+
// @ts-expect-error ignore
|
|
8202
8192
|
await sendDataPointEnum(entity, dataPoints.lmsSensitivity, { low: 0, medium: 1, high: 2 }[value]);
|
|
8203
8193
|
break;
|
|
8204
8194
|
case 'keep_time':
|
|
8205
|
-
// @ts-ignore
|
|
8195
|
+
// @ts-expect-error ignore
|
|
8206
8196
|
await sendDataPointEnum(entity, dataPoints.lmsKeepTime, { '10': 0, '30': 1, '60': 2, '120': 3 }[value]);
|
|
8207
8197
|
break;
|
|
8208
8198
|
default: // Unknown key
|
|
@@ -8236,7 +8226,7 @@ const toZigbee2 = {
|
|
|
8236
8226
|
}
|
|
8237
8227
|
break;
|
|
8238
8228
|
case 'state': {
|
|
8239
|
-
// @ts-ignore
|
|
8229
|
+
// @ts-expect-error ignore
|
|
8240
8230
|
const state = { OPEN: 0, STOP: 1, CLOSE: 2 }[value.toUpperCase()];
|
|
8241
8231
|
await sendDataPointEnum(entity, dataPoints.state, state);
|
|
8242
8232
|
break;
|