diff --git a/ModeliRpc.proto b/ModeliRpc.proto
index 4e291feb4d6e8137766668a3338126b313049a98..6fce69140be74ef33b32ce53304036fd0ad290fb 100644
--- a/ModeliRpc.proto
+++ b/ModeliRpc.proto
@@ -182,6 +182,7 @@ message NewValuesResponse {
     RealValues realValues = 3;
     BoolValues boolValues = 4;
     StringValues stringValues = 5;
+    string instance_name = 6;
 }
 
 message LogRequest {}
diff --git a/ModeliRpc_Cpp/ModeliRpc.pb.cc b/ModeliRpc_Cpp/ModeliRpc.pb.cc
index 538bb79e4cfbe19a3390099c3c68f2e057b32bd1..7cbea6b5036e41137dddb1a851523fb920befe03 100644
--- a/ModeliRpc_Cpp/ModeliRpc.pb.cc
+++ b/ModeliRpc_Cpp/ModeliRpc.pb.cc
@@ -1093,6 +1093,7 @@ const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_PROTOBUF_ATTRIBUT
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::NewValuesResponse, realvalues_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::NewValuesResponse, boolvalues_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::NewValuesResponse, stringvalues_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::NewValuesResponse, instance_name_),
   ~0u,  // no _has_bits_
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::ModeliRpc::LogRequest, _internal_metadata_),
   ~0u,  // no _extensions_
@@ -1139,8 +1140,8 @@ static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_PROT
   { 178, -1, sizeof(::ModeliRpc::SetStringResponse)},
   { 184, -1, sizeof(::ModeliRpc::NewValuesRequest)},
   { 189, -1, sizeof(::ModeliRpc::NewValuesResponse)},
