Use Configured MQTT Topic
This commit is contained in:
@@ -12,7 +12,7 @@ int main(int argc, char** argv)
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
Logging::OpenLog();
|
Logging::OpenLog();
|
||||||
Logging::SetLogMask(Logging::Severity::Debug);
|
Logging::SetLogMask(Logging::Severity::Info);
|
||||||
|
|
||||||
INIReader iniReader("ToonBridge.ini");
|
INIReader iniReader("ToonBridge.ini");
|
||||||
if (iniReader.ParseError() != 0)
|
if (iniReader.ParseError() != 0)
|
||||||
|
|||||||
+11
-5
@@ -9,7 +9,7 @@ namespace Toon {
|
|||||||
|
|
||||||
Bridge::Bridge(int port, const ToonSettings& toonSettings, const MQTTSettings& mqttSettings) :
|
Bridge::Bridge(int port, const ToonSettings& toonSettings, const MQTTSettings& mqttSettings) :
|
||||||
m_mqttClient(mqttSettings.hostname, mqttSettings.port),
|
m_mqttClient(mqttSettings.hostname, mqttSettings.port),
|
||||||
m_messageHandler(m_mqttClient),
|
m_messageHandler(m_mqttClient, mqttSettings.topic),
|
||||||
m_port(port),
|
m_port(port),
|
||||||
m_toonSettings(toonSettings),
|
m_toonSettings(toonSettings),
|
||||||
m_mqttSettings(mqttSettings)
|
m_mqttSettings(mqttSettings)
|
||||||
@@ -19,9 +19,12 @@ Bridge::Bridge(int port, const ToonSettings& toonSettings, const MQTTSettings& m
|
|||||||
|
|
||||||
Bridge::~Bridge()
|
Bridge::~Bridge()
|
||||||
{
|
{
|
||||||
|
std::stringstream ss;
|
||||||
|
ss << m_mqttSettings.topic << "/BridgeState";
|
||||||
|
|
||||||
MQTT::MQTTMessage message;
|
MQTT::MQTTMessage message;
|
||||||
message.topic = m_mqttSettings.topic;
|
message.topic = ss.str();
|
||||||
message.payload = "ToonBridge Stop";
|
message.payload = "Stop";
|
||||||
m_mqttClient.Send(message);
|
m_mqttClient.Send(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -39,9 +42,12 @@ void Bridge::Start()
|
|||||||
m_pWebSocketSubscription.reset(new WebSocketSubscription(m_toonSettings));
|
m_pWebSocketSubscription.reset(new WebSocketSubscription(m_toonSettings));
|
||||||
m_messageHandler.Connect(std::bind(&Bridge::TimeToLiveCallback, this, m_pWebSocketSubscription.get(), std::placeholders::_1));
|
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;
|
MQTT::MQTTMessage message;
|
||||||
message.topic = m_mqttSettings.topic;
|
message.topic = ss.str();
|
||||||
message.payload = "ToonBridge Start";
|
message.payload = ss.str();
|
||||||
m_mqttClient.Send(message);
|
m_mqttClient.Send(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+23
-8
@@ -1,13 +1,13 @@
|
|||||||
#include "MessageHandler.h"
|
#include "MessageHandler.h"
|
||||||
#include <Logging.h>
|
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
|
||||||
|
|
||||||
namespace ToonBridge {
|
namespace ToonBridge {
|
||||||
namespace Toon {
|
namespace Toon {
|
||||||
|
|
||||||
MessageHandler::MessageHandler(MQTT::MQTT& mqtt) :
|
MessageHandler::MessageHandler(MQTT::MQTT& mqtt, const std::string& mqttTopic) :
|
||||||
m_mqtt(mqtt)
|
m_mqtt(mqtt),
|
||||||
|
m_mqttTopic(mqttTopic)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -46,8 +46,11 @@ void MessageHandler::Disconnect(size_t connection)
|
|||||||
|
|
||||||
void MessageHandler::HandlePowerUsageMessage(const nlohmann::json& data)
|
void MessageHandler::HandlePowerUsageMessage(const nlohmann::json& data)
|
||||||
{
|
{
|
||||||
|
std::stringstream ss;
|
||||||
|
ss << m_mqttTopic << "/PowerUsage";
|
||||||
|
|
||||||
MQTT::MQTTMessage message;
|
MQTT::MQTTMessage message;
|
||||||
message.topic = "ToonBridge/PowerUsage";
|
message.topic = ss.str();
|
||||||
message.payload = data.dump();
|
message.payload = data.dump();
|
||||||
m_mqtt.Send(message);
|
m_mqtt.Send(message);
|
||||||
/*
|
/*
|
||||||
@@ -74,8 +77,11 @@ void MessageHandler::HandlePowerUsageMessage(const nlohmann::json& data)
|
|||||||
|
|
||||||
void MessageHandler::HandleGasUsageMessage(const nlohmann::json& data)
|
void MessageHandler::HandleGasUsageMessage(const nlohmann::json& data)
|
||||||
{
|
{
|
||||||
|
std::stringstream ss;
|
||||||
|
ss << m_mqttTopic << "/GasUsage";
|
||||||
|
|
||||||
MQTT::MQTTMessage message;
|
MQTT::MQTTMessage message;
|
||||||
message.topic = "ToonBridge/GasUsage";
|
message.topic = ss.str();
|
||||||
message.payload = data.dump();
|
message.payload = data.dump();
|
||||||
m_mqtt.Send(message);
|
m_mqtt.Send(message);
|
||||||
/*
|
/*
|
||||||
@@ -92,8 +98,11 @@ void MessageHandler::HandleGasUsageMessage(const nlohmann::json& data)
|
|||||||
|
|
||||||
void MessageHandler::HandleWaterUsageMessage(const nlohmann::json& data)
|
void MessageHandler::HandleWaterUsageMessage(const nlohmann::json& data)
|
||||||
{
|
{
|
||||||
|
std::stringstream ss;
|
||||||
|
ss << m_mqttTopic << "/WaterUsage";
|
||||||
|
|
||||||
MQTT::MQTTMessage message;
|
MQTT::MQTTMessage message;
|
||||||
message.topic = "ToonBridge/WaterUsage";
|
message.topic = ss.str();
|
||||||
message.payload = data.dump();
|
message.payload = data.dump();
|
||||||
m_mqtt.Send(message);
|
m_mqtt.Send(message);
|
||||||
/*
|
/*
|
||||||
@@ -109,8 +118,11 @@ void MessageHandler::HandleWaterUsageMessage(const nlohmann::json& data)
|
|||||||
|
|
||||||
void MessageHandler::HandleThermostatInfoMessage(const nlohmann::json& data)
|
void MessageHandler::HandleThermostatInfoMessage(const nlohmann::json& data)
|
||||||
{
|
{
|
||||||
|
std::stringstream ss;
|
||||||
|
ss << m_mqttTopic << "/ThermostatInfo";
|
||||||
|
|
||||||
MQTT::MQTTMessage message;
|
MQTT::MQTTMessage message;
|
||||||
message.topic = "ToonBridge/ThermostatInfo";
|
message.topic = ss.str();
|
||||||
message.payload = data.dump();
|
message.payload = data.dump();
|
||||||
m_mqtt.Send(message);
|
m_mqtt.Send(message);
|
||||||
/*
|
/*
|
||||||
@@ -138,8 +150,11 @@ void MessageHandler::HandleThermostatInfoMessage(const nlohmann::json& data)
|
|||||||
|
|
||||||
void MessageHandler::HandleThermostatStatesMessage(const nlohmann::json& data)
|
void MessageHandler::HandleThermostatStatesMessage(const nlohmann::json& data)
|
||||||
{
|
{
|
||||||
|
std::stringstream ss;
|
||||||
|
ss << m_mqttTopic << "/ThermostatStates";
|
||||||
|
|
||||||
MQTT::MQTTMessage message;
|
MQTT::MQTTMessage message;
|
||||||
message.topic = "ToonBridge/ThermostatStates";
|
message.topic = ss.str();
|
||||||
message.payload = data.dump();
|
message.payload = data.dump();
|
||||||
m_mqtt.Send(message);
|
m_mqtt.Send(message);
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ namespace Toon {
|
|||||||
class MessageHandler
|
class MessageHandler
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MessageHandler(MQTT::MQTT& mqtt);
|
MessageHandler(MQTT::MQTT& mqtt, const std::string& mqttTopic);
|
||||||
~MessageHandler();
|
~MessageHandler();
|
||||||
|
|
||||||
void HandleMessage(const std::string& message);
|
void HandleMessage(const std::string& message);
|
||||||
@@ -37,6 +37,7 @@ private:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
MQTT::MQTT& m_mqtt;
|
MQTT::MQTT& m_mqtt;
|
||||||
|
std::string m_mqttTopic;
|
||||||
TTLMessage m_signal;
|
TTLMessage m_signal;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user