From 1cf5b794cd8bb07f293817ced3c282e6431ea396 Mon Sep 17 00:00:00 2001 From: Matthias Dornaus Date: Mon, 15 Sep 2025 11:28:37 +0200 Subject: [PATCH] Added static Identification. --- umatiGateway/Core/Mqtt/MqttProvider.cs | 53 +++++++++++++------------- 1 file changed, 26 insertions(+), 27 deletions(-) diff --git a/umatiGateway/Core/Mqtt/MqttProvider.cs b/umatiGateway/Core/Mqtt/MqttProvider.cs index b3e1169..da774e0 100644 --- a/umatiGateway/Core/Mqtt/MqttProvider.cs +++ b/umatiGateway/Core/Mqtt/MqttProvider.cs @@ -1093,35 +1093,34 @@ public void publishIdentificationMachineNodes() if (machineNode != null && machineNode.ResolvedNodeId != null) { { - List identificationNodes = client.BrowseNodeIds(new BrowseDescriptionCollection { BrowseUtils.GetHierarchicalChildren(machineNode.ResolvedNodeId, (int)NodeClass.Object) }); - //List identificationNodes = client.BrowseLocalNodeIds(machineNode.ResolvedNodeId, BrowseDirection.Forward, (int)NodeClass.Object, ReferenceTypeIds.HierarchicalReferences, true); - foreach (NodeId child in identificationNodes) + JObject data = new JObject(); + JObject ident = new JObject(); + ident = JObject.Parse(@"{ + """": {}, + ""SerialNumber"": ""37731"", + ""ProductInstanceUri"": ""http://herding.de"", + ""Model"" : ""Herding FLEXPRO 1500-24-2-3_SB"", + ""Manufacturer"": { + ""locale"": """", + ""text"": ""Herding GmbH Filtertechnik"" + } + }"); + data.Add("Data", ident); + data.Add("MachineId", machineNode.InstanceNamespace); + data.Add("ParentId", "nsu=http:_2F_2Fopcfoundation.org_2FUA_2FMachinery_2F;i=1001"); + if (string.IsNullOrEmpty(machineNode.BaseType)) { - Node? childNode = client.ReadNode(child); - if (childNode != null) - { - if (childNode.BrowseName.Name == "Identification") - { - JObject data = new JObject(); - JObject ident = new JObject(); - createJSON(ident, child, machineNode, null, false); - data.Add("Data", ident); - data.Add("MachineId", machineNode.InstanceNamespace); - data.Add("ParentId", "nsu=http:_2F_2Fopcfoundation.org_2FUA_2FMachinery_2F;i=1001"); - if (string.IsNullOrEmpty(machineNode.BaseType)) - { - data.Add("Topic", config.Prefix + "/" + config.ClientId + "/" + machineNode.TypeBrowseName + "/" + machineNode.InstanceNamespace); - data.Add("TypeDefinition", machineNode.TypeBrowseName); - } - else - { - data.Add("Topic", config.Prefix + "/" + config.ClientId + "/" + machineNode.BaseType + "/" + machineNode.InstanceNamespace); - data.Add("TypeDefinition", machineNode.BaseType); - } - identificationArray.Add(data); - } - } + data.Add("Topic", config.Prefix + "/" + config.ClientId + "/" + machineNode.TypeBrowseName + "/" + machineNode.InstanceNamespace); + data.Add("TypeDefinition", machineNode.TypeBrowseName); } + else + { + data.Add("Topic", config.Prefix + "/" + config.ClientId + "/" + machineNode.BaseType + "/" + machineNode.InstanceNamespace); + data.Add("TypeDefinition", machineNode.BaseType); + } + identificationArray.Add(data); + + if (string.IsNullOrEmpty(machineNode.BaseType)) { WriteIdentification(identificationArray, machineNode.InstanceNamespace, machineNode.TypeBrowseName);