Merge pull request #247 from mysensors/fix-mqtt-topic-naming
Split subscripe/publish MQTT topic
This commit is contained in:
@@ -94,8 +94,11 @@
|
||||
#if !defined(MY_CONTROLLER_IP_ADDRESS)
|
||||
#error You must specify MY_CONTROLLER_IP_ADDRESS (MQTT broker address)
|
||||
#endif
|
||||
#if !defined(MY_MQTT_TOPIC_PREFIX)
|
||||
#error You must specify a topic prefix MY_MQTT_TOPIC_PREFIX for this MQTT client
|
||||
#if !defined(MY_MQTT_PUBLISH_TOPIC_PREFIX)
|
||||
#error You must specify a topic publish prefix MY_MQTT_PUBLISH_TOPIC_PREFIX for this MQTT client
|
||||
#endif
|
||||
#if !defined(MY_MQTT_SUBSCRIBE_TOPIC_PREFIX)
|
||||
#error You must specify a topic subscribe prefix MY_MQTT_SUBSCRIBE_TOPIC_PREFIX for this MQTT client
|
||||
#endif
|
||||
#if !defined(MY_MQTT_CLIENT_ID)
|
||||
#error You must define a unique MY_MQTT_CLIENT_ID for this MQTT client
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
#include "MyGatewayTransport.h"
|
||||
#include "MyMessage.h"
|
||||
|
||||
// Topic structure: MY_MQTT_TOPIC_PREFIX/NODE-ID/SENSOR-ID/CMD-TYPE/ACK-FLAG/SUB-TYPE
|
||||
// Topic structure: MY_MQTT_PUBLISH_TOPIC_PREFIX/NODE-ID/SENSOR-ID/CMD-TYPE/ACK-FLAG/SUB-TYPE
|
||||
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@ MyMessage _mqttMsg;
|
||||
bool gatewayTransportSend(MyMessage &message) {
|
||||
if (!_client.connected())
|
||||
return false;
|
||||
snprintf_P(_fmtBuffer, MY_GATEWAY_MAX_SEND_LENGTH, PSTR(MY_MQTT_TOPIC_PREFIX "/%d/%d/%d/%d/%d"), message.sender, message.sensor, mGetCommand(message), mGetAck(message), message.type);
|
||||
snprintf_P(_fmtBuffer, MY_GATEWAY_MAX_SEND_LENGTH, PSTR(MY_MQTT_PUBLISH_TOPIC_PREFIX "/%d/%d/%d/%d/%d"), message.sender, message.sensor, mGetCommand(message), mGetAck(message), message.type);
|
||||
debug(PSTR("Sending message on topic: %s\n"), _fmtBuffer);
|
||||
return _client.publish(_fmtBuffer, message.getString(_convBuffer));
|
||||
}
|
||||
@@ -71,7 +71,7 @@ void incomingMQTT(char* topic, byte* payload,
|
||||
switch (i) {
|
||||
case 0: {
|
||||
// Topic prefix
|
||||
if (strcmp_P(str, MY_MQTT_TOPIC_PREFIX) != 0) {
|
||||
if (strcmp_P(str, MY_MQTT_SUBSCRIBE_TOPIC_PREFIX) != 0) {
|
||||
// Message not for us or malformed!
|
||||
return;
|
||||
}
|
||||
@@ -126,7 +126,7 @@ bool reconnectMQTT() {
|
||||
// Once connected, publish an announcement...
|
||||
//_client.publish("outTopic","hello world");
|
||||
// ... and resubscribe
|
||||
_client.subscribe(MY_MQTT_TOPIC_PREFIX "/+/+/+/+/+");
|
||||
_client.subscribe(MY_MQTT_SUBSCRIBE_TOPIC_PREFIX "/+/+/+/+/+");
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -72,8 +72,9 @@
|
||||
|
||||
#define MY_GATEWAY_MQTT_CLIENT
|
||||
|
||||
// Set this nodes topic prefix
|
||||
#define MY_MQTT_TOPIC_PREFIX "mygateway"
|
||||
// Set this nodes subscripe and publish topic prefix
|
||||
#define MY_MQTT_PUBLISH_TOPIC_PREFIX "mygateway1-out"
|
||||
#define MY_MQTT_SUBSCRIBE_TOPIC_PREFIX "mygateway1-in"
|
||||
|
||||
// Set MQTT client id
|
||||
#define MY_MQTT_CLIENT_ID "mysensors-1"
|
||||
|
||||
@@ -69,8 +69,9 @@
|
||||
|
||||
#define MY_GATEWAY_MQTT_CLIENT
|
||||
|
||||
// Set this nodes topic prefix
|
||||
#define MY_MQTT_TOPIC_PREFIX "mygateway"
|
||||
// Set this nodes subscripe and publish topic prefix
|
||||
#define MY_MQTT_PUBLISH_TOPIC_PREFIX "mygateway1-out"
|
||||
#define MY_MQTT_SUBSCRIBE_TOPIC_PREFIX "mygateway1-in"
|
||||
|
||||
// Set MQTT client id
|
||||
#define MY_MQTT_CLIENT_ID "mysensors-1"
|
||||
|
||||
@@ -101,6 +101,7 @@ MY_RS485_BAUD_RATE LITERAL1
|
||||
MY_RS485_MAX_MESSAGE_LENGTH LITERAL1
|
||||
MY_INCLUSION_BUTTON_EXTERNAL_PULLUP LITERAL1
|
||||
MY_W5100_SPI_EN LITERAL1
|
||||
MY_MQTT_TOPIC_PREFIX LITERAL1
|
||||
MY_MQTT_SUBSCRIBE_TOPIC_PREFIX LITERAL1
|
||||
MY_MQTT_PUBLISH_TOPIC_PREFIX LITERAL1
|
||||
MY_MQTT_CLIENT_ID LITERAL1
|
||||
MY_GATEWAY_MQTT_CLIENT LITERAL1
|
||||
Reference in New Issue
Block a user