Skip to content
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

Merged
merged 4 commits into from
Aug 11, 2022

Conversation

HorstG-57
Copy link
Contributor

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 )

	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
@aschiffler
Copy link
Contributor

Hi,
danke für Deinen Input.

@aschiffler
Copy link
Contributor

@HorstG-57:
Ich habe getestet:

  • mehrfaches / häufiges senden von Nachrichten auf das Topic --> Kein Absturz mehr in meinen Test 💪

Könntest Du in deinem repo noch in die hmRadio.h der Funktion sendControlPacket
das ändern:
aschiffler@03879d6#diff-826928f697a377c73e2509b14e0f422cab5dc54cea4d40156da8559f71209275

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
Andreas

lumapu added 2 commits August 11, 2022 13:42
changes requested by @aschiffler regarding hmRadio.h
update version to 0.5.6
@lumapu lumapu merged commit 6bf1487 into lumapu:main Aug 11, 2022
@lumapu
Copy link
Owner

lumapu commented Aug 11, 2022

@HorstG-57 @aschiffler danke für eure Änderungen, ist gemergt in main und hat die Version 0.5.6 bekommen

Copy link
Collaborator

@stefan123t stefan123t left a 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;
Copy link
Collaborator

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 ?

Copy link
Collaborator

@stefan123t stefan123t left a 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
Copy link
Collaborator

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 wird auf/um 10 Sekunden verkürzt ( nur für testzwecke )"

@HorstG-57
Copy link
Contributor Author

HorstG-57 commented Aug 11, 2022

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.
Wie ich ja geschrieben habe ( nur für Testzwecke ).

Es ist ja so gebaut das der MQTT-Ticker von 0 hochgezählt wird, bis er den Wert vom MQTT-Intervall erreicht hat.
Ein "mMqttTicker = mMqttInterval -10;" setzt den MQTT-Ticker auf Intervall-Wert -10
( also läuft das MQTT Intervall in 10 Sekunden ab ).

Die beiden Stellen mit -2 und -5 dienen einfach nur der Entzerrung der des Funkverkehrs.
WR und Wlan laufen im gleichen Funkband. und so entsteht zwischen datenemfang vom WR und aussenden der MQTT-Daten eine Künstliche Lücke von 2 Sekunden ( andere wollen auch im 2,4 GHz Band Funken ).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants