-
-
Notifications
You must be signed in to change notification settings - Fork 225
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Das subscribe in der Reconnect Procedure sollte doch nur nach einem conect ausgeführt werden und nicht bei jedem Duchlauf #138
Conversation
MQTT Intervall MQTT Test MQTT Subscribe muss nur nach dem MQTT Connect nicht bei jedem Connect Check
…g auf MQTT anpassen läst in app.cpp bedingte Compiler Abschnitte eingebaut
Hi, |
@HorstG-57:
Könntest Du in deinem repo noch in die hmRadio.h der Funktion sendControlPacket Dann ist automatisch in diesem PR diese Verbesserung auch noch mit drin. Dann ist auch das Problem "call by reference" weg und der Inhalt des PowerLimits wird nicht geändert in der Funktion. BR |
changes requested by @aschiffler regarding hmRadio.h
update version to 0.5.6
@HorstG-57 @aschiffler danke für eure Änderungen, ist gemergt in main und hat die Version 0.5.6 bekommen |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@HorstG-57 / @lumapu wer kann mir das mit den mMqttInterval mal erklären ?
@@ -165,6 +165,8 @@ 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; | |||
// für mqtt test | |||
mMqttTicker = mMqttInterval -10; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Was hat es denn mit den mMqttInterval -10 / -5 / -2 auf sich ?
Ich verstehe die Logik dahinter noch nicht.
Für mich verkürzt sich dadurch das Intervall um 10/5/2 Sekunden oder habe ich da einen Denkfehler ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Entfernen unnötiger Defines
@@ -17,6 +17,12 @@ | |||
#include "hmSystem.h" | |||
#include "mqtt.h" | |||
|
|||
// hier läst sich das Verhalten der app in Bezug auf MQTT |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@HorstG-57 insgesamt gute Sache, Danke !
- Jetzt sollten wir noch die Option
__MQTT_NO_DISCOVERCONFIG__
über das Setup änderbar machen.
Die beiden anderen Defines können im Prinzip eigentlich wieder weg:
- Das
__MQTT_AFTER_RX__
ist gut und richtig (!) und __MQTT_TEST__
verstehe ich wie gesagt nicht ganz.
Für mich liest sich das wie "MQTT Interval wirdauf/um 10 Sekunden verkürzt ( nur für testzwecke )"
Das habe ich nur gemacht, damit man beim testen der MQTT Loop ( Reconnect, ... ) nicht immer 60 oder mehr Sekunden warten muss. Am Ende der MQTT Übertragung wird der MQTT-Ticker auf MQTT Interval-Zeit -10 Sekunden eingestellt. Es ist ja so gebaut das der MQTT-Ticker von 0 hochgezählt wird, bis er den Wert vom MQTT-Intervall erreicht hat. Die beiden Stellen mit -2 und -5 dienen einfach nur der Entzerrung der des Funkverkehrs. |
Ich bin der Meineung, das das setzen des subscrieb in der reconnect procedure an der falschen Stelle eingebaut ist.
Es wird bei jedem check der Verbindung ein subscriebe ausgeführt.
Sollte das subscriebe nicht nur nach einem connect ausgeführt werden ?
Ich habe meine Anpassungen für das versenden der MQTT Daten nach der Verarbeitung der WR daten wieder eingebeut.
Ich habe es diesmal aber so gemacht, das es sich mit defines in der app.h aktivieren lässt.
Sind die Defines nicht gesetzt, bleibt es bei bisherigem Ablauf.
Ausserdem gibt es noch zwei weitere Defines :
einer zum Abschalten des sendMqttDiscoveryConfig ( nicht alle benötigen das Discovery ; spart viel CPU Zeit / Funkbelegung )
einer zum Einschalten eines kurzen MQTT Intervals von 10 Sekunden ( für Testzwecke )