diff --git a/homeassistant/components/sensor/lacrosse.py b/homeassistant/components/sensor/lacrosse.py
index 28cba7da0b4a3ccbdc8defaa6c5d3c3bed887ef7..d284e3012dcd5c08da6e33ce2d8c73df04935a53 100644
--- a/homeassistant/components/sensor/lacrosse.py
+++ b/homeassistant/components/sensor/lacrosse.py
@@ -19,12 +19,17 @@ from homeassistant.helpers.entity import Entity, async_generate_entity_id
 from homeassistant.helpers.event import async_track_point_in_utc_time
 from homeassistant.util import dt as dt_util
 
-REQUIREMENTS = ['pylacrosse==0.2.7']
+REQUIREMENTS = ['pylacrosse==0.3.1']
 
 _LOGGER = logging.getLogger(__name__)
 
 CONF_BAUD = 'baud'
+CONF_DATARATE = 'datarate'
 CONF_EXPIRE_AFTER = 'expire_after'
+CONF_FREQUENCY = 'frequency'
+CONF_JEELINK_LED = 'led'
+CONF_TOGGLE_INTERVAL = 'toggle_interval'
+CONF_TOGGLE_MASK = 'toggle_mask'
 
 DEFAULT_DEVICE = '/dev/ttyUSB0'
 DEFAULT_BAUD = '57600'
@@ -42,7 +47,12 @@ SENSOR_SCHEMA = vol.Schema({
 PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
     vol.Required(CONF_SENSORS): vol.Schema({cv.slug: SENSOR_SCHEMA}),
     vol.Optional(CONF_BAUD, default=DEFAULT_BAUD): cv.string,
+    vol.Optional(CONF_DATARATE): cv.positive_int,
     vol.Optional(CONF_DEVICE, default=DEFAULT_DEVICE): cv.string,
+    vol.Optional(CONF_FREQUENCY): cv.positive_int,
+    vol.Optional(CONF_JEELINK_LED): cv.boolean,
+    vol.Optional(CONF_TOGGLE_INTERVAL): cv.positive_int,
+    vol.Optional(CONF_TOGGLE_MASK): cv.positive_int,
 })
 
 
@@ -66,6 +76,19 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
 
     hass.bus.listen_once(EVENT_HOMEASSISTANT_STOP, lacrosse.close)
 
+    if CONF_JEELINK_LED in config:
+        lacrosse.led_mode_state(config.get(CONF_JEELINK_LED))
+    if CONF_FREQUENCY in config:
+        lacrosse.set_frequency(config.get(CONF_FREQUENCY))
+    if CONF_DATARATE in config:
+        lacrosse.set_datarate(config.get(CONF_DATARATE))
+    if CONF_TOGGLE_INTERVAL in config:
+        lacrosse.set_toggle_interval(config.get(CONF_TOGGLE_INTERVAL))
+    if CONF_TOGGLE_MASK in config:
+        lacrosse.set_toggle_mask(config.get(CONF_TOGGLE_MASK))
+
+    lacrosse.start_scan()
+
     sensors = []
     for device, device_config in config[CONF_SENSORS].items():
         _LOGGER.debug("%s %s", device, device_config)
diff --git a/requirements_all.txt b/requirements_all.txt
index 1e9efd05723a876fa17793160a9dfe170f2f3b6c..ca444659e01c8182a6e2704228bc8b12c0dbbf3f 100644
--- a/requirements_all.txt
+++ b/requirements_all.txt
@@ -753,7 +753,7 @@ pykira==0.1.1
 pykwb==0.0.8
 
 # homeassistant.components.sensor.lacrosse
-pylacrosse==0.2.7
+pylacrosse==0.3.1
 
 # homeassistant.components.sensor.lastfm
 pylast==2.0.0