zigbee-herdsman-converters 15.26.0 → 15.28.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 +28 -0
- package/README.md +1 -1
- package/converters/fromZigbee.d.ts +78 -48
- package/converters/fromZigbee.d.ts.map +1 -1
- package/converters/fromZigbee.js +101 -17
- package/converters/fromZigbee.js.map +1 -1
- package/devices/alecto.js +4 -2
- package/devices/alecto.js.map +1 -1
- package/devices/awox.js +1 -79
- package/devices/awox.js.map +1 -1
- package/devices/candeo.js +14 -0
- package/devices/candeo.js.map +1 -1
- package/devices/eglo.js +39 -0
- package/devices/eglo.js.map +1 -1
- package/devices/ledvance.js +7 -0
- package/devices/ledvance.js.map +1 -1
- package/devices/legrand.d.ts +106 -0
- package/devices/legrand.js +2 -0
- package/devices/legrand.js.map +1 -1
- package/devices/terncy.js +19 -0
- package/devices/terncy.js.map +1 -1
- package/lib/legacy.js +4 -4
- package/lib/legacy.js.map +1 -1
- package/lib/tuya.js +2 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,33 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [15.28.0](https://github.com/Koenkk/zigbee-herdsman-converters/compare/v15.27.0...v15.28.0) (2023-06-22)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* **add:** C202 https://github.com/Koenkk/zigbee2mqtt/issues/18081 ([30e6fcd](https://github.com/Koenkk/zigbee-herdsman-converters/commit/30e6fcd2eec8098282056615bb7db14f4b352787))
|
|
9
|
+
* **add:** ST8EM-CON [@saschaludwig](https://github.com/saschaludwig) https://github.com/Koenkk/zigbee2mqtt/issues/18087 ([6c5930c](https://github.com/Koenkk/zigbee-herdsman-converters/commit/6c5930c741a426d97f77edc117adcc72832cd596))
|
|
10
|
+
* **add:** TERNCY-WS01 [@gcmilo704](https://github.com/gcmilo704) https://github.com/Koenkk/zigbee2mqtt/issues/18086 ([5016e9f](https://github.com/Koenkk/zigbee-herdsman-converters/commit/5016e9fce912bc60fa45b0811174e0e5edb08455))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* Move 99099 from AwoX to EGLO. https://github.com/Koenkk/zigbee2mqtt.io/pull/2095 ([21e2b55](https://github.com/Koenkk/zigbee-herdsman-converters/commit/21e2b55c9dc799d4e1296b7e7de92664293406a0))
|
|
16
|
+
|
|
17
|
+
## [15.27.0](https://github.com/Koenkk/zigbee-herdsman-converters/compare/v15.26.0...v15.27.0) (2023-06-20)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
* Support OTA for Legrand 067771 and 067772 ([#5899](https://github.com/Koenkk/zigbee-herdsman-converters/issues/5899)) ([bcd4a14](https://github.com/Koenkk/zigbee-herdsman-converters/commit/bcd4a1482b5555bf75ea58feccc857d0ce99afbc))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Bug Fixes
|
|
26
|
+
|
|
27
|
+
* **detect:** Detect `_TZE200_qtbrwrfv` as Alecto SMART-SMOKE10. https://github.com/Koenkk/zigbee-herdsman-converters/issues/5900 ([79cf184](https://github.com/Koenkk/zigbee-herdsman-converters/commit/79cf184a463a9656952cf27aea4b264d1834eba0))
|
|
28
|
+
* Fix invalid thermostat value handling ([#5892](https://github.com/Koenkk/zigbee-herdsman-converters/issues/5892)) ([13d7016](https://github.com/Koenkk/zigbee-herdsman-converters/commit/13d7016fc05d297ec4bd03c9a80524a0c266c53e))
|
|
29
|
+
* **ignore:** Fix TuYa clock sync not working. https://github.com/Koenkk/zigbee2mqtt/issues/18002 ([05defde](https://github.com/Koenkk/zigbee-herdsman-converters/commit/05defded905f4e644380c0a8558136c107032e6d))
|
|
30
|
+
|
|
3
31
|
## [15.26.0](https://github.com/Koenkk/zigbee-herdsman-converters/compare/v15.25.0...v15.26.0) (2023-06-19)
|
|
4
32
|
|
|
5
33
|
|
package/README.md
CHANGED
|
@@ -38,7 +38,7 @@ If any of those commands finish with an error your PR won't pass the tests and w
|
|
|
38
38
|
- `disableActionGroup`: Prevents some converters adding the action_group to the payload (default: false)
|
|
39
39
|
- `tuyaThermostatSystemMode`/`tuyaThermostatPreset`: TuYa specific thermostat options
|
|
40
40
|
- `thermostat`: see e.g. HT-08 definition
|
|
41
|
-
- `{dontMapPIHeatingDemand: true}`: do not map
|
|
41
|
+
- `{dontMapPIHeatingDemand: true}`: do not map `pIHeatingDemand`/`pICoolingDemand` from 0-255 -> 0-100, see fromZigbee.thermostat (default: false)
|
|
42
42
|
- `battery`:
|
|
43
43
|
- `{dontDividePercentage: true}`: prevents batteryPercentageRemainig from being divided (ZCL 200=100%, but some report 100=100%) (default: false)
|
|
44
44
|
- `{voltageToPercentage: '3V_2100'}`: convert voltage to percentage using specified option. See utils.batteryVoltageToPercentage() (default: null, no voltage to percentage conversion)
|
|
@@ -3511,31 +3511,37 @@ export namespace SNZB02_humidity {
|
|
|
3511
3511
|
};
|
|
3512
3512
|
export { convert_295 as convert };
|
|
3513
3513
|
}
|
|
3514
|
-
export namespace
|
|
3514
|
+
export namespace awox_colors {
|
|
3515
3515
|
let cluster_296: string;
|
|
3516
3516
|
export { cluster_296 as cluster };
|
|
3517
3517
|
let type_296: string[];
|
|
3518
3518
|
export { type_296 as type };
|
|
3519
|
-
export function convert_296(model: any, msg: any, publish: any, options: any, meta: any):
|
|
3519
|
+
export function convert_296(model: any, msg: any, publish: any, options: any, meta: any): {
|
|
3520
|
+
action: string;
|
|
3521
|
+
};
|
|
3520
3522
|
export { convert_296 as convert };
|
|
3521
3523
|
}
|
|
3522
|
-
export namespace
|
|
3524
|
+
export namespace awox_refreshColored {
|
|
3523
3525
|
let cluster_297: string;
|
|
3524
3526
|
export { cluster_297 as cluster };
|
|
3525
3527
|
let type_297: string[];
|
|
3526
3528
|
export { type_297 as type };
|
|
3527
|
-
export function convert_297(model: any, msg: any, publish: any, options: any, meta: any):
|
|
3529
|
+
export function convert_297(model: any, msg: any, publish: any, options: any, meta: any): {
|
|
3530
|
+
action: string;
|
|
3531
|
+
};
|
|
3528
3532
|
export { convert_297 as convert };
|
|
3529
3533
|
}
|
|
3530
|
-
export namespace
|
|
3534
|
+
export namespace awox_refresh {
|
|
3531
3535
|
let cluster_298: string;
|
|
3532
3536
|
export { cluster_298 as cluster };
|
|
3533
3537
|
let type_298: string[];
|
|
3534
3538
|
export { type_298 as type };
|
|
3535
|
-
export function convert_298(model: any, msg: any, publish: any, options: any, meta: any):
|
|
3539
|
+
export function convert_298(model: any, msg: any, publish: any, options: any, meta: any): {
|
|
3540
|
+
action: string;
|
|
3541
|
+
};
|
|
3536
3542
|
export { convert_298 as convert };
|
|
3537
3543
|
}
|
|
3538
|
-
export namespace
|
|
3544
|
+
export namespace ignore_onoff_report {
|
|
3539
3545
|
let cluster_299: string;
|
|
3540
3546
|
export { cluster_299 as cluster };
|
|
3541
3547
|
let type_299: string[];
|
|
@@ -3543,7 +3549,7 @@ export namespace ignore_occupancy_report {
|
|
|
3543
3549
|
export function convert_299(model: any, msg: any, publish: any, options: any, meta: any): any;
|
|
3544
3550
|
export { convert_299 as convert };
|
|
3545
3551
|
}
|
|
3546
|
-
export namespace
|
|
3552
|
+
export namespace ignore_basic_report {
|
|
3547
3553
|
let cluster_300: string;
|
|
3548
3554
|
export { cluster_300 as cluster };
|
|
3549
3555
|
let type_300: string[];
|
|
@@ -3551,7 +3557,7 @@ export namespace ignore_temperature_report {
|
|
|
3551
3557
|
export function convert_300(model: any, msg: any, publish: any, options: any, meta: any): any;
|
|
3552
3558
|
export { convert_300 as convert };
|
|
3553
3559
|
}
|
|
3554
|
-
export namespace
|
|
3560
|
+
export namespace ignore_illuminance_report {
|
|
3555
3561
|
let cluster_301: string;
|
|
3556
3562
|
export { cluster_301 as cluster };
|
|
3557
3563
|
let type_301: string[];
|
|
@@ -3559,7 +3565,7 @@ export namespace ignore_humidity_report {
|
|
|
3559
3565
|
export function convert_301(model: any, msg: any, publish: any, options: any, meta: any): any;
|
|
3560
3566
|
export { convert_301 as convert };
|
|
3561
3567
|
}
|
|
3562
|
-
export namespace
|
|
3568
|
+
export namespace ignore_occupancy_report {
|
|
3563
3569
|
let cluster_302: string;
|
|
3564
3570
|
export { cluster_302 as cluster };
|
|
3565
3571
|
let type_302: string[];
|
|
@@ -3567,7 +3573,7 @@ export namespace ignore_pressure_report {
|
|
|
3567
3573
|
export function convert_302(model: any, msg: any, publish: any, options: any, meta: any): any;
|
|
3568
3574
|
export { convert_302 as convert };
|
|
3569
3575
|
}
|
|
3570
|
-
export namespace
|
|
3576
|
+
export namespace ignore_temperature_report {
|
|
3571
3577
|
let cluster_303: string;
|
|
3572
3578
|
export { cluster_303 as cluster };
|
|
3573
3579
|
let type_303: string[];
|
|
@@ -3575,7 +3581,7 @@ export namespace ignore_analog_report {
|
|
|
3575
3581
|
export function convert_303(model: any, msg: any, publish: any, options: any, meta: any): any;
|
|
3576
3582
|
export { convert_303 as convert };
|
|
3577
3583
|
}
|
|
3578
|
-
export namespace
|
|
3584
|
+
export namespace ignore_humidity_report {
|
|
3579
3585
|
let cluster_304: string;
|
|
3580
3586
|
export { cluster_304 as cluster };
|
|
3581
3587
|
let type_304: string[];
|
|
@@ -3583,7 +3589,7 @@ export namespace ignore_multistate_report {
|
|
|
3583
3589
|
export function convert_304(model: any, msg: any, publish: any, options: any, meta: any): any;
|
|
3584
3590
|
export { convert_304 as convert };
|
|
3585
3591
|
}
|
|
3586
|
-
export namespace
|
|
3592
|
+
export namespace ignore_pressure_report {
|
|
3587
3593
|
let cluster_305: string;
|
|
3588
3594
|
export { cluster_305 as cluster };
|
|
3589
3595
|
let type_305: string[];
|
|
@@ -3591,7 +3597,7 @@ export namespace ignore_power_report {
|
|
|
3591
3597
|
export function convert_305(model: any, msg: any, publish: any, options: any, meta: any): any;
|
|
3592
3598
|
export { convert_305 as convert };
|
|
3593
3599
|
}
|
|
3594
|
-
export namespace
|
|
3600
|
+
export namespace ignore_analog_report {
|
|
3595
3601
|
let cluster_306: string;
|
|
3596
3602
|
export { cluster_306 as cluster };
|
|
3597
3603
|
let type_306: string[];
|
|
@@ -3599,7 +3605,7 @@ export namespace ignore_light_brightness_report {
|
|
|
3599
3605
|
export function convert_306(model: any, msg: any, publish: any, options: any, meta: any): any;
|
|
3600
3606
|
export { convert_306 as convert };
|
|
3601
3607
|
}
|
|
3602
|
-
export namespace
|
|
3608
|
+
export namespace ignore_multistate_report {
|
|
3603
3609
|
let cluster_307: string;
|
|
3604
3610
|
export { cluster_307 as cluster };
|
|
3605
3611
|
let type_307: string[];
|
|
@@ -3607,7 +3613,7 @@ export namespace ignore_light_color_colortemp_report {
|
|
|
3607
3613
|
export function convert_307(model: any, msg: any, publish: any, options: any, meta: any): any;
|
|
3608
3614
|
export { convert_307 as convert };
|
|
3609
3615
|
}
|
|
3610
|
-
export namespace
|
|
3616
|
+
export namespace ignore_power_report {
|
|
3611
3617
|
let cluster_308: string;
|
|
3612
3618
|
export { cluster_308 as cluster };
|
|
3613
3619
|
let type_308: string[];
|
|
@@ -3615,7 +3621,7 @@ export namespace ignore_closuresWindowCovering_report {
|
|
|
3615
3621
|
export function convert_308(model: any, msg: any, publish: any, options: any, meta: any): any;
|
|
3616
3622
|
export { convert_308 as convert };
|
|
3617
3623
|
}
|
|
3618
|
-
export namespace
|
|
3624
|
+
export namespace ignore_light_brightness_report {
|
|
3619
3625
|
let cluster_309: string;
|
|
3620
3626
|
export { cluster_309 as cluster };
|
|
3621
3627
|
let type_309: string[];
|
|
@@ -3623,7 +3629,7 @@ export namespace ignore_thermostat_report {
|
|
|
3623
3629
|
export function convert_309(model: any, msg: any, publish: any, options: any, meta: any): any;
|
|
3624
3630
|
export { convert_309 as convert };
|
|
3625
3631
|
}
|
|
3626
|
-
export namespace
|
|
3632
|
+
export namespace ignore_light_color_colortemp_report {
|
|
3627
3633
|
let cluster_310: string;
|
|
3628
3634
|
export { cluster_310 as cluster };
|
|
3629
3635
|
let type_310: string[];
|
|
@@ -3631,15 +3637,15 @@ export namespace ignore_iaszone_attreport {
|
|
|
3631
3637
|
export function convert_310(model: any, msg: any, publish: any, options: any, meta: any): any;
|
|
3632
3638
|
export { convert_310 as convert };
|
|
3633
3639
|
}
|
|
3634
|
-
export namespace
|
|
3640
|
+
export namespace ignore_closuresWindowCovering_report {
|
|
3635
3641
|
let cluster_311: string;
|
|
3636
3642
|
export { cluster_311 as cluster };
|
|
3637
|
-
let type_311: string;
|
|
3643
|
+
let type_311: string[];
|
|
3638
3644
|
export { type_311 as type };
|
|
3639
3645
|
export function convert_311(model: any, msg: any, publish: any, options: any, meta: any): any;
|
|
3640
3646
|
export { convert_311 as convert };
|
|
3641
3647
|
}
|
|
3642
|
-
export namespace
|
|
3648
|
+
export namespace ignore_thermostat_report {
|
|
3643
3649
|
let cluster_312: string;
|
|
3644
3650
|
export { cluster_312 as cluster };
|
|
3645
3651
|
let type_312: string[];
|
|
@@ -3647,7 +3653,7 @@ export namespace ignore_iaszone_report {
|
|
|
3647
3653
|
export function convert_312(model: any, msg: any, publish: any, options: any, meta: any): any;
|
|
3648
3654
|
export { convert_312 as convert };
|
|
3649
3655
|
}
|
|
3650
|
-
export namespace
|
|
3656
|
+
export namespace ignore_iaszone_attreport {
|
|
3651
3657
|
let cluster_313: string;
|
|
3652
3658
|
export { cluster_313 as cluster };
|
|
3653
3659
|
let type_313: string[];
|
|
@@ -3655,39 +3661,39 @@ export namespace ignore_iasace_commandgetpanelstatus {
|
|
|
3655
3661
|
export function convert_313(model: any, msg: any, publish: any, options: any, meta: any): any;
|
|
3656
3662
|
export { convert_313 as convert };
|
|
3657
3663
|
}
|
|
3658
|
-
export namespace
|
|
3664
|
+
export namespace ignore_iaszone_statuschange {
|
|
3659
3665
|
let cluster_314: string;
|
|
3660
3666
|
export { cluster_314 as cluster };
|
|
3661
|
-
let type_314: string
|
|
3667
|
+
let type_314: string;
|
|
3662
3668
|
export { type_314 as type };
|
|
3663
3669
|
export function convert_314(model: any, msg: any, publish: any, options: any, meta: any): any;
|
|
3664
3670
|
export { convert_314 as convert };
|
|
3665
3671
|
}
|
|
3666
|
-
export namespace
|
|
3672
|
+
export namespace ignore_iaszone_report {
|
|
3667
3673
|
let cluster_315: string;
|
|
3668
3674
|
export { cluster_315 as cluster };
|
|
3669
|
-
let type_315: string;
|
|
3675
|
+
let type_315: string[];
|
|
3670
3676
|
export { type_315 as type };
|
|
3671
3677
|
export function convert_315(model: any, msg: any, publish: any, options: any, meta: any): any;
|
|
3672
3678
|
export { convert_315 as convert };
|
|
3673
3679
|
}
|
|
3674
|
-
export namespace
|
|
3680
|
+
export namespace ignore_iasace_commandgetpanelstatus {
|
|
3675
3681
|
let cluster_316: string;
|
|
3676
3682
|
export { cluster_316 as cluster };
|
|
3677
|
-
let type_316: string;
|
|
3683
|
+
let type_316: string[];
|
|
3678
3684
|
export { type_316 as type };
|
|
3679
3685
|
export function convert_316(model: any, msg: any, publish: any, options: any, meta: any): any;
|
|
3680
3686
|
export { convert_316 as convert };
|
|
3681
3687
|
}
|
|
3682
|
-
export namespace
|
|
3688
|
+
export namespace ignore_genIdentify {
|
|
3683
3689
|
let cluster_317: string;
|
|
3684
3690
|
export { cluster_317 as cluster };
|
|
3685
|
-
let type_317: string;
|
|
3691
|
+
let type_317: string[];
|
|
3686
3692
|
export { type_317 as type };
|
|
3687
3693
|
export function convert_317(model: any, msg: any, publish: any, options: any, meta: any): any;
|
|
3688
3694
|
export { convert_317 as convert };
|
|
3689
3695
|
}
|
|
3690
|
-
export namespace
|
|
3696
|
+
export namespace ignore_command_on {
|
|
3691
3697
|
let cluster_318: string;
|
|
3692
3698
|
export { cluster_318 as cluster };
|
|
3693
3699
|
let type_318: string;
|
|
@@ -3695,31 +3701,31 @@ export namespace ignore_command_stop {
|
|
|
3695
3701
|
export function convert_318(model: any, msg: any, publish: any, options: any, meta: any): any;
|
|
3696
3702
|
export { convert_318 as convert };
|
|
3697
3703
|
}
|
|
3698
|
-
export namespace
|
|
3704
|
+
export namespace ignore_command_off {
|
|
3699
3705
|
let cluster_319: string;
|
|
3700
3706
|
export { cluster_319 as cluster };
|
|
3701
|
-
let type_319: string
|
|
3707
|
+
let type_319: string;
|
|
3702
3708
|
export { type_319 as type };
|
|
3703
3709
|
export function convert_319(model: any, msg: any, publish: any, options: any, meta: any): any;
|
|
3704
3710
|
export { convert_319 as convert };
|
|
3705
3711
|
}
|
|
3706
|
-
export namespace
|
|
3712
|
+
export namespace ignore_command_step {
|
|
3707
3713
|
let cluster_320: string;
|
|
3708
3714
|
export { cluster_320 as cluster };
|
|
3709
|
-
let type_320: string
|
|
3715
|
+
let type_320: string;
|
|
3710
3716
|
export { type_320 as type };
|
|
3711
3717
|
export function convert_320(model: any, msg: any, publish: any, options: any, meta: any): any;
|
|
3712
3718
|
export { convert_320 as convert };
|
|
3713
3719
|
}
|
|
3714
|
-
export namespace
|
|
3720
|
+
export namespace ignore_command_stop {
|
|
3715
3721
|
let cluster_321: string;
|
|
3716
3722
|
export { cluster_321 as cluster };
|
|
3717
|
-
let type_321: string
|
|
3723
|
+
let type_321: string;
|
|
3718
3724
|
export { type_321 as type };
|
|
3719
3725
|
export function convert_321(model: any, msg: any, publish: any, options: any, meta: any): any;
|
|
3720
3726
|
export { convert_321 as convert };
|
|
3721
3727
|
}
|
|
3722
|
-
export namespace
|
|
3728
|
+
export namespace ignore_poll_ctrl {
|
|
3723
3729
|
let cluster_322: string;
|
|
3724
3730
|
export { cluster_322 as cluster };
|
|
3725
3731
|
let type_322: string[];
|
|
@@ -3727,23 +3733,23 @@ export namespace ignore_haDiagnostic {
|
|
|
3727
3733
|
export function convert_322(model: any, msg: any, publish: any, options: any, meta: any): any;
|
|
3728
3734
|
export { convert_322 as convert };
|
|
3729
3735
|
}
|
|
3730
|
-
export namespace
|
|
3736
|
+
export namespace ignore_genLevelCtrl_report {
|
|
3731
3737
|
let cluster_323: string;
|
|
3732
3738
|
export { cluster_323 as cluster };
|
|
3733
|
-
let type_323: string;
|
|
3739
|
+
let type_323: string[];
|
|
3734
3740
|
export { type_323 as type };
|
|
3735
3741
|
export function convert_323(model: any, msg: any, publish: any, options: any, meta: any): any;
|
|
3736
3742
|
export { convert_323 as convert };
|
|
3737
3743
|
}
|
|
3738
|
-
export namespace
|
|
3744
|
+
export namespace ignore_genOta {
|
|
3739
3745
|
let cluster_324: string;
|
|
3740
3746
|
export { cluster_324 as cluster };
|
|
3741
|
-
let type_324: string;
|
|
3747
|
+
let type_324: string[];
|
|
3742
3748
|
export { type_324 as type };
|
|
3743
3749
|
export function convert_324(model: any, msg: any, publish: any, options: any, meta: any): any;
|
|
3744
3750
|
export { convert_324 as convert };
|
|
3745
3751
|
}
|
|
3746
|
-
export namespace
|
|
3752
|
+
export namespace ignore_haDiagnostic {
|
|
3747
3753
|
let cluster_325: string;
|
|
3748
3754
|
export { cluster_325 as cluster };
|
|
3749
3755
|
let type_325: string[];
|
|
@@ -3751,23 +3757,23 @@ export namespace ignore_tuya_set_time {
|
|
|
3751
3757
|
export function convert_325(model: any, msg: any, publish: any, options: any, meta: any): any;
|
|
3752
3758
|
export { convert_325 as convert };
|
|
3753
3759
|
}
|
|
3754
|
-
export namespace
|
|
3760
|
+
export namespace ignore_zclversion_read {
|
|
3755
3761
|
let cluster_326: string;
|
|
3756
3762
|
export { cluster_326 as cluster };
|
|
3757
|
-
let type_326: string
|
|
3763
|
+
let type_326: string;
|
|
3758
3764
|
export { type_326 as type };
|
|
3759
3765
|
export function convert_326(model: any, msg: any, publish: any, options: any, meta: any): any;
|
|
3760
3766
|
export { convert_326 as convert };
|
|
3761
3767
|
}
|
|
3762
|
-
export namespace
|
|
3768
|
+
export namespace ignore_time_read {
|
|
3763
3769
|
let cluster_327: string;
|
|
3764
3770
|
export { cluster_327 as cluster };
|
|
3765
|
-
let type_327: string
|
|
3771
|
+
let type_327: string;
|
|
3766
3772
|
export { type_327 as type };
|
|
3767
3773
|
export function convert_327(model: any, msg: any, publish: any, options: any, meta: any): any;
|
|
3768
3774
|
export { convert_327 as convert };
|
|
3769
3775
|
}
|
|
3770
|
-
export namespace
|
|
3776
|
+
export namespace ignore_tuya_set_time {
|
|
3771
3777
|
let cluster_328: string;
|
|
3772
3778
|
export { cluster_328 as cluster };
|
|
3773
3779
|
let type_328: string[];
|
|
@@ -3775,4 +3781,28 @@ export namespace ignore_electrical_measurement {
|
|
|
3775
3781
|
export function convert_328(model: any, msg: any, publish: any, options: any, meta: any): any;
|
|
3776
3782
|
export { convert_328 as convert };
|
|
3777
3783
|
}
|
|
3784
|
+
export namespace ignore_tuya_raw {
|
|
3785
|
+
let cluster_329: string;
|
|
3786
|
+
export { cluster_329 as cluster };
|
|
3787
|
+
let type_329: string[];
|
|
3788
|
+
export { type_329 as type };
|
|
3789
|
+
export function convert_329(model: any, msg: any, publish: any, options: any, meta: any): any;
|
|
3790
|
+
export { convert_329 as convert };
|
|
3791
|
+
}
|
|
3792
|
+
export namespace ignore_metering {
|
|
3793
|
+
let cluster_330: string;
|
|
3794
|
+
export { cluster_330 as cluster };
|
|
3795
|
+
let type_330: string[];
|
|
3796
|
+
export { type_330 as type };
|
|
3797
|
+
export function convert_330(model: any, msg: any, publish: any, options: any, meta: any): any;
|
|
3798
|
+
export { convert_330 as convert };
|
|
3799
|
+
}
|
|
3800
|
+
export namespace ignore_electrical_measurement {
|
|
3801
|
+
let cluster_331: string;
|
|
3802
|
+
export { cluster_331 as cluster };
|
|
3803
|
+
let type_331: string[];
|
|
3804
|
+
export { type_331 as type };
|
|
3805
|
+
export function convert_331(model: any, msg: any, publish: any, options: any, meta: any): any;
|
|
3806
|
+
export { convert_331 as convert };
|
|
3807
|
+
}
|
|
3778
3808
|
//# sourceMappingURL=fromZigbee.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fromZigbee.d.ts","sourceRoot":"","sources":["../src/converters/fromZigbee.js"],"names":[],"mappings":";;;;IA8BiB;;;MAKR;;;;;;;IAKQ,
|
|
1
|
+
{"version":3,"file":"fromZigbee.d.ts","sourceRoot":"","sources":["../src/converters/fromZigbee.js"],"names":[],"mappings":"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MASR;;;;;;;;;;IAMQ;;MAQR;;;;;;;;IAKQ;;MAiBR;;;;;;;;IAKQ;;MAMR;;;;;;;;IAKQ;;MASR;;;;;;;;IAQQ,8FAA4C;;;;;;;;IAK5C,8FAA4C;;;;;;;;IAK5C,8FAA4C;;;;;;;;IAK5C,8FAA4C;;;;;;;;IAK5C,8FAA4C;;;;;;;;IAK5C,8FAA4C;;;;;;;;IAK5C,8FAA4C;;;;;;;;IAK5C,8FAA4C;;;;;;;;IAK5C,8FAA4C;;;;;;;;IAK5C,8FAA4C;;;;;;;;IAK5C,8FAA4C;;;;;;;;IAK5C,8FAA4C;;;;;;;;IAK5C,8FAA4C;;;;;;;;IAK5C,8FAA4C;;;;;;;;IAK5C,8FAA4C;;;;;;;;IAK5C,8FAA4C;;;;;;;;IAK5C,8FAA4C;;;;;;;;IAK5C,8FAA4C;;;;;;;;IAK5C,8FAA4C;;;;;;;;IAK5C,8FAA4C;;;;;;;;IAK5C,8FAA4C;;;;;;;;IAK5C,8FAA4C;;;;;;;;IAK5C,8FAA4C;;;;;;;;IAK5C,8FAA4C;;;;;;;;IAK5C,8FAA4C;;;;;;;;IAK5C,8FAA4C;;;;;;;;IAK5C,8FAA4C;;;;;;;;IAK5C,8FAA4C;;;;;;;;IAK5C,8FAA4C;;;;;;;;IAK5C,8FAA4C;;;;;;;;IAK5C,8FAA4C;;;;;;;;IAK5C,8FAA4C;;;;;;;;IAK5C,8FAA4C"}
|
package/converters/fromZigbee.js
CHANGED
|
@@ -34,23 +34,30 @@ const converters = {
|
|
|
34
34
|
const result = {};
|
|
35
35
|
const dontMapPIHeatingDemand = model.meta && model.meta.thermostat && model.meta.thermostat.dontMapPIHeatingDemand;
|
|
36
36
|
if (msg.data.hasOwnProperty('localTemp')) {
|
|
37
|
-
|
|
37
|
+
const value = precisionRound(msg.data['localTemp'], 2) / 100;
|
|
38
|
+
if (value >= -273.15) {
|
|
39
|
+
result[postfixWithEndpointName('local_temperature', msg, model, meta)] = value;
|
|
40
|
+
}
|
|
38
41
|
}
|
|
39
42
|
if (msg.data.hasOwnProperty('localTemperatureCalibration')) {
|
|
40
43
|
result[postfixWithEndpointName('local_temperature_calibration', msg, model, meta)] =
|
|
41
44
|
precisionRound(msg.data['localTemperatureCalibration'], 2) / 10;
|
|
42
45
|
}
|
|
43
46
|
if (msg.data.hasOwnProperty('outdoorTemp')) {
|
|
44
|
-
|
|
47
|
+
const value = precisionRound(msg.data['outdoorTemp'], 2) / 100;
|
|
48
|
+
if (value >= -273.15) {
|
|
49
|
+
result[postfixWithEndpointName('outdoor_temperature', msg, model, meta)] = value;
|
|
50
|
+
}
|
|
45
51
|
}
|
|
46
52
|
if (msg.data.hasOwnProperty('occupancy')) {
|
|
47
53
|
result[postfixWithEndpointName('occupancy', msg, model, meta)] = (msg.data.occupancy % 2) > 0;
|
|
48
54
|
}
|
|
49
55
|
if (msg.data.hasOwnProperty('occupiedHeatingSetpoint')) {
|
|
50
|
-
|
|
56
|
+
const value = precisionRound(msg.data['occupiedHeatingSetpoint'], 2) / 100;
|
|
51
57
|
// Stelpro will return -325.65 when set to off, value is not realistic anyway
|
|
52
|
-
|
|
53
|
-
|
|
58
|
+
if (value >= -273.15) {
|
|
59
|
+
result[postfixWithEndpointName('occupied_heating_setpoint', msg, model, meta)] = value;
|
|
60
|
+
}
|
|
54
61
|
}
|
|
55
62
|
if (msg.data.hasOwnProperty('unoccupiedHeatingSetpoint')) {
|
|
56
63
|
result[postfixWithEndpointName('unoccupied_heating_setpoint', msg, model, meta)] =
|
|
@@ -108,6 +115,11 @@ const converters = {
|
|
|
108
115
|
result[postfixWithEndpointName('pi_heating_demand', msg, model, meta)] =
|
|
109
116
|
mapNumberRange(msg.data['pIHeatingDemand'], 0, (dontMapPIHeatingDemand ? 100 : 255), 0, 100);
|
|
110
117
|
}
|
|
118
|
+
if (msg.data.hasOwnProperty('pICoolingDemand')) {
|
|
119
|
+
// we assume the behavior is consistent for pIHeatingDemand + pICoolingDemand for the same vendor
|
|
120
|
+
result[postfixWithEndpointName('pi_cooling_demand', msg, model, meta)] =
|
|
121
|
+
mapNumberRange(msg.data['pICoolingDemand'], 0, (dontMapPIHeatingDemand ? 100 : 255), 0, 100);
|
|
122
|
+
}
|
|
111
123
|
if (msg.data.hasOwnProperty('tempSetpointHold')) {
|
|
112
124
|
result[postfixWithEndpointName('temperature_setpoint_hold', msg, model, meta)] = msg.data['tempSetpointHold'] == 1;
|
|
113
125
|
}
|
|
@@ -116,24 +128,46 @@ const converters = {
|
|
|
116
128
|
msg.data['tempSetpointHoldDuration'];
|
|
117
129
|
}
|
|
118
130
|
if (msg.data.hasOwnProperty('minHeatSetpointLimit')) {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
131
|
+
const value = precisionRound(msg.data['minHeatSetpointLimit'], 2) / 100;
|
|
132
|
+
if (value >= -273.15) {
|
|
133
|
+
result[postfixWithEndpointName('min_heat_setpoint_limit', msg, model, meta)] = value;
|
|
134
|
+
}
|
|
122
135
|
}
|
|
123
136
|
if (msg.data.hasOwnProperty('maxHeatSetpointLimit')) {
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
137
|
+
const value = precisionRound(msg.data['maxHeatSetpointLimit'], 2) / 100;
|
|
138
|
+
if (value >= -273.15) {
|
|
139
|
+
result[postfixWithEndpointName('max_heat_setpoint_limit', msg, model, meta)] = value;
|
|
140
|
+
}
|
|
127
141
|
}
|
|
128
142
|
if (msg.data.hasOwnProperty('absMinHeatSetpointLimit')) {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
143
|
+
const value = precisionRound(msg.data['absMinHeatSetpointLimit'], 2) / 100;
|
|
144
|
+
if (value >= -273.15) {
|
|
145
|
+
result[postfixWithEndpointName('abs_min_heat_setpoint_limit', msg, model, meta)] = value;
|
|
146
|
+
}
|
|
132
147
|
}
|
|
133
148
|
if (msg.data.hasOwnProperty('absMaxHeatSetpointLimit')) {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
149
|
+
const value = precisionRound(msg.data['absMaxHeatSetpointLimit'], 2) / 100;
|
|
150
|
+
if (value >= -273.15) {
|
|
151
|
+
result[postfixWithEndpointName('abs_max_heat_setpoint_limit', msg, model, meta)] = value;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
if (msg.data.hasOwnProperty('absMinCoolSetpointLimit')) {
|
|
155
|
+
const value = precisionRound(msg.data['absMinCoolSetpointLimit'], 2) / 100;
|
|
156
|
+
if (value >= -273.15) {
|
|
157
|
+
result[postfixWithEndpointName('abs_min_cool_setpoint_limit', msg, model, meta)] = value;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
if (msg.data.hasOwnProperty('absMaxCoolSetpointLimit')) {
|
|
161
|
+
const value = precisionRound(msg.data['absMaxCoolSetpointLimit'], 2) / 100;
|
|
162
|
+
if (value >= -273.15) {
|
|
163
|
+
result[postfixWithEndpointName('abs_max_cool_setpoint_limit', msg, model, meta)] = value;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
if (msg.data.hasOwnProperty('minSetpointDeadBand')) {
|
|
167
|
+
const value = precisionRound(msg.data['minSetpointDeadBand'], 2) / 100;
|
|
168
|
+
if (value >= -273.15) {
|
|
169
|
+
result[postfixWithEndpointName('min_setpoint_dead_band', msg, model, meta)] = value;
|
|
170
|
+
}
|
|
137
171
|
}
|
|
138
172
|
if (msg.data.hasOwnProperty('acLouverPosition')) {
|
|
139
173
|
result[postfixWithEndpointName('ac_louver_position', msg, model, meta)] =
|
|
@@ -5998,6 +6032,56 @@ const converters = {
|
|
|
5998
6032
|
}
|
|
5999
6033
|
},
|
|
6000
6034
|
},
|
|
6035
|
+
awox_colors: {
|
|
6036
|
+
cluster: 'lightingColorCtrl',
|
|
6037
|
+
type: ['raw'],
|
|
6038
|
+
convert: (model, msg, publish, options, meta) => {
|
|
6039
|
+
const buffer = msg.data;
|
|
6040
|
+
const commonForColors = buffer[0] === 17 && buffer[2] === 48 && buffer[3] === 0 && buffer[5] === 8 && buffer[6] === 0;
|
|
6041
|
+
let color = null;
|
|
6042
|
+
if (commonForColors && buffer[4] === 255) {
|
|
6043
|
+
color = 'red';
|
|
6044
|
+
}
|
|
6045
|
+
else if (commonForColors && buffer[4] === 42) {
|
|
6046
|
+
color = 'yellow';
|
|
6047
|
+
}
|
|
6048
|
+
else if (commonForColors && buffer[4] === 85) {
|
|
6049
|
+
color = 'green';
|
|
6050
|
+
}
|
|
6051
|
+
else if (commonForColors && buffer[4] === 170) {
|
|
6052
|
+
color = 'blue';
|
|
6053
|
+
}
|
|
6054
|
+
if (color != null) {
|
|
6055
|
+
return { action: color };
|
|
6056
|
+
}
|
|
6057
|
+
},
|
|
6058
|
+
},
|
|
6059
|
+
awox_refreshColored: {
|
|
6060
|
+
cluster: 'lightingColorCtrl',
|
|
6061
|
+
type: ['commandMoveHue'],
|
|
6062
|
+
convert: (model, msg, publish, options, meta) => {
|
|
6063
|
+
if (msg.data.movemode === 1 && msg.data.rate === 12) {
|
|
6064
|
+
return {
|
|
6065
|
+
action: 'refresh_colored',
|
|
6066
|
+
};
|
|
6067
|
+
}
|
|
6068
|
+
},
|
|
6069
|
+
},
|
|
6070
|
+
awox_refresh: {
|
|
6071
|
+
cluster: 'genLevelCtrl',
|
|
6072
|
+
type: ['raw'],
|
|
6073
|
+
convert: (model, msg, publish, options, meta) => {
|
|
6074
|
+
const buffer = msg.data;
|
|
6075
|
+
const isRefresh = buffer[0] === 17 && buffer[2] === 16 && (buffer[3] === 1 || buffer[3] === 0) && buffer[4] === 1;
|
|
6076
|
+
const isRefreshLong = buffer[0] === 17 && buffer[2] === 16 && buffer[3] === 1 && buffer[4] === 2;
|
|
6077
|
+
if (isRefresh) {
|
|
6078
|
+
return { action: 'refresh' };
|
|
6079
|
+
}
|
|
6080
|
+
else if (isRefreshLong) {
|
|
6081
|
+
return { action: 'refresh_long' };
|
|
6082
|
+
}
|
|
6083
|
+
},
|
|
6084
|
+
},
|
|
6001
6085
|
// #endregion
|
|
6002
6086
|
// #region Ignore converters (these message dont need parsing).
|
|
6003
6087
|
ignore_onoff_report: {
|