zigbee-herdsman-converters 21.19.0 → 21.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +36 -0
- package/devices/acuity_brands_lighting.js +37 -4
- package/devices/acuity_brands_lighting.js.map +1 -1
- package/devices/adeo.js +41 -41
- package/devices/adeo.js.map +1 -1
- package/devices/adurosmart.js +11 -11
- package/devices/adurosmart.js.map +1 -1
- package/devices/aeotec.d.ts.map +1 -1
- package/devices/aeotec.js +55 -22
- package/devices/aeotec.js.map +1 -1
- package/devices/airam.js +3 -3
- package/devices/airam.js.map +1 -1
- package/devices/ajax_online.js +6 -6
- package/devices/ajax_online.js.map +1 -1
- package/devices/alchemy.js +36 -3
- package/devices/alchemy.js.map +1 -1
- package/devices/amina.js +17 -17
- package/devices/amina.js.map +1 -1
- package/devices/anchor.js +35 -2
- package/devices/anchor.js.map +1 -1
- package/devices/atsmart.js +35 -2
- package/devices/atsmart.js.map +1 -1
- package/devices/aurora_lighting.d.ts.map +1 -1
- package/devices/aurora_lighting.js +12 -13
- package/devices/aurora_lighting.js.map +1 -1
- package/devices/awox.js +6 -6
- package/devices/awox.js.map +1 -1
- package/devices/bankamp.js +35 -2
- package/devices/bankamp.js.map +1 -1
- package/devices/bega.js +36 -3
- package/devices/bega.js.map +1 -1
- package/devices/belkin.js +35 -2
- package/devices/belkin.js.map +1 -1
- package/devices/bitron.js +5 -5
- package/devices/bitron.js.map +1 -1
- package/devices/blitzwolf.js +3 -3
- package/devices/blitzwolf.js.map +1 -1
- package/devices/bosch.d.ts.map +1 -1
- package/devices/bosch.js +46 -47
- package/devices/bosch.js.map +1 -1
- package/devices/bouffalo_lab.js +35 -2
- package/devices/bouffalo_lab.js.map +1 -1
- package/devices/bticino.js +3 -3
- package/devices/bticino.js.map +1 -1
- package/devices/busch_jaeger.js +2 -2
- package/devices/busch_jaeger.js.map +1 -1
- package/devices/calex.js +3 -3
- package/devices/calex.js.map +1 -1
- package/devices/candeo.d.ts.map +1 -1
- package/devices/candeo.js +63 -23
- package/devices/candeo.js.map +1 -1
- package/devices/casaia.js +3 -3
- package/devices/casaia.js.map +1 -1
- package/devices/centralite.js +3 -3
- package/devices/centralite.js.map +1 -1
- package/devices/chacon.js +36 -3
- package/devices/chacon.js.map +1 -1
- package/devices/cleode.js +35 -2
- package/devices/cleode.js.map +1 -1
- package/devices/climax.js +3 -3
- package/devices/climax.js.map +1 -1
- package/devices/commercial_electric.js +35 -2
- package/devices/commercial_electric.js.map +1 -1
- package/devices/cree.js +35 -2
- package/devices/cree.js.map +1 -1
- package/devices/ctm.d.ts.map +1 -1
- package/devices/ctm.js +2 -3
- package/devices/ctm.js.map +1 -1
- package/devices/custom_devices_diy.d.ts.map +1 -1
- package/devices/custom_devices_diy.js +50 -51
- package/devices/custom_devices_diy.js.map +1 -1
- package/devices/cy_lighting.js +35 -2
- package/devices/cy_lighting.js.map +1 -1
- package/devices/databyte.js +2 -2
- package/devices/databyte.js.map +1 -1
- package/devices/datek.d.ts.map +1 -1
- package/devices/datek.js +3 -4
- package/devices/datek.js.map +1 -1
- package/devices/dawon_dns.js +16 -16
- package/devices/dawon_dns.js.map +1 -1
- package/devices/develco.js +29 -29
- package/devices/develco.js.map +1 -1
- package/devices/diyruz.d.ts.map +1 -1
- package/devices/diyruz.js +4 -5
- package/devices/diyruz.js.map +1 -1
- package/devices/dnake.js +35 -2
- package/devices/dnake.js.map +1 -1
- package/devices/dowsing_reynolds.js +35 -2
- package/devices/dowsing_reynolds.js.map +1 -1
- package/devices/dresden_elektronik.js +40 -7
- package/devices/dresden_elektronik.js.map +1 -1
- package/devices/easyiot.js +7 -7
- package/devices/easyiot.js.map +1 -1
- package/devices/eatonhalo_led.js +35 -2
- package/devices/eatonhalo_led.js.map +1 -1
- package/devices/ecodim.js +4 -4
- package/devices/ecodim.js.map +1 -1
- package/devices/ecosmart.js +42 -9
- package/devices/ecosmart.js.map +1 -1
- package/devices/edp.js +2 -2
- package/devices/edp.js.map +1 -1
- package/devices/efekta.d.ts.map +1 -1
- package/devices/efekta.js +152 -119
- package/devices/efekta.js.map +1 -1
- package/devices/eglo.js +5 -5
- package/devices/eglo.js.map +1 -1
- package/devices/elko.js +13 -13
- package/devices/elko.js.map +1 -1
- package/devices/enbrighten.js +46 -13
- package/devices/enbrighten.js.map +1 -1
- package/devices/envilar.js +7 -7
- package/devices/envilar.js.map +1 -1
- package/devices/essentialb.js +10 -10
- package/devices/essentialb.js.map +1 -1
- package/devices/eucontrols.js +35 -2
- package/devices/eucontrols.js.map +1 -1
- package/devices/evn.js +2 -2
- package/devices/evn.js.map +1 -1
- package/devices/evvr.js +35 -2
- package/devices/evvr.js.map +1 -1
- package/devices/ewelink.d.ts.map +1 -1
- package/devices/ewelink.js +27 -27
- package/devices/ewelink.js.map +1 -1
- package/devices/ezex.js +35 -2
- package/devices/ezex.js.map +1 -1
- package/devices/fantem.d.ts.map +1 -1
- package/devices/fantem.js +1 -2
- package/devices/fantem.js.map +1 -1
- package/devices/feibit.d.ts.map +1 -1
- package/devices/feibit.js +24 -20
- package/devices/feibit.js.map +1 -1
- package/devices/frient.js +38 -5
- package/devices/frient.js.map +1 -1
- package/devices/futurehome.js +2 -2
- package/devices/futurehome.js.map +1 -1
- package/devices/ge.js +8 -8
- package/devices/ge.js.map +1 -1
- package/devices/gewiss.js +4 -4
- package/devices/gewiss.js.map +1 -1
- package/devices/gidealed.js +35 -2
- package/devices/gidealed.js.map +1 -1
- package/devices/giderwel.js +35 -2
- package/devices/giderwel.js.map +1 -1
- package/devices/gledopto.js +16 -16
- package/devices/gledopto.js.map +1 -1
- package/devices/gmy.js +35 -2
- package/devices/gmy.js.map +1 -1
- package/devices/gs.d.ts.map +1 -1
- package/devices/gs.js +46 -13
- package/devices/gs.js.map +1 -1
- package/devices/gumax.js +35 -2
- package/devices/gumax.js.map +1 -1
- package/devices/halemeier.js +5 -5
- package/devices/halemeier.js.map +1 -1
- package/devices/hampton_bay.js +3 -3
- package/devices/hampton_bay.js.map +1 -1
- package/devices/heatit.js +35 -2
- package/devices/heatit.js.map +1 -1
- package/devices/heiman.d.ts.map +1 -1
- package/devices/heiman.js +3 -4
- package/devices/heiman.js.map +1 -1
- package/devices/heimgard_technologies.js +2 -2
- package/devices/heimgard_technologies.js.map +1 -1
- package/devices/hej.js +45 -12
- package/devices/hej.js.map +1 -1
- package/devices/hfh.js +35 -2
- package/devices/hfh.js.map +1 -1
- package/devices/hilux.js +36 -3
- package/devices/hilux.js.map +1 -1
- package/devices/hive.js +10 -10
- package/devices/hive.js.map +1 -1
- package/devices/honyar.js +2 -2
- package/devices/honyar.js.map +1 -1
- package/devices/hornbach.js +47 -14
- package/devices/hornbach.js.map +1 -1
- package/devices/hzc_electric.d.ts.map +1 -1
- package/devices/hzc_electric.js +4 -5
- package/devices/hzc_electric.js.map +1 -1
- package/devices/icasa.js +7 -7
- package/devices/icasa.js.map +1 -1
- package/devices/idinio.js +35 -2
- package/devices/idinio.js.map +1 -1
- package/devices/ihorn.js +2 -2
- package/devices/ihorn.js.map +1 -1
- package/devices/ikea.d.ts.map +1 -1
- package/devices/ikea.js +168 -130
- package/devices/ikea.js.map +1 -1
- package/devices/ilightsin.js +35 -2
- package/devices/ilightsin.js.map +1 -1
- package/devices/iluminize.d.ts.map +1 -1
- package/devices/iluminize.js +30 -30
- package/devices/iluminize.js.map +1 -1
- package/devices/ilux.js +35 -2
- package/devices/ilux.js.map +1 -1
- package/devices/imhotepcreation.d.ts.map +1 -1
- package/devices/imhotepcreation.js +3 -10
- package/devices/imhotepcreation.js.map +1 -1
- package/devices/immax.d.ts.map +1 -1
- package/devices/immax.js +9 -10
- package/devices/immax.js.map +1 -1
- package/devices/imou.js +39 -6
- package/devices/imou.js.map +1 -1
- package/devices/innr.js +99 -99
- package/devices/innr.js.map +1 -1
- package/devices/inovelli.js +12 -12
- package/devices/inovelli.js.map +1 -1
- package/devices/iolloi.js +35 -2
- package/devices/iolloi.js.map +1 -1
- package/devices/iris.js +2 -2
- package/devices/iris.js.map +1 -1
- package/devices/istar.js +36 -3
- package/devices/istar.js.map +1 -1
- package/devices/jasco.js +37 -4
- package/devices/jasco.js.map +1 -1
- package/devices/jiawen.js +36 -3
- package/devices/jiawen.js.map +1 -1
- package/devices/jumitech.js +35 -2
- package/devices/jumitech.js.map +1 -1
- package/devices/klikaanklikuit.js +36 -3
- package/devices/klikaanklikuit.js.map +1 -1
- package/devices/konke.d.ts.map +1 -1
- package/devices/konke.js +4 -5
- package/devices/konke.js.map +1 -1
- package/devices/ksentry.js +35 -2
- package/devices/ksentry.js.map +1 -1
- package/devices/kurvia.js +35 -2
- package/devices/kurvia.js.map +1 -1
- package/devices/lanesto.js +35 -2
- package/devices/lanesto.js.map +1 -1
- package/devices/lds.js +35 -2
- package/devices/lds.js.map +1 -1
- package/devices/led_trading.js +3 -3
- package/devices/led_trading.js.map +1 -1
- package/devices/ledvance.js +37 -4
- package/devices/ledvance.js.map +1 -1
- package/devices/leedarson.d.ts.map +1 -1
- package/devices/leedarson.js +9 -10
- package/devices/leedarson.js.map +1 -1
- package/devices/legrand.js +9 -9
- package/devices/legrand.js.map +1 -1
- package/devices/lellki.js +6 -6
- package/devices/lellki.js.map +1 -1
- package/devices/letsled.js +35 -2
- package/devices/letsled.js.map +1 -1
- package/devices/leviton.js +7 -7
- package/devices/leviton.js.map +1 -1
- package/devices/lg.js +37 -4
- package/devices/lg.js.map +1 -1
- package/devices/lidl.d.ts.map +1 -1
- package/devices/lidl.js +6 -3
- package/devices/lidl.js.map +1 -1
- package/devices/lifecontrol.d.ts.map +1 -1
- package/devices/lifecontrol.js +14 -14
- package/devices/lifecontrol.js.map +1 -1
- package/devices/lightsolutions.js +38 -5
- package/devices/lightsolutions.js.map +1 -1
- package/devices/linkind.js +10 -10
- package/devices/linkind.js.map +1 -1
- package/devices/livingwise.js +4 -4
- package/devices/livingwise.js.map +1 -1
- package/devices/lonsonho.js +6 -6
- package/devices/lonsonho.js.map +1 -1
- package/devices/ls.js +4 -4
- package/devices/ls.js.map +1 -1
- package/devices/lubeez.js +35 -2
- package/devices/lubeez.js.map +1 -1
- package/devices/lumi.d.ts.map +1 -1
- package/devices/lumi.js +103 -104
- package/devices/lumi.js.map +1 -1
- package/devices/lupus.js +3 -3
- package/devices/lupus.js.map +1 -1
- package/devices/lutron.js +2 -2
- package/devices/lutron.js.map +1 -1
- package/devices/m_elec.js +38 -5
- package/devices/m_elec.js.map +1 -1
- package/devices/matcall_bv.js +36 -3
- package/devices/matcall_bv.js.map +1 -1
- package/devices/micromatic.js +35 -2
- package/devices/micromatic.js.map +1 -1
- package/devices/modular.js +35 -2
- package/devices/modular.js.map +1 -1
- package/devices/moes.d.ts.map +1 -1
- package/devices/moes.js +5 -5
- package/devices/moes.js.map +1 -1
- package/devices/muller_licht.js +5 -5
- package/devices/muller_licht.js.map +1 -1
- package/devices/multiterm.js +2 -2
- package/devices/multiterm.js.map +1 -1
- package/devices/namron.d.ts.map +1 -1
- package/devices/namron.js +35 -36
- package/devices/namron.js.map +1 -1
- package/devices/nanoleaf.js +35 -2
- package/devices/nanoleaf.js.map +1 -1
- package/devices/nedis.js +1 -1
- package/devices/nedis.js.map +1 -1
- package/devices/neo.js +2 -2
- package/devices/neo.js.map +1 -1
- package/devices/nexelec.js +35 -2
- package/devices/nexelec.js.map +1 -1
- package/devices/niviss.js +35 -2
- package/devices/niviss.js.map +1 -1
- package/devices/nodon.d.ts.map +1 -1
- package/devices/nodon.js +21 -21
- package/devices/nodon.js.map +1 -1
- package/devices/nordtronic.js +38 -5
- package/devices/nordtronic.js.map +1 -1
- package/devices/nue_3a.js +30 -30
- package/devices/nue_3a.js.map +1 -1
- package/devices/orvibo.js +23 -23
- package/devices/orvibo.js.map +1 -1
- package/devices/osram.js +3 -3
- package/devices/osram.js.map +1 -1
- package/devices/owon.d.ts.map +1 -1
- package/devices/owon.js +7 -8
- package/devices/owon.js.map +1 -1
- package/devices/paul_neuhaus.js +11 -11
- package/devices/paul_neuhaus.js.map +1 -1
- package/devices/paulmann.js +33 -33
- package/devices/paulmann.js.map +1 -1
- package/devices/perenio.js +2 -2
- package/devices/perenio.js.map +1 -1
- package/devices/philio.js +35 -2
- package/devices/philio.js.map +1 -1
- package/devices/philips.d.ts.map +1 -1
- package/devices/philips.js +4 -5
- package/devices/philips.js.map +1 -1
- package/devices/prolight.js +6 -6
- package/devices/prolight.js.map +1 -1
- package/devices/pushok.d.ts.map +1 -1
- package/devices/pushok.js +74 -41
- package/devices/pushok.js.map +1 -1
- package/devices/qa.js +18 -18
- package/devices/qa.js.map +1 -1
- package/devices/quotra.js +36 -3
- package/devices/quotra.js.map +1 -1
- package/devices/rademacher.js +37 -4
- package/devices/rademacher.js.map +1 -1
- package/devices/radium.js +35 -2
- package/devices/radium.js.map +1 -1
- package/devices/raex.js +35 -2
- package/devices/raex.js.map +1 -1
- package/devices/rgb_genie.js +2 -2
- package/devices/rgb_genie.js.map +1 -1
- package/devices/robb.d.ts.map +1 -1
- package/devices/robb.js +25 -25
- package/devices/robb.js.map +1 -1
- package/devices/salus_controls.js +7 -7
- package/devices/salus_controls.js.map +1 -1
- package/devices/samotech.js +43 -10
- package/devices/samotech.js.map +1 -1
- package/devices/sber.js +44 -11
- package/devices/sber.js.map +1 -1
- package/devices/scanproducts.js +36 -3
- package/devices/scanproducts.js.map +1 -1
- package/devices/schneider_electric.d.ts.map +1 -1
- package/devices/schneider_electric.js +83 -84
- package/devices/schneider_electric.js.map +1 -1
- package/devices/schwaiger.js +7 -7
- package/devices/schwaiger.js.map +1 -1
- package/devices/seastar_intelligence.js +35 -2
- package/devices/seastar_intelligence.js.map +1 -1
- package/devices/sengled.d.ts +2 -2
- package/devices/sengled.d.ts.map +1 -1
- package/devices/sengled.js +62 -29
- package/devices/sengled.js.map +1 -1
- package/devices/shenzhen_homa.js +44 -11
- package/devices/shenzhen_homa.js.map +1 -1
- package/devices/shinasystem.d.ts.map +1 -1
- package/devices/shinasystem.js +36 -37
- package/devices/shinasystem.js.map +1 -1
- package/devices/shyugj.js +36 -3
- package/devices/shyugj.js.map +1 -1
- package/devices/sinope.js +13 -13
- package/devices/sinope.js.map +1 -1
- package/devices/slv.js +37 -4
- package/devices/slv.js.map +1 -1
- package/devices/smart_home_pty.js +36 -3
- package/devices/smart_home_pty.js.map +1 -1
- package/devices/smartthings.js +4 -4
- package/devices/smartthings.js.map +1 -1
- package/devices/smlight.js +35 -2
- package/devices/smlight.js.map +1 -1
- package/devices/sohan_electric.js +35 -2
- package/devices/sohan_electric.js.map +1 -1
- package/devices/solaredge.js +35 -2
- package/devices/solaredge.js.map +1 -1
- package/devices/soma.js +35 -2
- package/devices/soma.js.map +1 -1
- package/devices/somfy.js +4 -4
- package/devices/somfy.js.map +1 -1
- package/devices/sonoff.d.ts.map +1 -1
- package/devices/sonoff.js +65 -65
- package/devices/sonoff.js.map +1 -1
- package/devices/sowilo.js +35 -2
- package/devices/sowilo.js.map +1 -1
- package/devices/spotmau.js +38 -5
- package/devices/spotmau.js.map +1 -1
- package/devices/sunricher.d.ts.map +1 -1
- package/devices/sunricher.js +96 -63
- package/devices/sunricher.js.map +1 -1
- package/devices/tci.js +37 -4
- package/devices/tci.js.map +1 -1
- package/devices/terncy.d.ts.map +1 -1
- package/devices/terncy.js +3 -4
- package/devices/terncy.js.map +1 -1
- package/devices/the_light_group.js +4 -4
- package/devices/the_light_group.js.map +1 -1
- package/devices/third_reality.d.ts.map +1 -1
- package/devices/third_reality.js +38 -39
- package/devices/third_reality.js.map +1 -1
- package/devices/tlwglobal.js +37 -4
- package/devices/tlwglobal.js.map +1 -1
- package/devices/trust.js +5 -5
- package/devices/trust.js.map +1 -1
- package/devices/tuya.d.ts.map +1 -1
- package/devices/tuya.js +113 -36
- package/devices/tuya.js.map +1 -1
- package/devices/ubisys.js +8 -8
- package/devices/ubisys.js.map +1 -1
- package/devices/vbled.js +35 -2
- package/devices/vbled.js.map +1 -1
- package/devices/vesternet.js +3 -3
- package/devices/vesternet.js.map +1 -1
- package/devices/villeroy_boch.js +36 -3
- package/devices/villeroy_boch.js.map +1 -1
- package/devices/vimar.js +4 -4
- package/devices/vimar.js.map +1 -1
- package/devices/visonic.js +2 -2
- package/devices/visonic.js.map +1 -1
- package/devices/vrey.js +35 -2
- package/devices/vrey.js.map +1 -1
- package/devices/weten.js +2 -2
- package/devices/weten.js.map +1 -1
- package/devices/wirenboard.d.ts.map +1 -1
- package/devices/wirenboard.js +66 -23
- package/devices/wirenboard.js.map +1 -1
- package/devices/wisdom.js +35 -2
- package/devices/wisdom.js.map +1 -1
- package/devices/xal.js +37 -4
- package/devices/xal.js.map +1 -1
- package/devices/xinghuoyuan.js +35 -2
- package/devices/xinghuoyuan.js.map +1 -1
- package/devices/xyzroe.js +9 -9
- package/devices/xyzroe.js.map +1 -1
- package/devices/yale.js +3 -3
- package/devices/yale.js.map +1 -1
- package/devices/yandex.d.ts.map +1 -1
- package/devices/yandex.js +59 -26
- package/devices/yandex.js.map +1 -1
- package/devices/ynoa.js +4 -4
- package/devices/ynoa.js.map +1 -1
- package/devices/yokis.d.ts.map +1 -1
- package/devices/yokis.js +226 -226
- package/devices/yokis.js.map +1 -1
- package/devices/zemismart.js +9 -9
- package/devices/zemismart.js.map +1 -1
- package/devices/zigbeetlc.js +53 -20
- package/devices/zigbeetlc.js.map +1 -1
- package/devices/zipato.js +35 -2
- package/devices/zipato.js.map +1 -1
- package/lib/generateDefinition.d.ts.map +1 -1
- package/lib/generateDefinition.js +3 -16
- package/lib/generateDefinition.js.map +1 -1
- package/lib/ikea.d.ts +3 -3
- package/lib/ikea.d.ts.map +1 -1
- package/lib/ikea.js +16 -16
- package/lib/ikea.js.map +1 -1
- package/lib/lumi.d.ts +7 -3
- package/lib/lumi.d.ts.map +1 -1
- package/lib/lumi.js +4 -4
- package/lib/lumi.js.map +1 -1
- package/package.json +1 -1
package/devices/sonoff.js
CHANGED
|
@@ -43,7 +43,7 @@ const constants = __importStar(require("../lib/constants"));
|
|
|
43
43
|
const ewelink_1 = require("../lib/ewelink");
|
|
44
44
|
const exposes = __importStar(require("../lib/exposes"));
|
|
45
45
|
const logger_1 = require("../lib/logger");
|
|
46
|
-
const
|
|
46
|
+
const m = __importStar(require("../lib/modernExtend"));
|
|
47
47
|
const reporting = __importStar(require("../lib/reporting"));
|
|
48
48
|
const tuya = __importStar(require("../lib/tuya"));
|
|
49
49
|
const utils = __importStar(require("../lib/utils"));
|
|
@@ -69,7 +69,7 @@ const fzLocal = {
|
|
|
69
69
|
},
|
|
70
70
|
};
|
|
71
71
|
const sonoffExtend = {
|
|
72
|
-
addCustomClusterEwelink: () =>
|
|
72
|
+
addCustomClusterEwelink: () => m.deviceAddCustomCluster('customClusterEwelink', {
|
|
73
73
|
ID: 0xfc11,
|
|
74
74
|
attributes: {
|
|
75
75
|
networkLed: { ID: 0x0001, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
|
|
@@ -611,14 +611,14 @@ const definitions = [
|
|
|
611
611
|
vendor: 'SONOFF',
|
|
612
612
|
description: 'Zigbee smart switch',
|
|
613
613
|
// configureReporting fails for this device
|
|
614
|
-
extend: [
|
|
614
|
+
extend: [m.onOff({ powerOnBehavior: false, skipDuplicateTransaction: true, configureReporting: false })],
|
|
615
615
|
},
|
|
616
616
|
{
|
|
617
617
|
zigbeeModel: ['ZBMINI-L'],
|
|
618
618
|
model: 'ZBMINI-L',
|
|
619
619
|
vendor: 'SONOFF',
|
|
620
620
|
description: 'Zigbee smart switch (no neutral)',
|
|
621
|
-
extend: [
|
|
621
|
+
extend: [m.onOff()],
|
|
622
622
|
ota: true,
|
|
623
623
|
configure: async (device, coordinatorEndpoint) => {
|
|
624
624
|
// Unbind genPollCtrl to prevent device from sending checkin message.
|
|
@@ -638,7 +638,7 @@ const definitions = [
|
|
|
638
638
|
model: 'ZBMINIL2',
|
|
639
639
|
vendor: 'SONOFF',
|
|
640
640
|
description: 'Zigbee smart switch (no neutral)',
|
|
641
|
-
extend: [
|
|
641
|
+
extend: [m.onOff()],
|
|
642
642
|
ota: true,
|
|
643
643
|
configure: async (device, coordinatorEndpoint) => {
|
|
644
644
|
// Unbind genPollCtrl to prevent device from sending checkin message.
|
|
@@ -658,14 +658,14 @@ const definitions = [
|
|
|
658
658
|
model: 'ZBMINI',
|
|
659
659
|
vendor: 'SONOFF',
|
|
660
660
|
description: 'Zigbee two way smart switch',
|
|
661
|
-
extend: [
|
|
661
|
+
extend: [m.onOff({ powerOnBehavior: false }), m.forcePowerSource({ powerSource: 'Mains (single phase)' })],
|
|
662
662
|
},
|
|
663
663
|
{
|
|
664
664
|
zigbeeModel: ['S31 Lite zb'],
|
|
665
665
|
model: 'S31ZB',
|
|
666
666
|
vendor: 'SONOFF',
|
|
667
667
|
description: 'Zigbee smart plug (US version)',
|
|
668
|
-
extend: [
|
|
668
|
+
extend: [m.onOff({ powerOnBehavior: false, skipDuplicateTransaction: true, configureReporting: false })],
|
|
669
669
|
configure: async (device, coordinatorEndpoint) => {
|
|
670
670
|
// Device does not support configureReporting for onOff, therefore just bind here.
|
|
671
671
|
// https://github.com/Koenkk/zigbee2mqtt/issues/20618
|
|
@@ -697,7 +697,7 @@ const definitions = [
|
|
|
697
697
|
tuya.whitelabel('Tuya', 'WL-19DWZ', 'Contact sensor', ['_TZ3000_n2egfsli']),
|
|
698
698
|
],
|
|
699
699
|
description: 'Contact sensor',
|
|
700
|
-
extend: [ewelinkBattery(),
|
|
700
|
+
extend: [ewelinkBattery(), m.iasZoneAlarm({ zoneType: 'contact', zoneAttributes: ['alarm_1', 'battery_low'] })],
|
|
701
701
|
},
|
|
702
702
|
{
|
|
703
703
|
zigbeeModel: ['WB01', 'WB-01', 'SNZB-01'],
|
|
@@ -806,7 +806,7 @@ const definitions = [
|
|
|
806
806
|
model: 'SNZB-02D',
|
|
807
807
|
vendor: 'SONOFF',
|
|
808
808
|
description: 'Temperature and humidity sensor with screen',
|
|
809
|
-
extend: [
|
|
809
|
+
extend: [m.battery(), m.temperature(), m.humidity(), m.bindCluster({ cluster: 'genPollCtrl', clusterType: 'input' })],
|
|
810
810
|
},
|
|
811
811
|
{
|
|
812
812
|
fingerprint: [
|
|
@@ -857,21 +857,21 @@ const definitions = [
|
|
|
857
857
|
},
|
|
858
858
|
],
|
|
859
859
|
description: 'Motion sensor',
|
|
860
|
-
extend: [ewelinkBattery(),
|
|
860
|
+
extend: [ewelinkBattery(), m.iasZoneAlarm({ zoneType: 'occupancy', zoneAttributes: ['alarm_1', 'battery_low'] })],
|
|
861
861
|
},
|
|
862
862
|
{
|
|
863
863
|
zigbeeModel: ['S26R2ZB'],
|
|
864
864
|
model: 'S26R2ZB',
|
|
865
865
|
vendor: 'SONOFF',
|
|
866
866
|
description: 'Zigbee smart plug',
|
|
867
|
-
extend: [
|
|
867
|
+
extend: [m.onOff({ powerOnBehavior: false })],
|
|
868
868
|
},
|
|
869
869
|
{
|
|
870
870
|
zigbeeModel: ['S40LITE'],
|
|
871
871
|
model: 'S40ZBTPB',
|
|
872
872
|
vendor: 'SONOFF',
|
|
873
873
|
description: '15A Zigbee smart plug',
|
|
874
|
-
extend: [
|
|
874
|
+
extend: [m.onOff({ powerOnBehavior: false, skipDuplicateTransaction: true })],
|
|
875
875
|
ota: true,
|
|
876
876
|
},
|
|
877
877
|
{
|
|
@@ -902,7 +902,7 @@ const definitions = [
|
|
|
902
902
|
vendor: 'SONOFF',
|
|
903
903
|
whiteLabel: [{ vendor: 'Woolley', model: 'SA-029-1' }],
|
|
904
904
|
description: 'Smart Plug',
|
|
905
|
-
extend: [
|
|
905
|
+
extend: [m.onOff(), m.forcePowerSource({ powerSource: 'Mains (single phase)' })],
|
|
906
906
|
},
|
|
907
907
|
{
|
|
908
908
|
zigbeeModel: ['Z111PL0H-1JX'],
|
|
@@ -910,7 +910,7 @@ const definitions = [
|
|
|
910
910
|
vendor: 'SONOFF',
|
|
911
911
|
whiteLabel: [{ vendor: 'Woolley', model: 'SA-028-1' }],
|
|
912
912
|
description: 'Smart Plug',
|
|
913
|
-
extend: [
|
|
913
|
+
extend: [m.onOff({ powerOnBehavior: false }), m.forcePowerSource({ powerSource: 'Mains (single phase)' })],
|
|
914
914
|
},
|
|
915
915
|
{
|
|
916
916
|
zigbeeModel: ['SNZB-01P'],
|
|
@@ -919,7 +919,7 @@ const definitions = [
|
|
|
919
919
|
description: 'Wireless button',
|
|
920
920
|
extend: [
|
|
921
921
|
ewelinkAction(),
|
|
922
|
-
|
|
922
|
+
m.battery({
|
|
923
923
|
percentageReportingConfig: { min: 3600, max: 7200, change: 0 },
|
|
924
924
|
voltage: true,
|
|
925
925
|
voltageReporting: true,
|
|
@@ -933,7 +933,7 @@ const definitions = [
|
|
|
933
933
|
model: 'SNZB-02P',
|
|
934
934
|
vendor: 'SONOFF',
|
|
935
935
|
description: 'Temperature and humidity sensor',
|
|
936
|
-
extend: [
|
|
936
|
+
extend: [m.battery({ percentage: true }), m.temperature(), m.humidity(), m.bindCluster({ cluster: 'genPollCtrl', clusterType: 'input' })],
|
|
937
937
|
},
|
|
938
938
|
{
|
|
939
939
|
zigbeeModel: ['SNZB-04P'],
|
|
@@ -941,8 +941,8 @@ const definitions = [
|
|
|
941
941
|
vendor: 'SONOFF',
|
|
942
942
|
description: 'Contact sensor',
|
|
943
943
|
extend: [
|
|
944
|
-
|
|
945
|
-
|
|
944
|
+
m.iasZoneAlarm({ zoneType: 'contact', zoneAttributes: ['alarm_1', 'battery_low'] }),
|
|
945
|
+
m.binary({
|
|
946
946
|
name: 'tamper',
|
|
947
947
|
cluster: 0xfc11,
|
|
948
948
|
attribute: { ID: 0x2000, type: 0x20 },
|
|
@@ -962,8 +962,8 @@ const definitions = [
|
|
|
962
962
|
vendor: 'SONOFF',
|
|
963
963
|
description: 'Zigbee PIR sensor',
|
|
964
964
|
extend: [
|
|
965
|
-
|
|
966
|
-
|
|
965
|
+
m.occupancy(),
|
|
966
|
+
m.numeric({
|
|
967
967
|
name: 'motion_timeout',
|
|
968
968
|
cluster: 0x0406,
|
|
969
969
|
attribute: { ID: 0x0020, type: 0x21 },
|
|
@@ -971,7 +971,7 @@ const definitions = [
|
|
|
971
971
|
valueMin: 5,
|
|
972
972
|
valueMax: 60,
|
|
973
973
|
}),
|
|
974
|
-
|
|
974
|
+
m.enumLookup({
|
|
975
975
|
name: 'illumination',
|
|
976
976
|
lookup: { dim: 0, bright: 1 },
|
|
977
977
|
cluster: 0xfc11,
|
|
@@ -989,7 +989,7 @@ const definitions = [
|
|
|
989
989
|
model: 'SNZB-05P',
|
|
990
990
|
vendor: 'SONOFF',
|
|
991
991
|
description: 'Zigbee water sensor',
|
|
992
|
-
extend: [
|
|
992
|
+
extend: [m.battery(), m.iasZoneAlarm({ zoneType: 'water_leak', zoneAttributes: ['alarm_1', 'battery_low'] })],
|
|
993
993
|
},
|
|
994
994
|
{
|
|
995
995
|
zigbeeModel: ['SNZB-06P'],
|
|
@@ -997,8 +997,8 @@ const definitions = [
|
|
|
997
997
|
vendor: 'SONOFF',
|
|
998
998
|
description: 'Zigbee occupancy sensor',
|
|
999
999
|
extend: [
|
|
1000
|
-
|
|
1001
|
-
|
|
1000
|
+
m.occupancy({ reporting: false }),
|
|
1001
|
+
m.numeric({
|
|
1002
1002
|
name: 'occupancy_timeout',
|
|
1003
1003
|
cluster: 0x0406,
|
|
1004
1004
|
attribute: { ID: 0x0020, type: 0x21 },
|
|
@@ -1006,14 +1006,14 @@ const definitions = [
|
|
|
1006
1006
|
valueMin: 15,
|
|
1007
1007
|
valueMax: 65535,
|
|
1008
1008
|
}),
|
|
1009
|
-
|
|
1009
|
+
m.enumLookup({
|
|
1010
1010
|
name: 'occupancy_sensitivity',
|
|
1011
1011
|
lookup: { low: 1, medium: 2, high: 3 },
|
|
1012
1012
|
cluster: 0x0406,
|
|
1013
1013
|
attribute: { ID: 0x0022, type: 0x20 },
|
|
1014
1014
|
description: 'Sensitivity of human presence detection',
|
|
1015
1015
|
}),
|
|
1016
|
-
|
|
1016
|
+
m.enumLookup({
|
|
1017
1017
|
name: 'illumination',
|
|
1018
1018
|
lookup: { dim: 0, bright: 1 },
|
|
1019
1019
|
cluster: 0xfc11,
|
|
@@ -1049,7 +1049,7 @@ const definitions = [
|
|
|
1049
1049
|
toZigbee_1.default.thermostat_running_state,
|
|
1050
1050
|
],
|
|
1051
1051
|
extend: [
|
|
1052
|
-
|
|
1052
|
+
m.deviceAddCustomCluster('customSonoffTrvzb', {
|
|
1053
1053
|
ID: 0xfc11,
|
|
1054
1054
|
attributes: {
|
|
1055
1055
|
childLock: { ID: 0x0000, type: zigbee_herdsman_1.Zcl.DataType.BOOLEAN },
|
|
@@ -1068,7 +1068,7 @@ const definitions = [
|
|
|
1068
1068
|
commands: {},
|
|
1069
1069
|
commandsResponse: {},
|
|
1070
1070
|
}),
|
|
1071
|
-
|
|
1071
|
+
m.binary({
|
|
1072
1072
|
name: 'child_lock',
|
|
1073
1073
|
cluster: 'customSonoffTrvzb',
|
|
1074
1074
|
attribute: 'childLock',
|
|
@@ -1077,7 +1077,7 @@ const definitions = [
|
|
|
1077
1077
|
valueOn: ['LOCK', 0x01],
|
|
1078
1078
|
valueOff: ['UNLOCK', 0x00],
|
|
1079
1079
|
}),
|
|
1080
|
-
|
|
1080
|
+
m.binary({
|
|
1081
1081
|
name: 'open_window',
|
|
1082
1082
|
cluster: 'customSonoffTrvzb',
|
|
1083
1083
|
attribute: 'openWindow',
|
|
@@ -1086,7 +1086,7 @@ const definitions = [
|
|
|
1086
1086
|
valueOn: ['ON', 0x01],
|
|
1087
1087
|
valueOff: ['OFF', 0x00],
|
|
1088
1088
|
}),
|
|
1089
|
-
|
|
1089
|
+
m.numeric({
|
|
1090
1090
|
name: 'frost_protection_temperature',
|
|
1091
1091
|
cluster: 'customSonoffTrvzb',
|
|
1092
1092
|
attribute: 'frostProtectionTemperature',
|
|
@@ -1098,7 +1098,7 @@ const definitions = [
|
|
|
1098
1098
|
unit: '°C',
|
|
1099
1099
|
scale: 100,
|
|
1100
1100
|
}),
|
|
1101
|
-
|
|
1101
|
+
m.numeric({
|
|
1102
1102
|
name: 'idle_steps',
|
|
1103
1103
|
cluster: 'customSonoffTrvzb',
|
|
1104
1104
|
attribute: 'idleSteps',
|
|
@@ -1106,7 +1106,7 @@ const definitions = [
|
|
|
1106
1106
|
description: 'Number of steps used for calibration (no-load steps)',
|
|
1107
1107
|
access: 'STATE_GET',
|
|
1108
1108
|
}),
|
|
1109
|
-
|
|
1109
|
+
m.numeric({
|
|
1110
1110
|
name: 'closing_steps',
|
|
1111
1111
|
cluster: 'customSonoffTrvzb',
|
|
1112
1112
|
attribute: 'closingSteps',
|
|
@@ -1114,7 +1114,7 @@ const definitions = [
|
|
|
1114
1114
|
description: 'Number of steps it takes to close the valve',
|
|
1115
1115
|
access: 'STATE_GET',
|
|
1116
1116
|
}),
|
|
1117
|
-
|
|
1117
|
+
m.numeric({
|
|
1118
1118
|
name: 'valve_opening_limit_voltage',
|
|
1119
1119
|
cluster: 'customSonoffTrvzb',
|
|
1120
1120
|
attribute: 'valveOpeningLimitVoltage',
|
|
@@ -1123,7 +1123,7 @@ const definitions = [
|
|
|
1123
1123
|
unit: 'mV',
|
|
1124
1124
|
access: 'STATE_GET',
|
|
1125
1125
|
}),
|
|
1126
|
-
|
|
1126
|
+
m.numeric({
|
|
1127
1127
|
name: 'valve_closing_limit_voltage',
|
|
1128
1128
|
cluster: 'customSonoffTrvzb',
|
|
1129
1129
|
attribute: 'valveClosingLimitVoltage',
|
|
@@ -1132,7 +1132,7 @@ const definitions = [
|
|
|
1132
1132
|
unit: 'mV',
|
|
1133
1133
|
access: 'STATE_GET',
|
|
1134
1134
|
}),
|
|
1135
|
-
|
|
1135
|
+
m.numeric({
|
|
1136
1136
|
name: 'valve_motor_running_voltage',
|
|
1137
1137
|
cluster: 'customSonoffTrvzb',
|
|
1138
1138
|
attribute: 'valveMotorRunningVoltage',
|
|
@@ -1141,7 +1141,7 @@ const definitions = [
|
|
|
1141
1141
|
unit: 'mV',
|
|
1142
1142
|
access: 'STATE_GET',
|
|
1143
1143
|
}),
|
|
1144
|
-
|
|
1144
|
+
m.numeric({
|
|
1145
1145
|
name: 'valve_opening_degree',
|
|
1146
1146
|
cluster: 'customSonoffTrvzb',
|
|
1147
1147
|
attribute: 'valveOpeningDegree',
|
|
@@ -1156,7 +1156,7 @@ const definitions = [
|
|
|
1156
1156
|
valueStep: 1.0,
|
|
1157
1157
|
unit: '%',
|
|
1158
1158
|
}),
|
|
1159
|
-
|
|
1159
|
+
m.numeric({
|
|
1160
1160
|
name: 'valve_closing_degree',
|
|
1161
1161
|
cluster: 'customSonoffTrvzb',
|
|
1162
1162
|
attribute: 'valveClosingDegree',
|
|
@@ -1172,7 +1172,7 @@ const definitions = [
|
|
|
1172
1172
|
unit: '%',
|
|
1173
1173
|
}),
|
|
1174
1174
|
sonoffExtend.weeklySchedule(),
|
|
1175
|
-
|
|
1175
|
+
m.customTimeResponse('1970_UTC'),
|
|
1176
1176
|
],
|
|
1177
1177
|
ota: true,
|
|
1178
1178
|
configure: async (device, coordinatorEndpoint) => {
|
|
@@ -1190,14 +1190,14 @@ const definitions = [
|
|
|
1190
1190
|
model: 'S60ZBTPF',
|
|
1191
1191
|
vendor: 'SONOFF',
|
|
1192
1192
|
description: 'Zigbee smart plug',
|
|
1193
|
-
extend: [
|
|
1193
|
+
extend: [m.onOff()],
|
|
1194
1194
|
},
|
|
1195
1195
|
{
|
|
1196
1196
|
zigbeeModel: ['S60ZBTPG'],
|
|
1197
1197
|
model: 'S60ZBTPG',
|
|
1198
1198
|
vendor: 'SONOFF',
|
|
1199
1199
|
description: 'Zigbee smart plug',
|
|
1200
|
-
extend: [
|
|
1200
|
+
extend: [m.onOff()],
|
|
1201
1201
|
},
|
|
1202
1202
|
{
|
|
1203
1203
|
zigbeeModel: ['SWV'],
|
|
@@ -1207,14 +1207,14 @@ const definitions = [
|
|
|
1207
1207
|
fromZigbee: [fromZigbee_1.default.flow],
|
|
1208
1208
|
exposes: [e.numeric('flow', ea.STATE).withDescription('Current water flow').withUnit('m³/h')],
|
|
1209
1209
|
extend: [
|
|
1210
|
-
|
|
1211
|
-
|
|
1210
|
+
m.battery(),
|
|
1211
|
+
m.onOff({
|
|
1212
1212
|
powerOnBehavior: false,
|
|
1213
1213
|
skipDuplicateTransaction: true,
|
|
1214
1214
|
configureReporting: true,
|
|
1215
1215
|
}),
|
|
1216
1216
|
sonoffExtend.addCustomClusterEwelink(),
|
|
1217
|
-
|
|
1217
|
+
m.enumLookup({
|
|
1218
1218
|
name: 'current_device_status',
|
|
1219
1219
|
lookup: { normal_state: 0, water_shortage: 1, water_leakage: 2, 'water_shortage & water_leakage': 3 },
|
|
1220
1220
|
cluster: 'customClusterEwelink',
|
|
@@ -1222,7 +1222,7 @@ const definitions = [
|
|
|
1222
1222
|
description: 'The water valve is in normal state, water shortage or water leakage',
|
|
1223
1223
|
access: 'STATE_GET',
|
|
1224
1224
|
}),
|
|
1225
|
-
|
|
1225
|
+
m.binary({
|
|
1226
1226
|
name: 'auto_close_when_water_shortage',
|
|
1227
1227
|
cluster: 'customClusterEwelink',
|
|
1228
1228
|
attribute: 'lackWaterCloseValveTimeout',
|
|
@@ -1248,9 +1248,9 @@ const definitions = [
|
|
|
1248
1248
|
vendor: 'SONOFF',
|
|
1249
1249
|
description: 'Zigbee USB repeater plug',
|
|
1250
1250
|
extend: [
|
|
1251
|
-
|
|
1251
|
+
m.onOff(),
|
|
1252
1252
|
sonoffExtend.addCustomClusterEwelink(),
|
|
1253
|
-
|
|
1253
|
+
m.binary({
|
|
1254
1254
|
name: 'rf_turbo_mode',
|
|
1255
1255
|
cluster: 'customClusterEwelink',
|
|
1256
1256
|
attribute: 'radioPowerWithManuCode',
|
|
@@ -1276,10 +1276,10 @@ const definitions = [
|
|
|
1276
1276
|
description: 'Zigbee smart switch',
|
|
1277
1277
|
exposes: [],
|
|
1278
1278
|
extend: [
|
|
1279
|
-
|
|
1280
|
-
|
|
1279
|
+
m.commandsOnOff({ commands: ['toggle'] }),
|
|
1280
|
+
m.onOff({ configureReporting: false }),
|
|
1281
1281
|
sonoffExtend.addCustomClusterEwelink(),
|
|
1282
|
-
|
|
1282
|
+
m.binary({
|
|
1283
1283
|
name: 'network_indicator',
|
|
1284
1284
|
cluster: 'customClusterEwelink',
|
|
1285
1285
|
attribute: 'networkLed',
|
|
@@ -1287,7 +1287,7 @@ const definitions = [
|
|
|
1287
1287
|
valueOff: [false, 0],
|
|
1288
1288
|
valueOn: [true, 1],
|
|
1289
1289
|
}),
|
|
1290
|
-
|
|
1290
|
+
m.binary({
|
|
1291
1291
|
name: 'turbo_mode',
|
|
1292
1292
|
cluster: 'customClusterEwelink',
|
|
1293
1293
|
attribute: 'radioPower',
|
|
@@ -1295,7 +1295,7 @@ const definitions = [
|
|
|
1295
1295
|
valueOff: [false, 0x09],
|
|
1296
1296
|
valueOn: [true, 0x14],
|
|
1297
1297
|
}),
|
|
1298
|
-
|
|
1298
|
+
m.binary({
|
|
1299
1299
|
name: 'delayed_power_on_state',
|
|
1300
1300
|
cluster: 'customClusterEwelink',
|
|
1301
1301
|
attribute: 'delayedPowerOnState',
|
|
@@ -1303,7 +1303,7 @@ const definitions = [
|
|
|
1303
1303
|
valueOff: [false, 0],
|
|
1304
1304
|
valueOn: [true, 1],
|
|
1305
1305
|
}),
|
|
1306
|
-
|
|
1306
|
+
m.numeric({
|
|
1307
1307
|
name: 'delayed_power_on_time',
|
|
1308
1308
|
cluster: 'customClusterEwelink',
|
|
1309
1309
|
attribute: 'delayedPowerOnTime',
|
|
@@ -1314,7 +1314,7 @@ const definitions = [
|
|
|
1314
1314
|
unit: 'seconds',
|
|
1315
1315
|
scale: 2,
|
|
1316
1316
|
}),
|
|
1317
|
-
|
|
1317
|
+
m.binary({
|
|
1318
1318
|
name: 'detach_relay_mode',
|
|
1319
1319
|
cluster: 'customClusterEwelink',
|
|
1320
1320
|
attribute: 'detachRelayMode',
|
|
@@ -1341,10 +1341,10 @@ const definitions = [
|
|
|
1341
1341
|
exposes: [],
|
|
1342
1342
|
ota: true,
|
|
1343
1343
|
extend: [
|
|
1344
|
-
|
|
1345
|
-
|
|
1344
|
+
m.deviceEndpoints({ endpoints: { l1: 1 } }),
|
|
1345
|
+
m.onOff(),
|
|
1346
1346
|
sonoffExtend.addCustomClusterEwelink(),
|
|
1347
|
-
|
|
1347
|
+
m.enumLookup({
|
|
1348
1348
|
name: 'device_work_mode',
|
|
1349
1349
|
lookup: { 'Zigbee end device': 0, 'Zigbee router': 1 },
|
|
1350
1350
|
cluster: 'customClusterEwelink',
|
|
@@ -1352,7 +1352,7 @@ const definitions = [
|
|
|
1352
1352
|
description: 'The device runs as a Zigbee End device or Zigbee router.',
|
|
1353
1353
|
access: 'STATE_GET',
|
|
1354
1354
|
}),
|
|
1355
|
-
|
|
1355
|
+
m.binary({
|
|
1356
1356
|
name: 'network_indicator',
|
|
1357
1357
|
cluster: 'customClusterEwelink',
|
|
1358
1358
|
attribute: 'networkLed',
|
|
@@ -1378,10 +1378,10 @@ const definitions = [
|
|
|
1378
1378
|
exposes: [],
|
|
1379
1379
|
ota: true,
|
|
1380
1380
|
extend: [
|
|
1381
|
-
|
|
1382
|
-
|
|
1381
|
+
m.deviceEndpoints({ endpoints: { l1: 1, l2: 2 } }),
|
|
1382
|
+
m.onOff({ endpointNames: ['l1', 'l2'] }),
|
|
1383
1383
|
sonoffExtend.addCustomClusterEwelink(),
|
|
1384
|
-
|
|
1384
|
+
m.enumLookup({
|
|
1385
1385
|
name: 'device_work_mode',
|
|
1386
1386
|
lookup: { 'Zigbee end device': 0, 'Zigbee router': 1 },
|
|
1387
1387
|
cluster: 'customClusterEwelink',
|
|
@@ -1389,7 +1389,7 @@ const definitions = [
|
|
|
1389
1389
|
description: 'The device runs as a Zigbee End device or Zigbee router.',
|
|
1390
1390
|
access: 'STATE_GET',
|
|
1391
1391
|
}),
|
|
1392
|
-
|
|
1392
|
+
m.binary({
|
|
1393
1393
|
name: 'network_indicator',
|
|
1394
1394
|
cluster: 'customClusterEwelink',
|
|
1395
1395
|
attribute: 'networkLed',
|
|
@@ -1419,10 +1419,10 @@ const definitions = [
|
|
|
1419
1419
|
exposes: [],
|
|
1420
1420
|
ota: true,
|
|
1421
1421
|
extend: [
|
|
1422
|
-
|
|
1423
|
-
|
|
1422
|
+
m.deviceEndpoints({ endpoints: { l1: 1, l2: 2, l3: 3 } }),
|
|
1423
|
+
m.onOff({ endpointNames: ['l1', 'l2', 'l3'] }),
|
|
1424
1424
|
sonoffExtend.addCustomClusterEwelink(),
|
|
1425
|
-
|
|
1425
|
+
m.enumLookup({
|
|
1426
1426
|
name: 'device_work_mode',
|
|
1427
1427
|
lookup: { 'Zigbee end device': 0, 'Zigbee router': 1 },
|
|
1428
1428
|
cluster: 'customClusterEwelink',
|
|
@@ -1430,7 +1430,7 @@ const definitions = [
|
|
|
1430
1430
|
description: 'The device runs as a Zigbee End device or Zigbee router.',
|
|
1431
1431
|
access: 'STATE_GET',
|
|
1432
1432
|
}),
|
|
1433
|
-
|
|
1433
|
+
m.binary({
|
|
1434
1434
|
name: 'network_indicator',
|
|
1435
1435
|
cluster: 'customClusterEwelink',
|
|
1436
1436
|
attribute: 'networkLed',
|