New MQTT module

Begonnen von andreafno, 12 Mai 2019, 10:23:50

Vorheriges Thema - Nächstes Thema

andreafno

Hi,
could somebody help me with MQTT module? In the past it worked correctly using this simple configuration:

#set zehnder device
define ZL ComfoAir /dev/ttyUSB1@9600 30
attr ZL event-min-interval .*:60
#set mqtt
define mq MQTT server:port user password
define mq_ZL MQTT_BRIDGE ZL
attr mq_ZL publishReading_Temp_EWT /user/ext_temperature


How can I make this work with the new MQTT2 module?

Thank you!
Andrea

rudolfkoenig

There are some alternatives:
- use MQTT_GENERIC_BRIDGE, this is compatible with MQTT2 (MQTT_BRIDGE is not).
- use a notify, which will call "set mqtt2_client publish XX YY" or "set mqtt2_server publish XX YY"
- define an additional MQTT2_DEVICE with a setList, and set this device via notify.

In each of these cases you need an MQTT2_CLIENT or an MQTT2_SERVER

andreafno

Hi rudolfkoenig,
thank you! Where can I find documentation in english to understand how to rewrite the cfg in the correct way? In fhem commandref I can see MQTT_GENERIC_BRIDGE under "Device modules" but clicking it nothing happens.

Thanks again


andreafno

Ok, sorry.. local html commandref only doesn't work for me.

rudolfkoenig

Define one, go to its FHEMWEB details page, and click on "Device specific help" in the bottom right corner.

andreafno

I defined mqtt2, then I set the password with "set" directly in fhemweb

define mq MQTT2_CLIENT mqtt.dioty.co:1883
attr mq username myusername


If I execute in fhemweb the command:
defmod mqttGeneric MQTT_GENERIC_BRIDGE mqtt ZL

I receive "Cannot load module MQTT_GENERIC_BRIDGE"

Should I install something?

rudolfkoenig

Probably. Did you checked the FHEM log?
Note: I am not the maintainer of this module.
Personally I would use notify (as I know _that_ module), but there are at least 120 FHEM installations using MQTT_GENERIC_BRIDGE according to our statistics, so it ought to work.

andreafno

Wow, you know it better than any other  :)

Could you please make me an example using notify to publish a reading of my ZL device, now that I set MQTT2_CLIENT?

#1) set zehnder device
define ZL ComfoAir /dev/ttyUSB1@9600 30
attr ZL event-min-interval .*:60
#2) define mqtt2 client
define mq MQTT2_CLIENT mqtt.dioty.co:1883
attr mq username myusername
#3) automatic publishing ZL reading using "notify" (previously "attr mq_ZL publishReading_Temp_EWT /user/ext_temperature")
???


ps. sorry for my english; in the log file nothing appears after the "Cannot load module MQTT_GENERIC_BRIDGE" message

rudolfkoenig

I would try something like:define ZL_notify notify ZL:Temp_EWT.* set mq publish /user/ext_temperature $EVTPART1Since I dont know the MQTT module, nor MQTT_BRIDGE, my example may be wrong.
I would start the Event Monitor in FHEMWEB, wait for the right event from ZL, mark the line and press "Create/modify device".

andreafno

Thank you! The notify works, I see in the event monitor. I can't see the messages on the broker, but this is a different problem.

Thank so much for your help!

Have a good Sunday