def available_sensors(__cls__):
    data = []
    all_types = ['conductivity'] # For now 'conductivity' is only available through script or remote
    for (hardware_type, sensor) in __cls__.available_hardware.items():
      if sensor.NAME is not None:
        data.append({'hardware' : hardware_type, 'name' : sensor.NAME, 'types' : sensor.TYPES})
        all_types += sensor.TYPES

    # Remote and script sensors can handle all the known types
    all_types = list(set(all_types))
    for sensor in data:
      if len(sensor['types']) == 0:
        sensor['types'] = all_types

    return sorted(data, key=itemgetter('name'))