zigbee-herdsman-converters 15.0.46 → 15.0.48

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/devices/bosch.js CHANGED
@@ -522,6 +522,22 @@ const definition = [
522
522
  exposes.enum('heartbeat', ea.ALL, Object.keys(stateOffOn)).withDescription('Enable/disable heartbeat'),
523
523
  ],
524
524
  },
525
+ {
526
+ zigbeeModel: ['RFPR-ZB-SH-EU'],
527
+ model: 'RFPR-ZB-SH-EU',
528
+ vendor: 'Bosch',
529
+ description: 'Wireless motion detector',
530
+ fromZigbee: [fz.temperature, fz.battery, fz.ias_occupancy_alarm_1],
531
+ toZigbee: [],
532
+ meta: {battery: {voltageToPercentage: '3V_2500'}},
533
+ configure: async (device, coordinatorEndpoint, logger) => {
534
+ const endpoint = device.getEndpoint(1);
535
+ await reporting.bind(endpoint, coordinatorEndpoint, ['msTemperatureMeasurement', 'genPowerCfg']);
536
+ await reporting.temperature(endpoint);
537
+ await reporting.batteryVoltage(endpoint);
538
+ },
539
+ exposes: [e.temperature(), e.battery(), e.occupancy(), e.battery_low(), e.tamper()],
540
+ },
525
541
  {
526
542
  zigbeeModel: ['RBSH-SP-ZB-EU'],
527
543
  model: 'BSP-FZ2',
@@ -1,4 +1,8 @@
1
+ const exposes = require('../lib/exposes');
2
+ const fz = require('../converters/fromZigbee');
3
+ const reporting = require('../lib/reporting');
1
4
  const extend = require('../lib/extend');
5
+ const e = exposes.presets;
2
6
 
3
7
  module.exports = [
4
8
  {
@@ -64,4 +68,20 @@ module.exports = [
64
68
  description: 'GU10 MR16 RGBW light bulb',
65
69
  extend: extend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 370]}),
66
70
  },
71
+ {
72
+ zigbeeModel: ['EB-SB-1B'],
73
+ model: 'EB-SB-1B',
74
+ vendor: 'EssentielB',
75
+ description: 'Smart button',
76
+ fromZigbee: [fz.battery, fz.command_on, fz.command_off, fz.command_step, fz.command_stop, fz.command_step_color_temperature],
77
+ toZigbee: [],
78
+ exposes: [e.battery(), e.action(['on', 'off', 'color_temperature_step_up', 'color_temperature_step_down',
79
+ 'brightness_step_up', 'brightness_step_down', 'brightness_stop'])],
80
+ configure: async (device, coordinatorEndpoint, logger) => {
81
+ const endpoint = device.getEndpoint(1);
82
+ const binds = ['genBasic', 'genOnOff', 'genPowerCfg', 'lightingColorCtrl', 'genLevelCtrl'];
83
+ await reporting.bind(endpoint, coordinatorEndpoint, binds);
84
+ await reporting.batteryPercentageRemaining(endpoint);
85
+ },
86
+ },
67
87
  ];
package/devices/ikea.js CHANGED
@@ -181,7 +181,7 @@ const ikea = {
181
181
  return state;
182
182
  },
183
183
  },
