Mqtt.max_queue_length for Homie Convention

#1

I am developing for Homie Convention https://homieiot.github.io/ and found the default mqtt.max_queue_length of 5 caused mqtt overflow error.

Because Homie device setup requires publishing data to many mqtt topics, I will need to set it to 50. Will setting it to a high value has any implication? Is there any workaround?

Thanks,
Michael

[Feb 14 11:02:31.164] init.js:338             MQTT connected
[Feb 14 11:02:31.222] init.js:35              Published:OK topic:homie/1581ca/$state msg:init
[Feb 14 11:02:31.281] init.js:35              Published:OK topic:homie/1581ca/$homie msg:4.0.0
[Feb 14 11:02:31.339] init.js:35              Published:OK topic:homie/1581ca/$name msg:Sonoff Basic (Homie Edition)
[Feb 14 11:02:31.389] init.js:35              Published:OK topic:homie/1581ca/$extensions msg:
[Feb 14 11:02:31.443] init.js:35              Published:OK topic:homie/1581ca/$nodes msg:relay,system
[Feb 14 11:02:31.493] init.js:35              Published:OK topic:homie/1581ca/relay/$name msg:relay
[Feb 14 11:02:31.547] init.js:35              Published:OK topic:homie/1581ca/relay/$type msg:on/off
[Feb 14 11:02:31.605] init.js:35              Published:OK topic:homie/1581ca/relay/$properties msg:state,skip-once
[Feb 14 11:02:31.663] init.js:35              Published:OK topic:homie/1581ca/relay/state/$name msg:Relay state
[Feb 14 11:02:31.720] init.js:35              Published:OK topic:homie/1581ca/relay/state/$datatype msg:boolean
[Feb 14 11:02:31.773] init.js:35              Published:OK topic:homie/1581ca/relay/state/$settable msg:true
[Feb 14 11:02:31.833] init.js:35              Published:OK topic:homie/1581ca/relay/skip-once/$name msg:Skip next schedule
[Feb 14 11:02:31.891] init.js:35              Published:OK topic:homie/1581ca/relay/skip-once/$datatype msg:boolean
[Feb 14 11:02:31.945] init.js:35              Published:OK topic:homie/1581ca/relay/skip-once/$settable msg:true
[Feb 14 11:02:31.999] init.js:35              Published:OK topic:homie/1581ca/system/$name msg:system
[Feb 14 11:02:32.053] init.js:35              Published:OK topic:homie/1581ca/system/$type msg:system
[Feb 14 11:02:32.105] init.js:35              Published:OK topic:homie/1581ca/system/$properties msg:state
[Feb 14 11:02:32.163] init.js:35              Published:OK topic:homie/1581ca/system/state/$name msg:system state
[Feb 14 11:02:32.220] init.js:35              Published:OK topic:homie/1581ca/system/state/$datatype msg:string
[Feb 14 11:02:32.274] init.js:35              Published:OK topic:homie/1581ca/system/state/$settable msg:false
[Feb 14 11:02:32.320] init.js:35              Published:OK topic:homie/1581ca/$state msg:ready
#2

The only problem is more memory used by the queue before mqtt gets connected.

To avoid that, start publishing after mqtt is connected.

#3

Thanks! The topics are published after mqtt is connected.