MQTT constant rebirth requests

I am currently testing 2 edge nodes communicating with an ignition gateway. when only one node has the MQTT transmission module turned on, it works perfectly. When i have both turned on, both devices repeatedly come online for about half a second, send in one message, then go offline again. The logpage for the edge node constantly spouts rebirth requests and errors about failing to handle the property “parentTag”. because multiple identical edge gateway will be connected to the same central server, I ensure a unique device ID by copying all the tags into a uniquely named folder under remote_MQTT and then making them reference the original tags ( since there’s no other way to define the node or device ID based on a tag value)

What could be causing this problem?


@wes0johnson

There isn’t quite enough there to tell me what is going on - but it sounds like one of two things.

  1. You have the same MQTT client ID defined for each edge node (in Transmission Server config)
  2. You have the same Sparkplug Group ID and Edge Node ID defined for each edge node (in Transmission Transmitters config)

Both of these will cause them to kick each other off. Also, what version of Transmission and Engine are you using? The latest version (4.0.7) handles bound properties in UDTs much better than previous versions.

1 Like

I had the same edge node ID, that seems to be what was causing the problem. I changed that to blank, and it seems to be working now.

By the way, is there any method to set the Edge node ID from the value of a gateway tag? The method I’m using involves a script copying all of my tags to an mqtt folder and then referencing them to the originals, but that’s a very ugly hack.

This isn’t an option today - but seems like a reasonable idea. I’ve added this to our feature backlog to try and get it added in the future.

Hey Wes - I'm facing this issue, and I think I may have a bit of a misunderstanding around point 2 on this. I have multiple servers from the same facility sending MQTT data to an enterprise broker, and I've structured the tag provider as such:

<Division>
  -> <Site Code>
  -> -> <Application Name>
  -> ->  -> <Application Tags/Folders>

Then I simply point the MQTT Transmitter to the Tag Provider root. This way on my centralized server I see all applications listed under the division and plant code. Have I structured this in a fundamentally incorrect way?

That is potentially viable. Just keep in mind in a Sparkplug environment, it is required that the combination of Sparkplug Group and Edge Node ID be unique to any others in the system. The combination of the Group and Edge Node ID uniquely reference that MQTT client within the system. This doc may help with any confusion: MQTT Transmission Transmitters and Tag Trees - MQTT Modules for Ignition 8.x - Confluence