Use Configured MQTT Topic

This commit is contained in:
2020-06-22 09:44:05 +02:00
parent 4f5998cf5f
commit 48f930c19e
4 changed files with 37 additions and 15 deletions
+11 -5
View File
@@ -9,7 +9,7 @@ namespace Toon {
Bridge::Bridge(int port, const ToonSettings& toonSettings, const MQTTSettings& mqttSettings) :
m_mqttClient(mqttSettings.hostname, mqttSettings.port),
m_messageHandler(m_mqttClient),
m_messageHandler(m_mqttClient, mqttSettings.topic),
m_port(port),
m_toonSettings(toonSettings),
m_mqttSettings(mqttSettings)
@@ -19,9 +19,12 @@ Bridge::Bridge(int port, const ToonSettings& toonSettings, const MQTTSettings& m
Bridge::~Bridge()
{
std::stringstream ss;
ss << m_mqttSettings.topic << "/BridgeState";
MQTT::MQTTMessage message;
message.topic = m_mqttSettings.topic;
message.payload = "ToonBridge Stop";
message.topic = ss.str();
message.payload = "Stop";
m_mqttClient.Send(message);
}
@@ -39,9 +42,12 @@ void Bridge::Start()
m_pWebSocketSubscription.reset(new WebSocketSubscription(m_toonSettings));
m_messageHandler.Connect(std::bind(&Bridge::TimeToLiveCallback, this, m_pWebSocketSubscription.get(), std::placeholders::_1));
std::stringstream ss;
ss << m_mqttSettings.topic << "/BridgeState";
MQTT::MQTTMessage message;
message.topic = m_mqttSettings.topic;
message.payload = "ToonBridge Start";
message.topic = ss.str();
message.payload = ss.str();
m_mqttClient.Send(message);
}
+23 -8
View File
@@ -1,13 +1,13 @@
#include "MessageHandler.h"
#include <Logging.h>
#include <sstream>
namespace ToonBridge {
namespace Toon {
MessageHandler::MessageHandler(MQTT::MQTT& mqtt) :
m_mqtt(mqtt)
MessageHandler::MessageHandler(MQTT::MQTT& mqtt, const std::string& mqttTopic) :
m_mqtt(mqtt),
m_mqttTopic(mqttTopic)
{
}
@@ -46,8 +46,11 @@ void MessageHandler::Disconnect(size_t connection)
void MessageHandler::HandlePowerUsageMessage(const nlohmann::json& data)
{
std::stringstream ss;
ss << m_mqttTopic << "/PowerUsage";
MQTT::MQTTMessage message;
message.topic = "ToonBridge/PowerUsage";
message.topic = ss.str();
message.payload = data.dump();
m_mqtt.Send(message);
/*
@@ -74,8 +77,11 @@ void MessageHandler::HandlePowerUsageMessage(const nlohmann::json& data)
void MessageHandler::HandleGasUsageMessage(const nlohmann::json& data)
{
std::stringstream ss;
ss << m_mqttTopic << "/GasUsage";
MQTT::MQTTMessage message;
message.topic = "ToonBridge/GasUsage";
message.topic = ss.str();
message.payload = data.dump();
m_mqtt.Send(message);
/*
@@ -92,8 +98,11 @@ void MessageHandler::HandleGasUsageMessage(const nlohmann::json& data)
void MessageHandler::HandleWaterUsageMessage(const nlohmann::json& data)
{
std::stringstream ss;
ss << m_mqttTopic << "/WaterUsage";
MQTT::MQTTMessage message;
message.topic = "ToonBridge/WaterUsage";
message.topic = ss.str();
message.payload = data.dump();
m_mqtt.Send(message);
/*
@@ -109,8 +118,11 @@ void MessageHandler::HandleWaterUsageMessage(const nlohmann::json& data)
void MessageHandler::HandleThermostatInfoMessage(const nlohmann::json& data)
{
std::stringstream ss;
ss << m_mqttTopic << "/ThermostatInfo";
MQTT::MQTTMessage message;
message.topic = "ToonBridge/ThermostatInfo";
message.topic = ss.str();
message.payload = data.dump();
m_mqtt.Send(message);
/*
@@ -138,8 +150,11 @@ void MessageHandler::HandleThermostatInfoMessage(const nlohmann::json& data)
void MessageHandler::HandleThermostatStatesMessage(const nlohmann::json& data)
{
std::stringstream ss;
ss << m_mqttTopic << "/ThermostatStates";
MQTT::MQTTMessage message;
message.topic = "ToonBridge/ThermostatStates";
message.topic = ss.str();
message.payload = data.dump();
m_mqtt.Send(message);
/*
+2 -1
View File
@@ -13,7 +13,7 @@ namespace Toon {
class MessageHandler
{
public:
MessageHandler(MQTT::MQTT& mqtt);
MessageHandler(MQTT::MQTT& mqtt, const std::string& mqttTopic);
~MessageHandler();
void HandleMessage(const std::string& message);
@@ -37,6 +37,7 @@ private:
private:
MQTT::MQTT& m_mqtt;
std::string m_mqttTopic;
TTLMessage m_signal;
};