diff --git a/emf_datamodel/model/iPos_Datamodel.aird b/emf_datamodel/model/iPos_Datamodel.aird
index 6cc9afa543b94738765e2262b2b9f739498f0012..e5e7e447aab40361ae0d003270d4eaa1e43a5fb7 100644
--- a/emf_datamodel/model/iPos_Datamodel.aird
+++ b/emf_datamodel/model/iPos_Datamodel.aird
@@ -5,7 +5,7 @@
     <semanticResources>iPos_Datamodel.genmodel</semanticResources>
     <ownedViews xmi:type="viewpoint:DView" uid="_EpwecAQNEey-kNQ7esRa_g">
       <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/>
-      <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_Et4wgAQNEey-kNQ7esRa_g" name="iPos_Datamodel" repPath="#_Es-xkAQNEey-kNQ7esRa_g" changeId="de9b3043-b6a3-4d89-afc7-963d67701d45">
+      <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_Et4wgAQNEey-kNQ7esRa_g" name="iPos_Datamodel" repPath="#_Es-xkAQNEey-kNQ7esRa_g" changeId="97e64d49-5157-4ee8-a1f0-01117933234c">
         <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
         <target xmi:type="ecore:EPackage" href="iPos_Datamodel.ecore#/"/>
       </ownedRepresentationDescriptors>
@@ -2250,7 +2250,7 @@
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
       <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
       <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_qwXFihvcEeyPOIo-WqURQQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_ZchbXyBzEeyaJIyxidrtuQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
         <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
@@ -2262,9 +2262,9 @@
         </ownedStyle>
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
-      <ownedElements xmi:type="diagram:DNodeListElement" uid="_onxBUBvcEeyPOIo-WqURQQ" name="sensorId : EString" tooltipText="">
-        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//PositionEvent/sensorId"/>
-        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//PositionEvent/sensorId"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_onxBUBvcEeyPOIo-WqURQQ" name="lObjectId : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//PositionEvent/lObjectId"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="iPos_Datamodel.ecore#//PositionEvent/lObjectId"/>
         <ownedStyle xmi:type="diagram:BundledImage" uid="_qwZhwRvcEeyPOIo-WqURQQ" labelAlignment="LEFT">
           <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
         </ownedStyle>
@@ -2762,7 +2762,7 @@
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
       <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
       <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_NzPucRr2EeyPOIo-WqURQQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_GrDD1SB0EeyaJIyxidrtuQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
         <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
diff --git a/emf_datamodel/model/iPos_Datamodel.ecore b/emf_datamodel/model/iPos_Datamodel.ecore
index f77db0cd0f2356def153cc681bd32a3ea438bec2..481804d45bec65fbcf64adef69bcfb1ae62838a2 100644
--- a/emf_datamodel/model/iPos_Datamodel.ecore
+++ b/emf_datamodel/model/iPos_Datamodel.ecore
@@ -119,7 +119,7 @@
         eType="#//Placing"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="timeStamp" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"
         transient="true"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="sensorId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="lObjectId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="RawdataEvent">
     <eStructuralFeatures xsi:type="ecore:EReference" name="rawdata" lowerBound="1"
diff --git a/emf_datamodel/model/iPos_Datamodel.genmodel b/emf_datamodel/model/iPos_Datamodel.genmodel
index 1b9e4b44f00fc48dce02e561b6479f714866c741..5a12659432eeb11ab1b3e78ebc5913b3969b063b 100644
--- a/emf_datamodel/model/iPos_Datamodel.genmodel
+++ b/emf_datamodel/model/iPos_Datamodel.genmodel
@@ -110,7 +110,7 @@
     <genClasses ecoreClass="iPos_Datamodel.ecore#//PositionEvent">
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//PositionEvent/placing"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//PositionEvent/timeStamp"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//PositionEvent/sensorId"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute iPos_Datamodel.ecore#//PositionEvent/lObjectId"/>
     </genClasses>
     <genClasses ecoreClass="iPos_Datamodel.ecore#//RawdataEvent">
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference iPos_Datamodel.ecore#//RawdataEvent/rawdata"/>
diff --git a/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/SimpleSceneIntegration.java b/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/SimpleSceneIntegration.java
index 40987e405162ae3ecd93aa538727dfa9bd5f8f4d..c79e5ffe6dc83c43ba93dc4ee786afdf8fdbec3a 100644
--- a/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/SimpleSceneIntegration.java
+++ b/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/SimpleSceneIntegration.java
@@ -1,18 +1,18 @@
 package ipos.project.DataModellntegration.SimpleSceneIntegration;
 
