![JAR search and dependency download from the Maven repository](/logo.png)
de.hasait.sprinkler.service.sensor.publish.MqttSensorValuePublisher Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of sprinkler Show documentation
Show all versions of sprinkler Show documentation
Sprinkler - Spring Boot application for controlling sprinklers using Raspberry Pi
The newest version!
package de.hasait.sprinkler.service.sensor.publish;
import de.hasait.sprinkler.domain.sensor.SensorValuePO;
import org.eclipse.paho.client.mqttv3.IMqttClient;
import org.eclipse.paho.client.mqttv3.MqttClient;
import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.nio.charset.StandardCharsets;
public class MqttSensorValuePublisher implements SensorValuePublisher {
private static final Logger LOG = LoggerFactory.getLogger(MqttSensorValuePublisher.class);
private final MqttConfiguration configuration;
private final IMqttClient client;
public MqttSensorValuePublisher(MqttConfiguration configuration) throws MqttException {
this.configuration = configuration;
this.client = new MqttClient(configuration.getUri(), configuration.getClientId());
MqttConnectOptions options = new MqttConnectOptions();
options.setAutomaticReconnect(true);
options.setCleanSession(true);
options.setConnectionTimeout(10);
options.setUserName(configuration.getUsername());
options.setPassword(configuration.getPassword());
client.connect(options);
LOG.info("Connected to MQTT: {}", configuration.getUri());
}
@Override
public void publish(SensorValuePO value) throws Exception {
String messageContent = "{\"value\":" + value.getIntValue() + "}";
String topic = configuration.getTopic() + "/" + value.getSensor().getName();
LOG.debug("Publishing MQTT to topic {}: {}", topic, messageContent);
MqttMessage msg = new MqttMessage(messageContent.getBytes(StandardCharsets.UTF_8));
msg.setQos(0);
msg.setRetained(true);
client.publish(topic, msg);
LOG.info("Published MQTT to topic {}: {}", topic, messageContent);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy