Update 20201013

This commit is contained in:
jomjol
2020-10-13 20:13:28 +02:00
parent 04f69f0853
commit 21d07be7df
10 changed files with 36 additions and 11 deletions

View File

@@ -27,7 +27,11 @@ A 3d-printable housing can be found here: https://www.thingiverse.com/thing:4571
##### Rolling - (2020-10-04)
##### Rolling - (2020-10-13)
* Implementation of user and password for MQTT Authentication (see `config.ini`)
2020-10-04
* First simple MQTT Client - to be configured in `config.ini` (see example)

View File

@@ -14,7 +14,9 @@ ClassFlowMQTT::ClassFlowMQTT()
topic = "";
clientname = "watermeter";
OldValue = "";
flowpostprocessing = NULL;
flowpostprocessing = NULL;
user = "";
password = "";
}
ClassFlowMQTT::ClassFlowMQTT(std::vector<ClassFlow*>* lfc)
@@ -24,6 +26,8 @@ ClassFlowMQTT::ClassFlowMQTT(std::vector<ClassFlow*>* lfc)
clientname = "watermeter";
OldValue = "";
flowpostprocessing = NULL;
user = "";
password = "";
ListFlowControll = lfc;
@@ -53,6 +57,14 @@ bool ClassFlowMQTT::ReadParameter(FILE* pfile, string& aktparamgraph)
while (this->getNextLine(pfile, &aktparamgraph) && !this->isNewParagraph(aktparamgraph))
{
zerlegt = this->ZerlegeZeile(aktparamgraph);
if ((toUpper(zerlegt[0]) == "USER") && (zerlegt.size() > 1))
{
this->user = zerlegt[1];
}
if ((toUpper(zerlegt[0]) == "PASSWORD") && (zerlegt.size() > 1))
{
this->password = zerlegt[1];
}
if ((toUpper(zerlegt[0]) == "URI") && (zerlegt.size() > 1))
{
this->uri = zerlegt[1];
@@ -70,7 +82,7 @@ bool ClassFlowMQTT::ReadParameter(FILE* pfile, string& aktparamgraph)
if ((uri.length() > 0) && (topic.length() > 0))
{
MQTTInit(uri, clientname);
MQTTInit(uri, clientname, user, password);
}
return true;

View File

@@ -11,7 +11,8 @@ class ClassFlowMQTT :
protected:
std::string uri, topic, clientname;
std::string OldValue;
ClassFlowPostProcessing* flowpostprocessing;
ClassFlowPostProcessing* flowpostprocessing;
std::string user, password;
public:

View File

@@ -64,12 +64,18 @@ static void mqtt_event_handler(void *handler_args, esp_event_base_t base, int32_
mqtt_event_handler_cb((esp_mqtt_event_handle_t) event_data);
}
void MQTTInit(std::string _mqttURI, std::string _clientid){
void MQTTInit(std::string _mqttURI, std::string _clientid, std::string _user, std::string _password){
esp_mqtt_client_config_t mqtt_cfg = {
.uri = _mqttURI.c_str(),
.client_id = _clientid.c_str(),
};
if (_user.length() && _password.length()){
mqtt_cfg.username = _user.c_str();
mqtt_cfg.password = _password.c_str();
printf("Connect to MQTT: %s, %s", mqtt_cfg.username, mqtt_cfg.password);
};
client = esp_mqtt_client_init(&mqtt_cfg);
esp_mqtt_client_register_event(client, esp_mmqtt_ID, mqtt_event_handler, client);
esp_mqtt_client_start(client);

View File

@@ -1,4 +1,4 @@
#include <string>
void MQTTInit(std::string _mqttURI, std::string _clientid);
void MQTTInit(std::string _mqttURI, std::string _clientid, std::string _user = "", std::string _password = "");
void MQTTPublish(std::string _key, std::string _content);

View File

@@ -1,4 +1,4 @@
const char* GIT_REV="f8e8c75";
const char* GIT_REV="04f69f0";
const char* GIT_TAG="";
const char* GIT_BRANCH="rolling";
const char* BUILD_TIME="2020-10-04 08:06";
const char* BUILD_TIME="2020-10-13 20:10";

View File

@@ -1,4 +1,4 @@
const char* GIT_REV="f8e8c75";
const char* GIT_REV="04f69f0";
const char* GIT_TAG="";
const char* GIT_BRANCH="rolling";
const char* BUILD_TIME="2020-10-04 08:06";
const char* BUILD_TIME="2020-10-13 20:10";

Binary file not shown.

Binary file not shown.

View File

@@ -40,8 +40,10 @@ CheckDigitIncreaseConsistency = False
;[MQTT]
;Uri = mqtt://IP-MQTT-SERVER:1883
;Topic = /watermeter/readout
;Topic = watermeter/readout
;ClientID = wasser
;user = USERNAME
;password = PASSWORD
[AutoTimer]
AutoStart= True