Browse Source

in app.h defines eingebaut mit dem sich das verhalten der app in Bezug auf MQTT anpassen läst

in app.cpp bedingte Compiler Abschnitte eingebaut
pull/138/head
HorstG-57 3 years ago
parent
commit
ef520b65ec
  1. 21
      tools/esp8266/app.cpp
  2. 6
      tools/esp8266/app.h

21
tools/esp8266/app.cpp

@ -165,9 +165,11 @@ void app::setup(uint32_t timeout) {
mMqtt.setup(mqttAddr, mqttTopic, mqttUser, mqttPwd, mqttDevName, mqttPort); 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)); mMqtt.mClient->setCallback(std::bind(&app::cbMqtt, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3));
mMqttTicker = 0; mMqttTicker = 0;
#ifdef __MQTT_TEST__
// für mqtt test // für mqtt test
mMqttTicker = mMqttInterval -10; mMqttTicker = mMqttInterval -10;
#endif
mSerialTicker = 0; mSerialTicker = 0;
if(mqttAddr[0] > 0) { if(mqttAddr[0] > 0) {
@ -365,12 +367,17 @@ void app::loop(void) {
} }
} }
snprintf(val, 10, "%ld", millis()/1000); snprintf(val, 10, "%ld", millis()/1000);
// sendMqttDiscoveryConfig();
#ifndef __MQTT_NO_DISCOVERCONFIG__
// MQTTDiscoveryConfig nur wenn nicht abgeschaltet.
sendMqttDiscoveryConfig();
#endif
mMqtt.sendMsg("uptime", val); mMqtt.sendMsg("uptime", val);
#ifdef __MQTT_TEST__
// für einfacheren Test mit MQTT, den MQTT abschnitt in 10 Sekunden wieder ausführen // für einfacheren Test mit MQTT, den MQTT abschnitt in 10 Sekunden wieder ausführen
mMqttTicker = mMqttInterval -10; mMqttTicker = mMqttInterval -10;
#endif
} }
if(mSerialValues) { if(mSerialValues) {
@ -495,7 +502,9 @@ bool app::buildPayload(uint8_t id) {
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
void app::processPayload(bool retransmit) { void app::processPayload(bool retransmit) {
#ifdef __MQTT_AFTER_RX__
boolean doMQTT = false; boolean doMQTT = false;
#endif
DPRINTLN(DBG_VERBOSE, F("app::processPayload")); DPRINTLN(DBG_VERBOSE, F("app::processPayload"));
for(uint8_t id = 0; id < mSys->getNumInverters(); id++) { for(uint8_t id = 0; id < mSys->getNumInverters(); id++) {
@ -553,7 +562,10 @@ void app::processPayload(bool retransmit) {
yield(); yield();
} }
iv->doCalculations(); iv->doCalculations();
#ifdef __MQTT_AFTER_RX__
doMQTT = true; doMQTT = true;
#endif
} }
} }
@ -561,6 +573,7 @@ void app::processPayload(bool retransmit) {
} }
} }
#ifdef __MQTT_AFTER_RX__
// ist MQTT aktiviert und es wurden Daten vom einem oder mehreren WR aufbereitet ( doMQTT = true) // ist MQTT aktiviert und es wurden Daten vom einem oder mehreren WR aufbereitet ( doMQTT = true)
// dann die den mMqttTicker auf mMqttIntervall -2 setzen, also // dann die den mMqttTicker auf mMqttIntervall -2 setzen, also
// MQTT aussenden in 2 sek aktivieren // MQTT aussenden in 2 sek aktivieren
@ -569,7 +582,7 @@ void app::processPayload(bool retransmit) {
++mMqttTicker = mMqttInterval -2; ++mMqttTicker = mMqttInterval -2;
DPRINT(DBG_DEBUG, F("MQTTticker auf Intervall -2 sec ")) ; DPRINT(DBG_DEBUG, F("MQTTticker auf Intervall -2 sec ")) ;
} }
#endif
} }

6
tools/esp8266/app.h

@ -17,6 +17,12 @@
#include "hmSystem.h" #include "hmSystem.h"
#include "mqtt.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 CircularBuffer<packet_t, PACKET_BUFFER_SIZE> BufferType;
typedef HmRadio<RF24_CE_PIN, RF24_CS_PIN, RF24_IRQ_PIN, BufferType> RadioType; typedef HmRadio<RF24_CE_PIN, RF24_CS_PIN, RF24_IRQ_PIN, BufferType> RadioType;

Loading…
Cancel
Save