MQTT Engine Write Error

Hi All,
I’m testing out the MQTT Engine and having a few difficulties.
I can read fine, but every time I write to a MQTT tag I get this:

[AWT-EventQueue-0] ERROR com.inductiveautomation.ignition.designer.sqltags.util.TagUtilities$WriteListener - Error writing to command.Value:
Access Denied

In Configure->MQTT Engine->Settings->General I’ve un-ticked “Block Node Commands”, “Block Device Command” and "Block Property Changes’.

In Configure->Service Security->Edit->Tag Access I’ve set the following values:
Service Access = Allow
Trust Remote Roles = Ticked
Default Provider Access Level = ReadWriteEdit
Access Level: System = ReadWriteEdit
Access Level: MQTT Test = ReadWriteEdit
Access Level: MQTT Engine = ReadWriteEdit

What else do I need to do?

Definitely having the same issue. Subscribing to a topic works just fine, but trying to edit/publish and alter that topic from ignition is not working.

So I have done the following:

  1. Enabled Read/Write in the Designer
  2. Changed my MQTT tag to bidirectional
  3. Changed, in Gateway Configuration/Service Security and changed Tag Access to Read/Write

Still get Access Denied error, that prevents me from changing the tag value from Ignition, this is where I get my access denied.

In the Gateway configuration, under MQTT Distributor at the bottom of the page check “Show Advanced”
then check mark “Enable anonymous MQTT connections”.

Now I use the Cirrus Link MQTT 3rd party module setup with “Sparkplug B” protocol and everythings works as expected.

Good Luck.

@dcamp1 thanks for the advice, but did not change the outcome. Still getting Access Denied. I will try and set up everything through Cirrus components and see if that corrects it…

I have the same problem. Any luck to solve it?
As document said, we could be able publish on created tag by Mqtt engine module.

Any solution yet?

Ok. Here is some problem what i find out.
You can connect your device to MQTT. and Ignition will read all the data. But, while your device does not supports SparkPlug, you CAN’T do any changes on these tags or do publish via change tag.
Here is a possible solution for now,
You can setup memory tag and on action “ValueChange” use

system.cirruslink.engine.publish(String serverName, String mqttTopic, byte[] payload, int qos, boolean retain)

Talk with Cirrus Link guys, I hope in future we will have some option to use or not SparkPlug for talk to the device.


Did you ever get this resolved?

I never got it working. But haven’t tried for a while now. There may have been improvements since this post was made.