diff --git a/homeassistant/components/sensor/onewire.py b/homeassistant/components/sensor/onewire.py index e7a78393b93..c9028fc28ab 100644 --- a/homeassistant/components/sensor/onewire.py +++ b/homeassistant/components/sensor/onewire.py @@ -33,14 +33,22 @@ def setup_platform(hass, config, add_devices, discovery_info=None): base_dir = config.get(CONF_MOUNT_DIR) sensor_ids = [] device_files = [] - for device_family in DEVICE_FAMILIES: - for device_folder in glob(os.path.join(base_dir, device_family + - '[.-]*')): - sensor_ids.append(os.path.split(device_folder)[1]) - if base_dir == DEFAULT_MOUNT_DIR: + if base_dir == DEFAULT_MOUNT_DIR: + for device_family in DEVICE_FAMILIES: + for device_folder in glob(os.path.join(base_dir, device_family + + '[.-]*')): + sensor_ids.append(os.path.split(device_folder)[1]) device_files.append(os.path.join(device_folder, 'w1_slave')) - else: - device_files.append(os.path.join(device_folder, 'temperature')) + else: + for family_file_path in glob(os.path.join(base_dir, '*', 'family')): + family_file = open(family_file_path, "r") + family = family_file.read() + if family in DEVICE_FAMILIES: + sensor_id = os.path.split( + os.path.split(family_file_path)[0])[1] + sensor_ids.append(sensor_id) + device_files.append(os.path.join( + os.path.split(family_file_path)[0], 'temperature')) if device_files == []: _LOGGER.error('No onewire sensor found. Check if '