private void doInit() throws MqttException { String server = System.getProperty("knx2mqtt.mqtt.server", "tcp://localhost:1883"); String clientID = System.getProperty("knx2mqtt.mqtt.clientid", "knx2mqtt"); mqttc = new MqttClient(server, clientID, new MemoryPersistence()); mqttc.setCallback( new MqttCallback() { @Override public void messageArrived(String topic, MqttMessage msg) throws Exception { try { processMessage(topic, msg); } catch (Exception e) { L.log(Level.WARNING, "Error when processing message " + msg + " for " + topic, e); } } @Override public void deliveryComplete(IMqttDeliveryToken token) { /* Intentionally ignored */ } @Override public void connectionLost(Throwable t) { L.log(Level.WARNING, "Connection to MQTT broker lost", t); queueConnect(); } }); doConnect(); Main.t.schedule(new StateChecker(), 30 * 1000, 30 * 1000); }