diff --git a/lib/addevent.dart b/lib/addevent.dart
index 9f8b64cb2fcca377742455eff600653407ee5b91..72be5acb6708ea4dfb2fa3d13edaf697ea19bdf4 100644
--- a/lib/addevent.dart
+++ b/lib/addevent.dart
@@ -157,6 +157,9 @@ class _AddEventPageState extends State<AddEvent>  {
 
   void _storeCurrentEvent() {
     final EventStoreInstance eventsStore = EventStoreInstance();
+    final ConfigurationStoreInstance configuration = ConfigurationStoreInstance();
+    eventsStore.currentEvent.typeId = configuration.getEventIdFromName(eventsStore.currentEvent.type);
+
     eventsStore.currentEvent.status = "PENDING";
     eventsStore.events.add(
         Event(
@@ -164,6 +167,7 @@ class _AddEventPageState extends State<AddEvent>  {
             eventsStore.currentEvent.urn,
             eventsStore.currentEvent.label,
             eventsStore.currentEvent.type,
+            eventsStore.currentEvent.typeId,
             eventsStore.currentEvent.description,
             eventsStore.currentEvent.status,
             eventsStore.currentEvent.startDate,
diff --git a/lib/datamodel.dart b/lib/datamodel.dart
index 8c8da8fb3133ea991e8e96f6d88af9694d4db22e..3ad31f16aa1cdb14f80983e417371f96fe7607af 100644
--- a/lib/datamodel.dart
+++ b/lib/datamodel.dart
@@ -46,10 +46,11 @@ class Device{
 }
 
 class Event{
-  int id;
+  int id;  // Device URN id
   String urn;
   String label;
-  String type;
+  String type; // Event type name  TODO: this should be an EventType variable
+  int typeId;
   String description;
   String status;
   String startDate;
@@ -63,6 +64,7 @@ class Event{
       this.urn,
       this.label,
       this.type,
+      this.typeId,
       this.description,
       this.status,
       this.startDate,
@@ -77,6 +79,7 @@ class Event{
       parsedJson['urn'] as String,
       parsedJson['label'] as String,
       parsedJson['type'] as String,
+      parsedJson['typeId'] as int,
       parsedJson['description'] as String,
       parsedJson['status'] as String,
       parsedJson['startDate'] as String,
@@ -87,7 +90,7 @@ class Event{
     );
   }
 
-  Map<String, dynamic> toSensorJson() => {
+  Map<String, dynamic> toSensorJsonOld() => {
     "\"itemID\"":"\"$id\"",
     "\"inheritToAllChildren\"":"\"false\"",
     "\"inheritToChildren\"":[],
@@ -104,6 +107,25 @@ class Event{
     }
   };
 
+  Map<String, dynamic> toSensorJson() {
+    return {
+    "\"itemID\"":"\"$id\"",
+    "\"inheritToAllChildren\"":"\"false\"",
+    "\"inheritToChildren\"":[],
+    "\"event\"":{
+      "\"startDate\"":"\"$startDate\"",
+      "\"endDate\"":"\"$endDate\"",
+      "\"label\"":"\"$label\"",
+      "\"description\"":"\"$description\"",
+      "\"eventType\"":"\"$typeId\"",
+      "\"latitude\"":"\"$latitude\"",
+      "\"longitude\"":"\"$longitude\"",
+      "\"elevationInMeter\"":"\"$elevation\"",
+      "\"id\"":"\"0\""
+    }
+    };
+  }
+
   @override
   String toString(){
     return '{ ${this.id}, '
@@ -222,7 +244,7 @@ class ConfigurationStoreInstance extends ConfigurationStoreBase {
 
 abstract class EventStoreBase{
   List<Event> events = [];
-  Event currentEvent = Event(0, 'urn0', '', '', '', 'PENDING', '', '');
+  Event currentEvent = Event(0, 'urn0', '', '', -1, '', 'PENDING', '', '');
 }
 
 class EventStoreInstance extends EventStoreBase {
@@ -234,11 +256,11 @@ class EventStoreInstance extends EventStoreBase {
 
   EventStoreInstance._internal() {
     events = [];
-    currentEvent = Event(0, 'urn0', '', '', '', 'PENDING', '', '');
+    currentEvent = Event(0, 'urn0', '', '', -1, '', 'PENDING', '', '');
   }
 
   void reset(){
     events = [];
-    currentEvent = Event(0, 'urn0', '', '', '', 'PENDING', '', '');
+    currentEvent = Event(0, 'urn0', '', '', -1, '', 'PENDING', '', '');
   }
 }