@willieee802/zigbee-herdsman-converters 19.44.3 → 19.45.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 +1101 -0
- package/dist/converters/actions.d.ts.map +1 -1
- package/dist/converters/actions.js +2 -0
- package/dist/converters/actions.js.map +1 -1
- package/dist/converters/fromZigbee.d.ts +1 -150
- package/dist/converters/fromZigbee.d.ts.map +1 -1
- package/dist/converters/fromZigbee.js +183 -3044
- package/dist/converters/fromZigbee.js.map +1 -1
- package/dist/converters/toZigbee.d.ts +0 -121
- package/dist/converters/toZigbee.d.ts.map +1 -1
- package/dist/converters/toZigbee.js +289 -2386
- package/dist/converters/toZigbee.js.map +1 -1
- package/dist/devices/ITCommander.d.ts.map +1 -1
- package/dist/devices/ITCommander.js +2 -1
- package/dist/devices/ITCommander.js.map +1 -1
- package/dist/devices/acova.d.ts.map +1 -1
- package/dist/devices/acova.js +69 -2
- package/dist/devices/acova.js.map +1 -1
- package/dist/devices/adeo.d.ts.map +1 -1
- package/dist/devices/adeo.js +35 -3
- package/dist/devices/adeo.js.map +1 -1
- package/dist/devices/adurosmart.js +1 -1
- package/dist/devices/adurosmart.js.map +1 -1
- package/dist/devices/amina.d.ts.map +1 -1
- package/dist/devices/amina.js +47 -10
- package/dist/devices/amina.js.map +1 -1
- package/dist/devices/aurora_lighting.d.ts.map +1 -1
- package/dist/devices/aurora_lighting.js +15 -0
- package/dist/devices/aurora_lighting.js.map +1 -1
- package/dist/devices/automaton.d.ts.map +1 -1
- package/dist/devices/automaton.js +1 -0
- package/dist/devices/automaton.js.map +1 -1
- package/dist/devices/avatto.d.ts.map +1 -1
- package/dist/devices/avatto.js +29 -24
- package/dist/devices/avatto.js.map +1 -1
- package/dist/devices/awox.d.ts.map +1 -1
- package/dist/devices/awox.js +41 -3
- package/dist/devices/awox.js.map +1 -1
- package/dist/devices/bacchus.d.ts.map +1 -1
- package/dist/devices/bacchus.js +75 -0
- package/dist/devices/bacchus.js.map +1 -1
- package/dist/devices/bitron.d.ts.map +1 -1
- package/dist/devices/bitron.js +29 -2
- package/dist/devices/bitron.js.map +1 -1
- package/dist/devices/bosch.d.ts.map +1 -1
- package/dist/devices/bosch.js +70 -50
- package/dist/devices/bosch.js.map +1 -1
- package/dist/devices/bticino.d.ts.map +1 -1
- package/dist/devices/bticino.js +11 -1
- package/dist/devices/bticino.js.map +1 -1
- package/dist/devices/byun.d.ts.map +1 -1
- package/dist/devices/byun.js +40 -3
- package/dist/devices/byun.js.map +1 -1
- package/dist/devices/candeo.d.ts.map +1 -1
- package/dist/devices/candeo.js +262 -9
- package/dist/devices/candeo.js.map +1 -1
- package/dist/devices/centralite.d.ts +9 -0
- package/dist/devices/centralite.d.ts.map +1 -1
- package/dist/devices/centralite.js +44 -5
- package/dist/devices/centralite.js.map +1 -1
- package/dist/devices/{aubess.d.ts → cigol.d.ts} +1 -1
- package/dist/devices/cigol.d.ts.map +1 -0
- package/dist/devices/cigol.js +260 -0
- package/dist/devices/cigol.js.map +1 -0
- package/dist/devices/cleverio.js +2 -2
- package/dist/devices/cleverio.js.map +1 -1
- package/dist/devices/climax.d.ts.map +1 -1
- package/dist/devices/climax.js +15 -1
- package/dist/devices/climax.js.map +1 -1
- package/dist/devices/ctm.d.ts.map +1 -1
- package/dist/devices/ctm.js +845 -496
- package/dist/devices/ctm.js.map +1 -1
- package/dist/devices/custom_devices_diy.d.ts +183 -1
- package/dist/devices/custom_devices_diy.d.ts.map +1 -1
- package/dist/devices/custom_devices_diy.js +390 -33
- package/dist/devices/custom_devices_diy.js.map +1 -1
- package/dist/devices/daewoo.d.ts +3 -0
- package/dist/devices/daewoo.d.ts.map +1 -0
- package/dist/devices/daewoo.js +198 -0
- package/dist/devices/daewoo.js.map +1 -0
- package/dist/devices/danfoss.d.ts.map +1 -1
- package/dist/devices/danfoss.js +1270 -296
- package/dist/devices/danfoss.js.map +1 -1
- package/dist/devices/databyte.d.ts.map +1 -1
- package/dist/devices/databyte.js +47 -3
- package/dist/devices/databyte.js.map +1 -1
- package/dist/devices/datek.d.ts.map +1 -1
- package/dist/devices/datek.js +202 -41
- package/dist/devices/datek.js.map +1 -1
- package/dist/devices/dawon_dns.d.ts.map +1 -1
- package/dist/devices/dawon_dns.js +14 -1
- package/dist/devices/dawon_dns.js.map +1 -1
- package/dist/devices/develco.d.ts.map +1 -1
- package/dist/devices/develco.js +145 -64
- package/dist/devices/develco.js.map +1 -1
- package/dist/devices/diyruz.d.ts.map +1 -1
- package/dist/devices/diyruz.js +444 -20
- package/dist/devices/diyruz.js.map +1 -1
- package/dist/devices/domraem.d.ts.map +1 -1
- package/dist/devices/domraem.js +7 -0
- package/dist/devices/domraem.js.map +1 -1
- package/dist/devices/easyaccess.d.ts.map +1 -1
- package/dist/devices/easyaccess.js +22 -2
- package/dist/devices/easyaccess.js.map +1 -1
- package/dist/devices/easyiot.d.ts.map +1 -1
- package/dist/devices/easyiot.js +767 -5
- package/dist/devices/easyiot.js.map +1 -1
- package/dist/devices/echostar.d.ts.map +1 -1
- package/dist/devices/echostar.js +25 -1
- package/dist/devices/echostar.js.map +1 -1
- package/dist/devices/ecodim.d.ts.map +1 -1
- package/dist/devices/ecodim.js +8 -0
- package/dist/devices/ecodim.js.map +1 -1
- package/dist/devices/ecolink.d.ts.map +1 -1
- package/dist/devices/ecolink.js +12 -0
- package/dist/devices/ecolink.js.map +1 -1
- package/dist/devices/efekta.d.ts.map +1 -1
- package/dist/devices/efekta.js +1615 -60
- package/dist/devices/efekta.js.map +1 -1
- package/dist/devices/eglo.d.ts.map +1 -1
- package/dist/devices/eglo.js +203 -17
- package/dist/devices/eglo.js.map +1 -1
- package/dist/devices/elko.d.ts.map +1 -1
- package/dist/devices/elko.js +20 -22
- package/dist/devices/elko.js.map +1 -1
- package/dist/devices/engo.d.ts.map +1 -1
- package/dist/devices/engo.js +201 -0
- package/dist/devices/engo.js.map +1 -1
- package/dist/devices/enocean.d.ts.map +1 -1
- package/dist/devices/enocean.js +132 -4
- package/dist/devices/enocean.js.map +1 -1
- package/dist/devices/ensystec.d.ts +3 -0
- package/dist/devices/ensystec.d.ts.map +1 -0
- package/dist/devices/ensystec.js +1200 -0
- package/dist/devices/ensystec.js.map +1 -0
- package/dist/devices/eurotronic.d.ts +78 -1
- package/dist/devices/eurotronic.d.ts.map +1 -1
- package/dist/devices/eurotronic.js +244 -40
- package/dist/devices/eurotronic.js.map +1 -1
- package/dist/devices/ewelink.d.ts.map +1 -1
- package/dist/devices/ewelink.js +154 -2
- package/dist/devices/ewelink.js.map +1 -1
- package/dist/devices/fantem.js +1 -1
- package/dist/devices/fantem.js.map +1 -1
- package/dist/devices/fireangel.d.ts.map +1 -1
- package/dist/devices/fireangel.js +12 -1
- package/dist/devices/fireangel.js.map +1 -1
- package/dist/devices/frankever.d.ts.map +1 -1
- package/dist/devices/frankever.js +96 -0
- package/dist/devices/frankever.js.map +1 -1
- package/dist/devices/frient.d.ts.map +1 -1
- package/dist/devices/frient.js +15 -0
- package/dist/devices/frient.js.map +1 -1
- package/dist/devices/girier.js +1 -1
- package/dist/devices/girier.js.map +1 -1
- package/dist/devices/gledopto.js +1 -1
- package/dist/devices/gledopto.js.map +1 -1
- package/dist/devices/gmmts.d.ts.map +1 -1
- package/dist/devices/gmmts.js +59 -55
- package/dist/devices/gmmts.js.map +1 -1
- package/dist/devices/halo_smart_labs.d.ts +3 -0
- package/dist/devices/halo_smart_labs.d.ts.map +1 -0
- package/dist/devices/halo_smart_labs.js +918 -0
- package/dist/devices/halo_smart_labs.js.map +1 -0
- package/dist/devices/handshake_finland.d.ts +3 -0
- package/dist/devices/handshake_finland.d.ts.map +1 -0
- package/dist/devices/handshake_finland.js +15 -0
- package/dist/devices/handshake_finland.js.map +1 -0
- package/dist/devices/heiman.d.ts.map +1 -1
- package/dist/devices/heiman.js +1361 -147
- package/dist/devices/heiman.js.map +1 -1
- package/dist/devices/heimgard_technologies.d.ts.map +1 -1
- package/dist/devices/heimgard_technologies.js +13 -0
- package/dist/devices/heimgard_technologies.js.map +1 -1
- package/dist/devices/hive.d.ts.map +1 -1
- package/dist/devices/hive.js +11 -0
- package/dist/devices/hive.js.map +1 -1
- package/dist/devices/ikea.d.ts.map +1 -1
- package/dist/devices/ikea.js +185 -135
- package/dist/devices/ikea.js.map +1 -1
- package/dist/devices/iluminize.d.ts.map +1 -1
- package/dist/devices/iluminize.js +8 -7
- package/dist/devices/iluminize.js.map +1 -1
- package/dist/devices/immax.d.ts.map +1 -1
- package/dist/devices/immax.js +3 -1
- package/dist/devices/immax.js.map +1 -1
- package/dist/devices/index.d.ts.map +1 -1
- package/dist/devices/index.js +20 -2
- package/dist/devices/index.js.map +1 -1
- package/dist/devices/innr.d.ts.map +1 -1
- package/dist/devices/innr.js +34 -2
- package/dist/devices/innr.js.map +1 -1
- package/dist/devices/inovelli.d.ts.map +1 -1
- package/dist/devices/inovelli.js +41 -2348
- package/dist/devices/inovelli.js.map +1 -1
- package/dist/devices/iris.d.ts.map +1 -1
- package/dist/devices/iris.js +13 -1
- package/dist/devices/iris.js.map +1 -1
- package/dist/devices/javis.d.ts.map +1 -1
- package/dist/devices/javis.js +39 -1
- package/dist/devices/javis.js.map +1 -1
- package/dist/devices/jxuan.d.ts.map +1 -1
- package/dist/devices/jxuan.js +37 -2
- package/dist/devices/jxuan.js.map +1 -1
- package/dist/devices/kami.d.ts.map +1 -1
- package/dist/devices/kami.js +21 -2
- package/dist/devices/kami.js.map +1 -1
- package/dist/devices/keen_home.d.ts.map +1 -1
- package/dist/devices/keen_home.js +13 -3
- package/dist/devices/keen_home.js.map +1 -1
- package/dist/devices/klikaanklikuit.d.ts.map +1 -1
- package/dist/devices/klikaanklikuit.js +7 -0
- package/dist/devices/klikaanklikuit.js.map +1 -1
- package/dist/devices/kmpcil.d.ts.map +1 -1
- package/dist/devices/kmpcil.js +44 -5
- package/dist/devices/kmpcil.js.map +1 -1
- package/dist/devices/konke.d.ts.map +1 -1
- package/dist/devices/konke.js +10 -1
- package/dist/devices/konke.js.map +1 -1
- package/dist/devices/lds.d.ts.map +1 -1
- package/dist/devices/lds.js +7 -0
- package/dist/devices/lds.js.map +1 -1
- package/dist/devices/led_trading.d.ts.map +1 -1
- package/dist/devices/led_trading.js +13 -13
- package/dist/devices/led_trading.js.map +1 -1
- package/dist/devices/leedarson.d.ts.map +1 -1
- package/dist/devices/leedarson.js +140 -1
- package/dist/devices/leedarson.js.map +1 -1
- package/dist/devices/legrand.d.ts.map +1 -1
- package/dist/devices/legrand.js +73 -42
- package/dist/devices/legrand.js.map +1 -1
- package/dist/devices/lellki.d.ts.map +1 -1
- package/dist/devices/lellki.js +3 -1
- package/dist/devices/lellki.js.map +1 -1
- package/dist/devices/letv.d.ts.map +1 -1
- package/dist/devices/letv.js +16 -2
- package/dist/devices/letv.js.map +1 -1
- package/dist/devices/lidl.d.ts.map +1 -1
- package/dist/devices/lidl.js +26 -6
- package/dist/devices/lidl.js.map +1 -1
- package/dist/devices/lincukoo.d.ts.map +1 -1
- package/dist/devices/lincukoo.js +92 -31
- package/dist/devices/lincukoo.js.map +1 -1
- package/dist/devices/linkind.d.ts.map +1 -1
- package/dist/devices/linkind.js +14 -1
- package/dist/devices/linkind.js.map +1 -1
- package/dist/devices/linptech.d.ts.map +1 -1
- package/dist/devices/linptech.js +3 -1
- package/dist/devices/linptech.js.map +1 -1
- package/dist/devices/livingwise.d.ts.map +1 -1
- package/dist/devices/livingwise.js +2 -1
- package/dist/devices/livingwise.js.map +1 -1
- package/dist/devices/livolo.d.ts.map +1 -1
- package/dist/devices/livolo.js +612 -20
- package/dist/devices/livolo.js.map +1 -1
- package/dist/devices/lixee.d.ts.map +1 -1
- package/dist/devices/lixee.js +46 -44
- package/dist/devices/lixee.js.map +1 -1
- package/dist/devices/lonsonho.d.ts.map +1 -1
- package/dist/devices/lonsonho.js +18 -11
- package/dist/devices/lonsonho.js.map +1 -1
- package/dist/devices/lumi.d.ts.map +1 -1
- package/dist/devices/lumi.js +877 -155
- package/dist/devices/lumi.js.map +1 -1
- package/dist/devices/lytko.d.ts.map +1 -1
- package/dist/devices/lytko.js +205 -556
- package/dist/devices/lytko.js.map +1 -1
- package/dist/devices/makegood.d.ts.map +1 -1
- package/dist/devices/makegood.js +5 -1
- package/dist/devices/makegood.js.map +1 -1
- package/dist/devices/mazda.js +7 -7
- package/dist/devices/mazda.js.map +1 -1
- package/dist/devices/meazon.d.ts.map +1 -1
- package/dist/devices/meazon.js +82 -20
- package/dist/devices/meazon.js.map +1 -1
- package/dist/devices/megaman.d.ts +4 -0
- package/dist/devices/megaman.d.ts.map +1 -0
- package/dist/devices/megaman.js +48 -0
- package/dist/devices/megaman.js.map +1 -0
- package/dist/devices/mercator.d.ts.map +1 -1
- package/dist/devices/mercator.js +20 -5
- package/dist/devices/mercator.js.map +1 -1
- package/dist/devices/miboxer.d.ts.map +1 -1
- package/dist/devices/miboxer.js +3 -1
- package/dist/devices/miboxer.js.map +1 -1
- package/dist/devices/mill.d.ts.map +1 -1
- package/dist/devices/mill.js +33 -7
- package/dist/devices/mill.js.map +1 -1
- package/dist/devices/moes.d.ts.map +1 -1
- package/dist/devices/moes.js +89 -15
- package/dist/devices/moes.js.map +1 -1
- package/dist/devices/msh.d.ts +3 -0
- package/dist/devices/msh.d.ts.map +1 -0
- package/dist/devices/msh.js +93 -0
- package/dist/devices/msh.js.map +1 -0
- package/dist/devices/muller_licht.d.ts.map +1 -1
- package/dist/devices/muller_licht.js +11 -0
- package/dist/devices/muller_licht.js.map +1 -1
- package/dist/devices/multir.d.ts.map +1 -1
- package/dist/devices/multir.js +12 -1
- package/dist/devices/multir.js.map +1 -1
- package/dist/devices/multiterm.js +2 -2
- package/dist/devices/multiterm.js.map +1 -1
- package/dist/devices/namron.d.ts.map +1 -1
- package/dist/devices/namron.js +488 -128
- package/dist/devices/namron.js.map +1 -1
- package/dist/devices/neo.d.ts.map +1 -1
- package/dist/devices/neo.js +151 -192
- package/dist/devices/neo.js.map +1 -1
- package/dist/devices/netica.d.ts +3 -0
- package/dist/devices/netica.d.ts.map +1 -0
- package/dist/devices/netica.js +153 -0
- package/dist/devices/netica.js.map +1 -0
- package/dist/devices/niko.d.ts.map +1 -1
- package/dist/devices/niko.js +10 -8
- package/dist/devices/niko.js.map +1 -1
- package/dist/devices/nodon.d.ts.map +1 -1
- package/dist/devices/nodon.js +6 -4
- package/dist/devices/nodon.js.map +1 -1
- package/dist/devices/nous.d.ts.map +1 -1
- package/dist/devices/nous.js +160 -61
- package/dist/devices/nous.js.map +1 -1
- package/dist/devices/nue_3a.d.ts.map +1 -1
- package/dist/devices/nue_3a.js +2 -0
- package/dist/devices/nue_3a.js.map +1 -1
- package/dist/devices/onesti.d.ts +11 -1
- package/dist/devices/onesti.d.ts.map +1 -1
- package/dist/devices/onesti.js +30 -6
- package/dist/devices/onesti.js.map +1 -1
- package/dist/devices/onokom.d.ts.map +1 -1
- package/dist/devices/onokom.js +1152 -2309
- package/dist/devices/onokom.js.map +1 -1
- package/dist/devices/orvibo.d.ts +17 -1
- package/dist/devices/orvibo.d.ts.map +1 -1
- package/dist/devices/orvibo.js +71 -4
- package/dist/devices/orvibo.js.map +1 -1
- package/dist/devices/owon.d.ts.map +1 -1
- package/dist/devices/owon.js +382 -62
- package/dist/devices/owon.js.map +1 -1
- package/dist/devices/paul_neuhaus.d.ts.map +1 -1
- package/dist/devices/paul_neuhaus.js +9 -0
- package/dist/devices/paul_neuhaus.js.map +1 -1
- package/dist/devices/paulmann.js +2 -2
- package/dist/devices/paulmann.js.map +1 -1
- package/dist/devices/perenio.d.ts.map +1 -1
- package/dist/devices/perenio.js +57 -39
- package/dist/devices/perenio.js.map +1 -1
- package/dist/devices/philips.d.ts.map +1 -1
- package/dist/devices/philips.js +194 -53
- package/dist/devices/philips.js.map +1 -1
- package/dist/devices/plaid.d.ts.map +1 -1
- package/dist/devices/plaid.js +18 -1
- package/dist/devices/plaid.js.map +1 -1
- package/dist/devices/plugwise.d.ts.map +1 -1
- package/dist/devices/plugwise.js +307 -26
- package/dist/devices/plugwise.js.map +1 -1
- package/dist/devices/profalux.d.ts.map +1 -1
- package/dist/devices/profalux.js +25 -1
- package/dist/devices/profalux.js.map +1 -1
- package/dist/devices/pushok.d.ts.map +1 -1
- package/dist/devices/pushok.js +44 -0
- package/dist/devices/pushok.js.map +1 -1
- package/dist/devices/qa.d.ts.map +1 -1
- package/dist/devices/qa.js +80 -32
- package/dist/devices/qa.js.map +1 -1
- package/dist/devices/repenic_ltd.d.ts +3 -0
- package/dist/devices/repenic_ltd.d.ts.map +1 -0
- package/dist/devices/repenic_ltd.js +97 -0
- package/dist/devices/repenic_ltd.js.map +1 -0
- package/dist/devices/robb.d.ts.map +1 -1
- package/dist/devices/robb.js +13 -1
- package/dist/devices/robb.js.map +1 -1
- package/dist/devices/rtx.js +1 -1
- package/dist/devices/rtx.js.map +1 -1
- package/dist/devices/salus_controls.d.ts.map +1 -1
- package/dist/devices/salus_controls.js +44 -17
- package/dist/devices/salus_controls.js.map +1 -1
- package/dist/devices/samotech.js +2 -2
- package/dist/devices/samotech.js.map +1 -1
- package/dist/devices/sber.d.ts.map +1 -1
- package/dist/devices/sber.js +435 -26
- package/dist/devices/sber.js.map +1 -1
- package/dist/devices/schneider_electric.d.ts.map +1 -1
- package/dist/devices/schneider_electric.js +808 -252
- package/dist/devices/schneider_electric.js.map +1 -1
- package/dist/devices/securifi.d.ts.map +1 -1
- package/dist/devices/securifi.js +24 -1
- package/dist/devices/securifi.js.map +1 -1
- package/dist/devices/sengled.d.ts.map +1 -1
- package/dist/devices/sengled.js +5 -4
- package/dist/devices/sengled.js.map +1 -1
- package/dist/devices/shada.d.ts +3 -0
- package/dist/devices/shada.d.ts.map +1 -0
- package/dist/devices/{aubess.js → shada.js} +7 -20
- package/dist/devices/shada.js.map +1 -0
- package/dist/devices/shelly.d.ts.map +1 -1
- package/dist/devices/shelly.js +646 -61
- package/dist/devices/shelly.js.map +1 -1
- package/dist/devices/shinasystem.d.ts.map +1 -1
- package/dist/devices/shinasystem.js +75 -16
- package/dist/devices/shinasystem.js.map +1 -1
- package/dist/devices/siglis.d.ts.map +1 -1
- package/dist/devices/siglis.js +26 -0
- package/dist/devices/siglis.js.map +1 -1
- package/dist/devices/sinope.d.ts.map +1 -1
- package/dist/devices/sinope.js +163 -83
- package/dist/devices/sinope.js.map +1 -1
- package/dist/devices/slacky_diy.d.ts.map +1 -1
- package/dist/devices/slacky_diy.js +3007 -69
- package/dist/devices/slacky_diy.js.map +1 -1
- package/dist/devices/smarli.d.ts.map +1 -1
- package/dist/devices/smarli.js +4 -5
- package/dist/devices/smarli.js.map +1 -1
- package/dist/devices/smartthings.d.ts +25 -0
- package/dist/devices/smartthings.d.ts.map +1 -1
- package/dist/devices/smartthings.js +62 -11
- package/dist/devices/smartthings.js.map +1 -1
- package/dist/devices/somfy.d.ts.map +1 -1
- package/dist/devices/somfy.js +14 -1
- package/dist/devices/somfy.js.map +1 -1
- package/dist/devices/sonoff.d.ts +42 -1
- package/dist/devices/sonoff.d.ts.map +1 -1
- package/dist/devices/sonoff.js +5161 -2007
- package/dist/devices/sonoff.js.map +1 -1
- package/dist/devices/sprut.d.ts.map +1 -1
- package/dist/devices/sprut.js +5 -4
- package/dist/devices/sprut.js.map +1 -1
- package/dist/devices/stello.d.ts.map +1 -1
- package/dist/devices/stello.js +6 -24
- package/dist/devices/stello.js.map +1 -1
- package/dist/devices/stelpro.d.ts +51 -1
- package/dist/devices/stelpro.d.ts.map +1 -1
- package/dist/devices/stelpro.js +86 -23
- package/dist/devices/stelpro.js.map +1 -1
- package/dist/devices/sunricher.d.ts.map +1 -1
- package/dist/devices/sunricher.js +215 -29
- package/dist/devices/sunricher.js.map +1 -1
- package/dist/devices/tech.d.ts.map +1 -1
- package/dist/devices/tech.js +35 -35
- package/dist/devices/tech.js.map +1 -1
- package/dist/devices/terncy.d.ts.map +1 -1
- package/dist/devices/terncy.js +398 -2
- package/dist/devices/terncy.js.map +1 -1
- package/dist/devices/third_reality.d.ts +42 -1
- package/dist/devices/third_reality.d.ts.map +1 -1
- package/dist/devices/third_reality.js +521 -110
- package/dist/devices/third_reality.js.map +1 -1
- package/dist/devices/tuya.d.ts.map +1 -1
- package/dist/devices/tuya.js +3143 -815
- package/dist/devices/tuya.js.map +1 -1
- package/dist/devices/ubisys.d.ts.map +1 -1
- package/dist/devices/ubisys.js +11 -8
- package/dist/devices/ubisys.js.map +1 -1
- package/dist/devices/vesternet.d.ts.map +1 -1
- package/dist/devices/vesternet.js +7 -0
- package/dist/devices/vesternet.js.map +1 -1
- package/dist/devices/viessmann.d.ts.map +1 -1
- package/dist/devices/viessmann.js +107 -4
- package/dist/devices/viessmann.js.map +1 -1
- package/dist/devices/vsmart.d.ts.map +1 -1
- package/dist/devices/vsmart.js +11 -0
- package/dist/devices/vsmart.js.map +1 -1
- package/dist/devices/weiser.d.ts.map +1 -1
- package/dist/devices/weiser.js +6 -0
- package/dist/devices/weiser.js.map +1 -1
- package/dist/devices/wirenboard.d.ts.map +1 -1
- package/dist/devices/wirenboard.js +124 -21
- package/dist/devices/wirenboard.js.map +1 -1
- package/dist/devices/wmun.d.ts.map +1 -1
- package/dist/devices/wmun.js +3 -2
- package/dist/devices/wmun.js.map +1 -1
- package/dist/devices/woolley.d.ts.map +1 -1
- package/dist/devices/woolley.js +6 -9
- package/dist/devices/woolley.js.map +1 -1
- package/dist/devices/woox.js +2 -2
- package/dist/devices/woox.js.map +1 -1
- package/dist/devices/xyzroe.d.ts.map +1 -1
- package/dist/devices/xyzroe.js +16 -4
- package/dist/devices/xyzroe.js.map +1 -1
- package/dist/devices/yale.d.ts.map +1 -1
- package/dist/devices/yale.js +138 -40
- package/dist/devices/yale.js.map +1 -1
- package/dist/devices/yandex.d.ts.map +1 -1
- package/dist/devices/yandex.js +93 -11
- package/dist/devices/yandex.js.map +1 -1
- package/dist/devices/yokis.d.ts.map +1 -1
- package/dist/devices/yokis.js +122 -85
- package/dist/devices/yokis.js.map +1 -1
- package/dist/devices/zbeacon.d.ts.map +1 -1
- package/dist/devices/zbeacon.js +0 -7
- package/dist/devices/zbeacon.js.map +1 -1
- package/dist/devices/zemismart.d.ts.map +1 -1
- package/dist/devices/zemismart.js +148 -11
- package/dist/devices/zemismart.js.map +1 -1
- package/dist/devices/zigbeetlc.js +1 -1
- package/dist/devices/zigbeetlc.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +40 -35
- package/dist/index.js.map +1 -1
- package/dist/lib/bosch.d.ts.map +1 -1
- package/dist/lib/bosch.js +212 -42
- package/dist/lib/bosch.js.map +1 -1
- package/dist/lib/constants.d.ts +99 -17
- package/dist/lib/constants.d.ts.map +1 -1
- package/dist/lib/constants.js +15 -2
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/develco.d.ts +11 -0
- package/dist/lib/develco.d.ts.map +1 -1
- package/dist/lib/develco.js +78 -9
- package/dist/lib/develco.js.map +1 -1
- package/dist/lib/exposes.d.ts +11 -10
- package/dist/lib/exposes.d.ts.map +1 -1
- package/dist/lib/exposes.js +7 -48
- package/dist/lib/exposes.js.map +1 -1
- package/dist/lib/heiman.d.ts.map +1 -1
- package/dist/lib/heiman.js +34 -14
- package/dist/lib/heiman.js.map +1 -1
- package/dist/lib/ikea.d.ts +17 -0
- package/dist/lib/ikea.d.ts.map +1 -1
- package/dist/lib/ikea.js +46 -20
- package/dist/lib/ikea.js.map +1 -1
- package/dist/lib/inovelli.d.ts +86 -0
- package/dist/lib/inovelli.d.ts.map +1 -0
- package/dist/lib/inovelli.js +2580 -0
- package/dist/lib/inovelli.js.map +1 -0
- package/dist/lib/ledvance.d.ts +4 -4
- package/dist/lib/ledvance.d.ts.map +1 -1
- package/dist/lib/ledvance.js +23 -7
- package/dist/lib/ledvance.js.map +1 -1
- package/dist/lib/legacy.d.ts +21 -2
- package/dist/lib/legacy.d.ts.map +1 -1
- package/dist/lib/legacy.js +29 -2
- package/dist/lib/legacy.js.map +1 -1
- package/dist/lib/legrand.d.ts +65 -6
- package/dist/lib/legrand.d.ts.map +1 -1
- package/dist/lib/legrand.js +188 -9
- package/dist/lib/legrand.js.map +1 -1
- package/dist/lib/light.d.ts +1 -1
- package/dist/lib/light.d.ts.map +1 -1
- package/dist/lib/light.js +2 -2
- package/dist/lib/light.js.map +1 -1
- package/dist/lib/lumi.d.ts +88 -44
- package/dist/lib/lumi.d.ts.map +1 -1
- package/dist/lib/lumi.js +1813 -59
- package/dist/lib/lumi.js.map +1 -1
- package/dist/lib/modernExtend.d.ts +19 -14
- package/dist/lib/modernExtend.d.ts.map +1 -1
- package/dist/lib/modernExtend.js +37 -35
- package/dist/lib/modernExtend.js.map +1 -1
- package/dist/lib/namron.d.ts +131 -28
- package/dist/lib/namron.d.ts.map +1 -1
- package/dist/lib/namron.js +723 -42
- package/dist/lib/namron.js.map +1 -1
- package/dist/lib/nodon.d.ts.map +1 -1
- package/dist/lib/nodon.js +3 -1
- package/dist/lib/nodon.js.map +1 -1
- package/dist/lib/philips.d.ts +106 -2
- package/dist/lib/philips.d.ts.map +1 -1
- package/dist/lib/philips.js +945 -44
- package/dist/lib/philips.js.map +1 -1
- package/dist/lib/sonoff.d.ts +77 -10
- package/dist/lib/sonoff.d.ts.map +1 -1
- package/dist/lib/sonoff.js +165 -34
- package/dist/lib/sonoff.js.map +1 -1
- package/dist/lib/sunricher.d.ts +1 -1
- package/dist/lib/sunricher.d.ts.map +1 -1
- package/dist/lib/sunricher.js +6 -8
- package/dist/lib/sunricher.js.map +1 -1
- package/dist/lib/tuya.d.ts +558 -13
- package/dist/lib/tuya.d.ts.map +1 -1
- package/dist/lib/tuya.js +1518 -10
- package/dist/lib/tuya.js.map +1 -1
- package/dist/lib/types.d.ts +9 -6
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/ubisys.d.ts +1 -1
- package/dist/lib/ubisys.d.ts.map +1 -1
- package/dist/lib/ubisys.js +60 -5
- package/dist/lib/ubisys.js.map +1 -1
- package/dist/lib/utils.d.ts +5 -8
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +30 -17
- package/dist/lib/utils.js.map +1 -1
- package/dist/lib/zosung.d.ts +69 -6
- package/dist/lib/zosung.d.ts.map +1 -1
- package/dist/lib/zosung.js +113 -1
- package/dist/lib/zosung.js.map +1 -1
- package/dist/models-index.json +1 -1
- package/package.json +2 -2
- package/dist/devices/aubess.d.ts.map +0 -1
- package/dist/devices/aubess.js.map +0 -1
|
@@ -39,12 +39,15 @@ const fz = __importStar(require("../converters/fromZigbee"));
|
|
|
39
39
|
const tz = __importStar(require("../converters/toZigbee"));
|
|
40
40
|
const constants = __importStar(require("../lib/constants"));
|
|
41
41
|
const exposes = __importStar(require("../lib/exposes"));
|
|
42
|
+
const logger_1 = require("../lib/logger");
|
|
42
43
|
const m = __importStar(require("../lib/modernExtend"));
|
|
43
44
|
const reporting = __importStar(require("../lib/reporting"));
|
|
45
|
+
const globalStore = __importStar(require("../lib/store"));
|
|
44
46
|
const utils = __importStar(require("../lib/utils"));
|
|
45
47
|
const utils_1 = require("../lib/utils");
|
|
46
48
|
const e = exposes.presets;
|
|
47
49
|
const ea = exposes.access;
|
|
50
|
+
const NS = "zhc:schneider_electric";
|
|
48
51
|
function indicatorMode(endpoint) {
|
|
49
52
|
let description = "Set Indicator Mode.";
|
|
50
53
|
if (endpoint) {
|
|
@@ -150,20 +153,21 @@ function switchActions(endpoint) {
|
|
|
150
153
|
}
|
|
151
154
|
const schneiderElectricExtend = {
|
|
152
155
|
addVisaConfigurationCluster: (enumDataType) => m.deviceAddCustomCluster("visaConfiguration", {
|
|
156
|
+
name: "visaConfiguration",
|
|
153
157
|
ID: 0xfc04,
|
|
154
158
|
manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
|
|
155
159
|
attributes: {
|
|
156
|
-
indicatorLuminanceLevel: { ID: 0x0000, type: enumDataType, write: true },
|
|
157
|
-
indicatorColor: { ID: 0x0001, type: enumDataType, write: true },
|
|
158
|
-
indicatorMode: { ID: 0x0002, type: enumDataType, write: true },
|
|
159
|
-
motorTypeChannel1: { ID: 0x0003, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
|
|
160
|
-
motorTypeChannel2: { ID: 0x0004, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
|
|
161
|
-
curtainStatusChannel1: { ID: 0x0005, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
|
|
162
|
-
curtainStatusChannel2: { ID: 0x0006, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
|
|
163
|
-
key1EventNotification: { ID: 0x0020, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
|
|
164
|
-
key2EventNotification: { ID: 0x0021, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
|
|
165
|
-
key3EventNotification: { ID: 0x0022, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
|
|
166
|
-
key4EventNotification: { ID: 0x0023, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
|
|
160
|
+
indicatorLuminanceLevel: { name: "indicatorLuminanceLevel", ID: 0x0000, type: enumDataType, write: true },
|
|
161
|
+
indicatorColor: { name: "indicatorColor", ID: 0x0001, type: enumDataType, write: true },
|
|
162
|
+
indicatorMode: { name: "indicatorMode", ID: 0x0002, type: enumDataType, write: true },
|
|
163
|
+
motorTypeChannel1: { name: "motorTypeChannel1", ID: 0x0003, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
|
|
164
|
+
motorTypeChannel2: { name: "motorTypeChannel2", ID: 0x0004, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
|
|
165
|
+
curtainStatusChannel1: { name: "curtainStatusChannel1", ID: 0x0005, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
|
|
166
|
+
curtainStatusChannel2: { name: "curtainStatusChannel2", ID: 0x0006, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
|
|
167
|
+
key1EventNotification: { name: "key1EventNotification", ID: 0x0020, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
|
|
168
|
+
key2EventNotification: { name: "key2EventNotification", ID: 0x0021, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
|
|
169
|
+
key3EventNotification: { name: "key3EventNotification", ID: 0x0022, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
|
|
170
|
+
key4EventNotification: { name: "key4EventNotification", ID: 0x0023, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
|
|
167
171
|
},
|
|
168
172
|
commands: {},
|
|
169
173
|
commandsResponse: {},
|
|
@@ -338,13 +342,14 @@ const schneiderElectricExtend = {
|
|
|
338
342
|
return extend;
|
|
339
343
|
},
|
|
340
344
|
addOccupancyConfigurationCluster: () => m.deviceAddCustomCluster("occupancyConfiguration", {
|
|
345
|
+
name: "occupancyConfiguration",
|
|
341
346
|
ID: 0xff19,
|
|
342
347
|
manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
|
|
343
348
|
attributes: {
|
|
344
|
-
ambienceLightThreshold: { ID: 0x0000, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, max: 0xffff },
|
|
345
|
-
occupancyActions: { ID: 0x0001, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true, max: 0xff },
|
|
346
|
-
unoccupiedLevelDflt: { ID: 0x0002, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
|
|
347
|
-
unoccupiedLevel: { ID: 0x0003, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
|
|
349
|
+
ambienceLightThreshold: { name: "ambienceLightThreshold", ID: 0x0000, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, max: 0xffff },
|
|
350
|
+
occupancyActions: { name: "occupancyActions", ID: 0x0001, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true, max: 0xff },
|
|
351
|
+
unoccupiedLevelDflt: { name: "unoccupiedLevelDflt", ID: 0x0002, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
|
|
352
|
+
unoccupiedLevel: { name: "unoccupiedLevel", ID: 0x0003, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
|
|
348
353
|
},
|
|
349
354
|
commands: {},
|
|
350
355
|
commandsResponse: {},
|
|
@@ -389,60 +394,56 @@ const schneiderElectricExtend = {
|
|
|
389
394
|
extend.configure.push(m.setupConfigureForReading("occupancyConfiguration", ["ambienceLightThreshold"]));
|
|
390
395
|
return extend;
|
|
391
396
|
},
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
return { running_state: w > 10 ? "heat" : "idle" };
|
|
409
|
-
}
|
|
410
|
-
},
|
|
411
|
-
});
|
|
412
|
-
return extend;
|
|
397
|
+
runningStateFromPower: () => {
|
|
398
|
+
return {
|
|
399
|
+
isModernExtend: true,
|
|
400
|
+
fromZigbee: [
|
|
401
|
+
{
|
|
402
|
+
cluster: "seMetering",
|
|
403
|
+
type: ["attributeReport", "readResponse"],
|
|
404
|
+
convert: (model, msg, publish, options, meta) => {
|
|
405
|
+
if ("instantaneousDemand" in msg.data) {
|
|
406
|
+
const w = Math.max(0, Number(msg.data.instantaneousDemand));
|
|
407
|
+
return { running_state: w > 10 ? "heat" : "idle" };
|
|
408
|
+
}
|
|
409
|
+
},
|
|
410
|
+
},
|
|
411
|
+
],
|
|
412
|
+
};
|
|
413
413
|
},
|
|
414
414
|
addHeatingCoolingOutputClusterServer: () => m.deviceAddCustomCluster("heatingCoolingOutputClusterServer", {
|
|
415
|
+
name: "heatingCoolingOutputClusterServer",
|
|
415
416
|
ID: 0xff23,
|
|
416
417
|
manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
|
|
417
418
|
attributes: {
|
|
418
|
-
measuredTemperature: { ID: 0x0000, type: zigbee_herdsman_1.Zcl.DataType.INT16, max: 0x7fff },
|
|
419
|
-
absMinHeatTemperatureLimit: { ID: 0x0003, type: zigbee_herdsman_1.Zcl.DataType.INT16, max: 0x7fff },
|
|
420
|
-
absMaxHeatTemperatureLimit: { ID: 0x0004, type: zigbee_herdsman_1.Zcl.DataType.INT16, max: 0x7fff },
|
|
421
|
-
absMinCoolTemperatureLimit: { ID: 0x0005, type: zigbee_herdsman_1.Zcl.DataType.INT16, max: 0x7fff },
|
|
422
|
-
absMaxCoolTemperatureLimit: { ID: 0x0006, type: zigbee_herdsman_1.Zcl.DataType.INT16, max: 0x7fff },
|
|
423
|
-
minHeatTemperatureLimit: { ID: 0x0015, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0x7fff },
|
|
424
|
-
maxHeatTemperatureLimit: { ID: 0x0016, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0x7fff },
|
|
425
|
-
minCoolTemperatureLimit: { ID: 0x0017, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0x7fff },
|
|
426
|
-
maxCoolTemperatureLimit: { ID: 0x0018, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0x7fff },
|
|
427
|
-
heatTemperatureHighLimit: { ID: 0x0020, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0x7fff },
|
|
428
|
-
heatTemperatureLowLimit: { ID: 0x0021, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0x7fff },
|
|
429
|
-
coolTemperatureHighLimit: { ID: 0x0022, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0x7fff },
|
|
430
|
-
coolTemperatureLowLimit: { ID: 0x0023, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0x7fff },
|
|
431
|
-
coolingOutputMode: { ID: 0x0030, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true },
|
|
432
|
-
heatingOutputMode: { ID: 0x0031, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true },
|
|
433
|
-
maximumIdleTime: { ID: 0x0041, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, max: 8784 },
|
|
434
|
-
antiIdleExerciseTime: { ID: 0x0042, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, max: 3600 },
|
|
435
|
-
preferredExerciseTime: { ID: 0x0043, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, max: 1439 },
|
|
436
|
-
minOffTime: { ID: 0x0044, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true },
|
|
437
|
-
minOnTime: { ID: 0x0045, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true },
|
|
438
|
-
maxOverallDutyCycle: { ID: 0xe207, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, min: 900, max: 3600 },
|
|
439
|
-
overallDutyCyclePeriod: { ID: 0xe208, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, max: 1440 },
|
|
440
|
-
clusterRevision: { ID: 0xfffd, type: zigbee_herdsman_1.Zcl.DataType.UINT16, max: 0xfffe },
|
|
419
|
+
measuredTemperature: { name: "measuredTemperature", ID: 0x0000, type: zigbee_herdsman_1.Zcl.DataType.INT16, max: 0x7fff },
|
|
420
|
+
absMinHeatTemperatureLimit: { name: "absMinHeatTemperatureLimit", ID: 0x0003, type: zigbee_herdsman_1.Zcl.DataType.INT16, max: 0x7fff },
|
|
421
|
+
absMaxHeatTemperatureLimit: { name: "absMaxHeatTemperatureLimit", ID: 0x0004, type: zigbee_herdsman_1.Zcl.DataType.INT16, max: 0x7fff },
|
|
422
|
+
absMinCoolTemperatureLimit: { name: "absMinCoolTemperatureLimit", ID: 0x0005, type: zigbee_herdsman_1.Zcl.DataType.INT16, max: 0x7fff },
|
|
423
|
+
absMaxCoolTemperatureLimit: { name: "absMaxCoolTemperatureLimit", ID: 0x0006, type: zigbee_herdsman_1.Zcl.DataType.INT16, max: 0x7fff },
|
|
424
|
+
minHeatTemperatureLimit: { name: "minHeatTemperatureLimit", ID: 0x0015, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0x7fff },
|
|
425
|
+
maxHeatTemperatureLimit: { name: "maxHeatTemperatureLimit", ID: 0x0016, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0x7fff },
|
|
426
|
+
minCoolTemperatureLimit: { name: "minCoolTemperatureLimit", ID: 0x0017, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0x7fff },
|
|
427
|
+
maxCoolTemperatureLimit: { name: "maxCoolTemperatureLimit", ID: 0x0018, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0x7fff },
|
|
428
|
+
heatTemperatureHighLimit: { name: "heatTemperatureHighLimit", ID: 0x0020, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0x7fff },
|
|
429
|
+
heatTemperatureLowLimit: { name: "heatTemperatureLowLimit", ID: 0x0021, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0x7fff },
|
|
430
|
+
coolTemperatureHighLimit: { name: "coolTemperatureHighLimit", ID: 0x0022, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0x7fff },
|
|
431
|
+
coolTemperatureLowLimit: { name: "coolTemperatureLowLimit", ID: 0x0023, type: zigbee_herdsman_1.Zcl.DataType.INT16, write: true, max: 0x7fff },
|
|
432
|
+
coolingOutputMode: { name: "coolingOutputMode", ID: 0x0030, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true },
|
|
433
|
+
heatingOutputMode: { name: "heatingOutputMode", ID: 0x0031, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true },
|
|
434
|
+
maximumIdleTime: { name: "maximumIdleTime", ID: 0x0041, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, max: 8784 },
|
|
435
|
+
antiIdleExerciseTime: { name: "antiIdleExerciseTime", ID: 0x0042, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, max: 3600 },
|
|
436
|
+
preferredExerciseTime: { name: "preferredExerciseTime", ID: 0x0043, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, max: 1439 },
|
|
437
|
+
minOffTime: { name: "minOffTime", ID: 0x0044, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true },
|
|
438
|
+
minOnTime: { name: "minOnTime", ID: 0x0045, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true },
|
|
439
|
+
maxOverallDutyCycle: { name: "maxOverallDutyCycle", ID: 0xe207, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, min: 900, max: 3600 },
|
|
440
|
+
overallDutyCyclePeriod: { name: "overallDutyCyclePeriod", ID: 0xe208, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, max: 1440 },
|
|
441
|
+
clusterRevision: { name: "clusterRevision", ID: 0xfffd, type: zigbee_herdsman_1.Zcl.DataType.UINT16, max: 0xfffe },
|
|
441
442
|
},
|
|
442
443
|
commands: {},
|
|
443
444
|
commandsResponse: {},
|
|
444
445
|
}),
|
|
445
|
-
heatingOutputMode: () => m.enumLookup({
|
|
446
|
+
heatingOutputMode: (args) => m.enumLookup({
|
|
446
447
|
name: "heating_output_mode",
|
|
447
448
|
cluster: "heatingCoolingOutputClusterServer",
|
|
448
449
|
attribute: "heatingOutputMode",
|
|
@@ -457,8 +458,9 @@ const schneiderElectricExtend = {
|
|
|
457
458
|
"Relay NC": 4,
|
|
458
459
|
},
|
|
459
460
|
zigbeeCommandOptions: { manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC },
|
|
461
|
+
...args,
|
|
460
462
|
}),
|
|
461
|
-
pilotMode: () => m.enumLookup({
|
|
463
|
+
pilotMode: (args) => m.enumLookup({
|
|
462
464
|
name: "schneider_pilot_mode",
|
|
463
465
|
cluster: "heatingCoolingOutputClusterServer",
|
|
464
466
|
attribute: "heatingOutputMode",
|
|
@@ -470,11 +472,14 @@ const schneiderElectricExtend = {
|
|
|
470
472
|
pilot: 3,
|
|
471
473
|
},
|
|
472
474
|
zigbeeCommandOptions: { manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC },
|
|
475
|
+
...args,
|
|
473
476
|
}),
|
|
474
477
|
addHvacUserInterfaceCfgCustomAttributes: () => m.deviceAddCustomCluster("hvacUserInterfaceCfg", {
|
|
478
|
+
name: "hvacUserInterfaceCfg",
|
|
475
479
|
ID: zigbee_herdsman_1.Zcl.Clusters.hvacUserInterfaceCfg.ID,
|
|
476
480
|
attributes: {
|
|
477
481
|
displayBrightnessActive: {
|
|
482
|
+
name: "displayBrightnessActive",
|
|
478
483
|
ID: 0xe000,
|
|
479
484
|
type: zigbee_herdsman_1.Zcl.DataType.UINT8,
|
|
480
485
|
write: true,
|
|
@@ -483,6 +488,7 @@ const schneiderElectricExtend = {
|
|
|
483
488
|
manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
|
|
484
489
|
},
|
|
485
490
|
displayBrightnessInactive: {
|
|
491
|
+
name: "displayBrightnessInactive",
|
|
486
492
|
ID: 0xe001,
|
|
487
493
|
type: zigbee_herdsman_1.Zcl.DataType.UINT8,
|
|
488
494
|
write: true,
|
|
@@ -491,6 +497,7 @@ const schneiderElectricExtend = {
|
|
|
491
497
|
manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
|
|
492
498
|
},
|
|
493
499
|
displayActiveTimeout: {
|
|
500
|
+
name: "displayActiveTimeout",
|
|
494
501
|
ID: 0xe002,
|
|
495
502
|
type: zigbee_herdsman_1.Zcl.DataType.UINT16,
|
|
496
503
|
write: true,
|
|
@@ -502,7 +509,7 @@ const schneiderElectricExtend = {
|
|
|
502
509
|
commands: {},
|
|
503
510
|
commandsResponse: {},
|
|
504
511
|
}),
|
|
505
|
-
displayBrightnessActive: () => m.numeric({
|
|
512
|
+
displayBrightnessActive: (args) => m.numeric({
|
|
506
513
|
name: "display_brightness_active",
|
|
507
514
|
cluster: "hvacUserInterfaceCfg",
|
|
508
515
|
attribute: "displayBrightnessActive",
|
|
@@ -513,8 +520,9 @@ const schneiderElectricExtend = {
|
|
|
513
520
|
valueMax: 100,
|
|
514
521
|
valueStep: 1,
|
|
515
522
|
zigbeeCommandOptions: { manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC },
|
|
523
|
+
...args,
|
|
516
524
|
}),
|
|
517
|
-
displayBrightnessInactive: () => m.numeric({
|
|
525
|
+
displayBrightnessInactive: (args) => m.numeric({
|
|
518
526
|
name: "display_brightness_inactive",
|
|
519
527
|
cluster: "hvacUserInterfaceCfg",
|
|
520
528
|
attribute: "displayBrightnessInactive",
|
|
@@ -525,8 +533,9 @@ const schneiderElectricExtend = {
|
|
|
525
533
|
valueMax: 100,
|
|
526
534
|
valueStep: 1,
|
|
527
535
|
zigbeeCommandOptions: { manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC },
|
|
536
|
+
...args,
|
|
528
537
|
}),
|
|
529
|
-
displayActiveTimeout: () => m.numeric({
|
|
538
|
+
displayActiveTimeout: (args) => m.numeric({
|
|
530
539
|
name: "display_active_timeout",
|
|
531
540
|
cluster: "hvacUserInterfaceCfg",
|
|
532
541
|
attribute: "displayActiveTimeout",
|
|
@@ -537,11 +546,14 @@ const schneiderElectricExtend = {
|
|
|
537
546
|
valueMax: 600,
|
|
538
547
|
valueStep: 5,
|
|
539
548
|
zigbeeCommandOptions: { manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC },
|
|
549
|
+
...args,
|
|
540
550
|
}),
|
|
541
551
|
customTemperatureMeasurementCluster: () => m.deviceAddCustomCluster("msTemperatureMeasurement", {
|
|
552
|
+
name: "msTemperatureMeasurement",
|
|
542
553
|
ID: zigbee_herdsman_1.Zcl.Clusters.msTemperatureMeasurement.ID,
|
|
543
554
|
attributes: {
|
|
544
555
|
sensorCorrection: {
|
|
556
|
+
name: "sensorCorrection",
|
|
545
557
|
ID: 0xe020,
|
|
546
558
|
type: zigbee_herdsman_1.Zcl.DataType.INT16,
|
|
547
559
|
write: true,
|
|
@@ -550,6 +562,7 @@ const schneiderElectricExtend = {
|
|
|
550
562
|
manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
|
|
551
563
|
},
|
|
552
564
|
temperatureSensorType: {
|
|
565
|
+
name: "temperatureSensorType",
|
|
553
566
|
ID: 0xe021,
|
|
554
567
|
type: zigbee_herdsman_1.Zcl.DataType.ENUM8,
|
|
555
568
|
write: true,
|
|
@@ -559,10 +572,46 @@ const schneiderElectricExtend = {
|
|
|
559
572
|
commands: {},
|
|
560
573
|
commandsResponse: {},
|
|
561
574
|
}),
|
|
575
|
+
sensorCorrection: (args) => m.numeric({
|
|
576
|
+
name: "temperature_sensor_correction",
|
|
577
|
+
cluster: "msTemperatureMeasurement",
|
|
578
|
+
attribute: "sensorCorrection",
|
|
579
|
+
description: "This is a user correction, possibly negative, to be added to the temperature measured by the sensor.",
|
|
580
|
+
unit: "°C",
|
|
581
|
+
scale: 100,
|
|
582
|
+
valueMin: -9,
|
|
583
|
+
valueMax: 9,
|
|
584
|
+
valueStep: 0.01,
|
|
585
|
+
access: "ALL",
|
|
586
|
+
entityCategory: "config",
|
|
587
|
+
zigbeeCommandOptions: { manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC },
|
|
588
|
+
...args,
|
|
589
|
+
}),
|
|
590
|
+
temperatureSensorType: (args) => m.enumLookup({
|
|
591
|
+
name: "temperature_sensor_type",
|
|
592
|
+
cluster: "msTemperatureMeasurement",
|
|
593
|
+
attribute: "temperatureSensorType",
|
|
594
|
+
description: "This is used to specify the type of temperature sensor connected to this input",
|
|
595
|
+
entityCategory: "config",
|
|
596
|
+
access: "ALL",
|
|
597
|
+
lookup: {
|
|
598
|
+
"2kΩ sensor from HRT/Alre": 1,
|
|
599
|
+
"10kΩ sensor from B+J": 2,
|
|
600
|
+
"12kΩ sensor from OJ": 3,
|
|
601
|
+
"15kΩ sensor from DEVI": 4,
|
|
602
|
+
"33kΩ sensor from EBERLE": 5,
|
|
603
|
+
"47kΩ sensor from CTM": 6,
|
|
604
|
+
"No sensor": 0xff,
|
|
605
|
+
},
|
|
606
|
+
zigbeeCommandOptions: { manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC },
|
|
607
|
+
...args,
|
|
608
|
+
}),
|
|
562
609
|
customMeteringCluster: () => m.deviceAddCustomCluster("seMetering", {
|
|
610
|
+
name: "seMetering",
|
|
563
611
|
ID: zigbee_herdsman_1.Zcl.Clusters.seMetering.ID,
|
|
564
612
|
attributes: {
|
|
565
613
|
fixedLoadDemand: {
|
|
614
|
+
name: "fixedLoadDemand",
|
|
566
615
|
ID: 0x4510,
|
|
567
616
|
type: zigbee_herdsman_1.Zcl.DataType.UINT24,
|
|
568
617
|
write: true,
|
|
@@ -573,26 +622,38 @@ const schneiderElectricExtend = {
|
|
|
573
622
|
commands: {},
|
|
574
623
|
commandsResponse: {},
|
|
575
624
|
}),
|
|
576
|
-
fixedLoadDemand: () => m.numeric({
|
|
625
|
+
fixedLoadDemand: (args) => m.numeric({
|
|
577
626
|
name: "fixed_load_demand",
|
|
578
627
|
cluster: "seMetering",
|
|
579
628
|
attribute: "fixedLoadDemand",
|
|
580
|
-
description: "
|
|
629
|
+
description: "Load in W when heating is on (between 0-3600 W). The thermostat reports this value as power (instantaneousDemand) when heating is on. The load has to be defined if the device should report running state ('heat' or 'idle').",
|
|
581
630
|
entityCategory: "config",
|
|
582
631
|
unit: "W",
|
|
583
632
|
valueMin: 1,
|
|
584
633
|
valueMax: 3600,
|
|
585
634
|
valueStep: 1,
|
|
635
|
+
...args,
|
|
586
636
|
}),
|
|
587
637
|
customThermostatCluster: () => m.deviceAddCustomCluster("hvacThermostat", {
|
|
638
|
+
name: "hvacThermostat",
|
|
588
639
|
ID: zigbee_herdsman_1.Zcl.Clusters.hvacThermostat.ID,
|
|
589
640
|
attributes: {
|
|
641
|
+
schneiderWiserSpecific: {
|
|
642
|
+
name: "schneiderWiserSpecific",
|
|
643
|
+
ID: 0xe110,
|
|
644
|
+
type: zigbee_herdsman_1.Zcl.DataType.ENUM8,
|
|
645
|
+
write: true,
|
|
646
|
+
max: 0xff,
|
|
647
|
+
manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
|
|
648
|
+
},
|
|
590
649
|
controlStatus: {
|
|
650
|
+
name: "controlStatus",
|
|
591
651
|
ID: 0xe211,
|
|
592
652
|
type: zigbee_herdsman_1.Zcl.DataType.ENUM8,
|
|
593
653
|
manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
|
|
594
654
|
},
|
|
595
655
|
localTemperatureSourceSelect: {
|
|
656
|
+
name: "localTemperatureSourceSelect",
|
|
596
657
|
ID: 0xe212,
|
|
597
658
|
type: zigbee_herdsman_1.Zcl.DataType.UINT8,
|
|
598
659
|
write: true,
|
|
@@ -600,40 +661,109 @@ const schneiderElectricExtend = {
|
|
|
600
661
|
manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
|
|
601
662
|
},
|
|
602
663
|
controlType: {
|
|
664
|
+
name: "controlType",
|
|
603
665
|
ID: 0xe213,
|
|
604
666
|
type: zigbee_herdsman_1.Zcl.DataType.ENUM8,
|
|
605
667
|
write: true,
|
|
606
668
|
manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
|
|
607
669
|
},
|
|
608
670
|
thermostatApplication: {
|
|
671
|
+
name: "thermostatApplication",
|
|
609
672
|
ID: 0xe216,
|
|
610
673
|
type: zigbee_herdsman_1.Zcl.DataType.ENUM8,
|
|
611
674
|
write: true,
|
|
612
675
|
manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
|
|
613
676
|
},
|
|
614
677
|
heatingFuel: {
|
|
678
|
+
name: "heatingFuel",
|
|
615
679
|
ID: 0xe217,
|
|
616
680
|
type: zigbee_herdsman_1.Zcl.DataType.ENUM8,
|
|
617
681
|
write: true,
|
|
618
682
|
manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
|
|
619
683
|
},
|
|
620
684
|
heatTransferMedium: {
|
|
685
|
+
name: "heatTransferMedium",
|
|
621
686
|
ID: 0xe218,
|
|
622
687
|
type: zigbee_herdsman_1.Zcl.DataType.ENUM8,
|
|
623
688
|
write: true,
|
|
624
689
|
manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
|
|
625
690
|
},
|
|
626
691
|
heatingEmitter: {
|
|
692
|
+
name: "heatingEmitter",
|
|
627
693
|
ID: 0xe21a,
|
|
628
694
|
type: zigbee_herdsman_1.Zcl.DataType.ENUM8,
|
|
629
695
|
write: true,
|
|
630
696
|
manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
|
|
631
697
|
},
|
|
698
|
+
wiserSmartZoneMode: {
|
|
699
|
+
name: "wiserSmartZoneMode",
|
|
700
|
+
ID: 0xe010,
|
|
701
|
+
type: zigbee_herdsman_1.Zcl.DataType.ENUM8,
|
|
702
|
+
write: true,
|
|
703
|
+
manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
|
|
704
|
+
},
|
|
705
|
+
wiserSmartHactConfig: {
|
|
706
|
+
name: "wiserSmartHactConfig",
|
|
707
|
+
ID: 0xe011,
|
|
708
|
+
type: zigbee_herdsman_1.Zcl.DataType.BITMAP8,
|
|
709
|
+
write: true,
|
|
710
|
+
manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
|
|
711
|
+
},
|
|
712
|
+
wiserSmartCurrentFilPiloteMode: {
|
|
713
|
+
name: "wiserSmartCurrentFilPiloteMode",
|
|
714
|
+
ID: 0xe020,
|
|
715
|
+
type: zigbee_herdsman_1.Zcl.DataType.ENUM8,
|
|
716
|
+
write: true,
|
|
717
|
+
manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
|
|
718
|
+
},
|
|
719
|
+
wiserSmartValvePosition: {
|
|
720
|
+
name: "wiserSmartValvePosition",
|
|
721
|
+
ID: 0xe030,
|
|
722
|
+
type: zigbee_herdsman_1.Zcl.DataType.UINT8,
|
|
723
|
+
manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
|
|
724
|
+
},
|
|
725
|
+
wiserSmartValveCalibrationStatus: {
|
|
726
|
+
name: "wiserSmartValveCalibrationStatus",
|
|
727
|
+
ID: 0xe031,
|
|
728
|
+
type: zigbee_herdsman_1.Zcl.DataType.ENUM8,
|
|
729
|
+
manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
|
|
730
|
+
},
|
|
731
|
+
},
|
|
732
|
+
commands: {
|
|
733
|
+
schneiderWiserThermostatBoost: {
|
|
734
|
+
name: "schneiderWiserThermostatBoost",
|
|
735
|
+
ID: 0x80,
|
|
736
|
+
parameters: [
|
|
737
|
+
{ name: "command", type: zigbee_herdsman_1.Zcl.DataType.ENUM8, max: 0xff },
|
|
738
|
+
{ name: "enable", type: zigbee_herdsman_1.Zcl.DataType.ENUM8, max: 0xff },
|
|
739
|
+
{ name: "temperature", type: zigbee_herdsman_1.Zcl.DataType.UINT16, max: 0xffff },
|
|
740
|
+
{ name: "duration", type: zigbee_herdsman_1.Zcl.DataType.UINT16, max: 0xffff },
|
|
741
|
+
],
|
|
742
|
+
},
|
|
743
|
+
wiserSmartSetSetpoint: {
|
|
744
|
+
name: "wiserSmartSetSetpoint",
|
|
745
|
+
ID: 0xe0,
|
|
746
|
+
parameters: [
|
|
747
|
+
{ name: "operatingmode", type: zigbee_herdsman_1.Zcl.DataType.UINT8, max: 0xff },
|
|
748
|
+
{ name: "zonemode", type: zigbee_herdsman_1.Zcl.DataType.UINT8, max: 0xff },
|
|
749
|
+
{ name: "setpoint", type: zigbee_herdsman_1.Zcl.DataType.INT16, min: -32768, max: 32767 },
|
|
750
|
+
{ name: "reserved", type: zigbee_herdsman_1.Zcl.DataType.UINT8, max: 0xff },
|
|
751
|
+
],
|
|
752
|
+
},
|
|
753
|
+
wiserSmartSetFipMode: {
|
|
754
|
+
name: "wiserSmartSetFipMode",
|
|
755
|
+
ID: 0xe1,
|
|
756
|
+
parameters: [
|
|
757
|
+
{ name: "zonemode", type: zigbee_herdsman_1.Zcl.DataType.UINT8, max: 0xff },
|
|
758
|
+
{ name: "fipmode", type: zigbee_herdsman_1.Zcl.DataType.ENUM8, max: 0xff },
|
|
759
|
+
{ name: "reserved", type: zigbee_herdsman_1.Zcl.DataType.UINT8, max: 0xff },
|
|
760
|
+
],
|
|
761
|
+
},
|
|
762
|
+
wiserSmartCalibrateValve: { name: "wiserSmartCalibrateValve", ID: 0xe2, parameters: [] },
|
|
632
763
|
},
|
|
633
|
-
commands: {},
|
|
634
764
|
commandsResponse: {},
|
|
635
765
|
}),
|
|
636
|
-
controlStatus: () => m.enumLookup({
|
|
766
|
+
controlStatus: (args) => m.enumLookup({
|
|
637
767
|
name: "control_status",
|
|
638
768
|
cluster: "hvacThermostat",
|
|
639
769
|
attribute: "controlStatus",
|
|
@@ -651,6 +781,7 @@ const schneiderElectricExtend = {
|
|
|
651
781
|
"Sensor Fault": 0x84,
|
|
652
782
|
},
|
|
653
783
|
zigbeeCommandOptions: { manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC },
|
|
784
|
+
...args,
|
|
654
785
|
}),
|
|
655
786
|
localTemperatureSourceSelect: () => m.enumLookup({
|
|
656
787
|
name: "local_temperature_source_select",
|
|
@@ -716,33 +847,52 @@ const schneiderElectricExtend = {
|
|
|
716
847
|
zigbeeCommandOptions: { manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC },
|
|
717
848
|
}),
|
|
718
849
|
addWiserDeviceInfoCluster: () => m.deviceAddCustomCluster("wiserDeviceInfo", {
|
|
850
|
+
name: "wiserDeviceInfo",
|
|
719
851
|
ID: 0xfe03,
|
|
720
852
|
attributes: {
|
|
721
|
-
deviceInfo: { ID: 0x0020, type: zigbee_herdsman_1.Zcl.DataType.CHAR_STR, write: true },
|
|
853
|
+
deviceInfo: { name: "deviceInfo", ID: 0x0020, type: zigbee_herdsman_1.Zcl.DataType.CHAR_STR, write: true },
|
|
722
854
|
},
|
|
723
855
|
commands: {},
|
|
724
856
|
commandsResponse: {},
|
|
725
857
|
}),
|
|
726
858
|
addSchneiderLightSwitchConfigurationCluster: () => m.deviceAddCustomCluster("manuSpecificSchneiderLightSwitchConfiguration", {
|
|
859
|
+
name: "manuSpecificSchneiderLightSwitchConfiguration",
|
|
727
860
|
ID: 0xff17,
|
|
728
861
|
manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
|
|
729
862
|
attributes: {
|
|
730
|
-
ledIndication: { ID: 0x0000, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true, max: 0xff },
|
|
731
|
-
upSceneID: { ID: 0x0010, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
|
|
732
|
-
upGroupID: { ID: 0x0011, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, max: 0xffff },
|
|
733
|
-
downSceneID: { ID: 0x0020, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
|
|
734
|
-
downGroupID: { ID: 0x0021, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, max: 0xffff },
|
|
735
|
-
switchActions: { ID: 0x0001, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true, max: 0xff },
|
|
863
|
+
ledIndication: { name: "ledIndication", ID: 0x0000, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true, max: 0xff },
|
|
864
|
+
upSceneID: { name: "upSceneID", ID: 0x0010, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
|
|
865
|
+
upGroupID: { name: "upGroupID", ID: 0x0011, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, max: 0xffff },
|
|
866
|
+
downSceneID: { name: "downSceneID", ID: 0x0020, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
|
|
867
|
+
downGroupID: { name: "downGroupID", ID: 0x0021, type: zigbee_herdsman_1.Zcl.DataType.UINT16, write: true, max: 0xffff },
|
|
868
|
+
switchActions: { name: "switchActions", ID: 0x0001, type: zigbee_herdsman_1.Zcl.DataType.ENUM8, write: true, max: 0xff },
|
|
736
869
|
},
|
|
737
870
|
commands: {},
|
|
738
871
|
commandsResponse: {},
|
|
739
872
|
}),
|
|
740
873
|
addSchneiderFanSwitchConfigurationCluster: () => m.deviceAddCustomCluster("manuSpecificSchneiderFanSwitchConfiguration", {
|
|
874
|
+
name: "manuSpecificSchneiderFanSwitchConfiguration",
|
|
741
875
|
ID: 0xfc04,
|
|
742
876
|
manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
|
|
743
877
|
attributes: {
|
|
744
|
-
ledIndication: { ID: 0x0002, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
|
|
745
|
-
ledOrientation: { ID: 0x0060, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
|
|
878
|
+
ledIndication: { name: "ledIndication", ID: 0x0002, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
|
|
879
|
+
ledOrientation: { name: "ledOrientation", ID: 0x0060, type: zigbee_herdsman_1.Zcl.DataType.UINT8, write: true, max: 0xff },
|
|
880
|
+
},
|
|
881
|
+
commands: {},
|
|
882
|
+
commandsResponse: {},
|
|
883
|
+
}),
|
|
884
|
+
addSchneiderLightingBallastCfgCluster: () => m.deviceAddCustomCluster("lightingBallastCfg", {
|
|
885
|
+
name: "lightingBallastCfg",
|
|
886
|
+
ID: zigbee_herdsman_1.Zcl.Clusters.lightingBallastCfg.ID,
|
|
887
|
+
attributes: {
|
|
888
|
+
wiserControlMode: {
|
|
889
|
+
name: "wiserControlMode",
|
|
890
|
+
ID: 0xe000,
|
|
891
|
+
type: zigbee_herdsman_1.Zcl.DataType.ENUM8,
|
|
892
|
+
manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
|
|
893
|
+
write: true,
|
|
894
|
+
max: 0xff,
|
|
895
|
+
},
|
|
746
896
|
},
|
|
747
897
|
commands: {},
|
|
748
898
|
commandsResponse: {},
|
|
@@ -765,8 +915,210 @@ const tzLocal = {
|
|
|
765
915
|
return await tz.fan_mode.convertSet(entity, key, value, meta);
|
|
766
916
|
},
|
|
767
917
|
},
|
|
918
|
+
wiser_dimmer_mode: {
|
|
919
|
+
key: ["dimmer_mode"],
|
|
920
|
+
convertSet: async (entity, key, value, meta) => {
|
|
921
|
+
await entity.write("lightingBallastCfg", { wiserControlMode: utils.getKey(constants.wiserDimmerControlMode, value, value, Number) }, { manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC });
|
|
922
|
+
return { state: { dimmer_mode: value } };
|
|
923
|
+
},
|
|
924
|
+
convertGet: async (entity, key, meta) => {
|
|
925
|
+
await entity.read("lightingBallastCfg", ["wiserControlMode"], {
|
|
926
|
+
manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
|
|
927
|
+
});
|
|
928
|
+
},
|
|
929
|
+
},
|
|
930
|
+
wiser_fip_setting: {
|
|
931
|
+
key: ["fip_setting"],
|
|
932
|
+
convertSet: async (entity, key, value, meta) => {
|
|
933
|
+
utils.assertString(value, key);
|
|
934
|
+
const zoneLookup = { manual: 1, schedule: 2, energy_saver: 3, holiday: 6 };
|
|
935
|
+
const zonemodeNum = utils.getFromLookup(meta.state.zone_mode, zoneLookup);
|
|
936
|
+
const fipLookup = { comfort: 0, "comfort_-1": 1, "comfort_-2": 2, energy_saving: 3, frost_protection: 4, off: 5 };
|
|
937
|
+
value = value.toLowerCase();
|
|
938
|
+
utils.validateValue(value, Object.keys(fipLookup));
|
|
939
|
+
const fipmodeNum = utils.getFromLookup(value, fipLookup);
|
|
940
|
+
const payload = {
|
|
941
|
+
zonemode: zonemodeNum,
|
|
942
|
+
fipmode: fipmodeNum,
|
|
943
|
+
reserved: 0xff,
|
|
944
|
+
};
|
|
945
|
+
await entity.command("hvacThermostat", "wiserSmartSetFipMode", payload, { srcEndpoint: 11, disableDefaultResponse: true });
|
|
946
|
+
return { state: { fip_setting: value } };
|
|
947
|
+
},
|
|
948
|
+
convertGet: async (entity, key, meta) => {
|
|
949
|
+
await entity.read("hvacThermostat", ["wiserSmartCurrentFilPiloteMode"]);
|
|
950
|
+
},
|
|
951
|
+
},
|
|
952
|
+
wiser_hact_config: {
|
|
953
|
+
key: ["hact_config"],
|
|
954
|
+
convertSet: async (entity, key, value, meta) => {
|
|
955
|
+
utils.assertString(value, key);
|
|
956
|
+
const lookup = { unconfigured: 0x00, setpoint_switch: 0x80, setpoint_fip: 0x82, fip_fip: 0x83 };
|
|
957
|
+
value = value.toLowerCase();
|
|
958
|
+
const mode = utils.getFromLookup(value, lookup);
|
|
959
|
+
await entity.write("hvacThermostat", { 57361: { value: mode, type: 0x18 } });
|
|
960
|
+
return { state: { hact_config: value } };
|
|
961
|
+
},
|
|
962
|
+
convertGet: async (entity, key, meta) => {
|
|
963
|
+
await entity.read("hvacThermostat", ["wiserSmartHactConfig"]);
|
|
964
|
+
},
|
|
965
|
+
},
|
|
966
|
+
wiser_zone_mode: {
|
|
967
|
+
key: ["zone_mode"],
|
|
968
|
+
convertSet: async (entity, key, value, meta) => {
|
|
969
|
+
const lookup = { manual: 1, schedule: 2, energy_saver: 3, holiday: 6 };
|
|
970
|
+
const zonemodeNum = utils.getFromLookup(value, lookup);
|
|
971
|
+
await entity.write("hvacThermostat", { 57360: { value: zonemodeNum, type: 0x30 } });
|
|
972
|
+
return { state: { zone_mode: value } };
|
|
973
|
+
},
|
|
974
|
+
convertGet: async (entity, key, meta) => {
|
|
975
|
+
await entity.read("hvacThermostat", ["wiserSmartZoneMode"]);
|
|
976
|
+
},
|
|
977
|
+
},
|
|
978
|
+
wiser_vact_calibrate_valve: {
|
|
979
|
+
key: ["calibrate_valve"],
|
|
980
|
+
convertSet: async (entity, key, value, meta) => {
|
|
981
|
+
await entity.command("hvacThermostat", "wiserSmartCalibrateValve", {}, { srcEndpoint: 11, disableDefaultResponse: true });
|
|
982
|
+
return { state: { calibrate_valve: value } };
|
|
983
|
+
},
|
|
984
|
+
},
|
|
985
|
+
wiser_sed_zone_mode: {
|
|
986
|
+
key: ["zone_mode"],
|
|
987
|
+
convertSet: (entity, key, value, meta) => {
|
|
988
|
+
return { state: { zone_mode: value } };
|
|
989
|
+
},
|
|
990
|
+
},
|
|
991
|
+
wiser_sed_occupied_heating_setpoint: {
|
|
992
|
+
key: ["occupied_heating_setpoint"],
|
|
993
|
+
convertSet: (entity, key, value, meta) => {
|
|
994
|
+
utils.assertNumber(value, key);
|
|
995
|
+
utils.assertEndpoint(entity);
|
|
996
|
+
const occupiedHeatingSetpoint = Number((Math.round(Number((value * 2).toFixed(1))) / 2).toFixed(1)) * 100;
|
|
997
|
+
entity.saveClusterAttributeKeyValue("hvacThermostat", { occupiedHeatingSetpoint });
|
|
998
|
+
return { state: { occupied_heating_setpoint: value } };
|
|
999
|
+
},
|
|
1000
|
+
},
|
|
1001
|
+
wiser_sed_thermostat_local_temperature_calibration: {
|
|
1002
|
+
key: ["local_temperature_calibration"],
|
|
1003
|
+
convertSet: async (entity, key, value, meta) => {
|
|
1004
|
+
utils.assertNumber(value);
|
|
1005
|
+
await entity.write("hvacThermostat", { localTemperatureCalibration: Math.round(value * 10) }, { srcEndpoint: 11, disableDefaultResponse: true });
|
|
1006
|
+
return { state: { local_temperature_calibration: value } };
|
|
1007
|
+
},
|
|
1008
|
+
},
|
|
1009
|
+
wiser_sed_thermostat_keypad_lockout: {
|
|
1010
|
+
key: ["keypad_lockout"],
|
|
1011
|
+
convertSet: async (entity, key, value, meta) => {
|
|
1012
|
+
await entity.write("hvacUserInterfaceCfg", { keypadLockout: utils.getKey(constants.keypadLockoutMode, value, value, Number) }, { srcEndpoint: 11, disableDefaultResponse: true });
|
|
1013
|
+
return { state: { keypad_lockout: value } };
|
|
1014
|
+
},
|
|
1015
|
+
},
|
|
1016
|
+
cctfr6400_thermostat_system_mode: {
|
|
1017
|
+
key: ["system_mode"],
|
|
1018
|
+
convertSet: (entity, key, value, meta) => {
|
|
1019
|
+
utils.assertEndpoint(entity);
|
|
1020
|
+
const systemMode = utils.getKey(constants.thermostatSystemModes, value, undefined, Number);
|
|
1021
|
+
entity.saveClusterAttributeKeyValue("hvacThermostat", { systemMode: systemMode });
|
|
1022
|
+
return { state: { system_mode: value } };
|
|
1023
|
+
},
|
|
1024
|
+
},
|
|
1025
|
+
cctfr6400_thermostat_occupied_heating_setpoint: {
|
|
1026
|
+
key: ["occupied_heating_setpoint"],
|
|
1027
|
+
convertSet: (entity, key, value, meta) => {
|
|
1028
|
+
utils.assertNumber(value, key);
|
|
1029
|
+
utils.assertEndpoint(entity);
|
|
1030
|
+
const occupiedHeatingSetpoint = Number((Math.round(Number((value * 2).toFixed(1))) / 2).toFixed(1)) * 100;
|
|
1031
|
+
entity.saveClusterAttributeKeyValue("hvacThermostat", { occupiedHeatingSetpoint: occupiedHeatingSetpoint });
|
|
1032
|
+
return { state: { occupied_heating_setpoint: value } };
|
|
1033
|
+
},
|
|
1034
|
+
},
|
|
1035
|
+
cctfr6400_thermostat_control_sequence_of_operation: {
|
|
1036
|
+
key: ["control_sequence_of_operation"],
|
|
1037
|
+
convertSet: (entity, key, value, meta) => {
|
|
1038
|
+
utils.assertEndpoint(entity);
|
|
1039
|
+
const val = utils.getKey(constants.thermostatControlSequenceOfOperations, value, value, Number);
|
|
1040
|
+
entity.saveClusterAttributeKeyValue("hvacThermostat", { ctrlSeqeOfOper: val });
|
|
1041
|
+
return { state: { control_sequence_of_operation: value } };
|
|
1042
|
+
},
|
|
1043
|
+
},
|
|
1044
|
+
cctfr6400_thermostat_pi_heating_demand: {
|
|
1045
|
+
key: ["pi_heating_demand"],
|
|
1046
|
+
convertSet: (entity, key, value, meta) => {
|
|
1047
|
+
utils.assertEndpoint(entity);
|
|
1048
|
+
entity.saveClusterAttributeKeyValue("hvacThermostat", { pIHeatingDemand: value });
|
|
1049
|
+
return { state: { pi_heating_demand: value } };
|
|
1050
|
+
},
|
|
1051
|
+
},
|
|
1052
|
+
schneider_thermostat_keypad_lockout: {
|
|
1053
|
+
key: ["keypad_lockout"],
|
|
1054
|
+
convertSet: async (entity, key, value, meta) => {
|
|
1055
|
+
utils.assertEndpoint(entity);
|
|
1056
|
+
const keypadLockout = utils.getKey(constants.keypadLockoutMode, value, value, Number);
|
|
1057
|
+
await entity.write("hvacUserInterfaceCfg", { keypadLockout });
|
|
1058
|
+
entity.saveClusterAttributeKeyValue("hvacUserInterfaceCfg", { keypadLockout });
|
|
1059
|
+
return { state: { keypad_lockout: value } };
|
|
1060
|
+
},
|
|
1061
|
+
},
|
|
1062
|
+
schneider_dimmer_mode: {
|
|
1063
|
+
key: ["dimmer_mode"],
|
|
1064
|
+
convertSet: async (entity, key, value, meta) => {
|
|
1065
|
+
const lookup = { RC: 1, RL: 2 };
|
|
1066
|
+
const mode = utils.getFromLookup(value, lookup);
|
|
1067
|
+
await entity.write("lightingBallastCfg", { wiserControlMode: mode }, { manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC });
|
|
1068
|
+
return { state: { dimmer_mode: value } };
|
|
1069
|
+
},
|
|
1070
|
+
convertGet: async (entity, key, meta) => {
|
|
1071
|
+
await entity.read("lightingBallastCfg", ["wiserControlMode"], {
|
|
1072
|
+
manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC,
|
|
1073
|
+
});
|
|
1074
|
+
},
|
|
1075
|
+
},
|
|
1076
|
+
cctfr6700_temperature_measured_value: {
|
|
1077
|
+
key: ["temperature_measured_value"],
|
|
1078
|
+
convertSet: async (entity, key, value, meta) => {
|
|
1079
|
+
utils.assertNumber(value);
|
|
1080
|
+
utils.assertEndpoint(entity);
|
|
1081
|
+
await entity.report("msTemperatureMeasurement", { measuredValue: Math.round(value * 100) });
|
|
1082
|
+
},
|
|
1083
|
+
},
|
|
768
1084
|
};
|
|
769
1085
|
const fzLocal = {
|
|
1086
|
+
schneider_ui_action: {
|
|
1087
|
+
cluster: "wiserDeviceInfo",
|
|
1088
|
+
type: "attributeReport",
|
|
1089
|
+
convert: (model, msg, publish, options, meta) => {
|
|
1090
|
+
if (utils.hasAlreadyProcessedMessage(msg, model))
|
|
1091
|
+
return;
|
|
1092
|
+
const data = msg.data.deviceInfo.split(",");
|
|
1093
|
+
if (data[0] === "UI" && data[1]) {
|
|
1094
|
+
const result = { action: utils.toSnakeCase(data[1]) };
|
|
1095
|
+
let screenAwake = globalStore.getValue(msg.endpoint, "screenAwake");
|
|
1096
|
+
screenAwake = screenAwake !== undefined ? screenAwake : false;
|
|
1097
|
+
const keypadLockedNumber = Number(msg.endpoint.getClusterAttributeValue("hvacUserInterfaceCfg", "keypadLockout"));
|
|
1098
|
+
const keypadLocked = keypadLockedNumber !== undefined ? keypadLockedNumber !== 0 : false;
|
|
1099
|
+
// Emulate UI temperature update
|
|
1100
|
+
if (data[1] === "ScreenWake") {
|
|
1101
|
+
globalStore.putValue(msg.endpoint, "screenAwake", true);
|
|
1102
|
+
}
|
|
1103
|
+
else if (data[1] === "ScreenSleep") {
|
|
1104
|
+
globalStore.putValue(msg.endpoint, "screenAwake", false);
|
|
1105
|
+
}
|
|
1106
|
+
else if (screenAwake && !keypadLocked) {
|
|
1107
|
+
let occupiedHeatingSetpoint = Number(msg.endpoint.getClusterAttributeValue("hvacThermostat", "occupiedHeatingSetpoint"));
|
|
1108
|
+
occupiedHeatingSetpoint = occupiedHeatingSetpoint != null ? occupiedHeatingSetpoint : 400;
|
|
1109
|
+
if (data[1] === "ButtonPressMinusDown") {
|
|
1110
|
+
occupiedHeatingSetpoint -= 50;
|
|
1111
|
+
}
|
|
1112
|
+
else if (data[1] === "ButtonPressPlusDown") {
|
|
1113
|
+
occupiedHeatingSetpoint += 50;
|
|
1114
|
+
}
|
|
1115
|
+
msg.endpoint.saveClusterAttributeKeyValue("hvacThermostat", { occupiedHeatingSetpoint: occupiedHeatingSetpoint });
|
|
1116
|
+
result.occupied_heating_setpoint = occupiedHeatingSetpoint / 100;
|
|
1117
|
+
}
|
|
1118
|
+
return result;
|
|
1119
|
+
}
|
|
1120
|
+
},
|
|
1121
|
+
},
|
|
770
1122
|
schneider_powertag: {
|
|
771
1123
|
cluster: "greenPower",
|
|
772
1124
|
type: ["commandNotification", "commandCommissioningNotification"],
|
|
@@ -775,17 +1127,24 @@ const fzLocal = {
|
|
|
775
1127
|
return;
|
|
776
1128
|
}
|
|
777
1129
|
const commandID = msg.data.commandID;
|
|
778
|
-
if (utils.hasAlreadyProcessedMessage(msg, model, msg.data.frameCounter, `${msg.device.ieeeAddr}_${commandID}`))
|
|
1130
|
+
if (utils.hasAlreadyProcessedMessage(msg, model, msg.data.frameCounter, `${msg.device.ieeeAddr}_${commandID}`)) {
|
|
779
1131
|
return;
|
|
1132
|
+
}
|
|
1133
|
+
if (commandID >= 0xe0)
|
|
1134
|
+
return; // Skip op commands
|
|
780
1135
|
const rxAfterTx = msg.data.options & (1 << 11);
|
|
781
1136
|
const ret = {};
|
|
782
1137
|
switch (commandID) {
|
|
1138
|
+
case 0xa0: {
|
|
1139
|
+
// Should handle this cluster as well
|
|
1140
|
+
// const cmd = msg.data.commandFrame as GpdAttributeReport;
|
|
1141
|
+
break;
|
|
1142
|
+
}
|
|
783
1143
|
case 0xa1: {
|
|
784
|
-
const
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
// haElectricalMeasurement
|
|
1144
|
+
const cmd = msg.data.commandFrame;
|
|
1145
|
+
switch (cmd.clusterID) {
|
|
1146
|
+
case zigbee_herdsman_1.Zcl.Clusters.haElectricalMeasurement.ID: {
|
|
1147
|
+
const attr = cmd.attributes;
|
|
789
1148
|
const acCurrentDivisor = attr.acCurrentDivisor;
|
|
790
1149
|
const acVoltageDivisor = attr.acVoltageDivisor;
|
|
791
1150
|
const acFrequencyDivisor = attr.acFrequencyDivisor;
|
|
@@ -837,24 +1196,21 @@ const fzLocal = {
|
|
|
837
1196
|
}
|
|
838
1197
|
break;
|
|
839
1198
|
}
|
|
840
|
-
case
|
|
841
|
-
|
|
1199
|
+
case zigbee_herdsman_1.Zcl.Clusters.seMetering.ID: {
|
|
1200
|
+
const attr = cmd.attributes;
|
|
842
1201
|
const divisor = attr.divisor;
|
|
843
1202
|
if (attr.currentSummDelivered !== undefined) {
|
|
844
1203
|
const val = attr.currentSummDelivered;
|
|
845
1204
|
ret.energy = val / divisor;
|
|
846
1205
|
}
|
|
847
1206
|
if (attr["16652"] !== undefined) {
|
|
848
|
-
|
|
849
|
-
ret.energy_phase_a = val / divisor;
|
|
1207
|
+
ret.energy_phase_a = attr["16652"] / divisor;
|
|
850
1208
|
}
|
|
851
1209
|
if (attr["16908"] !== undefined) {
|
|
852
|
-
|
|
853
|
-
ret.energy_phase_b = val / divisor;
|
|
1210
|
+
ret.energy_phase_b = attr["16908"] / divisor;
|
|
854
1211
|
}
|
|
855
1212
|
if (attr["17164"] !== undefined) {
|
|
856
|
-
|
|
857
|
-
ret.energy_phase_c = val / divisor;
|
|
1213
|
+
ret.energy_phase_c = attr["17164"] / divisor;
|
|
858
1214
|
}
|
|
859
1215
|
if (attr.powerFactor !== undefined) {
|
|
860
1216
|
ret.power_factor = attr.powerFactor;
|
|
@@ -864,9 +1220,11 @@ const fzLocal = {
|
|
|
864
1220
|
}
|
|
865
1221
|
break;
|
|
866
1222
|
}
|
|
867
|
-
case 0xa3:
|
|
1223
|
+
case 0xa3: {
|
|
868
1224
|
// Should handle this cluster as well
|
|
1225
|
+
// const cmd = msg.data.commandFrame as GpdManufMultiClusterAttributeReport;
|
|
869
1226
|
break;
|
|
1227
|
+
}
|
|
870
1228
|
}
|
|
871
1229
|
if (rxAfterTx) {
|
|
872
1230
|
// Send Schneider specific ACK to make PowerTag happy
|
|
@@ -930,6 +1288,158 @@ const fzLocal = {
|
|
|
930
1288
|
return result;
|
|
931
1289
|
},
|
|
932
1290
|
},
|
|
1291
|
+
wiser_lighting_ballast_configuration: {
|
|
1292
|
+
cluster: "lightingBallastCfg",
|
|
1293
|
+
type: ["attributeReport", "readResponse"],
|
|
1294
|
+
convert: (model, msg, publish, options, meta) => {
|
|
1295
|
+
const result = fz.lighting_ballast_configuration.convert(model, msg, publish, options, meta);
|
|
1296
|
+
if (result && msg.data.wiserControlMode !== undefined) {
|
|
1297
|
+
result.dimmer_mode = constants.wiserDimmerControlMode[msg.data.wiserControlMode];
|
|
1298
|
+
}
|
|
1299
|
+
return result;
|
|
1300
|
+
},
|
|
1301
|
+
},
|
|
1302
|
+
wiser_smart_setpoint_command_client: {
|
|
1303
|
+
cluster: "hvacThermostat",
|
|
1304
|
+
type: ["commandWiserSmartSetSetpoint"],
|
|
1305
|
+
convert: (model, msg, publish, options, meta) => {
|
|
1306
|
+
const attribute = {};
|
|
1307
|
+
const result = {};
|
|
1308
|
+
// The UI client on the thermostat also updates the server, so no need to readback/send again on next sync.
|
|
1309
|
+
// This also ensures the next client read of setpoint is in sync with the latest commanded value.
|
|
1310
|
+
attribute.occupiedHeatingSetpoint = msg.data.setpoint;
|
|
1311
|
+
msg.endpoint.saveClusterAttributeKeyValue("hvacThermostat", attribute);
|
|
1312
|
+
result.occupied_heating_setpoint = msg.data.setpoint / 100.0;
|
|
1313
|
+
logger_1.logger.debug(`received wiser setpoint command with value: '${msg.data.setpoint}'`, NS);
|
|
1314
|
+
return result;
|
|
1315
|
+
},
|
|
1316
|
+
},
|
|
1317
|
+
wiser_smart_thermostat: {
|
|
1318
|
+
cluster: "hvacThermostat",
|
|
1319
|
+
type: ["attributeReport", "readResponse"],
|
|
1320
|
+
convert: async (model, msg, publish, options, meta) => {
|
|
1321
|
+
const result = fz.thermostat.convert(model, msg, publish, options, meta);
|
|
1322
|
+
if (result) {
|
|
1323
|
+
if (msg.data.wiserSmartZoneMode !== undefined) {
|
|
1324
|
+
const lookup = { 1: "manual", 2: "schedule", 3: "energy_saver", 6: "holiday" };
|
|
1325
|
+
result.zone_mode = lookup[msg.data.wiserSmartZoneMode];
|
|
1326
|
+
}
|
|
1327
|
+
if (msg.data.wiserSmartHactConfig !== undefined) {
|
|
1328
|
+
const lookup = { 0: "unconfigured", 128: "setpoint_switch", 130: "setpoint_fip", 131: "fip_fip" };
|
|
1329
|
+
result.hact_config = lookup[msg.data.wiserSmartHactConfig];
|
|
1330
|
+
}
|
|
1331
|
+
if (msg.data.wiserSmartCurrentFilPiloteMode !== undefined) {
|
|
1332
|
+
const lookup = {
|
|
1333
|
+
0: "comfort",
|
|
1334
|
+
1: "comfort_-1",
|
|
1335
|
+
2: "comfort_-2",
|
|
1336
|
+
3: "energy_saving",
|
|
1337
|
+
4: "frost_protection",
|
|
1338
|
+
5: "off",
|
|
1339
|
+
};
|
|
1340
|
+
result.fip_setting = lookup[msg.data.wiserSmartCurrentFilPiloteMode];
|
|
1341
|
+
}
|
|
1342
|
+
if (msg.data.wiserSmartValvePosition !== undefined) {
|
|
1343
|
+
result.pi_heating_demand = msg.data.wiserSmartValvePosition;
|
|
1344
|
+
}
|
|
1345
|
+
if (msg.data.wiserSmartValveCalibrationStatus !== undefined) {
|
|
1346
|
+
const lookup = {
|
|
1347
|
+
0: "ongoing",
|
|
1348
|
+
1: "successful",
|
|
1349
|
+
2: "uncalibrated",
|
|
1350
|
+
3: "failed_e1",
|
|
1351
|
+
4: "failed_e2",
|
|
1352
|
+
5: "failed_e3",
|
|
1353
|
+
};
|
|
1354
|
+
result.valve_calibration_status = lookup[msg.data.wiserSmartValveCalibrationStatus];
|
|
1355
|
+
}
|
|
1356
|
+
// Radiator thermostats command changes from UI, but report value periodically for sync,
|
|
1357
|
+
// force an update of the value if it doesn't match the current existing value
|
|
1358
|
+
if (meta.device.modelID === "EH-ZB-VACT" &&
|
|
1359
|
+
msg.data.occupiedHeatingSetpoint !== undefined &&
|
|
1360
|
+
meta.state.occupied_heating_setpoint !== undefined) {
|
|
1361
|
+
if (result.occupied_heating_setpoint !== meta.state.occupied_heating_setpoint) {
|
|
1362
|
+
const lookup = { manual: 1, schedule: 2, energy_saver: 3, holiday: 6 };
|
|
1363
|
+
const zonemodeNum = lookup[Number(meta.state.zone_mode)];
|
|
1364
|
+
const setpoint = Number((Math.round(Number((Number(meta.state.occupied_heating_setpoint) * 2).toFixed(1))) / 2).toFixed(1)) * 100;
|
|
1365
|
+
const payload = {
|
|
1366
|
+
operatingmode: 0,
|
|
1367
|
+
zonemode: zonemodeNum,
|
|
1368
|
+
setpoint: setpoint,
|
|
1369
|
+
reserved: 0xff,
|
|
1370
|
+
};
|
|
1371
|
+
await msg.endpoint.command("hvacThermostat", "wiserSmartSetSetpoint", payload, {
|
|
1372
|
+
srcEndpoint: 11,
|
|
1373
|
+
disableDefaultResponse: true,
|
|
1374
|
+
});
|
|
1375
|
+
logger_1.logger.debug(`syncing vact setpoint was: '${result.occupied_heating_setpoint}' now: '${meta.state.occupied_heating_setpoint}'`, NS);
|
|
1376
|
+
}
|
|
1377
|
+
}
|
|
1378
|
+
else {
|
|
1379
|
+
publish(result);
|
|
1380
|
+
}
|
|
1381
|
+
}
|
|
1382
|
+
},
|
|
1383
|
+
},
|
|
1384
|
+
wiser_smart_thermostat_client: {
|
|
1385
|
+
cluster: "hvacThermostat",
|
|
1386
|
+
type: "read",
|
|
1387
|
+
convert: async (model, msg, publish, options, meta) => {
|
|
1388
|
+
const response = {};
|
|
1389
|
+
if (msg.data.includes("wiserSmartZoneMode") || msg.data.includes(0xe010)) {
|
|
1390
|
+
// Zone Mode
|
|
1391
|
+
const lookup = { manual: 1, schedule: 2, energy_saver: 3, holiday: 6 };
|
|
1392
|
+
const zonemodeNum = meta.state.zone_mode ? lookup[meta.state.zone_mode] : 1;
|
|
1393
|
+
response.wiserSmartZoneMode = { value: zonemodeNum };
|
|
1394
|
+
await msg.endpoint.readResponse(msg.cluster, msg.meta.zclTransactionSequenceNumber, response, { srcEndpoint: 11 });
|
|
1395
|
+
}
|
|
1396
|
+
},
|
|
1397
|
+
},
|
|
1398
|
+
thermostat_running_state_from_piheat: {
|
|
1399
|
+
cluster: "hvacThermostat",
|
|
1400
|
+
type: ["attributeReport", "readResponse"],
|
|
1401
|
+
convert: (model, msg, publish, options, meta) => {
|
|
1402
|
+
const result = fz.thermostat.convert(model, msg, publish, options, meta);
|
|
1403
|
+
if (result && msg.data.pIHeatingDemand !== undefined) {
|
|
1404
|
+
result.running_state = msg.data.pIHeatingDemand >= 10 ? "heat" : "idle";
|
|
1405
|
+
}
|
|
1406
|
+
return result;
|
|
1407
|
+
},
|
|
1408
|
+
},
|
|
1409
|
+
schneider_temperature: {
|
|
1410
|
+
cluster: "msTemperatureMeasurement",
|
|
1411
|
+
type: ["attributeReport", "readResponse"],
|
|
1412
|
+
convert: (model, msg, publish, options, meta) => {
|
|
1413
|
+
const temperature = msg.data.measuredValue / 100.0;
|
|
1414
|
+
const property = (0, utils_1.postfixWithEndpointName)("local_temperature", msg, model, meta);
|
|
1415
|
+
return { [property]: temperature };
|
|
1416
|
+
},
|
|
1417
|
+
},
|
|
1418
|
+
schneider_lighting_ballast_configuration: {
|
|
1419
|
+
cluster: "lightingBallastCfg",
|
|
1420
|
+
type: ["attributeReport", "readResponse"],
|
|
1421
|
+
convert: (model, msg, publish, options, meta) => {
|
|
1422
|
+
const result = fz.lighting_ballast_configuration.convert(model, msg, publish, options, meta);
|
|
1423
|
+
const lookup = { 1: "RC", 2: "RL" };
|
|
1424
|
+
if (result && msg.data.wiserControlMode !== undefined) {
|
|
1425
|
+
result.dimmer_mode = lookup[msg.data.wiserControlMode];
|
|
1426
|
+
}
|
|
1427
|
+
return result;
|
|
1428
|
+
},
|
|
1429
|
+
},
|
|
1430
|
+
// biome-ignore lint/style/useNamingConvention: ignored using `--suppress`
|
|
1431
|
+
EKO09738_metering: {
|
|
1432
|
+
// Elko EKO09738 and EKO09716 reports power in mW, scale to W
|
|
1433
|
+
cluster: "seMetering",
|
|
1434
|
+
type: ["attributeReport", "readResponse"],
|
|
1435
|
+
convert: (model, msg, publish, options, meta) => {
|
|
1436
|
+
const result = fz.metering.convert(model, msg, publish, options, meta);
|
|
1437
|
+
if (result && result.power !== undefined) {
|
|
1438
|
+
result.power /= 1000;
|
|
1439
|
+
}
|
|
1440
|
+
return result;
|
|
1441
|
+
},
|
|
1442
|
+
},
|
|
933
1443
|
};
|
|
934
1444
|
exports.definitions = [
|
|
935
1445
|
{
|
|
@@ -989,10 +1499,10 @@ exports.definitions = [
|
|
|
989
1499
|
model: "WV704R0A0902",
|
|
990
1500
|
vendor: "Schneider Electric",
|
|
991
1501
|
description: "Wiser radiator thermostat",
|
|
1502
|
+
extend: [schneiderElectricExtend.addWiserDeviceInfoCluster()],
|
|
992
1503
|
fromZigbee: [fz.ignore_haDiagnostic, fz.thermostat, fz.battery, fz.hvac_user_interface, fzLocal.wiser_device_info],
|
|
993
1504
|
toZigbee: [tz.thermostat_occupied_heating_setpoint, tz.thermostat_keypad_lockout],
|
|
994
1505
|
meta: { battery: { voltageToPercentage: { min: 2500, max: 3200 } } },
|
|
995
|
-
extend: [schneiderElectricExtend.addWiserDeviceInfoCluster()],
|
|
996
1506
|
exposes: [
|
|
997
1507
|
e
|
|
998
1508
|
.climate()
|
|
@@ -1036,9 +1546,12 @@ exports.definitions = [
|
|
|
1036
1546
|
vendor: "Schneider Electric",
|
|
1037
1547
|
description: "Micro module dimmer",
|
|
1038
1548
|
ota: true,
|
|
1039
|
-
extend: [
|
|
1040
|
-
|
|
1041
|
-
|
|
1549
|
+
extend: [
|
|
1550
|
+
schneiderElectricExtend.addSchneiderLightingBallastCfgCluster(),
|
|
1551
|
+
m.light({ powerOnBehavior: false, configureReporting: true, levelConfig: {} }),
|
|
1552
|
+
],
|
|
1553
|
+
fromZigbee: [fzLocal.wiser_lighting_ballast_configuration],
|
|
1554
|
+
toZigbee: [tz.ballast_config, tzLocal.wiser_dimmer_mode],
|
|
1042
1555
|
exposes: [
|
|
1043
1556
|
e
|
|
1044
1557
|
.numeric("ballast_minimum_level", ea.ALL)
|
|
@@ -1074,9 +1587,9 @@ exports.definitions = [
|
|
|
1074
1587
|
vendor: "Schneider Electric",
|
|
1075
1588
|
description: "Micro module dimmer with neutral lead",
|
|
1076
1589
|
ota: true,
|
|
1077
|
-
extend: [m.light({ configureReporting: true, levelConfig: {} })],
|
|
1078
|
-
fromZigbee: [
|
|
1079
|
-
toZigbee: [tz.ballast_config,
|
|
1590
|
+
extend: [schneiderElectricExtend.addSchneiderLightingBallastCfgCluster(), m.light({ configureReporting: true, levelConfig: {} })],
|
|
1591
|
+
fromZigbee: [fzLocal.wiser_lighting_ballast_configuration],
|
|
1592
|
+
toZigbee: [tz.ballast_config, tzLocal.wiser_dimmer_mode],
|
|
1080
1593
|
exposes: [
|
|
1081
1594
|
e
|
|
1082
1595
|
.numeric("ballast_minimum_level", ea.ALL)
|
|
@@ -1106,8 +1619,9 @@ exports.definitions = [
|
|
|
1106
1619
|
model: "WDE002334",
|
|
1107
1620
|
vendor: "Schneider Electric",
|
|
1108
1621
|
description: "Rotary dimmer",
|
|
1109
|
-
|
|
1110
|
-
|
|
1622
|
+
extend: [schneiderElectricExtend.addSchneiderLightingBallastCfgCluster()],
|
|
1623
|
+
fromZigbee: [fz.on_off, fz.brightness, fz.level_config, fzLocal.wiser_lighting_ballast_configuration],
|
|
1624
|
+
toZigbee: [tz.light_onoff_brightness, tz.level_config, tz.ballast_config, tzLocal.wiser_dimmer_mode],
|
|
1111
1625
|
exposes: [
|
|
1112
1626
|
e.light_brightness().withLevelConfig(),
|
|
1113
1627
|
e
|
|
@@ -1163,8 +1677,9 @@ exports.definitions = [
|
|
|
1163
1677
|
model: "WDE002960",
|
|
1164
1678
|
vendor: "Schneider Electric",
|
|
1165
1679
|
description: "Push button dimmer",
|
|
1166
|
-
|
|
1167
|
-
|
|
1680
|
+
extend: [schneiderElectricExtend.addSchneiderLightingBallastCfgCluster()],
|
|
1681
|
+
fromZigbee: [fz.on_off, fz.brightness, fz.level_config, fzLocal.wiser_lighting_ballast_configuration],
|
|
1682
|
+
toZigbee: [tz.light_onoff_brightness, tz.level_config, tz.ballast_config, tzLocal.wiser_dimmer_mode],
|
|
1168
1683
|
exposes: [
|
|
1169
1684
|
e.light_brightness().withLevelConfig(),
|
|
1170
1685
|
e
|
|
@@ -1319,24 +1834,16 @@ exports.definitions = [
|
|
|
1319
1834
|
model: "CCT711119",
|
|
1320
1835
|
vendor: "Schneider Electric",
|
|
1321
1836
|
description: "Wiser smart plug",
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1837
|
+
version: "0.0.1",
|
|
1838
|
+
extend: [
|
|
1839
|
+
m.onOff(),
|
|
1840
|
+
m.electricityMeter({
|
|
1841
|
+
power: { min: 5, change: 1 },
|
|
1842
|
+
energy: { min: "1_MINUTE", change: 1 },
|
|
1843
|
+
voltage: false,
|
|
1844
|
+
current: false,
|
|
1845
|
+
}),
|
|
1329
1846
|
],
|
|
1330
|
-
configure: async (device, coordinatorEndpoint) => {
|
|
1331
|
-
const endpoint = device.getEndpoint(1);
|
|
1332
|
-
await reporting.bind(endpoint, coordinatorEndpoint, ["genOnOff", "haElectricalMeasurement", "seMetering"]);
|
|
1333
|
-
await reporting.onOff(endpoint);
|
|
1334
|
-
// only activePower seems to be support, although compliance document states otherwise
|
|
1335
|
-
await endpoint.read("haElectricalMeasurement", ["acPowerMultiplier", "acPowerDivisor"]);
|
|
1336
|
-
await reporting.activePower(endpoint);
|
|
1337
|
-
await reporting.readMeteringMultiplierDivisor(endpoint);
|
|
1338
|
-
await reporting.currentSummDelivered(endpoint, { min: 60, change: 1 });
|
|
1339
|
-
},
|
|
1340
1847
|
},
|
|
1341
1848
|
{
|
|
1342
1849
|
zigbeeModel: ["U201DST600ZB"],
|
|
@@ -1357,9 +1864,9 @@ exports.definitions = [
|
|
|
1357
1864
|
model: "CCTFR6100Z3",
|
|
1358
1865
|
vendor: "Schneider Electric",
|
|
1359
1866
|
description: "Wiser radiator thermostat",
|
|
1867
|
+
extend: [schneiderElectricExtend.addWiserDeviceInfoCluster()],
|
|
1360
1868
|
fromZigbee: [fz.ignore_haDiagnostic, fz.thermostat, fz.battery, fz.hvac_user_interface, fzLocal.wiser_device_info],
|
|
1361
1869
|
toZigbee: [tz.thermostat_occupied_heating_setpoint, tz.thermostat_keypad_lockout],
|
|
1362
|
-
extend: [schneiderElectricExtend.addWiserDeviceInfoCluster()],
|
|
1363
1870
|
exposes: [
|
|
1364
1871
|
e
|
|
1365
1872
|
.climate()
|
|
@@ -1424,8 +1931,8 @@ exports.definitions = [
|
|
|
1424
1931
|
model: "MEG5116-0300/MEG5171-0000",
|
|
1425
1932
|
vendor: "Schneider Electric",
|
|
1426
1933
|
description: "Merten MEG5171 PlusLink Dimmer insert with Merten Wiser System M Push Button (1fold)",
|
|
1427
|
-
fromZigbee: [fz.on_off, fz.brightness, fz.level_config,
|
|
1428
|
-
toZigbee: [tz.light_onoff_brightness, tz.level_config, tz.ballast_config,
|
|
1934
|
+
fromZigbee: [fz.on_off, fz.brightness, fz.level_config, fzLocal.wiser_lighting_ballast_configuration],
|
|
1935
|
+
toZigbee: [tz.light_onoff_brightness, tz.level_config, tz.ballast_config, tzLocal.wiser_dimmer_mode],
|
|
1429
1936
|
exposes: [
|
|
1430
1937
|
e.light_brightness().withLevelConfig(),
|
|
1431
1938
|
e
|
|
@@ -1442,7 +1949,12 @@ exports.definitions = [
|
|
|
1442
1949
|
.enum("dimmer_mode", ea.ALL, ["auto", "rc", "rl", "rl_led"])
|
|
1443
1950
|
.withDescription("Sets dimming mode to autodetect or fixed RC/RL/RL_LED mode (max load is reduced in RL_LED)"),
|
|
1444
1951
|
],
|
|
1445
|
-
extend: [
|
|
1952
|
+
extend: [
|
|
1953
|
+
schneiderElectricExtend.addSchneiderLightingBallastCfgCluster(),
|
|
1954
|
+
schneiderElectricExtend.addSchneiderLightSwitchConfigurationCluster(),
|
|
1955
|
+
indicatorMode(),
|
|
1956
|
+
switchActions(),
|
|
1957
|
+
],
|
|
1446
1958
|
configure: async (device, coordinatorEndpoint) => {
|
|
1447
1959
|
const endpoint = device.getEndpoint(3);
|
|
1448
1960
|
await reporting.bind(endpoint, coordinatorEndpoint, ["genOnOff", "genLevelCtrl", "lightingBallastCfg"]);
|
|
@@ -1455,8 +1967,8 @@ exports.definitions = [
|
|
|
1455
1967
|
model: "MEG5126-0300/MEG5171-0000",
|
|
1456
1968
|
vendor: "Schneider Electric",
|
|
1457
1969
|
description: "Merten MEG5171 PlusLink Dimmer insert with Merten Wiser System M Push Button (2fold)",
|
|
1458
|
-
fromZigbee: [fz.on_off, fz.brightness, fz.level_config,
|
|
1459
|
-
toZigbee: [tz.light_onoff_brightness, tz.level_config, tz.ballast_config,
|
|
1970
|
+
fromZigbee: [fz.on_off, fz.brightness, fz.level_config, fzLocal.wiser_lighting_ballast_configuration],
|
|
1971
|
+
toZigbee: [tz.light_onoff_brightness, tz.level_config, tz.ballast_config, tzLocal.wiser_dimmer_mode],
|
|
1460
1972
|
exposes: [
|
|
1461
1973
|
e.light_brightness().withLevelConfig(),
|
|
1462
1974
|
e
|
|
@@ -1474,6 +1986,7 @@ exports.definitions = [
|
|
|
1474
1986
|
.withDescription("Sets dimming mode to autodetect or fixed RC/RL/RL_LED mode (max load is reduced in RL_LED)"),
|
|
1475
1987
|
],
|
|
1476
1988
|
extend: [
|
|
1989
|
+
schneiderElectricExtend.addSchneiderLightingBallastCfgCluster(),
|
|
1477
1990
|
schneiderElectricExtend.addSchneiderLightSwitchConfigurationCluster(),
|
|
1478
1991
|
indicatorMode("right"),
|
|
1479
1992
|
indicatorMode("left"),
|
|
@@ -1496,8 +2009,8 @@ exports.definitions = [
|
|
|
1496
2009
|
model: "MEG5126-0300/MEG5172-0000",
|
|
1497
2010
|
vendor: "Schneider Electric",
|
|
1498
2011
|
description: "Merten MEG5172 PlusLink Dimmer insert with Merten Wiser System M Push Button (2fold)",
|
|
1499
|
-
fromZigbee: [
|
|
1500
|
-
toZigbee: [tz.ballast_config,
|
|
2012
|
+
fromZigbee: [fzLocal.wiser_lighting_ballast_configuration],
|
|
2013
|
+
toZigbee: [tz.ballast_config, tzLocal.wiser_dimmer_mode],
|
|
1501
2014
|
exposes: [
|
|
1502
2015
|
e
|
|
1503
2016
|
.numeric("ballast_minimum_level", ea.ALL)
|
|
@@ -1514,9 +2027,10 @@ exports.definitions = [
|
|
|
1514
2027
|
.withDescription("Sets dimming mode to autodetect or fixed RC/RL/RL_LED mode (max load is reduced in RL_LED)"),
|
|
1515
2028
|
],
|
|
1516
2029
|
extend: [
|
|
2030
|
+
schneiderElectricExtend.addSchneiderLightingBallastCfgCluster(),
|
|
2031
|
+
schneiderElectricExtend.addSchneiderLightSwitchConfigurationCluster(),
|
|
1517
2032
|
m.deviceEndpoints({ endpoints: { left: 4, right: 3, left_btn: 22, right_btn: 21 } }),
|
|
1518
2033
|
m.light({ endpointNames: ["left", "right"], configureReporting: true }),
|
|
1519
|
-
schneiderElectricExtend.addSchneiderLightSwitchConfigurationCluster(),
|
|
1520
2034
|
switchActions("left_btn"),
|
|
1521
2035
|
switchActions("right_btn"),
|
|
1522
2036
|
indicatorMode("left_btn"),
|
|
@@ -1568,8 +2082,15 @@ exports.definitions = [
|
|
|
1568
2082
|
model: "545D6102",
|
|
1569
2083
|
vendor: "Schneider Electric",
|
|
1570
2084
|
description: "LK FUGA wiser wireless dimmer",
|
|
1571
|
-
fromZigbee: [
|
|
1572
|
-
|
|
2085
|
+
fromZigbee: [
|
|
2086
|
+
fzLocal.schneider_lighting_ballast_configuration,
|
|
2087
|
+
fz.command_recall,
|
|
2088
|
+
fz.command_on,
|
|
2089
|
+
fz.command_off,
|
|
2090
|
+
fz.command_move,
|
|
2091
|
+
fz.command_stop,
|
|
2092
|
+
],
|
|
2093
|
+
toZigbee: [tz.ballast_config, tzLocal.schneider_dimmer_mode],
|
|
1573
2094
|
endpoint: (device) => {
|
|
1574
2095
|
return { l1: 3, s1: 21, s2: 22, s3: 23, s4: 24 };
|
|
1575
2096
|
},
|
|
@@ -1577,6 +2098,7 @@ exports.definitions = [
|
|
|
1577
2098
|
extend: [
|
|
1578
2099
|
m.light({ endpointNames: ["l1"], configureReporting: true, levelConfig: {} }),
|
|
1579
2100
|
schneiderElectricExtend.addSchneiderLightSwitchConfigurationCluster(),
|
|
2101
|
+
schneiderElectricExtend.addSchneiderLightingBallastCfgCluster(),
|
|
1580
2102
|
indicatorMode("s1"),
|
|
1581
2103
|
indicatorMode("s2"),
|
|
1582
2104
|
indicatorMode("s3"),
|
|
@@ -1681,13 +2203,12 @@ exports.definitions = [
|
|
|
1681
2203
|
whiteLabel: [{ model: "CCTFR6710", fingerprint: [{ modelID: "CCTFR6710" }] }],
|
|
1682
2204
|
fromZigbee: [fz.thermostat, fz.metering],
|
|
1683
2205
|
toZigbee: [
|
|
1684
|
-
|
|
2206
|
+
tzLocal.cctfr6700_temperature_measured_value,
|
|
1685
2207
|
tz.thermostat_system_mode,
|
|
1686
2208
|
tz.thermostat_running_state,
|
|
1687
2209
|
tz.thermostat_local_temperature,
|
|
1688
2210
|
tz.thermostat_occupied_heating_setpoint,
|
|
1689
2211
|
tz.thermostat_control_sequence_of_operation,
|
|
1690
|
-
tz.schneider_temperature_measured_value,
|
|
1691
2212
|
],
|
|
1692
2213
|
extend: [schneiderElectricExtend.addHeatingCoolingOutputClusterServer(), schneiderElectricExtend.pilotMode()],
|
|
1693
2214
|
exposes: [
|
|
@@ -1716,13 +2237,14 @@ exports.definitions = [
|
|
|
1716
2237
|
model: "CCTFR6400",
|
|
1717
2238
|
vendor: "Schneider Electric",
|
|
1718
2239
|
description: "Temperature/Humidity measurement with thermostat interface",
|
|
1719
|
-
|
|
2240
|
+
extend: [schneiderElectricExtend.customThermostatCluster()],
|
|
2241
|
+
fromZigbee: [fz.battery, fzLocal.schneider_temperature, fz.humidity, fz.thermostat, fzLocal.schneider_ui_action],
|
|
1720
2242
|
toZigbee: [
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
2243
|
+
tzLocal.cctfr6400_thermostat_system_mode,
|
|
2244
|
+
tzLocal.cctfr6400_thermostat_occupied_heating_setpoint,
|
|
2245
|
+
tzLocal.cctfr6400_thermostat_control_sequence_of_operation,
|
|
2246
|
+
tzLocal.cctfr6400_thermostat_pi_heating_demand,
|
|
2247
|
+
tzLocal.schneider_thermostat_keypad_lockout,
|
|
1726
2248
|
],
|
|
1727
2249
|
exposes: [
|
|
1728
2250
|
e.keypad_lockout().withAccess(ea.STATE_SET),
|
|
@@ -1790,19 +2312,20 @@ exports.definitions = [
|
|
|
1790
2312
|
model: "EER53000",
|
|
1791
2313
|
vendor: "Schneider Electric",
|
|
1792
2314
|
description: "Wiser radiator thermostat (VACT)",
|
|
2315
|
+
extend: [schneiderElectricExtend.customThermostatCluster()],
|
|
1793
2316
|
fromZigbee: [
|
|
1794
2317
|
fz.battery,
|
|
1795
2318
|
fz.hvac_user_interface,
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
2319
|
+
fzLocal.wiser_smart_thermostat,
|
|
2320
|
+
fzLocal.wiser_smart_thermostat_client,
|
|
2321
|
+
fzLocal.wiser_smart_setpoint_command_client,
|
|
1799
2322
|
],
|
|
1800
2323
|
toZigbee: [
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
2324
|
+
tzLocal.wiser_sed_thermostat_local_temperature_calibration,
|
|
2325
|
+
tzLocal.wiser_sed_occupied_heating_setpoint,
|
|
2326
|
+
tzLocal.wiser_sed_thermostat_keypad_lockout,
|
|
2327
|
+
tzLocal.wiser_vact_calibrate_valve,
|
|
2328
|
+
tzLocal.wiser_sed_zone_mode,
|
|
1806
2329
|
],
|
|
1807
2330
|
exposes: [
|
|
1808
2331
|
e.battery(),
|
|
@@ -1847,14 +2370,15 @@ exports.definitions = [
|
|
|
1847
2370
|
model: "EER51000",
|
|
1848
2371
|
vendor: "Schneider Electric",
|
|
1849
2372
|
description: "Wiser thermostat (RTS)",
|
|
2373
|
+
extend: [schneiderElectricExtend.customThermostatCluster()],
|
|
1850
2374
|
fromZigbee: [
|
|
1851
2375
|
fz.battery,
|
|
1852
2376
|
fz.hvac_user_interface,
|
|
1853
|
-
|
|
1854
|
-
|
|
1855
|
-
|
|
2377
|
+
fzLocal.wiser_smart_thermostat_client,
|
|
2378
|
+
fzLocal.wiser_smart_setpoint_command_client,
|
|
2379
|
+
fzLocal.schneider_temperature,
|
|
1856
2380
|
],
|
|
1857
|
-
toZigbee: [
|
|
2381
|
+
toZigbee: [tzLocal.wiser_sed_zone_mode, tzLocal.wiser_sed_occupied_heating_setpoint],
|
|
1858
2382
|
exposes: [
|
|
1859
2383
|
e.battery(),
|
|
1860
2384
|
e.climate().withSetpoint("occupied_heating_setpoint", 7, 30, 0.5, ea.STATE_SET).withLocalTemperature(ea.STATE),
|
|
@@ -1898,13 +2422,14 @@ exports.definitions = [
|
|
|
1898
2422
|
model: "EER50000",
|
|
1899
2423
|
vendor: "Schneider Electric",
|
|
1900
2424
|
description: "Wiser H-Relay (HACT)",
|
|
1901
|
-
|
|
2425
|
+
extend: [schneiderElectricExtend.customThermostatCluster()],
|
|
2426
|
+
fromZigbee: [fzLocal.wiser_smart_thermostat, fz.metering, fz.identify],
|
|
1902
2427
|
toZigbee: [
|
|
1903
2428
|
tz.thermostat_local_temperature,
|
|
1904
2429
|
tz.thermostat_occupied_heating_setpoint,
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
|
|
2430
|
+
tzLocal.wiser_fip_setting,
|
|
2431
|
+
tzLocal.wiser_hact_config,
|
|
2432
|
+
tzLocal.wiser_zone_mode,
|
|
1908
2433
|
tz.identify,
|
|
1909
2434
|
],
|
|
1910
2435
|
exposes: [
|
|
@@ -1949,7 +2474,7 @@ exports.definitions = [
|
|
|
1949
2474
|
model: "EKO09738",
|
|
1950
2475
|
vendor: "Schneider Electric",
|
|
1951
2476
|
description: "Zigbee smart socket with power meter",
|
|
1952
|
-
fromZigbee: [fz.on_off, fz.electrical_measurement,
|
|
2477
|
+
fromZigbee: [fz.on_off, fz.electrical_measurement, fzLocal.EKO09738_metering, fz.power_on_behavior],
|
|
1953
2478
|
toZigbee: [tz.on_off, tz.power_on_behavior],
|
|
1954
2479
|
exposes: [
|
|
1955
2480
|
e.switch(),
|
|
@@ -1974,7 +2499,7 @@ exports.definitions = [
|
|
|
1974
2499
|
model: "EKO09716",
|
|
1975
2500
|
vendor: "Schneider Electric",
|
|
1976
2501
|
description: "Zigbee smart socket with power meter",
|
|
1977
|
-
fromZigbee: [fz.on_off, fz.electrical_measurement,
|
|
2502
|
+
fromZigbee: [fz.on_off, fz.electrical_measurement, fzLocal.EKO09738_metering, fz.power_on_behavior],
|
|
1978
2503
|
toZigbee: [tz.on_off, tz.power_on_behavior],
|
|
1979
2504
|
exposes: [
|
|
1980
2505
|
e.switch(),
|
|
@@ -1999,7 +2524,7 @@ exports.definitions = [
|
|
|
1999
2524
|
model: "545D6115",
|
|
2000
2525
|
vendor: "Schneider Electric",
|
|
2001
2526
|
description: "LK FUGA wiser wireless socket outlet",
|
|
2002
|
-
fromZigbee: [fz.on_off, fz.electrical_measurement,
|
|
2527
|
+
fromZigbee: [fz.on_off, fz.electrical_measurement, fzLocal.EKO09738_metering, fz.power_on_behavior],
|
|
2003
2528
|
toZigbee: [tz.on_off, tz.power_on_behavior],
|
|
2004
2529
|
extend: [schneiderElectricExtend.addSchneiderFanSwitchConfigurationCluster(), socketIndicatorMode()],
|
|
2005
2530
|
exposes: [
|
|
@@ -2067,16 +2592,20 @@ exports.definitions = [
|
|
|
2067
2592
|
model: "CCT595011",
|
|
2068
2593
|
vendor: "Schneider Electric",
|
|
2069
2594
|
description: "Wiser motion sensor",
|
|
2070
|
-
|
|
2071
|
-
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
2077
|
-
|
|
2078
|
-
|
|
2079
|
-
|
|
2595
|
+
version: "0.0.1",
|
|
2596
|
+
extend: [
|
|
2597
|
+
m.battery(),
|
|
2598
|
+
m.iasZoneAlarm({ zoneType: "occupancy", zoneAttributes: ["alarm_2", "battery_low"] }),
|
|
2599
|
+
m.illuminance(),
|
|
2600
|
+
m.enumLookup({
|
|
2601
|
+
name: "sensitivity_level",
|
|
2602
|
+
description: "Sensitivity level for the occupancy sensor",
|
|
2603
|
+
attribute: "currentZoneSensitivityLevel",
|
|
2604
|
+
cluster: "ssIasZone",
|
|
2605
|
+
lookup: { low: 0x00, medium: 0x01, high: 0x02 },
|
|
2606
|
+
entityCategory: "config",
|
|
2607
|
+
}),
|
|
2608
|
+
],
|
|
2080
2609
|
},
|
|
2081
2610
|
{
|
|
2082
2611
|
zigbeeModel: ["CH/Socket/2"],
|
|
@@ -2176,7 +2705,7 @@ exports.definitions = [
|
|
|
2176
2705
|
vendor: "Schneider Electric",
|
|
2177
2706
|
description: "Smart thermostat",
|
|
2178
2707
|
extend: [
|
|
2179
|
-
|
|
2708
|
+
m.thermostat({
|
|
2180
2709
|
localTemperature: {
|
|
2181
2710
|
values: {
|
|
2182
2711
|
description: "The temperature measured by the selected sensor (see 'Local temperature source select', Ambient or External).",
|
|
@@ -2187,10 +2716,16 @@ exports.definitions = [
|
|
|
2187
2716
|
maxHeatSetpointLimit: { min: 4, max: 40, step: 0.5 },
|
|
2188
2717
|
minHeatSetpointLimit: { min: 4, max: 40, step: 0.5 },
|
|
2189
2718
|
},
|
|
2719
|
+
runningState: {
|
|
2720
|
+
values: ["idle", "heat"],
|
|
2721
|
+
toZigbee: { skip: true },
|
|
2722
|
+
configure: { skip: true },
|
|
2723
|
+
},
|
|
2190
2724
|
systemMode: { values: ["off", "heat"] },
|
|
2191
|
-
piHeatingDemand: { values: true },
|
|
2725
|
+
piHeatingDemand: { values: true, dontMapPIHeatingDemand: true },
|
|
2192
2726
|
ctrlSeqeOfOper: { values: ["cooling_only", "heating_only"] },
|
|
2193
2727
|
}),
|
|
2728
|
+
schneiderElectricExtend.runningStateFromPower(),
|
|
2194
2729
|
m.electricityMeter({
|
|
2195
2730
|
cluster: "metering",
|
|
2196
2731
|
voltage: false,
|
|
@@ -2211,52 +2746,19 @@ exports.definitions = [
|
|
|
2211
2746
|
schneiderElectricExtend.thermostatApplication(),
|
|
2212
2747
|
schneiderElectricExtend.heatingEmitter(),
|
|
2213
2748
|
schneiderElectricExtend.addHeatingCoolingOutputClusterServer(),
|
|
2214
|
-
|
|
2215
|
-
name: "heating_output_mode",
|
|
2216
|
-
cluster: "heatingCoolingOutputClusterServer",
|
|
2217
|
-
attribute: "heatingOutputMode",
|
|
2749
|
+
schneiderElectricExtend.heatingOutputMode({
|
|
2218
2750
|
description: "On devices with alternate heating output types, this selects which should be used to control the heating unit. This attribute is (mistakenly) also called pilot_mode on some devices.",
|
|
2219
|
-
entityCategory: "config",
|
|
2220
|
-
access: "ALL",
|
|
2221
2751
|
lookup: { Disabled: 0, Relay: 1 },
|
|
2222
2752
|
}),
|
|
2223
2753
|
schneiderElectricExtend.customTemperatureMeasurementCluster(),
|
|
2224
2754
|
m.deviceEndpoints({
|
|
2225
2755
|
endpoints: { floor: 3 },
|
|
2226
2756
|
}),
|
|
2227
|
-
|
|
2228
|
-
name: "temperature_sensor_correction",
|
|
2229
|
-
cluster: "msTemperatureMeasurement",
|
|
2230
|
-
attribute: "sensorCorrection",
|
|
2231
|
-
description: "This is a user correction, possibly negative, to be added to the temperature measured by the sensor.",
|
|
2232
|
-
unit: "°C",
|
|
2233
|
-
scale: 100,
|
|
2234
|
-
valueMin: -9,
|
|
2235
|
-
valueMax: 9,
|
|
2236
|
-
valueStep: 0.01,
|
|
2757
|
+
schneiderElectricExtend.sensorCorrection({
|
|
2237
2758
|
endpointNames: ["floor"],
|
|
2238
|
-
access: "ALL",
|
|
2239
|
-
entityCategory: "config",
|
|
2240
|
-
zigbeeCommandOptions: { manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC },
|
|
2241
2759
|
}),
|
|
2242
|
-
|
|
2243
|
-
name: "temperature_sensor_type",
|
|
2244
|
-
cluster: "msTemperatureMeasurement",
|
|
2245
|
-
attribute: "temperatureSensorType",
|
|
2246
|
-
description: "This is used to specify the type of temperature sensor connected to this input",
|
|
2247
|
-
entityCategory: "config",
|
|
2248
|
-
access: "ALL",
|
|
2760
|
+
schneiderElectricExtend.temperatureSensorType({
|
|
2249
2761
|
endpointName: "floor",
|
|
2250
|
-
lookup: {
|
|
2251
|
-
"2kΩ sensor from HRT/Alre": 1,
|
|
2252
|
-
"10kΩ sensor from B+J": 2,
|
|
2253
|
-
"12kΩ sensor from OJ": 3,
|
|
2254
|
-
"15kΩ sensor from DEVI": 4,
|
|
2255
|
-
"33kΩ sensor from EBERLE": 5,
|
|
2256
|
-
"47kΩ sensor from CTM": 6,
|
|
2257
|
-
"No sensor": 0xff,
|
|
2258
|
-
},
|
|
2259
|
-
zigbeeCommandOptions: { manufacturerCode: zigbee_herdsman_1.Zcl.ManufacturerCode.SCHNEIDER_ELECTRIC },
|
|
2260
2762
|
}),
|
|
2261
2763
|
m.enumLookup({
|
|
2262
2764
|
name: "temperature_display_mode",
|
|
@@ -2284,59 +2786,96 @@ exports.definitions = [
|
|
|
2284
2786
|
model: "WDE002497",
|
|
2285
2787
|
vendor: "Schneider Electric",
|
|
2286
2788
|
description: "Smart thermostat",
|
|
2287
|
-
fromZigbee: [fz.stelpro_thermostat, fz.metering, fzLocal.wiser_device_info, fz.hvac_user_interface, fz.temperature],
|
|
2288
|
-
toZigbee: [
|
|
2289
|
-
tz.thermostat_occupied_heating_setpoint,
|
|
2290
|
-
tz.thermostat_system_mode,
|
|
2291
|
-
tz.thermostat_running_state,
|
|
2292
|
-
tz.thermostat_local_temperature,
|
|
2293
|
-
tz.thermostat_control_sequence_of_operation,
|
|
2294
|
-
tz.schneider_thermostat_keypad_lockout,
|
|
2295
|
-
tz.thermostat_temperature_display_mode,
|
|
2296
|
-
],
|
|
2297
2789
|
extend: [
|
|
2298
|
-
|
|
2790
|
+
m.thermostat({
|
|
2791
|
+
localTemperature: {
|
|
2792
|
+
values: {
|
|
2793
|
+
description: "The temperature measured by the selected sensor (see 'Local temperature source select', Ambient or External).",
|
|
2794
|
+
},
|
|
2795
|
+
},
|
|
2796
|
+
setpoints: { values: { occupiedHeatingSetpoint: { min: 4, max: 40, step: 0.5 } } },
|
|
2797
|
+
setpointsLimit: {
|
|
2798
|
+
maxHeatSetpointLimit: { min: 4, max: 40, step: 0.5 },
|
|
2799
|
+
minHeatSetpointLimit: { min: 4, max: 40, step: 0.5 },
|
|
2800
|
+
},
|
|
2801
|
+
runningState: {
|
|
2802
|
+
values: ["idle", "heat"],
|
|
2803
|
+
toZigbee: { skip: true },
|
|
2804
|
+
configure: { skip: true },
|
|
2805
|
+
},
|
|
2806
|
+
systemMode: { values: ["off", "heat"] },
|
|
2807
|
+
piHeatingDemand: { values: true },
|
|
2808
|
+
ctrlSeqeOfOper: { values: ["cooling_only", "heating_only"] },
|
|
2809
|
+
}),
|
|
2810
|
+
schneiderElectricExtend.runningStateFromPower(),
|
|
2811
|
+
m.electricityMeter({
|
|
2812
|
+
cluster: "metering",
|
|
2813
|
+
voltage: false,
|
|
2814
|
+
current: false,
|
|
2815
|
+
configureReporting: true,
|
|
2816
|
+
energy: { divisor: 1000, multiplier: 1 },
|
|
2817
|
+
}),
|
|
2818
|
+
schneiderElectricExtend.customMeteringCluster(),
|
|
2819
|
+
schneiderElectricExtend.fixedLoadDemand(),
|
|
2820
|
+
schneiderElectricExtend.addHvacUserInterfaceCfgCustomAttributes(),
|
|
2821
|
+
schneiderElectricExtend.displayBrightnessActive(),
|
|
2822
|
+
schneiderElectricExtend.displayBrightnessInactive(),
|
|
2823
|
+
schneiderElectricExtend.displayActiveTimeout(),
|
|
2824
|
+
schneiderElectricExtend.customThermostatCluster(),
|
|
2825
|
+
schneiderElectricExtend.localTemperatureSourceSelect(),
|
|
2826
|
+
schneiderElectricExtend.controlType(),
|
|
2827
|
+
schneiderElectricExtend.controlStatus(),
|
|
2828
|
+
schneiderElectricExtend.thermostatApplication(),
|
|
2829
|
+
schneiderElectricExtend.heatingEmitter(),
|
|
2299
2830
|
schneiderElectricExtend.addHeatingCoolingOutputClusterServer(),
|
|
2300
|
-
schneiderElectricExtend.
|
|
2301
|
-
|
|
2302
|
-
|
|
2303
|
-
|
|
2304
|
-
|
|
2305
|
-
|
|
2306
|
-
|
|
2307
|
-
|
|
2308
|
-
|
|
2309
|
-
|
|
2310
|
-
|
|
2311
|
-
|
|
2312
|
-
|
|
2313
|
-
|
|
2314
|
-
|
|
2831
|
+
schneiderElectricExtend.heatingOutputMode({
|
|
2832
|
+
description: "On devices with alternate heating output types, this selects which should be used to control the heating unit. This attribute is (mistakenly) also called pilot_mode on some devices.",
|
|
2833
|
+
lookup: { Disabled: 0, Relay: 1 },
|
|
2834
|
+
}),
|
|
2835
|
+
schneiderElectricExtend.customTemperatureMeasurementCluster(),
|
|
2836
|
+
m.deviceEndpoints({
|
|
2837
|
+
endpoints: { floor: 3 },
|
|
2838
|
+
}),
|
|
2839
|
+
schneiderElectricExtend.sensorCorrection({
|
|
2840
|
+
endpointNames: ["floor"],
|
|
2841
|
+
}),
|
|
2842
|
+
schneiderElectricExtend.temperatureSensorType({
|
|
2843
|
+
endpointName: "floor",
|
|
2844
|
+
}),
|
|
2845
|
+
m.enumLookup({
|
|
2846
|
+
name: "temperature_display_mode",
|
|
2847
|
+
lookup: { celsius: 0 },
|
|
2848
|
+
cluster: "hvacUserInterfaceCfg",
|
|
2849
|
+
attribute: "tempDisplayMode",
|
|
2850
|
+
description: "The unit of the temperature displayed on the device screen. Celsius is the only supported unit.",
|
|
2851
|
+
entityCategory: "config",
|
|
2852
|
+
}),
|
|
2853
|
+
m.binary({
|
|
2854
|
+
name: "child_lock",
|
|
2855
|
+
valueOn: ["LOCK", 1],
|
|
2856
|
+
valueOff: ["UNLOCK", 0],
|
|
2857
|
+
cluster: "hvacUserInterfaceCfg",
|
|
2858
|
+
attribute: "keypadLockout",
|
|
2859
|
+
description: "Enables/disables physical input on the device",
|
|
2860
|
+
access: "ALL",
|
|
2861
|
+
reporting: { min: 0, max: 3600, change: 0 },
|
|
2862
|
+
}),
|
|
2863
|
+
schneiderElectricExtend.addWiserDeviceInfoCluster(),
|
|
2315
2864
|
],
|
|
2316
|
-
configure: async (device, coordinatorEndpoint) => {
|
|
2317
|
-
const endpoint1 = device.getEndpoint(1);
|
|
2318
|
-
const endpoint2 = device.getEndpoint(2);
|
|
2319
|
-
await reporting.bind(endpoint1, coordinatorEndpoint, ["hvacThermostat"]);
|
|
2320
|
-
await reporting.thermostatPIHeatingDemand(endpoint1);
|
|
2321
|
-
await reporting.thermostatOccupiedHeatingSetpoint(endpoint1);
|
|
2322
|
-
await reporting.bind(endpoint2, coordinatorEndpoint, ["msTemperatureMeasurement"]);
|
|
2323
|
-
await reporting.temperature(endpoint2);
|
|
2324
|
-
await endpoint1.read("hvacUserInterfaceCfg", ["keypadLockout", "tempDisplayMode"]);
|
|
2325
|
-
},
|
|
2326
2865
|
},
|
|
2327
2866
|
{
|
|
2328
2867
|
zigbeeModel: ["WDE011680"],
|
|
2329
2868
|
model: "WDE011680",
|
|
2330
2869
|
vendor: "Schneider Electric",
|
|
2331
2870
|
description: "Smart thermostat",
|
|
2332
|
-
fromZigbee: [
|
|
2871
|
+
fromZigbee: [fzLocal.thermostat_running_state_from_piheat, fz.metering, fzLocal.wiser_device_info, fz.hvac_user_interface, fz.temperature],
|
|
2333
2872
|
toZigbee: [
|
|
2334
2873
|
tz.thermostat_occupied_heating_setpoint,
|
|
2335
2874
|
tz.thermostat_system_mode,
|
|
2336
2875
|
tz.thermostat_running_state,
|
|
2337
2876
|
tz.thermostat_local_temperature,
|
|
2338
2877
|
tz.thermostat_control_sequence_of_operation,
|
|
2339
|
-
|
|
2878
|
+
tzLocal.schneider_thermostat_keypad_lockout,
|
|
2340
2879
|
tz.thermostat_temperature_display_mode,
|
|
2341
2880
|
],
|
|
2342
2881
|
extend: [
|
|
@@ -2688,14 +3227,21 @@ exports.definitions = [
|
|
|
2688
3227
|
model: "S520619",
|
|
2689
3228
|
vendor: "Schneider Electric",
|
|
2690
3229
|
description: "Wiser Odace Smart thermostat",
|
|
2691
|
-
fromZigbee: [
|
|
3230
|
+
fromZigbee: [
|
|
3231
|
+
fzLocal.thermostat_running_state_from_piheat,
|
|
3232
|
+
fz.metering,
|
|
3233
|
+
fzLocal.wiser_device_info,
|
|
3234
|
+
fz.hvac_user_interface,
|
|
3235
|
+
fz.temperature,
|
|
3236
|
+
fz.occupancy,
|
|
3237
|
+
],
|
|
2692
3238
|
toZigbee: [
|
|
2693
3239
|
tz.thermostat_occupied_heating_setpoint,
|
|
2694
3240
|
tz.thermostat_occupied_cooling_setpoint,
|
|
2695
3241
|
tz.thermostat_system_mode,
|
|
2696
3242
|
tz.thermostat_local_temperature,
|
|
2697
3243
|
tz.thermostat_control_sequence_of_operation,
|
|
2698
|
-
|
|
3244
|
+
tzLocal.schneider_thermostat_keypad_lockout,
|
|
2699
3245
|
tz.thermostat_temperature_display_mode,
|
|
2700
3246
|
tz.thermostat_running_state,
|
|
2701
3247
|
],
|
|
@@ -2789,12 +3335,22 @@ exports.definitions = [
|
|
|
2789
3335
|
e.power_factor(),
|
|
2790
3336
|
e.energy(),
|
|
2791
3337
|
e.ac_frequency(),
|
|
2792
|
-
e.numeric("
|
|
2793
|
-
e.numeric("
|
|
2794
|
-
e.numeric("
|
|
2795
|
-
e.numeric("
|
|
2796
|
-
e.numeric("
|
|
2797
|
-
e.numeric("
|
|
3338
|
+
e.numeric("voltage_phase_ab", ea.STATE).withUnit("V").withDescription("Measured electrical potential value between phase L1 and L2"),
|
|
3339
|
+
e.numeric("voltage_phase_bc", ea.STATE).withUnit("V").withDescription("Measured electrical potential value between phase L2 and L3"),
|
|
3340
|
+
e.numeric("voltage_phase_ca", ea.STATE).withUnit("V").withDescription("Measured electrical potential value between phase L1 and L3"),
|
|
3341
|
+
e.numeric("current_phase_a", ea.STATE).withUnit("A").withDescription("Instantaneous measured electrical current on phase L1"),
|
|
3342
|
+
e.numeric("current_phase_b", ea.STATE).withUnit("A").withDescription("Instantaneous measured electrical current on phase L2"),
|
|
3343
|
+
e.numeric("current_phase_c", ea.STATE).withUnit("A").withDescription("Instantaneous measured electrical current on phase L3"),
|
|
3344
|
+
],
|
|
3345
|
+
},
|
|
3346
|
+
{
|
|
3347
|
+
zigbeeModel: ["UFH"],
|
|
3348
|
+
model: "CCTFR6000",
|
|
3349
|
+
vendor: "Schneider Electric",
|
|
3350
|
+
description: "6 Channel Boiler Actuator",
|
|
3351
|
+
extend: [
|
|
3352
|
+
m.deviceEndpoints({ endpoints: { "1": 1, "2": 2, "3": 3, "4": 4, "5": 5, "6": 6, "7": 7, "8": 8 } }),
|
|
3353
|
+
m.onOff({ powerOnBehavior: false, endpointNames: ["1", "2", "3", "4", "5", "6", "7", "8"] }),
|
|
2798
3354
|
],
|
|
2799
3355
|
},
|
|
2800
3356
|
];
|