MAJOR update. More like a Backup before things get Crazy
Added Websocket Support Added Universal Message Handling for both MQTT and WS Added Timekeeper Class, that handles Physical Clock and Scheduling Added Bell Assignment Settings, Note to Bell mapping
This commit is contained in:
40
vesper/MQTT_Functions.hpp
Normal file
40
vesper/MQTT_Functions.hpp
Normal file
@@ -0,0 +1,40 @@
|
||||
#pragma once
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
// MQTT Functions.
|
||||
// Both for Incoming and Outgoing MQTT Messages
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
// Publishes a message on the MQTT server. Message passed as an argument.
|
||||
void PublishMqtt(const char * data) {
|
||||
if (mqttClient.connected()){
|
||||
String topicData = String("vesper/") + DEV_ID + "/data";
|
||||
mqttClient.publish(topicData.c_str(), 0, true, data);
|
||||
} else {
|
||||
LOG_ERROR("MQTT Not Connected ! Message Failed.");
|
||||
}
|
||||
}
|
||||
|
||||
// Subscribes to certain topics on the MQTT Server.
|
||||
void SuscribeMqtt() {
|
||||
|
||||
String topic = String("vesper/") + DEV_ID + "/control";
|
||||
uint16_t topic_id = mqttClient.subscribe(topic.c_str(), 2);
|
||||
LOG_INFO("Subscribing to Command topic, QoS 2, packetId: %d", topic_id);
|
||||
|
||||
}
|
||||
|
||||
// Handles incoming MQTT messages on subscribed topics.
|
||||
// Could move logic out of this into a dedicated function.
|
||||
void OnMqttReceived(char * topic, char * payload, AsyncMqttClientMessageProperties properties, size_t len, size_t index, size_t total) {
|
||||
|
||||
String inc_topic = String("vesper/") + DEV_ID + "/control";
|
||||
|
||||
// Don't know what this is. Check it out later.
|
||||
//String payloadContent = String(payload).substring(0, len);
|
||||
|
||||
if (String(topic) == inc_topic){
|
||||
JsonDocument command = payload2json(payload);
|
||||
handleCommand(command);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user