Skip to content

Commit 3c7969f

Browse files
committedJan 10, 2024
Handle exceptions for binary sensors
1 parent fce7f95 commit 3c7969f

File tree

2 files changed

+19
-15
lines changed

2 files changed

+19
-15
lines changed
 

‎custom_components/ble_monitor/binary_sensor.py

+17-11
Original file line numberDiff line numberDiff line change
@@ -88,12 +88,15 @@ async def async_add_binary_sensor(key, device_model, firmware, auto_sensors, man
8888
if key not in sensors_by_key:
8989
sensors_by_key[key] = {}
9090
if measurement not in sensors_by_key[key]:
91-
entity_description = [item for item in BINARY_SENSOR_TYPES if item.key is measurement][0]
92-
sensors[measurement] = globals()[entity_description.sensor_class](
93-
self.config, key, device_model, firmware, entity_description, manufacturer
94-
)
95-
self.add_entities([sensors[measurement]])
96-
sensors_by_key[key].update(sensors)
91+
try:
92+
entity_description = [item for item in BINARY_SENSOR_TYPES if item.key is measurement][0]
93+
sensors[measurement] = globals()[entity_description.sensor_class](
94+
self.config, key, device_model, firmware, entity_description, manufacturer
95+
)
96+
self.add_entities([sensors[measurement]])
97+
sensors_by_key[key].update(sensors)
98+
except IndexError:
99+
_LOGGER.error("Error adding measurement %s", measurement)
97100
else:
98101
sensors = sensors_by_key[key]
99102
else:
@@ -102,11 +105,14 @@ async def async_add_binary_sensor(key, device_model, firmware, auto_sensors, man
102105
sensors = {}
103106
sensors_by_key[key] = {}
104107
for measurement in device_sensors:
105-
entity_description = [item for item in BINARY_SENSOR_TYPES if item.key is measurement][0]
106-
sensors[measurement] = globals()[entity_description.sensor_class](
107-
self.config, key, device_model, firmware, entity_description, manufacturer
108-
)
109-
self.add_entities([sensors[measurement]])
108+
try:
109+
entity_description = [item for item in BINARY_SENSOR_TYPES if item.key is measurement][0]
110+
sensors[measurement] = globals()[entity_description.sensor_class](
111+
self.config, key, device_model, firmware, entity_description, manufacturer
112+
)
113+
self.add_entities([sensors[measurement]])
114+
except IndexError:
115+
_LOGGER.error("Error adding measurement %s", measurement)
110116
sensors_by_key[key] = sensors
111117
else:
112118
sensors = sensors_by_key[key]

‎custom_components/ble_monitor/const.py

+2-4
Original file line numberDiff line numberDiff line change
@@ -1637,7 +1637,6 @@ class BLEMonitorBinarySensorEntityDescription(
16371637
'YM-K1501' : [["rssi"], ["temperature"], ["switch"]],
16381638
'YM-K1501EU' : [["rssi"], ["temperature"], ["switch"]],
16391639
'V-SK152' : [["rssi"], ["temperature"], ["switch"]],
1640-
'SJWS01LM' : [["battery", "rssi"], ["button"], ["moisture detected"]],
16411640
'MJYD02YL' : [["battery", "rssi"], [], ["light", "motion"]],
16421641
'MUE4094RT' : [["rssi"], [], ["motion"]],
16431642
'RTCGQ02LM' : [["battery", "rssi"], ["button"], ["light", "motion"]],
@@ -1667,7 +1666,6 @@ class BLEMonitorBinarySensorEntityDescription(
16671666
'MHO-C401' : [["temperature", "humidity", "battery", "voltage", "rssi"], [], []],
16681667
'MHO-C303' : [["temperature", "humidity", "battery", "rssi"], [], []],
16691668
'JQJCY01YM' : [["temperature", "humidity", "battery", "formaldehyde", "rssi"], [], []],
1670-
'JTYJGD03MI' : [["rssi"], ["button", "battery"], ["smoke detector"]],
16711669
'K9B-1BTN' : [["rssi"], ["one btn switch"], []],
16721670
'K9B-2BTN' : [["rssi"], ["two btn switch left", "two btn switch right"], []],
16731671
'K9B-3BTN' : [["rssi"], ["three btn switch left", "three btn switch middle", "three btn switch right"], []],
@@ -1772,7 +1770,6 @@ class BLEMonitorBinarySensorEntityDescription(
17721770
'YM-K1501' : 'Xiaomi',
17731771
'YM-K1501EU' : 'Xiaomi',
17741772
'V-SK152' : 'Viomi',
1775-
'SJWS01LM' : 'Xiaomi',
17761773
'MJYD02YL' : 'Xiaomi',
17771774
'MUE4094RT' : 'Xiaomi',
17781775
'RTCGQ02LM' : 'Xiaomi',
@@ -1801,7 +1798,6 @@ class BLEMonitorBinarySensorEntityDescription(
18011798
'MHO-C401' : 'Miaomiaoce',
18021799
'MHO-C303' : 'Miaomiaoce',
18031800
'JQJCY01YM' : 'Honeywell',
1804-
'JTYJGD03MI' : 'Honeywell',
18051801
'YLAI003' : 'Yeelight',
18061802
'YLYK01YL' : 'Yeelight',
18071803
'YLYK01YL-FANCL' : 'Yeelight',
@@ -1927,6 +1923,7 @@ class BLEMonitorBinarySensorEntityDescription(
19271923
'MI401' : 'Grundfos',
19281924
'HHCCJCY10' : 'HHCC',
19291925
'HolyIOT BLE tracker' : 'HolyIOT',
1926+
'JTYJGD03MI' : 'Honeywell',
19301927
'Supramatic E4 BS' : 'Hörmann',
19311928
'IBS-TH' : 'Inkbird',
19321929
'IBS-TH2/P01B' : 'Inkbird',
@@ -1952,6 +1949,7 @@ class BLEMonitorBinarySensorEntityDescription(
19521949
'Tilt Yellow' : 'Tilt',
19531950
'Tilt Pink' : 'Tilt',
19541951
'MMC-W505' : 'Xiaomi',
1952+
'SJWS01LM' : 'Xiaomi',
19551953
}
19561954

19571955

0 commit comments

Comments
 (0)
Please sign in to comment.