/* MQTT MODULE Copyright (C) 2016-2019 by Xose PĂ©rez Updated secure client support by Niek van der Maas < mail at niekvandermaas dot nl> */ #pragma once #include "espurna.h" #include // These will be concatenated to the MQTT_TOPIC base to form the actual topic #define MQTT_TOPIC_JSON "data" #define MQTT_TOPIC_ACTION "action" #define MQTT_TOPIC_RELAY "relay" #define MQTT_TOPIC_LED "led" #define MQTT_TOPIC_BUTTON "button" #define MQTT_TOPIC_IP "ip" #define MQTT_TOPIC_SSID "ssid" #define MQTT_TOPIC_BSSID "bssid" #define MQTT_TOPIC_VERSION "version" #define MQTT_TOPIC_UPTIME "uptime" #define MQTT_TOPIC_DATETIME "datetime" #define MQTT_TOPIC_TIMESTAMP "timestamp" #define MQTT_TOPIC_FREEHEAP "freeheap" #define MQTT_TOPIC_VCC "vcc" #define MQTT_TOPIC_STATUS "status" #define MQTT_TOPIC_MAC "mac" #define MQTT_TOPIC_RSSI "rssi" #define MQTT_TOPIC_MESSAGE_ID "id" #define MQTT_TOPIC_APP "app" #define MQTT_TOPIC_INTERVAL "interval" #define MQTT_TOPIC_HOSTNAME "host" #define MQTT_TOPIC_DESCRIPTION "desc" #define MQTT_TOPIC_TIME "time" #define MQTT_TOPIC_RFOUT "rfout" #define MQTT_TOPIC_RFIN "rfin" #define MQTT_TOPIC_RFLEARN "rflearn" #define MQTT_TOPIC_RFRAW "rfraw" #define MQTT_TOPIC_UARTIN "uartin" #define MQTT_TOPIC_UARTOUT "uartout" #define MQTT_TOPIC_LOADAVG "loadavg" #define MQTT_TOPIC_BOARD "board" #define MQTT_TOPIC_PULSE "pulse" #define MQTT_TOPIC_SPEED "speed" #define MQTT_TOPIC_IRIN "irin" #define MQTT_TOPIC_IROUT "irout" #define MQTT_TOPIC_OTA "ota" #define MQTT_TOPIC_TELNET_REVERSE "telnet_reverse" #define MQTT_TOPIC_CURTAIN "curtain" #define MQTT_TOPIC_CMD "cmd" using mqtt_callback_f = std::function; struct MqttMessage { String topic; String message; }; void mqttHeartbeat(heartbeat::Callback); void mqttRegister(mqtt_callback_f callback); String mqttTopic(const char * magnitude, bool is_set); String mqttTopic(const char * magnitude, unsigned int index, bool is_set); String mqttMagnitude(const char* topic); bool mqttSendRaw(const char * topic, const char * message, bool retain); bool mqttSendRaw(const char * topic, const char * message); void mqttSend(const char * topic, const char * message, bool force, bool retain); void mqttSend(const char * topic, const char * message, bool force); void mqttSend(const char * topic, const char * message); void mqttSend(const char * topic, unsigned int index, const char * message, bool force, bool retain); void mqttSend(const char * topic, unsigned int index, const char * message, bool force); void mqttSend(const char * topic, unsigned int index, const char * message); void mqttSendStatus(); void mqttFlush(); void mqttEnqueue(const char* topic, const char* message); const String& mqttPayloadOnline(); const String& mqttPayloadOffline(); const char* mqttPayloadStatus(bool status); void mqttSetBroker(IPAddress ip, uint16_t port); void mqttSetBrokerIfNone(IPAddress ip, uint16_t port); void mqttSubscribeRaw(const char * topic); void mqttSubscribe(const char * topic); void mqttUnsubscribeRaw(const char * topic); void mqttUnsubscribe(const char * topic); void mqttEnabled(bool status); bool mqttEnabled(); bool mqttForward(); bool mqttConnected(); void mqttDisconnect(); void mqttSetup();