diff --git a/homeassistant/components/light/rfxtrx.py b/homeassistant/components/light/rfxtrx.py
index fe6165dca58df04eecd0d2af35044d4fdd595033..08f3dcc7c60a594c1c899ed34f31097d5439ff7b 100644
--- a/homeassistant/components/light/rfxtrx.py
+++ b/homeassistant/components/light/rfxtrx.py
@@ -40,10 +40,6 @@ def setup_platform(hass, config, add_devices_callback, discovery_info=None):
                 datas = {ATTR_STATE: False, ATTR_FIREEVENT: fire_event}
 
                 rfxobject = rfxtrx.get_rfx_object(entity_info[ATTR_PACKETID])
-                if not isinstance(rfxobject.device, rfxtrxmod.LightDevice):
-                    _LOGGER.exception("%s is not a light",
-                                      entity_info[ATTR_NAME])
-                    return
                 new_light = RfxtrxLight(
                     entity_info[ATTR_NAME], rfxobject, datas
                 )
@@ -54,7 +50,8 @@ def setup_platform(hass, config, add_devices_callback, discovery_info=None):
 
     def light_update(event):
         """ Callback for light updates from the RFXtrx gateway. """
-        if not isinstance(event.device, rfxtrxmod.LightDevice):
+        if not isinstance(event.device, rfxtrxmod.LightingDevice) or \
+                not event.device.known_to_be_dimmable:
             return
 
         # Add entity if not exist and the automatic_add is True
diff --git a/homeassistant/components/rfxtrx.py b/homeassistant/components/rfxtrx.py
index dbc6717614cf0e8a538c6abb581bec83181622fc..60736585c2896769bc7c605f9ead81f7bff7c6f0 100644
--- a/homeassistant/components/rfxtrx.py
+++ b/homeassistant/components/rfxtrx.py
@@ -9,8 +9,8 @@ https://home-assistant.io/components/rfxtrx/
 import logging
 from homeassistant.util import slugify
 
-REQUIREMENTS = ['https://github.com/Danielhiversen/pyRFXtrx/archive/0.3.zip' +
-                '#RFXtrx==0.3']
+REQUIREMENTS = ['https://github.com/Danielhiversen/pyRFXtrx/archive/0.4.zip' +
+                '#RFXtrx==0.4']
 
 DOMAIN = "rfxtrx"
 
diff --git a/homeassistant/components/switch/rfxtrx.py b/homeassistant/components/switch/rfxtrx.py
index 110533b24321fdcb0e7705da56a9ec20894e9cdf..b3d19a5db3b357e6b8956ac7c84c5a3355008fb9 100644
--- a/homeassistant/components/switch/rfxtrx.py
+++ b/homeassistant/components/switch/rfxtrx.py
@@ -49,8 +49,8 @@ def setup_platform(hass, config, add_devices_callback, discovery_info=None):
 
     def switch_update(event):
         """ Callback for sensor updates from the RFXtrx gateway. """
-        if not isinstance(event.device, rfxtrxmod.SwitchDevice) or \
-                isinstance(event.device, rfxtrxmod.LightDevice):
+        if not isinstance(event.device, rfxtrxmod.LightingDevice) or \
+                event.device.known_to_be_dimmable:
             return
 
         # Add entity if not exist and the automatic_add is True
diff --git a/requirements_all.txt b/requirements_all.txt
index 0fa4ec23c5bfcca641bbe03927c4ac6b97e3dc56..09447a4d2c3a9291fdfe5f9b0401b049060e7a50 100644
--- a/requirements_all.txt
+++ b/requirements_all.txt
@@ -61,7 +61,7 @@ hikvision==0.4
 # http://github.com/mala-zaba/Adafruit_Python_DHT/archive/4101340de8d2457dd194bca1e8d11cbfc237e919.zip#Adafruit_DHT==1.1.0
 
 # homeassistant.components.rfxtrx
-https://github.com/Danielhiversen/pyRFXtrx/archive/0.3.zip#RFXtrx==0.3
+https://github.com/Danielhiversen/pyRFXtrx/archive/0.4.zip#RFXtrx==0.4
 
 # homeassistant.components.sensor.netatmo
 https://github.com/HydrelioxGitHub/netatmo-api-python/archive/43ff238a0122b0939a0dc4e8836b6782913fb6e2.zip#lnetatmo==0.4.0