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

Interval nicht mehr konfigurierbar nach Wechsel von 0.4.23 auf 0.4.26 #123

Closed
TobiDD79 opened this issue Aug 4, 2022 · 13 comments
Closed
Labels
documentation Improvements or additions to documentation question Further information is requested

Comments

@TobiDD79
Copy link

TobiDD79 commented Aug 4, 2022

Hi,

ich habe heute meine Version von 0.4.23 auf 0.4.26 geupdatet.
Meine Version mit 0.4.23 lief ohne reboot seit 15 Tagen durchgehend. Dabei hatte ich die Intervalle alle auf 10sek eingestellt.

mit der 0.4.26 ist nun das generelle Intervall auf 15 eingestellt und Änderungen werden nicht übernommen, sowie das Mqtt Intervall fest und nicht mehr konfigurierbar auf 75.

ich bitte um konfigurierbare Intervalle auf der Setupseite und nicht fest im Code hinterlegte.

@DennisXK
Copy link

DennisXK commented Aug 4, 2022

Das ist mir auch aufgefallen! Wobei mir nicht klar ist welcher wert für was ist. TobiDD79 kannst du mir sagen wo ich die mqtt Zeit und die generelle Intervallzeit einstelle!

@fila612
Copy link
Contributor

fila612 commented Aug 5, 2022

Das wurde bereits hier #104 (comment) kurz angesprochen:

Laut @stefan123t wurde dies mit den PR #88, #100. #102 angepasst.

Wichtig wäre m.M.n. zu definieren, von welchen Intervallen hier die Rede ist.
General Intervall? MQTT-Intervall?
Die Deklarationen sind in define.h:
https://github.com/grindylow/ahoy/blob/375a1ca9553069b80a6928bb161b02041290e3e6/tools/esp8266/defines.h#L33-L40

Und hier etwas in der config.h:
https://github.com/grindylow/ahoy/blob/375a1ca9553069b80a6928bb161b02041290e3e6/tools/esp8266/config.h#L40-L47

@TobiDD79
Copy link
Author

TobiDD79 commented Aug 5, 2022

Auch nach einem Erase Settings kann man das General Intervall in der Setupseite von den vorbelegten 15 nicht mehr auf 10 ändern, wird beim speichern nicht übernommen, und das Mqtt Intervall was per default aktuell 75 ??? ist, lässt sich das Feld gar nicht mehr beschreiben.

Macht für mich keinen Sinn, es im Code zu limitieren bzw. fest vorzugeben und auf der Setupseite anzuzeigen bzw. änderbar zu machen wenn die Änderungen nicht übernommen werden. Desweiteren steht wie oben angegeben im Code für Mqtt 60 als defaultwert, aber es werden 75 angezeigt, also scheinbar rechnet es irgendwo generell Intervall (15) und Mqtt intervall(60) zusammen

@fila612
Copy link
Contributor

fila612 commented Aug 5, 2022

Doch es wird übernommen, aber aufgrund der Minimum-Grenze von 15 eben nur bis 15. Versuch doch mal den Wert auf 20 zu setzen - das klappt bei mir.
Wenn du 10 haben willst, musst du die Minimum Grenze herabsetzen.
Siehe:
https://github.com/grindylow/ahoy/blob/375a1ca9553069b80a6928bb161b02041290e3e6/tools/esp8266/app.cpp#L141-L145

Zum MQTT Intervall: Warum da addiert wird, erschließt sich mir auch nicht (hatte die Frage ja schonmal gestellt), dennoch steht ja im Setup klar beim Feldnamen (read-only), was aus meiner Sicht darstellt, dass es sich hier um kein beschreibbares Feld handelt.
Interessant ist auch, wenn man das Intervall auf 20 erhöht, erhöht sich das MQTT Intervall ebenfalls. Evtl. hängt das damit zusammen:
https://github.com/grindylow/ahoy/blob/375a1ca9553069b80a6928bb161b02041290e3e6/tools/esp8266/app.cpp#L92

@DennisXK
Copy link

DennisXK commented Aug 5, 2022

@TobiDD79 wie hoch war den die min bzw die mqqt Zeitintervall in der alten Version? in der 0.4.22 war die Generelle 5 Sekunden aber die mqtt weis ich nicht.

@TobiDD79
Copy link
Author

TobiDD79 commented Aug 5, 2022

Genau generell war 5 und mqtt 10

Edit:Wobei es natürlich sein kann das mqtt im Code auch auf 5 steht und durch den addieren Bug mit dem generell Intervall zusammen dann 10 auf der Setupseite angezeigt hat.

@DennisXK
Copy link

DennisXK commented Aug 5, 2022

Hab mir die Zeite jetzt angepasst, aber komisch ist das er bei der mqtt Intervalzeit wieder 15s dazu adddiert.

@ps915
Copy link

ps915 commented Aug 5, 2022

mir geht es auch so.

General Interval [s] kann ich nicht mehr unter 15 Sekunden einstellen.

image

image

Das MQTT Intervall hatte ich vorher auch auf 5 Sekunden, jetzt lässt es sich gar nicht mehr einstellen.

@HorstG-57
Copy link
Contributor

HorstG-57 commented Aug 5, 2022

Zu den Intervallen würde ich gerne einen Vorschlag machen
und @grindylow ( oder wer sonst das zugrund liegende Repository pflegt )
mal bitten, Ihre Meinung dazu in die Runde zurück zu geben.

Im Setup sollten

