From 2ec6a3114abe6522c0a6b035aeb1641d3d1db2a2 Mon Sep 17 00:00:00 2001 From: David Kreitschmann Date: Fri, 9 Feb 2018 18:26:21 +0100 Subject: [PATCH 1/2] Fix some rfxtrx devices with multiple sensors Some combined temperature/humidity sensors send one packet for each of their sensors. Without this fix one of the home assistant sensors would always display an unknown value. --- homeassistant/components/sensor/rfxtrx.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/sensor/rfxtrx.py b/homeassistant/components/sensor/rfxtrx.py index 1696e8e37700d6..0cf1387d2cde72 100644 --- a/homeassistant/components/sensor/rfxtrx.py +++ b/homeassistant/components/sensor/rfxtrx.py @@ -71,14 +71,16 @@ def sensor_update(event): if device_id in rfxtrx.RFX_DEVICES: sensors = rfxtrx.RFX_DEVICES[device_id] - for key in sensors: - sensor = sensors[key] + for data_type in sensors: + if data_type not in event.values: + continue + sensor = sensors[data_type] sensor.event = event # Fire event - if sensors[key].should_fire_event: + if sensor.should_fire_event: sensor.hass.bus.fire( "signal_received", { - ATTR_ENTITY_ID: sensors[key].entity_id, + ATTR_ENTITY_ID: sensor.entity_id, } ) return From e46d6e3980e384e07d0f5783ad243f594be4782b Mon Sep 17 00:00:00 2001 From: David Kreitschmann Date: Sat, 10 Feb 2018 10:12:22 +0100 Subject: [PATCH 2/2] Add comment --- homeassistant/components/sensor/rfxtrx.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/homeassistant/components/sensor/rfxtrx.py b/homeassistant/components/sensor/rfxtrx.py index 0cf1387d2cde72..4a555905d50066 100644 --- a/homeassistant/components/sensor/rfxtrx.py +++ b/homeassistant/components/sensor/rfxtrx.py @@ -72,6 +72,9 @@ def sensor_update(event): if device_id in rfxtrx.RFX_DEVICES: sensors = rfxtrx.RFX_DEVICES[device_id] for data_type in sensors: + # Some multi-sensor devices send individual messages for each + # of their sensors. Update only if event contains the + # right data_type for the sensor. if data_type not in event.values: continue sensor = sensors[data_type]