Compare commits

...

2 Commits

2 changed files with 16 additions and 2 deletions

View File

@ -14,7 +14,7 @@
"export": {
"exclude": "examples"
},
"version": "0.1.0",
"version": "0.2.0",
"frameworks": "arduino",
"platforms": "espressif8266",
"dependencies": {

View File

@ -78,6 +78,7 @@ public:
bool act_on(String topic, IOTActionHandlerFunction f);
bool report_on(String topic, IOTReportHandlerFunction f, unsigned long update_interval, bool use_cache);
void log(const char* fmt, ...) __attribute__((format (printf, 2, 3)));
void publish(String topic, String payload, bool retain=false);
};
/**
@ -338,10 +339,23 @@ void SimpleIOT::_mqtt_callback(char* top, byte* pl, uint len) {
}
void SimpleIOT::_mqtt_publish_report(String topic, String report) {
publish(topic, report, true);
}
/**
* Publishes a message via MQTT.
*
* @param topic The topic to publish to. Will be appended to base_topic.
* @param payload The payload to publish.
* @param retain Whether to ask the broker to retain the message.
*/
void SimpleIOT::publish(String topic, String payload, bool retain) {
if (!_mqtt_enabled) return;
String final_topic = String(_mqtt_topic);
final_topic.concat(topic);
_mqtt_client.publish(final_topic.c_str(), report.c_str(), true);
_mqtt_client.publish(final_topic.c_str(), payload.c_str(), retain);
}
/***** End of MQTT stuff *****/
/***** HTTP stuff *****/