9#ifndef ARDUINO_WOPR_JBWOPRMQTT_H
10#define ARDUINO_WOPR_JBWOPRMQTT_H
13#include <PubSubClient.h>
14#include <WiFiManager.h>
18#define DEFAULT_MQTT_PREFIX "wopr"
19#define DEFAULT_MQTT_PORT 1883
91 bool mqttPublishMessage(
const std::string& topic, JsonDocument &jsonDoc,
bool retain =
false);
100 bool mqttPublishMessage(
const std::string& topic,
const std::string& value,
bool retain =
false);
169 void displayShowText(
const char* text, JBTextAlignment alignment)
override;
177 void displayShowText(
const std::string& text, JBTextAlignment alignment)
override;
185 void displayShowText(
const String& text, JBTextAlignment alignment)
override;
433 void _mqttCallback(
const char* topic,
const byte* payload,
unsigned int length);
442 virtual void _handleCommand(
const std::string& entity,
const std::string& subEntity,
const std::string& command,
const std::string& payload);
450 virtual void _handleDeviceCommand(
const std::string& subEntity,
const std::string& command,
const std::string& payload);
458 virtual void _handleConfigCommand(
const std::string& subEntity,
const std::string& command,
const std::string& payload);
466 virtual void _handleEffectCommand(
const std::string& subEntity,
const std::string& command,
const std::string& payload);
474 virtual void _handleDisplayCommand(
const std::string& subEntity,
const std::string& command,
const std::string& payload);
482 virtual void _handleDefconCommand(
const std::string& subEntity,
const std::string& command,
const std::string& payload);
489 virtual std::string
_getTopic(
const char * entityId,
const char* subEntityId);
496 virtual std::string
_getTopic(
const std::string& entityId,
const std::string& subEntityId);
Abstract effect base class.
Definition jbwopreffects.h:42
W.O.P.R. WiFi and MQTT device class.
Definition jbwoprmqtt.h:38
const char * SUBENTITY_NAME_DISPLAY_BRIGHTNESS
Display brightness key name.
Definition jbwoprmqtt.h:392
const char * ENTITY_NAME_EFFECT
Effect entity name.
Definition jbwoprmqtt.h:372
WiFiClient _wifiClient
WiFi client.
Definition jbwoprmqtt.h:338
JBWoprMqttConfig _mqttConfig
MQTT configuration.
Definition jbwoprmqtt.h:311
WiFiManagerParameter * _mqttServerPortParam
MQTT server port WiFiManager parameter.
Definition jbwoprmqtt.h:347
char _mqttServerPortValue[6]
MQTT server port value.
Definition jbwoprmqtt.h:341
bool begin(JBWoprBoardVariant variant) override
Initialize JBWoprMqttDevice.
Definition jbwoprmqtt.cpp:27
const char * SUBENTITY_NAME_EFFECTS_TIMEOUT
Effects timeout key name.
Definition jbwoprmqtt.h:388
JBWoprMqttDevice()
JBWoprMqttDevice constructor.
Definition jbwoprmqtt.cpp:14
const char * JSON_KEY_MQTT_USER_NAME
MQTT user name key name.
Definition jbwoprmqtt.h:316
const char * ENTITY_NAME_BUTTON_BACK_BOTTOM
Button back bottom entity name.
Definition jbwoprmqtt.h:378
const char * SUBENTITY_NAME_COLOR
Color subentity name.
Definition jbwoprmqtt.h:382
bool _mqttActive
MQTT active flag, set tp true after initialization.
Definition jbwoprmqtt.h:368
const char * ENTITY_NAME_DISPLAY
Display text entity name.
Definition jbwoprmqtt.h:373
const char * STATE_ON
State ON.
Definition jbwoprmqtt.h:396
WiFiManagerParameter * _break2Param
Break WiFiManagerparameter.
Definition jbwoprmqtt.h:351
const char * JSON_KEY_MQTT_SERVER_PORT
MQTT server port key name.
Definition jbwoprmqtt.h:315
const char * JSON_KEY_MQTT_PASSWORD
MQTT password key name.
Definition jbwoprmqtt.h:317
PubSubClient * _mqttClient
MQTT client.
Definition jbwoprmqtt.h:367
const char * SUBENTITY_NAME_DATE_FORMAT
Date Format key name.
Definition jbwoprmqtt.h:390
const char * JSON_KEY_MQTT_USE_MQTT
Use MQTT key name.
Definition jbwoprmqtt.h:313
const char * ENTITY_NAME_CONFIG
Config entity name.
Definition jbwoprmqtt.h:371
const char * SUBENTITY_NAME_NAME
Effect subentity name.
Definition jbwoprmqtt.h:387
const char * ENTITY_NAME_BUTTON_FRONT_RIGHT
Button front right entity name.
Definition jbwoprmqtt.h:376
const char * SUBENTITY_NAME_TIME_FORMAT
Time format key name.
Definition jbwoprmqtt.h:389
const char * STATE_OFF
State OFF.
Definition jbwoprmqtt.h:397
const char * HTML_MQTT_TITLE
MQTT title.
Definition jbwoprmqtt.h:340
const char * JSON_KEY_MQTT_SERVER_NAME
MQTT server name key name.
Definition jbwoprmqtt.h:314
WiFiManagerParameter * _useMqttParam
Use MQTT WiFiManager parameter.
Definition jbwoprmqtt.h:345
WiFiManagerParameter * _mqttServerNameParam
MQTT server name WiFiManager parameter.
Definition jbwoprmqtt.h:346
WiFiManagerParameter * _mqttUserNameParam
MQTT user name WiFiManager parameter.
Definition jbwoprmqtt.h:348
LogLevel getLogLevel() override
Get log level.
Definition jbwoprmqtt.cpp:78
const char * ENTITY_NAME_DEFCON
DEFCON LED entity name.
Definition jbwoprmqtt.h:374
const char * ENTITY_NAME_BUTTON_BACK_TOP
Button back top entity name.
Definition jbwoprmqtt.h:377
const char * SUBENTITY_NAME_WIFI_USE_WEB_PORTAL
Use portal key name.
Definition jbwoprmqtt.h:394
const char * ENTITY_NAME_BUTTON_FRONT_LEFT
Button front left entity name.
Definition jbwoprmqtt.h:375
const char * SUBENTITY_NAME_STATE
State subentity name.
Definition jbwoprmqtt.h:380
void _setJsonDocumentFromConfig(JsonDocument &jsonDoc)
Set JSON document values with JBWoprMqttDevice specific config values.
Definition jbwoprmqtt.cpp:269
const char * COMMAND_SET
Set command.
Definition jbwoprmqtt.h:402
const char * SUBENTITY_NAME_DEFCON_BRIGHTNESS
DEFCON LEDs brightness key name.
Definition jbwoprmqtt.h:391
WiFiManagerParameter * _mqttTitleParam
MQTT title WiFiManager parameter.
Definition jbwoprmqtt.h:344
WiFiManagerParameter * _mqttPasswordParam
MQTT password WiFiManager parameter.
Definition jbwoprmqtt.h:349
const char * JSON_KEY_CONF_MQTT_PREFIX
MQTT prefix key name.
Definition jbwoprmqtt.h:318
void _setConfigFromJsonDocument(const JsonDocument &jsonDoc)
Set JBWoprMqttDevice specific config values from JSON document.
Definition jbwoprmqtt.cpp:247
WiFiManagerParameter * _mqttPrefixParam
MQTT prefix WiFiManager parameter.
Definition jbwoprmqtt.h:350
const char * SUBENTITY_NAME_LEVEL
Level subentity name.
Definition jbwoprmqtt.h:386
void setLogLevel(LogLevel level) override
Set log level.
Definition jbwoprmqtt.cpp:73
void _dumpConfig() override
Dump configuration to logger.
Definition jbwoprmqtt.cpp:279
void loop() override
JBWoprMqttDevice loop.
Definition jbwoprmqtt.cpp:55
const char * SUBENTITY_NAME_WIFI_HOST_NAME
Host name key name.
Definition jbwoprmqtt.h:393
const char * ENTITY_NAME_DEVICE
Device entity name.
Definition jbwoprmqtt.h:370
const char * SUBENTITY_NAME_SCROLLTEXT
Scroll text subentity name.
Definition jbwoprmqtt.h:384
const char * EVENT_CLICK
Click event.
Definition jbwoprmqtt.h:399
const char * SUBENTITY_NAME_TEXT
Text subentity name.
Definition jbwoprmqtt.h:383
const char * EVENT_DOUBLE_CLICK
Double click event.
Definition jbwoprmqtt.h:400
const char * SUBENTITY_NAME_BRIGHTNESS
Brightness subentity name.
Definition jbwoprmqtt.h:381
const char * SUBENTITY_NAME_EVENT
Event subentity name.
Definition jbwoprmqtt.h:385
W.O.P.R. WiFi device class.
Definition jbwoprwifi.h:38
void defconLedsSetBrightness(uint8_t brightness) override
DEFCON LEDs set brightness.
Definition jbwoprmqtt.cpp:235
void defconLedSetColor(JBDefconLevel level, uint32_t color)
Set color of a specified DEFCON LED.
Definition jbwoprmqtt.cpp:240
void defconLedsSetColor(uint32_t color) override
DEFCON LEDs set color.
Definition jbwoprmqtt.cpp:230
void defconLedsSetState(bool state) override
DEFCON LEDs set state.
Definition jbwoprmqtt.cpp:221
void defconLedsSetDefconLevel(JBDefconLevel level) override
DEFCON LEDs set DEFCON level.
Definition jbwoprmqtt.cpp:226
void displayScrollText(const char *text, uint16_t delay_ms) override
Display scrolling text.
Definition jbwoprmqtt.cpp:193
void displayShowText(const char *text, JBTextAlignment alignment) override
Display show text.
Definition jbwoprmqtt.cpp:168
void displaySetState(bool state) override
Display set state.
Definition jbwoprmqtt.cpp:153
void displayClear() override
Display clear.
Definition jbwoprmqtt.cpp:158
void displaySetBrightness(uint8_t val) override
Display set brightness.
Definition jbwoprmqtt.cpp:163
virtual void effectsStopCurrentEffect()
Stop current effect.
Definition jbwoprmqtt.cpp:127
void effectsStartCurrentEffect() override
Effects start current effect.
Definition jbwoprmqtt.cpp:122
void effectsStartEffect(JBWoprEffectBase *effect) override
Effects start effect.
Definition jbwoprmqtt.cpp:132
bool _mqttReconnect()
Reconnect MQTT.
Definition jbwoprmqtt.cpp:376
virtual void _handleDisplayCommand(const std::string &subEntity, const std::string &command, const std::string &payload)
Handle MQTT display command message.
Definition jbwoprmqtt.cpp:549
void _mqttCallback(const char *topic, const byte *payload, unsigned int length)
MQTT callback.
Definition jbwoprmqtt.cpp:419
virtual void _handleDeviceCommand(const std::string &subEntity, const std::string &command, const std::string &payload)
Handle MQTT device command message.
Definition jbwoprmqtt.cpp:467
bool _mqttStart()
Start MQTT.
Definition jbwoprmqtt.cpp:337
void _mqttStop()
Stop MQTT.
Definition jbwoprmqtt.cpp:369
bool mqttPublishMessage(const std::string &topic, JsonDocument &jsonDoc, bool retain=false)
MQTT publish message.
Definition jbwoprmqtt.cpp:85
virtual void _handleConfigCommand(const std::string &subEntity, const std::string &command, const std::string &payload)
Handle MQTT config command message.
Definition jbwoprmqtt.cpp:490
virtual std::string _getAvailabilityTopic()
Get availability topic.
Definition jbwoprmqtt.cpp:643
virtual std::string _getSubscriptionTopic()
Get subscription topic.
Definition jbwoprmqtt.cpp:638
virtual void _handleCommand(const std::string &entity, const std::string &subEntity, const std::string &command, const std::string &payload)
Handle MQTT command message.
Definition jbwoprmqtt.cpp:450
virtual std::string _getTopic(const char *entityId, const char *subEntityId)
Get publish topic for specified entity.
Definition jbwoprmqtt.cpp:629
virtual bool _onMqttConnect()
Called when MQTT client get connected.
Definition jbwoprmqtt.cpp:408
virtual void _handleDefconCommand(const std::string &subEntity, const std::string &command, const std::string &payload)
Handle MQTT defcon command message.
Definition jbwoprmqtt.cpp:588
virtual void _handleEffectCommand(const std::string &subEntity, const std::string &command, const std::string &payload)
Handle MQTT effect command message.
Definition jbwoprmqtt.cpp:525
void _setupWiFiManager() override
Setup WiFiManager.
Definition jbwoprmqtt.cpp:293
void _saveParamsCallback() override
Set WiFiManager parameter callback.
Definition jbwoprmqtt.cpp:320
JBDefconLevel
DEFCON levels.
Definition jbwopr.h:34
JBWoprBoardVariant
W.O.P.R. board version.
Definition jbwopr.h:28
Header file for the JBWopr library.
Source file for the JBWOPR library.
W.O.P.R. board pin assignments.
Definition jbwopr.h:44
JBWoprMqttDevice MQTT configuration.
Definition jbwoprmqtt.h:27
std::string mqttServerName
MQTT server name.
Definition jbwoprmqtt.h:29
std::string mqttPassword
MQTT password.
Definition jbwoprmqtt.h:32
std::string mqttPrefix
MQTT prefix.
Definition jbwoprmqtt.h:33
std::string mqttUserName
MQTT user name.
Definition jbwoprmqtt.h:31
uint16_t mqttServerPort
MQTT server port.
Definition jbwoprmqtt.h:30
bool useMqtt
Use MQTT.
Definition jbwoprmqtt.h:28