diff --git a/src/App/App.cpp b/src/App/App.cpp index 62d235b..ad86f40 100644 --- a/src/App/App.cpp +++ b/src/App/App.cpp @@ -75,5 +75,18 @@ void mqttOnConnectCallback(Dough::MQTT *mqtt) void mqttOnMessageCallback(String &topic, String &payload) { - callbackLogger.log("s", "MQTT message received"); + callbackLogger.log("ssss", "MQTT message received: ", topic.c_str(), " = ", payload.c_str()); + + if (topic.endsWith("/container_height")) + { + Dough::App::Instance()->config.setContainerHeight(payload.toInt()); + } + else if (topic.endsWith("/temperature_offset")) + { + Dough::App::Instance()->config.setTemperatureOffset(payload.toInt()); + } + else + { + callbackLogger.log("ss", "ERROR - Unhandled MQTT message, topic = ", topic.c_str()); + } } \ No newline at end of file diff --git a/src/App/Configuration.cpp b/src/App/Configuration.cpp index 7982459..4bb9217 100644 --- a/src/App/Configuration.cpp +++ b/src/App/Configuration.cpp @@ -12,34 +12,8 @@ namespace Dough _containerHeight = 0.00; _containerHeightSet = false; _temperatureOffset = 0; - - // MQTT *mqtt = MQTT::Instance(); - // mqtt->onConnect(Configuration::handleMqttConnect); - // mqtt->onMessage(Configuration::handleMqttMessage); } - // void Configuration::handleMqttConnect(MQTT *mqtt) - // { - // mqtt->subscribe("container_height"); - // mqtt->subscribe("temperature_offset"); - // } - - // void Configuration::handleMqttMessage(String &key, String &payload) - // { - // if (key.equals("container_height")) - // { - // App::Instance()->config.setContainerHeight(payload.toInt()); - // } - // if (key.equals("temperature_offset")) - // { - // App::Instance()->config.setTemperatureOffset(payload.toInt()); - // } - // else - // { - // App::Instance()->config._logger.log("ss", "ERROR - Unhandled MQTT message, key = ", key.c_str()); - // } - // } - bool Configuration::isOk() { return _containerHeightSet; diff --git a/src/Data/SensorController.cpp b/src/Data/SensorController.cpp index 45d5691..3c0abc2 100644 --- a/src/Data/SensorController.cpp +++ b/src/Data/SensorController.cpp @@ -22,6 +22,8 @@ namespace Dough void SensorController::setup() { + _sensor->setup(); + // Format the key to use for publishing the average (i.e. "/average"). auto lenAverageKey = strlen(_mqttKey) + 9; // +9 for the "/average\0" suffix _mqttAverageKey = new char[lenAverageKey]; diff --git a/src/Network/MQTT.cpp b/src/Network/MQTT.cpp index b523cd4..f792713 100644 --- a/src/Network/MQTT.cpp +++ b/src/Network/MQTT.cpp @@ -24,10 +24,6 @@ namespace Dough _mqttClient.begin(MQTT_BROKER, MQTT_PORT, _wifi->client); } - // ---------------------------------------------------------------------- - // Loop - // ---------------------------------------------------------------------- - bool MQTT::isConnected() { return _mqttClient.connected(); @@ -63,23 +59,6 @@ namespace Dough _mqttClient.loop(); } - // // static - // void MQTT::handleMessage(String &topic, String &payload) - // { - // MQTT::Instance()->_logger.log("sSsS", "<<< ", topic, " = ", payload); - - // MQTT *mqtt = MQTT::Instance(); - // if (mqtt->_onMessage != nullptr) - // { - // int pos = topic.lastIndexOf('/'); - // if (pos != -1) - // { - // topic.remove(0, pos + 1); - // mqtt->_onMessage(topic, payload); - // } - // } - // } - void MQTT::subscribe(const char *key) { char topic[200]; @@ -92,7 +71,7 @@ namespace Dough { char topic[200]; snprintf(topic, sizeof(topic) / sizeof(topic[0]), "%s/%s/%s", MQTT_TOPIC_PREFIX, _mqttDeviceId, key); - _logger.log("ssss", ">>> ", topic, " = ", payload); + _logger.log("ssss", "Send message: ", topic, " = ", payload); _mqttClient.publish(topic, payload); } @@ -114,5 +93,4 @@ namespace Dough publish(key, "null"); } } - } \ No newline at end of file