-  { 199, -1, sizeof(::ModeliRpc::LogRequest)},
-  { 204, -1, sizeof(::ModeliRpc::LogResponse)},
+  { 200, -1, sizeof(::ModeliRpc::LogRequest)},
+  { 205, -1, sizeof(::ModeliRpc::LogResponse)},
 };
 
 static ::google::protobuf::Message const * const file_default_instances[] = {
@@ -1241,45 +1242,46 @@ void AddDescriptorsImpl() {
       "stance_name\030\001 \001(\t\022\'\n\006values\030\002 \001(\0132\027.Mode"
       "liRpc.StringValues\":\n\021SetStringResponse\022"
       "%\n\006status\030\001 \001(\0162\025.ModeliRpc.Fmi2Status\"\022"
-      "\n\020NewValuesRequest\"\324\001\n\021NewValuesResponse"
+      "\n\020NewValuesRequest\"\353\001\n\021NewValuesResponse"
       "\022\021\n\ttimestamp\030\001 \001(\001\022\'\n\tintValues\030\002 \001(\0132\024"
       ".ModeliRpc.IntValues\022)\n\nrealValues\030\003 \001(\013"
       "2\025.ModeliRpc.RealValues\022)\n\nboolValues\030\004 "
       "\001(\0132\025.ModeliRpc.BoolValues\022-\n\014stringValu"
-      "es\030\005 \001(\0132\027.ModeliRpc.StringValues\"\014\n\nLog"
-      "Request\"\\\n\013LogResponse\022\025\n\rinstance_name\030"
-      "\001 \001(\t\022%\n\006status\030\002 \001(\0162\025.ModeliRpc.Fmi2St"
-      "atus\022\017\n\007message\030\003 \001(\t*o\n\nFmi2Status\022\013\n\007F"
-      "MI2_OK\020\000\022\020\n\014FMI2_WARNING\020\001\022\020\n\014FMI2_DISCA"
-      "RD\020\002\022\016\n\nFMI2_ERROR\020\003\022\016\n\nFMI2_FATAL\020\004\022\020\n\014"
-      "FMI2_PENDING\020\0052\317\007\n\rModeliBackend\0227\n\004Play"
-      "\022\026.ModeliRpc.PlayRequest\032\027.ModeliRpc.Pla"
-      "yResponse\022C\n\010PlayFast\022\032.ModeliRpc.PlayFa"
-      "stRequest\032\033.ModeliRpc.PlayFastResponse\022:"
-      "\n\005Pause\022\027.ModeliRpc.PauseRequest\032\030.Model"
-      "iRpc.PauseResponse\0227\n\004Stop\022\026.ModeliRpc.S"
-      "topRequest\032\027.ModeliRpc.StopResponse\022\?\n\006A"
-      "ddFmu\022\030.ModeliRpc.AddFmuRequest\032\031.Modeli"
-      "Rpc.AddFmuResponse(\001\022F\n\tRemoveFmu\022\033.Mode"
-      "liRpc.RemoveFmuRequest\032\034.ModeliRpc.Remov"
-      "eFmuResponse\022U\n\016AddChannelLink\022 .ModeliR"
-      "pc.AddChannelLinkRequest\032!.ModeliRpc.Add"
-      "ChannelLinkResponse\022^\n\021RemoveChannelLink"
-      "\022#.ModeliRpc.RemoveChannelLinkRequest\032$."
-      "ModeliRpc.RemoveChannelLinkResponse\022=\n\006S"
-      "etInt\022\030.ModeliRpc.SetIntRequest\032\031.Modeli"
-      "Rpc.SetIntResponse\022@\n\007SetReal\022\031.ModeliRp"
-      "c.SetRealRequest\032\032.ModeliRpc.SetRealResp"
-      "onse\022@\n\007SetBool\022\031.ModeliRpc.SetBoolReque"
-      "st\032\032.ModeliRpc.SetBoolResponse\022F\n\tSetStr"
-      "ing\022\033.ModeliRpc.SetStringRequest\032\034.Model"
-      "iRpc.SetStringResponse\022H\n\tNewValues\022\033.Mo"
-      "deliRpc.NewValuesRequest\032\034.ModeliRpc.New"
-      "ValuesResponse0\001\0226\n\003Log\022\025.ModeliRpc.LogR"
-      "equest\032\026.ModeliRpc.LogResponse0\001b\006proto3"
+      "es\030\005 \001(\0132\027.ModeliRpc.StringValues\022\025\n\rins"
+      "tance_name\030\006 \001(\t\"\014\n\nLogRequest\"\\\n\013LogRes"
+      "ponse\022\025\n\rinstance_name\030\001 \001(\t\022%\n\006status\030\002"
+      " \001(\0162\025.ModeliRpc.Fmi2Status\022\017\n\007message\030\003"
+      " \001(\t*o\n\nFmi2Status\022\013\n\007FMI2_OK\020\000\022\020\n\014FMI2_"
+      "WARNING\020\001\022\020\n\014FMI2_DISCARD\020\002\022\016\n\nFMI2_ERRO"
+      "R\020\003\022\016\n\nFMI2_FATAL\020\004\022\020\n\014FMI2_PENDING\020\0052\317\007"
+      "\n\rModeliBackend\0227\n\004Play\022\026.ModeliRpc.Play"
+      "Request\032\027.ModeliRpc.PlayResponse\022C\n\010Play"
+      "Fast\022\032.ModeliRpc.PlayFastRequest\032\033.Model"
+      "iRpc.PlayFastResponse\022:\n\005Pause\022\027.ModeliR"
+      "pc.PauseRequest\032\030.ModeliRpc.PauseRespons"
+      "e\0227\n\004Stop\022\026.ModeliRpc.StopRequest\032\027.Mode"
+      "liRpc.StopResponse\022\?\n\006AddFmu\022\030.ModeliRpc"
+      ".AddFmuRequest\032\031.ModeliRpc.AddFmuRespons"
+      "e(\001\022F\n\tRemoveFmu\022\033.ModeliRpc.RemoveFmuRe"
+      "quest\032\034.ModeliRpc.RemoveFmuResponse\022U\n\016A"
+      "ddChannelLink\022 .ModeliRpc.AddChannelLink"
+      "Request\032!.ModeliRpc.AddChannelLinkRespon"
+      "se\022^\n\021RemoveChannelLink\022#.ModeliRpc.Remo"
+      "veChannelLinkRequest\032$.ModeliRpc.RemoveC"
+      "hannelLinkResponse\022=\n\006SetInt\022\030.ModeliRpc"
+      ".SetIntRequest\032\031.ModeliRpc.SetIntRespons"
+      "e\022@\n\007SetReal\022\031.ModeliRpc.SetRealRequest\032"
+      "\032.ModeliRpc.SetRealResponse\022@\n\007SetBool\022\031"
+      ".ModeliRpc.SetBoolRequest\032\032.ModeliRpc.Se"
+      "tBoolResponse\022F\n\tSetString\022\033.ModeliRpc.S"
+      "etStringRequest\032\034.ModeliRpc.SetStringRes"
+      "ponse\022H\n\tNewValues\022\033.ModeliRpc.NewValues"
+      "Request\032\034.ModeliRpc.NewValuesResponse0\001\022"
+      "6\n\003Log\022\025.ModeliRpc.LogRequest\032\026.ModeliRp"
+      "c.LogResponse0\001b\006proto3"
   };
   ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
-      descriptor, 3040);
+      descriptor, 3063);
   ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
     "ModeliRpc.proto", &protobuf_RegisterTypes);
 }
