

def setup_platform(hass, config, add_devices_callback, discovery_info=None):
    'Setup the RFXtrx platform.'
    from RFXtrx import SensorEvent
    sensors = []
    for (packet_id, entity_info) in config['devices'].items():
        event = rfxtrx.get_rfx_object(packet_id)
        device_id = ('sensor_' + slugify(event.device.id_string.lower()))
        if (device_id in rfxtrx.RFX_DEVICES):
            continue
        _LOGGER.info('Add %s rfxtrx.sensor', entity_info[ATTR_NAME])
        sub_sensors = {
            
        }
        data_types = discovery_info[ATTR_DATA_TYPE]
        if (len(data_types) == 0):
            for data_type in DATA_TYPES:
                if (data_type in event.values):
                    data_types = [data_type]
                    break
        for _data_type in data_types:
            new_sensor = RfxtrxSensor(event, entity_info[ATTR_NAME], _data_type)
            sensors.append(new_sensor)
            sub_sensors[_data_type] = new_sensor
        rfxtrx.RFX_DEVICES[device_id] = sub_sensors
    add_devices_callback(sensors)

    def sensor_update(event):
        'Callback for sensor updates from the RFXtrx gateway.'
        if (not isinstance(event, SensorEvent)):
            return
        device_id = ('sensor_' + slugify(event.device.id_string.lower()))
        if (device_id in rfxtrx.RFX_DEVICES):
            sensors = rfxtrx.RFX_DEVICES[device_id]
            for key in sensors:
                sensors[key].event = event
            return
        if (not config[ATTR_AUTOMATIC_ADD]):
            return
        pkt_id = ''.join(('{0:02x}'.format(x) for x in event.data))
        _LOGGER.info('Automatic add rfxtrx.sensor: %s', device_id)
        for data_type in DATA_TYPES:
            if (data_type in event.values):
                new_sensor = RfxtrxSensor(event, pkt_id, data_type)
                break
        sub_sensors = {
            
        }
        sub_sensors[new_sensor.data_type] = new_sensor
        rfxtrx.RFX_DEVICES[device_id] = sub_sensors
        add_devices_callback([new_sensor])
    if (sensor_update not in rfxtrx.RECEIVED_EVT_SUBSCRIBERS):
        rfxtrx.RECEIVED_EVT_SUBSCRIBERS.append(sensor_update)

dataset/ETHPy150Open home-assistant/home-assistant/homeassistant/components/sensor/rfxtrx.py setup_platform/VarMisuse@111/179 `entity_info`->`discovery_info`