[SOLVED] MQTT action doesn't publish although there is no logged exception

Tags: #<Tag:0x00007f0142ef86d0> #<Tag:0x00007f0142ef8568>

(Oliver Libutzki) #1

Hi evryone,

I use the MQTT event-bus to expose states and commands to the local MQTT broker (Mosquitto). This works pretty well, so oviously the connection between OH2 and Mosquitto works.

Unfortunately I cannot publish a message by using the MQTT action. I do not see any error, but the clients which subscribe on a topic which I publish with the MQTT action are not notified.

In the openhab log I can see this log entry:

20:16:05.126 [DEBUG] [org.openhab.action.mqtt.internal.Mqtt] - Message to broker: mqtt, topic: playground/test

This is the code of my rule:

publish("mqtt", "playground/test", "")

Everything seems to be working… but unfortunately it just seems to…

Any ideas? Thanks!

Kind regards

(Oliver Libutzki) #2

Obviously the message is not passed to the MqttBrokerConnection. After setting the log level of org.openhab.io.transport.mqtt to DEBUG I do not see any message like

Publishing message 50156 to topic 'playground/test'

(Rich Koshak) #3

First the basics.

  1. You’ve installed the MQTT Action?
  2. You’ve installed the MQTT Binding? (I think the Action requires the binding).
  3. The mqtt.cfg has a configuration for the broker “mqtt”?
  4. Does it publish if you pass a non-empty message? Perhaps there is a check that keeps it from sending empty messages.

(Oliver Libutzki) #4
  1. yes
  2. yes
  3. yes, content below
  4. No
# Define your MQTT broker connections here for use in the MQTT Binding or MQTT
# Persistence bundles. Replace <broker> with an ID you choose.

# URL to the MQTT broker, e.g. tcp://localhost:1883 or ssl://localhost:8883

# Optional. Client id (max 23 chars) to use when connecting to the broker.
# If not provided a random default is generated.

# Optional. True or false. If set to true, allows the use of clientId values
# up to 65535 characters long. Defaults to false.
# NOTE: clientId values longer than 23 characters may not be supported by all
# MQTT servers. Check the server documentation.

# Optional. User id to authenticate with the broker.

# Optional. Password to authenticate with the broker.

# Optional. Set the quality of service level for sending messages to this broker.
# Possible values are 0 (Deliver at most once),1 (Deliver at least once) or 2
# (Deliver exactly once). Defaults to 0.

# Optional. True or false. Defines if the broker should retain the messages sent to
# it. Defaults to false.

# Optional. True or false. Defines if messages are published asynchronously or
# synchronously. Defaults to true.

# Optional. Defines the last will and testament that is sent when this client goes offline
# Format: topic:message:qos:retained <br/>
#<broker>.lwt=<last will definition>

(Vincent Regaud) #5

There is a problem with the mqtt action that occur sometimes. Remove the action, clear the cache and after a restarting oh, install the action agian

(Oliver Libutzki) #6

Thanks! That fixed it!

(Vincent Regaud) #7

Coolio! Please mark the thread as solved. Thanks

(Oliver Libutzki) #8