def __new__(cls, sensor_id, hardware_type, sensor_type, address, name = '', unit_value_callback = None, trigger_callback = None):
    known_sensors = terrariumSensor.available_hardware

    if hardware_type not in known_sensors:
      raise terrariumSensorUnknownHardwareException(f'Trying to load an unknown hardware device {hardware_type} at address {address} with name {name}')

    if sensor_type not in known_sensors[hardware_type].TYPES:
      raise terrariumSensorInvalidSensorTypeException(f'Hardware does not have a {sensor_type} sensor at address {address} with name {name}')

    return super(terrariumSensor, cls).__new__(known_sensors[hardware_type])