diff --git a/flyway/migrations/V2_12__configdb_new_apitypes_and_devicetypes.sql b/flyway/migrations/V2_12__configdb_new_apitypes_and_devicetypes.sql
new file mode 100644
index 0000000000000000000000000000000000000000..d7c064297867fdbbb17d9686befbdd46aa742c0e
--- /dev/null
+++ b/flyway/migrations/V2_12__configdb_new_apitypes_and_devicetypes.sql
@@ -0,0 +1,3 @@
+insert into config_db.ext_api_type (name)
+values ('tsystems'::varchar(200)),
+       ('uba'::varchar(200));
diff --git a/src/run_mqtt_ingest.py b/src/run_mqtt_ingest.py
index 0282921612c42f69c40884fa8137c78cd4aa91b7..50dde1b1fbf54dadee68698f22715ba574a39720 100755
--- a/src/run_mqtt_ingest.py
+++ b/src/run_mqtt_ingest.py
@@ -14,7 +14,7 @@ from timeio.errors import UserInputError
 from timeio.journaling import Journal
 from timeio.databases import DBapi
 from timeio.feta import Thing
-from timeio.parser import get_parser
+from timeio.parser import get_parser, MqttDataParser
 
 logger = logging.getLogger("mqtt-ingest")
 journal = Journal("Parser")
@@ -41,12 +41,11 @@ class ParseMqttDataHandler(AbstractHandler):
 
         logger.info(f"get thing")
         mqtt_user = message.topic.split("/")[1]
-        thing = Thing.from_mqtt_user_name(mqtt_user)
+        thing = Thing.from_mqtt_user_name(mqtt_user, dsn=self.configdb_dsn)
         thing_uuid = thing.uuid
 
         logger.info(f"get parser")
-        p = thing.s3_store.file_parser
-        parser = get_parser(p.file_parser_type, p.params)
+        parser: MqttDataParser = get_parser(thing.mqtt.mqtt_device_type.name, None)
 
         logger.info(f"parsing rawdata")
         try: