Skip to content

Commit

Permalink
in app.h defines eingebaut mit dem sich das verhalten der app in Bezu…
Browse files Browse the repository at this point in the history
…g auf MQTT anpassen läst

in app.cpp bedingte Compiler Abschnitte eingebaut
  • Loading branch information
HorstG-57 committed Aug 10, 2022
1 parent 4dc64eb commit ef520b6
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 9 deletions.
31 changes: 22 additions & 9 deletions tools/esp8266/app.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -165,9 +165,11 @@ void app::setup(uint32_t timeout) {
mMqtt.setup(mqttAddr, mqttTopic, mqttUser, mqttPwd, mqttDevName, mqttPort);
mMqtt.mClient->setCallback(std::bind(&app::cbMqtt, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3));
mMqttTicker = 0;

#ifdef __MQTT_TEST__
// für mqtt test
mMqttTicker = mMqttInterval -10;

#endif
mSerialTicker = 0;

if(mqttAddr[0] > 0) {
Expand Down Expand Up @@ -365,12 +367,17 @@ void app::loop(void) {
}
}
snprintf(val, 10, "%ld", millis()/1000);
// sendMqttDiscoveryConfig();

#ifndef __MQTT_NO_DISCOVERCONFIG__
// MQTTDiscoveryConfig nur wenn nicht abgeschaltet.
sendMqttDiscoveryConfig();
#endif
mMqtt.sendMsg("uptime", val);

#ifdef __MQTT_TEST__
// für einfacheren Test mit MQTT, den MQTT abschnitt in 10 Sekunden wieder ausführen
mMqttTicker = mMqttInterval -10;

#endif
}

if(mSerialValues) {
Expand Down Expand Up @@ -495,7 +502,9 @@ bool app::buildPayload(uint8_t id) {
//-----------------------------------------------------------------------------
void app::processPayload(bool retransmit) {

#ifdef __MQTT_AFTER_RX__
boolean doMQTT = false;
#endif

DPRINTLN(DBG_VERBOSE, F("app::processPayload"));
for(uint8_t id = 0; id < mSys->getNumInverters(); id++) {
Expand Down Expand Up @@ -553,23 +562,27 @@ void app::processPayload(bool retransmit) {
yield();
}
iv->doCalculations();

#ifdef __MQTT_AFTER_RX__
doMQTT = true;

#endif

}
}
yield();
}
}

// ist MQTT aktiviert und es wurden Daten vom einem oder mehreren WR aufbereitet ( doMQTT = true)
// dann die den mMqttTicker auf mMqttIntervall -2 setzen, also
// MQTT aussenden in 2 sek aktivieren
// dies sollte noch über einen Schalter im Setup aktivier / deaktivierbar gemacht werden
#ifdef __MQTT_AFTER_RX__
// ist MQTT aktiviert und es wurden Daten vom einem oder mehreren WR aufbereitet ( doMQTT = true)
// dann die den mMqttTicker auf mMqttIntervall -2 setzen, also
// MQTT aussenden in 2 sek aktivieren
// dies sollte noch über einen Schalter im Setup aktivier / deaktivierbar gemacht werden
if( (mMqttInterval != 0xffff) && doMQTT ) {
++mMqttTicker = mMqttInterval -2;
DPRINT(DBG_DEBUG, F("MQTTticker auf Intervall -2 sec ")) ;
}

#endif
}


Expand Down
6 changes: 6 additions & 0 deletions tools/esp8266/app.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,12 @@
#include "hmSystem.h"
#include "mqtt.h"

// hier läst sich das Verhalten der app in Bezug auf MQTT
// durch PER-Conpiler defines anpassen
//
// #define __MQTT_TEST__ // MQTT Interval wird auf 10 Sekunden verkürzt ( nur für testzwecke )
#define __MQTT_AFTER_RX__ // versendet die MQTT Daten sobald die WR daten Aufbereitet wurden ( gehört eigentlich ins Setup )
// #define __MQTT_NO_DISCOVERCONFIG__ // das versenden der MQTTDiscoveryConfig abschalten ( gehört eigentlich ins Setup )

typedef CircularBuffer<packet_t, PACKET_BUFFER_SIZE> BufferType;
typedef HmRadio<RF24_CE_PIN, RF24_CS_PIN, RF24_IRQ_PIN, BufferType> RadioType;
Expand Down

0 comments on commit ef520b6

Please sign in to comment.