[fixed] Why must I define devices/clients beforehand? (to how)


Typical usage of MQTT allows anyone with a valid username/password to connect. They can then choose a client ID, which is used to persist their subscriptions incase they want to disconnect and reconnect again, and not miss anything.

By forcing users to use the web console to set up clients, you create an unnecessary extra step for use. The ‘skip replace’ option does not resolve this issue, because with that option enabled, any device who reconnects loses queued messages.

It is also incompatible with other bits of MQTT software - for example, Domoticz, which autogenerates a client ID and is not user configurable.

The solution for ‘dead’ client id’s is to just garbage collect them after some configurable timeout.



Certainly MyQttHub.com is currently more leaned to use cases where all devices are known beforehand.

We will review this case to provide some support to MyQtt Hubs to register generic authentication credentials that could be used for bootstraping devices presenting that credentials.

In any case, you need to connect to the web console to do such registration. Otherwise, there is no way to know what’s the MyQttHub you are attempting to connect to.

About garbage collecting, could be a solution but might be problematic too.

The other side about all this is that in case such “auto bootstrap” credentials support is implemented in MyQtthub, if connecting software does not estabilize the clientId after generating it, your MyQttHUB will end up filled with lots of devices that are useless (existance-limited-to-the-first-connection), blocking any new connect attempt because there is no “room” to bootstrap new devices as they are all occupied.

Flagging this as feature request to be implemented as soon as possible

Best Regards,



We have recently added support for device bootstrap credentials to solve this use case. See:

Best Regards,