-import ipos.models.SimpleScene.IposPosition;
+import ipos.models.SimpleScene;
+import ipos.project.DataModellntegration.SimpleSceneIntegration.service.SimpleSceneTransformer;
 import ipos.project.DataModellntegration.SimpleSceneIntegration.service.impl.ExternalPubServiceImpl;
 import ipos.project.DataModellntegration.iPos_Datamodel.PositionEvent;
-import ipos.project.mapper.ProtoJsonMap;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.apache.logging.log4j.LogManager;
+import org.eclipse.paho.client.mqttv3.MqttMessage;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.jms.annotation.JmsListener;
 import org.springframework.stereotype.Component;
 
 @Component
 public class SimpleSceneIntegration {
-    private final Logger LOG = LoggerFactory.getLogger(getClass());
+    // private static final Logger LOG = LoggerFactory.getLogger(SimpleSceneIntegration.class);
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
 
     //@Autowired
     public static ExternalPubServiceImpl mqttService;
@@ -34,22 +34,17 @@ public class SimpleSceneIntegration {
     }*/
 
     public static void receiveMessage(PositionEvent positionEvent, String monitoringTaskId) {
-        // LOG.trace("Data integration get: " + pos);
-        System.out.println("SimpleSceneIntegration: Data integration get: " + positionEvent);
-        // we can translate a class into a string using several methods: 1) `.toString()` 2) `JsonFormat` in `ProtoJsonMap`
-        //String jsonPos = ProtoJsonMap.toJson(positionEvent);
-        // TODO: Transform Internal-PositionEvent to Protobuf-SensorPositionEvent
+        LOG.info("receiveMessage get: " + positionEvent);
+        //String jsonPos = ProtoJsonMap.toJson(positionEvent); // we can translate a class into a string using several methods: 1) `.toString()` 2) `JsonFormat` in `ProtoJsonMap`
         if (positionEvent != null) {
-            System.out.println("SimpleSceneIntegration: mqtt-message will be published: monitoringTaskId: " + monitoringTaskId + " positionEvent: " + positionEvent.toString());
-
-            if (null == mqttService) {
-                System.out.println("Warning: SimpleSceneIntegration: mqttService is null");
-            }
-            // getsensorId, load sensor-type, agent-type, agent-id and create IposPositionEvent
-            // SimpleSceneTransformer.posEvent_internal2Proto();
-            mqttService.publish(monitoringTaskId, positionEvent.toString(), 0, false);
+            LOG.info("received internal-positionEvent: monitoringTaskId: " + monitoringTaskId + " positionEvent: " + positionEvent.toString());
+            SimpleScene.IposPositionEvent posEvent_proto = SimpleSceneTransformer.posEvent_internal2Proto(positionEvent);
+            LOG.info("obtained protobuf-positionEvent:" + posEvent_proto.toString());
+            MqttMessage mqttMessage = mqttService.createMqttMsg(posEvent_proto, 0, false);
+            LOG.info("publishing mqttMessage:" + mqttMessage.toString() + " on topic: " + monitoringTaskId);
+            mqttService.publish(monitoringTaskId, mqttMessage);
         }else{
-            System.out.println("Warning: SimpleScene: Received empty PositionEvent");
+            LOG.debug("Warning: SimpleScene: Received empty PositionEvent");
         }
     }
 
diff --git a/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/service/ExternalPubService.java b/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/service/ExternalPubService.java
index 48c7aee093607dc090a26728ca44feae076836e0..69cb4a98491f5cb52180eb72ca47c27e415cef60 100644
--- a/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/service/ExternalPubService.java
+++ b/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/service/ExternalPubService.java
@@ -1,5 +1,9 @@
 package ipos.project.DataModellntegration.SimpleSceneIntegration.service;
 
+import com.google.protobuf.AbstractMessageLite;
+import org.eclipse.paho.client.mqttv3.MqttMessage;
+
 public interface ExternalPubService {
     void publish(final String topic, final String msg , int qos, boolean retained);
+    MqttMessage createMqttMsg(AbstractMessageLite message, int qos, boolean retained);
 }
diff --git a/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/service/SimpleSceneTransformer.java b/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/service/SimpleSceneTransformer.java
index 1924476217ce2c45e6b35e561506774d494471e8..0c9c7dba881a55547cd71ef42440ecbaaf986930 100644
--- a/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/service/SimpleSceneTransformer.java
+++ b/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/service/SimpleSceneTransformer.java
@@ -1,15 +1,16 @@
 package ipos.project.DataModellntegration.SimpleSceneIntegration.service;
 
 import ipos.models.SimpleScene;
-import ipos.project.DataModellntegration.iPos_Datamodel.IPos_DatamodelFactory;
-import ipos.project.DataModellntegration.iPos_Datamodel.MonitoringRequest;
+import ipos.project.DataModellntegration.iPos_Datamodel.*;
 import com.google.protobuf.ProtocolStringList;
+import ipos.project.UseCaseController.PositionMonitoring;
+import org.apache.logging.log4j.LogManager;
 
 import java.util.ArrayList;
 import java.util.List;
 
 public class SimpleSceneTransformer {
-
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
     private static IPos_DatamodelFactory modelFactory = IPos_DatamodelFactory.eINSTANCE;
 
     public static MonitoringRequest monReq_SScene2Internal(SimpleScene.IposMonitoringRequest monReqProto){
@@ -39,4 +40,45 @@ public class SimpleSceneTransformer {
         return null;
     }
 
+    public static SimpleScene.IposPositionEvent posEvent_internal2Proto(PositionEvent internalPosEvent){
+        LocalizableObject lObject = PositionMonitoring.getLObjectByIdOrNull(internalPosEvent.getSensorId());
+        if (null == lObject || null == lObject.getAgent()) {
+            LOG.error("Internal-PositionEvent could not be transformed into protobuf-format. " +
+                    "No LocalizableObject with the provided sensor-id could be found, or no agent " +
+                    "is associated to the LocalizableObject that has been found.");
+            return null;
+        }
+
+        SimpleScene.IposPoint3D.Builder protoPoint3D = transformIntoProtoPoint3D(internalPosEvent);
+        SimpleScene.IposPosition.Builder protoIposPosition = transformIntoProtoIposPosition(internalPosEvent, protoPoint3D);
+        SimpleScene.IposSimpleOrientation.Builder protoOrientation = transformIntoProtoOrientation(internalPosEvent);
+        SimpleScene.IposObject.Builder protoIposObject = SimpleScene.IposObject.newBuilder();
+        protoIposObject.setSensorId(lObject.getId()).setSensorType(lObject.getSensorType()).setId(lObject.getAgent().getId()).setType(lObject.getAgent().getAgentType()).setOrientation(protoOrientation).setPosition(protoIposPosition).setLastPosUpdate(internalPosEvent.getTimeStamp());
+
+        SimpleScene.IposPositionEvent.Builder protoIPosEvent = SimpleScene.IposPositionEvent.newBuilder();
+        protoIPosEvent.addObject(protoIposObject);
+        return protoIPosEvent.build();
+    }
+
+    private static SimpleScene.IposSimpleOrientation.Builder transformIntoProtoOrientation(PositionEvent internalPosEvent) {
+        SimpleScene.IposSimpleOrientation.Builder protoOrientation = SimpleScene.IposSimpleOrientation.newBuilder();
+        Quaternion internalOrientation = (Quaternion) internalPosEvent.getPlacing().getOrientation();
+        protoOrientation.setX(internalOrientation.getX()).setY(internalOrientation.getY()).setZ(internalOrientation.getZ());
+        return protoOrientation;
+    }
+
+    private static SimpleScene.IposPosition.Builder transformIntoProtoIposPosition(PositionEvent internalPosEvent, SimpleScene.IposPoint3D.Builder protoPoint3D) {
+        float internalAccuracy = ((Gaussian) internalPosEvent.getPlacing().getPosition().getAccuracy()).getConfidenceInterval();
+        String internalRefSystemId = internalPosEvent.getPlacing().getPosition().getReferenceSystem().getId();
+        SimpleScene.IposPosition.Builder protoIposPosition = SimpleScene.IposPosition.newBuilder();
+        protoIposPosition.setAccuracy(internalAccuracy).setRefSystemId(internalRefSystemId).setPoint(protoPoint3D);
+        return protoIposPosition;
+    }
+
+    private static SimpleScene.IposPoint3D.Builder transformIntoProtoPoint3D(PositionEvent internalPosEvent) {
+        SimpleScene.IposPoint3D.Builder protoPoint3D = SimpleScene.IposPoint3D.newBuilder();
+        Point3D internalPoint3D = (Point3D) internalPosEvent.getPlacing().getPosition().getPoint();
+        protoPoint3D.setX(internalPoint3D.getX()).setY(internalPoint3D.getY()).setZ(internalPoint3D.getZ());
+        return protoPoint3D;
+    }
 }
diff --git a/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/service/impl/ExternalPubServiceImpl.java b/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/service/impl/ExternalPubServiceImpl.java
index 1269b262ffd3d91de504be2aa8a4760e03f46a94..2a9c6a75de3515e879b98c88177a14ab15d0fddb 100644
--- a/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/service/impl/ExternalPubServiceImpl.java
+++ b/src/main/java/ipos/project/DataModellntegration/SimpleSceneIntegration/service/impl/ExternalPubServiceImpl.java
@@ -1,15 +1,22 @@
 package ipos.project.DataModellntegration.SimpleSceneIntegration.service.impl;
 
+import com.google.protobuf.AbstractMessageLite;
 import ipos.project.DataModellntegration.SimpleSceneIntegration.service.ExternalPubService;
 import org.eclipse.paho.client.mqttv3.MqttAsyncClient;
 import org.eclipse.paho.client.mqttv3.MqttException;
 import org.eclipse.paho.client.mqttv3.MqttMessage;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+
 @Service
 public class ExternalPubServiceImpl implements ExternalPubService {
 
+    private final Logger LOG = LoggerFactory.getLogger(getClass());
     private final MqttAsyncClient mqttClient;
 
     @Autowired
@@ -22,11 +29,30 @@ public class ExternalPubServiceImpl implements ExternalPubService {
         mqttMessage.setPayload(msg.getBytes());
         mqttMessage.setQos(qos);
         mqttMessage.setRetained(retained);
+        publish(topic, mqttMessage);
+    }
 
+    public void publish(final String topic, final MqttMessage mqttMessage){
         try {
             mqttClient.publish(topic, mqttMessage);
         } catch (MqttException e) {
+            LOG.error("MQTT-message could not be published");
             e.printStackTrace();
         }
     }
+
+    @Override
+    public MqttMessage createMqttMsg(AbstractMessageLite protoMessage, int qos, boolean retained) {
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        try {
+            protoMessage.writeTo(baos);
+        } catch (IOException e) {
+            LOG.error("Protobuf-message could not be serialized");
+            e.printStackTrace();
+        }
+        MqttMessage mqttMessage = new MqttMessage(baos.toByteArray());
+        mqttMessage.setQos(qos);
+        mqttMessage.setRetained(retained);
+        return mqttMessage;
+    }
 }
diff --git a/src/main/java/ipos/project/SensorValueIntegration/GenericSensorValueProcessor.java b/src/main/java/ipos/project/SensorValueIntegration/GenericSensorValueProcessor.java
index 36fd606813a5c2c08de8d497d8cc4cfc029b2089..1154f1923f5c52e3aed627698644b5f58a863299 100644
--- a/src/main/java/ipos/project/SensorValueIntegration/GenericSensorValueProcessor.java
+++ b/src/main/java/ipos/project/SensorValueIntegration/GenericSensorValueProcessor.java
@@ -3,15 +3,14 @@ package ipos.project.SensorValueIntegration;
 import ipos.models.SimpleScene.IposPosition;
 import ipos.project.DataModellntegration.SimpleSceneIntegration.service.impl.ExternalPubServiceImpl;
 import ipos.project.mapper.ProtoJsonMap;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.apache.logging.log4j.LogManager;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jms.annotation.JmsListener;
 import org.springframework.stereotype.Component;
 
 @Component
 public class GenericSensorValueProcessor {
-    private final Logger LOG = LoggerFactory.getLogger(getClass());
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
 
     @Autowired
     private ExternalPubServiceImpl mqttService;
diff --git a/src/main/java/ipos/project/SensorValueIntegration/api/MqttPositionHandler.java b/src/main/java/ipos/project/SensorValueIntegration/api/MqttPositionHandler.java
index a0326b2c28f5df4621c0d4056e52bf85f1ef6420..3a38e64fe0cb1f6dbabca1f8bbf7439f22765e5a 100644
--- a/src/main/java/ipos/project/SensorValueIntegration/api/MqttPositionHandler.java
+++ b/src/main/java/ipos/project/SensorValueIntegration/api/MqttPositionHandler.java
@@ -11,9 +11,8 @@ import ipos.project.UseCaseController.PositionMonitoring;
 import ipos.project.config.mqtt.Handler;
 import ipos.project.config.mqtt.MqttListener;
 import ipos.project.mapper.ProtoJsonMap;
+import org.apache.logging.log4j.LogManager;
 import org.eclipse.paho.client.mqttv3.MqttMessage;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jms.core.JmsTemplate;
 
@@ -22,7 +21,7 @@ import org.springframework.jms.core.JmsTemplate;
 @MqttListener("usertopic/SensorPositionEvent")
 public class MqttPositionHandler implements Handler {
 
-    private final Logger LOG = LoggerFactory.getLogger(getClass());
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
     JmsTemplate jmsTemplate;
 
     @Autowired
@@ -36,25 +35,12 @@ public class MqttPositionHandler implements Handler {
     // method that handle new message from the topic
     public void handle(MqttMessage message) {
         try {
-            System.out.println("Received MQTT-message: " + message.toString());
             SensorPositionEvent protoSensPosEvent = ProtoJsonMap.fromJson(message.toString(), SensorPositionEvent.class);
-            // example-JSON: {"sensorId": "UWB_1", "position": {"refSystemId": "ROOT", "point": {"x": 3.0,"y": 2.0,"z": 3.0}, "accuracy": 1.0}, "orientation": {"x": 1.0,"y": 0.5,"z": 1.0, "w": 1.5}, "lastPosUpdate": "2021-09-14T09:41:20+00:00"}
             //IposPosition pos = IposPosition.parseFrom(message.toString().getBytes());
             assert protoSensPosEvent != null;
-            LOG.info("SensorPositionEvent received: \n" + protoSensPosEvent);
-            System.out.println("SimpleSceneIntegration: Proto-Point: " + protoSensPosEvent.getPosition().getPoint().toString());
             PositionEvent positionEvent = GenericSensorTransformer.posEvent_GSensor2Internal(protoSensPosEvent);
-            System.out.println("SimpleSceneIntegration: Internal-Point: " + positionEvent.getPlacing().getPosition().getPoint().toString());
+            LOG.info("SensorValueIntegration: Transformed Protobuf-SensorPositionEvent into Internal-PositionEvent: " + positionEvent.toString() + ", " + positionEvent.getPlacing().getPosition().getPoint().toString() + ", " + positionEvent.getPlacing().getOrientation().toString());
 
-            System.out.println("SensorValueIntegration: Transformed Protobuf-SensorPositionEvent into Internal-PositionEvent: " + positionEvent.toString() + ", " + positionEvent.getPlacing().getPosition().getPoint().toString() + ", " + positionEvent.getPlacing().getOrientation().toString());
-
-           /* System.out.println("Sending Internal-PositionEvent using mqttService");
-            if (null == mqttService)
-                System.out.println("SimpleSceneIntegration: mqttService is null");
-            else
-                System.out.println("SimpleSceneIntegration: mqttService is not null");
-            mqttService.publish("Human_at_Window_Side", positionEvent.toString(), 0, false);
-*/
             // ggf. anstatt JMS einfach den PositionMonitoringController per Funktionsaufruf aufrufen
             PositionMonitoring.receiveMessage(positionEvent);
             // this.jmsTemplate.convertAndSend("/PositionEvent", protoSensPosEvent); // submit position to the internal broker
diff --git a/src/main/java/ipos/project/UseCaseController/PositionMonitoring.java b/src/main/java/ipos/project/UseCaseController/PositionMonitoring.java
index aae8da291923a18a48f927d1f9136f05eaaf8a39..80c3c40f5b4d8eb0998e7ce4cf6ec81b0a03584b 100644
--- a/src/main/java/ipos/project/UseCaseController/PositionMonitoring.java
+++ b/src/main/java/ipos/project/UseCaseController/PositionMonitoring.java
@@ -4,22 +4,18 @@ import ipos.project.DataModellntegration.SimpleSceneIntegration.SimpleSceneInteg
 import ipos.project.DataModellntegration.iPos_Datamodel.*;
 import ipos.project.Functionality.eventfilter.eventFilter;
 import ipos.project.Functionality.eventfilter.readConfig;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.apache.logging.log4j.LogManager;
 import org.springframework.jms.annotation.JmsListener;
 import org.springframework.stereotype.Component;
 import ipos.models.SimpleScene.IposPosition;
-
-import java.lang.ref.Reference;
-import java.text.ParseException;
 import java.util.*;
 
 
 @Component
 public class PositionMonitoring {
-    private final Logger LOG = LoggerFactory.getLogger(getClass());
+    private static org.apache.logging.log4j.Logger LOG = LogManager.getLogger();
 
-    public WorldModel wm;
+    private static WorldModel wm;
     private static List<eventFilter> eventFilters = new ArrayList<eventFilter>();
     private IPos_DatamodelFactory modelFactory = IPos_DatamodelFactory.eINSTANCE;
 
@@ -37,6 +33,17 @@ public class PositionMonitoring {
         initEventFiltersForDemo();
     }
 
+    public static LocalizableObject getLObjectByIdOrNull(String lObjectId){
+       for (Agent agent : wm.getAgent()){
+            for (LocalizableObject lObject : agent.getLObject()){
+                if (lObject.getId().equals(lObjectId)){
+                    return lObject;
+                }
+            }
+        }
+        return null;
+    }
+
     private void initEventFiltersForDemo(){
         String taskIdWindow = "Human_at_Window_Side";
         String taskIdDoor = "Human_at_Door_Side";
@@ -176,8 +183,7 @@ public class PositionMonitoring {
 
     // @JmsListener(destination = "/PositionEvent", containerFactory = "jmsListenFactory")
     public static void receiveMessage(PositionEvent posEvent) {
-        // LOG.info("Received <" + posEvent + ">");
-        System.out.println("MonitoringController: Received <" + posEvent.toString() + ">");
+        LOG.info("Received <" + posEvent + ">");
         String taskIdWindow = "Human_at_Window_Side";
         String taskIdDoor = "Human_at_Door_Side";
         float y_coordinate = ((Point3D) posEvent.getPlacing().getPosition().getPoint()).getY();