a. die Intervalle ( Seriell- , WR Abfrage- und MQTT- intervall ) sollten Grundsätzlich frei einstellbar sein

b. die Intervalle sollten sich nicht gegenseitig beeinflussen ( ev. in Richtung Minimum begrenzen ).

c. für die MQTT Übertragung macht ein Intervall kleiner dem Abfrage-Intervall der WR keinen Sinn,
da es sowieso keine neuen Daten gibt.

d. Es sollte einen Schalter geben, mit dem man das versenden der MQTT Daten auslösen kann,
sobald Daten von einem oder mehreren WR erflogreich empfangen und verarbeitet wurden.

Ich habe es bei mir so eingesellt ( teilweise den Programcode angepasst), das die WR alle 30 Sekunden abgefragt werden,
im Programm-Code habe ich eine Erwiterung eingebaut die das aktuelle laufende MQTT-Intervall so weit verkürzt,
das die MQTT Daten 2 Sekunden nachdem die WR-Daten im Ahoy erfogreich aufbereitet wurden, versendet werden.
Die zwei Sekunden dienen "nur" der Entzerrung der Funkfeldbelegung.
Das Grundsätzliche MQTT Intervall habe ich auf 90 Sekunden stehen.
Somit bekomme ich Nachts, wenn die WR nicht antworten, winigsten alle 90 Sekunden die uptime ( ein Lebenszeichen ) vom Ahoy.

@stefan123t
Copy link
Collaborator

stefan123t commented Aug 5, 2022

Das Problem mit den read only 75 MQTT Intervall im UI habe ich auch gesehen, das sollte mE in diesem Issue analysiert und ggf behoben werden (Feld ausgrauen o.a). Es sollte generell nicht kleiner als das Abfrage Intervall sein, aber aktuell kann man es gar nicht anpassen.

Für die anderen Limits müssen wir uns sowieso einen eigenen Scheduler überlegen, da die Ressourcen des Mikrocontrollers (ESP8266) mit nur einem Core nun mal begrenzt sind.

Diese Diskussion haben wir so ähnlich schon in in #78, #24 oder #15 geführt. Bitte ggf. dort ergänzen.

Wir haben in Zukunft eher noch mehr Anforderungen an den Prozessor die wir definieren und priorisieren müssen:

  • Abfrage der aktuellen Werte, TX + min 300 ms RX für ein Antwort Paket. Ggf auch mehr bei mehreren Paketen oder gar Retransmits. Retransmits könnten ggf etwas verzögert werden um andere Prozesse auch zum Zuge kommen zu lassen.
  • Weitere Abfragen / Kommandos mit ähnlichen Timing Anforderungen kommen demnächst hinzu: DevControl Active Power Limit, Dev Information Alarm Data, etc.
  • dann wollt ihr die Daten per MQTT an den Broker übertragen, das sind bei meinem HM-600 alleine schon 24 Publish Requests für jedes Topic. Jedes Mal wird der Name / die IP des Brokers aufgelöst (?)
  • der ESP ist per WebInterface erreichbar wobei eine Seite (für einen WR) ca 8000-9000 Byte groß ist. Die entsprechenden Meßwerte müssen hier immer eingesetzt werden was auch einige Zeit dauert.
  • das UI ruft teilweise sehr häufig die livedata, status und andere "kleinere" Seiten auf, die je nur ca. 2000 Byte groß sind aber durch ihren häufigen und einzelnen Aufruf einen zusätzlichen Overhead auf dem ESP erzeugen.
  • nebenbei sollen auch noch andere Tasks laufen um NTP zu aktualisieren, HomeAssistant über die Struktur zu informieren, einen JSON endpoint bedienen, etc. pp.

Wir müssen also mal alle Punkte aufschreiben und uns einen sinnvollen Scheduler / Timer überlegen.

Danke an @HorstG-57 für den konstruktiven Beitrag. Ich bin mir gar nicht so sicher ob wir überhaupt so viele Intervalle anbieten sollten, aber wenn keine neuen WR Daten da sind macht die alten Daten nochmal per MQTT zu senden auch keinen Sinn.
Das war auch meine Intention warum ich das Intervall auf 30 default gesetzt habe und nach unten auf 15 begrenzt habe. Deine Anpassung klingt für mich logisch und sinnvoll.

@TobiDD79
Copy link
Author

TobiDD79 commented Aug 6, 2022

Die Variante von HorstG-57 finde ich gar nicht verkehrt. Dann kann man sich dann ja auch das Intervall für mqtt auf der Setupseite sparen. Es wird dann also einfach je nach Eingestellten generellen Intervall und erfolgreicher Verarbeitung ein mqtt Prozess durchlaufen. Ich bin dafür :)

@stefan123t
Copy link
Collaborator

@TobiDD79 bitte mit der v.0.5.9 überprüfen die Änderungen von @TobiDD79 sind bereits enthalten und ggf. als gelöst schließen. Danke

@TobiDD79
Copy link
Author

Mit dem Code von HorstG-57 passt das soweit für mich

@stefan123t stefan123t added documentation Improvements or additions to documentation question Further information is requested wontfix This will not be worked on ESP ESP8266 / ESP32 related implemented implemented in development and removed wontfix This will not be worked on labels Sep 12, 2022
@stefan123t stefan123t removed ESP ESP8266 / ESP32 related implemented implemented in development labels Jan 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation question Further information is requested
Projects
None yet
Development

No branches or pull requests

6 participants