@@ -9196,6 +9198,7 @@ const int NewValuesResponse::kIntValuesFieldNumber;
 const int NewValuesResponse::kRealValuesFieldNumber;
 const int NewValuesResponse::kBoolValuesFieldNumber;
 const int NewValuesResponse::kStringValuesFieldNumber;
+const int NewValuesResponse::kInstanceNameFieldNumber;
 #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
 
 NewValuesResponse::NewValuesResponse()
@@ -9211,6 +9214,10 @@ NewValuesResponse::NewValuesResponse(const NewValuesResponse& from)
       _internal_metadata_(NULL),
       _cached_size_(0) {
   _internal_metadata_.MergeFrom(from._internal_metadata_);
+  instance_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.instance_name().size() > 0) {
+    instance_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.instance_name_);
+  }
   if (from.has_intvalues()) {
     intvalues_ = new ::ModeliRpc::IntValues(*from.intvalues_);
   } else {
@@ -9236,6 +9243,7 @@ NewValuesResponse::NewValuesResponse(const NewValuesResponse& from)
 }
 
 void NewValuesResponse::SharedCtor() {
+  instance_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   ::memset(&intvalues_, 0, static_cast<size_t>(
       reinterpret_cast<char*>(&timestamp_) -
       reinterpret_cast<char*>(&intvalues_)) + sizeof(timestamp_));
@@ -9248,6 +9256,7 @@ NewValuesResponse::~NewValuesResponse() {
 }
 
 void NewValuesResponse::SharedDtor() {
+  instance_name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   if (this != internal_default_instance()) delete intvalues_;
   if (this != internal_default_instance()) delete realvalues_;
   if (this != internal_default_instance()) delete boolvalues_;
@@ -9283,6 +9292,7 @@ void NewValuesResponse::Clear() {
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
 
+  instance_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   if (GetArenaNoVirtual() == NULL && intvalues_ != NULL) {
     delete intvalues_;
   }
@@ -9375,6 +9385,22 @@ bool NewValuesResponse::MergePartialFromCodedStream(
         break;
       }
 
+      // string instance_name = 6;
+      case 6: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(50u /* 50 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_instance_name()));
+          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+            this->instance_name().data(), static_cast<int>(this->instance_name().length()),
+            ::google::protobuf::internal::WireFormatLite::PARSE,
+            "ModeliRpc.NewValuesResponse.instance_name"));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
       default: {
       handle_unusual:
         if (tag == 0) {
@@ -9430,6 +9456,16 @@ void NewValuesResponse::SerializeWithCachedSizes(
       5, *this->stringvalues_, output);
   }
 
+  // string instance_name = 6;
+  if (this->instance_name().size() > 0) {
+    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+      this->instance_name().data(), static_cast<int>(this->instance_name().length()),
+      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+      "ModeliRpc.NewValuesResponse.instance_name");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      6, this->instance_name(), output);
+  }
+
   if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
     ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
         (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
@@ -9477,6 +9513,17 @@ void NewValuesResponse::SerializeWithCachedSizes(
         5, *this->stringvalues_, deterministic, target);
   }
 
+  // string instance_name = 6;
+  if (this->instance_name().size() > 0) {
+    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+      this->instance_name().data(), static_cast<int>(this->instance_name().length()),
+      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+      "ModeliRpc.NewValuesResponse.instance_name");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        6, this->instance_name(), target);
+  }
+
   if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
     target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
         (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
@@ -9494,6 +9541,13 @@ size_t NewValuesResponse::ByteSizeLong() const {
       ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
         (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
   }
+  // string instance_name = 6;
+  if (this->instance_name().size() > 0) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->instance_name());
+  }
+
   // .ModeliRpc.IntValues intValues = 2;
   if (this->has_intvalues()) {
     total_size += 1 +
@@ -9556,6 +9610,10 @@ void NewValuesResponse::MergeFrom(const NewValuesResponse& from) {
   ::google::protobuf::uint32 cached_has_bits = 0;
   (void) cached_has_bits;
 
+  if (from.instance_name().size() > 0) {
+
+    instance_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.instance_name_);
+  }
   if (from.has_intvalues()) {
     mutable_intvalues()->::ModeliRpc::IntValues::MergeFrom(from.intvalues());
   }
@@ -9597,6 +9655,7 @@ void NewValuesResponse::Swap(NewValuesResponse* other) {
 }
 void NewValuesResponse::InternalSwap(NewValuesResponse* other) {
   using std::swap;
+  instance_name_.Swap(&other->instance_name_);
   swap(intvalues_, other->intvalues_);
   swap(realvalues_, other->realvalues_);
   swap(boolvalues_, other->boolvalues_);
diff --git a/ModeliRpc_Cpp/ModeliRpc.pb.h b/ModeliRpc_Cpp/ModeliRpc.pb.h
index c1871437e03d13fd71c76b4a5f4e29702c7968be..01b2be1b53c7995ecb46847b35196edf7f6bffae 100644
--- a/ModeliRpc_Cpp/ModeliRpc.pb.h
+++ b/ModeliRpc_Cpp/ModeliRpc.pb.h
@@ -3545,6 +3545,20 @@ class NewValuesResponse : public ::google::protobuf::Message /* @@protoc_inserti
 
   // accessors -------------------------------------------------------
 
+  // string instance_name = 6;
+  void clear_instance_name();
+  static const int kInstanceNameFieldNumber = 6;
+  const ::std::string& instance_name() const;
+  void set_instance_name(const ::std::string& value);
+  #if LANG_CXX11
+  void set_instance_name(::std::string&& value);
+  #endif
+  void set_instance_name(const char* value);
+  void set_instance_name(const char* value, size_t size);
+  ::std::string* mutable_instance_name();
+  ::std::string* release_instance_name();
+  void set_allocated_instance_name(::std::string* instance_name);
+
   // .ModeliRpc.IntValues intValues = 2;
   bool has_intvalues() const;
   void clear_intvalues();
@@ -3591,6 +3605,7 @@ class NewValuesResponse : public ::google::protobuf::Message /* @@protoc_inserti
  private:
 
   ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::ArenaStringPtr instance_name_;
   ::ModeliRpc::IntValues* intvalues_;
   ::ModeliRpc::RealValues* realvalues_;
   ::ModeliRpc::BoolValues* boolvalues_;
@@ -5446,6 +5461,59 @@ inline void NewValuesResponse::set_allocated_stringvalues(::ModeliRpc::StringVal
   // @@protoc_insertion_point(field_set_allocated:ModeliRpc.NewValuesResponse.stringValues)
 }
 
+// string instance_name = 6;
+inline void NewValuesResponse::clear_instance_name() {
+  instance_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& NewValuesResponse::instance_name() const {
+  // @@protoc_insertion_point(field_get:ModeliRpc.NewValuesResponse.instance_name)
+  return instance_name_.GetNoArena();
+}
+inline void NewValuesResponse::set_instance_name(const ::std::string& value) {
+  
+  instance_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:ModeliRpc.NewValuesResponse.instance_name)
+}
+#if LANG_CXX11
+inline void NewValuesResponse::set_instance_name(::std::string&& value) {
+  
+  instance_name_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:ModeliRpc.NewValuesResponse.instance_name)
+}
+#endif
+inline void NewValuesResponse::set_instance_name(const char* value) {
+  GOOGLE_DCHECK(value != NULL);
+  
+  instance_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:ModeliRpc.NewValuesResponse.instance_name)
+}
+inline void NewValuesResponse::set_instance_name(const char* value, size_t size) {
+  
+  instance_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:ModeliRpc.NewValuesResponse.instance_name)
+}
+inline ::std::string* NewValuesResponse::mutable_instance_name() {
+  
+  // @@protoc_insertion_point(field_mutable:ModeliRpc.NewValuesResponse.instance_name)
+  return instance_name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* NewValuesResponse::release_instance_name() {
+  // @@protoc_insertion_point(field_release:ModeliRpc.NewValuesResponse.instance_name)
+  
+  return instance_name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void NewValuesResponse::set_allocated_instance_name(::std::string* instance_name) {
+  if (instance_name != NULL) {
+    
+  } else {
+    
+  }
+  instance_name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), instance_name);
+  // @@protoc_insertion_point(field_set_allocated:ModeliRpc.NewValuesResponse.instance_name)
+}
+
 // -------------------------------------------------------------------
 
 // LogRequest
diff --git a/ModeliRpc_Cs/ModeliRpc.cs b/ModeliRpc_Cs/ModeliRpc.cs
index cd0b050223ccfbc9963d1bd04f041621e60f9f84..343bbb4ce11ed7e04ddd4c5b9a7dc52abb3a361f 100644
--- a/ModeliRpc_Cs/ModeliRpc.cs
+++ b/ModeliRpc_Cs/ModeliRpc.cs
@@ -57,39 +57,40 @@ namespace ModeliRpc {
             "UnBjLkZtaTJTdGF0dXMiUgoQU2V0U3RyaW5nUmVxdWVzdBIVCg1pbnN0YW5j",
             "ZV9uYW1lGAEgASgJEicKBnZhbHVlcxgCIAEoCzIXLk1vZGVsaVJwYy5TdHJp",
             "bmdWYWx1ZXMiOgoRU2V0U3RyaW5nUmVzcG9uc2USJQoGc3RhdHVzGAEgASgO",
-            "MhUuTW9kZWxpUnBjLkZtaTJTdGF0dXMiEgoQTmV3VmFsdWVzUmVxdWVzdCLU",
+            "MhUuTW9kZWxpUnBjLkZtaTJTdGF0dXMiEgoQTmV3VmFsdWVzUmVxdWVzdCLr",
             "AQoRTmV3VmFsdWVzUmVzcG9uc2USEQoJdGltZXN0YW1wGAEgASgBEicKCWlu",
             "dFZhbHVlcxgCIAEoCzIULk1vZGVsaVJwYy5JbnRWYWx1ZXMSKQoKcmVhbFZh",
             "bHVlcxgDIAEoCzIVLk1vZGVsaVJwYy5SZWFsVmFsdWVzEikKCmJvb2xWYWx1",
             "ZXMYBCABKAsyFS5Nb2RlbGlScGMuQm9vbFZhbHVlcxItCgxzdHJpbmdWYWx1",
-            "ZXMYBSABKAsyFy5Nb2RlbGlScGMuU3RyaW5nVmFsdWVzIgwKCkxvZ1JlcXVl",
-            "c3QiXAoLTG9nUmVzcG9uc2USFQoNaW5zdGFuY2VfbmFtZRgBIAEoCRIlCgZz",
-            "dGF0dXMYAiABKA4yFS5Nb2RlbGlScGMuRm1pMlN0YXR1cxIPCgdtZXNzYWdl",
-            "GAMgASgJKm8KCkZtaTJTdGF0dXMSCwoHRk1JMl9PSxAAEhAKDEZNSTJfV0FS",
-            "TklORxABEhAKDEZNSTJfRElTQ0FSRBACEg4KCkZNSTJfRVJST1IQAxIOCgpG",
-            "TUkyX0ZBVEFMEAQSEAoMRk1JMl9QRU5ESU5HEAUyzwcKDU1vZGVsaUJhY2tl",
-            "bmQSNwoEUGxheRIWLk1vZGVsaVJwYy5QbGF5UmVxdWVzdBoXLk1vZGVsaVJw",
-            "Yy5QbGF5UmVzcG9uc2USQwoIUGxheUZhc3QSGi5Nb2RlbGlScGMuUGxheUZh",
-            "c3RSZXF1ZXN0GhsuTW9kZWxpUnBjLlBsYXlGYXN0UmVzcG9uc2USOgoFUGF1",
-            "c2USFy5Nb2RlbGlScGMuUGF1c2VSZXF1ZXN0GhguTW9kZWxpUnBjLlBhdXNl",
-            "UmVzcG9uc2USNwoEU3RvcBIWLk1vZGVsaVJwYy5TdG9wUmVxdWVzdBoXLk1v",
-            "ZGVsaVJwYy5TdG9wUmVzcG9uc2USPwoGQWRkRm11EhguTW9kZWxpUnBjLkFk",
-            "ZEZtdVJlcXVlc3QaGS5Nb2RlbGlScGMuQWRkRm11UmVzcG9uc2UoARJGCglS",
-            "ZW1vdmVGbXUSGy5Nb2RlbGlScGMuUmVtb3ZlRm11UmVxdWVzdBocLk1vZGVs",
-            "aVJwYy5SZW1vdmVGbXVSZXNwb25zZRJVCg5BZGRDaGFubmVsTGluaxIgLk1v",
-            "ZGVsaVJwYy5BZGRDaGFubmVsTGlua1JlcXVlc3QaIS5Nb2RlbGlScGMuQWRk",
-            "Q2hhbm5lbExpbmtSZXNwb25zZRJeChFSZW1vdmVDaGFubmVsTGluaxIjLk1v",
-            "ZGVsaVJwYy5SZW1vdmVDaGFubmVsTGlua1JlcXVlc3QaJC5Nb2RlbGlScGMu",
-            "UmVtb3ZlQ2hhbm5lbExpbmtSZXNwb25zZRI9CgZTZXRJbnQSGC5Nb2RlbGlS",
-            "cGMuU2V0SW50UmVxdWVzdBoZLk1vZGVsaVJwYy5TZXRJbnRSZXNwb25zZRJA",
-            "CgdTZXRSZWFsEhkuTW9kZWxpUnBjLlNldFJlYWxSZXF1ZXN0GhouTW9kZWxp",
-            "UnBjLlNldFJlYWxSZXNwb25zZRJACgdTZXRCb29sEhkuTW9kZWxpUnBjLlNl",
-            "dEJvb2xSZXF1ZXN0GhouTW9kZWxpUnBjLlNldEJvb2xSZXNwb25zZRJGCglT",
-            "ZXRTdHJpbmcSGy5Nb2RlbGlScGMuU2V0U3RyaW5nUmVxdWVzdBocLk1vZGVs",
-            "aVJwYy5TZXRTdHJpbmdSZXNwb25zZRJICglOZXdWYWx1ZXMSGy5Nb2RlbGlS",
-            "cGMuTmV3VmFsdWVzUmVxdWVzdBocLk1vZGVsaVJwYy5OZXdWYWx1ZXNSZXNw",
-            "b25zZTABEjYKA0xvZxIVLk1vZGVsaVJwYy5Mb2dSZXF1ZXN0GhYuTW9kZWxp",
-            "UnBjLkxvZ1Jlc3BvbnNlMAFiBnByb3RvMw=="));
+            "ZXMYBSABKAsyFy5Nb2RlbGlScGMuU3RyaW5nVmFsdWVzEhUKDWluc3RhbmNl",
+            "X25hbWUYBiABKAkiDAoKTG9nUmVxdWVzdCJcCgtMb2dSZXNwb25zZRIVCg1p",
+            "bnN0YW5jZV9uYW1lGAEgASgJEiUKBnN0YXR1cxgCIAEoDjIVLk1vZGVsaVJw",
+            "Yy5GbWkyU3RhdHVzEg8KB21lc3NhZ2UYAyABKAkqbwoKRm1pMlN0YXR1cxIL",
+            "CgdGTUkyX09LEAASEAoMRk1JMl9XQVJOSU5HEAESEAoMRk1JMl9ESVNDQVJE",
+            "EAISDgoKRk1JMl9FUlJPUhADEg4KCkZNSTJfRkFUQUwQBBIQCgxGTUkyX1BF",
+            "TkRJTkcQBTLPBwoNTW9kZWxpQmFja2VuZBI3CgRQbGF5EhYuTW9kZWxpUnBj",
+            "LlBsYXlSZXF1ZXN0GhcuTW9kZWxpUnBjLlBsYXlSZXNwb25zZRJDCghQbGF5",
+            "RmFzdBIaLk1vZGVsaVJwYy5QbGF5RmFzdFJlcXVlc3QaGy5Nb2RlbGlScGMu",
+            "UGxheUZhc3RSZXNwb25zZRI6CgVQYXVzZRIXLk1vZGVsaVJwYy5QYXVzZVJl",
+            "cXVlc3QaGC5Nb2RlbGlScGMuUGF1c2VSZXNwb25zZRI3CgRTdG9wEhYuTW9k",
+            "ZWxpUnBjLlN0b3BSZXF1ZXN0GhcuTW9kZWxpUnBjLlN0b3BSZXNwb25zZRI/",
+            "CgZBZGRGbXUSGC5Nb2RlbGlScGMuQWRkRm11UmVxdWVzdBoZLk1vZGVsaVJw",
+            "Yy5BZGRGbXVSZXNwb25zZSgBEkYKCVJlbW92ZUZtdRIbLk1vZGVsaVJwYy5S",
+            "ZW1vdmVGbXVSZXF1ZXN0GhwuTW9kZWxpUnBjLlJlbW92ZUZtdVJlc3BvbnNl",
+            "ElUKDkFkZENoYW5uZWxMaW5rEiAuTW9kZWxpUnBjLkFkZENoYW5uZWxMaW5r",
+            "UmVxdWVzdBohLk1vZGVsaVJwYy5BZGRDaGFubmVsTGlua1Jlc3BvbnNlEl4K",
+            "EVJlbW92ZUNoYW5uZWxMaW5rEiMuTW9kZWxpUnBjLlJlbW92ZUNoYW5uZWxM",
+            "aW5rUmVxdWVzdBokLk1vZGVsaVJwYy5SZW1vdmVDaGFubmVsTGlua1Jlc3Bv",
+            "bnNlEj0KBlNldEludBIYLk1vZGVsaVJwYy5TZXRJbnRSZXF1ZXN0GhkuTW9k",
+            "ZWxpUnBjLlNldEludFJlc3BvbnNlEkAKB1NldFJlYWwSGS5Nb2RlbGlScGMu",
+            "U2V0UmVhbFJlcXVlc3QaGi5Nb2RlbGlScGMuU2V0UmVhbFJlc3BvbnNlEkAK",
+            "B1NldEJvb2wSGS5Nb2RlbGlScGMuU2V0Qm9vbFJlcXVlc3QaGi5Nb2RlbGlS",
+            "cGMuU2V0Qm9vbFJlc3BvbnNlEkYKCVNldFN0cmluZxIbLk1vZGVsaVJwYy5T",
+            "ZXRTdHJpbmdSZXF1ZXN0GhwuTW9kZWxpUnBjLlNldFN0cmluZ1Jlc3BvbnNl",
+            "EkgKCU5ld1ZhbHVlcxIbLk1vZGVsaVJwYy5OZXdWYWx1ZXNSZXF1ZXN0Ghwu",
+            "TW9kZWxpUnBjLk5ld1ZhbHVlc1Jlc3BvbnNlMAESNgoDTG9nEhUuTW9kZWxp",
+            "UnBjLkxvZ1JlcXVlc3QaFi5Nb2RlbGlScGMuTG9nUmVzcG9uc2UwAWIGcHJv",
+            "dG8z"));
       descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
           new pbr::FileDescriptor[] { },
           new pbr::GeneratedClrTypeInfo(new[] {typeof(global::ModeliRpc.Fmi2Status), }, new pbr::GeneratedClrTypeInfo[] {
@@ -123,7 +124,7 @@ namespace ModeliRpc {
             new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.SetStringRequest), global::ModeliRpc.SetStringRequest.Parser, new[]{ "InstanceName", "Values" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.SetStringResponse), global::ModeliRpc.SetStringResponse.Parser, new[]{ "Status" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.NewValuesRequest), global::ModeliRpc.NewValuesRequest.Parser, null, null, null, null),
-            new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.NewValuesResponse), global::ModeliRpc.NewValuesResponse.Parser, new[]{ "Timestamp", "IntValues", "RealValues", "BoolValues", "StringValues" }, null, null, null),
+            new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.NewValuesResponse), global::ModeliRpc.NewValuesResponse.Parser, new[]{ "Timestamp", "IntValues", "RealValues", "BoolValues", "StringValues", "InstanceName" }, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.LogRequest), global::ModeliRpc.LogRequest.Parser, null, null, null, null),
             new pbr::GeneratedClrTypeInfo(typeof(global::ModeliRpc.LogResponse), global::ModeliRpc.LogResponse.Parser, new[]{ "InstanceName", "Status", "Message" }, null, null, null)
           }));
@@ -3929,6 +3930,7 @@ namespace ModeliRpc {
       RealValues = other.realValues_ != null ? other.RealValues.Clone() : null;
       BoolValues = other.boolValues_ != null ? other.BoolValues.Clone() : null;
       StringValues = other.stringValues_ != null ? other.StringValues.Clone() : null;
+      instanceName_ = other.instanceName_;
     }
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -3991,6 +3993,17 @@ namespace ModeliRpc {
       }
     }
 
+    /// <summary>Field number for the "instance_name" field.</summary>
+    public const int InstanceNameFieldNumber = 6;
+    private string instanceName_ = "";
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+    public string InstanceName {
+      get { return instanceName_; }
+      set {
+        instanceName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+      }
+    }
+
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
     public override bool Equals(object other) {
       return Equals(other as NewValuesResponse);
@@ -4009,6 +4022,7 @@ namespace ModeliRpc {
       if (!object.Equals(RealValues, other.RealValues)) return false;
       if (!object.Equals(BoolValues, other.BoolValues)) return false;
       if (!object.Equals(StringValues, other.StringValues)) return false;
+      if (InstanceName != other.InstanceName) return false;
       return true;
     }
 
@@ -4020,6 +4034,7 @@ namespace ModeliRpc {
       if (realValues_ != null) hash ^= RealValues.GetHashCode();
       if (boolValues_ != null) hash ^= BoolValues.GetHashCode();
       if (stringValues_ != null) hash ^= StringValues.GetHashCode();
+      if (InstanceName.Length != 0) hash ^= InstanceName.GetHashCode();
       return hash;
     }
 
@@ -4050,6 +4065,10 @@ namespace ModeliRpc {
         output.WriteRawTag(42);
         output.WriteMessage(StringValues);
       }
+      if (InstanceName.Length != 0) {
+        output.WriteRawTag(50);
+        output.WriteString(InstanceName);
+      }
     }
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -4070,6 +4089,9 @@ namespace ModeliRpc {
       if (stringValues_ != null) {
         size += 1 + pb::CodedOutputStream.ComputeMessageSize(StringValues);
       }
+      if (InstanceName.Length != 0) {
+        size += 1 + pb::CodedOutputStream.ComputeStringSize(InstanceName);
+      }
       return size;
     }
 
@@ -4105,6 +4127,9 @@ namespace ModeliRpc {
         }
         StringValues.MergeFrom(other.StringValues);
       }
+      if (other.InstanceName.Length != 0) {
+        InstanceName = other.InstanceName;
+      }
     }
 
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -4147,6 +4172,10 @@ namespace ModeliRpc {
             input.ReadMessage(stringValues_);
             break;
           }
+          case 50: {
+            InstanceName = input.ReadString();
+            break;
+          }
         }
       }
     }