zigbee-herdsman-converters 20.12.1 → 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 +44 -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 +3 -3
- 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/orvibo.d.ts.map +1 -1
- package/devices/orvibo.js +9 -0
- package/devices/orvibo.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 +185 -13
- 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 +48 -41
- package/devices/tuya.js.map +1 -1
- package/devices/ubisys.d.ts.map +1 -1
- package/devices/ubisys.js +37 -28
- 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/converters/toZigbee.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toZigbee.d.ts","sourceRoot":"","sources":["../src/converters/toZigbee.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAK1C,OAAO,
|
|
1
|
+
{"version":3,"file":"toZigbee.d.ts","sourceRoot":"","sources":["../src/converters/toZigbee.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAK1C,OAAO,EAAW,WAAW,EAAE,EAAE,EAAC,MAAM,cAAc,CAAC;AA45IvD,QAAA,MAAM,UAAU;;QAlKR;;;WAGG;;;;mBApnG8B,WAAW;;;;;;;;;mBAAX,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAX,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAX,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAX,WAAW;;;;;;;;;;;;;;;QA4C5C;;;;;;;;;;;WAWG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mKAywEoC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAm9BS,CAAC;AAEpE,eAAe,UAAU,CAAC"}
|
package/converters/toZigbee.js
CHANGED
|
@@ -52,9 +52,9 @@ const converters1 = {
|
|
|
52
52
|
convertSet: async (entity, key, value, meta) => {
|
|
53
53
|
const state = utils.isString(meta.message.state) ? meta.message.state.toLowerCase() : null;
|
|
54
54
|
utils.validateValue(state, ['toggle', 'off', 'on']);
|
|
55
|
-
if (state === 'on' && (meta.message.
|
|
56
|
-
const onTime = meta.message.
|
|
57
|
-
const offWaitTime = meta.message.
|
|
55
|
+
if (state === 'on' && (meta.message.on_time !== undefined || meta.message.off_wait_time !== undefined)) {
|
|
56
|
+
const onTime = meta.message.on_time !== undefined ? meta.message.on_time : 0;
|
|
57
|
+
const offWaitTime = meta.message.off_wait_time !== undefined ? meta.message.off_wait_time : 0;
|
|
58
58
|
if (typeof onTime !== 'number') {
|
|
59
59
|
throw Error('The on_time value must be a number!');
|
|
60
60
|
}
|
|
@@ -122,7 +122,7 @@ const converters1 = {
|
|
|
122
122
|
else {
|
|
123
123
|
zclData.hue = utils.mapNumberRange(hsvCorrected.hue, 0, 360, 0, 254);
|
|
124
124
|
}
|
|
125
|
-
// @ts-expect-error
|
|
125
|
+
// @ts-expect-error ignore
|
|
126
126
|
zclData.direction = value.direction || 0;
|
|
127
127
|
}
|
|
128
128
|
if (hsv.saturation != null) {
|
|
@@ -130,7 +130,7 @@ const converters1 = {
|
|
|
130
130
|
}
|
|
131
131
|
if (hsv.value !== null) {
|
|
132
132
|
// fallthrough to genLevelCtrl
|
|
133
|
-
// @ts-expect-error
|
|
133
|
+
// @ts-expect-error ignore
|
|
134
134
|
value.brightness = utils.mapNumberRange(hsvCorrected.value, 0, 100, 0, 254);
|
|
135
135
|
}
|
|
136
136
|
if (hsv.hue !== null && hsv.saturation !== null) {
|
|
@@ -153,10 +153,8 @@ const converters1 = {
|
|
|
153
153
|
command = 'moveToSaturation';
|
|
154
154
|
}
|
|
155
155
|
}
|
|
156
|
-
if (value.
|
|
157
|
-
await entity.command('genLevelCtrl', 'moveToLevelWithOnOff',
|
|
158
|
-
// @ts-expect-error
|
|
159
|
-
{ level: Number(value.brightness), transtime: utils.getTransition(entity, key, meta).time }, utils.getOptions(meta.mapped, entity));
|
|
156
|
+
if (utils.isObject(value) && value.brightness !== undefined) {
|
|
157
|
+
await entity.command('genLevelCtrl', 'moveToLevelWithOnOff', { level: Number(value.brightness), transtime: utils.getTransition(entity, key, meta).time }, utils.getOptions(meta.mapped, entity));
|
|
160
158
|
}
|
|
161
159
|
await entity.command('lightingColorCtrl', command, zclData, utils.getOptions(meta.mapped, entity));
|
|
162
160
|
return { state: libColor.syncColorState(newState, meta.state, entity, meta.options), readAfterWriteTime: zclData.transtime * 100 };
|
|
@@ -202,9 +200,9 @@ const converters2 = {
|
|
|
202
200
|
key: ['read'],
|
|
203
201
|
convertSet: async (entity, key, value, meta) => {
|
|
204
202
|
utils.assertObject(value, key);
|
|
205
|
-
const result = await entity.read(value.cluster, value.attributes, value.
|
|
203
|
+
const result = await entity.read(value.cluster, value.attributes, value.options !== undefined ? value.options : {});
|
|
206
204
|
logger_1.logger.info(`Read result of '${value.cluster}': ${JSON.stringify(result)}`, NS);
|
|
207
|
-
if (value.
|
|
205
|
+
if (value.state_property !== undefined) {
|
|
208
206
|
return { state: { [value.state_property]: result } };
|
|
209
207
|
}
|
|
210
208
|
},
|
|
@@ -214,7 +212,7 @@ const converters2 = {
|
|
|
214
212
|
convertSet: async (entity, key, value, meta) => {
|
|
215
213
|
utils.assertObject(value, key);
|
|
216
214
|
const options = utils.getOptions(meta.mapped, entity);
|
|
217
|
-
if (value.
|
|
215
|
+
if (value.options !== undefined) {
|
|
218
216
|
Object.assign(options, value.options);
|
|
219
217
|
}
|
|
220
218
|
await entity.write(value.cluster, value.payload, options);
|
|
@@ -226,7 +224,7 @@ const converters2 = {
|
|
|
226
224
|
convertSet: async (entity, key, value, meta) => {
|
|
227
225
|
utils.assertObject(value, key);
|
|
228
226
|
const options = utils.getOptions(meta.mapped, entity);
|
|
229
|
-
await entity.command(value.cluster, value.command, value.
|
|
227
|
+
await entity.command(value.cluster, value.command, value.payload !== undefined ? value.payload : {}, options);
|
|
230
228
|
logger_1.logger.info(`Invoked '${value.cluster}.${value.command}' with payload '${JSON.stringify(value.payload)}'`, NS);
|
|
231
229
|
},
|
|
232
230
|
},
|
|
@@ -249,9 +247,9 @@ const converters2 = {
|
|
|
249
247
|
key: ['zclcommand'],
|
|
250
248
|
convertSet: async (entity, key, value, meta) => {
|
|
251
249
|
utils.assertObject(value, key);
|
|
252
|
-
const payload = value.
|
|
250
|
+
const payload = value.payload !== undefined ? value.payload : {};
|
|
253
251
|
utils.assertEndpoint(entity);
|
|
254
|
-
await entity.zclCommand(value.cluster, value.command, payload, value.
|
|
252
|
+
await entity.zclCommand(value.cluster, value.command, payload, value.options !== undefined ? value.options : {});
|
|
255
253
|
logger_1.logger.info(`Invoked ZCL command ${value.cluster}.${value.command} with payload '${JSON.stringify(payload)}'`, NS);
|
|
256
254
|
},
|
|
257
255
|
},
|
|
@@ -262,7 +260,7 @@ const converters2 = {
|
|
|
262
260
|
utils.assertObject(value, key);
|
|
263
261
|
if (Array.isArray(meta.mapped))
|
|
264
262
|
throw new Error(`Not supported for groups`);
|
|
265
|
-
const isNotification = value.
|
|
263
|
+
const isNotification = value.transaction !== undefined;
|
|
266
264
|
const modeSrc = isNotification ? constants.armNotification : constants.armMode;
|
|
267
265
|
const mode = utils.getKey(modeSrc, value.mode, undefined, Number);
|
|
268
266
|
if (mode === undefined) {
|
|
@@ -319,7 +317,7 @@ const converters2 = {
|
|
|
319
317
|
key: ['color_options'],
|
|
320
318
|
convertSet: async (entity, key, value, meta) => {
|
|
321
319
|
utils.assertObject(value, key);
|
|
322
|
-
const options = value.
|
|
320
|
+
const options = value.execute_if_off !== undefined && value.execute_if_off ? 1 : 0;
|
|
323
321
|
await entity.write('lightingColorCtrl', { options }, utils.getOptions(meta.mapped, entity));
|
|
324
322
|
return { state: { color_options: value } };
|
|
325
323
|
},
|
|
@@ -366,7 +364,7 @@ const converters2 = {
|
|
|
366
364
|
utils.assertObject(value, key);
|
|
367
365
|
const user = value.user;
|
|
368
366
|
const userType = value.user_type || 'unrestricted';
|
|
369
|
-
const userEnabled = value.
|
|
367
|
+
const userEnabled = value.user_enabled !== undefined ? value.user_enabled : true;
|
|
370
368
|
const pinCode = value.pin_code;
|
|
371
369
|
if (isNaN(user))
|
|
372
370
|
throw new Error('user must be numbers');
|
|
@@ -390,7 +388,7 @@ const converters2 = {
|
|
|
390
388
|
}
|
|
391
389
|
},
|
|
392
390
|
convertGet: async (entity, key, meta) => {
|
|
393
|
-
// @ts-expect-error
|
|
391
|
+
// @ts-expect-error ignore
|
|
394
392
|
const user = meta && meta.message && meta.message.pin_code ? meta.message.pin_code.user : undefined;
|
|
395
393
|
if (user === undefined) {
|
|
396
394
|
const max = utils.getMetaValue(entity, meta.mapped, 'pinCodeCount');
|
|
@@ -434,7 +432,7 @@ const converters2 = {
|
|
|
434
432
|
}, utils.getOptions(meta.mapped, entity));
|
|
435
433
|
},
|
|
436
434
|
convertGet: async (entity, key, meta) => {
|
|
437
|
-
// @ts-expect-error
|
|
435
|
+
// @ts-expect-error ignore
|
|
438
436
|
const user = meta && meta.message && meta.message.user_status ? meta.message.user_status.user : undefined;
|
|
439
437
|
const pinCodeCount = utils.getMetaValue(entity, meta.mapped, 'pinCodeCount');
|
|
440
438
|
if (user === undefined) {
|
|
@@ -489,18 +487,18 @@ const converters2 = {
|
|
|
489
487
|
const level = { low: 0, medium: 1, high: 2, very_high: 3 };
|
|
490
488
|
const strobeLevel = { low: 0, medium: 1, high: 2, very_high: 3 };
|
|
491
489
|
const values = {
|
|
492
|
-
// @ts-expect-error
|
|
490
|
+
// @ts-expect-error ignore
|
|
493
491
|
mode: value.mode || 'emergency',
|
|
494
|
-
// @ts-expect-error
|
|
492
|
+
// @ts-expect-error ignore
|
|
495
493
|
level: value.level || 'medium',
|
|
496
|
-
// @ts-expect-error
|
|
497
|
-
strobe: value.
|
|
498
|
-
// @ts-expect-error
|
|
499
|
-
duration: value.
|
|
500
|
-
// @ts-expect-error
|
|
501
|
-
strobeDutyCycle: value.
|
|
502
|
-
// @ts-expect-error
|
|
503
|
-
strobeLevel: value.
|
|
494
|
+
// @ts-expect-error ignore
|
|
495
|
+
strobe: value.strobe !== undefined ? value.strobe : true,
|
|
496
|
+
// @ts-expect-error ignore
|
|
497
|
+
duration: value.duration !== undefined ? value.duration : 10,
|
|
498
|
+
// @ts-expect-error ignore
|
|
499
|
+
strobeDutyCycle: value.strobe_duty_cycle !== undefined ? value.strobe_duty_cycle * 10 : 0,
|
|
500
|
+
// @ts-expect-error ignore
|
|
501
|
+
strobeLevel: value.strobe_level !== undefined ? utils.getFromLookup(value.strobe_level, strobeLevel) : 1,
|
|
504
502
|
};
|
|
505
503
|
let info;
|
|
506
504
|
// https://github.com/Koenkk/zigbee2mqtt/issues/8310 some devices require the info to be reversed.
|
|
@@ -551,7 +549,7 @@ const converters2 = {
|
|
|
551
549
|
const values = {
|
|
552
550
|
state: value.state,
|
|
553
551
|
level: value.level || 'very_high',
|
|
554
|
-
strobe: value.
|
|
552
|
+
strobe: value.strobe !== undefined ? value.strobe : false,
|
|
555
553
|
};
|
|
556
554
|
const info = utils.getFromLookup(values.state, state) + ((values.strobe ? 1 : 0) << 4) + (utils.getFromLookup(values.level, level) << 6);
|
|
557
555
|
await entity.command('ssIasWd', 'squawk', { squawkinfo: info }, utils.getOptions(meta.mapped, entity));
|
|
@@ -632,13 +630,13 @@ const converters2 = {
|
|
|
632
630
|
try {
|
|
633
631
|
value = JSON.parse(value);
|
|
634
632
|
}
|
|
635
|
-
catch
|
|
633
|
+
catch {
|
|
636
634
|
throw new Error('Payload is not valid JSON');
|
|
637
635
|
}
|
|
638
636
|
}
|
|
639
637
|
utils.assertObject(value, key);
|
|
640
638
|
// onOffTransitionTime - range 0x0000 to 0xffff - optional
|
|
641
|
-
if (value.
|
|
639
|
+
if (value.on_off_transition_time !== undefined) {
|
|
642
640
|
let onOffTransitionTimeValue = Number(value.on_off_transition_time);
|
|
643
641
|
if (onOffTransitionTimeValue > 65535)
|
|
644
642
|
onOffTransitionTimeValue = 65535;
|
|
@@ -649,7 +647,7 @@ const converters2 = {
|
|
|
649
647
|
}
|
|
650
648
|
// onTransitionTime - range 0x0000 to 0xffff - optional
|
|
651
649
|
// 0xffff = use onOffTransitionTime
|
|
652
|
-
if (value.
|
|
650
|
+
if (value.on_transition_time !== undefined) {
|
|
653
651
|
let onTransitionTimeValue = value.on_transition_time;
|
|
654
652
|
if (typeof onTransitionTimeValue === 'string' && onTransitionTimeValue.toLowerCase() == 'disabled') {
|
|
655
653
|
onTransitionTimeValue = 65535;
|
|
@@ -670,7 +668,7 @@ const converters2 = {
|
|
|
670
668
|
}
|
|
671
669
|
// offTransitionTime - range 0x0000 to 0xffff - optional
|
|
672
670
|
// 0xffff = use onOffTransitionTime
|
|
673
|
-
if (value.
|
|
671
|
+
if (value.off_transition_time !== undefined) {
|
|
674
672
|
let offTransitionTimeValue = value.off_transition_time;
|
|
675
673
|
if (typeof offTransitionTimeValue === 'string' && offTransitionTimeValue.toLowerCase() == 'disabled') {
|
|
676
674
|
offTransitionTimeValue = 65535;
|
|
@@ -692,7 +690,7 @@ const converters2 = {
|
|
|
692
690
|
// startUpCurrentLevel - range 0x00 to 0xff - optional
|
|
693
691
|
// 0x00 = return to minimum supported level
|
|
694
692
|
// 0xff = return to previous previous
|
|
695
|
-
if (value.
|
|
693
|
+
if (value.current_level_startup !== undefined) {
|
|
696
694
|
let startUpCurrentLevelValue = value.current_level_startup;
|
|
697
695
|
if (typeof startUpCurrentLevelValue === 'string' && startUpCurrentLevelValue.toLowerCase() == 'previous') {
|
|
698
696
|
startUpCurrentLevelValue = 255;
|
|
@@ -719,7 +717,7 @@ const converters2 = {
|
|
|
719
717
|
}
|
|
720
718
|
// onLevel - range 0x00 to 0xff - optional
|
|
721
719
|
// Any value outside of MinLevel to MaxLevel, including 0xff and 0x00, is interpreted as "previous".
|
|
722
|
-
if (value.
|
|
720
|
+
if (value.on_level !== undefined) {
|
|
723
721
|
let onLevel = value.on_level;
|
|
724
722
|
if (typeof onLevel === 'string' && onLevel.toLowerCase() == 'previous') {
|
|
725
723
|
onLevel = 255;
|
|
@@ -739,7 +737,7 @@ const converters2 = {
|
|
|
739
737
|
// when 1, CurrentLevel can be changed while the device is off.
|
|
740
738
|
// bit 1: CoupleColorTempToLevel - when 1, changes to level also change color temperature.
|
|
741
739
|
// (What this means is not defined, but it's most likely to be "dim to warm".)
|
|
742
|
-
if (value.
|
|
740
|
+
if (value.execute_if_off !== undefined) {
|
|
743
741
|
const executeIfOffValue = !!value.execute_if_off;
|
|
744
742
|
await entity.write('genLevelCtrl', { options: executeIfOffValue ? 1 : 0 }, utils.getOptions(meta.mapped, entity));
|
|
745
743
|
Object.assign(state, { execute_if_off: executeIfOffValue });
|
|
@@ -753,7 +751,7 @@ const converters2 = {
|
|
|
753
751
|
try {
|
|
754
752
|
await entity.read('genLevelCtrl', [attribute]);
|
|
755
753
|
}
|
|
756
|
-
catch
|
|
754
|
+
catch {
|
|
757
755
|
// continue regardless of error, all these are optional in ZCL
|
|
758
756
|
}
|
|
759
757
|
}
|
|
@@ -800,10 +798,10 @@ const converters2 = {
|
|
|
800
798
|
'lamp_burn_hours_trip_point',
|
|
801
799
|
]) {
|
|
802
800
|
try {
|
|
803
|
-
// @ts-expect-error
|
|
801
|
+
// @ts-expect-error ignore
|
|
804
802
|
result = { ...result, ...(await entity.read('lightingBallastCfg', [utils.toCamelCase(attrName)])) };
|
|
805
803
|
}
|
|
806
|
-
catch
|
|
804
|
+
catch {
|
|
807
805
|
// continue regardless of error
|
|
808
806
|
}
|
|
809
807
|
}
|
|
@@ -824,7 +822,7 @@ const converters2 = {
|
|
|
824
822
|
const transition = utils.getTransition(entity, key, meta).time;
|
|
825
823
|
const payload = { stepmode: mode, stepsize: Math.abs(value), transtime: transition };
|
|
826
824
|
await entity.command('genLevelCtrl', command, payload, utils.getOptions(meta.mapped, entity));
|
|
827
|
-
if (meta.state.
|
|
825
|
+
if (meta.state.brightness !== undefined) {
|
|
828
826
|
utils.assertNumber(meta.state.brightness);
|
|
829
827
|
let brightness = onOff || meta.state.state === 'ON' ? meta.state.brightness + value : meta.state.brightness;
|
|
830
828
|
if (value === 0) {
|
|
@@ -920,7 +918,7 @@ const converters2 = {
|
|
|
920
918
|
const stop = (val) => ['stop', 'release', '0'].some((el) => val.includes(el));
|
|
921
919
|
const up = (val) => ['1', 'up'].some((el) => val.includes(el));
|
|
922
920
|
const arr = [value.toString()];
|
|
923
|
-
const moverate = meta.message.
|
|
921
|
+
const moverate = meta.message.rate !== undefined ? Number(meta.message.rate) : 55;
|
|
924
922
|
payload.rate = moverate;
|
|
925
923
|
if (arr.filter(stop).length) {
|
|
926
924
|
payload.movemode = 0;
|
|
@@ -1014,12 +1012,12 @@ const converters2 = {
|
|
|
1014
1012
|
const { message } = meta;
|
|
1015
1013
|
const transition = utils.getTransition(entity, 'brightness', meta);
|
|
1016
1014
|
const turnsOffAtBrightness1 = utils.getMetaValue(entity, meta.mapped, 'turnsOffAtBrightness1', 'allEqual', false);
|
|
1017
|
-
let state = message.
|
|
1015
|
+
let state = message.state !== undefined ? (typeof message.state === 'string' ? message.state.toLowerCase() : null) : undefined;
|
|
1018
1016
|
let brightness = undefined;
|
|
1019
|
-
if (message.
|
|
1017
|
+
if (message.brightness !== undefined) {
|
|
1020
1018
|
brightness = Number(message.brightness);
|
|
1021
1019
|
}
|
|
1022
|
-
else if (message.
|
|
1020
|
+
else if (message.brightness_percent !== undefined) {
|
|
1023
1021
|
brightness = utils.mapNumberRange(Number(message.brightness_percent), 0, 100, 0, 255);
|
|
1024
1022
|
}
|
|
1025
1023
|
if (brightness === 255) {
|
|
@@ -1055,7 +1053,7 @@ const converters2 = {
|
|
|
1055
1053
|
logger_1.logger.debug(`Supressing OFF transition since entity has noOffTransition=true`, NS);
|
|
1056
1054
|
brightness = undefined;
|
|
1057
1055
|
}
|
|
1058
|
-
if (meta.state.
|
|
1056
|
+
if (meta.state.brightness !== undefined && meta.state.state === 'ON') {
|
|
1059
1057
|
// The light's current level gets clobbered in two cases:
|
|
1060
1058
|
// 1. when 'Off' has a transition, in which case it is really 'MoveToLevelWithOnOff'
|
|
1061
1059
|
// https://github.com/Koenkk/zigbee-herdsman-converters/issues/1073
|
|
@@ -1079,11 +1077,11 @@ const converters2 = {
|
|
|
1079
1077
|
try {
|
|
1080
1078
|
const attributeRead = await entity.read('genLevelCtrl', ['onLevel']);
|
|
1081
1079
|
if (attributeRead !== undefined) {
|
|
1082
|
-
// @ts-expect-error
|
|
1080
|
+
// @ts-expect-error ignore
|
|
1083
1081
|
onLevel = attributeRead['onLevel'];
|
|
1084
1082
|
}
|
|
1085
1083
|
}
|
|
1086
|
-
catch
|
|
1084
|
+
catch {
|
|
1087
1085
|
// OnLevel not supported
|
|
1088
1086
|
}
|
|
1089
1087
|
}
|
|
@@ -1288,10 +1286,10 @@ const converters2 = {
|
|
|
1288
1286
|
// transform transition payload values if needed
|
|
1289
1287
|
for (const elem of payload.transitions) {
|
|
1290
1288
|
// update payload.mode if needed
|
|
1291
|
-
if (elem.
|
|
1289
|
+
if (elem.heatSetpoint !== undefined && !payload.mode.includes('heat')) {
|
|
1292
1290
|
payload.mode.push('heat');
|
|
1293
1291
|
}
|
|
1294
|
-
if (elem.
|
|
1292
|
+
if (elem.coolSetpoint !== undefined && !payload.mode.includes('cool')) {
|
|
1295
1293
|
payload.mode.push('cool');
|
|
1296
1294
|
}
|
|
1297
1295
|
// transform setpoint values if numeric
|
|
@@ -1314,7 +1312,7 @@ const converters2 = {
|
|
|
1314
1312
|
}
|
|
1315
1313
|
}
|
|
1316
1314
|
else if (typeof elem['transitionTime'] === 'object') {
|
|
1317
|
-
if (
|
|
1315
|
+
if (elem['transitionTime'].hour === undefined || elem['transitionTime'].minute === undefined) {
|
|
1318
1316
|
throw new Error('weekly_schedule: expected 24h time object (e.g. {"hour": 19, "minute": 30}), ' +
|
|
1319
1317
|
`but got '${JSON.stringify(elem['transitionTime'])}'!`);
|
|
1320
1318
|
}
|
|
@@ -1349,7 +1347,7 @@ const converters2 = {
|
|
|
1349
1347
|
let dayofweek = 0;
|
|
1350
1348
|
for (let d of payload.dayofweek) {
|
|
1351
1349
|
if (typeof d === 'object') {
|
|
1352
|
-
if (
|
|
1350
|
+
if (d.day === undefined) {
|
|
1353
1351
|
throw new Error('weekly_schedule: expected dayofweek to be string or {"day": "str"}, ' + `but got '${JSON.stringify(d)}'!`);
|
|
1354
1352
|
}
|
|
1355
1353
|
d = d.day;
|
|
@@ -2096,7 +2094,7 @@ const converters2 = {
|
|
|
2096
2094
|
writeUndiv: true,
|
|
2097
2095
|
transactionSequenceNumber: 0xe9,
|
|
2098
2096
|
};
|
|
2099
|
-
if (value.
|
|
2097
|
+
if (value.motor_direction !== undefined) {
|
|
2100
2098
|
let direction;
|
|
2101
2099
|
switch (value.motor_direction) {
|
|
2102
2100
|
case 'FORWARD':
|
|
@@ -2112,7 +2110,7 @@ const converters2 = {
|
|
|
2112
2110
|
const payload = { 0x1301: { value: [direction, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00] } };
|
|
2113
2111
|
await entity.write('genPowerCfg', payload, options);
|
|
2114
2112
|
}
|
|
2115
|
-
if (value.
|
|
2113
|
+
if (value.motor_speed !== undefined) {
|
|
2116
2114
|
if (value.motor_speed < 20 || value.motor_speed > 40) {
|
|
2117
2115
|
throw new Error('livolo_cover_options: Motor speed is out of range (20-40)');
|
|
2118
2116
|
}
|
|
@@ -2169,7 +2167,7 @@ const converters2 = {
|
|
|
2169
2167
|
utils.assertString(value, key);
|
|
2170
2168
|
utils.validateValue(value, ['toggle', 'off', 'on']);
|
|
2171
2169
|
if (value === 'toggle') {
|
|
2172
|
-
if (
|
|
2170
|
+
if (meta.state.state === undefined) {
|
|
2173
2171
|
throw new Error('Cannot toggle, state not known yet');
|
|
2174
2172
|
}
|
|
2175
2173
|
else {
|
|
@@ -2495,9 +2493,9 @@ const converters2 = {
|
|
|
2495
2493
|
key: ['position', 'tilt'],
|
|
2496
2494
|
convertSet: async (entity, key, value, meta) => {
|
|
2497
2495
|
utils.assertNumber(value, key);
|
|
2498
|
-
if (meta.options.
|
|
2496
|
+
if (meta.options.time_close !== undefined && meta.options.time_open !== undefined) {
|
|
2499
2497
|
const sleepSeconds = async (s) => {
|
|
2500
|
-
return new Promise((resolve) => setTimeout(resolve, s * 1000));
|
|
2498
|
+
return await new Promise((resolve) => setTimeout(resolve, s * 1000));
|
|
2501
2499
|
};
|
|
2502
2500
|
const oldPosition = meta.state.position;
|
|
2503
2501
|
if (value == 100) {
|
|
@@ -2693,8 +2691,8 @@ const converters2 = {
|
|
|
2693
2691
|
convertSet: async (entity, key, value, meta) => {
|
|
2694
2692
|
if (key === 'brightness' &&
|
|
2695
2693
|
meta.state.color_mode == constants.colorModeLookup[2] &&
|
|
2696
|
-
|
|
2697
|
-
|
|
2694
|
+
meta.message.color === undefined &&
|
|
2695
|
+
meta.message.color_temp === undefined) {
|
|
2698
2696
|
const zclData = { level: Number(value), transtime: 0 };
|
|
2699
2697
|
await entity.command('genLevelCtrl', 'moveToLevel', zclData, utils.getOptions(meta.mapped, entity));
|
|
2700
2698
|
globalStore.putValue(entity, 'brightness', zclData.level);
|
|
@@ -2730,9 +2728,9 @@ const converters2 = {
|
|
|
2730
2728
|
}
|
|
2731
2729
|
const zclData = {
|
|
2732
2730
|
brightness: globalStore.getValue(entity, 'brightness') || 100,
|
|
2733
|
-
// @ts-expect-error
|
|
2731
|
+
// @ts-expect-error ignore
|
|
2734
2732
|
hue: utils.mapNumberRange(meta.state.color.h, 0, 360, 0, 254) || 100,
|
|
2735
|
-
// @ts-expect-error
|
|
2733
|
+
// @ts-expect-error ignore
|
|
2736
2734
|
saturation: utils.mapNumberRange(meta.state.color.s, 0, 100, 0, 254) || 100,
|
|
2737
2735
|
transtime: 0,
|
|
2738
2736
|
};
|
|
@@ -2759,7 +2757,7 @@ const converters2 = {
|
|
|
2759
2757
|
zclData.brightness = value;
|
|
2760
2758
|
}
|
|
2761
2759
|
}
|
|
2762
|
-
if (meta.message.
|
|
2760
|
+
if (meta.message.color !== undefined) {
|
|
2763
2761
|
if (utils.isObject(meta.message.color)) {
|
|
2764
2762
|
if (meta.message.color.h) {
|
|
2765
2763
|
zclData.hue = utils.mapNumberRange(meta.message.color.h, 0, 360, 0, 254);
|
|
@@ -3290,7 +3288,7 @@ const converters2 = {
|
|
|
3290
3288
|
};
|
|
3291
3289
|
let value = utils.getFromLookup(rawValue, lookup, Number(rawValue));
|
|
3292
3290
|
if (key == 'sensors_type') {
|
|
3293
|
-
// @ts-expect-error
|
|
3291
|
+
// @ts-expect-error ignore
|
|
3294
3292
|
value = utils.getFromLookup(rawValue, sensorsTypeLookup, Number(rawValue));
|
|
3295
3293
|
}
|
|
3296
3294
|
const payloads = {
|
|
@@ -3357,7 +3355,7 @@ const converters2 = {
|
|
|
3357
3355
|
const modeOpenLookup = { never: '0', once: '1', always: '2', drop: '3' };
|
|
3358
3356
|
let value = utils.getFromLookup(rawValue, lookup, Number(rawValue));
|
|
3359
3357
|
if (key == 'mode') {
|
|
3360
|
-
// @ts-expect-error
|
|
3358
|
+
// @ts-expect-error ignore
|
|
3361
3359
|
value = utils.getFromLookup(rawValue, modeOpenLookup, Number(rawValue));
|
|
3362
3360
|
}
|
|
3363
3361
|
const payloads = {
|
|
@@ -3426,7 +3424,7 @@ const converters2 = {
|
|
|
3426
3424
|
const options = {
|
|
3427
3425
|
// Don't send a manufacturerCode (otherwise set in herdsman):
|
|
3428
3426
|
// https://github.com/Koenkk/zigbee-herdsman-converters/pull/2827
|
|
3429
|
-
// @ts-expect-error
|
|
3427
|
+
// @ts-expect-error ignore
|
|
3430
3428
|
manufacturerCode: null,
|
|
3431
3429
|
...utils.getOptions(meta.mapped, entity),
|
|
3432
3430
|
};
|
|
@@ -3479,13 +3477,13 @@ const converters2 = {
|
|
|
3479
3477
|
utils.saveSceneState(member, sceneid, groupid, meta.membersState[member.getDevice().ieeeAddr], scenename);
|
|
3480
3478
|
}
|
|
3481
3479
|
}
|
|
3482
|
-
// @ts-expect-error
|
|
3480
|
+
// @ts-expect-error ignore
|
|
3483
3481
|
}
|
|
3484
3482
|
else if (response.status === 0) {
|
|
3485
3483
|
utils.saveSceneState(entity, sceneid, groupid, meta.state, scenename);
|
|
3486
3484
|
}
|
|
3487
3485
|
else {
|
|
3488
|
-
// @ts-expect-error
|
|
3486
|
+
// @ts-expect-error ignore
|
|
3489
3487
|
throw new Error(`Scene add not successful ('${zigbee_herdsman_1.Zcl.Status[response.status]}')`);
|
|
3490
3488
|
}
|
|
3491
3489
|
logger_1.logger.info('Successfully stored scene', NS);
|
|
@@ -3500,11 +3498,11 @@ const converters2 = {
|
|
|
3500
3498
|
const sceneid = value;
|
|
3501
3499
|
await entity.command('genScenes', 'recall', { groupid, sceneid }, utils.getOptions(meta.mapped, entity));
|
|
3502
3500
|
const addColorMode = (newState) => {
|
|
3503
|
-
if (newState.
|
|
3501
|
+
if (newState.color_temp !== undefined) {
|
|
3504
3502
|
newState.color_mode = constants.colorModeLookup[2];
|
|
3505
3503
|
}
|
|
3506
|
-
else if (newState.
|
|
3507
|
-
if (newState.color.
|
|
3504
|
+
else if (newState.color !== undefined) {
|
|
3505
|
+
if (newState.color.x !== undefined) {
|
|
3508
3506
|
newState.color_mode = constants.colorModeLookup[1];
|
|
3509
3507
|
}
|
|
3510
3508
|
else {
|
|
@@ -3519,7 +3517,7 @@ const converters2 = {
|
|
|
3519
3517
|
let recalledState = utils.getSceneState(member, sceneid, groupid);
|
|
3520
3518
|
if (recalledState) {
|
|
3521
3519
|
// add color_mode if saved state does not contain it
|
|
3522
|
-
if (
|
|
3520
|
+
if (recalledState.color_mode === undefined) {
|
|
3523
3521
|
recalledState = addColorMode(recalledState);
|
|
3524
3522
|
}
|
|
3525
3523
|
Object.assign(recalledState, libColor.syncColorState(recalledState, meta.state, entity, meta.options));
|
|
@@ -3537,7 +3535,7 @@ const converters2 = {
|
|
|
3537
3535
|
let recalledState = utils.getSceneState(entity, sceneid, groupid);
|
|
3538
3536
|
if (recalledState) {
|
|
3539
3537
|
// add color_mode if saved state does not contain it
|
|
3540
|
-
if (
|
|
3538
|
+
if (recalledState.color_mode === undefined) {
|
|
3541
3539
|
recalledState = addColorMode(recalledState);
|
|
3542
3540
|
}
|
|
3543
3541
|
Object.assign(recalledState, libColor.syncColorState(recalledState, meta.state, entity, meta.options));
|
|
@@ -3711,13 +3709,13 @@ const converters2 = {
|
|
|
3711
3709
|
utils.deleteSceneState(member, sceneid, groupid);
|
|
3712
3710
|
}
|
|
3713
3711
|
}
|
|
3714
|
-
// @ts-expect-error
|
|
3712
|
+
// @ts-expect-error ignore
|
|
3715
3713
|
}
|
|
3716
3714
|
else if (response.status === 0) {
|
|
3717
3715
|
utils.deleteSceneState(entity, sceneid, groupid);
|
|
3718
3716
|
}
|
|
3719
3717
|
else {
|
|
3720
|
-
// @ts-expect-error
|
|
3718
|
+
// @ts-expect-error ignore
|
|
3721
3719
|
throw new Error(`Scene remove not successful ('${zigbee_herdsman_1.Zcl.Status[response.status]}')`);
|
|
3722
3720
|
}
|
|
3723
3721
|
logger_1.logger.info('Successfully removed scene', NS);
|
|
@@ -3752,7 +3750,7 @@ const converters2 = {
|
|
|
3752
3750
|
const isGroup = utils.isGroup(entity);
|
|
3753
3751
|
const sceneid = value.ID;
|
|
3754
3752
|
const scenename = value.name;
|
|
3755
|
-
const groupid = isGroup ? entity.groupID : value.
|
|
3753
|
+
const groupid = isGroup ? entity.groupID : value.group_id !== undefined ? value.group_id : 0;
|
|
3756
3754
|
if (isGroup) {
|
|
3757
3755
|
if (meta.membersState) {
|
|
3758
3756
|
for (const member of entity.members) {
|
|
@@ -4238,7 +4236,7 @@ const converters3 = {
|
|
|
4238
4236
|
const deviceState = meta.state || {};
|
|
4239
4237
|
const message = meta.message;
|
|
4240
4238
|
const state = utils.isString(message.state) ? message.state.toLowerCase() : null;
|
|
4241
|
-
const hasBrightness = message.
|
|
4239
|
+
const hasBrightness = message.brightness !== undefined || message.brightness_percent !== undefined;
|
|
4242
4240
|
// Add brightness if command is 'on' and we can restore previous value
|
|
4243
4241
|
if (state === 'on' && !hasBrightness && utils.isNumber(deviceState.brightness) && deviceState.brightness > 0) {
|
|
4244
4242
|
message.brightness = deviceState.brightness;
|
|
@@ -4308,10 +4306,10 @@ const converters3 = {
|
|
|
4308
4306
|
if (entity.supportsInputCluster(cluster) || entity.supportsOutputCluster(cluster)) {
|
|
4309
4307
|
const message = meta.message;
|
|
4310
4308
|
let brightness = undefined;
|
|
4311
|
-
if (message.
|
|
4309
|
+
if (message.brightness !== undefined) {
|
|
4312
4310
|
brightness = Number(message.brightness);
|
|
4313
4311
|
}
|
|
4314
|
-
else if (message.
|
|
4312
|
+
else if (message.brightness_percent !== undefined)
|
|
4315
4313
|
brightness = Math.round(Number(message.brightness_percent) * 2.55);
|
|
4316
4314
|
if (brightness !== undefined && brightness === 0) {
|
|
4317
4315
|
message.state = 'off';
|
|
@@ -4365,10 +4363,10 @@ const converters3 = {
|
|
|
4365
4363
|
key: ['state', 'brightness'],
|
|
4366
4364
|
convertSet: async (entity, key, value, meta) => {
|
|
4367
4365
|
const { message, state } = meta;
|
|
4368
|
-
if (message.state === 'OFF' || (message.
|
|
4366
|
+
if (message.state === 'OFF' || (message.state !== undefined && message.brightness === undefined)) {
|
|
4369
4367
|
return await converters1.on_off.convertSet(entity, key, value, meta);
|
|
4370
4368
|
}
|
|
4371
|
-
else if (message.
|
|
4369
|
+
else if (message.brightness !== undefined) {
|
|
4372
4370
|
// set brightness
|
|
4373
4371
|
if (state.state === 'OFF') {
|
|
4374
4372
|
await entity.command('genOnOff', 'on', {}, utils.getOptions(meta.mapped, entity));
|
|
@@ -4395,7 +4393,7 @@ const converters3 = {
|
|
|
4395
4393
|
// https://github.com/Koenkk/zigbee2mqtt/issues/15902#issuecomment-1382848150
|
|
4396
4394
|
await entity.command('genOnOff', 'on', {}, utils.getOptions(meta.mapped, entity));
|
|
4397
4395
|
}
|
|
4398
|
-
return converters2.light_onoff_brightness.convertSet(entity, key, value, meta);
|
|
4396
|
+
return await converters2.light_onoff_brightness.convertSet(entity, key, value, meta);
|
|
4399
4397
|
},
|
|
4400
4398
|
},
|
|
4401
4399
|
};
|