async publishHass(topic, message, options) {
        try {
            await this.publish(topic, message, options);
        } catch (err) {
            if (err.message !== "client disconnecting" && err.message !== "connection closed") {
                Logger.error("MQTT publication error:", err);
            }
        }
    }
This is effectively a wrapper around mqtt.publish. However, this is intended for *exclusive* usage by
HassController in order to enforce responsibility separation.
No class that doesn't end in "Controller" is allowed to publish directly.
All classes not ending in "Controller" must ask their respective controller to fetch their data and publish it.

If you find yourself wanting to use this outside of HassController, please start a discussion on GitHub and
tag @Depau.

@package
@param {string} topic
@param {string} message
@param {object} [options]
@return {Promise<void>}