Skip to content

Commit 6900937

Browse files
authored
Merge pull request #1317 from custom-components/fix_averaging_error
Fix averaging RSSI sensor attribute
2 parents 9804635 + 9f9e3a3 commit 6900937

File tree

2 files changed

+15
-8
lines changed

2 files changed

+15
-8
lines changed

custom_components/ble_monitor/manifest.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,5 @@
1414
"btsocket>=0.2.0",
1515
"pyric>=0.1.6.3"
1616
],
17-
"version": "12.9.1"
17+
"version": "12.9.2"
1818
}

custom_components/ble_monitor/sensor.py

+14-7
Original file line numberDiff line numberDiff line change
@@ -649,7 +649,8 @@ async def async_update(self):
649649
self._extra_state_attributes["median"] = state_median
650650
self._extra_state_attributes["mean"] = state_mean
651651
if self.entity_description.key != "rssi":
652-
self._extra_state_attributes["rssi"] = round(sts.mean(self.rssi_values))
652+
if self.rssi_values:
653+
self._extra_state_attributes["rssi"] = round(sts.mean(self.rssi_values))
653654
if self._period_cnt >= 1:
654655
self._measurements.clear()
655656
self.rssi_values.clear()
@@ -814,7 +815,8 @@ def collect(self, data, period_cnt, batt_attr=None):
814815

815816
async def async_update(self):
816817
"""Update sensor state and attributes."""
817-
self._extra_state_attributes["rssi"] = round(sts.mean(self.rssi_values))
818+
if self.rssi_values:
819+
self._extra_state_attributes["rssi"] = round(sts.mean(self.rssi_values))
818820
self.rssi_values.clear()
819821
self.pending_update = False
820822

@@ -849,7 +851,8 @@ def collect(self, data, period_cnt, batt_attr=None):
849851

850852
async def async_update(self):
851853
"""Update sensor state and attributes."""
852-
self._extra_state_attributes["rssi"] = round(sts.mean(self.rssi_values))
854+
if self.rssi_values:
855+
self._extra_state_attributes["rssi"] = round(sts.mean(self.rssi_values))
853856
self.rssi_values.clear()
854857
self.pending_update = False
855858

@@ -1037,7 +1040,8 @@ def reset_state(self, event=None):
10371040

10381041
async def async_update(self):
10391042
"""Update."""
1040-
self._extra_state_attributes["rssi"] = round(sts.mean(self.rssi_values))
1043+
if self.rssi_values:
1044+
self._extra_state_attributes["rssi"] = round(sts.mean(self.rssi_values))
10411045
if self._reset_timer > 0:
10421046
_LOGGER.debug("Reset timer is set to: %i seconds", self._reset_timer)
10431047
async_call_later(self.hass, self._reset_timer, self.reset_state)
@@ -1078,7 +1082,8 @@ def reset_state(self, event=None):
10781082

10791083
async def async_update(self):
10801084
"""Update."""
1081-
self._extra_state_attributes["rssi"] = round(sts.mean(self.rssi_values))
1085+
if self.rssi_values:
1086+
self._extra_state_attributes["rssi"] = round(sts.mean(self.rssi_values))
10821087
if self._reset_timer > 0:
10831088
_LOGGER.debug("Reset timer is set to: %i seconds", self._reset_timer)
10841089
async_call_later(self.hass, self._reset_timer, self.reset_state)
@@ -1122,7 +1127,8 @@ def reset_state(self, event=None):
11221127

11231128
async def async_update(self):
11241129
"""Update."""
1125-
self._extra_state_attributes["rssi"] = round(sts.mean(self.rssi_values))
1130+
if self.rssi_values:
1131+
self._extra_state_attributes["rssi"] = round(sts.mean(self.rssi_values))
11261132
if self._reset_timer > 0:
11271133
_LOGGER.debug("Reset timer is set to: %i seconds", self._reset_timer)
11281134
async_call_later(self.hass, self._reset_timer, self.reset_state)
@@ -1163,7 +1169,8 @@ def reset_state(self, event=None):
11631169

11641170
async def async_update(self):
11651171
"""Update."""
1166-
self._extra_state_attributes["rssi"] = round(sts.mean(self.rssi_values))
1172+
if self.rssi_values:
1173+
self._extra_state_attributes["rssi"] = round(sts.mean(self.rssi_values))
11671174
if self._reset_timer > 0:
11681175
_LOGGER.debug("Reset timer is set to: %i seconds", self._reset_timer)
11691176
async_call_later(self.hass, self._reset_timer, self.reset_state)

0 commit comments

Comments
 (0)