Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix various logic for ZBT-CCTSwitch-D0001 + add new device Ecosmart-ZBT-A19-CCT-Bulb #826

Merged
merged 686 commits into from
Dec 23, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
686 commits
Select commit Hold shift + click to select a range
648e2eb
7.0.10
Koenkk Jan 6, 2019
f5ce1af
Add Support for EcoSmart Bright White Bulbs (#200)
boojew Jan 8, 2019
4a3529b
Bitron-Video Wall Thermostat (#199)
Chrischi- Jan 8, 2019
80d2bad
FB56-ZCW11HG1.2 (#202)
arteck Jan 8, 2019
0dba409
Filter non-realistic WSDCGQ11LM and WSDCGQ01LM temperature reports. h…
Koenkk Jan 8, 2019
3e2e440
Filter non-realistic WSDCGQ11LM and WSDCGQ01LM humidity reports. htt…
Koenkk Jan 8, 2019
de6cb79
7.0.11
Koenkk Jan 8, 2019
5f272ef
Support E1524. https://github.com/Koenkk/zigbee2mqtt/issues/102
Koenkk Jan 8, 2019
cdfac79
7.0.12
Koenkk Jan 8, 2019
5a0342b
Update devices.js to include Nue HGZB-01A (#203)
mkventure Jan 9, 2019
70452f8
Add RTCGQ11LM illuminance interval report. https://github.com/Koenkk/…
Koenkk Jan 10, 2019
abb8387
7.0.13
Koenkk Jan 10, 2019
4c00561
Support TRADFRI wireless dimmer battery. https://github.com/Koenkk/zi…
Koenkk Jan 10, 2019
3df28a7
7.0.14
Koenkk Jan 10, 2019
a9eb7fd
Add support for Gledopto Zigbee LED controller WW/CW Dimmer (GL-C-006…
netztrip Jan 10, 2019
7c3876f
Support 100.424.11. https://github.com/Koenkk/zigbee2mqtt/issues/803
Koenkk Jan 11, 2019
d65aa5b
Add device support for iCasa Zigbee 3.0 Dimmer (#206)
sheyden Jan 13, 2019
f0e27ca
Refactors (#207)
qm3ster Jan 13, 2019
bbaea2e
Fix missing color temperature from #207
Koenkk Jan 13, 2019
1a53cc6
Hue power-on behavior (#209)
Chrischi- Jan 13, 2019
907de29
fixed 'null' values in thermostat converters. (#210)
Chrischi- Jan 13, 2019
07ea0db
7.0.15
Koenkk Jan 13, 2019
40c3129
Add devices.js to files.
Koenkk Jan 13, 2019
79ba113
7.0.16
Koenkk Jan 13, 2019
bf38d84
Trim null characters on spaces when searching for zigbee model. https…
Koenkk Jan 14, 2019
b0d2ce9
7.0.17
Koenkk Jan 14, 2019
08bdf31
Fix linting error.
Koenkk Jan 14, 2019
41b2592
7.0.18
Koenkk Jan 14, 2019
708f430
Update battery cfg for TRADFRI wireless dimmer. https://github.com/Ko…
Koenkk Jan 14, 2019
4e0ba4d
7.0.19
Koenkk Jan 14, 2019
1c9ab0c
Fix documentation for Xiaomi Wireless Wall Switch (#211)
sapkra Jan 15, 2019
4a5a0d9
TRADFRI Driver 10W (#214)
arteck Jan 15, 2019
8ed89bb
ToZigbee onoff; don’t crash on wrong value type. https://github.com/K…
Koenkk Jan 15, 2019
1cf4503
Fix tradfri wireless dimmer report interval. https://github.com/Koenk…
Koenkk Jan 15, 2019
689bc01
7.0.20
Koenkk Jan 15, 2019
d9a73cf
Add support for Sengled model E1A-AC2 (#215)
pnewnam Jan 16, 2019
9856e72
Trust Contact Sensor (CSW_ADUROLIGHT) invert logic (#221)
Jan 18, 2019
c0570f7
Fix for: No converter available for 4713407 with cid genOnOff, type a…
Jan 18, 2019
81e297a
Add support for OSRAM/Lightify Switch Mini (#219)
jamestutton Jan 18, 2019
d1c202e
7.0.21
Koenkk Jan 18, 2019
a099ecd
Fix crash when model null. https://github.com/Koenkk/zigbee2mqtt/issu…
Koenkk Jan 18, 2019
34297d6
7.0.22
Koenkk Jan 18, 2019
1eaf355
Fix xiaomi lock (#223)
aesedepece Jan 21, 2019
8de8365
Support for Sylvania 71831, Adjustable White A19 Bulb (#224)
dlashua Jan 21, 2019
7149d6e
Support for RGB Mueller Licht: tint (#225)
Gurkengewuerz Jan 21, 2019
950ba75
Added Müller Licht white bulbs (#229)
merlinschumacher Jan 22, 2019
acad399
Refactor transtime to readAfterWriteTime (#227)
Zagitta Jan 22, 2019
9a1e891
Implemented thermostat enums (#226)
Zagitta Jan 22, 2019
13e99ba
7.0.23
Koenkk Jan 22, 2019
66d9505
Fix for systemMode runningState enum implementation. (#234)
Chrischi- Jan 23, 2019
bfd383a
Switch zcl-id to tarball
Koenkk Jan 23, 2019
5e6d76f
7.0.24
Koenkk Jan 23, 2019
2fbc045
fixed var name. (#235)
Chrischi- Jan 23, 2019
6302594
NodeJS 4.* compatibility fix (#236)
kirovilya Jan 24, 2019
81598b4
Fix max interval (#237)
Jan 25, 2019
bc98408
Support HS1DS-E. https://github.com/Koenkk/zigbee2mqtt/issues/911
Koenkk Jan 26, 2019
7b3e2c5
added Gledopto Smart RGBW GU10 (GL-S-003Z) (#240)
KernSani Jan 26, 2019
3382c26
Enum fixes (#241)
Zagitta Jan 26, 2019
f8f3804
add hue/saturation support to light_color (#239)
hobbyquaker Jan 26, 2019
cd7d02d
7.0.25
Koenkk Jan 26, 2019
7eed948
FLS-CT (#243)
arteck Jan 27, 2019
1e76293
added SLP2b Hive Active Plug (#245)
simonses1 Jan 27, 2019
1eb9fdd
HS1SA fixes (#247)
neerdoc Jan 27, 2019
d6eb422
Added support for Salus SP600 Smart Plug (#248)
MarkAdamson Jan 28, 2019
af4d92d
Add support for Gledopto devices with multiple lights in one controll…
zipbee Jan 28, 2019
8b9092b
7.0.26
Koenkk Jan 28, 2019
044b719
Added support for Gledopto GL-B-007Z bulb (#251)
milakov Jan 29, 2019
2a2427f
Add support for AduroSmart ERIA White and Color bulbs. (#250)
gi-el Jan 29, 2019
1a31f85
7.0.27
Koenkk Jan 29, 2019
333302e
Q-FLAG LED Panel, Smart-Home RGBW (#252)
kirovilya Jan 30, 2019
145b2c7
Hs1 sa battery (#253)
neerdoc Jan 30, 2019
871097a
add report handling to generic light_onoff_brightness (#258)
jbmbn Jan 31, 2019
4d19df5
7.0.28
Koenkk Feb 1, 2019
efea798
Simplify/cleanup some converters.
Koenkk Feb 1, 2019
be56ba8
Add color color_temp report converter.
Koenkk Feb 1, 2019
1064a54
7.0.29
Koenkk Feb 1, 2019
cd0ef9f
Fix typo
Koenkk Feb 1, 2019
2a0f846
7.0.30
Koenkk Feb 1, 2019
098a1bf
Fix state get converter.
Koenkk Feb 2, 2019
ecb4ddc
7.0.31
Koenkk Feb 2, 2019
ba9eedc
Added handlers for Livolo (#256)
ptvoinfo Feb 2, 2019
4f776d1
7.1.0
Koenkk Feb 2, 2019
bd33692
Add combined toZigbee color and colortemp converter. (#260)
gi-el Feb 3, 2019
63c3c73
Added Eurotronic Spirit Zigbee thermostat (#254)
mhelff Feb 3, 2019
2f84b10
7.1.1
Koenkk Feb 3, 2019
484f943
Fix Xiaomi Gas sensor density json attr (#263)
rzhukov Feb 3, 2019
88d3fa4
7.1.2
Koenkk Feb 3, 2019
2c3a62f
Introduce Ninja Smart plug to devices.js (#262)
asgothian Feb 3, 2019
38bded2
Ignore genGroups devChange. https://github.com/Koenkk/zigbee2mqtt/iss…
Koenkk Feb 3, 2019
b08fead
Add support for AduroSmart ERIA Smart Wireless Dimming Switch (#264)
gi-el Feb 5, 2019
133dd01
HS3CG - Heiman gas sensor #257 (#265)
Mad-Andy Feb 5, 2019
9b62a41
7.1.3
Koenkk Feb 5, 2019
c97416d
Update toZigbee.js (#266)
asgothian Feb 5, 2019
80d564b
Immax LED E14/230V C35 5W TB 440LM ZIGBEE DIM (#268)
kirovilya Feb 7, 2019
889b851
Add support for BOSCH RADON TriTech ZB Motion Sensor Model RFDL-ZB-MS…
pfischbach Feb 7, 2019
96322ce
Add support for Hue white ambiance suspension Fair (#269)
way2many Feb 8, 2019
cfc80f5
More custom attributes for Eurotronic SPZB0001 (#270)
mhelff Feb 8, 2019
b0bb4ce
Update ikea tradfri remote setup link.
Koenkk Feb 8, 2019
a40de2c
Lock zcl-id.
Koenkk Feb 8, 2019
5b9fe56
7.1.4
Koenkk Feb 8, 2019
7c2fb51
Multiple Gledopto transition by 3.3. https://github.com/Koenkk/zigbee…
Koenkk Feb 9, 2019
2387f16
7.1.5
Koenkk Feb 9, 2019
d837806
LED1624G9 doesn't support color temperature. https://github.com/Koenk…
Koenkk Feb 9, 2019
9a2cd4e
Added support for Innr RS 225 bulb (#271)
RussellJoyce Feb 10, 2019
d366561
Add E1746. https://github.com/Koenkk/zigbee2mqtt/issues/832
Koenkk Feb 10, 2019
98bf8dd
7.1.6
Koenkk Feb 10, 2019
0935601
Fix gledopto color and color_temp converter. https://github.com/Koenk…
Koenkk Feb 10, 2019
c9941c3
7.1.7
Koenkk Feb 10, 2019
bc0332a
Add E1743 https://github.com/Koenkk/zigbee2mqtt/issues/997 (#273)
Koenkk Feb 11, 2019
d148817
Increase WXKG01LM long click delay.
Koenkk Feb 11, 2019
2355fda
Support YRD426NRSC. https://github.com/Koenkk/zigbee2mqtt/issues/1032…
Koenkk Feb 11, 2019
b42592a
7.1.8
Koenkk Feb 11, 2019
ebeb5de
Add Osram BR30 RGBW LED to HA
Feb 12, 2019
ff2630e
Add support for TRADFRI bulb E27 WS opal 1000lm light LED1732G11 (#277)
dkluivingh Feb 13, 2019
def6bd7
SmokeSensor-EM (#272)
arteck Feb 13, 2019
13db25f
tint remote, 3 keys (#279)
MoskitoHorst Feb 14, 2019
0401b20
Update links.
Koenkk Feb 14, 2019
4ea41e0
7.1.9
Koenkk Feb 14, 2019
923ba69
Innr RB 265 E27 Bulb support (#280)
srdansuka Feb 15, 2019
2a0cc86
Fixed HS1SA battery report (#282)
neerdoc Feb 16, 2019
893d483
7.1.10
Koenkk Feb 17, 2019
d0185a7
Updated devices.js with support for ELKO Dimmer 316 GLED RF. (#283)
fredrikgk Feb 17, 2019
29df927
Additional setup is not required anymore.
Koenkk Feb 18, 2019
282062f
Decoupled mode for Xiaomi wired wall switches (#287)
KapJI Feb 18, 2019
15517b4
Added LivingWise ZigBee Smart dimmer Switch. Model#: LVS-ZB500D (#288)
dev-abo Feb 18, 2019
0811d07
added samsung smartthings plug (#286)
marc-gist Feb 19, 2019
2867e5b
tint remote (ZBT-Remote) Color keys (#284)
MoskitoHorst Feb 19, 2019
22dd61f
[Xiaomi wired switch] Parse operation mode response (#290)
KapJI Feb 20, 2019
6ac77f1
Add GL-FL-004TZ. https://github.com/Koenkk/zigbee-shepherd-converters…
Koenkk Feb 20, 2019
93a0bb4
Added support for new Philips Hue Outdoor Motion Sensor (#294)
jonnycastaway Feb 21, 2019
ab9e8ce
Add ST218. https://github.com/Koenkk/zigbee-shepherd-converters/issue…
Koenkk Feb 23, 2019
ed6536a
Add ' generic_state_multi_ep' to support Nue branded switches (#298)
highground88 Feb 23, 2019
bb97a35
Update devices.js with support for Nue 'FB56+ZSW1HKJ1.7' (#297)
highground88 Feb 23, 2019
812a579
Fix problem with FB56+ZSW05HG1.2' (HGZB-01A) handler (#299)
highground88 Feb 23, 2019
a6ba4c1
Add support for Keen Home smart vent (#276)
snjoetw Feb 23, 2019
e4662ef
7.1.11
Koenkk Feb 23, 2019
3c03f14
Add device to support Trust Remote control ZYCT-202 (#300)
hwijers Feb 23, 2019
d9ea0b9
Support TRADFRI wirelessm motion sensor E1525. https://github.com/Koe…
Koenkk Feb 23, 2019
24b2020
7.1.12
Koenkk Feb 23, 2019
a7ba1d2
Add support for AXIS Gear window shade motor (#301)
snjoetw Feb 23, 2019
499cd80
Support HGZB-42-UK. https://github.com/Koenkk/zigbee-shepherd-convert…
Koenkk Feb 24, 2019
ace05e9
7.1.13
Koenkk Feb 24, 2019
889682b
Change up and down in Ikea Outlet Switch (#302)
Feb 24, 2019
4b2c800
TRADFRI dimmer change maximum response time. (#305)
Feb 26, 2019
e59092c
Update action color wheel structure.
MoskitoHorst Feb 26, 2019
609266e
fixed thermostat_setpoint_raise_lower (#308)
Chrischi- Feb 27, 2019
3f4ec53
Added illuminance measurement for SML002 (#307)
papanirual Feb 27, 2019
8faebd4
new: Hue Flourish ceiling light (#309)
torsk Feb 28, 2019
a2f74d5
Cosmetic updates.
Koenkk Feb 28, 2019
2a1c729
Separate moveToLevelWithOnOff and moveToLevel converters. https://git…
Koenkk Mar 2, 2019
ab57281
7.2.0
Koenkk Mar 2, 2019
48351bd
updated reporting confg for Keen Vent and AXIS Gear (#310)
snjoetw Mar 2, 2019
1c80bb3
Update zcl-id.
Koenkk Mar 2, 2019
a766293
Add philips cluster for hue dimmer (#311)
ugrug Mar 2, 2019
3107d6b
7.2.1
Koenkk Mar 2, 2019
525bd6f
Check if message has onOff for state converters. https://github.com/K…
Koenkk Mar 2, 2019
88cf560
7.2.2
Koenkk Mar 2, 2019
de673df
Additional model name for Osram LIGHTIFY Flex RGBW (#314)
cbulock Mar 2, 2019
62aecaf
Update devices.js (#315)
Mar 3, 2019
d89a3ff
Support ISW-ZPR1-WP13. https://github.com/Koenkk/zigbee2mqtt/issues/768
Koenkk Mar 3, 2019
ee43638
7.2.3
Koenkk Mar 3, 2019
dcc98aa
Also check for realistic values in WSDCGQ01LM_WSDCGQ11LM_interval. ht…
Koenkk Mar 4, 2019
71b4800
7.2.4
Koenkk Mar 4, 2019
bc691fa
Add support for Philips Hue Sana (#316)
Mar 4, 2019
e346f62
Update fromZigbee.js with ignore_light_brightness_change (#318)
highground88 Mar 5, 2019
4b55494
Support HGZB-02A. https://github.com/Koenkk/zigbee2mqtt/issues/1179
Koenkk Mar 5, 2019
fc10b40
Update devices.js with FB56+ZSC05HG1.0 (Nue Smart Dimmer Switch) (#317)
highground88 Mar 6, 2019
a474d6d
Add action for ICTC-G-1. https://github.com/Koenkk/zigbee2mqtt/issues…
Koenkk Mar 6, 2019
6122de1
7.2.5
Koenkk Mar 6, 2019
c574dec
Clarify that the GE Link bulb could be BR30 or A19 (#320)
rb2k Mar 7, 2019
ed3bb44
Update devices.js for 'FB56+ZSW1HKJ1.7' with new button decriptions (…
highground88 Mar 7, 2019
80d73ab
Support for 'FB56+ZSW1IKJ1.7' 3-gang Nue Smart Switch (#319)
highground88 Mar 7, 2019
10db825
Fix missing converters for philips hue dimmer (#322)
ugrug Mar 7, 2019
0170c13
re-pair fix and add multiple clicks for hue dimmer (#323)
ugrug Mar 8, 2019
d923fb1
Fix gledopto converter crash. https://github.com/Koenkk/zigbee2mqtt/i…
Koenkk Mar 8, 2019
295109a
7.2.6
Koenkk Mar 8, 2019
89527e0
Ignore basic dev change for all lights. https://github.com/Koenkk/zig…
Koenkk Mar 9, 2019
c844748
Check if data has currentLevel attribute in brightness converters. ht…
Koenkk Mar 9, 2019
74b745a
Update devices.js for Nue HGZB-41 (#325)
highground88 Mar 9, 2019
0d8277b
add Nyce-3043 and additional Smartthings devices (#324)
renehonig Mar 9, 2019
6343b7e
7.2.7
Koenkk Mar 9, 2019
c653ff2
Improve AC0251100NJ actions consistency
arteck Mar 9, 2019
15c9da4
extend E1524 with genPowerCfg reporting (#326)
tb-killa Mar 9, 2019
6ea406c
Update README.md (#327)
pixeldoc2000 Mar 10, 2019
22ff992
Bitron av2010/34 (#328)
tb-killa Mar 10, 2019
205e323
Add extra guard to xiaomi_contact_interval. https://github.com/Koenkk…
Koenkk Mar 10, 2019
58c20a6
Update dependencies.
Koenkk Mar 10, 2019
5345cff
7.2.8
Koenkk Mar 10, 2019
30474e1
Update devices.js to support FNB56-ZSW03LX2.0 - Nue 3 gang smart swit…
highground88 Mar 10, 2019
ab567ef
Add Securifi Peanut Smart Plug (#331)
roger- Mar 11, 2019
eb80991
Update fromZigbee.js to support Nue Scene Switches (#332)
highground88 Mar 11, 2019
21e49b7
Add 'FTB56+ZSN15HG1.0' & 'FB56+ZSN08KJ2.3' Nue Scene Switches (#333)
highground88 Mar 11, 2019
a0c2726
Update devices.js to support FB56+ZSW1HKJ2.5 2 gang Nue smart switch …
highground88 Mar 11, 2019
71749b1
Add support for Visonic MCT-350 contact sensor. (#336)
j4c3 Mar 11, 2019
ab37237
Add support for OJB-CR701-YZ Gas and CO sensor (#338)
FrankZZ Mar 12, 2019
c0cad43
Add more ignore converters.
Koenkk Mar 12, 2019
b5d55c0
Changed to correct external model details (#335)
highground88 Mar 13, 2019
d3c6838
Allow type to be an array.
Koenkk Mar 13, 2019
0151dde
8.0.0
Koenkk Mar 13, 2019
a54dfe4
Don’t convert readRsp for ZNLDP12LM. https://github.com/Koenkk/zigbee…
Koenkk Mar 13, 2019
71ac600
8.0.1
Koenkk Mar 13, 2019
0420989
Add alias for 4058075036185. https://github.com/Koenkk/zigbee2mqtt/is…
Koenkk Mar 13, 2019
392a017
Ignore false ZNCZ02LM and ZNLDP12LM messages.
Koenkk Mar 13, 2019
d202a40
8.0.2
Koenkk Mar 13, 2019
d5dbc78
Add support for Sengled E12-N14 (BR30) Light
Jan 1, 2019
9510672
Update devices.js
Koenkk Feb 12, 2019
88819ea
Add Support SwannOne Key Fob SWO-KEF1PA
Mar 14, 2019
b6186d7
Modify payload to be more compatible with Home Assistant
Mar 14, 2019
73c6571
Add support for Sengled E12-N14 (BR30) Light
Jan 1, 2019
79c5209
Update devices.js
Koenkk Feb 12, 2019
6b94503
Sunricher (#340)
arteck Mar 14, 2019
11db5f6
Update devices.js (#341)
edubox Mar 14, 2019
e63294a
Adding `wireless mode` support for Xiaomi Switches QBKB11LM/QBKG12LM …
pataha Mar 14, 2019
b08d92b
Add 2 additional Nue models FB56+ZSW1GKJ2.5 & FTB56+ZSN16HG1.0 (#348)
highground88 Mar 15, 2019
903ed8c
Added Smartthings devices (#344)
renehonig Mar 15, 2019
a3caa45
Add Support SwannOne Key Fob SWO-KEF1PA (#346)
qosmio Mar 15, 2019
013599c
8.0.3
Koenkk Mar 15, 2019
19d88d4
Add converters for ignoring 'diagnostic' and 'genscenes' dev changes
Mar 15, 2019
375ebe7
Implement no_occupancy_since for RTCGQ01LM and RTCGQ11LM. https://git…
Koenkk Mar 15, 2019
5bc6e3b
8.0.4
Koenkk Mar 15, 2019
6c9d343
Add converters for ignoring 'diagnostic' and 'genscenes' dev changes …
qosmio Mar 15, 2019
ab6e2f0
Sengled: Add configure feature for reporting 'genOnOff' and 'genLevel…
Mar 16, 2019
c41da77
Osram/Sylvania: Add vendor specific functions
Mar 16, 2019
b06a5a9
Fixing eslinting issues.
Mar 16, 2019
70010ac
Sylvania/Osram: Configure BR30, A19, A19 RGBW to report on/off
Mar 16, 2019
ccf637b
Fixing merge conflict
Mar 16, 2019
f215100
Merge branch 'master' of https://github.com/Koenkk/zigbee-shepherd-co…
Mar 16, 2019
3af2296
Revert 'configure' options for reporting. Being worked on upstream
Mar 16, 2019
38d0c66
Merge branch 'master' into sengled
Mar 16, 2019
4d20440
FIX: Key was incorrectly defined as a list of options.
Mar 16, 2019
96a3ffb
Merge branch 'master' into sylvania_osram
Mar 16, 2019
0905512
Revert 'configure' options for reporting. Being worked on upstream
Mar 16, 2019
f3c6f62
FIX: duplicate keys that were already merged.
Mar 16, 2019
5e5f6c6
FIX: Remove duplicate keys that were already merged.
Mar 16, 2019
c9321d5
Merge branch 'master' into sengled
Mar 16, 2019
668404c
Merge branch 'sylvania_osram'
Mar 17, 2019
4192916
Fix merge conflict
May 3, 2019
472949a
Merge branch 'master' of https://github.com/Koenkk/zigbee-herdsman-co…
Dec 19, 2019
24d57a4
eslinting fixes
Dec 19, 2019
b5466e5
Enhancements to ZBT-CCTSwitch-D0001 + add new device Ecosmart-ZBT-A19…
Dec 19, 2019
0849ea6
eslint fixes
Dec 19, 2019
3928efd
Merge branch 'master' of https://github.com/Koenkk/zigbee-herdsman-co…
Dec 19, 2019
1dc61b0
Add color_temp hold/release ZBT-CCTSwitch-D0001
Dec 19, 2019
24ecf0d
FIX devices.js
Dec 19, 2019
18f8002
Rename 'color_temp' to 'colortemp' for consistency
Dec 20, 2019
b27431d
Tidy up code and logic for CCTSwitch
Dec 21, 2019
252940a
FIX: Change 'button' to 'click' for HA compatibility
Dec 21, 2019
50bbf00
Merge branch 'master' into master
Koenkk Dec 23, 2019
3a775c3
Update devices.js
Koenkk Dec 23, 2019
1e5a45e
Update devices.js
Koenkk Dec 23, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
145 changes: 111 additions & 34 deletions converters/fromZigbee.js
Original file line number Diff line number Diff line change
Expand Up @@ -271,25 +271,25 @@ const converters = {
const payload = {};
if (msg.data.hasOwnProperty('activePower')) {
const multiplier = msg.endpoint.getClusterAttributeValue(
'haElectricalMeasurement', 'acPowerMultiplier'
'haElectricalMeasurement', 'acPowerMultiplier',
);
const divisor = msg.endpoint.getClusterAttributeValue(
'haElectricalMeasurement', 'acPowerDivisor'
'haElectricalMeasurement', 'acPowerDivisor',
);
const factor = multiplier && divisor ? multiplier / divisor : 1;
payload.power = precisionRound(msg.data['activePower'] * factor, 2);
}
if (msg.data.hasOwnProperty('rmsCurrent')) {
const multiplier = msg.endpoint.getClusterAttributeValue(
'haElectricalMeasurement', 'acCurrentMultiplier'
'haElectricalMeasurement', 'acCurrentMultiplier',
);
const divisor = msg.endpoint.getClusterAttributeValue('haElectricalMeasurement', 'acCurrentDivisor');
const factor = multiplier && divisor ? multiplier / divisor : 1;
payload.current = precisionRound(msg.data['rmsCurrent'] * factor, 2);
}
if (msg.data.hasOwnProperty('rmsVoltage')) {
const multiplier = msg.endpoint.getClusterAttributeValue(
'haElectricalMeasurement', 'acVoltageMultiplier'
'haElectricalMeasurement', 'acVoltageMultiplier',
);
const divisor = msg.endpoint.getClusterAttributeValue('haElectricalMeasurement', 'acVoltageDivisor');
const factor = multiplier && divisor ? multiplier / divisor : 1;
Expand Down Expand Up @@ -3242,52 +3242,60 @@ const converters = {
};
},
},
ZBT_CCTSwitch_D0001_cmdOnOff: {
CCTSwitch_D0001_on_off: {
cluster: 'genOnOff',
type: ['commandOn', 'commandOff'],
convert: (model, msg, publish, options) => {
// the remote maintains state and sends two potential commands for the power button
// map both "on" and "off" to a consistent "button_1"
const deviceID = msg.device.ieeeAddr;
if (!store[deviceID]) {
store[deviceID] = {lastCmd: null, last_seq: -10};
}

const cmd = 'button_1';
store[deviceID].lastSeq = msg.meta.zclTransactionSequenceNumber;
store[deviceID].lastCmd = cmd;
return {action: cmd};
const cmd = msg.type === 'commandOn' ? 'on' : 'off';
return {click: 'power', action: cmd};
},
},
ZBT_CCTSwitch_D0001_moveToLevel: {
CCTSwitch_D0001_move_to_level_recall: {
cluster: 'genLevelCtrl',
type: ['commandMoveToLevel', 'commandMoveToLevelWithOnOff'],
convert: (model, msg, publish, options) => {
// wrap the messages from button2 and button4 into a single function
// button2 always sends "commandMoveToLevel"
// button4 sends two messages, with "commandMoveToLevelWithOnOff" coming first in the sequence
// so that's the one we key off of to indicate "button4"
// so that's the one we key off of to indicate "button4". we will NOT print it in that case,
// instead it will be returned as part of the second sequence with
// CCTSwitch_D0001_move_to_colortemp_recall below.

const deviceID = msg.device.ieeeAddr;
if (!store[deviceID]) {
store[deviceID] = {lastCmd: null, lastSeq: -10};
store[deviceID] = {lastClk: null, lastSeq: -10, lastBrightness: null,
lastMoveLevel: null, lastColorTemp: null};
}

let clk = 'brightness';
let cmd = null;
const payload = {brightness: msg.data.level, transition: parseFloat(msg.data.transtime/10.0)};
if ( msg.type == 'commandMoveToLevel' ) {
cmd = 'button_2';
// pressing the brightness button increments/decrements from 13-254.
// when it reaches the end (254) it will start decrementing by a step,
// and vice versa.
const direction = msg.data.level > store[deviceID].lastBrightness ? 'up' : 'down';
cmd = `${clk}_${direction}`;
store[deviceID].lastBrightness = msg.data.level;
} else if ( msg.type == 'commandMoveToLevelWithOnOff' ) {
cmd = 'button_4';
// This is the 'start' of the 4th button sequence.
clk = 'memory';
store[deviceID].lastMoveLevel = msg.data.level;
store[deviceID].lastClk = clk;
}

store[deviceID].lastSeq = msg.meta.zclTransactionSequenceNumber;
store[deviceID].lastCmd = cmd;
return {action: cmd};
if ( clk != 'memory' ) {
store[deviceID].lastSeq = msg.meta.zclTransactionSequenceNumber;
store[deviceID].lastClk = clk;
payload.click = clk;
payload.action = cmd;
return payload;
}
},
},
ZBT_CCTSwitch_D0001_moveToColorTemp: {
CCTSwitch_D0001_move_to_colortemp_recall: {
cluster: 'lightingColorCtrl',
type: ['commandMoveToColorTemp'],
type: 'commandMoveToColorTemp',
convert: (model, msg, publish, options) => {
// both button3 and button4 send the command "commandMoveToColorTemp"
// in order to distinguish between the buttons, use the sequence number and the previous command
Expand All @@ -3296,32 +3304,101 @@ const converters = {
// and we can ignore it entirely
const deviceID = msg.device.ieeeAddr;
if (!store[deviceID]) {
store[deviceID] = {lastCmd: null, lastSeq: -10};
store[deviceID] = {lastClk: null, lastSeq: -10, lastBrightness: null,
lastMoveLevel: null, lastColorTemp: null};
}
const lastCmd = store[deviceID].lastCmd;
const lastClk = store[deviceID].lastClk;
const lastSeq = store[deviceID].lastSeq;

const seq = msg.meta.zclTransactionSequenceNumber;
let cmd = 'button_3';
let clk = 'colortemp';
const payload = {color_temp: msg.data.colortemp, transition: parseFloat(msg.data.transtime/10.0)};

// because the remote sends two commands for button4, we need to look at the previous command and
// see if it was the recognized start command for button4 - if so, ignore this second command,
// because it's not really button3, it's actually button4
if ( lastCmd == 'button_4' ) {
if ( lastClk == 'memory' ) {
payload.click = lastClk;
payload.action = 'recall';
payload.brightness = store[deviceID].lastMoveLevel;

// ensure the "last" message was really the message prior to this one
// accounts for missed messages (gap >1) and for the remote's rollover from 127 to 0
if ( (seq == 0 && lastSeq == 127 ) || ( seq - lastSeq ) == 1 ) {
cmd = null;
clk = null;
}
} else {
// pressing the color temp button increments/decrements from 153-370K.
// when it reaches the end (370) it will start decrementing by a step,
// and vice versa.
const direction = msg.data.colortemp > store[deviceID].lastColorTemp ? 'up' : 'down';
const cmd = `${clk}_${direction}`;
payload.click = clk;
payload.action = cmd;
store[deviceID].lastColorTemp = msg.data.colortemp;
}

if ( cmd != null ) {
if ( clk != null ) {
store[deviceID].lastSeq = msg.meta.zclTransactionSequenceNumber;
store[deviceID].lastCmd = cmd;
return {action: cmd};
store[deviceID].lastClk = clk;
return payload;
}
},
},
CCTSwitch_D0001_brightness_updown_hold_release: {
cluster: 'genLevelCtrl',
type: ['commandMove', 'commandStop'],
convert: (model, msg, publish, options) => {
const deviceID = msg.device.ieeeAddr;
if (!store[deviceID]) {
store[deviceID] = {};
}
const stop = msg.type === 'commandStop' ? true : false;
let direction = null;
const clk = 'brightness';
const result = {click: clk};
if (stop) {
direction = store[deviceID].direction;
const duration = Date.now() - store[deviceID].start;
result.action = `${clk}_${direction}_release`;
result.duration = duration;
} else {
direction = msg.data.movemode === 1 ? 'down' : 'up';
result.action = `${clk}_${direction}_hold`;
// store button and start moment
store[deviceID].direction = direction;
store[deviceID].start = Date.now();
}
return result;
},
},
CCTSwitch_D0001_colortemp_updown_hold_release: {
cluster: 'lightingColorCtrl',
type: 'commandMoveColorTemp',
convert: (model, msg, publish, options) => {
const deviceID = msg.device.ieeeAddr;
if (!store[deviceID]) {
store[deviceID] = {};
}
const stop = msg.data.movemode === 0;
let direction = null;
const clk = 'colortemp';
const result = {click: clk};
if (stop) {
direction = store[deviceID].direction;
const duration = Date.now() - store[deviceID].start;
result.action = `${clk}_${direction}_release`;
result.duration = duration;
} else {
direction = msg.data.movemode === 3 ? 'down' : 'up';
result.action = `${clk}_${direction}_hold`;
// store button and start moment
store[deviceID].direction = direction;
store[deviceID].start = Date.now();
}
return result;
},
},

// Ignore converters (these message dont need parsing).
ignore_onoff_report: {
Expand Down
14 changes: 7 additions & 7 deletions converters/toZigbee.js
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ const converters = {
'genLevelCtrl',
'moveToLevel',
{level: Math.round(Number(value) * 2.55).toString(), transtime: 0},
getOptions(meta)
getOptions(meta),
);

return {state: {position: value}, readAfterWriteTime: 0};
Expand Down Expand Up @@ -176,7 +176,7 @@ const converters = {
'ssIasWd',
'startWarning',
{startwarninginfo: info, warningduration: values.duration},
getOptions(meta)
getOptions(meta),
);
},
},
Expand Down Expand Up @@ -206,14 +206,14 @@ const converters = {
'closuresWindowCovering',
isPosition ? 'goToLiftPercentage' : 'goToTiltPercentage',
isPosition ? {percentageliftvalue: value} : {percentagetiltvalue: value},
getOptions(meta)
getOptions(meta),
);
},
convertGet: async (entity, key, meta) => {
const isPosition = (key === 'position');
await entity.read(
'closuresWindowCovering',
[isPosition ? 'currentPositionLiftPercentage' : 'currentPositionTiltPercentage']
[isPosition ? 'currentPositionLiftPercentage' : 'currentPositionTiltPercentage'],
);
},
},
Expand Down Expand Up @@ -291,7 +291,7 @@ const converters = {
'genLevelCtrl',
'moveToLevelWithOnOff',
{level: Number(brightness), transtime: transition},
getOptions(meta)
getOptions(meta),
);
return {
state: {state: brightness === 0 ? 'OFF' : 'ON', brightness: Number(brightness)},
Expand Down Expand Up @@ -898,7 +898,7 @@ const converters = {
'closuresDoorLock',
`${value.toLowerCase()}Door`,
{'pincodevalue': ''},
getOptions(meta)
getOptions(meta),
);

return {readAfterWriteTime: 200, state: {state: value.toUpperCase()}};
Expand Down Expand Up @@ -957,7 +957,7 @@ const converters = {
}

const result = await converters.light_brightness.convertSet(
meta.device.getEndpoint(15), key, value, meta
meta.device.getEndpoint(15), key, value, meta,
);
return {
state: {white_value: value, ...result.state, ...state},
Expand Down
15 changes: 13 additions & 2 deletions devices.js
Original file line number Diff line number Diff line change
Expand Up @@ -4337,6 +4337,13 @@ const devices = [
},

// EcoSmart
{
zigbeeModel: ['Ecosmart-ZBT-A19-CCT-Bulb'],
model: 'A9A19A60WESDZ02',
vendor: 'EcoSmart',
description: 'Tuneable white (A19)',
extend: generic.light_onoff_brightness_colortemp,
},
{
zigbeeModel: ['zhaRGBW'],
model: 'D1821',
Expand Down Expand Up @@ -4374,7 +4381,11 @@ const devices = [
description: 'Four button remote control (included with EcoSmart smart bulbs)',
supports: 'action',
fromZigbee: [
fz.ZBT_CCTSwitch_D0001_cmdOnOff, fz.ZBT_CCTSwitch_D0001_moveToLevel, fz.ZBT_CCTSwitch_D0001_moveToColorTemp,
fz.CCTSwitch_D0001_on_off,
fz.CCTSwitch_D0001_move_to_level_recall,
fz.CCTSwitch_D0001_move_to_colortemp_recall,
fz.CCTSwitch_D0001_colortemp_updown_hold_release,
fz.CCTSwitch_D0001_brightness_updown_hold_release,
],
toZigbee: [],
},
Expand Down Expand Up @@ -6313,5 +6324,5 @@ const devices = [
];

module.exports = devices.map((device) =>
device.extend ? Object.assign({}, device.extend, device) : device
device.extend ? Object.assign({}, device.extend, device) : device,
);