184
- remote_battery: {
184
+ battery: {
185
185
  cluster: 'genPowerCfg',
186
186
  type: ['attributeReport', 'readResponse'],
187
187
  convert: (model, msg, publish, options, meta) => {
@@ -645,7 +645,7 @@ module.exports = [
645
645
  model: 'E1524/E1810',
646
646
  description: 'TRADFRI remote control',
647
647
  vendor: 'IKEA',
648
- fromZigbee: [ikea.fz.remote_battery, fz.E1524_E1810_toggle, fz.E1524_E1810_levelctrl, fz.ikea_arrow_click, fz.ikea_arrow_hold,
648
+ fromZigbee: [ikea.fz.battery, fz.E1524_E1810_toggle, fz.E1524_E1810_levelctrl, fz.ikea_arrow_click, fz.ikea_arrow_hold,
649
649
  fz.ikea_arrow_release],
650
650
  exposes: [e.battery().withAccess(ea.STATE_GET), e.action(['arrow_left_click', 'arrow_left_hold', 'arrow_left_release',
651
651
  'arrow_right_click', 'arrow_right_hold', 'arrow_right_release', 'brightness_down_click', 'brightness_down_hold',
@@ -661,14 +661,13 @@ module.exports = [
661
661
  model: 'E2001/E2002',
662
662
  vendor: 'IKEA',
663
663
  description: 'STYRBAR remote control',
664
- fromZigbee: [ikea.fz.remote_battery, ikea.fz.styrbar_on, fz.command_off, fz.command_move, fz.command_stop, fz.ikea_arrow_click,
664
+ fromZigbee: [ikea.fz.battery, ikea.fz.styrbar_on, fz.command_off, fz.command_move, fz.command_stop, fz.ikea_arrow_click,
665
665
  fz.ikea_arrow_hold, ikea.fz.styrbar_arrow_release],
666
666
  exposes: [e.battery().withAccess(ea.STATE_GET), e.action(['on', 'off', 'brightness_move_up', 'brightness_move_down',
667
667
  'brightness_stop', 'arrow_left_click', 'arrow_right_click', 'arrow_left_hold',
668
668
  'arrow_right_hold', 'arrow_left_release', 'arrow_right_release'])],
669
669
  toZigbee: [tz.battery_percentage_remaining],
670
670
  ota: ota.tradfri,
671
- meta: {battery: {dontDividePercentage: true}},
672
671
  configure: async (device, coordinatorEndpoint, logger) => {
673
672
  // Binding genOnOff is not required to make device send events.
674
673
  const endpoint = device.getEndpoint(1);
@@ -682,7 +681,7 @@ module.exports = [
682
681
  vendor: 'IKEA',
683
682
  description: 'TRADFRI ON/OFF switch',
684
683
  fromZigbee: [fz.command_on, fz.legacy.genOnOff_cmdOn, fz.command_off, fz.legacy.genOnOff_cmdOff, fz.command_move,
685
- ikea.fz.remote_battery, fz.legacy.E1743_brightness_up, fz.legacy.E1743_brightness_down, fz.command_stop,
684
+ ikea.fz.battery, fz.legacy.E1743_brightness_up, fz.legacy.E1743_brightness_down, fz.command_stop,
686
685
  fz.legacy.E1743_brightness_stop],
687
686
  exposes: [
688
687
  e.battery().withAccess(ea.STATE_GET),
@@ -690,7 +689,7 @@ module.exports = [
690
689
  ],
691
690
  toZigbee: [tz.battery_percentage_remaining],
692
691
  ota: ota.tradfri,
693
- meta: {disableActionGroup: true, battery: {dontDividePercentage: true}},
692
+ meta: {disableActionGroup: true},
694
693
  configure: configureRemote,
695
694
  },
696
695
  {
@@ -698,11 +697,11 @@ module.exports = [
698
697
  model: 'E1841',
699
698
  vendor: 'IKEA',
700
699
  description: 'KNYCKLAN open/close remote water valve',
701
- fromZigbee: [fz.command_on, fz.command_off, ikea.fz.remote_battery],
700
+ fromZigbee: [fz.command_on, fz.command_off, ikea.fz.battery],
702
701
  exposes: [e.battery().withAccess(ea.STATE_GET), e.action(['on', 'off'])],
703
702
  toZigbee: [tz.battery_percentage_remaining],
704
703
  ota: ota.tradfri,
705
- meta: {disableActionGroup: true, battery: {dontDividePercentage: true}},
704
+ meta: {disableActionGroup: true},
706
705
  configure: configureRemote,
707
706
  },
708
707
  {
@@ -725,11 +724,11 @@ module.exports = [
725
724
  model: 'E1812',
726
725
  vendor: 'IKEA',
727
726
  description: 'TRADFRI shortcut button',
728
- fromZigbee: [fz.command_on, fz.command_off, fz.command_move, fz.command_stop, ikea.fz.remote_battery],
727
+ fromZigbee: [fz.command_on, fz.command_off, fz.command_move, fz.command_stop, ikea.fz.battery],
729
728
  exposes: [e.battery().withAccess(ea.STATE_GET), e.action(['on', 'off', 'brightness_move_up', 'brightness_stop'])],
730
729
  toZigbee: [tz.battery_percentage_remaining],
731
730
  ota: ota.tradfri,
732
- meta: {disableActionGroup: true, battery: {dontDividePercentage: true}},
731
+ meta: {disableActionGroup: true},
733
732
  configure: async (device, coordinatorEndpoint, logger) => {
734
733
  // Binding genOnOff is not required to make device send events.
735
734
  const endpoint = device.getEndpoint(1);
@@ -759,7 +758,7 @@ module.exports = [
759
758
  model: 'E1525/E1745',
760
759
  vendor: 'IKEA',
761
760
  description: 'TRADFRI motion sensor',
762
- fromZigbee: [fz.battery, fz.tradfri_occupancy, fz.E1745_requested_brightness],
761
+ fromZigbee: [ikea.fz.battery, fz.tradfri_occupancy, fz.E1745_requested_brightness],
763
762
  toZigbee: [],
764
763
  exposes: [e.battery(), e.occupancy(),
765
764
  exposes.numeric('requested_brightness_level', ea.STATE).withValueMin(76).withValueMax(254),
@@ -796,9 +795,8 @@ module.exports = [
796
795
  model: 'E1757',
797
796
  vendor: 'IKEA',
798
797
  description: 'FYRTUR roller blind',
799
- fromZigbee: [fz.cover_position_tilt, fz.battery],
800
- toZigbee: [tz.cover_state, tz.cover_position_tilt],
801
- meta: {battery: {dontDividePercentage: true}},
798
+ fromZigbee: [fz.cover_position_tilt, ikea.fz.battery],
799
+ toZigbee: [tz.cover_state, tz.cover_position_tilt, tz.battery_percentage_remaining],
802
800
  ota: ota.tradfri,
803
801
  configure: async (device, coordinatorEndpoint, logger) => {
804
802
  const endpoint = device.getEndpoint(1);
@@ -806,16 +804,15 @@ module.exports = [
806
804
  await reporting.batteryPercentageRemaining(endpoint);
807
805
  await reporting.currentPositionLiftPercentage(endpoint);
808
806
  },
809
- exposes: [e.cover_position(), e.battery()],
807
+ exposes: [e.cover_position(), e.battery().withAccess(ea.STATE_GET)],
810
808
  },
811
809
  {
812
810
  zigbeeModel: ['KADRILJ roller blind'],
813
811
  model: 'E1926',
814
812
  vendor: 'IKEA',
815
813
  description: 'KADRILJ roller blind',
816
- fromZigbee: [fz.cover_position_tilt, fz.battery],
817
- toZigbee: [tz.cover_state, tz.cover_position_tilt],
818
- meta: {battery: {dontDividePercentage: true}},
814
+ fromZigbee: [fz.cover_position_tilt, ikea.fz.battery],
815
+ toZigbee: [tz.cover_state, tz.cover_position_tilt, tz.battery_percentage_remaining],
819
816
  ota: ota.tradfri,
820
817
  configure: async (device, coordinatorEndpoint, logger) => {
821
818
  const endpoint = device.getEndpoint(1);
@@ -823,16 +820,15 @@ module.exports = [
823
820
  await reporting.batteryPercentageRemaining(endpoint);
824
821
  await reporting.currentPositionLiftPercentage(endpoint);
825
822
  },
826
- exposes: [e.cover_position(), e.battery()],
823
+ exposes: [e.cover_position(), e.battery().withAccess(ea.STATE_GET)],
827
824
  },
828
825
  {
829
826
  zigbeeModel: ['PRAKTLYSING cellular blind'],
830
827
  model: 'E2102',
831
828
  vendor: 'IKEA',
832
829
  description: 'PRAKTLYSING cellular blind',
833
- fromZigbee: [fz.cover_position_tilt, fz.battery],
834
- toZigbee: [tz.cover_state, tz.cover_position_tilt],
835
- meta: {battery: {dontDividePercentage: true}},
830
+ fromZigbee: [fz.cover_position_tilt, ikea.fz.battery],
831
+ toZigbee: [tz.cover_state, tz.cover_position_tilt, tz.battery_percentage_remaining],
836
832
  ota: ota.tradfri,
837
833
  configure: async (device, coordinatorEndpoint, logger) => {
838
834
  const endpoint = device.getEndpoint(1);
@@ -840,7 +836,7 @@ module.exports = [
840
836
  await reporting.batteryPercentageRemaining(endpoint);
841
837
  await reporting.currentPositionLiftPercentage(endpoint);
842
838
  },
843
- exposes: [e.cover_position(), e.battery()],
839
+ exposes: [e.cover_position(), e.battery().withAccess(ea.STATE_GET)],
844
840
  },
845
841
  {
846
842
  zigbeeModel: ['TREDANSEN block-out cellul blind'],
@@ -864,11 +860,10 @@ module.exports = [
864
860
  model: 'E1766',
865
861
  vendor: 'IKEA',
866
862
  description: 'TRADFRI open/close remote',
867
- fromZigbee: [ikea.fz.remote_battery, fz.command_cover_close, fz.legacy.cover_close, fz.command_cover_open, fz.legacy.cover_open,
863
+ fromZigbee: [ikea.fz.battery, fz.command_cover_close, fz.legacy.cover_close, fz.command_cover_open, fz.legacy.cover_open,
868
864
  fz.command_cover_stop, fz.legacy.cover_stop],
869
865
  exposes: [e.battery().withAccess(ea.STATE_GET), e.action(['close', 'open', 'stop'])],
870
866
  toZigbee: [tz.battery_percentage_remaining],
871
- meta: {battery: {dontDividePercentage: true}},
872
867
  ota: ota.tradfri,
873
868
  configure: configureRemote,
874
869
  },
package/devices/osram.js CHANGED
@@ -335,7 +335,7 @@ module.exports = [
335
335
  model: 'AC03648',
336
336
  vendor: 'OSRAM',
337
337
  description: 'SMART+ spot GU5.3 tunable white',
338
- extend: extend.ledvance.light_onoff_brightness_colortemp({colorTempRange: [153, 370]}),
338
+ extend: extend.ledvance.light_onoff_brightness_colortemp({colorTempRange: [153, 370], disablePowerOnBehavior: true}),
339
339
  ota: ota.ledvance,
340
340
  },
341
341
  {
@@ -592,7 +592,7 @@ module.exports = [
592
592
  extend: philips.extend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}),
593
593
  },
594
594
  {
595
- zigbeeModel: ['LCG002', '929003047701', '929003047701'],
595
+ zigbeeModel: ['LCG002', '929003047701', '929003047701', '929003526202_01', ' 929003526202_02', '929003526202_03'],
596
596
  model: '929001953101',
597
597
  vendor: 'Philips',
598
598
  description: 'Hue White and Color Ambiance GU10',
@@ -3044,4 +3044,11 @@ module.exports = [
3044
3044
  description: 'Hue Gradient light tube compact',
3045
3045
  extend: philips.extend.light_onoff_brightness_colortemp_color_gradient({colorTempRange: [153, 500]}),
3046
3046
  },
3047
+ {
3048
+ zigbeeModel: ['929003055701'],
3049
+ model: '929003055701',
3050
+ vendor: 'Philips',
3051
+ description: 'Hue White Ambiance Devote',
3052
+ extend: philips.extend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500]}),
3053
+ },
3047
3054
  ];
package/devices/tuya.js CHANGED
@@ -1074,6 +1074,7 @@ module.exports = [
1074
1074
  {
1075
1075
  fingerprint: [{modelID: 'TS0202', manufacturerName: '_TYZB01_jytabjkb'},
1076
1076
  {modelID: 'TS0202', manufacturerName: '_TZ3000_lltemgsf'},
1077
+ {modelID: 'TS0202', manufacturerName: '_TYZB01_5nr7ncpl'},
1077
1078
  {modelID: 'TS0202', manufacturerName: '_TZ3000_mg4dy6z6'}],
1078
1079
  model: 'TS0202_1',
1079
1080
  vendor: 'TuYa',
@@ -1285,7 +1286,7 @@ module.exports = [
1285
1286
  },
1286
1287
  {
1287
1288
  fingerprint: tuya.fingerprint('TS0601', ['_TZE200_ip2akl4w', '_TZE200_1agwnems', '_TZE200_la2c2uo9', '_TZE200_579lguh2',
1288
- '_TZE200_vucankjx']),
1289
+ '_TZE200_vucankjx', '_TZE200_4mh6tyyo']),
1289
1290
  model: 'TS0601_dimmer_1',
1290
1291
  vendor: 'TuYa',
1291
1292
  description: '1 gang smart dimmer',
@@ -2250,7 +2251,7 @@ module.exports = [
2250
2251
  e.battery_low(), e.child_lock(), e.open_window(), e.open_window_temperature().withValueMin(5).withValueMax(30),
2251
2252
  e.comfort_temperature().withValueMin(5).withValueMax(30), e.eco_temperature().withValueMin(5).withValueMax(30),
2252
2253
  exposes.climate().withPreset(['auto', 'manual', 'holiday']).withLocalTemperatureCalibration(-5, 5, 0.1, ea.STATE_SET)
2253
- .withLocalTemperature(ea.STATE).withSetpoint('current_heating_setpoint', 5, 30, 0.5, ea.SET)
2254
+ .withLocalTemperature(ea.STATE).withSetpoint('current_heating_setpoint', 5, 30, 0.5, ea.STATE_SET)
2254
2255
  .withSystemMode(['off', 'heat'], ea.STATE_SET, 'Only for Homeassistant'),
2255
2256
  exposes.binary('heating_stop', ea.STATE_SET, 'ON', 'OFF').withDescription('Battery life can be prolonged'+
2256
2257
  ' by switching the heating off. To achieve this, the valve is closed fully. To activate the '+
@@ -77,7 +77,7 @@ module.exports = [
77
77
  },
78
78
  },
79
79
  {
80
- fingerprint: [{modelID: 'TS0003', manufacturerName: '_TZ3000_vjhcenzo'}],
80
+ fingerprint: [{modelID: 'TS0003', manufacturerName: '_TZ3000_vjhcenzo'}, {modelID: 'TS0003', manufacturerName: '_TZ3000_f09j9qjb'}],
81
81
  model: 'TB25',
82
82
  vendor: 'Zemismart',
83
83
  description: 'Smart light switch and socket - 2 gang with neutral wire',
@@ -26,6 +26,10 @@ https://files.inovelli.com/firmware/firmware.json
26
26
 
27
27
  https://files.inovelli.com/firmware
28
28
 
29
+ Experimental Inovelli OTA URL for zigpy:
30
+
31
+ https://files.inovelli.com/firmware/firmware-zha.json
32
+
29
33
  ### Sonoff OTA Firmware provider
30
34
 
31
35
  Sonoff Zigbee OTA firmware images are made publicly available by Sonoff (first-party) at the following URLs:
@@ -46,10 +50,6 @@ Download-URL:
46
50
 
47
51
  http://fw.ota.homesmart.ikea.net/feed/version_info.json
48
52
 
49
- Download-URL (Test/Beta-Version):
50
-
51
- http://fw.test.ota.homesmart.ikea.net/feed/version_info.json
52
-
53
53
  Release changelogs
54
54
 
55
55
  https://ww8.ikea.com/ikeahomesmart/releasenotes/releasenotes.html
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zigbee-herdsman-converters",
3
- "version": "15.0.46",
3
+ "version": "15.0.48",
4
4
  "description": "Collection of device converters to be used with zigbee-herdsman",
5
5
  "main": "index.js",
6
6
  "files": [