Zigbee2mqttManager = function Zigbee2mqttManager(gladys, mqttLibrary, serviceId) {
  this.gladys = gladys;
  this.mqttLibrary = mqttLibrary;
  this.serviceId = serviceId;
  this.mqttClient = null;

  this.discoveredDevices = {};
  this.topicBinds = {};
  this.usbConfigured = false;
  this.mqttExist = false;
  this.mqttRunning = false;
  this.mqttContainerRunning = false;
  this.zigbee2mqttExist = false;
  this.zigbee2mqttRunning = false;
  this.gladysConnected = false;
  this.zigbee2mqttConnected = false;
  this.z2mPermitJoin = false;
  this.networkModeValid = false;
  this.dockerBased = false;

  this.containerRestartWaitTimeInMs = 5 * 1000;

  this.backup = gladys.job.wrapper(JOB_TYPES.SERVICE_ZIGBEE2MQTT_BACKUP, this.backup.bind(this));
  this.backupJob = {};
  this.backupScheduledJob = null;
}
@description Add ability to connect to Zigbee2mqtt devices.
@param {object} gladys - Gladys instance.
@param {object} mqttLibrary - MQTT lib.
@param {string} serviceId - UUID of the service in DB.
@example
const zigbee2mqttManager = new Zigbee2mqttManager(gladys, mqttLibrary, serviceId);